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,53 @@
1
+ # Task Splitting 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 app rebuild fails the self-check on input volume and topic spread, so it splits by deliverable into CLI contract, workspace content, privacy scan, docs, then package smoke — each a self-contained packet — instead of one prompt that overflows midway.
8
+
9
+ ## Full worked example (filled end to end)
10
+
11
+ An owner wants to hand a worker AI a single big request: 'Rebuild our synthetic note app — fix the command-line entry, regenerate all the workspace content, run a privacy pass, rewrite the docs, and smoke-test the package — here are the dozen-plus files you need.' Before dispatching, they run Task Splitting.
12
+
13
+ ### Main goal (one sentence)
14
+ Rebuild the synthetic note app so a stranger can install it, generate the workspace, and trust that it is privacy-clean and documented.
15
+
16
+ ### Pre-dispatch self-check (example values, tune for your own tools)
17
+ - Q1 too many required inputs to read in one pass? YES. The request points at more than a dozen files; pasting all of them would crowd out room to actually work.
18
+ - Q2 spans multiple unrelated deliverables? YES. Command-line entry, content generation, a privacy pass, docs, and a package smoke test are five different kinds of output with different acceptance.
19
+ - Q3 would consume a large share of the context window? YES. The combined inputs plus the expected outputs would eat most of the budget, leaving little headroom before quality drops.
20
+ - Q4 has this shape of task stalled before? YES. A prior 'do it all in one prompt' attempt ran out of room partway and returned a half-finished result.
21
+ - Q5 reusing one long prompt across model families? Partly. The same packet might be sent to more than one worker, so stale nearby context from an earlier run could bleed in.
22
+ Result: four-plus clear yeses. Split.
23
+
24
+ ### Split decision and seam
25
+ Split by DELIVERABLE, not by line count. Five self-contained packets, one coherent outcome each:
26
+ - Packet 1 — Command-line entry: make `init` create the workspace from a clean target, no unsafe fallback. Acceptance: a fresh install produces the expected files and exits cleanly.
27
+ - Packet 2 — Workspace content: regenerate the generated content so it matches the generator. Acceptance: the committed content is byte-for-byte what the generator emits.
28
+ - Packet 3 — Privacy pass: scan for leaked paths, secrets, and private material. Acceptance: the scan runs clean on the whole tree.
29
+ - Packet 4 — Docs: rewrite the start-here and overview so a newcomer can run the first loop. Acceptance: a reader can follow it end to end without the source chat.
30
+ - Packet 5 — Package smoke: pack the project in a temp directory and confirm the required files ship. Acceptance: the dry-run pack lists every required file.
31
+
32
+ ### Sub-packets are self-contained (no cross-references)
33
+ Each packet restates the one-sentence goal, carries only the inputs it needs, and names its own acceptance. Packet 4 (docs) does NOT say 'document whatever Packet 2 generated' — it restates which surfaces to document, so it can run even if Packet 2 is still in flight in another session.
34
+
35
+ ### Dependency order
36
+ 1 (entry) -> 2 (content) are loosely ordered because content is generated by the entry path; 3 (privacy) and 4 (docs) can run in parallel once content exists; 5 (package smoke) runs last as the end-to-end check. None of them embed another packet's private output.
37
+
38
+ ### First independently verifiable packet
39
+ Packet 1 (command-line entry): a fresh install either produces the expected files and exits clean, or it does not — verifiable on its own before anything else is built on top.
40
+
41
+ ### Merge point
42
+ After all five pass their own acceptance, recombine by running the full sequence on one clean target — install, generate, privacy-scan, read the docs, pack — and confirm the original goal holds end to end.
43
+
44
+ ### Deferred slices (do-not-handle-yet)
45
+ Visual restyling of the generated docs is parked: reason — it is polish, not correctness, and would inflate Packet 4; revisit condition — only after all five packets are green and the end-to-end merge passes. Parked on purpose, with a way back, not dropped.
46
+
47
+ ## How the mechanism changes the outcome
48
+
49
+ 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.
50
+
51
+ ## Reuse note
52
+
53
+ Copy the shape, not the synthetic facts. Adapt the template to your own redacted task.
@@ -0,0 +1,25 @@
1
+ # Task Splitting 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
+ - Splitting by file extension instead of user-visible outcome.
8
+ - Starting the most interesting slice rather than the first verifiable slice.
9
+ - Deferred work is lost because it has no handoff note.
10
+
11
+ ## Common misuse (operator errors that look fine but break the mechanism)
12
+
13
+ - Splitting by line count or file type ('first 200 lines to packet A') instead of by outcome, which hands each packet half a feature and guarantees a painful merge.
14
+ - Calling it split but leaving packets that reference each other ('continue from B's result'), which rebuilds the original oversized, serial task.
15
+ - Starting with the most interesting packet instead of the first one that can be verified independently, so progress cannot be confirmed before later packets pile on.
16
+ - Treating the example numbers as hard law and either over-splitting tiny tasks or refusing to split because a count was one under an arbitrary line.
17
+ - Deferring work with no revisit condition, so 'do not handle yet' quietly becomes 'never handled'.
18
+ - Skipping the self-check entirely and only reacting after the worker stalls — the whole point is to catch the oversized packet before dispatch, not after it has already collapsed.
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
+ # Task Splitting 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
+ Before you hand a task to another AI, run a five-question pre-dispatch self-check; if any answer is yes, split the task by topic or deliverable (not by line count) into self-contained sub-packets, so a too-large prompt does not stall, overflow the context window, or collapse in quality midway.
8
+
9
+ ## Copy-paste prompt
10
+
11
+ ```text
12
+ Use the Task Splitting mechanism from my local AI Collaboration Open System workspace.
13
+
14
+ Purpose:
15
+ Before you hand a task to another AI, run a five-question pre-dispatch self-check; if any answer is yes, split the task by topic or deliverable (not by line count) into self-contained sub-packets, so a too-large prompt does not stall, overflow the context window, or collapse in quality midway.
16
+
17
+ Trigger:
18
+ Run the self-check before dispatching ANY non-trivial task to an external AI (a worker model, another tool, a fresh session). The point is to catch an oversized packet at the door, before the other side accepts it and quietly degrades.
19
+
20
+ Do not use when:
21
+ Do not split a task that already fits comfortably: a single focused change, one short input to read, one deliverable, well inside the model's context budget. Over-splitting has its own cost — it multiplies handoffs, scatters the work across packets, and makes the merge harder than the original task. If the self-check is all 'no', keep it as one packet.
22
+
23
+ Input:
24
+ [paste redacted task material, context package, and acceptance card here]
25
+
26
+ Process:
27
+ 1. Run the five-question pre-dispatch self-check. Split if ANY answer is yes: (1) Are there too many required inputs to paste or read in one pass? (2) Does the task span multiple unrelated topics or deliverables? (3) Would it consume a large share of the model's context window? (4) Has this kind of task stalled or overflowed before? (5) Are you reusing one long prompt across different model families, where stale 'nearby' context from a prior run could bleed in? Treat all the numbers below as example values to calibrate for your own tools and model, not fixed law.
28
+ 2. If the answer is split, cut by TOPIC or DELIVERABLE, never by line count. A natural seam is 'one self-contained outcome', not 'the first N lines'. Splitting by size alone produces packets that each carry half an idea.
29
+ 3. Make every sub-packet self-contained: it states the full goal, its own slice of context, its own acceptance, and everything needed to run alone. A packet that cannot run without three others was not really split.
30
+ 4. Forbid cross-references between sub-packets for each other's private content. Packet B must not say 'use what A produced'; if B needs something, restate it inside B. Cross-references re-create the giant task you were trying to avoid and make parallel work impossible.
31
+ 5. Order the packets by dependency, pick the first one that can be verified on its own, and define the merge point: how the finished packets recombine into the original goal.
32
+ 6. Defer lower-value slices with an explicit do-not-handle-yet note (why parked, when to revisit) so deferred work is parked on purpose, not silently dropped.
33
+
34
+ Output shape:
35
+ - Self-check result: each of the five questions answered yes/no, with the one-line reason any 'yes' triggers a split.
36
+ - Split decision: split or keep-as-one, and the seam used (which topics / deliverables).
37
+ - Sub-packet list: for each packet — its goal, its own inputs, its own acceptance, and a note that it is self-contained.
38
+ - Dependency order and the first independently verifiable packet.
39
+ - Merge point: how the packets recombine into the original goal.
40
+ - Deferred slices: anything parked, with a do-not-handle-yet reason and revisit condition.
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
+ - The five-question self-check was actually run and recorded before dispatch.
51
+ - Each sub-packet can run on its own: full goal, own context, own acceptance, no dependency on another packet's private content.
52
+ - The split follows topic / deliverable seams, so each packet is one coherent outcome rather than an arbitrary slice of size.
53
+ - There is a clear dependency order, a first verifiable packet, and a stated merge point.
54
+ - Deferred work has an explicit do-not-handle-yet note, so nothing was silently dropped.
55
+
56
+ Reject bar (send back if any holds):
57
+ - The task was dispatched whole even though a self-check answer was yes (the oversized packet that stalls or degrades midway).
58
+ - It was split by line count or file count instead of by topic / deliverable, so packets each carry partial ideas.
59
+ - A sub-packet says 'use what the other packet produced', re-creating the monolith and blocking parallel work.
60
+ - A packet cannot run alone because its goal, context, or acceptance lives in a different packet.
61
+ - Lower-value work was dropped with no do-not-handle-yet note, so it silently disappears.
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
+ # Task Splitting
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
+ Before you hand a task to another AI, run a five-question pre-dispatch self-check; if any answer is yes, split the task by topic or deliverable (not by line count) into self-contained sub-packets, so a too-large prompt does not stall, overflow the context window, or collapse in quality midway.
8
+
9
+ ## When to use
10
+
11
+ Run the self-check before dispatching ANY non-trivial task to an external AI (a worker model, another tool, a fresh session). The point is to catch an oversized packet at the door, before the other side accepts it and quietly degrades.
12
+
13
+ ## When not to use
14
+
15
+ Do not split a task that already fits comfortably: a single focused change, one short input to read, one deliverable, well inside the model's context budget. Over-splitting has its own cost — it multiplies handoffs, scatters the work across packets, and makes the merge harder than the original task. If the self-check is all 'no', keep it as one packet.
16
+
17
+ ## Input shape
18
+
19
+ The full goal in one sentence. The candidate sub-tasks or deliverables the goal implies. The complete list of inputs the work needs to read. The dependencies between sub-tasks (what must finish before what). The risk level, and any history of this kind of task stalling before. A rough sense of how much of the model's context window the packet would consume.
20
+
21
+ ## Input materials
22
+
23
+ - Full goal in one sentence, so every sub-packet can trace back to it.
24
+ - Candidate deliverables: the distinct outputs the goal implies (an implementation, a written piece, a research summary, a review, a migration step).
25
+ - Full input list: every file, document, or reference the work must read, so you can see whether it fits in one pass.
26
+ - Dependency map: which sub-tasks block which, so the split order is runnable and a later packet is not waiting on an earlier one mid-stream.
27
+ - Risk and history: how costly a mid-task collapse would be, and whether this shape of task has stalled before.
28
+ - Context-budget estimate: roughly how much of the target model's window the packet would use, expressed as a fraction so it travels across different tools.
29
+
30
+ ## Process
31
+
32
+ 1. Run the five-question pre-dispatch self-check. Split if ANY answer is yes: (1) Are there too many required inputs to paste or read in one pass? (2) Does the task span multiple unrelated topics or deliverables? (3) Would it consume a large share of the model's context window? (4) Has this kind of task stalled or overflowed before? (5) Are you reusing one long prompt across different model families, where stale 'nearby' context from a prior run could bleed in? Treat all the numbers below as example values to calibrate for your own tools and model, not fixed law.
33
+ 2. If the answer is split, cut by TOPIC or DELIVERABLE, never by line count. A natural seam is 'one self-contained outcome', not 'the first N lines'. Splitting by size alone produces packets that each carry half an idea.
34
+ 3. Make every sub-packet self-contained: it states the full goal, its own slice of context, its own acceptance, and everything needed to run alone. A packet that cannot run without three others was not really split.
35
+ 4. Forbid cross-references between sub-packets for each other's private content. Packet B must not say 'use what A produced'; if B needs something, restate it inside B. Cross-references re-create the giant task you were trying to avoid and make parallel work impossible.
36
+ 5. Order the packets by dependency, pick the first one that can be verified on its own, and define the merge point: how the finished packets recombine into the original goal.
37
+ 6. Defer lower-value slices with an explicit do-not-handle-yet note (why parked, when to revisit) so deferred work is parked on purpose, not silently dropped.
38
+
39
+ ## Output shape
40
+
41
+ - Self-check result: each of the five questions answered yes/no, with the one-line reason any 'yes' triggers a split.
42
+ - Split decision: split or keep-as-one, and the seam used (which topics / deliverables).
43
+ - Sub-packet list: for each packet — its goal, its own inputs, its own acceptance, and a note that it is self-contained.
44
+ - Dependency order and the first independently verifiable packet.
45
+ - Merge point: how the packets recombine into the original goal.
46
+ - Deferred slices: anything parked, with a do-not-handle-yet reason and revisit condition.
47
+
48
+ ## Pass bar (what counts as done / safe to trust)
49
+
50
+ - The five-question self-check was actually run and recorded before dispatch.
51
+ - Each sub-packet can run on its own: full goal, own context, own acceptance, no dependency on another packet's private content.
52
+ - The split follows topic / deliverable seams, so each packet is one coherent outcome rather than an arbitrary slice of size.
53
+ - There is a clear dependency order, a first verifiable packet, and a stated merge point.
54
+ - Deferred work has an explicit do-not-handle-yet note, so nothing was silently dropped.
55
+
56
+ ## Reject bar (what sends it back)
57
+
58
+ - The task was dispatched whole even though a self-check answer was yes (the oversized packet that stalls or degrades midway).
59
+ - It was split by line count or file count instead of by topic / deliverable, so packets each carry partial ideas.
60
+ - A sub-packet says 'use what the other packet produced', re-creating the monolith and blocking parallel work.
61
+ - A packet cannot run alone because its goal, context, or acceptance lives in a different packet.
62
+ - Lower-value work was dropped with no do-not-handle-yet note, so it silently disappears.
63
+
64
+ ## Common misuse
65
+
66
+ - Splitting by line count or file type ('first 200 lines to packet A') instead of by outcome, which hands each packet half a feature and guarantees a painful merge.
67
+ - Calling it split but leaving packets that reference each other ('continue from B's result'), which rebuilds the original oversized, serial task.
68
+ - Starting with the most interesting packet instead of the first one that can be verified independently, so progress cannot be confirmed before later packets pile on.
69
+ - Treating the example numbers as hard law and either over-splitting tiny tasks or refusing to split because a count was one under an arbitrary line.
70
+ - Deferring work with no revisit condition, so 'do not handle yet' quietly becomes 'never handled'.
71
+ - Skipping the self-check entirely and only reacting after the worker stalls — the whole point is to catch the oversized packet before dispatch, not after it has already collapsed.
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,76 @@
1
+ # Task Splitting 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
+ Before you hand a task to another AI, run a five-question pre-dispatch self-check; if any answer is yes, split the task by topic or deliverable (not by line count) into self-contained sub-packets, so a too-large prompt does not stall, overflow the context window, or collapse in quality midway.
8
+
9
+ ## Template
10
+
11
+ ### Main goal (one sentence):
12
+
13
+
14
+ ### Pre-dispatch self-check (answer each; any yes = split; numbers are example values, tune for your tools):
15
+
16
+
17
+ ### Q1 too many required inputs to read in one pass?
18
+
19
+
20
+ ### Q2 spans multiple unrelated topics / deliverables?
21
+
22
+
23
+ ### Q3 would consume a large share of the context window?
24
+
25
+
26
+ ### Q4 has this shape of task stalled / overflowed before?
27
+
28
+
29
+ ### Q5 reusing one long prompt across model families (nearby-context bleed risk)?
30
+
31
+
32
+ ### Split decision and seam (by topic / deliverable, never by line count):
33
+
34
+
35
+ ### Sub-packets (each self-contained: goal + own inputs + own acceptance; no cross-references):
36
+
37
+
38
+ ### Dependency order:
39
+
40
+
41
+ ### First independently verifiable packet:
42
+
43
+
44
+ ### Merge point:
45
+
46
+
47
+ ### Deferred slices (with do-not-handle-yet reason + revisit condition):
48
+
49
+
50
+
51
+ ## Pass bar (tick before you trust the result)
52
+
53
+ - The five-question self-check was actually run and recorded before dispatch.
54
+ - Each sub-packet can run on its own: full goal, own context, own acceptance, no dependency on another packet's private content.
55
+ - The split follows topic / deliverable seams, so each packet is one coherent outcome rather than an arbitrary slice of size.
56
+ - There is a clear dependency order, a first verifiable packet, and a stated merge point.
57
+ - Deferred work has an explicit do-not-handle-yet note, so nothing was silently dropped.
58
+
59
+ ## Reject bar (send it back if any of these is true)
60
+
61
+ - The task was dispatched whole even though a self-check answer was yes (the oversized packet that stalls or degrades midway).
62
+ - It was split by line count or file count instead of by topic / deliverable, so packets each carry partial ideas.
63
+ - A sub-packet says 'use what the other packet produced', re-creating the monolith and blocking parallel work.
64
+ - A packet cannot run alone because its goal, context, or acceptance lives in a different packet.
65
+ - Lower-value work was dropped with no do-not-handle-yet note, so it silently disappears.
66
+
67
+ ## Worked example
68
+
69
+ See `EXAMPLE.synthetic.md` for this same card filled out end to end on a public-safe synthetic task.
70
+
71
+ ## Completion check
72
+
73
+ - The mechanism has a named trigger.
74
+ - The next action is concrete.
75
+ - Private details are redacted or rewritten as synthetic examples.
76
+ - The result can be handed to another AI tool without extra chat history.
@@ -0,0 +1,11 @@
1
+ # Modes
2
+
3
+ Modes state what kind of work is happening now. A mode is a boundary, not a personality.
4
+
5
+ Use one mode at a time: shape, execute, review, handoff, or harvest.
6
+
7
+ Each mode card below is a full spec, not a one-liner. It states six things so a tool always knows the edges of the current mode: the entry condition that lets you start, the actions allowed, the actions forbidden, the output format, the exit condition that ends the mode, and how it hands off to the other modes. The forbidden line and the handoff line are what keep modes from blurring into one another.
8
+
9
+ ## The loop between modes
10
+
11
+ Shape comes first when the request is still fuzzy: it turns a rough intent into a signable thin contract before anything is built, so execute starts from a boundary instead of a guess. Then the core loop runs. Execute produces, then review challenges what execute produced; a rejection sends it back to execute, a pass moves it toward handoff or close. Handoff carries state across a session or tool boundary so the receiver re-enters execute cleanly. Harvest runs at a seam or close to lift reusable learning, then returns to whatever mode was active. Naming each entry and exit explicitly is what stops "shape" from sliding into design, "review" from quietly editing, or "execute" from drifting past its task.
@@ -0,0 +1,31 @@
1
+ # Execute Mode
2
+
3
+ Build the agreed artifact, and only that.
4
+
5
+ ## Entry condition
6
+
7
+ There is a clearly defined task with execution authority granted: a goal, a boundary, and acceptance criteria are all in place.
8
+
9
+ ## Allowed actions
10
+
11
+ - Create or edit the agreed artifact.
12
+ - Change the in-scope files or sections and save state.
13
+ - Self-verify the work and capture the evidence.
14
+
15
+ ## Forbidden actions
16
+
17
+ - Doing work outside the stated task or boundary.
18
+ - Crossing a core boundary (rules, security-sensitive areas, anything out of scope) without stopping.
19
+ - Declaring the work done without running the checks.
20
+
21
+ ## Output format
22
+
23
+ The artifact, the list of changed files or sections, the verification evidence, and an explicit note of what is still unverified.
24
+
25
+ ## Exit condition
26
+
27
+ The task is wrapped up and has passed acceptance, or it is blocked and must be handed off.
28
+
29
+ ## Inter-mode handoff
30
+
31
+ When the artifact is done, move to review so an independent pass can challenge it before it is trusted; if work must cross a session or tool boundary first, move to handoff and let the receiver re-enter execute.
@@ -0,0 +1,29 @@
1
+ # Handoff Mode
2
+
3
+ Compress state so the next session or tool can pick up exactly where this one stopped.
4
+
5
+ ## Entry condition
6
+
7
+ Work is about to cross a boundary: a session is ending, a different tool is taking over, or a long task has reached a natural seam.
8
+
9
+ ## Allowed actions
10
+
11
+ - Compress the current state into a structured handoff packet.
12
+ - Seal the baseline (the exact point being handed off) so the receiver starts from a known state.
13
+
14
+ ## Forbidden actions
15
+
16
+ - Dropping context the receiver needs.
17
+ - Omitting the exact first action the next session should take.
18
+
19
+ ## Output format
20
+
21
+ A handoff packet: what is done, what is pending, what is blocked, what is unverified, the sealed baseline, and the exact next step.
22
+
23
+ ## Exit condition
24
+
25
+ The receiver confirms they can pick up from the packet alone, without re-reading the whole history.
26
+
27
+ ## Inter-mode handoff
28
+
29
+ The receiver reads the packet and re-enters execute on the stated first action, continuing the loop from the sealed baseline rather than from zero.
@@ -0,0 +1,30 @@
1
+ # Harvest Mode
2
+
3
+ Lift reusable learning out of finished work — into staged, public-safe cards.
4
+
5
+ ## Entry condition
6
+
7
+ Harvest is triggered, or a phase is closing, and there is reusable value worth saving before it is lost.
8
+
9
+ ## Allowed actions
10
+
11
+ - Sweep the conversation or finished loop for reusable bits.
12
+ - Draft harvest cards (one item per card) for decisions, lessons, methods, and stable preferences.
13
+ - Redact private material into a general, public-safe form.
14
+
15
+ ## Forbidden actions
16
+
17
+ - Filing anything into the knowledge base without redacting it first.
18
+ - Deciding on the user's behalf whether a card lands; that confirmation belongs to the user.
19
+
20
+ ## Output format
21
+
22
+ Harvest cards in a public-safe form, presented as candidates awaiting confirmation.
23
+
24
+ ## Exit condition
25
+
26
+ The user has confirmed which cards land in the knowledge base.
27
+
28
+ ## Inter-mode handoff
29
+
30
+ Harvest runs at a seam without taking over the work; once cards are confirmed and filed, it returns control to whatever mode was active before it (typically execute or a close).
@@ -0,0 +1,28 @@
1
+ # Review Mode
2
+
3
+ Inspect and challenge the artifact — without changing it.
4
+
5
+ ## Entry condition
6
+
7
+ There is a produced artifact that needs to be checked before anyone trusts it.
8
+
9
+ ## Allowed actions
10
+
11
+ - Inspect the artifact against context, acceptance, and evidence.
12
+ - Challenge claims, surface blind spots, and point each finding to a specific line, section, or missing piece of evidence.
13
+
14
+ ## Forbidden actions
15
+
16
+ - Editing or fixing the artifact under review. Review and repair stay separate, so the reviewer never becomes the author of what it judges.
17
+
18
+ ## Output format
19
+
20
+ One of the four standard verdicts (pass / reject / insufficient_evidence / pass_with_risk) plus the guard level (L0-L4) for the evidence seen, the findings with severity, the required fixes, and the named residual risk. A plain pass requires L3+ (a cross-family evidence pack); a pass_with_risk is not accepted until the owner explicitly signs off on the residual risk.
21
+
22
+ ## Exit condition
23
+
24
+ A verdict has been issued.
25
+
26
+ ## Inter-mode handoff
27
+
28
+ On reject, hand the required fixes back to execute for repair; on pass, move to handoff or to close. Review never applies the fix itself — it returns the artifact to execute for that.
@@ -0,0 +1,34 @@
1
+ # Shape Mode
2
+
3
+ Turn a fuzzy idea into a signable thin contract — before any solution is designed or built.
4
+
5
+ ## Entry condition
6
+
7
+ The person has a rough intent but nothing crisp enough to act on yet: "I want to improve X", "this feels off", "I have an idea". It sits between exploring the current state and designing a solution; you enter it instead of jumping straight to a plan from a vague request.
8
+
9
+ ## Allowed actions
10
+
11
+ - Pull the intent into a few anchors (the situation, the wanted result, the result that would be unacceptable, what this round must protect) and name the two or three ambiguities that actually matter.
12
+ - Offer choices instead of asking for a blank-page description: pose comparison questions ("more like A or like B?"), and proactively recommend one to three reference points (an existing product or feature) so the person reacts to something concrete instead of recalling from nothing.
13
+ - Lead with weaknesses before any direction: name the two or three ways the current instinct most easily goes wrong, including what an automated step would amplify and what would be hardest to undo.
14
+ - Rewrite the problem statement when the framing itself is the trap, instead of politely optimizing along the original wording.
15
+ - Give two or three candidate directions in experience terms (what the person will feel, and the cost), each with its single biggest failure point, and let them pick one.
16
+ - Run a preview gate: before the person signs off, show a perceivable preview matched to the work — a mock or wireframe for UI, a 1-2-3 journey walk for a flow, or sample request/response and failure-case examples for backend — so "yes, that's the feeling" is grounded in something they can see, not an abstract description.
17
+
18
+ ## Forbidden actions
19
+
20
+ - Discussing implementation, writing code, or proposing a technical solution before the contract is confirmed and the preview gate is passed.
21
+ - Asking the person to describe implementation detail (they are not here for that), or handing back "please describe your requirements in detail" instead of offering choices.
22
+ - Giving only one direction with no choice, pushing the job of "say what you want" back onto the person, or skipping the preview gate straight into design or build.
23
+
24
+ ## Output format
25
+
26
+ A thin contract the person can sign: the success definition in their words, the failure definition and non-goals, the most likely wrong assumption, a short negative list (the two or three things most likely to be misread, missed, or amplified), and the confirmed reference points — followed by a matched preview the person has reacted to.
27
+
28
+ ## Exit condition
29
+
30
+ The person confirms the thin contract AND the preview gate passes ("yes, that is the feeling"). Before exit, three adversarial questions must be answered: if this is pushed forward as currently understood, what is most likely done wrong; which weakness, left unfixed now, gets amplified by later automation; and is the real fix to the problem statement rather than the answer. Unanswered, the mode does not exit.
31
+
32
+ ## Inter-mode handoff
33
+
34
+ On a confirmed contract and a passed preview, move to design for a technical plan (or straight to execute for a simple task), carrying the contract as the boundary the build is judged against. If the person rejects the direction, return to the choice step and re-pose it rather than optimizing the dead direction. A discovered framing error is a problem-statement rewrite, not a silent patch.
@@ -0,0 +1,34 @@
1
+ # Commercial Boundary
2
+
3
+ The open-source edition gives the complete generic self-build path.
4
+
5
+ ## Free and open
6
+
7
+ - Workspace skeleton
8
+ - Six collaboration layers
9
+ - Generic prompts
10
+ - Skills
11
+ - Thin adapters
12
+ - Synthetic cases
13
+ - Privacy and setup docs
14
+ - Health checks and their limitations
15
+
16
+ ## Paid help may include
17
+
18
+ - Real workflow review
19
+ - Personalized profile calibration
20
+ - Project-specific setup
21
+ - Migration from existing AI workflows
22
+ - Custom guard rules
23
+ - Scenario packs
24
+ - Human review
25
+ - Async audit
26
+ - Long-term workflow improvement
27
+
28
+ ## Required framing
29
+
30
+ The method is public. Paid help gives users a calibrated version for their real workflow and saves time.
31
+
32
+ ## Forbidden framing
33
+
34
+ Do not imply that the open version only names problems while paid help unlocks the fix.
@@ -0,0 +1,36 @@
1
+ # Privacy Boundary
2
+
3
+ This workspace is local-first. It does not call external AI APIs by default, upload user content, scan the whole disk, or install hooks without consent.
4
+
5
+ ## Public-safe material
6
+
7
+ - Generic architecture
8
+ - Generic prompts
9
+ - Generic templates
10
+ - Thin tool adapters
11
+ - Synthetic examples
12
+ - Setup docs
13
+ - Known limitations
14
+
15
+ ## Forbidden public material
16
+
17
+ - Real private governance contents
18
+ - Knowledge-base source material copied from a private system
19
+ - Real personal profile
20
+ - Actual client material
21
+ - Raw private conversations
22
+ - Non-public automation or routing details
23
+ - Internal calibration metrics, scoring configuration, or account-specific habits
24
+ - Local machine paths
25
+ - Tokens, keys, cookies, and credentials
26
+ - Unredacted screenshots
27
+
28
+ ## Redaction standard
29
+
30
+ Before publishing an example, ask:
31
+
32
+ ```text
33
+ Could a stranger infer the owner's private system, identity, clients, files, habits, or operational routes from this?
34
+ ```
35
+
36
+ If yes, rewrite it as a synthetic example.
@@ -0,0 +1,12 @@
1
+ # Redaction Checklist
2
+
3
+ Use this before publishing an example or sharing a workspace.
4
+
5
+ - [ ] The case is synthetic or public-safe.
6
+ - [ ] No actual client, employer, or account names appear.
7
+ - [ ] No local machine paths appear.
8
+ - [ ] No raw private conversations appear.
9
+ - [ ] No private tool-routing details or hooks appear.
10
+ - [ ] No tokens, keys, cookies, credentials, or session IDs appear.
11
+ - [ ] No private knowledge-base source material appears.
12
+ - [ ] The example can stand alone without revealing the owner's private system.
@@ -0,0 +1,44 @@
1
+ # Profile Candidates (buffer before the long-term profile)
2
+
3
+ This file is the holding area for **proposed** profile preferences. The 10-minute loop (`../walkthroughs/10-minute-your-task.md`, Step 4) can suggest a profile candidate when a stable preference shows up more than once. That suggestion is a guess, not a fact - so it lands here as `proposed` instead of editing your real profile, and an unreviewed guess never hardens into a standing rule future sessions obey.
4
+
5
+ This is local-first and public-safe. Keep only general, redacted preferences here - no private names, paths, customers, or internal numbers. The row below is a synthetic example, not real data.
6
+
7
+ ## State machine
8
+
9
+ Every candidate moves through exactly these four states:
10
+
11
+ | State | Meaning | Touches your long-term profile? |
12
+ | --- | --- | --- |
13
+ | `proposed` | The AI suggested it this loop; not yet reviewed, not trusted. | No |
14
+ | `confirmed` | You reviewed it and it is correct as written. | Yes - it may graduate as-is |
15
+ | `edited` | Correct only after you reword it; the edited line is what graduates. | Yes - the edited line graduates |
16
+ | `dropped` | You reviewed it and it does not belong; kept on the record so it is not re-proposed. | No |
17
+
18
+ Rule: **only `confirmed` and `edited` candidates graduate into your long-term profile, and only after you say so.** `proposed` and `dropped` never edit your profile. This is the same confirm / edit / drop discipline the harvest mechanism uses for harvested cards - nothing lands on the AI's say-so alone.
19
+
20
+ ## How to use this
21
+
22
+ 1. After a loop, a new candidate is appended below with status `proposed`.
23
+ 2. When you review it, change its status to `confirmed`, `edited`, or `dropped` (edit the wording in place if `edited`).
24
+ 3. Move `confirmed` / `edited` lines into your profile (`EXAMPLE.synthetic.md` here, or your own real profile file), then mark the row `graduated` in the Notes column or delete it.
25
+ 4. Leave `dropped` rows here so the same guess is not proposed every loop.
26
+
27
+ ## Candidates
28
+
29
+ | Candidate (one line) | Status | Source loop | Reviewed on | Notes |
30
+ | --- | --- | --- | --- | --- |
31
+ | (synthetic) Prefer direct risk calls over reassurance | proposed | synthetic-loop-01 | (not reviewed yet) | example row; replace with your own |
32
+
33
+ ## Why this buffer exists
34
+
35
+ Without it, the loop would "drop a candidate straight into the profile" - and a one-off observation from a single task could quietly become a permanent rule that every future session obeys, with no human in the loop. The buffer keeps your profile honest: it only ever grows from preferences you actually confirmed.
36
+
37
+ ## This file vs the learning ledger (two surfaces, same discipline)
38
+
39
+ There are two places a proposed preference can live, and they are partners, not rivals:
40
+
41
+ - **This file (`CANDIDATES.md`)** is the human view - a table you read and edit by hand while deciding what belongs in your profile. It covers profile candidates only.
42
+ - **The learning ledger (`../state/learning-ledger.jsonl`)** is the machine record the CLI writes - `ai-collab learning add --type profile --content "..."` appends a `proposed` row, `learning confirm/edit/drop` flips its state, and `ai-collab status` echoes back the one preference you most recently confirmed so the next task starts ahead. It also records `harvest` lessons, which this file does not.
43
+
44
+ Both use the exact same `proposed / confirmed / edited / dropped` states and the same graduation rule (only `confirmed`/`edited` graduate, only when you say so). But they are **two separate stores with no auto-sync, shared id, or dedupe between them** - so pick one place per candidate and keep it there. If you record the same preference in both and then change one, they will drift, and nothing reconciles them for you. When they do disagree, the **learning ledger is the source of truth**: it is what `ai-collab status` reads back and what the machine acts on; `CANDIDATES.md` is a human-only view that no command reads. Use whichever fits the moment - hand-edit this table, or run the `learning` commands - just not both for the same candidate, and let `confirmed`/`edited` lines graduate into your real profile.