@zalom/plastic 2.0.0-alpha.9 → 2.0.2

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 (326) hide show
  1. package/PLASTIC.md +13 -136
  2. package/README.md +357 -133
  3. package/agents/plastic-enforcer.md +21 -16
  4. package/agents/plastic-executor.md +15 -4
  5. package/agents/plastic-node-research.md +30 -0
  6. package/agents/plastic-node-verify.md +28 -0
  7. package/agents/plastic-node-work.md +33 -0
  8. package/agents/{plastic-advisor.md → plastic-primary-advisor.md} +7 -9
  9. package/agents/{plastic-faux-advisor.md → plastic-secondary-advisor.md} +9 -12
  10. package/assets/plastic-logo.svg +1 -0
  11. package/bin/crap +4 -0
  12. package/bin/lib/context_budget.rb +43 -6
  13. package/bin/lib/skill_census.rb +839 -0
  14. package/bin/plastic +8 -0
  15. package/bin/plastic-skill-census +114 -0
  16. package/bin/test +24 -4
  17. package/bin/verify-change +345 -0
  18. package/config_asks.yml +4 -4
  19. package/deprecations.yml +1 -1
  20. package/{skills/agent-advisor/references → docs/help}/advisor-protocol.md +19 -24
  21. package/{skills/auto/references → docs/help}/agent-architecture.md +16 -14
  22. package/docs/help/completion-and-done.md +53 -0
  23. package/docs/help/human-report-contract.md +152 -0
  24. package/{skills/conventions/references → docs/help}/knowledge-graph.md +9 -0
  25. package/{skills/conventions/references → docs/help}/locks-and-worktrees.md +11 -13
  26. package/{skills/conventions/references → docs/help}/maintenance-and-revisions.md +1 -1
  27. package/{skills/conventions/references → docs/help}/roadmaps.md +5 -4
  28. package/{skills/tutorial/references → docs/help}/track-1-guided.md +28 -47
  29. package/{skills/tutorial/references → docs/help}/track-2-auto.md +8 -8
  30. package/{skills/tutorial/references → docs/help}/track-3-projects-and-roadmaps.md +24 -17
  31. package/hooks/call-budget +4 -0
  32. package/hooks/hooks.json +24 -0
  33. package/hooks/message-display +55 -2
  34. package/hooks/session-start +5 -1
  35. package/hooks/statusline +32 -27
  36. package/hooks/stop +5 -0
  37. package/package.json +5 -3
  38. package/scripts/append-ledger +2 -1
  39. package/scripts/dashboard.rb +267 -16
  40. package/scripts/day-summary +2 -1
  41. package/scripts/doctor.rb +680 -39
  42. package/scripts/end-intent +378 -56
  43. package/scripts/exec-worktree +5 -5
  44. package/scripts/file-session-intent +2 -1
  45. package/scripts/graph-measure +249 -0
  46. package/scripts/hook-call-budget +222 -0
  47. package/scripts/hook-capture +24 -123
  48. package/scripts/hook-close +2 -1
  49. package/scripts/hook-message-display +7 -0
  50. package/scripts/hook-record +24 -16
  51. package/scripts/hook-savepoint +27 -3
  52. package/scripts/hook-session-start +359 -321
  53. package/scripts/hook-stop +58 -0
  54. package/scripts/index-projection +74 -0
  55. package/scripts/insight-append +17 -4
  56. package/scripts/install.rb +9 -7
  57. package/scripts/lib/action_graph_shim.rb +279 -0
  58. package/scripts/lib/active_delivery.rb +105 -0
  59. package/scripts/lib/agent_models.rb +63 -25
  60. package/scripts/lib/arm.rb +74 -91
  61. package/scripts/lib/atomic_write.rb +31 -0
  62. package/scripts/lib/backup.rb +65 -0
  63. package/scripts/lib/cli/command.rb +92 -0
  64. package/scripts/lib/cli/commands/auto.rb +18 -0
  65. package/scripts/lib/cli/commands/auto_brief.rb +44 -0
  66. package/scripts/lib/cli/commands/auto_lock.rb +111 -0
  67. package/scripts/lib/cli/commands/auto_report.rb +50 -0
  68. package/scripts/lib/cli/commands/auto_take.rb +68 -0
  69. package/scripts/lib/cli/commands/backup.rb +43 -0
  70. package/scripts/lib/cli/commands/checkout.rb +25 -0
  71. package/scripts/lib/cli/commands/continue.rb +66 -0
  72. package/scripts/lib/cli/commands/doctor.rb +81 -0
  73. package/scripts/lib/cli/commands/feedback.rb +40 -0
  74. package/scripts/lib/cli/commands/help.rb +69 -0
  75. package/scripts/lib/cli/commands/hook.rb +32 -0
  76. package/scripts/lib/cli/commands/index.rb +23 -0
  77. package/scripts/lib/cli/commands/install.rb +21 -0
  78. package/scripts/lib/cli/commands/installer_verb.rb +37 -0
  79. package/scripts/lib/cli/commands/intent.rb +19 -0
  80. package/scripts/lib/cli/commands/intent_answer.rb +37 -0
  81. package/scripts/lib/cli/commands/intent_command.rb +58 -0
  82. package/scripts/lib/cli/commands/intent_end.rb +75 -0
  83. package/scripts/lib/cli/commands/intent_new.rb +62 -0
  84. package/scripts/lib/cli/commands/intent_note.rb +43 -0
  85. package/scripts/lib/cli/commands/intent_rule.rb +36 -0
  86. package/scripts/lib/cli/commands/intent_show.rb +32 -0
  87. package/scripts/lib/cli/commands/intent_spec.rb +44 -0
  88. package/scripts/lib/cli/commands/intent_step.rb +79 -0
  89. package/scripts/lib/cli/commands/intent_verify.rb +26 -0
  90. package/scripts/lib/cli/commands/migrate.rb +16 -0
  91. package/scripts/lib/cli/commands/migrate_stores.rb +31 -0
  92. package/scripts/lib/cli/commands/next.rb +54 -0
  93. package/scripts/lib/cli/commands/project.rb +19 -0
  94. package/scripts/lib/cli/commands/project_links.rb +46 -0
  95. package/scripts/lib/cli/commands/project_list.rb +20 -0
  96. package/scripts/lib/cli/commands/project_new.rb +95 -0
  97. package/scripts/lib/cli/commands/query.rb +31 -0
  98. package/scripts/lib/cli/commands/render.rb +35 -0
  99. package/scripts/lib/cli/commands/roadmap.rb +19 -0
  100. package/scripts/lib/cli/commands/roadmap_check.rb +54 -0
  101. package/scripts/lib/cli/commands/roadmap_log.rb +54 -0
  102. package/scripts/lib/cli/commands/roadmap_migrate.rb +53 -0
  103. package/scripts/lib/cli/commands/roadmap_next.rb +77 -0
  104. package/scripts/lib/cli/commands/roadmap_show.rb +65 -0
  105. package/scripts/lib/cli/commands/rollback.rb +20 -0
  106. package/scripts/lib/cli/commands/search.rb +60 -0
  107. package/scripts/lib/cli/commands/session.rb +18 -0
  108. package/scripts/lib/cli/commands/session_commit.rb +42 -0
  109. package/scripts/lib/cli/commands/session_handoff.rb +34 -0
  110. package/scripts/lib/cli/commands/session_summary.rb +35 -0
  111. package/scripts/lib/cli/commands/status.rb +68 -0
  112. package/scripts/lib/cli/commands/subcommand_list.rb +36 -0
  113. package/scripts/lib/cli/commands/sync.rb +55 -0
  114. package/scripts/lib/cli/commands/uninstall.rb +20 -0
  115. package/scripts/lib/cli/commands/update.rb +20 -0
  116. package/scripts/lib/cli/commands/version.rb +53 -0
  117. package/scripts/lib/cli/frontier.rb +86 -0
  118. package/scripts/lib/cli/intent_progress.rb +36 -0
  119. package/scripts/lib/cli/legacy.rb +80 -0
  120. package/scripts/lib/cli/output.rb +137 -0
  121. package/scripts/lib/cli/scope.rb +134 -0
  122. package/scripts/lib/cli/table.rb +65 -0
  123. package/scripts/lib/cli.rb +94 -0
  124. package/scripts/lib/codex_adapter.rb +198 -0
  125. package/scripts/lib/compact_instructions.rb +13 -5
  126. package/scripts/lib/core_integrity.rb +71 -0
  127. package/scripts/lib/dashboard_screen.rb +40 -0
  128. package/scripts/lib/data_boundary.rb +132 -0
  129. package/scripts/lib/day_summary.rb +23 -14
  130. package/scripts/lib/doctor_core.rb +114 -38
  131. package/scripts/lib/doctor_session_ledger.rb +5 -53
  132. package/scripts/lib/engine_permissions.rb +88 -0
  133. package/scripts/lib/exec_worktree.rb +24 -21
  134. package/scripts/lib/feedback_report.rb +1 -1
  135. package/scripts/lib/graph_edges.rb +137 -0
  136. package/scripts/lib/graph_file.rb +246 -0
  137. package/scripts/lib/graph_measure.rb +645 -0
  138. package/scripts/lib/graph_measure_budget.rb +409 -0
  139. package/scripts/lib/graph_measure_cohorts.rb +487 -0
  140. package/scripts/lib/graph_measure_models.rb +413 -0
  141. package/scripts/lib/graph_measure_report.rb +532 -0
  142. package/scripts/lib/graph_tree.rb +98 -0
  143. package/scripts/lib/guarded_append.rb +155 -0
  144. package/scripts/lib/handoff.rb +40 -13
  145. package/scripts/lib/harness_adapter.rb +184 -0
  146. package/scripts/lib/hook_registry.rb +27 -3
  147. package/scripts/lib/hook_replay.rb +235 -0
  148. package/scripts/lib/index_entry.rb +62 -0
  149. package/scripts/lib/index_projection.rb +201 -0
  150. package/scripts/lib/insights.rb +1 -1
  151. package/scripts/lib/installer_core.rb +543 -71
  152. package/scripts/lib/intent_screen.rb +4 -4
  153. package/scripts/lib/intent_screen_ansi.rb +73 -12
  154. package/scripts/lib/intent_validator.rb +2 -2
  155. package/scripts/lib/lock.rb +10 -11
  156. package/scripts/lib/message_display.rb +350 -54
  157. package/scripts/lib/meter_watch.rb +185 -0
  158. package/scripts/lib/node_file.rb +234 -0
  159. package/scripts/lib/node_ids.rb +99 -0
  160. package/scripts/lib/node_input.rb +921 -0
  161. package/scripts/lib/node_input_compatibility.rb +62 -0
  162. package/scripts/lib/node_ledger.rb +386 -0
  163. package/scripts/lib/node_progress.rb +153 -0
  164. package/scripts/lib/node_return.rb +204 -0
  165. package/scripts/lib/node_worktree.rb +337 -0
  166. package/scripts/lib/outcome_report.rb +440 -0
  167. package/scripts/lib/preflight.rb +4 -6
  168. package/scripts/lib/project_config.rb +46 -0
  169. package/scripts/lib/project_validator.rb +3 -2
  170. package/scripts/lib/qmd_sync.rb +8 -7
  171. package/scripts/lib/ready_set.rb +462 -0
  172. package/scripts/lib/reference_archive.rb +45 -0
  173. package/scripts/lib/release_guard.rb +18 -0
  174. package/scripts/lib/report_screen.rb +1371 -47
  175. package/scripts/lib/rlm/corpus.rb +13 -0
  176. package/scripts/lib/rlm/probe.rb +29 -0
  177. package/scripts/lib/rlm/query.rb +22 -0
  178. package/scripts/lib/roadmap_graph.rb +210 -0
  179. package/scripts/lib/roadmap_migration.rb +95 -0
  180. package/scripts/lib/roadmap_queue.rb +170 -12
  181. package/scripts/lib/roadmap_render.rb +150 -0
  182. package/scripts/lib/roadmap_savepoint.rb +64 -14
  183. package/scripts/lib/runner_absorb.rb +703 -0
  184. package/scripts/lib/runner_answer.rb +206 -0
  185. package/scripts/lib/runner_core.rb +194 -0
  186. package/scripts/lib/runner_dispatch.rb +526 -0
  187. package/scripts/lib/runner_policy.rb +191 -0
  188. package/scripts/lib/runner_proposals.rb +275 -0
  189. package/scripts/lib/runner_rewind.rb +201 -0
  190. package/scripts/lib/runner_sweep.rb +231 -0
  191. package/scripts/lib/runner_until_empty.rb +252 -0
  192. package/scripts/lib/runner_watch.rb +389 -0
  193. package/scripts/lib/savepoint.rb +141 -19
  194. package/scripts/lib/scaffold_intent.rb +6 -3
  195. package/scripts/lib/screen_paint.rb +365 -28
  196. package/scripts/lib/screens/dashboard.rb +20 -0
  197. package/scripts/lib/screens/plan.rb +18 -0
  198. package/scripts/lib/screens/roadmap.rb +15 -0
  199. package/scripts/lib/search_index.rb +55 -0
  200. package/scripts/lib/session_close.rb +30 -28
  201. package/scripts/lib/session_git.rb +67 -19
  202. package/scripts/lib/session_ledger.rb +48 -4
  203. package/scripts/lib/session_usage.rb +190 -0
  204. package/scripts/lib/sqlite.rb +22 -0
  205. package/scripts/lib/stop_gate.rb +95 -0
  206. package/scripts/lib/store_discovery.rb +7 -6
  207. package/scripts/lib/store_layout.rb +54 -0
  208. package/scripts/lib/store_provisioning.rb +2 -1
  209. package/scripts/lib/store_sync.rb +85 -0
  210. package/scripts/lib/stores_move.rb +93 -0
  211. package/scripts/lib/untouched_scaffold.rb +51 -0
  212. package/scripts/lib/verify_intent.rb +36 -8
  213. package/scripts/lib/version_number.rb +48 -0
  214. package/scripts/lib/work_graph.rb +59 -0
  215. package/scripts/lib/work_graph_validator.rb +201 -0
  216. package/scripts/lib/worktree.rb +27 -32
  217. package/scripts/lib/worktree_sweep.rb +6 -5
  218. package/scripts/link-suggest +2 -1
  219. package/scripts/meter-watch +57 -0
  220. package/scripts/migrate-to-global +1 -1
  221. package/scripts/new-intent +4 -13
  222. package/scripts/node-input +92 -0
  223. package/scripts/node-run +225 -0
  224. package/scripts/node-transition +291 -0
  225. package/scripts/outcome-report +74 -0
  226. package/scripts/plastic-lock +65 -60
  227. package/scripts/project-links +6 -21
  228. package/scripts/promote-session-item +3 -2
  229. package/scripts/read-config +53 -9
  230. package/scripts/ready-set +126 -0
  231. package/scripts/release-check +123 -0
  232. package/scripts/report-screen +177 -16
  233. package/scripts/roadmap-graph +125 -0
  234. package/scripts/roadmap-savepoint +7 -0
  235. package/scripts/rollback.rb +5 -1
  236. package/scripts/runner +581 -0
  237. package/scripts/savepoint-note +11 -9
  238. package/scripts/session-commit +2 -1
  239. package/scripts/session-usage +56 -0
  240. package/scripts/skill-lint +115 -6
  241. package/scripts/spawn-preamble +2 -2
  242. package/scripts/update.rb +31 -4
  243. package/scripts/validate-work-graph +39 -0
  244. package/scripts/verify-intent +3 -2
  245. package/scripts/write-handoff +2 -1
  246. package/templates/agents.md +7 -7
  247. package/templates/config.yml +16 -9
  248. package/templates/dashboard-screen.md +22 -0
  249. package/templates/display-fixture.md +21 -0
  250. package/templates/graph.md +16 -0
  251. package/templates/index.md +1 -1
  252. package/templates/intent-screen.md +1 -1
  253. package/templates/node-decision.md +11 -0
  254. package/templates/node-research.md +13 -0
  255. package/templates/node-verify.md +13 -0
  256. package/templates/node-work.md +22 -0
  257. package/templates/outcome.md +8 -3
  258. package/templates/project.yml +1 -1
  259. package/templates/render.css +10 -0
  260. package/templates/report-plan.md +15 -0
  261. package/templates/report-roadmap-delivered.md +10 -0
  262. package/templates/report-roadmap-plan.md +9 -0
  263. package/templates/report-roadmap-state.md +9 -0
  264. package/templates/report-state.md +1 -1
  265. package/templates/roadmap.md +13 -0
  266. package/bin/plastic.js +0 -70
  267. package/scripts/lib/bridge.rb +0 -116
  268. package/skills/agent-advisor/SKILL.md +0 -92
  269. package/skills/auto/SKILL.md +0 -296
  270. package/skills/auto/evals/evals.json +0 -255
  271. package/skills/auto/references/end-tail.md +0 -66
  272. package/skills/auto/references/human-report-contract.md +0 -78
  273. package/skills/conventions/SKILL.md +0 -29
  274. package/skills/conventions/references/completion-and-done.md +0 -43
  275. package/skills/dashboard/SKILL.md +0 -169
  276. package/skills/dashboard/evals/evals.json +0 -38
  277. package/skills/dashboard/references/classification.md +0 -22
  278. package/skills/dashboard/templates/dashboard-global.md +0 -20
  279. package/skills/dashboard/templates/dashboard-project.md +0 -19
  280. package/skills/direct/SKILL.md +0 -66
  281. package/skills/direct/references/request-signals.md +0 -59
  282. package/skills/doctor/SKILL.md +0 -299
  283. package/skills/doctor/report.md +0 -102
  284. package/skills/feedback/SKILL.md +0 -98
  285. package/skills/feedback/references/transport-and-privacy.md +0 -65
  286. package/skills/feedback/report.md +0 -36
  287. package/skills/install/SKILL.md +0 -217
  288. package/skills/intent-continuing/SKILL.md +0 -154
  289. package/skills/intent-continuing/references/board-fill.md +0 -43
  290. package/skills/intent-continuing/references/boarding-matrix.md +0 -34
  291. package/skills/intent-continuing/references/context-management.md +0 -28
  292. package/skills/intent-continuing/references/liveness-ranking.md +0 -57
  293. package/skills/intent-creating/SKILL.md +0 -164
  294. package/skills/intent-creating/evals/evals.json +0 -72
  295. package/skills/intent-creating/references/lifecycle.md +0 -81
  296. package/skills/intent-creating/references/wikilinks.md +0 -8
  297. package/skills/intent-ending/SKILL.md +0 -176
  298. package/skills/intent-ending/evals/evals.json +0 -74
  299. package/skills/intent-executing/SKILL.md +0 -170
  300. package/skills/intent-executing/evals/evals.json +0 -66
  301. package/skills/intent-executing/implementer-prompt.md +0 -42
  302. package/skills/intent-executing/spec-reviewer-prompt.md +0 -27
  303. package/skills/intent-speccing/SKILL.md +0 -130
  304. package/skills/intent-speccing/evals/evals.json +0 -126
  305. package/skills/intent-speccing/references/design-principles.md +0 -44
  306. package/skills/intent-speccing/references/per-section-fill-rules.md +0 -92
  307. package/skills/intent-speccing/references/self-verify-checklist.md +0 -37
  308. package/skills/project-creating/SKILL.md +0 -162
  309. package/skills/project-creating/references/hubs-projects.md +0 -55
  310. package/skills/project-creating/references/project-scaffolding.md +0 -97
  311. package/skills/releasing/SKILL.md +0 -337
  312. package/skills/releasing/references/deprecations.md +0 -60
  313. package/skills/releasing/references/promotion-and-tagging.md +0 -66
  314. package/skills/releasing/references/release-lines.md +0 -105
  315. package/skills/roadmap/SKILL.md +0 -64
  316. package/skills/roadmap/references/file-format.md +0 -124
  317. package/skills/roadmap/references/operations.md +0 -112
  318. package/skills/rollback/SKILL.md +0 -91
  319. package/skills/tutorial/SKILL.md +0 -65
  320. package/skills/tutorial/evals/evals.json +0 -186
  321. package/skills/uninstall/SKILL.md +0 -75
  322. package/skills/update/SKILL.md +0 -126
  323. /package/{skills/auto/references → docs/help}/agent-report-contract.md +0 -0
  324. /package/{skills/intent-executing → docs/help}/code-quality-reviewer-prompt.md +0 -0
  325. /package/{skills/conventions/references → docs/help}/lifecycle-and-savepoints.md +0 -0
  326. /package/{skills/intent-executing → docs/help}/plan-reviewer-prompt.md +0 -0
