wayfinder: resolve TeamBot public-evidence boundary (#321) - #343
Conversation
Ruling: day-job material is publishable only as de-identified engineering patterns passing the STRANGER TEST (a reader with no prior knowledge of the operator's employment cannot identify employer, system, or team). Attributed publishing is out of scope fleet-wide. Enforced by construction — a denylist lint sourced from gitignored personal-knowledge/ — not by author discipline, because the one documented breach was committed by an automated session. HEAD scrubbed on the decision: employer name now at 0 occurrences in tracked files (was 3 lines across 2 files, one of which bound nickname to employer). The 9 bare-alias files remain and pass the stranger test unbound. History rewrite of the 10 affected commits is staged, not done — force-pushing main against ~23 live agent sessions is the deferred risk. Map tended: gist appended, #321 closed, #328 flagged as partly invalidated (its frame names the employer and inverts the FDE/TDL role assignment), and the TeamBot-pattern-flow fog graduated to #342 now that the boundary makes its question statable. Ledger: decisions/open-unknowns.md created (grill artifact). The load-bearing unvalidated assumption is recorded plainly — the ruling was made without either party reading the actual employment agreement. ADR stubs drafted for /adr new: employer-evidence-boundary, boundary-enforced-by-construction, staged-history-remediation. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Skill Audit — PR #343Skills used during development
Recommended skills (based on diff analysis)
Coverage
Generated by skill-audit |
- Employment-agreement assumption RESOLVED (operator-confirmed), struck through rather than deleted so the closure method stays visible. - core-library selfco.json git leak FIXED (core-library@ccbf853 ignores public/graph/ wholesale). - NEW, and bigger than the one just closed: core-library serves the vault graph at runtime (apps/web/src/main.ts:82 fetches it; the vault-ingest Vite plugin regenerates it into publicDir on every build). The repo is not currently deployed, which is the only thing containing it. Deploying core-library would republish the private vault graph to a public URL and .gitignore would not stop it. Wants a build-time guard, not a note. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Follow-up pushed ( Fixed: Resolved: the employment-agreement assumption — operator-confirmed. Struck through in the ledger rather than deleted, so a future reader can see it closed by confirmation rather than by document review. Newly open, and larger than the one just closed: |
Resolves wayfinder #321 on the map
fde-operating-presence. Grilled via/grill-with-docs(4 questions, operator-answered).The ruling
Day-job material enters public FDE artifacts only as de-identified engineering patterns, and only where they pass the stranger test: a reader with no prior knowledge of the operator's employment cannot identify the employer, the internal system, or the team. Re-identification by someone who already knows the operator is explicitly accepted, not defended against. Attributed publishing is out of scope fleet-wide and does not become available by seeking sign-off.
Enforced by construction, not by discipline — a denylist lint sourced from gitignored
personal-knowledge/. The rationale is evidential rather than theoretical: the one documented breach of this boundary was committed by an automated session that merged employer-naming material to public main 39 minutes after the governing ticket opened. Agents are the population writing to these repos and they do not read policy before merging. Discipline has one observed failure here and zero observed successes.The denylist cannot live in the public repo — a list of the terms being protected is itself the disclosure it prevents.
personal-knowledge/is gitignored with zero tracked files and is the one boundary that held cleanly through this entire episode.What this PR does
decisions/wayfinder/fde-operating-presence.md:19-20, the single place that bound system nickname → employer → strategic framing. The 9 bare-alias files are left in place: unbound, they pass the stranger test, and the lint will sweep them.decisions/open-unknowns.md— the grill's durable artifact, and the first in this repo.## Decisions so far, TeamBot public-evidence boundary #321 marked closed, Positioning narrative + venue map #328 flagged as partly invalidated, and the TeamBot-pattern-flow fog graduated to a ticket (Sanitized pattern-flow loop #342) now that the boundary makes its question statable.What this PR does NOT do
mainagainst ~23 live agent sessions and 3 worktrees is a larger risk than a history exposure that 0 forks and 0 stars say nobody currently holds. Logged as a deferred decision./adr new:employer-evidence-boundary,boundary-enforced-by-construction,staged-history-remediation.The assumption this rests on
Recorded plainly in the ledger rather than buried: the ruling was made without either party reading the actual employment agreement or publication policy. If that policy requires pre-approval for any work-derived publication, this ruling is void and the boundary collapses to employer-indifferent. Worth reading before the first pattern-level artifact publishes, not after.
Unrelated live hazard, flagged not fixed
core-library/public/graph/selfco.json— 1.5 MB, untracked, not gitignored, in a public repo, carrying a protected term in a node title. Onegit add -Apublishes it. Different repo, so out of scope here; it wants a one-line.gitignoreentry.🤖 Generated with Claude Code