ai-collab-open-system 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/.aict/START_HERE.md +127 -0
  2. package/.aict/WORKSPACE_MANIFEST.json +91 -0
  3. package/.aict/acceptance/EXAMPLE.synthetic.md +49 -0
  4. package/.aict/acceptance/FAILURE_MODES.md +40 -0
  5. package/.aict/acceptance/PROMPT.md +47 -0
  6. package/.aict/acceptance/README.md +44 -0
  7. package/.aict/acceptance/TEMPLATE.md +57 -0
  8. package/.aict/adapters/SHARED_CORE_CONTRACT.md +106 -0
  9. package/.aict/adapters/claude-code/ADAPTER.md +28 -0
  10. package/.aict/adapters/cline/ADAPTER.md +28 -0
  11. package/.aict/adapters/codex/ADAPTER.md +28 -0
  12. package/.aict/adapters/copilot/ADAPTER.md +28 -0
  13. package/.aict/adapters/cursor/ADAPTER.md +28 -0
  14. package/.aict/adapters/windsurf/ADAPTER.md +28 -0
  15. package/.aict/context/EXAMPLE.synthetic.md +53 -0
  16. package/.aict/context/FAILURE_MODES.md +40 -0
  17. package/.aict/context/PROMPT.md +47 -0
  18. package/.aict/context/README.md +44 -0
  19. package/.aict/context/TEMPLATE.md +63 -0
  20. package/.aict/cookbook/README.md +8 -0
  21. package/.aict/cookbook/bridge-to-a-second-family.md +103 -0
  22. package/.aict/cookbook/connect-a-tool.md +67 -0
  23. package/.aict/cookbook/review-a-half-product.md +79 -0
  24. package/.aict/cookbook/run-a-first-loop.md +81 -0
  25. package/.aict/examples/README.md +21 -0
  26. package/.aict/examples/ai-coding-long-task/CASE.md +161 -0
  27. package/.aict/examples/ai-coding-long-task/artifacts/acceptance-card.md +36 -0
  28. package/.aict/examples/ai-coding-long-task/artifacts/context-package.md +30 -0
  29. package/.aict/examples/ai-coding-long-task/artifacts/execution-prompt.md +30 -0
  30. package/.aict/examples/ai-coding-long-task/artifacts/first-ai-output.md +109 -0
  31. package/.aict/examples/ai-coding-long-task/artifacts/guard-review.md +40 -0
  32. package/.aict/examples/ai-coding-long-task/artifacts/handoff-note.md +28 -0
  33. package/.aict/examples/ai-coding-long-task/artifacts/harvest-seed.md +28 -0
  34. package/.aict/examples/ai-coding-long-task/artifacts/revised-output.md +62 -0
  35. package/.aict/examples/content-production-harvest/CASE.md +87 -0
  36. package/.aict/examples/content-production-harvest/artifacts/acceptance-card.md +28 -0
  37. package/.aict/examples/content-production-harvest/artifacts/context-package.md +28 -0
  38. package/.aict/examples/content-production-harvest/artifacts/execution-prompt.md +30 -0
  39. package/.aict/examples/content-production-harvest/artifacts/guard-review.md +28 -0
  40. package/.aict/examples/content-production-harvest/artifacts/handoff-note.md +28 -0
  41. package/.aict/examples/content-production-harvest/artifacts/harvest-seed.md +28 -0
  42. package/.aict/examples/multi-tool-collaboration/CASE.md +87 -0
  43. package/.aict/examples/multi-tool-collaboration/artifacts/acceptance-card.md +28 -0
  44. package/.aict/examples/multi-tool-collaboration/artifacts/context-package.md +28 -0
  45. package/.aict/examples/multi-tool-collaboration/artifacts/execution-prompt.md +30 -0
  46. package/.aict/examples/multi-tool-collaboration/artifacts/guard-review.md +28 -0
  47. package/.aict/examples/multi-tool-collaboration/artifacts/handoff-note.md +28 -0
  48. package/.aict/examples/multi-tool-collaboration/artifacts/harvest-seed.md +28 -0
  49. package/.aict/examples/personal-judgment-growth-assistant/CASE.md +87 -0
  50. package/.aict/examples/personal-judgment-growth-assistant/artifacts/acceptance-card.md +28 -0
  51. package/.aict/examples/personal-judgment-growth-assistant/artifacts/context-package.md +28 -0
  52. package/.aict/examples/personal-judgment-growth-assistant/artifacts/execution-prompt.md +30 -0
  53. package/.aict/examples/personal-judgment-growth-assistant/artifacts/guard-review.md +28 -0
  54. package/.aict/examples/personal-judgment-growth-assistant/artifacts/handoff-note.md +28 -0
  55. package/.aict/examples/personal-judgment-growth-assistant/artifacts/harvest-seed.md +28 -0
  56. package/.aict/examples/research-knowledge-synthesis/CASE.md +87 -0
  57. package/.aict/examples/research-knowledge-synthesis/artifacts/acceptance-card.md +28 -0
  58. package/.aict/examples/research-knowledge-synthesis/artifacts/context-package.md +28 -0
  59. package/.aict/examples/research-knowledge-synthesis/artifacts/execution-prompt.md +30 -0
  60. package/.aict/examples/research-knowledge-synthesis/artifacts/guard-review.md +28 -0
  61. package/.aict/examples/research-knowledge-synthesis/artifacts/handoff-note.md +28 -0
  62. package/.aict/examples/research-knowledge-synthesis/artifacts/harvest-seed.md +28 -0
  63. package/.aict/guard/EXAMPLE.synthetic.md +51 -0
  64. package/.aict/guard/FAILURE_MODES.md +40 -0
  65. package/.aict/guard/PROMPT.md +47 -0
  66. package/.aict/guard/README.md +44 -0
  67. package/.aict/guard/TEMPLATE.md +60 -0
  68. package/.aict/handoff/EXAMPLE.synthetic.md +51 -0
  69. package/.aict/handoff/FAILURE_MODES.md +40 -0
  70. package/.aict/handoff/PROMPT.md +47 -0
  71. package/.aict/handoff/README.md +44 -0
  72. package/.aict/handoff/TEMPLATE.md +60 -0
  73. package/.aict/harvest/EXAMPLE.synthetic.md +51 -0
  74. package/.aict/harvest/FAILURE_MODES.md +40 -0
  75. package/.aict/harvest/PROMPT.md +47 -0
  76. package/.aict/harvest/README.md +44 -0
  77. package/.aict/harvest/TEMPLATE.md +60 -0
  78. package/.aict/mechanisms/README.md +34 -0
  79. package/.aict/mechanisms/anti-drift-partner/EXAMPLE.synthetic.md +46 -0
  80. package/.aict/mechanisms/anti-drift-partner/FAILURE_MODES.md +25 -0
  81. package/.aict/mechanisms/anti-drift-partner/PROMPT.md +75 -0
  82. package/.aict/mechanisms/anti-drift-partner/README.md +82 -0
  83. package/.aict/mechanisms/anti-drift-partner/TEMPLATE.md +74 -0
  84. package/.aict/mechanisms/blind-spot-scan/EXAMPLE.synthetic.md +39 -0
  85. package/.aict/mechanisms/blind-spot-scan/FAILURE_MODES.md +25 -0
  86. package/.aict/mechanisms/blind-spot-scan/PROMPT.md +72 -0
  87. package/.aict/mechanisms/blind-spot-scan/README.md +79 -0
  88. package/.aict/mechanisms/blind-spot-scan/TEMPLATE.md +70 -0
  89. package/.aict/mechanisms/collaboration-coach/EXAMPLE.synthetic.md +40 -0
  90. package/.aict/mechanisms/collaboration-coach/FAILURE_MODES.md +25 -0
  91. package/.aict/mechanisms/collaboration-coach/PROMPT.md +72 -0
  92. package/.aict/mechanisms/collaboration-coach/README.md +79 -0
  93. package/.aict/mechanisms/collaboration-coach/TEMPLATE.md +61 -0
  94. package/.aict/mechanisms/do-not-handle-yet/EXAMPLE.synthetic.md +15 -0
  95. package/.aict/mechanisms/do-not-handle-yet/FAILURE_MODES.md +16 -0
  96. package/.aict/mechanisms/do-not-handle-yet/PROMPT.md +41 -0
  97. package/.aict/mechanisms/do-not-handle-yet/README.md +30 -0
  98. package/.aict/mechanisms/do-not-handle-yet/TEMPLATE.md +38 -0
  99. package/.aict/mechanisms/dual-guard/EXAMPLE.synthetic.md +54 -0
  100. package/.aict/mechanisms/dual-guard/FAILURE_MODES.md +25 -0
  101. package/.aict/mechanisms/dual-guard/PROMPT.md +76 -0
  102. package/.aict/mechanisms/dual-guard/README.md +81 -0
  103. package/.aict/mechanisms/dual-guard/TEMPLATE.md +73 -0
  104. package/.aict/mechanisms/feedback-absorption-ledger/EXAMPLE.synthetic.md +49 -0
  105. package/.aict/mechanisms/feedback-absorption-ledger/FAILURE_MODES.md +25 -0
  106. package/.aict/mechanisms/feedback-absorption-ledger/PROMPT.md +74 -0
  107. package/.aict/mechanisms/feedback-absorption-ledger/README.md +81 -0
  108. package/.aict/mechanisms/feedback-absorption-ledger/TEMPLATE.md +69 -0
  109. package/.aict/mechanisms/half-product-review/EXAMPLE.synthetic.md +15 -0
  110. package/.aict/mechanisms/half-product-review/FAILURE_MODES.md +16 -0
  111. package/.aict/mechanisms/half-product-review/PROMPT.md +41 -0
  112. package/.aict/mechanisms/half-product-review/README.md +30 -0
  113. package/.aict/mechanisms/half-product-review/TEMPLATE.md +38 -0
  114. package/.aict/mechanisms/handoff-abc/EXAMPLE.synthetic.md +47 -0
  115. package/.aict/mechanisms/handoff-abc/FAILURE_MODES.md +25 -0
  116. package/.aict/mechanisms/handoff-abc/PROMPT.md +75 -0
  117. package/.aict/mechanisms/handoff-abc/README.md +82 -0
  118. package/.aict/mechanisms/handoff-abc/TEMPLATE.md +60 -0
  119. package/.aict/mechanisms/harvest-and-erc/EXAMPLE.synthetic.md +43 -0
  120. package/.aict/mechanisms/harvest-and-erc/FAILURE_MODES.md +25 -0
  121. package/.aict/mechanisms/harvest-and-erc/PROMPT.md +74 -0
  122. package/.aict/mechanisms/harvest-and-erc/README.md +81 -0
  123. package/.aict/mechanisms/harvest-and-erc/TEMPLATE.md +60 -0
  124. package/.aict/mechanisms/honest-calibration/EXAMPLE.synthetic.md +43 -0
  125. package/.aict/mechanisms/honest-calibration/FAILURE_MODES.md +25 -0
  126. package/.aict/mechanisms/honest-calibration/PROMPT.md +74 -0
  127. package/.aict/mechanisms/honest-calibration/README.md +81 -0
  128. package/.aict/mechanisms/honest-calibration/TEMPLATE.md +66 -0
  129. package/.aict/mechanisms/one-click-dispatch/EXAMPLE.synthetic.md +15 -0
  130. package/.aict/mechanisms/one-click-dispatch/FAILURE_MODES.md +16 -0
  131. package/.aict/mechanisms/one-click-dispatch/PROMPT.md +41 -0
  132. package/.aict/mechanisms/one-click-dispatch/README.md +30 -0
  133. package/.aict/mechanisms/one-click-dispatch/TEMPLATE.md +38 -0
  134. package/.aict/mechanisms/plain-language-first-screen/EXAMPLE.synthetic.md +15 -0
  135. package/.aict/mechanisms/plain-language-first-screen/FAILURE_MODES.md +16 -0
  136. package/.aict/mechanisms/plain-language-first-screen/PROMPT.md +41 -0
  137. package/.aict/mechanisms/plain-language-first-screen/README.md +30 -0
  138. package/.aict/mechanisms/plain-language-first-screen/TEMPLATE.md +38 -0
  139. package/.aict/mechanisms/root-cause-brake/EXAMPLE.synthetic.md +55 -0
  140. package/.aict/mechanisms/root-cause-brake/FAILURE_MODES.md +25 -0
  141. package/.aict/mechanisms/root-cause-brake/PROMPT.md +73 -0
  142. package/.aict/mechanisms/root-cause-brake/README.md +79 -0
  143. package/.aict/mechanisms/root-cause-brake/TEMPLATE.md +74 -0
  144. package/.aict/mechanisms/scout-review-controller/EXAMPLE.synthetic.md +15 -0
  145. package/.aict/mechanisms/scout-review-controller/FAILURE_MODES.md +16 -0
  146. package/.aict/mechanisms/scout-review-controller/PROMPT.md +41 -0
  147. package/.aict/mechanisms/scout-review-controller/README.md +30 -0
  148. package/.aict/mechanisms/scout-review-controller/TEMPLATE.md +38 -0
  149. package/.aict/mechanisms/single-tool-guard/EXAMPLE.synthetic.md +54 -0
  150. package/.aict/mechanisms/single-tool-guard/FAILURE_MODES.md +25 -0
  151. package/.aict/mechanisms/single-tool-guard/PROMPT.md +76 -0
  152. package/.aict/mechanisms/single-tool-guard/README.md +83 -0
  153. package/.aict/mechanisms/single-tool-guard/TEMPLATE.md +75 -0
  154. package/.aict/mechanisms/task-splitting/EXAMPLE.synthetic.md +53 -0
  155. package/.aict/mechanisms/task-splitting/FAILURE_MODES.md +25 -0
  156. package/.aict/mechanisms/task-splitting/PROMPT.md +72 -0
  157. package/.aict/mechanisms/task-splitting/README.md +79 -0
  158. package/.aict/mechanisms/task-splitting/TEMPLATE.md +76 -0
  159. package/.aict/modes/README.md +11 -0
  160. package/.aict/modes/execute.md +31 -0
  161. package/.aict/modes/handoff.md +29 -0
  162. package/.aict/modes/harvest.md +30 -0
  163. package/.aict/modes/review.md +28 -0
  164. package/.aict/modes/shape.md +34 -0
  165. package/.aict/privacy/COMMERCIAL_BOUNDARY.md +34 -0
  166. package/.aict/privacy/PRIVACY.md +36 -0
  167. package/.aict/privacy/REDACTION_CHECKLIST.md +12 -0
  168. package/.aict/profile/CANDIDATES.md +44 -0
  169. package/.aict/profile/EXAMPLE.synthetic.md +49 -0
  170. package/.aict/profile/FAILURE_MODES.md +40 -0
  171. package/.aict/profile/PROMPT.md +47 -0
  172. package/.aict/profile/README.md +44 -0
  173. package/.aict/profile/TEMPLATE.md +57 -0
  174. package/.aict/prompts/acceptance-definition.md +109 -0
  175. package/.aict/prompts/guard-review.md +116 -0
  176. package/.aict/prompts/handoff-generation.md +110 -0
  177. package/.aict/prompts/harvest-extraction.md +110 -0
  178. package/.aict/prompts/mode-switching.md +66 -0
  179. package/.aict/prompts/profile-creation.md +66 -0
  180. package/.aict/prompts/profile-refinement.md +66 -0
  181. package/.aict/prompts/project-context-packaging.md +113 -0
  182. package/.aict/prompts/red-team-challenge.md +106 -0
  183. package/.aict/prompts/rule-update-proposal.md +114 -0
  184. package/.aict/prompts/workflow-reset.md +109 -0
  185. package/.aict/roles/README.md +18 -0
  186. package/.aict/roles/executor.md +34 -0
  187. package/.aict/roles/harvester.md +33 -0
  188. package/.aict/roles/owner-controller.md +38 -0
  189. package/.aict/roles/scout.md +33 -0
  190. package/.aict/roles/supervisor.md +34 -0
  191. package/.aict/roles/system-guardian.md +34 -0
  192. package/.aict/skills/acceptance/SKILL.md +43 -0
  193. package/.aict/skills/context/SKILL.md +44 -0
  194. package/.aict/skills/evidence-pack/SKILL.md +42 -0
  195. package/.aict/skills/guard/SKILL.md +46 -0
  196. package/.aict/skills/handoff/SKILL.md +44 -0
  197. package/.aict/skills/harvest/SKILL.md +44 -0
  198. package/.aict/skills/mode-switch/SKILL.md +42 -0
  199. package/.aict/skills/profile/SKILL.md +42 -0
  200. package/.aict/skills/red-team/SKILL.md +42 -0
  201. package/.aict/skills/single-tool-guard/SKILL.md +42 -0
  202. package/.aict/state/CURRENT_STATE.md +13 -0
  203. package/.aict/state/DECISIONS.md +7 -0
  204. package/.aict/state/TASK_LOG.md +7 -0
  205. package/.aict/state/evidence.jsonl +2 -0
  206. package/.aict/state/learning-ledger.jsonl +1 -0
  207. package/.aict/state/receipts.jsonl +1 -0
  208. package/.aict/state/runs.jsonl +1 -0
  209. package/.aict/state/tasks.jsonl +1 -0
  210. package/.aict/walkthroughs/10-minute-your-task.md +107 -0
  211. package/.aict/walkthroughs/10-minute.md +43 -0
  212. package/.aict/walkthroughs/30-minute.md +22 -0
  213. package/.aict/walkthroughs/60-minute.md +27 -0
  214. package/.aict/walkthroughs/synthetic-loop-transcript.md +43 -0
  215. package/CHANGELOG.md +23 -0
  216. package/CODE_OF_CONDUCT.md +20 -0
  217. package/CONTRIBUTING.md +30 -0
  218. package/KNOWN_LIMITATIONS.md +54 -0
  219. package/LICENSE +199 -0
  220. package/PRODUCT_CONTRACT.md +446 -0
  221. package/README.md +245 -0
  222. package/RELEASE_CHECKLIST.md +78 -0
  223. package/SECURITY.md +56 -0
  224. package/START_HERE.md +89 -0
  225. package/bin/ai-collab.js +2 -0
  226. package/docs/DOGFOOD.md +85 -0
  227. package/docs/FEEDBACK.md +61 -0
  228. package/docs/FIRST_EXPERIENCE_SPEC.md +32 -0
  229. package/docs/FREE_VS_PAID.md +53 -0
  230. package/docs/PUBLIC_BOUNDARY.md +36 -0
  231. package/docs/PUBLIC_MAPPING.md +178 -0
  232. package/docs/RELEASE_PRIORITY.md +23 -0
  233. package/docs/WHY_THIS_EXISTS.md +36 -0
  234. package/docs/open-system/00-start-here.md +60 -0
  235. package/docs/open-system/01-ai-collaboration-os.md +33 -0
  236. package/docs/open-system/02-six-layer-architecture.md +45 -0
  237. package/docs/open-system/03-role-system.md +33 -0
  238. package/docs/open-system/04-core-mechanisms.md +34 -0
  239. package/docs/open-system/05-failure-patterns.md +31 -0
  240. package/docs/open-system/06-how-to-adapt-to-your-workflow.md +31 -0
  241. package/package.json +69 -0
  242. package/privacy-manifest.json +78 -0
  243. package/privacy-scan.local.json.example +18 -0
  244. package/scripts/lib/forbidden-in-pack.js +55 -0
  245. package/scripts/pack-check.js +154 -0
  246. package/scripts/privacy-scan.js +487 -0
  247. package/scripts/validate-contract.js +160 -0
  248. package/src/adapters.js +590 -0
  249. package/src/bootstrap.js +1184 -0
  250. package/src/catalog.js +2723 -0
  251. package/src/cli.js +2899 -0
  252. package/src/dialogue.js +470 -0
  253. package/src/i18n.js +1034 -0
  254. package/src/ledger.js +2011 -0
  255. package/src/render.js +1381 -0
  256. package/src/sendmodel.js +452 -0
  257. package/src/validate.js +1307 -0
  258. package/src/workspace.js +1679 -0
  259. package/tests/contract.test.js +8514 -0
