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,28 @@
1
+ # GitHub Copilot Adapter
2
+
3
+ Use repository instructions and prompt files to apply the shared workflow.
4
+
5
+ ## Shared contract pointer
6
+
7
+ Read `../SHARED_CORE_CONTRACT.md` before acting. This adapter is intentionally thin so the profile, context, acceptance, guard, handoff, and harvest rules do not drift.
8
+
9
+ ## How to use
10
+
11
+ 1. Attach or paste `../SHARED_CORE_CONTRACT.md`.
12
+ 2. Attach the layer file you need, such as `../../context/TEMPLATE.md`.
13
+ 3. Attach the current context package or synthetic case.
14
+ 4. Ask GitHub Copilot to return the required artifact shape.
15
+
16
+ ## Minimal instruction
17
+
18
+ ```text
19
+ Use the local AI collaboration workspace. Follow SHARED_CORE_CONTRACT.md. For this task, use profile, context, acceptance, guard, handoff, and harvest as explicit files. Do not invent hidden memory. Label assumptions and unverified claims.
20
+ Follow the coaching layer in SHARED_CORE_CONTRACT.md: proactively remind me at key collaboration moments (defining done, reviewing completion claims, handoff, harvest, profile updates), restrained by default.
21
+ ```
22
+
23
+ ## What this adapter must not do
24
+
25
+ - It must not duplicate the full core contract.
26
+ - It must not create a separate rule system.
27
+ - It must not upload private material.
28
+ - It must not overwrite user files silently.
@@ -0,0 +1,28 @@
1
+ # Cursor Adapter
2
+
3
+ Use Cursor rules to load the shared workspace contract and task files.
4
+
5
+ ## Shared contract pointer
6
+
7
+ Read `../SHARED_CORE_CONTRACT.md` before acting. This adapter is intentionally thin so the profile, context, acceptance, guard, handoff, and harvest rules do not drift.
8
+
9
+ ## How to use
10
+
11
+ 1. Attach or paste `../SHARED_CORE_CONTRACT.md`.
12
+ 2. Attach the layer file you need, such as `../../context/TEMPLATE.md`.
13
+ 3. Attach the current context package or synthetic case.
14
+ 4. Ask Cursor to return the required artifact shape.
15
+
16
+ ## Minimal instruction
17
+
18
+ ```text
19
+ Use the local AI collaboration workspace. Follow SHARED_CORE_CONTRACT.md. For this task, use profile, context, acceptance, guard, handoff, and harvest as explicit files. Do not invent hidden memory. Label assumptions and unverified claims.
20
+ Follow the coaching layer in SHARED_CORE_CONTRACT.md: proactively remind me at key collaboration moments (defining done, reviewing completion claims, handoff, harvest, profile updates), restrained by default.
21
+ ```
22
+
23
+ ## What this adapter must not do
24
+
25
+ - It must not duplicate the full core contract.
26
+ - It must not create a separate rule system.
27
+ - It must not upload private material.
28
+ - It must not overwrite user files silently.
@@ -0,0 +1,28 @@
1
+ # Windsurf Adapter
2
+
3
+ Use Windsurf rules to keep the same six-layer workflow available.
4
+
5
+ ## Shared contract pointer
6
+
7
+ Read `../SHARED_CORE_CONTRACT.md` before acting. This adapter is intentionally thin so the profile, context, acceptance, guard, handoff, and harvest rules do not drift.
8
+
9
+ ## How to use
10
+
11
+ 1. Attach or paste `../SHARED_CORE_CONTRACT.md`.
12
+ 2. Attach the layer file you need, such as `../../context/TEMPLATE.md`.
13
+ 3. Attach the current context package or synthetic case.
14
+ 4. Ask Windsurf to return the required artifact shape.
15
+
16
+ ## Minimal instruction
17
+
18
+ ```text
19
+ Use the local AI collaboration workspace. Follow SHARED_CORE_CONTRACT.md. For this task, use profile, context, acceptance, guard, handoff, and harvest as explicit files. Do not invent hidden memory. Label assumptions and unverified claims.
20
+ Follow the coaching layer in SHARED_CORE_CONTRACT.md: proactively remind me at key collaboration moments (defining done, reviewing completion claims, handoff, harvest, profile updates), restrained by default.
21
+ ```
22
+
23
+ ## What this adapter must not do
24
+
25
+ - It must not duplicate the full core contract.
26
+ - It must not create a separate rule system.
27
+ - It must not upload private material.
28
+ - It must not overwrite user files silently.
@@ -0,0 +1,53 @@
1
+ # Context Filled Synthetic Example
2
+
3
+ ## Purpose
4
+
5
+ Package the task so an assistant can start from the right boundary, evidence, constraints, and unknowns without reading the whole history.
6
+
7
+ ## When to use
8
+
9
+ Use at the start of any task that spans more than one message, touches files, involves judgment, or may be resumed later.
10
+
11
+ ## Input shape
12
+
13
+ Goal, current state, relevant files or links, constraints, non-goals, known facts, assumptions, risks, and open questions.
14
+
15
+ ## Output shape
16
+
17
+ A context package that lets another assistant continue without inventing missing background.
18
+
19
+ ## Copy-paste prompt
20
+
21
+ Use `PROMPT.md` with the synthetic input below.
22
+
23
+ ## Blank template
24
+
25
+ Use `TEMPLATE.md` for your own task.
26
+
27
+ ## Filled synthetic example
28
+
29
+ Goal: Prepare a public beta onboarding flow for a synthetic note app.
30
+
31
+ Current state: Landing copy exists; onboarding has not been tested.
32
+
33
+ Relevant artifacts: README draft, onboarding checklist, synthetic tester notes.
34
+
35
+ Constraints: No analytics SDK until privacy language is reviewed.
36
+
37
+ Non-goals: Payment, account recovery, enterprise SSO.
38
+
39
+ Facts: Three testers abandoned before creating a first note.
40
+
41
+ Assumptions: The first-run prompt may be too abstract.
42
+
43
+ Risks: Improving copy without testing the actual flow.
44
+
45
+ Open questions: Which first action should count as activation?
46
+
47
+ ## Common failure modes
48
+
49
+ See `FAILURE_MODES.md`.
50
+
51
+ ## How to hand it to Claude Code / Codex / Cursor / Windsurf / Copilot / Cline
52
+
53
+ Paste this example into any tool with `../adapters/SHARED_CORE_CONTRACT.md` to see the expected shape.
@@ -0,0 +1,40 @@
1
+ # Context Common Failure Modes
2
+
3
+ ## Purpose
4
+
5
+ Package the task so an assistant can start from the right boundary, evidence, constraints, and unknowns without reading the whole history.
6
+
7
+ ## When to use
8
+
9
+ Read this before trusting a context artifact.
10
+
11
+ ## Input shape
12
+
13
+ The artifact plus the original context and acceptance card.
14
+
15
+ ## Output shape
16
+
17
+ A short list of risks to fix before reuse.
18
+
19
+ ## Copy-paste prompt
20
+
21
+ Ask your AI tool: "Check this context artifact against the failure modes below and name the first concrete fix."
22
+
23
+ ## Blank template
24
+
25
+ Use `TEMPLATE.md` to rewrite the artifact.
26
+
27
+ ## Filled synthetic example
28
+
29
+ Use `EXAMPLE.synthetic.md` to compare a safe example.
30
+
31
+ ## Common failure modes
32
+
33
+ - Dumping the whole history instead of compressing decision-changing facts.
34
+ - Not labeling assumptions.
35
+ - Forgetting non-goals, causing assistants to expand scope.
36
+ - Including private file paths or raw conversations.
37
+
38
+ ## How to hand it to Claude Code / Codex / Cursor / Windsurf / Copilot / Cline
39
+
40
+ Paste this file after the artifact and ask for findings ordered by risk.
@@ -0,0 +1,47 @@
1
+ # Context Prompt
2
+
3
+ ## Purpose
4
+
5
+ Package the task so an assistant can start from the right boundary, evidence, constraints, and unknowns without reading the whole history.
6
+
7
+ ## When to use
8
+
9
+ Use at the start of any task that spans more than one message, touches files, involves judgment, or may be resumed later.
10
+
11
+ ## Input shape
12
+
13
+ Goal, current state, relevant files or links, constraints, non-goals, known facts, assumptions, risks, and open questions.
14
+
15
+ ## Output shape
16
+
17
+ A context package that lets another assistant continue without inventing missing background.
18
+
19
+ ## Copy-paste prompt
20
+
21
+ ```text
22
+ Turn this messy situation into a context package. Separate facts from assumptions. Include goal, current state, relevant artifacts, constraints, non-goals, risks, and open questions. Keep private material summarized or redacted.
23
+
24
+ Input:
25
+ [paste your redacted task material here]
26
+
27
+ Output shape:
28
+ A context package that lets another assistant continue without inventing missing background.
29
+
30
+ Rules:
31
+ - Keep private material local and redacted.
32
+ - Label facts and assumptions.
33
+ - If information is missing, ask at most three concrete questions.
34
+ - Make the result usable in Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
35
+ ```
36
+
37
+ ## Blank template
38
+
39
+ Use `TEMPLATE.md`.
40
+
41
+ ## Filled synthetic example
42
+
43
+ Use `EXAMPLE.synthetic.md`.
44
+
45
+ ## Common failure modes
46
+
47
+ Use `FAILURE_MODES.md`.
@@ -0,0 +1,44 @@
1
+ # Context
2
+
3
+ What the task boundary is, what is known, and what should not be assumed.
4
+
5
+ 中文:把当前任务边界写清楚,避免新会话靠猜。
6
+
7
+ ## Purpose
8
+
9
+ Package the task so an assistant can start from the right boundary, evidence, constraints, and unknowns without reading the whole history.
10
+
11
+ ## When to use
12
+
13
+ Use at the start of any task that spans more than one message, touches files, involves judgment, or may be resumed later.
14
+
15
+ ## Input shape
16
+
17
+ Goal, current state, relevant files or links, constraints, non-goals, known facts, assumptions, risks, and open questions.
18
+
19
+ ## Output shape
20
+
21
+ A context package that lets another assistant continue without inventing missing background.
22
+
23
+ ## Copy-paste prompt
24
+
25
+ See `PROMPT.md`. The prompt is designed to work in Claude Code / Codex / Cursor / Windsurf / Copilot / Cline.
26
+
27
+ ## Blank template
28
+
29
+ See `TEMPLATE.md`.
30
+
31
+ ## Filled synthetic example
32
+
33
+ See `EXAMPLE.synthetic.md`.
34
+
35
+ ## Common failure modes
36
+
37
+ See `FAILURE_MODES.md`.
38
+
39
+ ## How to hand it to Claude Code / Codex / Cursor / Windsurf / Copilot / Cline
40
+
41
+ 1. Open the adapter for your tool in `../adapters/`.
42
+ 2. Include `../adapters/SHARED_CORE_CONTRACT.md`.
43
+ 3. Paste this layer's `PROMPT.md` plus either `TEMPLATE.md` or `EXAMPLE.synthetic.md`.
44
+ 4. Ask the tool to return the layer's output shape exactly.
@@ -0,0 +1,63 @@
1
+ # Context Template
2
+
3
+ ## Purpose
4
+
5
+ Package the task so an assistant can start from the right boundary, evidence, constraints, and unknowns without reading the whole history.
6
+
7
+ ## When to use
8
+
9
+ Use at the start of any task that spans more than one message, touches files, involves judgment, or may be resumed later.
10
+
11
+ ## Input shape
12
+
13
+ Goal, current state, relevant files or links, constraints, non-goals, known facts, assumptions, risks, and open questions.
14
+
15
+ ## Output shape
16
+
17
+ A context package that lets another assistant continue without inventing missing background.
18
+
19
+ ## Copy-paste prompt
20
+
21
+ Open `PROMPT.md` and paste this completed template below it.
22
+
23
+ ## Blank template
24
+
25
+ ### Goal:
26
+
27
+
28
+ ### Current state:
29
+
30
+
31
+ ### Relevant artifacts:
32
+
33
+
34
+ ### Constraints:
35
+
36
+
37
+ ### Non-goals:
38
+
39
+
40
+ ### Facts:
41
+
42
+
43
+ ### Assumptions:
44
+
45
+
46
+ ### Risks:
47
+
48
+
49
+ ### Open questions:
50
+
51
+
52
+
53
+ ## Filled synthetic example
54
+
55
+ See `EXAMPLE.synthetic.md`.
56
+
57
+ ## Common failure modes
58
+
59
+ See `FAILURE_MODES.md`.
60
+
61
+ ## How to hand it to Claude Code / Codex / Cursor / Windsurf / Copilot / Cline
62
+
63
+ Use the adapter in `../adapters/` and include the shared core contract.
@@ -0,0 +1,8 @@
1
+ # Cookbook
2
+
3
+ Do-it recipes for running the AI Collaboration Open System. Each recipe is a full configuration: when to use it, prerequisites, steps, a copy-paste block you can actually run, expected output, failure handling, a privacy note, and a next step. The walkthroughs are operation cards ("press these in this order"); these recipes explain why each step exists and how to adapt it to your own task.
4
+
5
+ - `run-a-first-loop.md`: run one complete collaboration loop end to end on your own real task; the prepared synthetic case is an optional "watch the flow first" track.
6
+ - `connect-a-tool.md`: wire any AI tool (general chat AI, coding assistant, command-line AI) to the shared contract by copying files into its instruction slot.
7
+ - `review-a-half-product.md`: audit a "done but maybe not" deliverable by forcing an independent AI to cite evidence and find the gap.
8
+ - `bridge-to-a-second-family.md`: stand up the second, different-model-family AI the cross-family guard needs, and route a review across it — manual copy-paste (works anywhere) or an optional auto bridge.
@@ -0,0 +1,103 @@
1
+ # Bridge to a Second Family
2
+
3
+ A do-it recipe: set up the second, different-model-family AI that the cross-family guard needs, and route a review across it. The rest of the system keeps telling you "when a second, different model family is available, you can upgrade to the cross-family double guard" — this recipe is the missing how. It does not redefine the guard: `../mechanisms/dual-guard/README.md` owns the judgment rules (L3 vs L4, binding vs reference, layered strictness over majority vote, the pass and reject bars). This recipe only covers the part those rules assume you already did: pick a second family, get your material across to it safely, and keep evidence that the second family actually ran.
4
+
5
+ There are two tracks. The manual bridge (copy-paste between two AIs) is the main path: it works with any two tools, needs no setup, and never breaks. The auto bridge (a tool that dispatches the review to another family for you) is an optional convenience. Start manual; reach for auto only if a tool you already use offers it.
6
+
7
+ ## When to use this
8
+
9
+ - A completion claim is about to be trusted by another session, tool, or person, and you want the cross-family binding gate the dual-guard mechanism describes — but you only have one tool wired up so far.
10
+ - You keep stopping at "upgrade to a second model family" and do not know how to actually stand one up.
11
+ - You have run `single-tool-guard` and want to move a result above its L2 ceiling with a genuine cross-family pass.
12
+
13
+ Skip it for low-stakes, easily reversible work a human will fully re-check anyway. A single tool's own adversarial pass (`../mechanisms/single-tool-guard/README.md`) is the right tool there; bridging to a second family is the upgrade for work that will propagate.
14
+
15
+ ## Prerequisites
16
+
17
+ - A redacted version of the artifact under review (swap private names, paths, and numbers for placeholders). Nothing private needs to leave your machine; a redacted copy is enough.
18
+ - Its acceptance card or one-line "done" claim, and the evidence that supposedly backs it (command output, test result, a reproduced result, or a clear note that none exists).
19
+ - One AI tool you already use as your primary (the family that drafted the work, or any family you treat as home base).
20
+ - A second AI that is a DIFFERENT model family from your primary. That is the whole point: a different family does not share your primary's blind spots. (How to choose one is Step 1 below — you do not need it set up before you start.)
21
+
22
+ ## Track A — the manual bridge (main path, works with any two tools)
23
+
24
+ ### Step 1. Choose a second family
25
+
26
+ Pick any AI that is a different model family from your primary tool. The families differ; the move does not. Concrete examples (each is just an example — substitute freely):
27
+
28
+ - Primary is a Claude-family tool? Use a GPT-family or a Gemini-family AI as the second.
29
+ - Primary is a GPT-family tool? Use a Claude-family or a Gemini-family AI as the second.
30
+ - Primary is a Gemini-family tool? Use a Claude-family or a GPT-family AI as the second.
31
+
32
+ Any different-family pairing works — the names above are illustrations, not a required list. What matters is "different family", not which brands. Two tools that wrap the same underlying family (for example two products both built on the same model) do NOT count as a cross-family pair; the dual-guard mechanism treats that as same-family, capped below the cross-family gate. If you are unsure whether two tools share a family, treat them as same-family until you can confirm otherwise.
33
+
34
+ ### Step 2. Redact before it leaves your primary
35
+
36
+ The second AI cannot read your disk; to review your material it has to be pasted in. So redact first, exactly as in `connect-a-tool.md`: replace real product names, customer or person names, file paths, and internal numbers with placeholders. Do not paste a private profile, raw private chat logs, internal numbers, or non-public paths into the second AI. The review works on a redacted artifact plus its evidence; it does not need the private original.
37
+
38
+ ### Step 3. Send the package across and run the cross-family review
39
+
40
+ This is your move to make, not the second AI's — it cannot read your disk, so you fetch the file contents and paste them in. On your own machine, open `../mechanisms/dual-guard/PROMPT.md` and copy its "Copy-paste prompt" body. Then paste one combined message into the second (different-family) AI: the carrier wrapper below, the dual-guard body you just copied, and your redacted material (artifact, acceptance card, context boundary, evidence). The carrier is a thin wrapper that hands the pasted dual-guard body to the second AI as its instructions; it does not restate the guard's rules, because the dual-guard mechanism owns them.
41
+
42
+ ### Step 4. Collect the verdict and record binding evidence
43
+
44
+ Read back the verdict using the dual-guard pass and reject bars (do not re-derive them here). Then record what makes the result trustworthy later: which family was the binding guard, the findings, the fixes, and the residual risk. A bridge to a second family reaches L3 (a structured evidence pack reviewed by a different family). To reach L4, the binding guard must independently re-run the key evidence and reconcile it to a recorded run — re-running the critical check yourself across the second family is what raises a cross-family L3 to L4 (the strongest LOCAL-trust level, not cryptographic proof).
45
+
46
+ ## Copy-paste block (manual bridge)
47
+
48
+ Paste this into the second, different-family AI. It carries your material to the dual-guard prompt; it deliberately does not repeat the guard's judgment rules.
49
+
50
+ ```text
51
+ Run a cross-family review for me. You are the second, different-model-family guard.
52
+
53
+ Your full instructions are the Dual Guard prompt body, which I have pasted directly below. Follow it exactly (process, output shape, pass bar, reject bar, guard-level rules). It is the source of truth; do not invent your own rubric. You cannot read my disk, so I am pasting the body in here rather than pointing you at a local file.
54
+
55
+ --- Dual Guard PROMPT body (begin) ---
56
+ [Paste the Dual Guard PROMPT.md "Copy-paste prompt" body here — open it locally and copy it in yourself; the second AI cannot read your disk.]
57
+ --- Dual Guard PROMPT body (end) ---
58
+
59
+ Then review this material under the Dual Guard prompt body pasted above:
60
+ - Drafting model family (my primary): [name the family that produced the work]
61
+ - Artifact under review (redacted, with line/section refs): [paste]
62
+ - Acceptance card / definition of done: [paste]
63
+ - Context boundary (goal, in-scope, non-goals): [paste]
64
+ - Evidence provided: [paste command output / test result / reproduced result, or write "none provided"]
65
+
66
+ Return exactly the dual-guard output shape (verdict, guard level, binding findings, required fixes, residual risk, next action). Work only from what I pasted; if key evidence is missing, say so rather than assume it passes. Keep examples public-safe.
67
+ ```
68
+
69
+ ## Track B — the auto bridge (optional, point-to-point, depends on your tool)
70
+
71
+ Some tools can dispatch the review to a second family for you, so you do not hand-carry the paste. The shape is the same cross-family pass; the tool just automates the hand-off.
72
+
73
+ Concrete example (an example, not a requirement): a coding tool that supports a "rescue" or cross-model plugin can route a review to a different family — for instance a Claude-family coding tool with a plugin that sends the review to a GPT-family model. That auto-dispatched second model is your cross-family bridge.
74
+
75
+ Two rules make an auto bridge safe to trust:
76
+
77
+ - Read-only is mandatory. The auto-dispatched second AI must review only — it must NOT be allowed to edit your files. If the bridge lets the second AI change the work, it is no longer an independent reviewer of that work, and the cross-family independence the whole gate depends on is gone. Configure the dispatch as read-only and confirm it actually ran read-only before you trust the verdict.
78
+ - It is convenience, not a requirement. The auto bridge depends on a specific tool and integration, and those change over time. The manual bridge in Track A always works. Treat the auto bridge as a way to save effort, never as the only way to reach a second family.
79
+
80
+ Everything else — which verdicts are allowed, the L3/L4 boundary, binding vs reference — is unchanged and still lives in `../mechanisms/dual-guard/README.md`. The auto bridge changes how the material gets there, not what counts as a pass.
81
+
82
+ ## Expected output
83
+
84
+ - A cross-family review of your artifact, returned in the dual-guard output shape (verdict, guard level, findings, fixes, residual risk, next action).
85
+ - A recorded note of which family was the binding guard, so a later session can trust the result without re-litigating it.
86
+ - Honest leveling: an L3 result from the second family's review of your evidence pack, or L4 only if the binding guard re-ran the key evidence and showed that output. A bare claim that "a second family looked at it" is not a pass — the evidence is.
87
+
88
+ ## Failure handling
89
+
90
+ - Your two tools turn out to share a model family. Then this is a same-family reference pass, not a cross-family gate; under the dual-guard rules it cannot clear the binding gate or move you above L2. Find a genuinely different family for the binding pass.
91
+ - The second family just says "looks good" with no specifics. It is grading tone, not claims. Make sure you pasted the dual-guard prompt body (not only the carrier wrapper) so its "each finding cites a line/section/missing evidence" rule is in force; an empty finding list is only valid if it can say what it checked.
92
+ - You only claimed a second family but kept no evidence. Family can be faked — anyone can say "a different AI reviewed this". What is hard to fake is a rerun and a reconciliation: record the binding family, the findings, and, for L4, your own rerun output. If you cannot show the review happened, treat the result as single-tool (L2), not cross-family.
93
+ - The auto bridge ran with write access. Discard the verdict and re-run it read-only. A reviewer that could edit the work is not independent of it.
94
+
95
+ ## Privacy note
96
+
97
+ A second family means a second place your material gets pasted, so the privacy bar is the same as `connect-a-tool.md`, applied twice. Redact before pasting into either tool: replace real product names, customer or person names, file paths, and internal numbers with placeholders. Do not paste a private profile, raw private chat logs, internal numbers, or non-public paths into any external AI. For an auto bridge, confirm the dispatched second AI is read-only and does not exfiltrate or store your content beyond the review. The cross-family review works on a redacted artifact plus its evidence; it never needs the private original.
98
+
99
+ ## Next step
100
+
101
+ - Read the judgment rules this recipe feeds into: `../mechanisms/dual-guard/README.md` (L3 vs L4, binding vs reference, pass and reject bars).
102
+ - Coming from one tool? See the L2 front door you are upgrading from: `../mechanisms/single-tool-guard/README.md`.
103
+ - Wire the second family in as a standing tool so the bridge is one trigger away: `connect-a-tool.md`.
@@ -0,0 +1,67 @@
1
+ # Connect a Tool
2
+
3
+ A do-it recipe: point any AI tool you already use at this workspace, so the same profile, context, acceptance, guard, handoff, and harvest rules drive every tool instead of six drifting rule systems. The key idea is that every mechanism here is just a Markdown file. You connect a tool by copying file contents into that tool's instruction slot. Nothing depends on this CLI staying installed; the CLI only writes the files.
4
+
5
+ ## When to use this
6
+
7
+ - You have a favorite AI tool (a general chat AI, a coding assistant, or a command-line AI) and want it to follow this system's loop.
8
+ - You use more than one tool and they each behave differently because each has its own ad hoc rules.
9
+ - You want a mechanism (like a guard pass) available inside your tool as a reusable instruction, not something you re-type every time.
10
+
11
+ Skip it if you only ever read these files by hand and never paste them into a tool.
12
+
13
+ ## Prerequisites
14
+
15
+ - This workspace exists locally.
16
+ - The AI tool you want to connect, and knowledge of where it accepts standing instructions. Three common shapes: a general chat AI uses a "system prompt" or "custom instructions" box; a coding assistant uses a project rules file (for example a `CLAUDE.md`, an `AGENTS.md`, a `.cursorrules`, a `.clinerules`, or an equivalent); a command-line AI uses its config or a per-project instruction file.
17
+ - Two minutes per tool. This is copy and paste, not installation.
18
+
19
+ ## Steps
20
+
21
+ 1. Open the shared contract. Open `../adapters/SHARED_CORE_CONTRACT.md`. This is the one rule source every tool should share so the loop does not drift between tools.
22
+ 2. Open the adapter for your tool family. Look in `../adapters/` for the closest match to your tool (each adapter is a thin pointer, intentionally not a second copy of the contract). If none matches exactly, pick the nearest one. The adapter shows the minimal instruction your tool needs.
23
+ 3. Put the contract where your tool reads standing instructions. For a chat AI, paste the contract into the system-prompt or custom-instructions box. For a coding assistant, save it (or a pointer to it) into that tool's project rules file. For a command-line AI, add it to the tool's config or per-project instruction file. Use the copy-paste block below.
24
+ 4. Add one mechanism as a reusable instruction (optional but the high-value move). Pick a mechanism you want on tap, for example `../mechanisms/dual-guard/PROMPT.md` or `../guard/PROMPT.md`. Copy the prompt body from that file's "Copy-paste prompt" block into a saved prompt, snippet, or rule in your tool, so a guard pass is one trigger away instead of a retype.
25
+ 5. Verify the wiring with a throwaway ask. Tell the tool: "State the core loop you are now following and where each step's rules live." A correctly connected tool names profile, context, acceptance, guard, handoff, harvest and treats them as explicit files, instead of inventing hidden memory.
26
+ 6. Save anything worth keeping back into this workspace (a filled template, a handoff, a harvest card) so the next tool or session starts from the same files.
27
+
28
+ ## Copy-paste block
29
+
30
+ Two pieces. The first wires the whole loop into a tool. The second drops a single mechanism in as a reusable instruction. Before pasting, open the referenced file and paste its real contents where marked; do not paste the file path and expect the tool to read your disk.
31
+
32
+ ```text
33
+ [A / WIRE THE LOOP INTO A TOOL - paste into the tool's system prompt or project rules file]
34
+ Follow this shared contract for our work. Treat profile, context, acceptance, guard/review, handoff, and harvest as explicit files in a local-first workspace, not as hidden memory. Work local-first; do not upload my content by default. Label facts, assumptions, decisions, and unverified claims. Use synthetic, redacted examples for anything I might share publicly.
35
+ --- shared contract begins ---
36
+ [paste the full contents of ../adapters/SHARED_CORE_CONTRACT.md here]
37
+ --- shared contract ends ---
38
+
39
+ [B / ADD ONE MECHANISM AS A REUSABLE INSTRUCTION - save as a snippet, saved prompt, or rule]
40
+ When I invoke this, run the mechanism below on the material I provide. Keep private material local and redacted. Point findings to specific spots. Return the mechanism's stated output shape, not a vague summary.
41
+ --- mechanism prompt begins ---
42
+ [paste the "Copy-paste prompt" block from ../mechanisms/<mechanism>/PROMPT.md here]
43
+ --- mechanism prompt ends ---
44
+ ```
45
+
46
+ ## Expected output
47
+
48
+ - Your tool, when asked, can name the core loop (profile, context, acceptance, guard, handoff, harvest) and treats each as a file rather than invented memory.
49
+ - At least one mechanism is reachable inside the tool as a saved instruction you can trigger without retyping it.
50
+ - The same contract now drives every tool you connected this way, so behavior is consistent across tools.
51
+
52
+ ## Failure handling
53
+
54
+ - The tool ignores the standing instruction. You likely pasted into a one-off chat turn instead of the persistent slot. Move the contract into the actual system-prompt box or project rules file so it survives across turns.
55
+ - The tool "can't find" a referenced file. Tools generally cannot read your disk from a path in a prompt. Paste the file's contents inline (as the block marks), not just its path. Files are the source of truth; pasting is how a tool sees them.
56
+ - Behavior still drifts between two tools. Confirm both point at the same single `SHARED_CORE_CONTRACT.md` and that neither has an older private rule set fighting it. One contract, many thin adapters; never six full rule systems.
57
+ - The adapter looks too thin and you want to fatten it. Do not. The adapter is meant to be a pointer; thickening it recreates the drift the shared contract exists to prevent.
58
+
59
+ ## Privacy note
60
+
61
+ Connecting a tool means standing instructions, not your private data. Paste the contract and mechanism prompts (they are public-safe). Do not paste a private profile, raw private chat logs, internal numbers, or non-public paths into a tool's instruction slot or an external AI. When you later run real tasks through the connected tool, redact first and keep originals local; the loop is designed to work on a redacted description.
62
+
63
+ ## Next step
64
+
65
+ - Run a full loop through the tool you just connected: `run-a-first-loop.md`.
66
+ - Use the connected tool to pressure-test a "done" artifact: `review-a-half-product.md`.
67
+ - Browse the other mechanisms you can wire in the same way: `../mechanisms/README.md`.
@@ -0,0 +1,79 @@
1
+ # Review a Half Product
2
+
3
+ A do-it recipe: audit a deliverable that says "done" but might not be, by forcing an independent AI to point at evidence and find the gap, instead of nodding along with "looks good". It uses the review mode plus the dual-guard and half-product-review mechanisms. The target is the classic half product: lots of docs, demo, and confident prose, but the thing it claims a stranger can do does not actually run.
4
+
5
+ ## When to use this
6
+
7
+ - Someone (a tool, another session, a contributor) hands you work claimed complete and you will build on it or ship it.
8
+ - A project has a polished README and architecture talk but you are not sure the first-run experience actually works.
9
+ - A completion claim feels too smooth and you want a second, independent pass before you trust it.
10
+
11
+ Skip it for low-stakes, easily reversible work, or a step you are about to fully re-check yourself anyway. Running a full review on trivial work is ceremony, and ceremony with no payoff trains people to skip review when it matters.
12
+
13
+ ## Prerequisites
14
+
15
+ - The artifact under review, with stable references the reviewer can point to (line numbers, section anchors, or named files).
16
+ - Its definition of done: an acceptance card, or at least the public claim it makes ("a stranger can do X in ten minutes").
17
+ - The evidence that supposedly backs the claim: command output, test results, a reproduced result, or a clear note that none exists.
18
+ - An AI tool to run the review in, ideally a different model family from whatever produced the artifact, since a different family is the pass most likely to see what the author cannot.
19
+
20
+ ## Steps
21
+
22
+ 1. Pin the claim. Write down, in one line, exactly what the artifact claims is done or usable. A claim you cannot state is a claim you cannot test. If it has an acceptance card, use that; if not, lift the strongest promise from its README or start page.
23
+ 2. Trace each claim to evidence. For every claim, find the file, command output, or test that proves it, or note that none exists. The half-product pattern is docs and demos that point at nothing runnable. A claim with no evidence is the finding.
24
+ 3. Try the first-run path. If the claim is "a stranger can do X", do X the way a stranger would: run the entry command, open the file the docs point to, follow the start page. Watch where it breaks or where a referenced artifact is missing.
25
+ 4. Run the independent guard. Paste the artifact, the acceptance card or pinned claim, and any evidence into the review prompt below, in a second tool. Demand findings tied to specific lines or missing evidence, ordered by severity, with a pass or reject. Do not accept a fluent "looks fine".
26
+ 5. Merge by strictness, not vote. If the guard names one real, evidence-grounded blocker, the artifact does not pass, even if everything else reads well. One concrete defect outweighs a pile of fluent approval. Compare against `../mechanisms/dual-guard/README.md` for how the binding pass works.
27
+ 6. Decide the wording. If the first-run path is not actually runnable, downgrade the release language (from "anyone can use this" to "early / not yet runnable end to end") or carry the gap as named residual risk the owner accepts on the record. Silent "good enough" is not allowed.
28
+
29
+ ## Copy-paste block
30
+
31
+ Paste this into an independent AI tool, ideally a different model family from the one that produced the work. It is tuned to make the reviewer hunt for the gap and cite it, not to praise.
32
+
33
+ ```text
34
+ You are an independent reviewer. The work below claims to be complete or usable. Assume it might not be, and prove it either way against the evidence, not the tone.
35
+
36
+ Claim under test: [paste the one-line "done"/usable claim, or the acceptance card]
37
+ Artifact: [paste the artifact, or the README/start page and the key files it points to]
38
+ Evidence provided: [paste command output / test results / reproduced result, or write "none provided"]
39
+
40
+ Do this:
41
+ 1. For each claim, name the specific evidence that backs it, or state that none was provided.
42
+ 2. Walk the first-run path a stranger would take. Say exactly where it breaks or where a referenced file/command is missing.
43
+ 3. List defects ordered by severity. Tie each to a line, section, or the specific missing evidence. No vague "looks good" or "seems fine".
44
+ 4. If any one real, evidence-grounded blocker exists, the verdict is REJECT even if the rest reads well.
45
+
46
+ Return:
47
+ - Verdict: pass / reject / insufficient_evidence / pass_with_risk (a plain pass needs an L3+ cross-family evidence pack; a single tool tops out at pass_with_risk; summary-only is insufficient_evidence)
48
+ - Guard level: L0-L4, the strength of the evidence you actually had. The CLI COMPUTES this from your review method + the evidence (it is not self-declared); a cross-family L3 is shown "self-declared, unverified" because a local tool cannot verify the reviewer's family — L4 (that cross-family review AND a rerun reconciled to a recorded run) is the strongest LOCAL-trust level, not cryptographic proof.
49
+ - Findings (each tied to a line, section, or missing evidence)
50
+ - Required fixes (the smallest change each blocker needs)
51
+ - Residual risk (what stays unverified and who must accept it; a pass_with_risk needs an explicit owner sign-off)
52
+ - Recommended release wording (downgrade it if the first-run path is not runnable)
53
+
54
+ Rules: work only from what I provided; if key evidence is missing, say so rather than assuming it passes; keep examples public-safe.
55
+ ```
56
+
57
+ ## Expected output
58
+
59
+ - A verdict: pass, reject, insufficient_evidence, or pass_with_risk, plus the guard level (L0-L4) for the evidence seen.
60
+ - A findings list where each item points to a line, section, or a specific missing piece of evidence, not a vibe.
61
+ - The exact first-run step where the experience breaks, if it does.
62
+ - The smallest fixes required before the work can wear its completion label, and recommended release wording.
63
+
64
+ ## Failure handling
65
+
66
+ - The reviewer just approves it. It is grading tone, not claims. Re-run and force step 1: every claim must be matched to specific evidence or marked unproven; "looks good" is not a finding.
67
+ - The reviewer invents evidence or assumes the path works. Tell it to work only from what you pasted and to say "none provided" rather than assume. If it cannot see the evidence, that absence is itself the result.
68
+ - Two reviewers disagree (one approves, one rejects). Do not average them. If the rejection points to a real, evidence-grounded defect, it wins; one concrete blocker beats fluent approval.
69
+ - You only have the same tool the author used. Run it anyway in a fresh session, but treat the pass as weaker: same model family tends to miss the same things, so a clean result here is a reference, not a guarantee.
70
+
71
+ ## Privacy note
72
+
73
+ Review the work, not your private data. Redact before pasting: replace real product names, customer or person names, file paths, and internal numbers with placeholders. Do not paste a private profile, raw private chat logs, or non-public paths into an external AI for review. The review works on a redacted artifact plus its evidence; it does not need the private original.
74
+
75
+ ## Next step
76
+
77
+ - Use the full two-layer review behind this on higher-stakes artifacts: `../mechanisms/dual-guard/README.md`.
78
+ - See the dedicated mechanism for the docs-outrun-runtime pattern: `../mechanisms/half-product-review/README.md`.
79
+ - After a reject, package the exact remaining work for whoever fixes it: `../mechanisms/handoff-abc/README.md`.