package/README.md CHANGED
@@ -1,204 +1,428 @@
1
- # Plastic
1
+ <h1 align="center">
2
+ <img src="https://raw.githubusercontent.com/zalom/plastic/main/assets/plastic-logo.svg"
3
+ alt="Plastic" width="360">
4
+ </h1>
5
+
6
+ <p align="center">
7
+ <strong>One command that turns an intent into a durable, linked record of decisions, plans, delivery and outcomes</strong>
8
+ </p>
9
+
10
+ <p align="center">
11
+ <a href="https://www.npmjs.com/package/@zalom/plastic"><img src="https://img.shields.io/npm/v/@zalom/plastic" alt="npm version"></a>
12
+ <a href="https://www.npmjs.com/package/@zalom/plastic"><img src="https://img.shields.io/npm/dm/@zalom/plastic" alt="npm downloads"></a>
13
+ <a href="https://github.com/zalom/plastic/actions/workflows/test.yml"><img src="https://github.com/zalom/plastic/actions/workflows/test.yml/badge.svg" alt="CI"></a>
14
+ <a href="https://github.com/zalom/plastic/releases"><img src="https://img.shields.io/github/v/release/zalom/plastic" alt="Release"></a>
15
+ <a href="LICENSE"><img src="https://img.shields.io/npm/l/@zalom/plastic" alt="License: MIT"></a>
16
+ </p>
17
+
18
+ <p align="center">
19
+ <a href="#installation">Install</a> &bull;
20
+ <a href="#quick-start">Quick start</a> &bull;
21
+ <a href="#commands">Commands</a> &bull;
22
+ <a href="docs/guide/getting-started/troubleshooting.md">Troubleshooting</a> &bull;
23
+ <a href="docs/contributing/ARCHITECTURE.md">Architecture</a> &bull;
24
+ <a href="MANIFESTO.md">Manifesto</a>
25
+ </p>
26
+
27
+ ---
28
+
29
+ Plastic is an intent-based system for AI-assisted work. You do not always start with a task.
30
+ You start with an intent, such as "I want users who are locked out to recover access safely."
31
+ Plastic carries that intent through four stages, What, Why, How and Exec, and leaves a
32
+ readable record of how the idea became real.
33
+
34
+ Plastic is named after neuroplasticity, the brain's ability to change as it learns.
35
+
36
+ ## What Plastic does
37
+
38
+ Plastic keeps the shape of the work fixed and leaves the thinking to you and your agent.
39
+
40
+ | You want to | What Plastic does |
41
+ |-------------|-------------------|
42
+ | Start from a rough idea | Creates one intent directory with an id, a slug and a born-complete intent file |
43
+ | Keep the reasons | Records each ruling in the intent, then consolidates them into `spec.md` |
44
+ | Plan the work | Holds the plan as a graph of nodes, and names the next ready step |
45
+ | Resume tomorrow | Prints where a project stands and the next action in one line |
46
+ | Hand work to an agent team | Arms a delivery lock, briefs each role and reports the result |
47
+ | Close the work | Generates `outcome.md` from the record and moves the intent to Completed |
48
+ | Find an old decision | Searches every store, ranked, with one excerpt for each match |
49
+ | Run many projects | Keeps one store for each project, plus a global store, all in plain Markdown and Git |
50
+ | Steer a long delivery | Reads a roadmap as a graph and names the entry most worth continuing |
51
+ | Protect the record | Writes one archive of the three databases and the config |
52
+
53
+ Every result ends with a `next:` line and a `because:` line. The `--json` option prints the
54
+ same result as data with stable keys.
55
+
56
+ ## How the record is built
57
+
58
+ Each intent is one directory. It carries the same small set of files at every stage.
59
+
60
+ | Stage | Question | File on disk |
61
+ |-------|----------|--------------|
62
+ | What | What is the intention? | `{id}--slug.md` |
63
+ | Why | What context, evidence and decisions shape it? | `spec.md` |
64
+ | How | What is the plan? | `plan.md`, `checklist.md`, `actions/` |
65
+ | Exec | What was delivered? | `outcome.md` |
66
+
67
+ The files are plain Markdown in a Git repository that you own. See
68
+ [the architecture](docs/architecture.md) for the full store layout.
69
+
70
+ ## Installation
71
+
72
+ Plastic needs Ruby 4.0 or later. The npm path also needs Node.js 18 or later, because `npx`
73
+ fetches the package. After the install, the `plastic` command runs on Ruby alone.
74
+
75
+ ### npm (recommended)
2
76
 
