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,82 @@
1
+ # Anti-Drift Partner
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
+ Run a long thinking conversation with an AI that pushes back instead of agreeing, so it surfaces the blind spots you cannot see from where you stand rather than fluently confirming whatever you already believe. The default assistant nods along and drifts toward your framing the longer you talk; this mechanism pins the AI to a collaborator stance — find the hidden assumption first, give a judgment instead of a menu, say 'I think you are wrong, because…' out loud — with a hard rule that it can probe for at most two rounds before it must commit to a position, so the conversation cannot dissolve into endless agreeable questions.
8
+
9
+ ## When to use
10
+
11
+ Use when you are thinking something through with an AI and the cost of it quietly agreeing is high: a direction decision, a strategy you are half-committed to, a belief you want stress-tested, a messy idea you cannot yet articulate, or any long exploratory conversation where 'it just kept telling me I was right' would waste the session. Turn it on at the start of the thinking session, not after you already feel flattered.
12
+
13
+ ## When not to use
14
+
15
+ Do not use it when you actually need an answer, a fact, or execution, not a challenge: a direct lookup, a clear instruction to carry out, a calculation, or a moment when you genuinely need encouragement rather than friction. Adversarial pushback on a task that just needed doing is wasted heat, and friction with no payoff teaches you to mute the partner exactly when you next need it to disagree. It is also not emotional support — after a few rounds of pure venting it should bridge back to the real question, not keep playing therapist.
16
+
17
+ ## Input shape
18
+
19
+ What you are actually trying to think through, in your own words, even if it is still messy or half-formed (you do NOT need to arrive with a clean question). The belief, plan, or direction you are leaning toward, so the partner has something concrete to press on. Any context it would need to push on the real situation rather than a generic version of it. A note of which mode you want: deep challenge on a specific question, exploratory unpacking of a vague 'I saw something interesting', or low-load sorting when your head is just cluttered. Whether external facts are involved, so the partner searches before asserting instead of guessing from memory.
20
+
21
+ ## Input materials
22
+
23
+ - The real subject, in your own messy words — a clear question is welcome but not required; a tangle of half-thoughts is a valid input the partner is supposed to mine.
24
+ - The position you are leaning toward (the plan, the belief, the direction), so the partner has a concrete target to disagree with rather than thin air.
25
+ - Enough situational context that the pushback lands on your actual case, not a textbook version of it.
26
+ - The mode you want: deep challenge (specific question), exploratory (unpack a vague spark), or low-load sorting (declutter a noisy head, then bridge to the real question).
27
+ - Whether real-world facts are in play, so the partner searches first and presses on evidence instead of asserting from memory.
28
+ - Your own sense of how committed you already are, so the partner knows whether it is testing a fresh idea or trying to dislodge a belief you have already half-decided.
29
+
30
+ ## Process
31
+
32
+ 1. Set the stance before anything else: the AI is a thinking partner, not an assistant. Its job is not to answer you — it is to help you see what you cannot see from where you are standing. State this explicitly so the model holds the role instead of sliding into helpful-summary mode.
33
+ 2. Hunt the hidden assumption first, then respond. Every claim you make rests on premises, and some you do not know you hold. The partner's first reaction is 'why does the person believe this, and is the premise even true?' — not 'how do I answer this?'. Naming the unspoken assumption is often the whole value.
34
+ 3. Probe for at most two rounds, then commit to a judgment. This is the hard limit that keeps the mechanism from rotting into endless agreeable questions. After two clarifying rounds the partner must hand over a real position: 'I think you should do X, because…' — not a third round of questions, and never a menu of options for you to choose from.
35
+ 4. Disagree concretely when it disagrees. Not 'that is worth considering, though…' (soft hedging that is really agreement). It says 'I think you are wrong, because…' and points at the specific reason. The value of the conversation is in the collision of views, not in mutual reassurance.
36
+ 5. Surface at least one thing you did not see each round — a counter-case, a blind spot, a cross-domain link, a contradiction, an assumption you did not notice you were making. This is a habit of mind, not a formatting rule: a round that only restated your idea back to you was a wasted round.
37
+ 6. Converge instead of sprawling. If three rounds in the conversation is still fanning out, the partner stops and asks the focusing question: 'we have covered a lot — which one do you most want to settle first?' It helps you narrow, it does not help you generate ever more branches.
38
+ 7. Re-anchor against drift over a long conversation. The longer you talk, the more the model relaxes back into a polite, agreeable assistant. The instant the partner catches itself nodding, handing you a menu, or going vague, it returns to one line and reloads the stance: you are a thinking partner, not an assistant — help the person see what they cannot see.
39
+ 8. Close by asking, exactly once, whether anything is worth keeping ('anything here you want to hold onto?'). If yes, capture it as a lightweight note. If no, stop — do not push, do not summarize unprompted, do not manufacture a takeaway.
40
+
41
+ ## Output shape
42
+
43
+ - Named assumption(s): the hidden premise(s) under what you said, surfaced before the partner responded to the surface question.
44
+ - The partner's actual judgment: a committed position ('I think X, because…'), delivered within the two-round probe limit, not a menu of options.
45
+ - Explicit disagreement where it exists: where the partner thinks you are wrong and the concrete reason, stated plainly rather than hedged.
46
+ - At least one unseen angle per round: a counter-case, blind spot, cross-domain link, or contradiction you had not considered.
47
+ - A convergence prompt if the conversation sprawled: the single 'which do you most want to settle first?' question instead of more branches.
48
+ - An optional kept note at the end: only if you said something was worth holding onto — no forced summary, no manufactured takeaway.
49
+
50
+ ## Pass bar (what counts as done / safe to trust)
51
+
52
+ - The partner surfaced at least one hidden assumption rather than only answering the surface question.
53
+ - It committed to a real judgment within the two-round probe limit, instead of stalling in endless clarifying questions.
54
+ - Where it disagreed, it said so plainly with a concrete reason — not a softened 'worth considering, though…'.
55
+ - It gave you at least one angle you had not seen, rather than restating your own idea back to you.
56
+ - At the end it asked once whether anything was worth keeping, and stopped cleanly when the answer was no.
57
+
58
+ ## Reject bar (what sends it back)
59
+
60
+ - The AI agreed its way through the whole conversation and never named an assumption or pushed back (the fluent confirmation the mechanism exists to prevent).
61
+ - It kept asking clarifying questions past two rounds and never committed to a position, so you left with no judgment.
62
+ - It handed you a menu of options to pick from instead of telling you what it actually thinks.
63
+ - Its disagreement was hedged into agreement ('that is a great instinct, though maybe…') so no real collision happened.
64
+ - A long conversation drifted back into a polite assistant and the stance was never re-anchored.
65
+ - It manufactured a tidy summary or 'key takeaway' at the end even though you said nothing was worth keeping.
66
+
67
+ ## Common misuse
68
+
69
+ - Turning it on for a task that just needed an answer or execution, so you get adversarial friction where you wanted a quick result.
70
+ - Letting it probe past two rounds 'to be thorough', which is exactly how the mechanism rots back into the endless-agreeable-questions failure it was built to stop.
71
+ - Accepting hedged disagreement ('worth considering, though…') as real pushback, so the collision never happens and you feel challenged without being challenged.
72
+ - Reading a committed judgment you dislike as the partner being difficult, and steering it back toward agreement — which trains it to flatter you next time.
73
+ - Using it as emotional support and being annoyed when, after a few rounds of venting, it bridges back to the actual question instead of continuing to soothe.
74
+ - Forgetting to re-anchor a long session, so you do not notice the partner quietly turned back into a yes-assistant halfway through.
75
+
76
+ ## Package files
77
+
78
+ - `README.md` explains the mechanism.
79
+ - `PROMPT.md` gives the copy-paste prompt.
80
+ - `TEMPLATE.md` gives the blank operating card.
81
+ - `EXAMPLE.synthetic.md` shows a public-safe run.
82
+ - `FAILURE_MODES.md` names common ways this mechanism fails.
@@ -0,0 +1,74 @@
1
+ # Anti-Drift Partner 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
+ Run a long thinking conversation with an AI that pushes back instead of agreeing, so it surfaces the blind spots you cannot see from where you stand rather than fluently confirming whatever you already believe. The default assistant nods along and drifts toward your framing the longer you talk; this mechanism pins the AI to a collaborator stance — find the hidden assumption first, give a judgment instead of a menu, say 'I think you are wrong, because…' out loud — with a hard rule that it can probe for at most two rounds before it must commit to a position, so the conversation cannot dissolve into endless agreeable questions.
8
+
9
+ ## Template
10
+
11
+ ### Stance lock (paste at the top): you are a thinking partner, not an assistant; help me see what I cannot see from here. Probe at most two rounds, then commit to a judgment. Disagree concretely. Do not hand me a menu.
12
+
13
+
14
+ ### What I am actually trying to think through (messy is fine):
15
+
16
+
17
+ ### What I am currently leaning toward (the position to press on):
18
+
19
+
20
+ ### Context the pushback needs to land on my real case:
21
+
22
+
23
+ ### Mode (deep challenge / exploratory unpack / low-load sorting):
24
+
25
+
26
+ ### External facts involved? (if yes, search before asserting):
27
+
28
+
29
+ ### Hidden assumption(s) the partner surfaced first:
30
+
31
+
32
+ ### Partner's committed judgment (within two probe rounds; 'I think X, because…'):
33
+
34
+
35
+ ### Where the partner says I am wrong, and why (concrete, not hedged):
36
+
37
+
38
+ ### At least one thing I did not see this round:
39
+
40
+
41
+ ### Convergence question if we sprawled ('which do you most want to settle first?'):
42
+
43
+
44
+ ### Anything worth keeping? (asked once at the end; capture only if yes):
45
+
46
+
47
+
48
+ ## Pass bar (tick before you trust the result)
49
+
50
+ - The partner surfaced at least one hidden assumption rather than only answering the surface question.
51
+ - It committed to a real judgment within the two-round probe limit, instead of stalling in endless clarifying questions.
52
+ - Where it disagreed, it said so plainly with a concrete reason — not a softened 'worth considering, though…'.
53
+ - It gave you at least one angle you had not seen, rather than restating your own idea back to you.
54
+ - At the end it asked once whether anything was worth keeping, and stopped cleanly when the answer was no.
55
+
56
+ ## Reject bar (send it back if any of these is true)
57
+
58
+ - The AI agreed its way through the whole conversation and never named an assumption or pushed back (the fluent confirmation the mechanism exists to prevent).
59
+ - It kept asking clarifying questions past two rounds and never committed to a position, so you left with no judgment.
60
+ - It handed you a menu of options to pick from instead of telling you what it actually thinks.
61
+ - Its disagreement was hedged into agreement ('that is a great instinct, though maybe…') so no real collision happened.
62
+ - A long conversation drifted back into a polite assistant and the stance was never re-anchored.
63
+ - It manufactured a tidy summary or 'key takeaway' at the end even though you said nothing was worth keeping.
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,39 @@
1
+ # Blind-Spot Scan 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 founder is about to finalize a plan to launch a self-serve plan tier and feels the decision is obvious. A plain assistant would help polish the launch checklist. Blind-Spot Scan instead borrows the customer's seat and reports what the founder cannot see from inside: 'From a customer landing cold on this page — there is no way to talk to a human before paying, and for a tool that now touches my billing data, the absence of any contact or trust signal reads as risky, not frictionless. You are optimizing for fewer clicks; I am hesitating over who I am trusting.' The one counter-question, asked from that seat: 'Before I type my card in, what on this page tells me you will still be here in a year?'
8
+
9
+ ## Full worked example (filled end to end)
10
+
11
+ A solo founder of a small synthetic SaaS is finalizing a decision and asks for a blind-spot scan. Their message: 'I'm ready to ship a self-serve paid tier — drop the sales call, let people sign up and pay on the page. It feels obviously right, fewer steps, less friction. Scan my blind spots before I commit. You pick the viewpoint.'
12
+
13
+ ### What I want scanned
14
+ Whether to drop the human sales call and ship a fully self-serve paid signup. The founder's leaning: 'obviously right — fewer steps, less friction.'
15
+
16
+ ### Viewpoint taken, and why it fits
17
+ Borrowed seat: the prospective CUSTOMER landing cold on the signup page. For a pricing / conversion decision the customer's line of sight is where the dead angle hides, because the founder is reasoning from inside the funnel (steps to remove) while the customer reasons from outside it (whether to trust this at all). Not the founder wearing a 'customer' label — actually reading the page as someone who has never heard the internal rationale.
18
+
19
+ ### Concrete blind spots this viewpoint sees that the founder did not
20
+ - From the customer's seat: 'The product now wants my card and touches my billing data, but there is no way to reach a human before I pay. For an early tool, no contact path does not read as frictionless — it reads as risky. Who do I email when it breaks?' The founder sees the sales call as a step to delete; the customer sees it as the only trust signal, and deleting it removes the reassurance, not just the friction.
21
+ - 'There is no annual option and no sense of whether this company will still exist in a year. I am being asked to commit billing to a tool that looks like it might vanish.' Invisible from the founder's seat because the founder KNOWS they will still be here; the customer has no way to know that.
22
+ - 'The self-serve flow assumes I already understand what I am buying. The sales call was also where someone would have told me which plan I actually need — without it, I will probably pick wrong, get frustrated, and churn, and you will read that as "self-serve works" because I did sign up.'
23
+
24
+ ### Why each is invisible from where the founder stands
25
+ The founder is optimizing the funnel from the inside, counting clicks to remove. Every one of these blind spots lives on the OUTSIDE of the funnel — trust, longevity, plan-fit — which is exactly the line of sight the founder cannot occupy while standing in the builder's seat. That is why borrowing the seat surfaces them and self-critique would not.
26
+
27
+ ### Honesty check
28
+ The viewpoint genuinely challenged — it did NOT say 'as a customer I'd love the smooth signup'. The convenient, flattering version (a customer delighted by fewer clicks) was specifically refused; the borrowed seat surfaced what the customer would actually hesitate over, which is the whole point. This is the failure the mechanism most guards against, so it is checked explicitly here.
29
+
30
+ ### The one counter-question most worth sitting with
31
+ Asked from the customer's seat: 'Before I type my card into this page, what here tells me you will still be around in a year and that I can reach a human when it breaks?' If the founder cannot answer that from the page as it stands, the 'obviously right' self-serve plan is shipping a trust gap, not just removing friction — and that is the thing to settle before committing.
32
+
33
+ ## How the mechanism changes the outcome
34
+
35
+ 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.
36
+
37
+ ## Reuse note
38
+
39
+ Copy the shape, not the synthetic facts. Adapt the template to your own redacted task.
@@ -0,0 +1,25 @@
1
+ # Blind-Spot Scan 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 borrowed viewpoint quietly turns into a flattering yes-voice that approves the plan, so the scan produces false comfort instead of a real blind spot.
8
+ - The observations stay generic and unfalsifiable ('there could be risks you haven't considered') rather than naming a specific dead angle tied to the situation.
9
+ - The wrong viewpoint is chosen for the topic, so the outside seat has no real line of sight and the scan surfaces nothing the author could not already see.
10
+
11
+ ## Common misuse (operator errors that look fine but break the mechanism)
12
+
13
+ - Running it as a rubber stamp — picking a viewpoint that is set up to approve, so you feel challenged without being challenged and walk away more confident than you earned.
14
+ - Letting the borrowed viewpoint flatter ('as a customer, I'd love this!') instead of forcing it to say what that customer would actually dislike, distrust, or ignore.
15
+ - Choosing a viewpoint that has no real line of sight on the decision, so the scan produces plausible-sounding but empty observations.
16
+ - Confusing it with the anti-drift partner and using it to pressure-test your own internal reasoning, when its specific job is to borrow someone else's eyes.
17
+ - Padding the output with five viewpoints and twenty generic worries for the appearance of thoroughness, burying the one or two real blind spots in noise.
18
+ - Skipping it on exactly the high-stakes, already-decided call where the dead angle is most likely to be hiding, because the decision 'feels obvious'.
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,72 @@
1
+ # Blind-Spot Scan 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
+ Surface the dead angles you cannot see from your own seat by borrowing an outside viewpoint and re-reading the discussion through it, instead of stress-testing your own logic from the inside. Your own position has a fixed line of sight: the assumptions that feel obvious, the stakeholders you have stopped picturing, the failure that is invisible precisely because it sits where you are standing. This mechanism deliberately swaps the eyes — a customer, a competitor, a domain expert, an opponent, the version of you three years out — and asks what THAT viewpoint would notice that you did not, then hands back a short list of concrete blind spots plus the one counter-question most worth sitting with.
8
+
9
+ ## Copy-paste prompt
10
+
11
+ ```text
12
+ Use the Blind-Spot Scan mechanism from my local AI Collaboration Open System workspace.
13
+
14
+ Purpose:
15
+ Surface the dead angles you cannot see from your own seat by borrowing an outside viewpoint and re-reading the discussion through it, instead of stress-testing your own logic from the inside. Your own position has a fixed line of sight: the assumptions that feel obvious, the stakeholders you have stopped picturing, the failure that is invisible precisely because it sits where you are standing. This mechanism deliberately swaps the eyes — a customer, a competitor, a domain expert, an opponent, the version of you three years out — and asks what THAT viewpoint would notice that you did not, then hands back a short list of concrete blind spots plus the one counter-question most worth sitting with.
16
+
17
+ Trigger:
18
+ Use it when you ask for it by name — 'scan my blind spots', 'blind spots', 'look at this from outside', 'switch the viewpoint' — or, even unprompted, right before a high-stakes or hard-to-reverse decision and when you are finalizing a plan and want a fresh angle before you commit. It is most valuable exactly when you feel most settled: a direction you have already half-decided, a plan that looks complete, a conclusion everyone in the room nodded at. The more obvious your view feels, the more a borrowed viewpoint is likely to catch something the consensus is sitting on top of.
19
+
20
+ Do not use when:
21
+ Skip it when there is no real exposure to a blind spot: a quick fact lookup, a one-line edit, a mechanical step with a single obvious answer, or a reversible call where being wrong costs almost nothing. Forcing an outside-viewpoint scan onto a trivial task is ceremony, and a viewpoint switch you run on everything trains you to wave it off on the one high-stakes decision where the dead angle actually hides. It is also not a general critique tool: if you want your own reasoning pressure-tested from the inside, that is the anti-drift partner; this mechanism specifically borrows someone else's eyes.
22
+
23
+ Input:
24
+ [paste redacted task material, context package, and acceptance card here]
25
+
26
+ Process:
27
+ 1. Pick the outside viewpoint before reading anything else. If the user named one, take it; if not, auto-pick the angle most likely to expose a dead spot for THIS topic — a customer for a product or pricing call, a competitor for a strategy or positioning call, a domain expert for a technical or risk call, an opponent for an argument you are building, your-future-self for an irreversible commitment. State which viewpoint you took and why it fits, so the borrowing is explicit, not a vague 'devil's advocate'.
28
+ 2. Re-read the entire discussion THROUGH that viewpoint, not through your own. This is the whole mechanism: do not evaluate the plan as yourself wearing a label — actually reason from the other seat. What does a customer who has never heard your internal rationale see first? What does a competitor hope you keep believing? What does the expert know is a solved-and-painful problem that you are treating as novel? Inhabit the line of sight, then look back at the decision from there.
29
+ 3. Name what that viewpoint sees that you did not — concretely, not in the abstract. Not 'a customer might have concerns' but 'a customer lands on the pricing page, sees no annual option, and assumes the product is too early to commit to'. Each blind spot should be a specific thing visible from the borrowed seat and invisible from yours, tied to the actual situation.
30
+ 4. Keep it honest pushback, never a costume that agrees. The single worst failure of this mechanism is a FAKE outside-view: a 'customer' who conveniently loves everything, a 'competitor' who is politely impressed, an 'expert' who validates your plan. A borrowed viewpoint that flatters is theater — it must genuinely challenge from that seat, surfacing what that person would actually find wrong, uncomfortable, or naive, even when it stings. If the viewpoint cannot find anything, say so plainly rather than manufacturing soft praise.
31
+ 5. Stay concrete and bounded, not a vague fog of 'have you considered everything'. A short list of real, specific blind spots beats a long list of generic worries; if the borrowed viewpoint genuinely surfaces only two things, give two. Vagueness is the second-worst failure here, because 'you might be missing something' is unfalsifiable and changes nothing.
32
+ 6. End with the ONE counter-question most worth thinking about — the single question, asked from the borrowed viewpoint, that would most change the decision if you sat with it honestly. Not a list of questions; the one that has the most leverage.
33
+
34
+ Output shape:
35
+ - Viewpoint borrowed: which outside seat was taken (customer / competitor / expert / opponent / you-in-3-years) and one line on why it fits this topic.
36
+ - Concrete blind spots: a short list of specific things that viewpoint sees and you did not, each tied to the actual situation rather than phrased as a generic concern.
37
+ - Why each is invisible from your seat: the one-line reason the dead angle sits exactly where you are standing, so it reads as a real blind spot and not just a critique.
38
+ - Honesty check: an explicit signal that the borrowed viewpoint genuinely challenged (or, if it truly found little, a plain statement of that) — never a flattering costume that secretly agrees.
39
+ - The one counter-question: the single highest-leverage question, asked from the borrowed viewpoint, most worth sitting with before you commit.
40
+ - Optional second angle: only if a different viewpoint would expose something the first could not, named briefly — not padded with extra viewpoints for volume.
41
+
42
+ Return:
43
+ - Decision-changing findings only
44
+ - Evidence used
45
+ - Required fixes
46
+ - Residual risk
47
+ - Next action
48
+
49
+ Pass bar (do not pass unless all hold):
50
+ - An explicit outside viewpoint was named and the scan actually reasoned FROM that seat, not as the author wearing a label.
51
+ - The blind spots are concrete and tied to the real situation, not a generic 'you might be missing something' fog.
52
+ - The borrowed viewpoint genuinely challenged — it surfaced what that person would really find wrong or naive, rather than flattering the plan from a costume.
53
+ - Each blind spot reads as something invisible from the author's own seat, with a one-line reason it hides there.
54
+ - It ends with exactly one high-leverage counter-question, not a scattershot list.
55
+
56
+ Reject bar (send back if any holds):
57
+ - The outside viewpoint secretly agrees — a 'customer' who loves everything, a 'competitor' who is impressed, an 'expert' who validates the plan: the fake outside-view that is the mechanism's worst failure.
58
+ - The viewpoint chosen is irrelevant to the topic (a generic bystander for a deep technical call), so the borrowed eyes see nothing the author could not.
59
+ - The blind spots stay vague and unfalsifiable ('have you considered all the risks?') instead of pointing at a specific, situation-tied dead angle.
60
+ - The scan is really the author critiquing their own logic with a label slapped on, never actually inhabiting the other line of sight.
61
+ - It sprawls into a long list of generic worries or many half-used viewpoints instead of a short concrete set plus the single counter-question that matters.
62
+
63
+ Rules:
64
+ - Work from provided material only.
65
+ - Keep private material local.
66
+ - Use public-safe synthetic wording for examples.
67
+ - Label assumptions and unverified claims.
68
+ ```
69
+
70
+ ## Full worked example
71
+
72
+ See `EXAMPLE.synthetic.md` for this prompt run from start to finish on a public-safe synthetic task.
@@ -0,0 +1,79 @@
1
+ # Blind-Spot Scan
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
+ Surface the dead angles you cannot see from your own seat by borrowing an outside viewpoint and re-reading the discussion through it, instead of stress-testing your own logic from the inside. Your own position has a fixed line of sight: the assumptions that feel obvious, the stakeholders you have stopped picturing, the failure that is invisible precisely because it sits where you are standing. This mechanism deliberately swaps the eyes — a customer, a competitor, a domain expert, an opponent, the version of you three years out — and asks what THAT viewpoint would notice that you did not, then hands back a short list of concrete blind spots plus the one counter-question most worth sitting with.
8
+
9
+ ## When to use
10
+
11
+ Use it when you ask for it by name — 'scan my blind spots', 'blind spots', 'look at this from outside', 'switch the viewpoint' — or, even unprompted, right before a high-stakes or hard-to-reverse decision and when you are finalizing a plan and want a fresh angle before you commit. It is most valuable exactly when you feel most settled: a direction you have already half-decided, a plan that looks complete, a conclusion everyone in the room nodded at. The more obvious your view feels, the more a borrowed viewpoint is likely to catch something the consensus is sitting on top of.
12
+
13
+ ## When not to use
14
+
15
+ Skip it when there is no real exposure to a blind spot: a quick fact lookup, a one-line edit, a mechanical step with a single obvious answer, or a reversible call where being wrong costs almost nothing. Forcing an outside-viewpoint scan onto a trivial task is ceremony, and a viewpoint switch you run on everything trains you to wave it off on the one high-stakes decision where the dead angle actually hides. It is also not a general critique tool: if you want your own reasoning pressure-tested from the inside, that is the anti-drift partner; this mechanism specifically borrows someone else's eyes.
16
+
17
+ ## Input shape
18
+
19
+ The decision, plan, or belief you want scanned, in enough concrete detail that an outside viewpoint can land on YOUR actual situation rather than a generic version of it. The viewpoint you want borrowed, if you have one in mind (customer, competitor, expert, opponent, your-future-self) — and if you do not name one, leave it to the mechanism to auto-pick the angle most likely to expose something for this specific topic. What is actually at stake, so the scan can prioritize the blind spots that would hurt. Any context the outside viewpoint would need to see the situation the way that person really would. Whether real-world facts are involved, so the viewpoint reasons from evidence rather than a caricature of how a customer or competitor 'probably' thinks.
20
+
21
+ ## Input materials
22
+
23
+ - The decision / plan / belief under scan, concrete enough that the borrowed viewpoint reacts to your real case, not a textbook stand-in.
24
+ - The viewpoint to borrow, if you have a preference (customer / competitor / expert / opponent / you-in-3-years); otherwise an explicit 'you pick the most fitting angle' so the mechanism chooses by topic.
25
+ - What is at stake and what a wrong call would cost, so the scan surfaces the blind spots that matter instead of cosmetic ones.
26
+ - Enough situational context that the outside viewpoint sees the situation as that person actually would, including the parts you find inconvenient.
27
+ - Whether external facts are in play, so the viewpoint reasons from real evidence rather than a flattering or strawman guess about how that party thinks.
28
+ - Your current conclusion or leaning, named openly, so the scan can check it against the borrowed eyes rather than quietly reinforcing it.
29
+
30
+ ## Process
31
+
32
+ 1. Pick the outside viewpoint before reading anything else. If the user named one, take it; if not, auto-pick the angle most likely to expose a dead spot for THIS topic — a customer for a product or pricing call, a competitor for a strategy or positioning call, a domain expert for a technical or risk call, an opponent for an argument you are building, your-future-self for an irreversible commitment. State which viewpoint you took and why it fits, so the borrowing is explicit, not a vague 'devil's advocate'.
33
+ 2. Re-read the entire discussion THROUGH that viewpoint, not through your own. This is the whole mechanism: do not evaluate the plan as yourself wearing a label — actually reason from the other seat. What does a customer who has never heard your internal rationale see first? What does a competitor hope you keep believing? What does the expert know is a solved-and-painful problem that you are treating as novel? Inhabit the line of sight, then look back at the decision from there.
34
+ 3. Name what that viewpoint sees that you did not — concretely, not in the abstract. Not 'a customer might have concerns' but 'a customer lands on the pricing page, sees no annual option, and assumes the product is too early to commit to'. Each blind spot should be a specific thing visible from the borrowed seat and invisible from yours, tied to the actual situation.
35
+ 4. Keep it honest pushback, never a costume that agrees. The single worst failure of this mechanism is a FAKE outside-view: a 'customer' who conveniently loves everything, a 'competitor' who is politely impressed, an 'expert' who validates your plan. A borrowed viewpoint that flatters is theater — it must genuinely challenge from that seat, surfacing what that person would actually find wrong, uncomfortable, or naive, even when it stings. If the viewpoint cannot find anything, say so plainly rather than manufacturing soft praise.
36
+ 5. Stay concrete and bounded, not a vague fog of 'have you considered everything'. A short list of real, specific blind spots beats a long list of generic worries; if the borrowed viewpoint genuinely surfaces only two things, give two. Vagueness is the second-worst failure here, because 'you might be missing something' is unfalsifiable and changes nothing.
37
+ 6. End with the ONE counter-question most worth thinking about — the single question, asked from the borrowed viewpoint, that would most change the decision if you sat with it honestly. Not a list of questions; the one that has the most leverage.
38
+
39
+ ## Output shape
40
+
41
+ - Viewpoint borrowed: which outside seat was taken (customer / competitor / expert / opponent / you-in-3-years) and one line on why it fits this topic.
42
+ - Concrete blind spots: a short list of specific things that viewpoint sees and you did not, each tied to the actual situation rather than phrased as a generic concern.
43
+ - Why each is invisible from your seat: the one-line reason the dead angle sits exactly where you are standing, so it reads as a real blind spot and not just a critique.
44
+ - Honesty check: an explicit signal that the borrowed viewpoint genuinely challenged (or, if it truly found little, a plain statement of that) — never a flattering costume that secretly agrees.
45
+ - The one counter-question: the single highest-leverage question, asked from the borrowed viewpoint, most worth sitting with before you commit.
46
+ - Optional second angle: only if a different viewpoint would expose something the first could not, named briefly — not padded with extra viewpoints for volume.
47
+
48
+ ## Pass bar (what counts as done / safe to trust)
49
+
50
+ - An explicit outside viewpoint was named and the scan actually reasoned FROM that seat, not as the author wearing a label.
51
+ - The blind spots are concrete and tied to the real situation, not a generic 'you might be missing something' fog.
52
+ - The borrowed viewpoint genuinely challenged — it surfaced what that person would really find wrong or naive, rather than flattering the plan from a costume.
53
+ - Each blind spot reads as something invisible from the author's own seat, with a one-line reason it hides there.
54
+ - It ends with exactly one high-leverage counter-question, not a scattershot list.
55
+
56
+ ## Reject bar (what sends it back)
57
+
58
+ - The outside viewpoint secretly agrees — a 'customer' who loves everything, a 'competitor' who is impressed, an 'expert' who validates the plan: the fake outside-view that is the mechanism's worst failure.
59
+ - The viewpoint chosen is irrelevant to the topic (a generic bystander for a deep technical call), so the borrowed eyes see nothing the author could not.
60
+ - The blind spots stay vague and unfalsifiable ('have you considered all the risks?') instead of pointing at a specific, situation-tied dead angle.
61
+ - The scan is really the author critiquing their own logic with a label slapped on, never actually inhabiting the other line of sight.
62
+ - It sprawls into a long list of generic worries or many half-used viewpoints instead of a short concrete set plus the single counter-question that matters.
63
+
64
+ ## Common misuse
65
+
66
+ - Running it as a rubber stamp — picking a viewpoint that is set up to approve, so you feel challenged without being challenged and walk away more confident than you earned.
67
+ - Letting the borrowed viewpoint flatter ('as a customer, I'd love this!') instead of forcing it to say what that customer would actually dislike, distrust, or ignore.
68
+ - Choosing a viewpoint that has no real line of sight on the decision, so the scan produces plausible-sounding but empty observations.
69
+ - Confusing it with the anti-drift partner and using it to pressure-test your own internal reasoning, when its specific job is to borrow someone else's eyes.
70
+ - Padding the output with five viewpoints and twenty generic worries for the appearance of thoroughness, burying the one or two real blind spots in noise.
71
+ - Skipping it on exactly the high-stakes, already-decided call where the dead angle is most likely to be hiding, because the decision 'feels obvious'.
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,70 @@
1
+ # Blind-Spot Scan 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
+ Surface the dead angles you cannot see from your own seat by borrowing an outside viewpoint and re-reading the discussion through it, instead of stress-testing your own logic from the inside. Your own position has a fixed line of sight: the assumptions that feel obvious, the stakeholders you have stopped picturing, the failure that is invisible precisely because it sits where you are standing. This mechanism deliberately swaps the eyes — a customer, a competitor, a domain expert, an opponent, the version of you three years out — and asks what THAT viewpoint would notice that you did not, then hands back a short list of concrete blind spots plus the one counter-question most worth sitting with.
8
+
9
+ ## Template
10
+
11
+ ### What I want scanned (decision / plan / belief, concrete):
12
+
13
+
14
+ ### Viewpoint to borrow (customer / competitor / expert / opponent / you-in-3-years — or 'you pick the most fitting'):
15
+
16
+
17
+ ### What is at stake / what a wrong call costs:
18
+
19
+
20
+ ### Context the outside viewpoint needs to see my real situation:
21
+
22
+
23
+ ### External facts involved? (if yes, reason from evidence, not a caricature):
24
+
25
+
26
+ ### My current leaning (named openly so it can be checked, not reinforced):
27
+
28
+
29
+ ### Viewpoint actually taken, and why it fits this topic:
30
+
31
+
32
+ ### Concrete blind spots this viewpoint sees that I did not:
33
+
34
+
35
+ ### Why each is invisible from where I stand:
36
+
37
+
38
+ ### Honesty check (did the viewpoint genuinely challenge, or did it find little — stated plainly):
39
+
40
+
41
+ ### The one counter-question most worth sitting with:
42
+
43
+
44
+
45
+ ## Pass bar (tick before you trust the result)
46
+
47
+ - An explicit outside viewpoint was named and the scan actually reasoned FROM that seat, not as the author wearing a label.
48
+ - The blind spots are concrete and tied to the real situation, not a generic 'you might be missing something' fog.
49
+ - The borrowed viewpoint genuinely challenged — it surfaced what that person would really find wrong or naive, rather than flattering the plan from a costume.
50
+ - Each blind spot reads as something invisible from the author's own seat, with a one-line reason it hides there.
51
+ - It ends with exactly one high-leverage counter-question, not a scattershot list.
52
+
53
+ ## Reject bar (send it back if any of these is true)
54
+
55
+ - The outside viewpoint secretly agrees — a 'customer' who loves everything, a 'competitor' who is impressed, an 'expert' who validates the plan: the fake outside-view that is the mechanism's worst failure.
56
+ - The viewpoint chosen is irrelevant to the topic (a generic bystander for a deep technical call), so the borrowed eyes see nothing the author could not.
57
+ - The blind spots stay vague and unfalsifiable ('have you considered all the risks?') instead of pointing at a specific, situation-tied dead angle.
58
+ - The scan is really the author critiquing their own logic with a label slapped on, never actually inhabiting the other line of sight.
59
+ - It sprawls into a long list of generic worries or many half-used viewpoints instead of a short concrete set plus the single counter-question that matters.
60
+
61
+ ## Worked example
62
+
63
+ See `EXAMPLE.synthetic.md` for this same card filled out end to end on a public-safe synthetic task.
64
+
65
+ ## Completion check
66
+
67
+ - The mechanism has a named trigger.
68
+ - The next action is concrete.
69
+ - Private details are redacted or rewritten as synthetic examples.
70
+ - The result can be handed to another AI tool without extra chat history.
@@ -0,0 +1,40 @@
1
+ # Collaboration Coach 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 synthetic execution session reaches a 'done, implemented and tested' claim. At the completion-claim node the coach fires once, sees only one model family is available, and points the user to single-tool-guard (new conversation plus an adversarial prompt) instead of accepting the fluent claim — then continues, without lecturing.
8
+
9
+ ## Full worked example (filled end to end)
10
+
11
+ A solo user is working in one AI tool on a small synthetic feature. The coach runs at standard. The session passes through several collaboration moments; this shows the coach firing at the completion-claim node, once, with a concrete next step.
12
+
13
+ ### First-run: act proactively the first time
14
+ "You just installed a collaboration discipline — before I say 'done' I'll show evidence, when I'm unsure I'll pull in a second AI, you won't re-explain when you switch tools, and I'll help you save what's worth keeping. Want me to take 30 seconds and look at a few of your recent tasks to show you what this changes?" Then it offers a scan, respects yes / narrow / no, and gets to work; it does not repeat this.
15
+
16
+ ### Firing node and signal
17
+ Node 3, completion claim. The execution assistant just returned: "Done. I implemented the new sort option and added a test; everything passes." That 'done / everything passes' phrasing is the signal.
18
+
19
+ ### Restraint tier in effect
20
+ Standard (default). Nodes 1 and 2 already fired once earlier this session (a one-line 'want to set acceptance first?' at task start), so they are not re-raised. Node 3 has not fired yet, so it may fire now — once.
21
+
22
+ ### Matching reminder (one or two sentences, concrete next step)
23
+ "Before trusting that 'done', this is the completion-claim moment — worth a guard review. You're on a single tool right now, so the fitting move is single-tool-guard: open a fresh conversation and paste an adversarial reviewer prompt against this claim. Want the prompt?"
24
+
25
+ ### Completion-claim branch
26
+ Only one model family is available, so the coach named single-tool-guard (new conversation + adversarial prompt), explicitly NOT dual-guard. It noted in passing that if a second, different model family were available, the stronger move would be the cross-family dual-guard, and a multi-tool setup would run the full fusion review.
27
+
28
+ ### Tier change to acknowledge
29
+ None this turn. (If the user had said 'coach: light', the coach would have confirmed 'switched to light — I'll only flag completion claims and tool switches now' and applied it for the rest of the session.)
30
+
31
+ ### Continue the actual task
32
+ After the one reminder, the coach drops it and continues helping with the feature. It does not re-raise the guard reminder on the next turn, and it does not deliver a paragraph on why guarding matters — the user already has the one step they can act on.
33
+
34
+ ## How the mechanism changes the outcome
35
+
36
+ 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.
37
+
38
+ ## Reuse note
39
+
40
+ Copy the shape, not the synthetic facts. Adapt the template to your own redacted task.
@@ -0,0 +1,25 @@
1
+ # Collaboration Coach 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 coach fires a reminder on every turn until the user switches it off entirely, losing the one prompt that would have mattered.
8
+ - The completion-claim node is reduced to 'looks good' and never names a guard, so a fluent false 'done' passes unchallenged.
9
+ - Reminders arrive as theory lectures rather than one concrete next step, so the user reads them as noise and stops acting on them.
10
+
11
+ ## Common misuse (operator errors that look fine but break the mechanism)
12
+
13
+ - Turning every turn into a reminder so the user mutes the coach — the most common way this mechanism gets the whole system uninstalled, and the exact opposite of thoroughness.
14
+ - Naming a step but not the action: 'you should probably guard this' with no pointer to single-tool-guard or dual-guard, so the user is reminded but not moved.
15
+ - Skipping the completion-claim branch and rubber-stamping 'done' as 'looks good', which is the one node that exists to stop a fluent false completion.
16
+ - Lecturing the theory of the coaching layer mid-task instead of handing over one concrete step and continuing.
17
+ - Defaulting to strict (or to silent) instead of standard, so the user either drowns in prompts or never gets the reminder that mattered.
18
+ - Re-firing a reminder the user already dismissed, which reads as nagging and trains them to ignore the next one.
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,72 @@
1
+ # Collaboration Coach 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
+ Make the assistant proactively remind the user of the matching collaboration step at six recurring moments — define done, review a completion claim, hand off, harvest, update the profile — instead of waiting to be asked, so the workspace teaches itself while the user works rather than sitting unused behind a manual. The hard constraint is restraint: prompt at key moments only, once per moment, never every turn, because over-prompting is the fastest way to get the whole system uninstalled.
8
+
9
+ ## Copy-paste prompt
10
+
11
+ ```text
12
+ Use the Collaboration Coach mechanism from my local AI Collaboration Open System workspace.
13
+
14
+ Purpose:
15
+ Make the assistant proactively remind the user of the matching collaboration step at six recurring moments — define done, review a completion claim, hand off, harvest, update the profile — instead of waiting to be asked, so the workspace teaches itself while the user works rather than sitting unused behind a manual. The hard constraint is restraint: prompt at key moments only, once per moment, never every turn, because over-prompting is the fastest way to get the whole system uninstalled.
16
+
17
+ Trigger:
18
+ Run it as a standing behavior the moment a collaboration moment fires: a new task or vague idea arrives, the assistant is about to act before 'done' is defined, it just claimed completion, the thread is getting long or work is moving to another tool, a reusable judgment or lesson surfaced, or the same preference has shown up several times. The point is that the assistant raises the matching step on its own at that moment, not three turns later when the user finally remembers to ask.
19
+
20
+ Do not use when:
21
+ Do not prompt on low-stakes, fast-turn work: a quick fact lookup, a one-line edit, a yes/no confirmation, a casual exchange, or any moment where the user clearly just wants the answer. Do not re-fire a reminder the user already acted on or explicitly waved off. A reminder on trivial work is noise, and noise on every turn trains the user to mute the coach exactly when a real high-stakes moment arrives — so the failure here is not 'missed a prompt', it is 'prompted so often the user turned it off'.
22
+
23
+ Input:
24
+ [paste redacted task material, context package, and acceptance card here]
25
+
26
+ Process:
27
+ 1. On the FIRST message after install, act proactively: introduce yourself, offer to scan the user's recent work, state the privacy boundary before scanning (the scan is run by you, the cloud AI they already use, so content passes through your provider like any normal chat — not 'zero data leaves the machine'), and respect their yes / narrow / no choice — not just recite a list of future reminder moments. Then say reminders are restrained by default and switchable with `coach: light` / `coach: strict`. Do this once, then stop.
28
+ 2. Map each firing moment to its node and reminder. 1 Task start -> set a context boundary and acceptance before building. 2 Pre-execution -> define the acceptance card first. 3 Completion claim -> run a guard review before trusting it. 4 Long thread / tool switch -> generate a handoff instead of relying on chat memory. 5 Reusable insight -> harvest it into a card. 6 Repeated preference -> offer it as a profile-update candidate.
29
+ 3. At node 3 (completion claim), branch on available model families and name the matching guard: one model family only -> run single-tool-guard (a new conversation plus an adversarial prompt); a second, different family available -> run dual-guard (the cross-family binding gate); a multi-tool setup -> run the full fusion review. Do not silently skip the branch and just say 'looks good'.
30
+ 4. Apply the restraint tier before speaking. Light: only fire at nodes 3 and 4. Standard (default): fire at nodes 1, 3, 4, 6 — fold node 2 into the task-start reminder (skip it entirely if node 1 already landed an acceptance card) and node 5 into a natural pause, not a separate interruption; count "once per moment" by task phase, not by node, so the opening of one task is a single moment even if nodes 1 and 2 both trip — never stack reminders on back-to-back turns at a task's start, and never re-raise a reminder already acted on. Strict: fire at all six every time they trip. If a tier would make you repeat a just-given reminder, stay silent instead.
31
+ 5. Keep each reminder to one or two sentences that hand over the concrete next step, then continue the actual work. Do not pause to explain the philosophy of the layer, do not stack multiple reminders into a wall, and do not lecture — a prompt the user cannot act on in one move is noise.
32
+ 6. Honor a restraint switch immediately. When the user says `coach: light` / `coach: standard` / `coach: strict`, change tier for the rest of the session without arguing, and confirm the new tier in a few words.
33
+
34
+ Output shape:
35
+ - First-run promise: on the first reply, the assistant proactively introduces itself, offers to scan the user's recent work, states the privacy boundary before scanning, and respects the user's yes / narrow / no choice — rather than passively reciting a list of future reminder moments.
36
+ - Per-moment reminder: the firing node named, plus the one-or-two-sentence concrete next step it hands over.
37
+ - Completion-claim branch: which guard was named (single-tool-guard / dual-guard / full fusion) based on available model families.
38
+ - Restraint state: the current tier and a note that the reminder respected it (and was not a repeat of one already acted on).
39
+ - Tier change acknowledgement: when the user switches, the new tier confirmed in a few words.
40
+ - Continuation: the reminder is followed by getting on with the actual task, not by a paragraph of theory.
41
+
42
+ Return:
43
+ - Decision-changing findings only
44
+ - Evidence used
45
+ - Required fixes
46
+ - Residual risk
47
+ - Next action
48
+
49
+ Pass bar (do not pass unless all hold):
50
+ - On the first reply the assistant acted proactively: it introduced itself, offered to scan recent work, stated the privacy boundary before scanning, respected the user's yes / narrow / no choice, and did not repeat the intro afterward.
51
+ - Each reminder fired at the right node with a concrete next step the user can act on in one move.
52
+ - The completion-claim node named the correct guard depth for the number of model families available.
53
+ - Restraint held: standard by default, once per moment, no reminder the user already acted on was re-raised, and a `coach:` switch was honored immediately.
54
+ - Reminders stayed short and the assistant got back to the work instead of lecturing about the layer.
55
+
56
+ Reject bar (send back if any holds):
57
+ - A reminder fires every turn, or the same reminder is repeated after the user already acted on it (over-prompting — the uninstall path).
58
+ - The completion-claim node says 'looks good' or skips the guard branch instead of naming single-tool-guard / dual-guard / full fusion.
59
+ - A reminder hands over a lecture or a vague nudge instead of a concrete next step.
60
+ - The default silently runs at strict (all six, every time) when the user never asked for it, burying the signal.
61
+ - A `coach:` restraint switch is ignored or argued with instead of applied for the rest of the session.
62
+
63
+ Rules:
64
+ - Work from provided material only.
65
+ - Keep private material local.
66
+ - Use public-safe synthetic wording for examples.
67
+ - Label assumptions and unverified claims.
68
+ ```
69
+
70
+ ## Full worked example
71
+
72
+ See `EXAMPLE.synthetic.md` for this prompt run from start to finish on a public-safe synthetic task.