Skip to content

Commit dc74ccb

Browse files
Sync Boatstack from Intelligence Flow Labs @ 4b31ab388751
1 parent 0b71c21 commit dc74ccb

9 files changed

Lines changed: 583 additions & 26 deletions

File tree

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Contributing
44

5-
Boatstack is a generated content distribution. Propose changes to workflow semantics, templates, evidence rules, or generated presentation in [Intelligence Flow](https://github.com/operatorstack/intelligence-flow/tree/039454bde99f8059e1a8ee0356ef433f7837cd74/labs/12-product-engineering-loop).
5+
Boatstack is a generated content distribution. Propose changes to workflow semantics, templates, evidence rules, or generated presentation in [Intelligence Flow](https://github.com/operatorstack/intelligence-flow/tree/4b31ab38875160d6ef71a85c65efcdb4bd7ad91b/labs/12-product-engineering-loop).
66

77
The Boatstack repository receives product/runtime changes through a generated pull request. Review the PR's `UPSTREAM.json`, tests, adapter diff, and context-size change; do not hand-edit generated output on `main`. `.github/workflows` is the exception: it is Boatstack's executable control plane, excluded from scheduled projection and changed only through a separate manually reviewed Boatstack PR.
88

UPSTREAM.json

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"canonical_context": {
3-
"characters": 80947,
4-
"estimated_tokens": 20237,
3+
"characters": 83659,
4+
"estimated_tokens": 20915,
55
"estimator": "ceil(total characters / 4); compactness signal, not provider billing",
66
"files": [
77
"product-engineering-loop/references/workflow.md",
@@ -12,7 +12,7 @@
1212
},
1313
"files": {
1414
".gitignore": "a7079e923a776f14f1bb3a6aa0a11a133a8e1dfb35af020f327623357b7e3957",
15-
"CONTRIBUTING.md": "583ad367e1375a741b32879d96dbf084a8c6b3ed8edc6d701342f7b384fc27f1",
15+
"CONTRIBUTING.md": "9361609e7207a8b0dc8b9257e180798e08e4ec88b9e39b00f93453d9699efb9f",
1616
"README.md": "3ce3e95e511089b44e946a44b8d5f4f81d019ece5336db65b2cab1f9dc4d4dad",
1717
"assets/boatstack-journey.svg": "e465befc50c8ce30f3e07e8fd97012931beeb053392c8fbf38ad645023b3cc63",
1818
"assets/boatstack-mark.svg": "be1f984da1bfa69fa5d1f986d8343d21f7e20921b71db888c928b4d2e54b09b5",
@@ -149,7 +149,7 @@
149149
"boatstack/reexec.go": "fed55416479d7bd3e0c3637057ffe8eb58a032f93fc358f76df906ab7acc677b",
150150
"boatstack/reexec_unix.go": "ff86157a9aa20c82a56fcd859b70669b7eacf4e0a9f61a4546ef33808437939e",
151151
"boatstack/reexec_windows.go": "f5335c8c28cb4e89048b058b1c4d12f78644f99acb4f6167ff60e622dfb9e742",
152-
"boatstack/references/artifacts.md": "5fa888ac519085d65cee1d04df5902761651bcf2d7af81711fa0f8ecd1fc0f59",
152+
"boatstack/references/artifacts.md": "9589849796553dfb433c3d49f2d75f49fd2b50e03068f481c41776f1d4cef066",
153153
"boatstack/references/config-schema.md": "eff8586850eca9941df1cea29ac7edb779277ed9bd6d938a1980db5028d28cf4",
154154
"boatstack/references/failure-moves.md": "b65ef72035afa6ad0dce589a0b38f84bc40cde3864c9ecf973f08fc687f001c3",
155155
"boatstack/references/host-hook-contracts.md": "2a89d44d0e418a53f2e3b6300fed957cdf878f45ea97ce24b55b66065f0eaa1d",
@@ -171,6 +171,8 @@
171171
"boatstack/safety_update_publisher_test.go": "ed3f8187036623694dfe7c395cdae00fdae14609bab6124d1fdfc6fe73fa2196",
172172
"boatstack/skill_frontmatter.go": "73364df463ce828c2d005aab55f72bb92f7a34d99cf3f53d4e0cd5a4da9dbd0e",
173173
"boatstack/skill_frontmatter_test.go": "a3ec52e7df357a72265c95dd66db15d9c0effc7e5f90f14ce69c27792ce394eb",
174+
"boatstack/statemap.go": "39ff3a7a7254ec5fde8340551fa92a82aac3f00a48bea34c94192823dcb41337",
175+
"boatstack/statemap_conformance_test.go": "38950377d10b97f4223b79cdb16b17c29a6334f8f2a9a4d826ce12cbd292aa57",
174176
"boatstack/supervisory_control_test.go": "c7ea4bcd678e8ec211dac772c834981c4e21762914be2770a5e181bc24605e06",
175177
"boatstack/testdata/reviewer-pr-body.md": "4c64e3788e5d61a377aeb0f797f7fc8d2316ab6e49572d15636eea7ba9e34ac4",
176178
"boatstack/testdata/safety/safe_apply.py.txt": "c9ec7fb932cf21b6aa8df597c4d4c54d6ec65e796240e49118d699f583383975",
@@ -193,10 +195,10 @@
193195
"docs/benchmark-corpus-audit.md": "f2d206fe8579a514f9da82b2c96c19b343ac004be67617e1bd34f0f8e0e5e6c6",
194196
"docs/benchmark-submission-audit.md": "9518abdd17690729c6423f87cab20418ed47b0915b5faa44b9ef975e9e9c3b79",
195197
"docs/configuration.md": "060775c73431f28bd16066bdf9e0f89034d2855c7ca0f5544f660d24b91211d0",
196-
"docs/evidence-engineered-coding.md": "c81d462de78afc834b04acc99e6a816f97ac6e05c98f065a35167eb9feb4fce7",
198+
"docs/evidence-engineered-coding.md": "e4eb592093db7fb1ce18f41fe7dd1c89efbaa76760fd618c3375f27fa507b684",
197199
"docs/generated-files.md": "437791765b0a4015032ae21d1a6618563cad92b7402819e4f963bf5ae16284a3",
198200
"docs/getting-started.md": "51c2823f21e35140d31e6d5083dc4b89fddd24721ac6acc474154a4da53ee9f8",
199-
"docs/public-claims.json": "79ddc45aebfbbaba1054a731413183a47da0d1c6c299e444869d6986a27f7498",
201+
"docs/public-claims.json": "a243fcd3b9a12ef51f491b77b4646db6f8d4b7d435d9b5f0402b97941d73821a",
200202
"docs/public-surface.md": "713f7a050b5f339cf948299103ef3800417dccfecf2cc1a4166397ea6f978907",
201203
"docs/research-and-design.md": "8d78678108f0a6c924e1ff9b32c0f81aae9d1f779e0082843b6f99ad993ae2b6",
202204
"docs/safety.md": "7b9b5c515d36e683767ec8d3d9d6d119ac93650b2f629d351deadd4c600ed6a6",
@@ -210,7 +212,7 @@
210212
"labs/diagram-json/compiled/evidence.md": "1ba1c989ade070a8ef9a508fbd788d100d7292f2dbacbb2bce895468019f619d",
211213
"labs/diagram-json/compiled/tasks.json": "88f60851abf79d851e9fccc754ff3040034ae595306bc87d64784c19eb403e71",
212214
"labs/diagram-json/compiled/test-matrix.json": "424657ff505768e50fa113801fd8363364a18269d5297480907a993d44063a39",
213-
"labs/diagram-json/plan.lock.json": "5807b7d5140a41e9db5a20256e4bd4adebb2820778db2f378803059dd111ea45",
215+
"labs/diagram-json/plan.lock.json": "06b5298ea7a2f9a3db31eb3b1a9bee41a74168a2f3ff02bf5d8a00183705392d",
214216
"labs/diagram-json/plan.md": "3cc4f533b8d69386deff16b3a594a3ba09d4c0c3db636cccd8c4380084ce6a51",
215217
"labs/diagram-json/questions.md": "74733b015002c8a6777c558e7e997fa48c94850b9bd39054fe9366c97ecf728d",
216218
"labs/diagram-json/request.md": "0808fc41c36779c404f4a3a121167da6e76cac56df526e70f9ed6d3e0d4c02ed",
@@ -333,12 +335,13 @@
333335
"release-notes/2026-07-27-invalid-delivery-block-actionable.md": "8fac8e3921e2285291703efa46e624b72cb5bac1b8492beca4c4b633abb5ba16",
334336
"release-notes/2026-07-27-prescriptive-planning-closure.md": "e544408e1c3cceb0cb1979833ea120853c38020933439b39e7f009f454b9661e",
335337
"release-notes/2026-07-27-read-only-inspection-pipelines.md": "0963286371e9a12592915c23a958dd013bf2a35e9fca6921691bc8bb3c3d8dc8",
336-
"release-notes/2026-07-27-sandboxed-migration-grading.md": "03cebc372bbdfed37cc70d18f3b6374d1aa5e585bafefa073dbcced58bd0336a"
338+
"release-notes/2026-07-27-sandboxed-migration-grading.md": "03cebc372bbdfed37cc70d18f3b6374d1aa5e585bafefa073dbcced58bd0336a",
339+
"release-notes/2026-07-27-state-ownership-map.md": "d032547aafc1a4acbeb520f6cbb59d7757de4f33fe824701d7b5ea8cd8c8b9e7"
337340
},
338341
"generator": "operatorstack/intelligence-flow:boatstack-distribution",
339342
"schema_version": 1,
340343
"source": {
341-
"commit": "039454bde99f8059e1a8ee0356ef433f7837cd74",
344+
"commit": "4b31ab38875160d6ef71a85c65efcdb4bd7ad91b",
342345
"path": "labs/12-product-engineering-loop",
343346
"repository": "operatorstack/intelligence-flow"
344347
}

boatstack/references/artifacts.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,54 @@ ledger while the publisher rechecks the matching receipts.
9595

9696
The generated host hook fragments and launchers are committed installation infrastructure. Their policy is immutable in project configuration. Cursor pre/post native, shell, and MCP events; Claude and Codex `PreToolUse`/`PostToolUse`; and Gemini `BeforeTool`/`AfterTool` project into one classifier and completion observer. The machine-local helper is ignored and restored by the installer. Safety evidence belongs in the feature evidence ledger: target identity, failure behavior, independent oracle, operational-diff scan, and the operator-only recovery boundary. A source edit is reviewable evidence, not permission to execute it.
9797

98-
Operation receipts live under Git-common `boatstack/operations/v1`, never in Git history. They distinguish prepared, executing, unknown, retryable, and terminal work across turns and linked worktrees. Receipts contain hashes and bounded observations rather than commands, tool payloads, responses, credentials, or autonomous workflow intent. Terminal identities remain long enough to consume delayed duplicate events; old detail is compacted.
98+
Operation receipts live under the current worktree's Git directory at `boatstack/operations/v2`, never in Git history. (The Git-common `operations/v1` ledger is the orphaned pre-isolation layout; `doctor` prunes it.) They distinguish prepared, executing, unknown, retryable, and terminal work across turns and linked worktrees. Receipts contain hashes and bounded observations rather than commands, tool payloads, responses, credentials, or autonomous workflow intent. Terminal identities remain long enough to consume delayed duplicate events; old detail is compacted.
9999

100100
Installation repair receipts and backups live under Git-common `boatstack/updates/<version>` and `boatstack/repair-backups/<fingerprint>`. The checksum-verified target helper owns this recovery plane. Exact installed fragments migrate automatically; `--repair` covers only a displayed fingerprinted owned-state package. User-owned or ambiguous state is never converted into repair authority.
101101

102102
## PR visual evidence boundary
103103

104104
When `workflow.pr_visual_evidence` is enabled, the approved plan records whether screenshots are relevant and names no more than three review scenarios. PNG bytes and capability receipts live under Git-common Boatstack state; committed ledgers retain only compact metadata and hashes. PR schema v3 binds the policy, status, count, and manifest fingerprint to the preview. Screenshots are human-review evidence rather than mechanical correctness proof.
105105

106+
## State ownership
107+
108+
Every tree Boatstack manages has one declared owner, class, and partition. The
109+
authoritative registry is `StateRegistry` in the runtime; this table mirrors it
110+
and a conformance test holds the two together, so neither can drift silently.
111+
Partitions: `checkout` lives in the working tree, `per-worktree` under the
112+
worktree's own Git directory, `git-common` shared by every worktree of the
113+
clone, `external` outside the repository (Detached Supervision).
114+
115+
| Name | Class | Partition | Owned by |
116+
| --- | --- | --- | --- |
117+
| project-config | committed-generated | checkout | init, update, export |
118+
| source-config | committed-generated | checkout | init, migrate-config, update |
119+
| generated-references | committed-generated | checkout | init, update, export |
120+
| guard-hooks | committed-generated | checkout | init, update, export |
121+
| generated-lock | committed-generated | checkout | init, update, export |
122+
| planning-artifacts | committed-planning | checkout | planning-write |
123+
| approval-receipt | committed-planning | checkout | record-approval |
124+
| plan-lock | committed-planning | checkout | activate-plan |
125+
| compiled-artifacts | committed-planning | checkout | activate-plan |
126+
| pr-preview | committed-planning | checkout | ship-gate, publish-pr |
127+
| change-ledger | committed-planning | checkout | record-change |
128+
| discard-archive | committed-planning | checkout | discard-delivery |
129+
| pr-briefs | committed-planning | checkout | pr-context |
130+
| verified-boundaries | committed-planning | checkout | record-delivery-gate |
131+
| worktree-helper | checkout-runtime | checkout | init, update, hydrate-runtime |
132+
| managed-worktrees | checkout-runtime | checkout | workspace-cut, workspace-cleanup, workspace-reap |
133+
| delivery-state | runtime-worktree | per-worktree | delivery transitions |
134+
| operation-ledger | runtime-worktree | per-worktree | run-preflight, publishers |
135+
| flow-logs | runtime-worktree | per-worktree | flow |
136+
| runtime-slots | runtime-shared | git-common | init, update, hydrate-runtime |
137+
| mutation-receipts | runtime-shared | git-common | activate-plan, undo |
138+
| update-previews | runtime-shared | git-common | prepare-update-pr, publish-update-pr |
139+
| repair-receipts | runtime-shared | git-common | update |
140+
| visual-evidence | runtime-shared | git-common | evidence verbs |
141+
| quarantine | runtime-shared | git-common | repair-state |
142+
| host-hook-config | host-activation | checkout | activation merge only |
143+
| detached-registry | detached | external | attach, detach |
144+
| detached-repositories | detached | external | attach, detach, activate |
145+
106146
## Templates
107147

108148
Copy only the templates required for the current slice from `assets/templates/`. Do not create empty ceremony. The feature spec, question ledger, test plan, gap ledger, and evidence ledger are the usual minimum for material product work.

0 commit comments

Comments
 (0)