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
63 changes: 37 additions & 26 deletions ADOPTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@ locked session may deny the network request that would otherwise retrieve them.

For a first adoption, the default is the day-zero coordinator:

Release `v0.9.3` is published and contains the terminal Architect handoff
described below.
Release `v0.10.0` packages the conversation-first Architect handoff,
canonical-root enforcement, and corrected lifecycle classification described
below.

```text
python -m pip install "https://github.com/HLLMR/writwall/archive/refs/tags/v0.9.3.zip"
python -m pip install "https://github.com/HLLMR/writwall/archive/refs/tags/v0.10.0.zip"

# Installed command
writwall start --project-root /path/to/your-project
Expand All @@ -67,7 +68,14 @@ specific privacy screen in per-user local state outside the repository. The
bootstrap handoff records only ready status and entry count, never its location
or contents. Its clean/new branch remains create-only bootstrap tooling. See
[`docs/privacy-screen.md`](docs/privacy-screen.md).
Contradictory active state stops before output. Full interface and external-
Contradictory active state stops before output.

For a clean/new target, the ordinary invocation is conversation-first: it
asks nothing on the command line and hands off to a fresh Architect with a
bounded, local, non-secret inventory for an existing project, or one open
invitation for an empty one. The former full questionnaire remains available
verbatim behind `--structured-intake`; deterministic automation keeps using
`--non-interactive`. Full interface and external-
Operator packet behavior are documented in
[`docs/day-zero-coordinator.md`](docs/day-zero-coordinator.md).
The idea-first qualification and identity gate are documented in
Expand All @@ -86,10 +94,11 @@ handoff is temporary and must be removed before the adoption commit.

| Human command | Observed state | Fresh role receiving output | Prior session stops | Target bytes |
|---|---|---|---|---|
| `writwall start --project-root <project>` | Clean/new | Adoption coordinator | Launcher returns; coordinator stops at adoption closeout | Create-only bootstrap may be added |
| `writwall start --project-root <project>` | Clean/new (ordinary invocation) | Architect (conversation-first) | Launcher returns; the Architect stops before adoption mechanics until the Owner promotes | Create-only bootstrap may be added |
| `... --structured-intake` | Clean/new | Adoption coordinator | Launcher returns; coordinator stops at adoption closeout | Create-only bootstrap may be added |
| Same command | Partial/recovery | Recovery coordinator | Incomplete or locked session | Unchanged |
| Same command | Adopted/retired lockout | Owner-Agent / Project-Architect | Onboarding or prior work session | Unchanged |
| Same command | Active work order | Bounded Implementer | Prior coordinator or Implementer context | Unchanged |
| Same command | Adopted/retired lockout | Fresh General | Onboarding or prior work session | Unchanged |
| Same command | Active work order | Bounded Operator/Implementer | Prior coordinator or Implementer context | Unchanged |
| Same command | Malformed/contradictory | No role; fail-closed diagnostic | Invoking session | Unchanged |

---
Expand Down Expand Up @@ -293,35 +302,37 @@ What counts as proof is a **live-wall canary**: an Owner-authorized, genuinely m

5.9 Make the adoption commit containing `governance/`, the charter, the adapter, and DR-001. Its message names the baseline hash. This is one local commit; it is not a push, a tag, or a release. You may make it yourself or have an authorized recorder make it on your behalf after you have ratified exactly what it will contain — in either case the commit records a decision that was already yours.

5.10 End onboarding and hand the adopted project to a fresh Owner-Agent /
Project-Architect. The recorder presents this exact prompt and stops:
5.10 End onboarding and hand the adopted project to a fresh General. Earlier
releases called this continuity role `Owner-Agent / Project-Architect`; that
term remains compatibility vocabulary for older records, not the current route. The
recorder presents this exact prompt and stops:

```text
Act as a fresh Owner-Agent / Project-Architect. Begin read-only and verify
the lifecycle from repository bytes rather than prior chat. Read the charter,
Plan, State, Routing, ratified adoption record, and open transactional records.
State the project's next decision plainly. Draft, but do not activate or
implement, the smallest genuine work order or bounded external Operator packet.
Lead with a concise Recommendation and material tradeoff; keep the detailed
packet behind it as supporting evidence rather than the conversational front
door. When the next safe mechanical action is available, ask once for one
combined disposition and action. If that action uses a new user-owned task,
explicitly include creation and dispatch of the named task in that approval
request; never infer task-creation permission afterward. Once approved, perform
every mechanically available authorized step. Do not ask for the same decision again.
The human Owner alone ratifies intent and activates work; preserve a distinct
fresh review after implementation. The onboarding coordinator stops here and
does not continue into project work.
Act as a fresh General for this already-adopted project's continuity. Begin
read-only and verify the lifecycle from repository bytes rather than prior chat. Read the
charter, Plan, State, Routing, ratified adoption record, and open transactional records. State
the project's next decision plainly. Prepare, but do not activate, the smallest genuine work
order or bounded Operator packet; route it to a fresh Architect instead only when the next
decision requires new design or design-conformance judgment rather than routine continuity. Lead
with a concise Recommendation and material tradeoff; keep the detailed packet behind it as
supporting evidence rather than the conversational front door. When the next safe mechanical
action is available, ask once for one combined disposition and action. If that action uses a new
user-owned task, explicitly include creation and dispatch of the named task in that approval
request; never infer task-creation permission afterward. Once approved, perform every
mechanically available authorized step. Do not ask for the same decision again. The human Owner
alone ratifies intent and activates work; preserve a distinct fresh Reviewer after
implementation. The onboarding coordinator stops here and does not continue into project work.
```

The Architect drafts whatever genuine work the project needs next (6.1.4),
The General prepares whatever genuine work the project needs next (6.1.4),
including a bounded external Operator packet when that is smaller than a
repository work order. It leads with its recommendation and material tradeoff;
the complete packet is supporting evidence. When a safe next mechanical action
is available, its single approval request combines the disposition with that
action. A new user-owned task is created or dispatched only when that same
request explicitly asks for it. After approval, the Architect performs all
request explicitly asks for it. After approval, the General performs all
mechanically available authorized steps without asking for the decision again.
New design or design-conformance judgment is routed to a fresh Architect.

For a repository work order, activation remains a distinct Owner decision.
After the candidate passes `--work-order`, the Owner-authorized lifecycle
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ gate against the final checked public candidate on native Windows and native
Ubuntu:

```text
python checks/check_coordinator_release.py <external-candidate-directory> --expected-tag v0.9.3
python checks/check_coordinator_release.py <external-candidate-directory> --expected-tag v0.10.0
```

The gate copies the candidate to temporary build space, builds and installs the
Expand Down
38 changes: 19 additions & 19 deletions PROJECTION-MANIFEST.sha256
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ b2e36dfcfc6eb31570c9340640bcd73abc62f57c80b4794abf36e3d3e89ab34f .github/depend
9e90d43615b02a265b08692ef7a1c00a37477a5c6b1e8233a8fc7bedefaedea6 .github/pull_request_template.md
3c35b31bc2b80d101a3a549da68fec55587b6a6428ce6b32112670276490ce23 .github/workflows/ci.yml
e544abe8ffd83c81c7b002cbd2e552f9d56f226ea20e1e0722c5d1bdec914fe0 .gitignore
4e610d391b2c3ba95a269ab1112464feca5263c648e78fc2aefc6b713d3fc817 ADOPTING.md
32800f8e4b24c8bc96ad6ddb80ddb2c523d20719945a3042d81e09a74d3ce301 ADOPTING.md
1179c999034f4ec1c1d44c1946bd2955c4625905e80767abe760c8c3ab01c493 CLAUDE.md
86f3193d5174d8bc5a594a2c5a065de97255e9f223da374632c8eb3f592ca6ab CONTRIBUTING.md
881dc7401aaaa3aa148be143bd3e191fc7f883466027cbc77e47ed4cc8f79b6a CONTRIBUTING.md
664196054cd98585105be457afa09c788a482416ccb48a87bb269b2156e49ae6 DOCTRINE.md
9ba9550ad48438d0836ddab3da480b3b69ffa0aac7b7878b5a0039e7ab429411 LICENSE
a38775f2d68b40577253ee48061ba67af3c75b7620dc506b34b40ce2a3b660ee LICENSE-MAP.md
Expand All @@ -16,17 +16,17 @@ c274f80372d90c012937370f0e1f15087d22e308ef98b27cea5dc0d2d088366c LICENSES/Apach
a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499 LICENSES/CC0-1.0.txt
59746d6285ffa44bfc7ecada352aa5d6a20dc8eab418a60ce091cc739012c135 LICENSES/MIT-0.txt
35e6d37b7c5fa0c1fc872315cbd362cd24bfa41e1b7dc3019fbcd31e99350f51 NAMING.md
bd0e416ac56565c27fa3ab00d3248a04ef825f4cd3a6c1a815bb919f35816202 PROJECTION-PROVENANCE.md
9716fb18ddca4626791e17474cdba2fd343f47886080c6ff8b1e7c41f63830ec PUBLICATION.md
d05596604edc06e5ac5c2502ecd61b945e0caa41fe63a39de66a3d58fa2e1e2b README.md
a4322cd5b31594139c3f5bde2f7442aad89812ba56cdaa32818f976217149544 PROJECTION-PROVENANCE.md
925d0d79412b04c9a4f80d4adef2f6dd21d76b4492d37f3d1fcf40b20a70c235 PUBLICATION.md
d76060c70c361a64b52e9df88e400789c24fbc4fecd2b731dfe8a709a34e5e5e README.md
284a0862f3be77e8d867aa4d3ef92ed1a64ad4315d6d9074f6bb64771b6d1dd0 REUSE.toml
ab75b39490b4db4e203f5b23b480a1c998d87cf07d760cb787cb260778b21d0a SECURITY.md
6a51c1211cc675599634d144ca24a705ec1696f84640a6464b14efb1d6c3a629 SELF-HOSTING.md
b6a970033c7fb8d6976471216d68f8c961e2417657b655801f191319b9d3e702 START-HERE.md
d9eb0445ef4da08bae1e3a7e81a03e92f2488eee1c1e68254f5c5fc640a99ff8 START-HERE.md
75c7ae0f569148f489570d63df916a70b6ccf24b77db2076cdee29663f747428 adapters/claude-code/README.md
aeb7f81d139e7ffa6de9a1782444b99eb6d549ac1c3a8b9c0f8bcb9c6addfa6d adapters/claude-code/SECURITY.md
dd29af2a39d25e0270ad9acc23ee912f81e39c674e1179759f4a3010c6a0c1a0 adapters/claude-code/wo_capability_wall.py
cb1647439902b2ee7546ed7c7c84375f01164b662047e99f42002f5e5a8335bf checks/check_coordinator_release.py
ecc969827cb19e9d8cba3e7b369ff2b81d6407544f86a12a139b5c482624bbb7 checks/check_coordinator_release.py
b872c46f8a8ea2fc317b4c4fd0af00c9145012b11256c923987d878d79c726c2 checks/check_distribution.py
60fe377dac32b8d1697f859371ef40d26ed4e695fdceeda6d29ec0318d539504 checks/check_identity.py
30986c40ff7c9b29e2fba39ec04c18af3c1c351490410bd532a8391bcb92ed11 checks/check_licenses.py
Expand All @@ -42,13 +42,13 @@ d9f01820bd45d8dad46e7fd307e0b6986a41d6cd2071da353530421aeea46f70 decisions/LICE
fa88788242d920999b6e6737ea60b03dfe3f9ba2e0d90386b6bbcfeb6acd0509 docs/agents/domain.md
98305d69cb8ff9ebdd44d815248c4619aecc09295891c043e1423d1189888a49 docs/agents/issue-tracker.md
2177e1dbec58d14cb20e3b15fcb2cfb3ba6671025ba86a72e603c59d5cc09a06 docs/agents/triage-labels.md
12348d1eaa4e769fc66a50de210fbfab19133002b5dea9a432ed37e0cd860411 docs/architect-interview.md
3c7c89cbe276c65fddf565a743042a5c1a58f7dfe0208b3957260177eb327a27 docs/architect-interview.md
5200a1511a781cfe49baf10177880cfc6e4e18eb8f9a55ca9e17ab4f9b35a312 docs/assets/writwall-og.png
55816569390363947ecc7735d7de13a3f59b8dae51f92383967e130b3a56d2a6 docs/assets/writwall-og.svg
0a5259d80265765aee16a421546e44458a1aabeecfa8c7f7dea8aead6a79655b docs/assets/writwall-readme-banner-0a5259d8.png
ad0fb4f671b8da9e3ab9720af7b39ac9c93201e6131c1df996e090a2bb2acc8a docs/assets/writwall-readme-banner.svg
7cfd0ae28d07cdfbb367adc4f7e606a1538ebf61ff140a32f8e793028110cedf docs/bootstrap-charter-addendum.md
d5c6554675bd34015949381bce96b7f46309bc27db12a5e583f3f4b2f9c2e2ca docs/day-zero-coordinator.md
fdab8ed3cbb4f0ac24f9d39565baddea6b83984f698c2c48166b05590aff21ef docs/day-zero-coordinator.md
e1214e3e6018642809339249bb091a6fd754847b4f77c4bc7a39c5c87e6769cc docs/identity-migration.md
4d54cd53db8c165b40af7eb11b97a7f4faf5f23479c0efc8238e5d463b159008 docs/name-clearance.md
1eef400dd2e12b109ceb9b30c107dbd7f25d3c64182346dd0f370bf9ccaa7088 docs/privacy-screen.md
Expand All @@ -61,11 +61,11 @@ d2c5a8ca21edf842dfd17a83862024afa0a92349abf693a60e55ce454c8d78fa examples/name-
0d62666ddc07a4283309bcbc8f9501add4ecec052d26369d30ce232e17c17702 examples/plumbline-self-hosting-pilot.md
30cdb11fbeb2fd9bbf4048255331ccbbdd6e516fae5adfa5317af00ce53607c9 governance/ADOPTION-MAPPING.md
08b235351ab7799715b1e2df4fa3dd9fa88bb85084c8aade4d01039bf255b489 governance/LOG-denials-probes.md
72581985a0c16bcd2c2abe5e871a23918be3acc320e0529c94c4a0aa07207033 governance/LOG-denials.jsonl
8a27c2cda1dbbb3d38ca03f1745352abb0ab07290d691dd4f063d3e274da425f governance/LOG.md
0a1cfae5dcd8d475a599fff8bb8c07c745f4baae63adb8def5ddbcad6cfb13ea governance/PLAN.md
5dba70f7d7263ecd10ecb2c18867b6c2c5870a3e001c25c7797d3d61feae680a governance/LOG-denials.jsonl
0720409460b68d93ae72010abab3162d1cc09cd275ddae6fa309ef7fe7b6eef3 governance/LOG.md
020bfe95a6b70da6a14dcc63087f1d90f1625fd6c08454ff8951044e04a2b0be governance/PLAN.md
dd445eb2994e0d9615bc61fe2ae157a6b14ba7b190c65b705d380b31c49fdfe0 governance/ROUTING.md
4ad60876ac2ff78f8eb212e0c4b54a42dd5c1131780a2b1add58f9367bcd0ee7 governance/STATE.md
acea5eaf4e6dbee69d8e425c2848fd7f324fd67ea3a57f29a953efab46e28ce6 governance/STATE.md
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 governance/archive/.gitkeep
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 governance/briefs/.gitkeep
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 governance/decisions/.gitkeep
Expand All @@ -82,20 +82,20 @@ b567ce0c0867464328e81774d888f6491fa66b68ac73be01f993e5c4c66d3ed8 governance/tem
d355e46f978f17de8824af805e05124e0f20b1c072523b518422044f88c6f079 governance/templates/D-adoption-record.md
2b586efadab716a59fcafb74312a45a05401a4787fee6ae18cb5c9dd14ef3a09 governance/templates/E-adoption-mapping.md
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 governance/work-orders/.gitkeep
2bccff453a30dcc8556221b3552a2b3b58616c16b023e008478b912f10029fb0 identity/legacy-references.json
51963137bf9d19220e4164072e7b3dee7d1312b714494b8728466e22ad8e63c9 identity/legacy-references.json
345b7e962731c085a95aea66a344eae000b27c9bde13b0d790c76b73273dbe7a init.sh
5c90584642f405534b2071f27396ff293ab01632e4dbb8ccb6b8ec043dca4cc9 migration-guides/0.1-to-0.6.md
ba4eff258ca5b9a45f3f9f1cbf646ba5bc5521fae812adacac65cd2e78698c9d migration-guides/0.6-to-0.7.md
7be9ff49c33830f929584e9e6756f06be8634b1c79ff7210bf5184b51bfc0769 migration-guides/0.7-to-0.8.md
fafcbf659c40d7260dddaa8a64b6b59c3b7de484f77d879a90323bb4b3e1a4a7 projection/public-files.txt
cb875755a70e151f9ea75b11d88da8dff8f5e9732ff923c5d01156ecc392a445 pyproject.toml
1d9014a4540d81ecfd3b2bbe24577c5bc98999b53e3ca8158dd8600744772449 pyproject.toml
455ca1ab3c9e7e78afbb9946e13b94497ba24003ab6f411ea96cce26d4ecc39e scripts/build_distribution.py
bdbe47e8ea246ceafb874229d5582a9cc18db7c66250c9873d50a787bd5d9fe2 scripts/build_public_projection.py
3cf88f936599e0e84bc2368bc0503a39b9f96e47b473e09b26569e5c3c9edbd9 scripts/collect_name_clearance.py
c372f7f1736eb77bedaca43696ea0b060333733f912053479b363442022c4b24 scripts/privacy_screen.py
fb793b5d08981e9a2f44f62c26d79d3652aa56f5d6db600fca4ce5546ba2c141 scripts/start_writwall.py
c367c7f4397c926701dda0a4118a2e1286787157d7de1d8f51fa207ec50021c4 scripts/start_writwall.py
374f4e8a80b7b9e162b9360a3907b6ffe12ce94ba0ed827058c7b3c9c0658b2c skills/writwall-adopt/LICENSE-MAP.md
1c15f2a97cddf727f3173b8971e6ea3e05ab93f57664f8c3031eb0e634a87933 skills/writwall-adopt/SKILL.md
02e75310dca3d528b4c5cd2ee9d8a57a89390365037c941010a6b2c1c9eb918e skills/writwall-adopt/SKILL.md
75c7ae0f569148f489570d63df916a70b6ccf24b77db2076cdee29663f747428 skills/writwall-adopt/assets/adapters/claude-code/README.md
dd29af2a39d25e0270ad9acc23ee912f81e39c674e1179759f4a3010c6a0c1a0 skills/writwall-adopt/assets/adapters/claude-code/wo_capability_wall.py
7cfd0ae28d07cdfbb367adc4f7e606a1538ebf61ff140a32f8e793028110cedf skills/writwall-adopt/assets/bootstrap-charter-addendum.md
Expand All @@ -121,14 +121,14 @@ d355e46f978f17de8824af805e05124e0f20b1c072523b518422044f88c6f079 templates/D-ad
9924816cbbeade6f88f79d3e06fe04d143d801783888210ac2325925d69e4bdb tests/test_check_distribution.py
b046f2eea794070194294a33f2914e627eed384e63fccffc2ac46693db2a968c tests/test_check_licenses.py
9a106ff5182b4a15713575de42e90b0dc5cdeebcb17ba08d97522a4c9aa6b2fa tests/test_check_work_order_dispatch.py
304066215be7c840888f9dc5afdd3e9b0470907ce18bb1f1157370c320743f16 tests/test_coordinator_release.py
6fc58f3e82282c51b0604c9bd24808f6f53c9d543fb4d4ccf18ec1fc5a638676 tests/test_coordinator_release.py
6483f84819c08284b989252f4a40a42e8eca64fec5fda303cec62350c19328d0 tests/test_distribution.py
e150a2f988a4b0beac5f70644f55f5e185a8aa575e988a19642bafabc0f07775 tests/test_identity_migration.py
11cd8090dbc53e8aa6a2f14cb181c8a11696335da8f40700eae5116798e49ba5 tests/test_init_sh.py
96c255d84e37b8884cde769897e763776b81027080c2308c33dc5e4b8df4a4bf tests/test_name_clearance.py
677d5b532450ace267be9c834269c081368697cd83defa5531ce673f6d0ca252 tests/test_privacy_screen.py
ee771c239c0fc072675f88617dec7e330c1e19be90a8b22691d7049dbb5a4544 tests/test_public_projection.py
478a470078cfb0ac10a9e93c5d4c656830bf089f7b7a4999c7ce975b7dc0b08e tests/test_start_writwall.py
2bc96f1dfd6febc1d281494720125602f01293838614ffe9850b3d2a9fb78f6b tests/test_start_writwall.py
0684c04067eb95eadc9f72ab126d8662b4a5e2005c80b2dea174075a6140eebc tests/test_wo_capability_wall.py
e8caf7f4421dc7f78b0d766741ec2ef4c2ac6dab6117fab6e4175b27d31e4d49 writwall_cli/__init__.py
9e0fbb2625b7a99ed80a3a708f8a0742d91bbf7e3cd2862d21a75515031083e5 writwall_cli/__main__.py
Expand Down
6 changes: 4 additions & 2 deletions PROJECTION-PROVENANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,19 @@ Legacy commit identifiers in projected records refer to that private
source and are intentionally not resolvable from fresh public history.
No private remote URL is recorded here.

- Source commit: `ae6ca4e29493b7c33738756190dc1bbf1617388d`
- Source commit time: `2026-09-02T20:30:55-05:00`
- Source commit: `be8cfa99b53996d140433610b12886cf62c444f0`
- Source commit time: `2026-09-03T17:19:47-05:00`
- Projection allowlist SHA-256: `fafcbf659c40d7260dddaa8a64b6b59c3b7de484f77d879a90323bb4b3e1a4a7`

## Legacy identifier inventory

- `0000000000000000000000000000000000000000` — `checks/check_coordinator_release.py`
- `11d5960a326750d5838078e36cf38b85af677262` — `tests/test_distribution.py`
- `3d3c42e5aac5ba805825da76410c181273ba90b1` — `.github/workflows/ci.yml`, `tests/test_distribution.py`
- `5fda3b95a4ea91299a34e894583c3862153e4b97` — `.github/workflows/ci.yml`, `tests/test_distribution.py`
- `6e165e585f907baf83a787ba5cc71270a5a4652e` — `checks/check_distribution.py`, `governance/decisions/DR-001.md`, `tests/test_distribution.py`
- `8d5b2b3668ef626525e57028ac09661e17d44edc` — `governance/LOG.md`, `governance/PLAN.md`, `governance/STATE.md`, `governance/decisions/DR-001.md`
- `92846c03f60303efd9f0e2fc14a99bbca2e1daea` — `governance/PLAN.md`
- `a26af69be951a213d495a4c3e4e4022e16d87065` — `tests/test_distribution.py`
- `a6a71fee0b567e8c70a7ea518398af48b4d0175d` — `governance/decisions/DR-001.md`
- `a905c87987f31094121c11a3b8163f97ef1abcf4` — `SELF-HOSTING.md`, `governance/STATE.md`, `governance/decisions/DR-001.md`
Expand Down
2 changes: 1 addition & 1 deletion PUBLICATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ point. Before creating a release tag, run this gate against the final external
candidate on native Windows and native Ubuntu, naming the exact intended tag:

```text
python checks/check_coordinator_release.py <candidate-directory> --expected-tag v0.9.3
python checks/check_coordinator_release.py <candidate-directory> --expected-tag v0.10.0
```

The command fails before building unless the canonical intended tag matches
Expand Down
Loading