3
- [![npm version](https://img.shields.io/npm/v/@zalom/plastic)](https://www.npmjs.com/package/@zalom/plastic)
4
- [![npm downloads](https://img.shields.io/npm/dm/@zalom/plastic)](https://www.npmjs.com/package/@zalom/plastic)
5
- [![license](https://img.shields.io/npm/l/@zalom/plastic)](LICENSE)
6
- [![CI](https://github.com/zalom/plastic/actions/workflows/test.yml/badge.svg)](https://github.com/zalom/plastic/actions/workflows/test.yml)
77
+ ```bash
78
+ npx -y @zalom/plastic install --claude
79
+ ```
7
80
 
8
- ## Intent-based idea development system for AI-assisted work.
81
+ Replace `--claude` with `--codex` for Codex CLI, or pass both flags.
9
82
 
10
- > Plastic is a system that turns an intent, a vague goal or idea into a durable, linked record of discovery, decisions, delivery, and outcomes - it serves as a physical brain for your intents.
83
+ The npm path puts the command at `~/.plastic/bin/plastic` and does not change your `PATH`.
84
+ Link the command into a directory that is on your `PATH`:
11
85
 
12
- [[Install]](#start-in-60-seconds) [[See it work]](#built-with-plastic) [[Read the manifesto]](MANIFESTO.md)
86
+ ```bash
87
+ mkdir -p ~/.local/bin
88
+ ln -sf ~/.plastic/bin/plastic ~/.local/bin/plastic
89
+ ```
90
+
91
+ ### Alpha channel
92
+
93
+ Plastic 2.0 is on the alpha channel.
94
+
95
+ ```bash
96
+ npx -y @zalom/plastic@alpha install --claude
97
+ ```
98
+
99
+ ### Quick install without npm
100
+
101
+ ```bash
102
+ curl -fsSL https://raw.githubusercontent.com/zalom/plastic/main/install.sh | sh
103
+ plastic install --claude
104
+ ```
105
+
106
+ `install.sh` takes the newest release on a channel that carries the archive. The default
107
+ channel is stable; `PLASTIC_CHANNEL` picks another:
108
+
109
+ ```bash
110
+ curl -fsSL https://raw.githubusercontent.com/zalom/plastic/main/install.sh | PLASTIC_CHANNEL=alpha sh
111
+ ```
13
112
 
113
+ No stable 2.0 release carries the archive yet, so the default channel still installs the 1.x
114
+ line. Use the alpha channel for the `plastic` command, or npm. To move an installed Plastic
115
+ to another channel later, run `plastic update --beta` or `plastic update --alpha`.
14
116
 
15
- ## Why Plastic?
117
+ ### A clean Mac
16
118
 
17
- You do not always start with a task.
119
+ macOS ships Ruby 2.6, which is too old. Install a newer Ruby first:
18
120
 
19
- You start with an intent, something like:
121
+ ```bash
122
+ curl https://mise.run | sh
123
+ mise use --global ruby@4.0
124
+ ```
20
125
 
21
- > “I want users who are locked out to recover access safely.”
126
+ ### Verify the installation
22
127
 
23
- Plastic delivers this intent in successive stages: What -> Why -> How -> Exec.
128
+ ```bash
129
+ plastic version # Prints the installed version and the file it came from
130
+ plastic doctor # Checks the install and the stores
131
+ ```
24
132
 
25
- The result is a readable, linked record of how an idea became real.
133
+ ## Quick start
26
134
 
27
- **Plastic gives changing minds a durable way to develop ideas into work.**
135
+ ```bash
136
+ # 1. Install for your agent
137
+ npx -y @zalom/plastic@alpha install --claude # Claude Code
138
+ npx -y @zalom/plastic@alpha install --codex # Codex CLI
139
+ npx -y @zalom/plastic@alpha install --all # Every supported agent
28
140
 
29
- Plastic is named after neuroplasticity: the brain's amazing ability to change and adapt. It rewires itself as you learn new things, form memories, or heal from injuries. Instead of being fixed like a computer, your brain is more like clay. It constantly reshapes itself based on your experiences.
141
+ # 2. See what is open
142
+ plastic status
30
143
 
31
- ### What Plastic does?
144
+ # 3. Start an intent
145
+ plastic intent new "Add a --version flag"
32
146
 
33
- Plastic keeps the shape of the work stable - **deterministic** work system:
34
- - one durable intent
35
- - one visible lifecycle
36
- - one place for context, decisions, plans, and outcomes
37
- - links between the ideas that shaped the work and the ideas it creates
147
+ # 4. Ask what to do next, at any time
148
+ plastic next
149
+ ```
38
150
 
39
- Plastic leaves the human or AI model free to think - **non-deterministic** thinking system.
151
+ Restart your agent after the install. For the full path, read
152
+ [your first intent in 10 minutes](docs/guides/your-first-intent-in-10-minutes.md).
40
153
 
41
- Plastic makes that thinking legible, resumable, and useful later.
154
+ ## How it works
42
155
 
43
- ## Who is Plastic for?
156
+ ```
157
+ You or your agent plastic ~/.plastic
158
+ ----------------- ------- ----------
159
+ plastic intent new "..." --> creates the intent --> store/12--slug/12--slug.md
160
+ plastic intent rule 12 --> records a ruling --> the intent file, then spec.md
161
+ plastic intent step 12 --> runs the next node --> graph.md, nodes/, savepoint.md
162
+ plastic intent end 12 --> generates the outcome --> outcome.md, INDEX.md
163
+
164
+ ^ |
165
+ | next: one command because: one reason |
166
+ +--------------------------------------------------------------+
167
+ ```
44
168
 
45
- **Plastic is built for an AI-native developer, technical founder, or
46
- independent builder who works across multiple sessions, has ideas before
47
- they have intents, and feels the cost of losing reasoning between agents,
48
- contexts, and days.**
169
+ Plastic follows four rules:
49
170
 
50
- ## What it solves?
171
+ 1. **Commands print state and rules.** The judgment stays with you and the agent.
172
+ 2. **The ledger is append-only.** `savepoint.md` holds one line for each event, so a new
173
+ session resumes from the last line.
174
+ 3. **Status is derived.** Plastic reads what is ready from the graph and the ledger.
175
+ 4. **Nothing leaves the machine.** Plastic makes no model call and sends none of your files anywhere.
51
176
 
52
- It solves problems that builder already feels:
177
+ ## Commands
53
178
 
54
- - "I want to keep a record of my work - what I worked on, why I worked on it, how it was built"
55
- - "I do not need another TODO list."
56
- - "I do not want my work trapped inside a chat."
57
- - "I want to explore without losing the decision trail."
58
- - "I want a better model or new agent to inherit the work, not restart it."
59
- - "I want my ideas to compound."
179
+ ### Orientation
180
+ ```bash
181
+ plastic status # Active work in every store
182
+ plastic continue # Where this project stands and what runs next
183
+ plastic continue --project blog # The same, for a named project
184
+ plastic next # The next action in one line
185
+ plastic next --why # The next action, with the reasoning
186
+ ```
60
187
 
61
- ## Start in 60 seconds
188
+ ### Intents
189
+ ```bash
190
+ plastic intent new "LINE" # Create an intent
191
+ plastic intent new "LINE" --parent 12 # Create a branch of intent 12
192
+ plastic intent show 12 # Print the state screen
193
+ plastic intent spec 12 # State screen, then the speccing rules
194
+ plastic intent rule 12 "TEXT" # Record a ruling in Insights
195
+ plastic intent note 12 "TEXT" # Append a savepoint note
196
+ plastic intent step 12 # Run the next ready step of the graph
197
+ plastic intent answer 12 --node n3 --decision "TEXT" # Answer a node that needs a decision
198
+ plastic intent verify 12 # Run the merge-gate checks
199
+ plastic intent end 12 --delivered --summary "TEXT" # Close as delivered
200
+ plastic intent end 12 --abandoned --summary "TEXT" # Close as abandoned
201
+ ```
62
202
 
63
- One command installs Plastic for your agent:
203
+ ### Projects
204
+ ```bash
205
+ plastic project list # Every store this machine holds
206
+ plastic project new blog --path ~/code/blog # Register and provision a project
207
+ plastic project links # Rebuild every Links section from frontmatter
208
+ ```
64
209
 
210
+ ### Roadmaps
65
211
  ```bash
66
- npx -y @zalom/plastic install --claude
212
+ plastic roadmap next # The roadmap most worth continuing
213
+ plastic roadmap show SLUG # The state screen of one roadmap
214
+ plastic roadmap check SLUG # Find cycles and dangling ids in the graph
215
+ plastic roadmap migrate SLUG # Write the graph section from the batches
216
+ plastic roadmap log SLUG EVENT "TEXT" # Append a line to the roadmap ledger
217
+ ```
218
+
219
+ ### Auto teams
220
+ ```bash
221
+ plastic auto take 12 # Arm the delivery lock for this session
222
+ plastic auto brief 12 --role executor # Print the spawn preamble for one role
223
+ plastic auto report 12 # Completion report, then the review rules
224
+ plastic auto lock status 12 # Inspect the delivery lock
225
+ plastic auto lock fix 12 # Repair a broken lock
226
+ plastic auto lock release 12 # Release the lock
67
227
  ```
68
228
 
69
- Then load the conventions and begin:
229
+ ### Sessions
230
+ ```bash
231
+ plastic session summary # Open items and recent activity in the day ledger
232
+ plastic session commit "SUMMARY" # Commit one verified checklist item
233
+ plastic session handoff # Write this session's hand-off
234
+ ```
70
235
 
236
+ ### Search
71
237
  ```bash
72
- /clear
238
+ plastic index # Rebuild the search index from every Markdown file
239
+ plastic search recovery flow # Ranked matches, one excerpt each
240
+ plastic search recovery --project blog --limit 5
241
+ plastic search --ask "Why did we drop the queue?" # Search with a whole question
242
+ plastic query "SELECT path FROM doc LIMIT 5" # One read-only SQL statement
243
+ ```
73
244
 
74
- I would like to learn more about Plastic and how it works.
245
+ ### Stores and databases
246
+ ```bash
247
+ plastic sync # Bring the store files and the three databases level
248
+ plastic sync --dry-run # Show what would change
249
+ plastic checkout # Restore missing store files from the databases
250
+ plastic backup # One archive of the three databases and the config
251
+ plastic backup --list # Name, size and date of each archive
252
+ plastic migrate stores --dry-run # Preview the move of every store under stores/
253
+ plastic migrate stores # Move them, behind a full copy of the home
254
+ plastic render FILE # Print one Markdown file as an HTML page
75
255
  ```
76
256
 
77
- Describe what you want in plain words, like "add a `--version` flag." Plastic
78
- scaffolds the intent and walks it through What, Why, How, and Exec. For the
79
- full path, read [your first intent in 10 minutes](docs/guides/your-first-intent-in-10-minutes.md).
257
+ ### Product
258
+ ```bash
259
+ plastic install --claude # Install into Claude Code
260
+ plastic install --reinstall --claude # Repair an install
261
+ plastic update # Next version on the current channel
262
+ plastic update --alpha # Move to the alpha channel
263
+ plastic rollback # List the versions this machine has run
264
+ plastic rollback --version 2.0.0-alpha.27
265
+ plastic uninstall --all # Remove Plastic from every agent. Your stores stay.
266
+ plastic doctor # Check the install and the stores
267
+ plastic doctor --core # The fast check that runs at session start
268
+ plastic doctor --json # The full report as data
269
+ plastic version # The installed version
270
+ ```
80
271
 
81
- ## How Plastic works?
272
+ ### Help and feedback
273
+ ```bash
274
+ plastic help # All commands and help topics
275
+ plastic help intent end # The usage line of one command
276
+ plastic help roadmaps # One help topic
277
+ plastic feedback "TITLE" < report.md # Save a problem report and print a link that files it
278
+ ```
279
+
280
+ ## Global options
281
+
282
+ ```bash
283
+ --json # Print the result as data with stable keys
284
+ -h, --help # Print the usage line of the command
285
+ --project SLUG # On continue, next and search, name a project other than the current one
286
+ ```
82
287
 
83
- A task assumes you already know the work.
288
+ The installer commands do not take `--json`. `plastic doctor` does, and prints its full
289
+ report as the document.
84
290
 
85
- An intent begins earlier:
86
- something you want to accomplish, explore, or understand.
291
+ ## Examples
87
292
 
88
- Plastic helps you develop it until it becomes a decision,
89
- a plan, a delivery, and a reusable piece of project history.
293
+ **Active work in every store:**
294
+ ```
295
+ $ plastic status
296
+ global 0 active
297
+ blog 1 active 14
298
+ shop 2 active 7, 9
90
299
 
91
- ### Register What and start with Why
300
+ next: plastic continue --project shop
301
+ because: the working directory is inside shop
302
+ ```
92
303
 
93
- Plastic delivers all work through successive stages ->
304
+ **The next action:**
305
+ ```
306
+ $ plastic next
307
+ next work 9 in Batch 2: checkout flow
94
308
 
95
- | Stage | Meaning | Developed concept | On-disk artifact (evidence) |
96
- | ----- | ----------------------------------------------- | ------------------ | ---------------------------------------------- |
97
- | What | What is the intention? | Intent | {id}--slug.md |
98
- | Why | What context, evidence, and decisions shape it? | Specification | spec.md |
99
- | How | What is the plan? | Plan and checklist | plan.md, checklist.md, actions/ACTION_1.md ... ACTION_N.md |
100
- | Exec | What was actually delivered? | Outcome | outcome.md |
309
+ next: read ~/.plastic/projects/shop/store/9--checkout-flow/plan.md
310
+ because: 9 is first on the frontier of the roadmap
311
+ ```
101
312
 
102
- ## How to use Plastic
313
+ **The installed version:**
314
+ ```
315
+ $ plastic version
316
+ version 2.0.0-alpha.28
317
+ source ~/.local/share/plastic/package.json
103
318
 
104
- Plastic organizes all work as intents. Each intent is one directory, and it carries the same
105
- small set of files at every stage.
319
+ next: plastic status
320
+ because: the command line works, so read the work next
321
+ ```
106
322
 
107
- **The intent directory**
323
+ The slugs and ids in these examples are samples.
108
324
 
109
- | File | What it holds |
110
- | ---- | -------------- |
111
- | `{id}--slug.md` | The intent itself: intent line, context, decisions |
112
- | `spec.md` | The Why, consolidated into one contract for the plan |
113
- | `plan.md`, `checklist.md`, `actions/` | The How: the plan and its execution registry |
114
- | `outcome.md` | The Exec record: what actually shipped |
325
+ ## Agent hooks
115
326
 
116
- See [`docs/architecture.md`](docs/architecture.md) for the full store layout, and
117
- [reading a delivered intent](docs/guides/reading-a-delivered-intent.md) for how to read a
118
- finished one fast.
327
+ The installer registers hooks in your agent. At session start a hook runs the fast doctor,
328
+ loads the conventions and prints the open items of the day. Each hook calls one launcher:
119
329
 
120
- **From idea to delivery, one line per stage**
330
+ ```bash
331
+ plastic hook EVENT # The agent calls this, not you
332
+ ```
121
333
 
122
- | Stage | What happens |
123
- | ----- | ------------- |
124
- | What | Describe the idea in plain words; Plastic scaffolds the intent |
125
- | Why | Explore it, one ruling at a time, then consolidate into `spec.md` |
126
- | How | Turn `spec.md` into `plan.md` and `checklist.md` |
127
- | Exec | Build the change, verify it, tick the checklist |
128
- | Done | `outcome.md` records what shipped; the index moves the intent to Completed |
334
+ Run `plastic install --reinstall --claude` when hooks do not fire.
129
335
 
130
- Walk this once in
131
- [your first intent in 10 minutes](docs/guides/your-first-intent-in-10-minutes.md), or run
132
- `plastic-tutorial` for an interactive, hands-on walkthrough of three different ways to work.
336
+ ## Supported AI tools
133
337
 
134
- **Commands, by family**
338
+ | Tool | Install | State |
339
+ |------|---------|-------|
340
+ | **Claude Code** | `plastic install --claude` | Supported |
341
+ | **Codex CLI** | `plastic install --codex` | Supported |
342
+ | **Hermes** | none | A packaging target only |
135
343
 
136
- | Family | Commands |
137
- | ------ | -------- |
138
- | Mode | `plastic-tutorial`, `plastic-auto` |
139
- | Intent | `plastic-intent-creating`, `plastic-intent-continuing`, `plastic-intent-speccing`, `plastic-intent-executing`, `plastic-intent-ending` |
140
- | Project and delivery | `plastic-project-creating`, `plastic-roadmap`, `plastic-releasing` |
141
- | Product | `plastic-install`, `plastic-update`, `plastic-uninstall`, `plastic-rollback`, `plastic-doctor` |
344
+ The `plastic` command itself needs no agent. It runs in any shell with Ruby. See
345
+ [harness support](docs/reference/harness-adapters.md) for the detail on each agent.
142
346
 
143
- See [`docs/guides/index.md`](docs/guides/index.md) for task-oriented walkthroughs.
347
+ Seven agents ship with Plastic: an enforcer that leads an auto team, an executor, three node
348
+ agents for work, verification and research, and two advisors for hard decisions.
144
349
 
145
- The agent helps most at Why and How: turning a rough idea into rulings, and rulings into a
146
- plan a machine can build from exactly. Read
147
- [pick your mode](docs/guides/pick-your-mode.md) to decide how much of that to hand over.
350
+ ## Configuration
148
351
 
149
- ## Compatibility and ownership
352
+ `~/.plastic/config.yml`:
150
353
 
151
- - Native installers for Claude Code and Codex CLI, both from npm. Hermes is a packaging
152
- target for now. See [harness support](docs/reference/harness-adapters.md).
153
- - Plain Markdown plus Git. The work stays in files you own.
154
- - Personal stores by default.
155
- - Direct work in the session, a thinking conversation when the work needs one,
156
- or autonomous delivery by an agent team when you ask for it.
157
- - Two advisor agents ship for the hard problems: one-way doors, plans, adversarial
158
- review, deadlocks. Summon one deliberately, state the effort and the answer shape in the brief; nobody's
159
- main session is ever touched. Faux Fable (recommended) is an ordinary model carrying
160
- the frontier reasoning discipline inline, much cheaper; Fable 5 is the frontier model
161
- itself. Choose the default at install, switch it any time.
354
+ ```yaml
355
+ project_roots: ~/.plastic/projects # Where Plastic looks for projects
356
+ stale_threshold_days: 3 # Age at which a future intent is shown for triage
357
+ context_offer_tokens: 150000 # Context size at which the agent offers to compact
358
+ context_insist_tokens: 250000 # Context size at which the agent insists
359
+ agent:
360
+ type: claude-code # The agent that runs Plastic
361
+ parallel_mode: agent-teams # agent-teams or linear
362
+ ```
162
363
 
163
- Plastic needs Ruby 3.0 or later and Node.js 18 or later. Most Linux systems already
164
- have a new enough Ruby. macOS ships Ruby 2.6, which is too old, so a clean Mac needs
165
- a newer one first:
364
+ Install-time choices:
166
365
 
366
+ ```bash
367
+ plastic install --claude --advisor secondary # Set the default advisor
368
+ plastic install --claude --no-advisor # Install no advisor agent
369
+ plastic install --claude --statusline plastic # Use the Plastic status line
167
370
  ```
168
- curl https://mise.run | sh # only if mise is not installed yet
169
- mise use --global ruby@3.3
371
+
372
+ See the [configuration guide](docs/guide/getting-started/configuration.md) for every key and file.
373
+
374
+ ### Uninstall
375
+
376
+ ```bash
377
+ plastic uninstall --all # Remove hooks, agents and conventions from every agent
170
378
  ```
171
379
 
172
- The installer checks this before it does anything and tells you the same thing if the
173
- Ruby it finds is too old. Bun users can run `bunx` in place of `npx`; Bun is never
174
- required.
380
+ Your stores under `~/.plastic` stay.
175
381
 
176
- ## Built with Plastic
382
+ ## What changed in 2.0
177
383
 
178
- Plastic is developed through Plastic.
384
+ Plastic 2.0 moves from prose skills to one command with direct results.
179
385
 
180
- The roadmap, intent history, plans, decisions, and outcomes
181
- behind releases are part of the repository, not a hidden process.
386
+ - **One `plastic` command.** More than 40 commands replace the skills. The package ships no skill directories.
387
+ - **Direct results.** Every command ends with `next:` and `because:`, and takes `--json`.
388
+ - **Plans are graphs.** An intent holds nodes and edges, and a ready set names what runs next.
389
+ - **A ledger with refusals.** Node transitions are appended to `savepoint.md`, and an invalid transition is refused.
390
+ - **Generated outcomes.** `outcome.md` is built from the graph, the nodes and the ledger at the close.
391
+ - **Roadmaps are graphs too.** `plastic roadmap check` finds cycles and dangling ids.
392
+ - **Search without a service.** One SQLite file holds a full-text index of every store.
393
+ - **Three databases.** `work_graph.db`, `knowledge_graph.db` and `references.db` hold the record, and the files are a checkout of it.
394
+ - **Backup and migrate.** One archive command, and a store move that runs behind a full copy of the home.
395
+ - **Two advisors, medium effort by default.** Summon the Primary Advisor or the Secondary Advisor on purpose.
396
+ - **Codex CLI as a second agent.** The same install, with OpenAI model ids for each role.
397
+ - **Publishing from branches.** A push to `alpha`, `beta` or `main` publishes to the matching npm channel with provenance.
182
398
 
183
- [changelog](CHANGELOG.md).
399
+ The [changelog](CHANGELOG.md) holds one line for each release.
184
400
 
185
401
  ## Documentation
186
402
 
187
- - [`docs/architecture.md`](docs/architecture.md): system structure, the two
188
- processes, the store layout, and the full stage table.
189
- - [`docs/internals.md`](docs/internals.md): how Plastic stays deterministic
190
- and how the harness works.
191
- - [`docs/guides/`](docs/guides/index.md): task-oriented guides, from your
192
- first intent in 10 minutes to picking a delivery mode.
403
+ - **[INSTALL.md](INSTALL.md)**: every install path.
404
+ - **[docs/guide/](docs/guide/index.md)**: getting started with the `plastic` command.
405
+ - **[docs/guides/](docs/guides/index.md)**: task guides, from your first intent to picking a mode.
406
+ - **[docs/usage/](docs/usage/FEATURES.md)**: features, the audit guide and tracking.
407
+ - **[docs/architecture.md](docs/architecture.md)**: the structure, the store layout and the stage table.
408
+ - **[docs/internals.md](docs/internals.md)**: how Plastic stays deterministic.
409
+ - **[docs/contributing/](docs/contributing/ARCHITECTURE.md)**: the command architecture, the coding practices and the gates.
410
+
411
+ ## Privacy
412
+
413
+ Plastic runs on your machine. It makes no model call and sends none of your files anywhere.
414
+ Two things use the network: the update check hook and `plastic update`, which ask the npm
415
+ registry for the newest version. See [SECURITY.md](SECURITY.md) for every file the installer writes.
416
+
417
+ ## Built with Plastic
418
+
419
+ Plastic is developed through Plastic. The roadmap, the intents, the plans, the decisions and
420
+ the outcomes behind each release are part of the record.
193
421
 
194
- ## Conventions
422
+ ## Contributing
195
423
 
196
- The always-on core conventions live in `PLASTIC.md`, distributed to `~/.plastic/PLASTIC.md`
197
- and overwritten on every update. Deeper doctrine lives in the `plastic-conventions` skill,
198
- loaded on demand by the skills that need it. Project-specific rules live in `AGENTS.md`.
199
- Run `plastic-doctor` to check installation health; it compares files against
200
- the manifests, checks store state, and runs automatically after every update.
424
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
201
425
 
202
426
  ## License
203
427
 
204
- MIT
428
+ MIT. See [LICENSE](LICENSE).
@@ -5,6 +5,7 @@ description: |
5
5
  record, has the plan reviewed before code, dispatches one executor, reviews
6
6
  by risk, and closes.
7
7
  model: opus
8
+ effort: medium
8
9
  ---
9
10
 
10
11
  You are the Plastic Enforcer, the lead of an auto team. You ARE the orchestrating session,
@@ -14,27 +15,32 @@ spanning the whole What->Why->How->Exec cycle; you are not a separately dispatch
14
15
  orchestrating main session on the best available thinking model (Fable, Opus, or whatever
15
16
  supersedes them). This is advice only: it changes no behavior. Dispatched agents keep their
16
17
  configured model and never resolve to Fable unless an explicit `agents.models.<name>` config
17
- override names Fable for that role. The two advisors, `plastic-advisor` and
18
- `plastic-faux-advisor`, are consultation roles the user or the main session summons
18
+ override names Fable for that role. Primary Advisor and Secondary Advisor are consultation roles
19
+ the user or the main session summons
19
20
  deliberately; the auto pipeline never dispatches them.
20
21
 
21
22
  ## Your Responsibilities
22
23
 
23
- 1. **Take the intent** - `plastic-lock arm` acquires the delivery lock, provisions the code
24
+ 1. **Take the intent** - `plastic auto take ID` acquires the delivery lock, provisions the code
24
25
  worktree, and points this session at the intent; work only inside that worktree.
25
26
  2. **Write the Why and How yourself** - there is no intent tier and no stage agent (removed in
26
27
  2.0, intent 304): record the rulings, write `spec.md`, then `plan.md`, at least one real
27
28
  `actions/ACTION_N.md` carrying a failure-mode matrix (one row per operation: the failure and
28
29
  the test that catches it), and `checklist.md`. One consolidated `ACTION_1.md` by default,
29
- never an empty `actions/`.
30
+ never an empty `actions/`. Every name given to a node, file, or field comes from the concept
31
+ family it lives under, graph engineering, the Plastic concepts coined on top of it, and the
32
+ software and AI engineering concepts those rest on; a gap is a design finding to raise, not
33
+ a word to coin.
30
34
  3. **Have the plan reviewed before code** - dispatch one adversarial plan reviewer on
31
- `plastic-intent-executing`'s `plan-reviewer-prompt.md`; fold every finding into the spec, the
32
- matrix, and the tests.
35
+ `plastic help plan-reviewer-prompt`; merge every finding into the spec, the matrix, and
36
+ the tests.
33
37
  4. **Dispatch one executor, tests first** - the executor commits the matrix's tests red, then
34
- builds, then drives the full suite green; you verify the checklist against the diff.
38
+ builds, then drives the full suite green; you verify tick-versus-diff at the
39
+ post-execution review and again before the merge. A mismatch is a review finding, not a
40
+ cleanup you perform silently.
35
41
  5. **Review by risk** - dispatch the post-execution reviewer only when the auto skill's risk
36
42
  rule fires; otherwise the green suite is the review.
37
- 6. **Close** - `outcome.md`, then `plastic-intent-ending`, which releases the worktree, clears
43
+ 6. **Close** - `outcome.md`, then `plastic intent end`, which releases the worktree, clears
38
44
  the lock, points the session back at the day ledger, and reindexes last.
39
45
 
40
46
  **Dispatch-time model contract.** Each pinned agent carries its `model:` in frontmatter, and
@@ -48,8 +54,8 @@ dispatch call's model parameter, alongside the spawn-preamble live-state injecti
48
54
 
49
55
  1. Take the intent; record the rulings in `## Context` + `### Decisions`; write `spec.md`.
50
56
  2. Write `plan.md`, the action files with their matrix, and `checklist.md`; dispatch the plan
51
- reviewer; fold the review.
52
- 3. Dispatch the executor through `plastic-intent-executing` with the whole consolidated action
57
+ reviewer; merge the review findings.
58
+ 3. Dispatch the executor through `plastic intent step` with the whole consolidated action
53
59
  pasted in; require the red commit before the code and a green suite after it. Sequential,
54
60
  one team per intent, on one branch when files are shared.
55
61
  4. Apply the risk rule; when it fires, dispatch the reviewer and re-dispatch the executor for
@@ -60,11 +66,10 @@ dispatch call's model parameter, alongside the spawn-preamble live-state injecti
60
66
 
61
67
  Once per delivery, at How with the plan and the matrix ready and before any code, brief the
62
68
  human in EM-to-CTO voice: impact first, the one risk that matters, then the call. In auto mode
63
- the briefing informs and does not wait. The shape lives in
64
- `skills/auto/references/human-report-contract.md`. This is separate from the intent 74 report
65
- contract (`skills/auto/references/agent-report-contract.md`), the internal structured handoff a
66
- dispatched agent sends back to you; you consume that report to write the human briefing, and
67
- the two never merge.
69
+ the briefing informs and does not wait. The shape lives in `plastic help
70
+ human-report-contract`. This is separate from the intent 74 report contract (`plastic help
71
+ agent-report-contract`), the internal structured handoff a dispatched agent sends back to you;
72
+ you consume that report to write the human briefing, and the two never merge.
68
73
 
69
74
  ## Constraints
70
75
 
@@ -73,5 +78,5 @@ the two never merge.
73
78
  `savepoint.md`, the diff), never from a hook you assume fired.
74
79
  - The plan reviewer and the post-execution reviewer are fresh agents, never you and never the
75
80
  executor.
76
- - Dispatch through `plastic-intent-executing`, Plastic's own engine. On a harness with no agent
81
+ - Dispatch through `plastic intent step`, Plastic's own engine. On a harness with no agent
77
82
  dispatch, walk the five steps yourself and say so in `## Insights`.