I0801 — Narrow the Clean Extraction Boundary and record what was adopted
Rewrite the Clean Extraction Boundary in docs/DESIGN.md so that it permits a generic deterministic provenance graph derived from this repository's own artifacts while continuing to exclude everything it excludes today, and record in docs/EXTRACTION_REPORT.md which architectural ideas from the studied prior art were adopted by re-derivation and which were refused, each with its reason.
DONE wave 0 · p1 · deep-work profile · parallel safe
Part of M003 — A session is a durable envelope, and knowledge is compiled from what is already canonical.
Objective
Rewrite the Clean Extraction Boundary in docs/DESIGN.md so that it permits a generic deterministic provenance graph derived from this repository's own artifacts while continuing to exclude everything it excludes today, and record in docs/EXTRACTION_REPORT.md which architectural ideas from the studied prior art were adopted by re-derivation and which were refused, each with its reason.
Why
The boundary currently reads 'graph semantics' among the things excluded absolutely. The rest of this milestone builds a reference graph. Shipping that against a published boundary that forbids it would make the boundary decorative, which is precisely the failure mode this project was built to detect. The adoption record exists so that the next reader can tell a re-derived idea from a copied implementation.
Current state
docs/DESIGN.md lists 'graph semantics' in the absolute exclusion sentence and lists ten items that crossed the boundary by abstraction. docs/EXTRACTION_REPORT.md records the evidence behind the v0.1 decisions and says nothing about session or knowledge tooling.
Desired state
The exclusion sentence distinguishes the domain, inference and semantic machinery that stays out from the generic provenance graph over this repository's own files that is now in. The adopted list names the session and knowledge ideas taken by re-derivation. A refusal list names what was studied and deliberately not taken, each with the reason, including the database, the embedding layer, the vault renderer and the copied-narrative session note.
Scope
- docs/DESIGN.md
- docs/EXTRACTION_REPORT.md
Out of scope
- Any implementation
- Any change to the ten items already recorded as having crossed the boundary
- Naming any internal path, component or vocabulary of the studied material
Dependencies
None. This issue is a root of the graph.
What waits on this
Acceptance criteria
- The boundary states what kind of graph is permitted and what kind is still excluded, in one sentence a reader can apply to a proposed feature
- The adoption list names each adopted idea and the Majordomus object it becomes
- The refusal list names each refused idea and why, with the databases and the embedding layer among them
- No internal path, hostname, component name or quotation from the studied material appears anywhere in either document
Validation
- bin/majordomus doctor
- bash test/run.sh 08_no_forbidden_constructs
Evidence required
- boundary_rewritten
Evidence
| covers | type | command | result | at commit |
|---|---|---|---|---|
| boundary_rewritten | manual | bin/majordomus doctor | exit 0, and test case 08_no_forbidden_constructs passes alongside it. The boundary now states a provenance test a reader can apply to a proposal: an edge that can name the line stating it is a reference, one that exists because something looked related is a semantic claim and stays out. Section 11 of the extraction report records the second-pass evidence, seventeen adopted ideas with the object each becomes here, and eleven refusals including every database, embeddings, generated summaries and a note-vault renderer | 2c4dc6f |
Risk
A boundary narrowed to fit the feature being built is not a boundary. The wording has to be one a reader could use to refuse a future proposal, not one that merely describes what is about to be committed.
Timeline
- started
- 2026-09-04T15:37:53Z
- verified
- —
- completed
- 2026-09-04T15:40:54Z
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I0801.yaml. Read it back with majordomus plan show I0801.