Skip to content

Commit c0bbfd3

Browse files
Sync Boatstack from Intelligence Flow Labs @ 76a1339c3bfb (#93)
Co-authored-by: operator-stack-publisher[bot] <operator-stack-publisher[bot]@users.noreply.github.com>
1 parent 7e66427 commit c0bbfd3

23 files changed

Lines changed: 987 additions & 44 deletions

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/df798dfd69a002bb8b9970216adf4f8afbe2b6ca/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/76a1339c3bfb8c7a75cc3e3f7a408cf8736b5e75/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: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"canonical_context": {
3-
"characters": 67135,
4-
"estimated_tokens": 16784,
3+
"characters": 73472,
4+
"estimated_tokens": 18368,
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": "0404effd19cc9816e5aa60b4924c1cae5be7ebeb0470f3315d0e2388bc44699e",
15+
"CONTRIBUTING.md": "0a0005c09ebc1aa11103648517f7a14cdc4a19f4de07ec8fb121c1597477ff9d",
1616
"README.md": "125b47671a68556df382f19756fb61fa18925606cbbaf54d6bc9df8872b36870",
1717
"assets/boatstack-journey.svg": "e465befc50c8ce30f3e07e8fd97012931beeb053392c8fbf38ad645023b3cc63",
1818
"assets/boatstack-mark.svg": "be1f984da1bfa69fa5d1f986d8343d21f7e20921b71db888c928b4d2e54b09b5",
@@ -40,7 +40,7 @@
4040
"boatstack/capture_test.go": "63fa1177738081f1e862364d7a4257f5e259f8e9c36276ba1775b8085b277105",
4141
"boatstack/changelog.go": "6b06be7cd9738de29ba6e87aa2569f3b027a2e618b04524f5abd7abaa17945bf",
4242
"boatstack/changelog_test.go": "ce792f23a7fe1e09fb3096cd1314130a6ab69321d4877b12a8e994027541baf7",
43-
"boatstack/cmd/boatstack-helper/main.go": "3ffcaa8907113fa581c3c6500196b9c898427a07821f10fc4bee09393ad3eb6c",
43+
"boatstack/cmd/boatstack-helper/main.go": "e5eea92ddc73622566c4b66b3d99c63b998268617f7b3fa77be953f75a971a75",
4444
"boatstack/cmd/boatstack-helper/main_test.go": "ff73003b6a5157202fa09ddf1129fb13c3d79702b2e05a8721ce5a11bf5ab779",
4545
"boatstack/command.go": "4726ac515dedab4947be7eb48f88c6cb8b53d674124504b69f03e6396b080ee8",
4646
"boatstack/command_test.go": "9f707abba3640add81c3e97ba7e72fedbf98f3394b1c060a9ca4b4a28e919968",
@@ -54,9 +54,11 @@
5454
"boatstack/export_test.go": "67eb890728d20630925d6e4e90d2a97ec025195ba5c54994c1b098ab72721dca",
5555
"boatstack/go.mod": "6086ef1b2a83f5696190dca692c653925f27b61f652f659fd3fca43ed54a1641",
5656
"boatstack/go.sum": "26c315c867b11b886f3c9402fce7f341f6a9115a5d61f54afbb5e1b1fb5f6017",
57-
"boatstack/hooks.go": "b88cedcd045e5217fedfac625ced2e4f691adb42e62155fcbc392a8f6d88366e",
58-
"boatstack/hooks_test.go": "c5786bc6463cf6932a6612b26cbe65d035008ecbca5c0063bea253d857c2f622",
59-
"boatstack/init.go": "b9b73449e889359d8a4e354e3df18ef4db20e1325b960976f543003563913769",
57+
"boatstack/hooks.go": "0639eff2ec5ce50dcbe77ace0f7c25de1e9a68784a6ed70d6acc9984d049ef1a",
58+
"boatstack/hooks_hydrate_test.go": "8b6317cbaa1f46e71505534672fa21ef9281e0920e9ecda18d2e4b47d5a8799e",
59+
"boatstack/hooks_test.go": "fb75e3aabf2204871b3e6d16de98d26fb33b0ec19e41aae761cf1f34397c31f4",
60+
"boatstack/hydrate_runtime_test.go": "dbd5eae2ba85701e4af0430ba3a0d70ea98e028b66992bd4fc05f3f582398627",
61+
"boatstack/init.go": "1b2721ad64dcfba3e954b97bb46218238873f46ec29fc4dac327aa99980f9cf6",
6062
"boatstack/init_test.go": "5fdf687205e7a5984a98a87336b7127e4ae9b651d57e21ec2dc8ca7e653ee602",
6163
"boatstack/init_transaction.go": "112456c4e1c4db54c4137bcf4f7a9a9e63399a6f5971e9b3dc952d0c4b2aa4b6",
6264
"boatstack/installation_repair.go": "6574f7133a9644843c9260b9b9daede641a14438f7357bae42fb8ec188890446",
@@ -80,26 +82,31 @@
8082
"boatstack/planning_test.go": "c105a9c78c342be06614bf54d0bc1b661b0f7af64d63b79e43bd1fcc2769edd5",
8183
"boatstack/pr.go": "981a59288a0a90534f51a2378656b78bfdc4899810bce5fdeefaa6cde63eeffe",
8284
"boatstack/pr_test.go": "7f82954d94c1ceae848a581dda25e58af92251d78a5a94ed2d672bedf5a0349e",
85+
"boatstack/provenance.go": "d44dcd5421306269326f1202ba1d52df8c252490550270ef9d022e8ec2b65210",
8386
"boatstack/provision.go": "4882d49681f99b11ba9d182ca13772131b7f9a11a6c2b560800654ca14f5111e",
8487
"boatstack/provision_test.go": "214e9edb991a66d5bbb696a7c1b63876d2f799f2cab4e3f40785f4e8f1eac57b",
8588
"boatstack/publication_ignored_repro_test.go": "b6f3aeb8ba22949ff9af7ac5afe8fb828385d9708d5d5893ef41f33a3de873e1",
8689
"boatstack/recovery.go": "6939747f3725a6dd2de933d0248571d7f21a9ee017568306fe11f08fdbba413e",
8790
"boatstack/recovery_test.go": "29490e7477ba602491330036a491289dd9117b99ff862f66dae421ba17e04c9f",
91+
"boatstack/reexec.go": "fed55416479d7bd3e0c3637057ffe8eb58a032f93fc358f76df906ab7acc677b",
92+
"boatstack/reexec_unix.go": "ff86157a9aa20c82a56fcd859b70669b7eacf4e0a9f61a4546ef33808437939e",
93+
"boatstack/reexec_windows.go": "f5335c8c28cb4e89048b058b1c4d12f78644f99acb4f6167ff60e622dfb9e742",
8894
"boatstack/references/artifacts.md": "5fa888ac519085d65cee1d04df5902761651bcf2d7af81711fa0f8ecd1fc0f59",
8995
"boatstack/references/config-schema.md": "0170b90f1d0a592f58e255ffeff642fa037676042443f74a0f1b6e39be5dbbb8",
90-
"boatstack/references/failure-moves.md": "999dfc67e9d51eb180f9f14736825ce44fc022ab710ffea0f56cfdf044b71cbc",
96+
"boatstack/references/failure-moves.md": "e1cdba05cb49817d8246eee45ab4a1ba4d691cd0ef3bd6325ee1d795ffa00b0e",
9197
"boatstack/references/host-hook-contracts.md": "d68ae1556e7b1e29e9ac7cb4db767809d510aabf0be52e60e44665ea7abb980e",
9298
"boatstack/references/irreversible-operation-boundary.md": "e0076f0fea3bf729b2e9bdf353eaeaaf7cdafabfaf26b8d9b27287e5414c2441",
9399
"boatstack/references/portability.md": "fb683095991bb0cb06ec56fb8884c49038b283172a7d2f8b203483b7cacb4bae",
94-
"boatstack/references/workflow.md": "df04b136351d85e2e77be8d28895c8012f65d8992d22f9d0db8011b8f90f2511",
100+
"boatstack/references/workflow.md": "e14a324f91b8c6012956168ff838cc6f64ae4cde61666d086174a2a4525dc683",
95101
"boatstack/release.go": "82dcb4ca59e8c79a68d5333d650f90e64abd448d04e0c6f504fdf07f42b5ed76",
96102
"boatstack/release_test.go": "5cf2d76fe9b836a91ca68eba53d5585e2c4be5b9421aaf939ea0723063a24690",
97103
"boatstack/repair_state_test.go": "f3779ac47c3db3927175a545728d3b2e020dbc85f41394d8235753b52afc3739",
98104
"boatstack/run.go": "74967ad5b3ed3847baffec1231aae69a81a70f9cce3a9412fa05bcfdc4eca6d1",
99105
"boatstack/run_test.go": "5b291510fa90cefdc26eb89e18a3443385456a6ebc73408325ac1945b7c084d6",
100106
"boatstack/runtime.go": "d1e95895002ea2b27199b6e05b33c4c6e20f63455a44f63ca3cfeedecfc23420",
101-
"boatstack/runtime_cache.go": "60c4eb0c7dde91d40d6ef3f05adc1a1282d17ff1ca12470d0a008454f7ca7489",
107+
"boatstack/runtime_cache.go": "e40c8c43f410d781a7a4e7ebf68a1caa597ea9005190fd6cea02884f863e091e",
102108
"boatstack/runtime_cache_test.go": "b981467ddc9f0f562da6bff5de7a80a9fe5a433a0317541d1e48df268546ac85",
109+
"boatstack/runtime_provenance_test.go": "1d52f1e6b0691cf4667729cc9b9f3c55c128f0aa3321f3a2843a9aa6fd0e73dc",
103110
"boatstack/safety.go": "9e1dd0a40524304b6eb3e0ad9f24ebe12bd1a72794b77bd74b4f79e81992765c",
104111
"boatstack/safety_test.go": "01f28bc3bfcb6bdd47b307e309e36bbc1921b6426ad0b777d81fe4131200c37e",
105112
"boatstack/skill_frontmatter.go": "73364df463ce828c2d005aab55f72bb92f7a34d99cf3f53d4e0cd5a4da9dbd0e",
@@ -124,24 +131,24 @@
124131
"docs/benchmark-corpus-audit.md": "f2d206fe8579a514f9da82b2c96c19b343ac004be67617e1bd34f0f8e0e5e6c6",
125132
"docs/benchmark-submission-audit.md": "9518abdd17690729c6423f87cab20418ed47b0915b5faa44b9ef975e9e9c3b79",
126133
"docs/configuration.md": "df054f49d532c8b1b7d94184810d1b3b5bf18cdc30eb985b4b6d0639162e341a",
127-
"docs/evidence-engineered-coding.md": "55174d0bbfbe32a232cead4063e55ffe1a086e1143e2d449b72c54d628b653c7",
134+
"docs/evidence-engineered-coding.md": "473afd9bd7f52f901d3046844279694d5259bfeaf708d5cf9eb859a1448f98e1",
128135
"docs/generated-files.md": "437791765b0a4015032ae21d1a6618563cad92b7402819e4f963bf5ae16284a3",
129136
"docs/getting-started.md": "f314270c5ed1a55bbef5f3ddbcb5596693dbee9374e5f0d3df8838cefbd68052",
130-
"docs/public-claims.json": "106fd639fd10e63bd13194c5668414eb6099c0bde3ce657aeb57462c56f85809",
137+
"docs/public-claims.json": "e2758cfc1f3a089212a5fcdbb75db503c84833c7ea509f4c50a2a50c88939335",
131138
"docs/public-surface.md": "713f7a050b5f339cf948299103ef3800417dccfecf2cc1a4166397ea6f978907",
132139
"docs/research-and-design.md": "8d78678108f0a6c924e1ff9b32c0f81aae9d1f779e0082843b6f99ad993ae2b6",
133140
"docs/safety.md": "7b9b5c515d36e683767ec8d3d9d6d119ac93650b2f629d351deadd4c600ed6a6",
134141
"docs/troubleshooting.md": "321d79a990de3eac0931efbf5446a3fbdb5f8fce06319bf2adf1e7aabf763519",
135142
"docs/validation-and-evidence.md": "e7d91ad49c6adb44784ebe7d94feceb6abd445857f9a0716f0758bf6b55296c5",
136143
"docs/why-these-steps.md": "cbe0d769db11ef15bb1dff888009378d6783776ad020e6f5139847a1dd62fa09",
137-
"install.ps1": "6f5857ec0feb502683c5781b9bfbbe31ed39556cd13384ddc66da622a8423cb7",
138-
"install.sh": "c76a3ac6c7a45e6eb8e0178e1c3458f72c4899426c6a801d058ee38938e4b477",
144+
"install.ps1": "f48d0f26a26e806b780d10fa916c261ff9f84ab39758cf9e229f647836845e86",
145+
"install.sh": "2575f82568b76b14e72fb88de4e8af677da1e77b9cf1a085b4ddfbbd766e67f9",
139146
"labs/diagram-json/README.md": "f56a120877c8a3b10daa49c6d951481c02e98b8b8bb3f28672e9e092d97a37bb",
140147
"labs/diagram-json/approval.md": "ec9f353dc2a923c8df2c7fe6e90f5b054bed1129a6a21e86351596ef2a5d4215",
141148
"labs/diagram-json/compiled/evidence.md": "1ba1c989ade070a8ef9a508fbd788d100d7292f2dbacbb2bce895468019f619d",
142149
"labs/diagram-json/compiled/tasks.json": "88f60851abf79d851e9fccc754ff3040034ae595306bc87d64784c19eb403e71",
143150
"labs/diagram-json/compiled/test-matrix.json": "424657ff505768e50fa113801fd8363364a18269d5297480907a993d44063a39",
144-
"labs/diagram-json/plan.lock.json": "2da633c72d7c84eca9b715261565954f437763cb6902165e4e1aca7633af297a",
151+
"labs/diagram-json/plan.lock.json": "3fbb0fbd8cead40c6d48e57ed88552a2ce2ef82b85c5983a4acf1d04f577947e",
145152
"labs/diagram-json/plan.md": "3cc4f533b8d69386deff16b3a594a3ba09d4c0c3db636cccd8c4380084ce6a51",
146153
"labs/diagram-json/questions.md": "74733b015002c8a6777c558e7e997fa48c94850b9bd39054fe9366c97ecf728d",
147154
"labs/diagram-json/request.md": "0808fc41c36779c404f4a3a121167da6e76cac56df526e70f9ed6d3e0d4c02ed",
@@ -214,15 +221,17 @@
214221
"release-notes/2026-07-23-shipped-feature-candidate-resolution.md": "bd8ee8e7f3f216b356b121a83ef10cb0c8131a90b9ab803edebf23b882d9cf89",
215222
"release-notes/2026-07-23-sync-title-contract.md": "2869d6d084ea60402e57ffe985d0fc4cd83ef9bb09958cc53e349157d3383202",
216223
"release-notes/2026-07-23-visual-evidence-external-host.md": "09edbe5e6e1bfc866cf5ee744a5001d678f7a67f0f330cf43bd5157eedf04276",
224+
"release-notes/2026-07-24-auto-hydrate-missing-runtime.md": "b376f75f7c9132f30b362392e0b31c05715edcef58c14dfa20e1fc0a17836b41",
217225
"release-notes/2026-07-24-ignored-deliveries-publication-authority.md": "a25f8469316276101490c79a57c1a236c18072dfbb23682bb1778871d247067d",
226+
"release-notes/2026-07-24-provenance-verified-binary-install.md": "b64f3a8dbd750afb28bf6964489eb0f5f8519efa65fcee871db64b9e60c2fdb2",
218227
"release-notes/2026-07-24-publication-nonblocking-control.md": "2b9d8ea817896783273a843ec183fbf00bb2f7ac420b4ce3409aeda7f59b7fb5",
219228
"release-notes/2026-07-24-repair-state-recovery.md": "daaa12deb51a5f647178d6164ea5b4bcd29bf5482b77d90002429f69e0da5dd0",
220229
"release-notes/2026-07-24-transactional-mutation-boundary.md": "38819a4811edbc99a9d8a77983aedbd0589bdbbf849da4991d3e21a1b319a65c"
221230
},
222231
"generator": "operatorstack/intelligence-flow:boatstack-distribution",
223232
"schema_version": 1,
224233
"source": {
225-
"commit": "df798dfd69a002bb8b9970216adf4f8afbe2b6ca",
234+
"commit": "76a1339c3bfb8c7a75cc3e3f7a408cf8736b5e75",
226235
"path": "labs/12-product-engineering-loop",
227236
"repository": "operatorstack/intelligence-flow"
228237
}

boatstack/cmd/boatstack-helper/main.go

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func failSafetyHook(err error) int {
4848
func initCommand(arguments []string) int {
4949
flags := flag.NewFlagSet("init", flag.ContinueOnError)
5050
repo := flags.String("repo", ".", "repository to initialize")
51-
binary := flags.String("binary", "", "verified helper binary to install project-locally")
51+
binary := flags.String("binary", "", "helper binary to install project-locally; must self-report this process's version (use the target binary's own update for a different version)")
5252
integrations := flags.String("integrations", "", "core, gstack, spec-kit, or both")
5353
yes := flags.Bool("yes", false, "accept the generated-file preview; optional integrations still default to core")
5454
if err := flags.Parse(arguments); err != nil {
@@ -64,7 +64,7 @@ func initCommand(arguments []string) int {
6464
func updateCommand(arguments []string) int {
6565
flags := flag.NewFlagSet("update", flag.ContinueOnError)
6666
repo := flags.String("repo", ".", "repository to update")
67-
binary := flags.String("binary", "", "verified replacement helper binary")
67+
binary := flags.String("binary", "", "helper binary to install; its own self-reported version is installed (cross-version updates re-exec it)")
6868
yes := flags.Bool("yes", false, "accept the generated-file preview")
6969
repair := flags.Bool("repair", false, "repair only fingerprinted Boatstack-owned control state")
7070
allowDowngrade := flags.Bool("allow-downgrade", false, "permit an explicitly repaired downgrade")
@@ -885,6 +885,24 @@ func bootstrapSafetyHookCommand(arguments []string) int {
885885
return 0
886886
}
887887

888+
// hydrateRuntimeCommand populates the version-keyed shared runtime slot (and
889+
// this worktree's ignored bin/) from the RUNNING binary, without switching
890+
// branches or touching any committed generated file. The safety guard invokes
891+
// it — via the verified installer's hydrate mode — to self-heal a clone whose
892+
// slot is empty after a version bump or a fresh checkout, so a teammate never
893+
// sees a hard "shared runtime is missing" deny.
894+
func hydrateRuntimeCommand(arguments []string) int {
895+
flags := flag.NewFlagSet("hydrate-runtime", flag.ContinueOnError)
896+
repo := flags.String("repo", ".", "worktree whose shared runtime slot should be populated")
897+
if err := flags.Parse(arguments); err != nil {
898+
return 2
899+
}
900+
if err := boatstack.RunHydrateRuntime(*repo); err != nil {
901+
return fail(err)
902+
}
903+
return 0
904+
}
905+
888906
func checkSafetyCommand(arguments []string) int {
889907
flags := flag.NewFlagSet("check-safety", flag.ContinueOnError)
890908
repo := flags.String("repo", ".", "repository whose operational diff should be checked")
@@ -1229,6 +1247,8 @@ func run() int {
12291247
return safetyHookCommand(os.Args[2:])
12301248
case "bootstrap-safety-hook":
12311249
return bootstrapSafetyHookCommand(os.Args[2:])
1250+
case "hydrate-runtime":
1251+
return hydrateRuntimeCommand(os.Args[2:])
12321252
case "check-safety":
12331253
return checkSafetyCommand(os.Args[2:])
12341254
case "workspace-cut":

0 commit comments

Comments
 (0)