@@ -0,0 +1,79 @@
1
+ # Root-Cause Brake
2
+
3
+ Part of the AI Collaboration Open System. This is a local-first, public-safe mechanism package you can copy into Claude Code, Codex, Cursor, Cline, Windsurf, or Copilot.
4
+
5
+ ## Purpose
6
+
7
+ Stop a patch-on-patch death spiral by treating repeated rejection as a signal to fix the cause, not the symptom. When the same artifact gets sent back twice in a row, an automatic brake trips: you may NOT ship another patched version. You must first stop and answer four diagnostic questions — is there a contract conflict, is the verification fake, is the scope too big, is the work split wrong — decide the real root cause, and only then write the next version, rebuilt around that cause instead of carrying forward another layer of fixes.
8
+
9
+ ## When to use
10
+
11
+ Trip the brake the moment the same thing has been rejected twice in a row (two consecutive blocking reviews on the same artifact or task), or whenever you catch yourself about to start version N+1 by adding more fixes to a growing patch list. It also fires on suspicion: a reviewer says 'we keep treating symptoms', or you notice the same kind of defect coming back under a different name each round.
12
+
13
+ ## When not to use
14
+
15
+ Do not trip it on a first rejection, on rejections of genuinely different things, or on a single small fix that clearly resolves a one-off mistake. One block is normal review; the brake is specifically for the repeated-block pattern. Forcing a full root-cause stop after every minor note is ceremony that buries the signal — the brake only means something if it stays reserved for the second consecutive block on the same target.
16
+
17
+ ## Input shape
18
+
19
+ The same artifact or task that has now been rejected twice. The findings from each blocking review, kept intact (do not edit the originals — you need the actual pattern across rounds). The version history: which patched versions you produced after each block, so the 'kept adding fixes' pattern is visible. Enough detail on each finding to answer the four diagnostic questions with evidence (which finding, which version, where), not from memory or vibe.
20
+
21
+ ## Input materials
22
+
23
+ - The twice-rejected artifact or task, named explicitly so the brake is scoped to one target, not a vague 'things keep failing'.
24
+ - Each blocking review's findings, preserved verbatim — the cross-round pattern is the whole diagnostic, and editing the originals destroys it.
25
+ - The version trail: the patched version you shipped after block 1, after block 2, so the patch-on-patch shape is on the record.
26
+ - Per-finding specifics (which finding, which version, what exactly failed) so each of the four questions can be answered with a concrete pointer, not a guess.
27
+ - Any reviewer remark that named a root cause ('this is symptom-chasing'), since that is often the first real diagnosis of why the patches are not landing.
28
+
29
+ ## Process
30
+
31
+ 1. Detect the trip condition: the same artifact has two consecutive blocking reviews. The moment that is true, stop. Do NOT open version N+1 as another patched draft — that move is exactly what the brake forbids.
32
+ 2. Answer all four diagnostic questions, each with a yes / no / partly AND concrete evidence (which finding, which version, where it shows). Partial answers are not allowed; a hand-waved 'probably fine' on any question defeats the brake. Q1 Contract conflict: are the agreed definitions — fields, states, interfaces, success criteria — quietly changing from round to round, so each fix breaks a different assumption? Q2 Fake verification: is the checking step (a self-review, a gate, a test) only going through the motions, passing things it should have caught? Q3 Scope too big: is a single unit of work carrying too many fields / states / responsibilities to get right in one pass? Q4 Wrong split: is the work cut too coarse or too fine — a packet that is really five tasks, or a job shattered into pieces that cannot be verified alone?
33
+ 3. Name the root cause. From the four answers, state which underlying cause is actually generating the repeat blocks — not a list of surface fixes, but the one structural reason the patches keep failing.
34
+ 4. Get the root cause confirmed by the human owner before proceeding (agree / adjust / reject and re-diagnose). The brake is a deliberate governance stop, so the person who owns the work signs off on the diagnosis before the next version starts. This is not a project pause — work resumes immediately after sign-off; it just resumes rebuilt around the cause.
35
+ 5. Write version N+1 from the root cause, not from the patch list. The next version is a rebuild aimed at the named cause; it must not re-enact the old defect under a new patch. If the cause was 'scope too big', the next version is smaller; if it was 'fake verification', the next version fixes the check first, and so on.
36
+ 6. Record the brake on the record: the preserved findings from each block, the four answered questions with evidence, the named root cause, the owner's decision, and the rebuilt direction — so a later session sees why the chain was broken and does not restart the patch spiral.
37
+
38
+ ## Output shape
39
+
40
+ - Trip confirmation: a one-line statement that the same target hit two consecutive blocks, so the brake applies.
41
+ - Four answered questions: Q1 contract conflict, Q2 fake verification, Q3 scope too big, Q4 wrong split — each yes/no/partly with a concrete evidence pointer (finding + version + where).
42
+ - Named root cause: the single structural reason the patches kept failing, derived from the four answers.
43
+ - Owner decision: agree / adjust / reject-and-re-diagnose, recorded.
44
+ - Rebuilt direction for version N+1: how the next version is built around the cause, explicitly not a continuation of the patch list.
45
+ - Brake record: preserved per-round findings + answers + cause + decision, so the next session does not reopen the spiral.
46
+
47
+ ## Pass bar (what counts as done / safe to trust)
48
+
49
+ - The brake actually tripped at the second consecutive block instead of a third patched version going out.
50
+ - All four diagnostic questions are answered with yes/no/partly AND a concrete evidence pointer — none hand-waved.
51
+ - A single structural root cause is named, not a longer list of surface fixes.
52
+ - The human owner confirmed (or adjusted) the root cause before the next version started.
53
+ - Version N+1 is visibly rebuilt around the cause, and the per-round findings are preserved on the record.
54
+
55
+ ## Reject bar (what sends it back)
56
+
57
+ - A third patched version was shipped after two blocks without ever stopping to diagnose (the patch-on-patch spiral the brake exists to break).
58
+ - One or more of the four questions was skipped or answered 'probably fine' with no evidence, so the brake was ceremony, not a real stop.
59
+ - The 'root cause' is just a restated list of the same surface fixes, so the next version will reproduce the defect.
60
+ - The next version started before the owner signed off on the diagnosis.
61
+ - The original per-round findings were edited or discarded, destroying the cross-round pattern that the diagnosis depends on.
62
+ - The brake was tripped on a first block or on unrelated rejections, draining the signal so a real repeat-block does not stand out.
63
+
64
+ ## Common misuse
65
+
66
+ - Quietly shipping 'just one more small patch' after the second block because the fix 'feels close', which is precisely the spiral the brake is built to stop.
67
+ - Filling in the four questions as a formality with no evidence, so the diagnostic theatre passes while the real cause stays unfound.
68
+ - Calling a list of surface symptoms the 'root cause', so version N+1 patches the same things again under a new name.
69
+ - Editing the earlier findings to look tidier, which erases the across-rounds pattern that is the entire point of the diagnosis.
70
+ - Tripping the brake on every minor rejection, so the team learns to ignore it and it no longer signals a genuine repeat-block.
71
+ - Treating the brake as a project freeze and stalling the work, when it is only a diagnostic stop — work resumes the moment the owner confirms the cause.
72
+
73
+ ## Package files
74
+
75
+ - `README.md` explains the mechanism.
76
+ - `PROMPT.md` gives the copy-paste prompt.
77
+ - `TEMPLATE.md` gives the blank operating card.
78
+ - `EXAMPLE.synthetic.md` shows a public-safe run.
79
+ - `FAILURE_MODES.md` names common ways this mechanism fails.
@@ -0,0 +1,74 @@
1
+ # Root-Cause Brake Template
2
+
3
+ AI Collaboration Open System mechanism card. Fill this in a local-first workflow with public-safe or redacted material.
4
+
5
+ ## Purpose
6
+
7
+ Stop a patch-on-patch death spiral by treating repeated rejection as a signal to fix the cause, not the symptom. When the same artifact gets sent back twice in a row, an automatic brake trips: you may NOT ship another patched version. You must first stop and answer four diagnostic questions — is there a contract conflict, is the verification fake, is the scope too big, is the work split wrong — decide the real root cause, and only then write the next version, rebuilt around that cause instead of carrying forward another layer of fixes.
8
+
9
+ ## Template
10
+
11
+ ### Twice-rejected target (name it):
12
+
13
+
14
+ ### Trip condition met? (two consecutive blocks on this same target — yes/no):
15
+
16
+
17
+ ### Findings from block 1 (verbatim, do not edit):
18
+
19
+
20
+ ### Findings from block 2 (verbatim, do not edit):
21
+
22
+
23
+ ### Patched versions shipped after each block (the patch-on-patch trail):
24
+
25
+
26
+ ### Q1 Contract conflict? (yes/no/partly + evidence: finding + version + where):
27
+
28
+
29
+ ### Q2 Fake verification? (yes/no/partly + evidence):
30
+
31
+
32
+ ### Q3 Scope too big? (yes/no/partly + evidence):
33
+
34
+
35
+ ### Q4 Wrong split? (yes/no/partly + evidence):
36
+
37
+
38
+ ### Named root cause (one structural reason, not a fix list):
39
+
40
+
41
+ ### Owner decision (agree / adjust / reject and re-diagnose):
42
+
43
+
44
+ ### Version N+1 direction, rebuilt around the cause (NOT another patch):
45
+
46
+
47
+
48
+ ## Pass bar (tick before you trust the result)
49
+
50
+ - The brake actually tripped at the second consecutive block instead of a third patched version going out.
51
+ - All four diagnostic questions are answered with yes/no/partly AND a concrete evidence pointer — none hand-waved.
52
+ - A single structural root cause is named, not a longer list of surface fixes.
53
+ - The human owner confirmed (or adjusted) the root cause before the next version started.
54
+ - Version N+1 is visibly rebuilt around the cause, and the per-round findings are preserved on the record.
55
+
56
+ ## Reject bar (send it back if any of these is true)
57
+
58
+ - A third patched version was shipped after two blocks without ever stopping to diagnose (the patch-on-patch spiral the brake exists to break).
59
+ - One or more of the four questions was skipped or answered 'probably fine' with no evidence, so the brake was ceremony, not a real stop.
60
+ - The 'root cause' is just a restated list of the same surface fixes, so the next version will reproduce the defect.
61
+ - The next version started before the owner signed off on the diagnosis.
62
+ - The original per-round findings were edited or discarded, destroying the cross-round pattern that the diagnosis depends on.
63
+ - The brake was tripped on a first block or on unrelated rejections, draining the signal so a real repeat-block does not stand out.
64
+
65
+ ## Worked example
66
+
67
+ See `EXAMPLE.synthetic.md` for this same card filled out end to end on a public-safe synthetic task.
68
+
69
+ ## Completion check
70
+
71
+ - The mechanism has a named trigger.
72
+ - The next action is concrete.
73
+ - Private details are redacted or rewritten as synthetic examples.
74
+ - The result can be handed to another AI tool without extra chat history.
@@ -0,0 +1,15 @@
1
+ # SCOUT Review Controller Synthetic Example
2
+
3
+ This is a public-safe synthetic example for the AI Collaboration Open System. It is local-first and contains no private account, customer, route, hook, or conversation material.
4
+
5
+ ## Synthetic example
6
+
7
+ For a synthetic documentation rebuild, Scout lists three structures, Reviewer rejects the marketing-first option, and Controller chooses a runnable workspace-first path.
8
+
9
+ ## How the mechanism changes the outcome
10
+
11
+ Without this mechanism, a single assistant can produce a smooth answer while hiding uncertainty. With this mechanism, the workflow records trigger, evidence, decision, residual risk, and next action.
12
+
13
+ ## Reuse note
14
+
15
+ Copy the shape, not the synthetic facts. Adapt the template to your own redacted task.
@@ -0,0 +1,16 @@
1
+ # SCOUT Review Controller Failure Modes
2
+
3
+ AI Collaboration Open System failure checklist. Use it in a local-first workflow before trusting a mechanism run, and rewrite any public example into public-safe language.
4
+
5
+ ## Failure modes
6
+
7
+ - Scout becomes the decision-maker.
8
+ - Reviewer nitpicks style instead of evidence.
9
+ - Controller keeps every option open and creates no next action.
10
+
11
+ ## Guard questions
12
+
13
+ 1. Did this mechanism change the decision, or just add ceremony?
14
+ 2. Is any private material copied instead of summarized or synthesized?
15
+ 3. Are blockers, residual risks, and next actions separated?
16
+ 4. Could a new session continue from this file alone?
@@ -0,0 +1,41 @@
1
+ # SCOUT Review Controller Prompt
2
+
3
+ This prompt belongs to the AI Collaboration Open System. Use it in a local-first workflow with public-safe or redacted material.
4
+
5
+ ## Purpose
6
+
7
+ Separate exploration from decision so the assistant gathers options without prematurely choosing a path.
8
+
9
+ ## Copy-paste prompt
10
+
11
+ ```text
12
+ Use the SCOUT Review Controller mechanism from my local AI Collaboration Open System workspace.
13
+
14
+ Purpose:
15
+ Separate exploration from decision so the assistant gathers options without prematurely choosing a path.
16
+
17
+ Trigger:
18
+ Use when the task is ambiguous, cross-tool, or likely to be distorted by the first plausible answer.
19
+
20
+ Input:
21
+ [paste redacted task material, context package, and acceptance card here]
22
+
23
+ Process:
24
+ 1. Scout collects candidate paths and evidence without deciding.
25
+ 2. Reviewer attacks weak assumptions and missing evidence.
26
+ 3. Controller selects the smallest path that changes the outcome.
27
+ 4. Handoff records rejected paths so the next session does not reopen them by accident.
28
+
29
+ Return:
30
+ - Decision-changing findings only
31
+ - Evidence used
32
+ - Required fixes
33
+ - Residual risk
34
+ - Next action
35
+
36
+ Rules:
37
+ - Work from provided material only.
38
+ - Keep private material local.
39
+ - Use public-safe synthetic wording for examples.
40
+ - Label assumptions and unverified claims.
41
+ ```
@@ -0,0 +1,30 @@
1
+ # SCOUT Review Controller
2
+
3
+ Part of the AI Collaboration Open System. This is a local-first, public-safe mechanism package you can copy into Claude Code, Codex, Cursor, Cline, Windsurf, or Copilot.
4
+
5
+ ## Purpose
6
+
7
+ Separate exploration from decision so the assistant gathers options without prematurely choosing a path.
8
+
9
+ ## When to use
10
+
11
+ Use when the task is ambiguous, cross-tool, or likely to be distorted by the first plausible answer.
12
+
13
+ ## Input shape
14
+
15
+ Question, known constraints, candidate paths, evidence sources, and decision deadline.
16
+
17
+ ## Process
18
+
19
+ 1. Scout collects candidate paths and evidence without deciding.
20
+ 2. Reviewer attacks weak assumptions and missing evidence.
21
+ 3. Controller selects the smallest path that changes the outcome.
22
+ 4. Handoff records rejected paths so the next session does not reopen them by accident.
23
+
24
+ ## Package files
25
+
26
+ - `README.md` explains the mechanism.
27
+ - `PROMPT.md` gives the copy-paste prompt.
28
+ - `TEMPLATE.md` gives the blank operating card.
29
+ - `EXAMPLE.synthetic.md` shows a public-safe run.
30
+ - `FAILURE_MODES.md` names common ways this mechanism fails.
@@ -0,0 +1,38 @@
1
+ # SCOUT Review Controller Template
2
+
3
+ AI Collaboration Open System mechanism card. Fill this in a local-first workflow with public-safe or redacted material.
4
+
5
+ ## Purpose
6
+
7
+ Separate exploration from decision so the assistant gathers options without prematurely choosing a path.
8
+
9
+ ## Template
10
+
11
+ ### Decision question:
12
+
13
+
14
+ ### Scout evidence:
15
+
16
+
17
+ ### Candidate paths:
18
+
19
+
20
+ ### Reviewer objections:
21
+
22
+
23
+ ### Controller decision:
24
+
25
+
26
+ ### Rejected paths:
27
+
28
+
29
+ ### Next verification:
30
+
31
+
32
+
33
+ ## Completion check
34
+
35
+ - The mechanism has a named trigger.
36
+ - The next action is concrete.
37
+ - Private details are redacted or rewritten as synthetic examples.
38
+ - The result can be handed to another AI tool without extra chat history.
@@ -0,0 +1,54 @@
1
+ # Single-Tool Guard Synthetic Example
2
+
3
+ This is a public-safe synthetic example for the AI Collaboration Open System. It is local-first and contains no private account, customer, route, hook, or conversation material.
4
+
5
+ ## Synthetic example
6
+
7
+ A solo user on one model family gets a confident 'done and tested' claim, opens a fresh conversation, and pastes an adversarial reviewer prompt. The review finds a claimed test that does not exist and ties it to the line. The verdict is recorded as `single-family-only — cross-family binding gate NOT passed`, with the residual risk (a same-family reviewer may share the drafter's blind spots) named on the record.
8
+
9
+ ## Full worked example (filled end to end)
10
+
11
+ A solo developer has only one model family available. Their execution assistant returned a confident completion claim. Rather than trust the same assistant, they run Single-Tool Guard: a fresh conversation plus an adversarial reviewer prompt, with the verdict explicitly labeled as not-yet-binding.
12
+
13
+ ### Artifact under review (with line/section refs)
14
+ A short completion report plus a code block from the execution assistant. The report says: "Done. I added the CSV export and a test that covers it; everything passes." The code block is pasted with line numbers so the reviewer can cite exact lines.
15
+
16
+ ### Acceptance source / definition of done
17
+ AC1: a button exports the current rows to CSV. AC2: there is an automated test that fails before the change and passes after. AC3: empty-table export produces a header-only file, not a crash. AC4: existing data is untouched.
18
+
19
+ ### Completion claim's evidence (or explicit 'none exists')
20
+ The report asserts 'everything passes' but pastes NO command output and NO test run. Evidence: none provided. That gap is recorded explicitly.
21
+
22
+ ### Single-family acknowledgement
23
+ Only one model family is available. So this is a single-family review from the start, and the verdict will be labeled accordingly — it cannot be a cross-family binding pass.
24
+
25
+ ### Fresh conversation opened?
26
+ Yes. A brand-new conversation is opened; the original drafting thread is NOT reused, because that thread just claimed 'done' and is primed to defend it.
27
+
28
+ ### Adversarial reviewer prompt used
29
+ "You are an adversarial reviewer. Default to refuting this completion claim. Hunt for missing evidence. Tie every finding to a specific line or section. Do not be agreeable; if a claim lacks proof, say so."
30
+
31
+ ### Findings (each cites a line/section)
32
+ - AC2 UNSUPPORTED. The pasted code shows the export function but NO test file and NO test run output. 'Added a test; everything passes' has no evidence behind it at the cited lines.
33
+ - AC3 FAIL. The export maps over the rows with no empty-table branch, so an empty table would write a malformed (or empty) file rather than a header-only file — the cited loop has no guard.
34
+ - AC1 PLAUSIBLE but unverified: the export function is present and looks correct, but with no run output it is asserted, not proven.
35
+
36
+ ### Verdict
37
+ `single-family-only — cross-family binding gate NOT passed`. Reject as a completion claim: AC2 has no evidence and AC3 has a real defect. This is explicitly NOT recorded as a passed dual-guard.
38
+
39
+ ### Residual risk (what a same-family reviewer likely still missed) and who accepted it
40
+ A same-family reviewer shares the drafter's blind spots, so it may have missed an issue a different model family would catch — for example a CSV-escaping bug (commas or quotes inside a cell) that neither the drafter nor this same-family reviewer flagged. The owner accepts this residual risk for now, on the record, pending a cross-family pass.
41
+
42
+ ### Required fixes (re-check in another fresh adversarial pass)
43
+ 1. Add the empty-table header-only branch. 2. Add the automated test and paste its fail-then-pass output. Re-review in a new adversarial conversation once both exist.
44
+
45
+ ### Upgrade path
46
+ When a second, different model family becomes available, still run one cross-family binding pass — especially on the CSV-escaping risk a same-family review is most likely to share the blind spot on.
47
+
48
+ ## How the mechanism changes the outcome
49
+
50
+ Without this mechanism, a single assistant can produce a smooth answer while hiding uncertainty. With this mechanism, the workflow records trigger, evidence, decision, residual risk, and next action.
51
+
52
+ ## Reuse note
53
+
54
+ Copy the shape, not the synthetic facts. Adapt the template to your own redacted task.
@@ -0,0 +1,25 @@
1
+ # Single-Tool Guard Failure Modes
2
+
3
+ AI Collaboration Open System failure checklist. Use it in a local-first workflow before trusting a mechanism run, and rewrite any public example into public-safe language.
4
+
5
+ ## Failure modes
6
+
7
+ - The single-family pass is filed as a passed dual-guard, so the next session believes the cross-family binding gate cleared it when it never ran.
8
+ - The drafting thread reviews itself and its eagerness to please buries the objections a fresh adversarial conversation would have surfaced.
9
+ - The residual risk is left unnamed, so the record overstates how much assurance a one-family review actually provides.
10
+
11
+ ## Common misuse (operator errors that look fine but break the mechanism)
12
+
13
+ - Treating a same-family single review as having passed dual-guard. Same-family reviewers miss the same things; a single-tool pass catches fewer real problems, so it must always be labeled as not-yet-binding, with the residual risk on the record.
14
+ - Skipping the fresh conversation and asking the same thread that just said 'done' to review itself, where its eagerness to please buries the objections.
15
+ - Using a soft 'review this' prompt instead of an adversarial default-to-refute frame, which produces an agreeable rubber stamp rather than findings.
16
+ - Leaving the residual risk blank, so a reader of the record assumes the artifact got more assurance than a single-family pass can give.
17
+ - Reviewing against tone and fluency with no acceptance card or evidence, so the pass grades how it reads instead of whether the claims hold.
18
+ - Treating the single-tool guard as the ceiling and never running the cross-family binding pass even after a second, different model family becomes available.
19
+
20
+ ## Guard questions
21
+
22
+ 1. Did this mechanism change the decision, or just add ceremony?
23
+ 2. Is any private material copied instead of summarized or synthesized?
24
+ 3. Are blockers, residual risks, and next actions separated?
25
+ 4. Could a new session continue from this file alone?
@@ -0,0 +1,76 @@
1
+ # Single-Tool Guard Prompt
2
+
3
+ This prompt belongs to the AI Collaboration Open System. Use it in a local-first workflow with public-safe or redacted material.
4
+
5
+ ## Purpose
6
+
7
+ Give a one-model-family user — the realistic default for most solo users, who have exactly one tool — a real guard to START from, not a downgrade to settle for. With a single AI you still turn 'done' into an evidence-backed, re-checkable result. The single-tool guard runs a fresh conversation plus an adversarial reviewer prompt instead of trusting the same assistant that just wrote it. It honestly does NOT equal the cross-family binding gate: it catches fewer real problems, so the verdict is always labeled not-yet-binding, capped at L2, with the residual risk named on the record. The cross-family dual-guard is the upgrade ceiling, not the entry bar.
8
+
9
+ ## Copy-paste prompt
10
+
11
+ ```text
12
+ Use the Single-Tool Guard mechanism from my local AI Collaboration Open System workspace.
13
+
14
+ Purpose:
15
+ Give a one-model-family user — the realistic default for most solo users, who have exactly one tool — a real guard to START from, not a downgrade to settle for. With a single AI you still turn 'done' into an evidence-backed, re-checkable result. The single-tool guard runs a fresh conversation plus an adversarial reviewer prompt instead of trusting the same assistant that just wrote it. It honestly does NOT equal the cross-family binding gate: it catches fewer real problems, so the verdict is always labeled not-yet-binding, capped at L2, with the residual risk named on the record. The cross-family dual-guard is the upgrade ceiling, not the entry bar.
16
+
17
+ Trigger:
18
+ This is the default starting point for solo users, who have exactly one tool. Use it at a completion claim when only one model family is available and you would otherwise trust the same assistant that just produced the work: a 'done, tested, shipped' claim, a deliverable about to be handed on, or any output where a wrong 'looks fine' would propagate. It is not a fallback you reach for once a cross-family setup fails — it is where most real work begins, and a single AI here already gives you an evidence-backed, re-checkable result instead of a trusted 'looks fine'.
19
+
20
+ Do not use when:
21
+ Do not use it as a substitute for a cross-family pass when a second, different model family IS available — in that case run dual-guard, because the cross-family binding gate catches what same-family review cannot. Skip it entirely for low-stakes, easily reversible work a human will fully re-check anyway: a quick fact, a one-line tweak, a throwaway draft. Running an adversarial review on trivial work is ceremony, and ceremony you pay for nothing trains people to skip the review when it actually matters.
22
+
23
+ Input:
24
+ [paste redacted task material, context package, and acceptance card here]
25
+
26
+ Process:
27
+ 1. Open a NEW conversation. Use a fresh context — the original thread carries the assistant's eagerness to please and its memory of having just claimed done, both of which suppress the very objections you need.
28
+ 2. Paste an ADVERSARIAL reviewer prompt: instruct the assistant to default to refuting the work, to hunt for missing evidence rather than confirm, and to tie every finding to a specific line or section. The frame must actually be adversarial, not 'take a look'.
29
+ 3. Give it the artifact plus the acceptance card and the completion claim's evidence (or the explicit note that none exists). Ask it to check each completion claim against the evidence, whether the acceptance criteria are met, and whether scope drifted past the stated non-goals.
30
+ 4. Mark the verdict explicitly as `single-family-only — cross-family binding gate NOT passed`, and name the residual risk (what a same-family reviewer is most likely to have missed). Never record this as a passed dual-guard.
31
+ 5. Resolve each finding one of two ways: fix it and re-show the evidence in another fresh adversarial pass, or carry it explicitly as named residual risk the owner accepts on the record. A silent 'good enough' is not allowed here either.
32
+ 6. Upgrade path: when a second, different model family becomes available, still run one cross-family binding pass. The single-tool guard is the floor, not the ceiling.
33
+
34
+ Output shape:
35
+ - Guard level: this is L2 at best (single tool, author-supplied evidence). It CANNOT reach the cross-family L3 gate, so it cannot return a plain pass.
36
+ - Verdict: one of the four standard states, but bounded by L2 — the strongest a single-tool guard may give is pass_with_risk; it must NOT be recorded as a passed dual-guard. Use reject for a real defect and insufficient_evidence when the completion claim has no evidence at all.
37
+ - Findings, each tied to a specific line or section, produced under an actually-adversarial frame (not a 'looks good' rubber stamp).
38
+ - Residual risk: what a same-family reviewer most likely still missed, named on the record.
39
+ - Owner sign-off: a pass_with_risk is not 'accepted' on the guard's say-so — a human must explicitly accept the named residual risk on the record.
40
+ - Required fixes: the concrete change each blocker needs, to be re-checked in another fresh adversarial pass.
41
+ - Acceptance record: for any finding carried rather than fixed, who accepted the residual risk.
42
+ - Upgrade note: a reminder to run one cross-family binding pass once a second, different model family is available (that is what lifts the ceiling from L2/pass_with_risk to L3/pass).
43
+
44
+ Return:
45
+ - Decision-changing findings only
46
+ - Evidence used
47
+ - Required fixes
48
+ - Residual risk
49
+ - Next action
50
+
51
+ Pass bar (do not pass unless all hold):
52
+ - The verdict is at most pass_with_risk (the L2 ceiling) and is NOT recorded as a plain pass or a passed cross-family binding gate.
53
+ - Residual risk is named — what a same-family reviewer most likely still missed is on the record, not left blank.
54
+ - Any pass_with_risk has an explicit owner sign-off on the named residual risk; the guard did not mark it accepted on its own.
55
+ - Every finding is tied to a specific line or section, not a general impression.
56
+ - The adversarial frame was actually used (default-to-refute, hunt-for-missing-evidence), in a fresh conversation, not a 'looks good' rubber stamp from the original thread.
57
+ - The upgrade path is noted: a cross-family binding pass is still owed once a second, different model family is available (that is what lifts the ceiling to L3/pass).
58
+
59
+ Reject bar (send back if any holds):
60
+ - The single-family review is recorded as a plain pass or as if it cleared the binding gate (the head failure — a same-family pass dressed up as dual-guard / L3).
61
+ - A pass_with_risk is treated as accepted without an explicit owner sign-off on the residual risk.
62
+ - No residual risk is named, so the next session inherits a hidden gap and assumes more assurance than the pass actually provides.
63
+ - The reviewer only graded tone, fluency, or style instead of checking claims against evidence.
64
+ - The drafting thread was reused instead of a fresh conversation, so the assistant's just-claimed-done eagerness suppressed the objections.
65
+ - The frame was not adversarial — it was a 'take a look' that produced an agreeable 'seems fine'.
66
+
67
+ Rules:
68
+ - Work from provided material only.
69
+ - Keep private material local.
70
+ - Use public-safe synthetic wording for examples.
71
+ - Label assumptions and unverified claims.
72
+ ```
73
+
74
+ ## Full worked example
75
+
76
+ See `EXAMPLE.synthetic.md` for this prompt run from start to finish on a public-safe synthetic task.
@@ -0,0 +1,83 @@
1
+ # Single-Tool Guard
2
+
3
+ Part of the AI Collaboration Open System. This is a local-first, public-safe mechanism package you can copy into Claude Code, Codex, Cursor, Cline, Windsurf, or Copilot.
4
+
5
+ ## Purpose
6
+
7
+ Give a one-model-family user — the realistic default for most solo users, who have exactly one tool — a real guard to START from, not a downgrade to settle for. With a single AI you still turn 'done' into an evidence-backed, re-checkable result. The single-tool guard runs a fresh conversation plus an adversarial reviewer prompt instead of trusting the same assistant that just wrote it. It honestly does NOT equal the cross-family binding gate: it catches fewer real problems, so the verdict is always labeled not-yet-binding, capped at L2, with the residual risk named on the record. The cross-family dual-guard is the upgrade ceiling, not the entry bar.
8
+
9
+ ## When to use
10
+
11
+ This is the default starting point for solo users, who have exactly one tool. Use it at a completion claim when only one model family is available and you would otherwise trust the same assistant that just produced the work: a 'done, tested, shipped' claim, a deliverable about to be handed on, or any output where a wrong 'looks fine' would propagate. It is not a fallback you reach for once a cross-family setup fails — it is where most real work begins, and a single AI here already gives you an evidence-backed, re-checkable result instead of a trusted 'looks fine'.
12
+
13
+ ## When not to use
14
+
15
+ Do not use it as a substitute for a cross-family pass when a second, different model family IS available — in that case run dual-guard, because the cross-family binding gate catches what same-family review cannot. Skip it entirely for low-stakes, easily reversible work a human will fully re-check anyway: a quick fact, a one-line tweak, a throwaway draft. Running an adversarial review on trivial work is ceremony, and ceremony you pay for nothing trains people to skip the review when it actually matters.
16
+
17
+ ## Input shape
18
+
19
+ The artifact under review, with stable line or section references the reviewer can point to. The acceptance card or definition of done it claims to meet. The completion claim's evidence — command output, test results, a reproduced result — or an explicit note that none exists. The context boundary (goal, scope, non-goals) so the reviewer can catch scope drift. A clear acknowledgement that only one model family is available, which is why this is a single-family review and not a cross-family binding pass.
20
+
21
+ ## Input materials
22
+
23
+ - Artifact under review, with line numbers or section anchors so a finding cites an exact spot, not a vibe.
24
+ - Acceptance card / definition of done: the checkable criteria the artifact claims to satisfy.
25
+ - Completion-claim evidence: the actual command output, test result, or reproduced behavior the claim rests on, or an explicit note that none exists.
26
+ - Context boundary: goal, in-scope, and explicit non-goals, so the reviewer can catch scope drift.
27
+ - Single-family acknowledgement: a stated note that only one model family is available, so the verdict is framed as not-yet-binding from the start.
28
+ - The original drafting thread is deliberately NOT reused: a fresh conversation is opened, because the original thread carries the assistant's eagerness to please and its memory of having just claimed done.
29
+
30
+ ## Process
31
+
32
+ 1. Open a NEW conversation. Use a fresh context — the original thread carries the assistant's eagerness to please and its memory of having just claimed done, both of which suppress the very objections you need.
33
+ 2. Paste an ADVERSARIAL reviewer prompt: instruct the assistant to default to refuting the work, to hunt for missing evidence rather than confirm, and to tie every finding to a specific line or section. The frame must actually be adversarial, not 'take a look'.
34
+ 3. Give it the artifact plus the acceptance card and the completion claim's evidence (or the explicit note that none exists). Ask it to check each completion claim against the evidence, whether the acceptance criteria are met, and whether scope drifted past the stated non-goals.
35
+ 4. Mark the verdict explicitly as `single-family-only — cross-family binding gate NOT passed`, and name the residual risk (what a same-family reviewer is most likely to have missed). Never record this as a passed dual-guard.
36
+ 5. Resolve each finding one of two ways: fix it and re-show the evidence in another fresh adversarial pass, or carry it explicitly as named residual risk the owner accepts on the record. A silent 'good enough' is not allowed here either.
37
+ 6. Upgrade path: when a second, different model family becomes available, still run one cross-family binding pass. The single-tool guard is the floor, not the ceiling.
38
+
39
+ ## Output shape
40
+
41
+ - Guard level: this is L2 at best (single tool, author-supplied evidence). It CANNOT reach the cross-family L3 gate, so it cannot return a plain pass.
42
+ - Verdict: one of the four standard states, but bounded by L2 — the strongest a single-tool guard may give is pass_with_risk; it must NOT be recorded as a passed dual-guard. Use reject for a real defect and insufficient_evidence when the completion claim has no evidence at all.
43
+ - Findings, each tied to a specific line or section, produced under an actually-adversarial frame (not a 'looks good' rubber stamp).
44
+ - Residual risk: what a same-family reviewer most likely still missed, named on the record.
45
+ - Owner sign-off: a pass_with_risk is not 'accepted' on the guard's say-so — a human must explicitly accept the named residual risk on the record.
46
+ - Required fixes: the concrete change each blocker needs, to be re-checked in another fresh adversarial pass.
47
+ - Acceptance record: for any finding carried rather than fixed, who accepted the residual risk.
48
+ - Upgrade note: a reminder to run one cross-family binding pass once a second, different model family is available (that is what lifts the ceiling from L2/pass_with_risk to L3/pass).
49
+
50
+ ## Pass bar (what counts as done / safe to trust)
51
+
52
+ - The verdict is at most pass_with_risk (the L2 ceiling) and is NOT recorded as a plain pass or a passed cross-family binding gate.
53
+ - Residual risk is named — what a same-family reviewer most likely still missed is on the record, not left blank.
54
+ - Any pass_with_risk has an explicit owner sign-off on the named residual risk; the guard did not mark it accepted on its own.
55
+ - Every finding is tied to a specific line or section, not a general impression.
56
+ - The adversarial frame was actually used (default-to-refute, hunt-for-missing-evidence), in a fresh conversation, not a 'looks good' rubber stamp from the original thread.
57
+ - The upgrade path is noted: a cross-family binding pass is still owed once a second, different model family is available (that is what lifts the ceiling to L3/pass).
58
+
59
+ ## Reject bar (what sends it back)
60
+
61
+ - The single-family review is recorded as a plain pass or as if it cleared the binding gate (the head failure — a same-family pass dressed up as dual-guard / L3).
62
+ - A pass_with_risk is treated as accepted without an explicit owner sign-off on the residual risk.
63
+ - No residual risk is named, so the next session inherits a hidden gap and assumes more assurance than the pass actually provides.
64
+ - The reviewer only graded tone, fluency, or style instead of checking claims against evidence.
65
+ - The drafting thread was reused instead of a fresh conversation, so the assistant's just-claimed-done eagerness suppressed the objections.
66
+ - The frame was not adversarial — it was a 'take a look' that produced an agreeable 'seems fine'.
67
+
68
+ ## Common misuse
69
+
70
+ - Treating a same-family single review as having passed dual-guard. Same-family reviewers miss the same things; a single-tool pass catches fewer real problems, so it must always be labeled as not-yet-binding, with the residual risk on the record.
71
+ - Skipping the fresh conversation and asking the same thread that just said 'done' to review itself, where its eagerness to please buries the objections.
72
+ - Using a soft 'review this' prompt instead of an adversarial default-to-refute frame, which produces an agreeable rubber stamp rather than findings.
73
+ - Leaving the residual risk blank, so a reader of the record assumes the artifact got more assurance than a single-family pass can give.
74
+ - Reviewing against tone and fluency with no acceptance card or evidence, so the pass grades how it reads instead of whether the claims hold.
75
+ - Treating the single-tool guard as the ceiling and never running the cross-family binding pass even after a second, different model family becomes available.
76
+
77
+ ## Package files
78
+
79
+ - `README.md` explains the mechanism.
80
+ - `PROMPT.md` gives the copy-paste prompt.
81
+ - `TEMPLATE.md` gives the blank operating card.
82
+ - `EXAMPLE.synthetic.md` shows a public-safe run.
83
+ - `FAILURE_MODES.md` names common ways this mechanism fails.
@@ -0,0 +1,75 @@
1
+ # Single-Tool Guard Template
2
+
3
+ AI Collaboration Open System mechanism card. Fill this in a local-first workflow with public-safe or redacted material.
4
+
5
+ ## Purpose
6
+
7
+ Give a one-model-family user — the realistic default for most solo users, who have exactly one tool — a real guard to START from, not a downgrade to settle for. With a single AI you still turn 'done' into an evidence-backed, re-checkable result. The single-tool guard runs a fresh conversation plus an adversarial reviewer prompt instead of trusting the same assistant that just wrote it. It honestly does NOT equal the cross-family binding gate: it catches fewer real problems, so the verdict is always labeled not-yet-binding, capped at L2, with the residual risk named on the record. The cross-family dual-guard is the upgrade ceiling, not the entry bar.
8
+
9
+ ## Template
10
+
11
+ ### Artifact under review (with line/section refs):
12
+
13
+
14
+ ### Acceptance source / definition of done:
15
+
16
+
17
+ ### Completion claim's evidence (or explicit 'none exists'):
18
+
19
+
20
+ ### Single-family acknowledgement (only one model family available):
21
+
22
+
23
+ ### Fresh conversation opened? (must be yes — do not reuse the drafting thread):
24
+
25
+
26
+ ### Adversarial reviewer prompt used (default to refute, hunt missing evidence, cite specific spots):
27
+
28
+
29
+ ### Findings (each cites a line/section/missing evidence):
30
+
31
+
32
+ ### Guard level reached — L2 at most (single tool); a clean pass would need the cross-family L3 pack:
33
+
34
+
35
+ ### Verdict — pass_with_risk / reject / insufficient_evidence (NEVER a plain pass; NEVER recorded as a passed dual-guard):
36
+
37
+
38
+ ### Residual risk (what a same-family reviewer likely still missed) and who accepted it (a pass_with_risk needs an explicit owner sign-off):
39
+
40
+
41
+ ### Required fixes (re-check in another fresh adversarial pass):
42
+
43
+
44
+ ### Upgrade path (run a cross-family binding pass when a second family is available):
45
+
46
+
47
+
48
+ ## Pass bar (tick before you trust the result)
49
+
50
+ - The verdict is at most pass_with_risk (the L2 ceiling) and is NOT recorded as a plain pass or a passed cross-family binding gate.
51
+ - Residual risk is named — what a same-family reviewer most likely still missed is on the record, not left blank.
52
+ - Any pass_with_risk has an explicit owner sign-off on the named residual risk; the guard did not mark it accepted on its own.
53
+ - Every finding is tied to a specific line or section, not a general impression.
54
+ - The adversarial frame was actually used (default-to-refute, hunt-for-missing-evidence), in a fresh conversation, not a 'looks good' rubber stamp from the original thread.
55
+ - The upgrade path is noted: a cross-family binding pass is still owed once a second, different model family is available (that is what lifts the ceiling to L3/pass).
56
+
57
+ ## Reject bar (send it back if any of these is true)
58
+
59
+ - The single-family review is recorded as a plain pass or as if it cleared the binding gate (the head failure — a same-family pass dressed up as dual-guard / L3).
60
+ - A pass_with_risk is treated as accepted without an explicit owner sign-off on the residual risk.
61
+ - No residual risk is named, so the next session inherits a hidden gap and assumes more assurance than the pass actually provides.
62
+ - The reviewer only graded tone, fluency, or style instead of checking claims against evidence.
63
+ - The drafting thread was reused instead of a fresh conversation, so the assistant's just-claimed-done eagerness suppressed the objections.
64
+ - The frame was not adversarial — it was a 'take a look' that produced an agreeable 'seems fine'.
65
+
66
+ ## Worked example
67
+
68
+ See `EXAMPLE.synthetic.md` for this same card filled out end to end on a public-safe synthetic task.
69
+
70
+ ## Completion check
71
+
72
+ - The mechanism has a named trigger.
73
+ - The next action is concrete.
74
+ - Private details are redacted or rewritten as synthetic examples.
75
+ - The result can be handed to another AI tool without extra chat history.