Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions decisions/open-unknowns.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,43 @@ HEAD scrubbed on decision; history rewrite staged. See `adr:employer-evidence-bo
- No human review step for future narrative drafts before publish, beyond the mechanical lint.
- ~~`core-library/public/graph/selfco.json` — untracked, not gitignored, in a public repo.~~ **FIXED 2026-08-01** — `core-library@ccbf853` ignores `public/graph/` wholesale. The git vector is closed.
- **Open, and larger than the one just fixed: `core-library` serves the vault graph at runtime.** `apps/web/src/main.ts:82` fetches `/graph/selfco.json`, and the vault-ingest Vite plugin regenerates it into `publicDir` on every build. The repo is not currently deployed (no `vercel.json`, no `.vercel`, no `netlify.toml`), which is the only reason this is contained. **If core-library is ever deployed, the build republishes the entire private vault graph to a public URL, and `.gitignore` does nothing to stop it.** Under `adr:boundary-enforced-by-construction` this wants a build-time guard (de-identify at ingest, gate the fetch behind local-only, or exclude protected nodes from the graph), not a note. Decision, not yet made — deploying core-library is currently blocked on this.

---

## 2026-08-01 — dossier→presence seam: per-artifact clearance over an absolute public-git lint (wayfinder #347)

Ruling: engagement artifacts are private by default in `fieldwork-1`; public git stays absolutely
lint-clean (the client term-set joins the gitignored denylist of
`adr:boundary-enforced-by-construction`, stranger-test threshold); disclosure is upgraded
**per-artifact** by the client principal's written sign-off recorded in a permission ledger;
cleared renders never enter public git — the operator is the only crossing point to presence
surfaces; refusal narrows, never erases. See `adr:engagement-disclosure-seam` (stub).

**Deferred decisions**
- Exact sign-off capture form (channel, ledger entry format) — unblocked by: conversation #1
(the #346 discovery instrument carries the permission ask).
- History rewrite vs acceptance for client intel already in public git history — unblocked by:
#356's session (a scrub commit removes the tip, not the history).
- Off-git publish-checklist mechanics (Medium/LinkedIn/blog) — unblocked by: the
fde-operating-presence flywheel tickets (#322/#329); the surfaces are that map's, the seam is
this one's.

**Unvalidated assumptions**
- The client grants documentation permission at all — the proof plan and dossier-as-compensation
floor rest on it; outright refusal re-scopes the engagement (standing ruling).
- The denylist lint (still an unbuilt roadmap delivery) accepts a second term-set without
redesign.
- Presence-surface publishing stays operator-manual. If any automation ever publishes outward,
the seam's "the operator is the only crossing point" guarantee silently breaks — a standing
constraint, not merely an assumption.
- A term denylist catches names, not situational fingerprints (distinctive figures, dated
incidents) — carried from the employer-boundary entry; applies doubly here since the
engagement narrates real jobs.

**Standard considerations not covered**
- Screenshot redaction beyond names: EXIF/metadata, crew faces, addresses on work orders —
PII, not just identity terms.
- Third-party data inside artifacts: adjusters, insurers, builders' documents — parties who
never entered the permission protocol.
- Revocation after publication: no takedown protocol exists if the client withdraws a
previously granted clearance.
17 changes: 16 additions & 1 deletion decisions/wayfinder/texas-rr-engagement.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,24 @@ Closed tickets:
- Client-data placement: client-named baselines live in the private engagement repo's northstar
file only; the public registry carries slug/path/anonymous comment; the public map's existing
client intel gets a sanitization pass (new task ticket) — Yuri, 2026-08-01
- Dossier→presence seam (#347): one-way valve, operator = the only crossing point. Public git
stays absolutely lint-clean (client term-set joins the same gitignored denylist as
`adr:employer-evidence-boundary`; stranger test; default form "a DFW restoration contractor");
disclosure upgrades are per-artifact via the client principal's written sign-off, recorded in a
permission ledger in `fieldwork-1`; cleared renders never enter public git — the operator
publishes them directly to presence surfaces; refusal narrows, never erases (de-identified
render still publishes; only outright documentation-refusal re-scopes); case-study skeleton
committed at kickoff = G3 spine + before/after baseline + G1 eval receipts + G4 plumbing
sidebar, blanks filled weekly; #356 executes its scrub under this same protocol — Yuri,
2026-08-01

## Tickets

| Ticket (title, refer-by-name) | Type | Blocked by | Status |
|-------------------------------|------|------------|--------|
| Engagement northstar: naming, properties, movement contract (#345) | grilling | — | closed |
| Discovery instrument for conversation #1 (#346) | grilling | — | open |
| Dossier→presence seam: sanitization gate + permission protocol (#347) | grilling | — | open |
| Dossier→presence seam: sanitization gate + permission protocol (#347) | grilling | — | closed |
| DFW restoration competitor + segment teardown (#348) | research | — | open |
| Engagement repo bootstrap (private; proof-plan skeleton; fleet-onboard) (#349) | task | Engagement northstar | open |
| Engagement stage-gates + TPM discipline (#350) | grilling | Engagement northstar | open |
Expand All @@ -100,6 +110,11 @@ teardown, Engagement repo bootstrap (unblocked; repo = `fieldwork-1`), Engagemen
(unblocked; scope WIDENED to include the SEH 17-process mapping onto self-built components),
Public-map client-intel sanitization.

Frontier after #347 (2026-08-01): Discovery instrument, Competitor teardown, Engagement repo
bootstrap, Engagement stage-gates, Public-map client-intel sanitization (unparked — #347's
protocol is the one it was waiting to share; same term-set, describe-never-reproduce). #347
blocked no tickets; no fog graduates from this close.

## Not yet specified

- **Generalized pipeline map / customer #2** — statable only after C1/C2 metrics exist; the scale
Expand Down
Loading