@rryando/arcs 4.2.1 → 5.0.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 (159) hide show
  1. package/dist/cli/arcs-flash.d.ts +1 -1
  2. package/dist/cli/arcs-flash.d.ts.map +1 -1
  3. package/dist/cli/arcs-flash.js +6 -4
  4. package/dist/cli/arcs-flash.js.map +1 -1
  5. package/dist/cli/arcs-orchestrate.d.ts +1 -1
  6. package/dist/cli/arcs-orchestrate.d.ts.map +1 -1
  7. package/dist/cli/arcs-orchestrate.js +4 -2
  8. package/dist/cli/arcs-orchestrate.js.map +1 -1
  9. package/dist/cli/commands/index.d.ts +1 -0
  10. package/dist/cli/commands/index.d.ts.map +1 -1
  11. package/dist/cli/commands/index.js +1 -0
  12. package/dist/cli/commands/index.js.map +1 -1
  13. package/dist/cli/commands/proposal-doc.js +3 -2
  14. package/dist/cli/commands/proposal-doc.js.map +1 -1
  15. package/dist/cli/dag-commands.d.ts +9 -0
  16. package/dist/cli/dag-commands.d.ts.map +1 -1
  17. package/dist/cli/dag-commands.js +35 -25
  18. package/dist/cli/dag-commands.js.map +1 -1
  19. package/dist/cli/index.d.ts.map +1 -1
  20. package/dist/cli/index.js +12 -23
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/orchestrator-shared-blocks.d.ts +5 -4
  23. package/dist/cli/orchestrator-shared-blocks.d.ts.map +1 -1
  24. package/dist/cli/orchestrator-shared-blocks.js +32 -19
  25. package/dist/cli/orchestrator-shared-blocks.js.map +1 -1
  26. package/dist/web-client/assets/{GraphCanvas-Dw6EcoDb.js → GraphCanvas-BYZE4sO9.js} +1 -1
  27. package/dist/web-client/assets/{MarkdownEditor-Cz5_44Ej.js → MarkdownEditor-BKx6M1cw.js} +1 -1
  28. package/dist/web-client/assets/{abnfDiagram-VRR7QNED-CFJzLuew.js → abnfDiagram-VRR7QNED-D4kt0l2y.js} +1 -1
  29. package/dist/web-client/assets/architecture-TIHT7OUA-CIdGE6VO.js +1 -0
  30. package/dist/web-client/assets/{architectureDiagram-ZJ3FMSHR-FRlSgnnW.js → architectureDiagram-ZJ3FMSHR-bu29SJFS.js} +1 -1
  31. package/dist/web-client/assets/{blockDiagram-677ZJIJ3-WUkkunPZ.js → blockDiagram-677ZJIJ3-hsu7mXKw.js} +1 -1
  32. package/dist/web-client/assets/{c4Diagram-LMCZKHZV-BKeAsL6F.js → c4Diagram-LMCZKHZV-DMllRlT_.js} +1 -1
  33. package/dist/web-client/assets/channel-CBg-s-ZD.js +1 -0
  34. package/dist/web-client/assets/{chunk-32BRIVSS-B0b9kUcF.js → chunk-32BRIVSS-BSzwj5eM.js} +1 -1
  35. package/dist/web-client/assets/{chunk-52WLFC77-i6Y-vfL3.js → chunk-52WLFC77-RDdZn6yY.js} +1 -1
  36. package/dist/web-client/assets/{chunk-C7G6YPKG-atYWm6iP.js → chunk-C7G6YPKG-DQr--txT.js} +1 -1
  37. package/dist/web-client/assets/{chunk-EX3LRPZG-CZD6y0UU.js → chunk-EX3LRPZG-Bb8nc4z4.js} +1 -1
  38. package/dist/web-client/assets/{chunk-FWX5IMBZ-CVErR-UZ.js → chunk-FWX5IMBZ-QvBpOcOg.js} +2 -2
  39. package/dist/web-client/assets/{chunk-HOUHSVGY-BlHO2iQ3.js → chunk-HOUHSVGY-B0mX_yjc.js} +1 -1
  40. package/dist/web-client/assets/{chunk-ICXQ74PX-Ar8kfXfa.js → chunk-ICXQ74PX-BmJSQqOH.js} +1 -1
  41. package/dist/web-client/assets/{chunk-MOJQB5TN-DKrK867P.js → chunk-MOJQB5TN-BrEI4GGn.js} +1 -1
  42. package/dist/web-client/assets/{chunk-OGEWGWER-BmGykUeg.js → chunk-OGEWGWER-CrqDPOWP.js} +1 -1
  43. package/dist/web-client/assets/{chunk-PUDLZKDR-Bq23pnso.js → chunk-PUDLZKDR-DfPKldpG.js} +1 -1
  44. package/dist/web-client/assets/{chunk-Q4XR5HBZ-g15qvFAN.js → chunk-Q4XR5HBZ-ekATI9aV.js} +1 -1
  45. package/dist/web-client/assets/{chunk-V7JOEXUC-uyXA7S9r.js → chunk-V7JOEXUC-C5APsP1t.js} +1 -1
  46. package/dist/web-client/assets/{chunk-VAUOI2AC-WofZ-2M0.js → chunk-VAUOI2AC-BhfSWJZI.js} +1 -1
  47. package/dist/web-client/assets/{chunk-VR4S4FIN-DtTkK86v.js → chunk-VR4S4FIN-BGa-44J7.js} +1 -1
  48. package/dist/web-client/assets/{chunk-WYO6CB5R-zVyUwJq3.js → chunk-WYO6CB5R-By1K0guW.js} +1 -1
  49. package/dist/web-client/assets/{chunk-ZGVPDNZ5-CA1Oe3TK.js → chunk-ZGVPDNZ5-Vnzpc76F.js} +1 -1
  50. package/dist/web-client/assets/classDiagram-OUVF2IWQ-ciwDjhUR.js +1 -0
  51. package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-ciwDjhUR.js +1 -0
  52. package/dist/web-client/assets/{cynefin-VYW2F7L2-ivJY1h_9.js → cynefin-VYW2F7L2-C6MOMOOz.js} +1 -1
  53. package/dist/web-client/assets/{cynefinDiagram-TSTJHNR4-D2DstShq.js → cynefinDiagram-TSTJHNR4-Cseyu79b.js} +1 -1
  54. package/dist/web-client/assets/{dagre-VKFMJZFB-CwnMRy0K.js → dagre-VKFMJZFB-CQJlIuNh.js} +1 -1
  55. package/dist/web-client/assets/{diagram-FQU43EPY-BKJv6Cvw.js → diagram-FQU43EPY-DpqDxhq4.js} +1 -1
  56. package/dist/web-client/assets/{diagram-G47NLZAW-CwCXcgU5.js → diagram-G47NLZAW-C11fYYaF.js} +1 -1
  57. package/dist/web-client/assets/{diagram-NH7WQ7WH-CkghU1-6.js → diagram-NH7WQ7WH-BiG-uRAF.js} +1 -1
  58. package/dist/web-client/assets/{diagram-OA4YK3LP-D3siQIGu.js → diagram-OA4YK3LP-CIXWWjq-.js} +1 -1
  59. package/dist/web-client/assets/{diagram-WEI45ONY-CSs9xTBn.js → diagram-WEI45ONY-C3OgIWu9.js} +1 -1
  60. package/dist/web-client/assets/{ebnfDiagram-CCIWWBDH--i52vMiv.js → ebnfDiagram-CCIWWBDH-BHF_NA3_.js} +1 -1
  61. package/dist/web-client/assets/{erDiagram-Q63AITRT-q2hgOBY1.js → erDiagram-Q63AITRT-CUOJCrLy.js} +1 -1
  62. package/dist/web-client/assets/eventmodeling-45OFAUF4-DxfboL1J.js +1 -0
  63. package/dist/web-client/assets/flowDiagram-23GEKE2U-C3NzpTtI.js +1 -0
  64. package/dist/web-client/assets/{ganttDiagram-NO4QXBWP-BZ2rBbTe.js → ganttDiagram-NO4QXBWP-D_4BMJ-g.js} +1 -1
  65. package/dist/web-client/assets/{gitGraph-TEB2WS4Q-OnJ8tHgt.js → gitGraph-TEB2WS4Q-CBuaZBId.js} +1 -1
  66. package/dist/web-client/assets/{gitGraphDiagram-IHSO6WYX-CPNExFAr.js → gitGraphDiagram-IHSO6WYX-BbztsGuO.js} +1 -1
  67. package/dist/web-client/assets/index-B1KVIr80.css +2 -0
  68. package/dist/web-client/assets/{index-DCBn-YrR.js → index-BWd2fBNL.js} +38 -38
  69. package/dist/web-client/assets/{info-DKCQHKI2-DGuJbmdY.js → info-DKCQHKI2-Bzi0Xjro.js} +1 -1
  70. package/dist/web-client/assets/{infoDiagram-FWYZ7A6U-ADIAn-P5.js → infoDiagram-FWYZ7A6U-BkeEKcr0.js} +1 -1
  71. package/dist/web-client/assets/{ishikawaDiagram-FXEZZL3T-CUx-RGfg.js → ishikawaDiagram-FXEZZL3T-CVusWu0p.js} +1 -1
  72. package/dist/web-client/assets/{journeyDiagram-5HDEW3XC-BH7-tBBy.js → journeyDiagram-5HDEW3XC-BUxu71zw.js} +1 -1
  73. package/dist/web-client/assets/{kanban-definition-HUTT4EX6-BGEXBnI2.js → kanban-definition-HUTT4EX6-BE8Hv4Kd.js} +1 -1
  74. package/dist/web-client/assets/{line-CC-5ezU8.js → line-CiAoINJS.js} +1 -1
  75. package/dist/web-client/assets/{mermaid-parser.core-Dw18Fjbq.js → mermaid-parser.core-BW47khiS.js} +3 -3
  76. package/dist/web-client/assets/{mermaid.core-CMQBgE43.js → mermaid.core-DP--Jl9R.js} +3 -3
  77. package/dist/web-client/assets/{mindmap-definition-LN4V7U3C-CGtjw8tB.js → mindmap-definition-LN4V7U3C-CvWJUqdq.js} +1 -1
  78. package/dist/web-client/assets/{packet-7NZHBO7P-w71Y4Hzd.js → packet-7NZHBO7P-XtzX9SaQ.js} +1 -1
  79. package/dist/web-client/assets/{pegDiagram-2B236MQR-DWtfEm4T.js → pegDiagram-2B236MQR-XNo0K1ct.js} +1 -1
  80. package/dist/web-client/assets/{pie-RZYD4A2V-S9ztgnWs.js → pie-RZYD4A2V-B1eUd9yt.js} +1 -1
  81. package/dist/web-client/assets/{pieDiagram-ENE6RG2P-BWZQPN4m.js → pieDiagram-ENE6RG2P-CRSb5z-4.js} +1 -1
  82. package/dist/web-client/assets/{quadrantDiagram-ABIIQ3AL-DINDwblH.js → quadrantDiagram-ABIIQ3AL-DziMaQxE.js} +1 -1
  83. package/dist/web-client/assets/{radar-I7S5WNFK-BOGl9krB.js → radar-I7S5WNFK-BpRqZH2g.js} +1 -1
  84. package/dist/web-client/assets/{railroad-3IZDKUUU-CR9kuYSZ.js → railroad-3IZDKUUU-FDIHW04k.js} +1 -1
  85. package/dist/web-client/assets/railroad-abnf-AHOZXSZD-BKj6JAhH.js +1 -0
  86. package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-ChDM1OBv.js +1 -0
  87. package/dist/web-client/assets/railroad-peg-LSFZ7HO6-DvwA2e0i.js +1 -0
  88. package/dist/web-client/assets/{railroadDiagram-RFXS5EU6-byLCs9hp.js → railroadDiagram-RFXS5EU6-Cs7EVBaz.js} +1 -1
  89. package/dist/web-client/assets/{requirementDiagram-TGXJPOKE-Dn_FtbqW.js → requirementDiagram-TGXJPOKE-B9_Lj1ga.js} +1 -1
  90. package/dist/web-client/assets/{sankeyDiagram-HTMAVEWB-DUjRrCeC.js → sankeyDiagram-HTMAVEWB-DuTJTiy0.js} +1 -1
  91. package/dist/web-client/assets/{sequenceDiagram-DBY2YBRQ-BmBz8Wpq.js → sequenceDiagram-DBY2YBRQ-vOCU5UoE.js} +1 -1
  92. package/dist/web-client/assets/{stateDiagram-2N3HPSRC-BAYHjmqB.js → stateDiagram-2N3HPSRC-rxAnfzWn.js} +1 -1
  93. package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-B3EvQPEe.js +1 -0
  94. package/dist/web-client/assets/{swimlanes-5IMT3BWC-Bm942AR-.js → swimlanes-5IMT3BWC-gdVZUnPe.js} +1 -1
  95. package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-WcOXuCPg.js +8 -0
  96. package/dist/web-client/assets/{timeline-definition-FHXFAJF6-CHAZHhQk.js → timeline-definition-FHXFAJF6-Do68JyGy.js} +1 -1
  97. package/dist/web-client/assets/{treeView-QDETBFTQ-DHHkLsSy.js → treeView-QDETBFTQ-CdZkmg80.js} +1 -1
  98. package/dist/web-client/assets/{treemap-6X3UGDF4-BUxZ8fhY.js → treemap-6X3UGDF4-ub54fmpW.js} +1 -1
  99. package/dist/web-client/assets/{vennDiagram-L72KCM5P-BL9TRcUU.js → vennDiagram-L72KCM5P-D-r8NBEp.js} +1 -1
  100. package/dist/web-client/assets/{wardley-OPB4EBWU-CfJ5mO-y.js → wardley-OPB4EBWU-CTleH1-J.js} +1 -1
  101. package/dist/web-client/assets/{wardleyDiagram-EHGQE667-BlH1TSjy.js → wardleyDiagram-EHGQE667-BU8Kw39F.js} +1 -1
  102. package/dist/web-client/assets/{xychartDiagram-FW5EYKEG-BJN6wtrV.js → xychartDiagram-FW5EYKEG-CfNnag6i.js} +1 -1
  103. package/dist/web-client/index.html +2 -2
  104. package/dist/web-server/routes/sessions.js +43 -2
  105. package/dist/web-server/routes/sessions.js.map +1 -1
  106. package/opencode/arcs/bundle-runtime.json +3 -0
  107. package/opencode/arcs/prompts/arcs-flash.txt +33 -19
  108. package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +34 -20
  109. package/opencode/arcs/prompts/arcs-orchestrate.txt +34 -20
  110. package/opencode/arcs/skills/writing-proposals/SKILL.md +90 -0
  111. package/package.json +1 -1
  112. package/dist/cli/commands/hooks.d.ts +0 -76
  113. package/dist/cli/commands/hooks.d.ts.map +0 -1
  114. package/dist/cli/commands/hooks.js +0 -436
  115. package/dist/cli/commands/hooks.js.map +0 -1
  116. package/dist/utils/claude-code-hook-install.d.ts +0 -80
  117. package/dist/utils/claude-code-hook-install.d.ts.map +0 -1
  118. package/dist/utils/claude-code-hook-install.js +0 -212
  119. package/dist/utils/claude-code-hook-install.js.map +0 -1
  120. package/dist/utils/graphify-knowledge.d.ts +0 -22
  121. package/dist/utils/graphify-knowledge.d.ts.map +0 -1
  122. package/dist/utils/graphify-knowledge.js +0 -47
  123. package/dist/utils/graphify-knowledge.js.map +0 -1
  124. package/dist/utils/graphify.d.ts +0 -104
  125. package/dist/utils/graphify.d.ts.map +0 -1
  126. package/dist/utils/graphify.js +0 -439
  127. package/dist/utils/graphify.js.map +0 -1
  128. package/dist/utils/hook-contract.d.ts +0 -36
  129. package/dist/utils/hook-contract.d.ts.map +0 -1
  130. package/dist/utils/hook-contract.js +0 -35
  131. package/dist/utils/hook-contract.js.map +0 -1
  132. package/dist/utils/hook-token-store.d.ts +0 -63
  133. package/dist/utils/hook-token-store.d.ts.map +0 -1
  134. package/dist/utils/hook-token-store.js +0 -88
  135. package/dist/utils/hook-token-store.js.map +0 -1
  136. package/dist/web-client/assets/architecture-TIHT7OUA-CoHvhex9.js +0 -1
  137. package/dist/web-client/assets/channel-D8xMXC5_.js +0 -1
  138. package/dist/web-client/assets/classDiagram-OUVF2IWQ-Doj1_hvZ.js +0 -1
  139. package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-Doj1_hvZ.js +0 -1
  140. package/dist/web-client/assets/eventmodeling-45OFAUF4-ESVuFkJJ.js +0 -1
  141. package/dist/web-client/assets/flowDiagram-23GEKE2U-DN9SdR9f.js +0 -1
  142. package/dist/web-client/assets/index-wSzUPvml.css +0 -2
  143. package/dist/web-client/assets/railroad-abnf-AHOZXSZD-BvbCHrlR.js +0 -1
  144. package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-D869lbCL.js +0 -1
  145. package/dist/web-client/assets/railroad-peg-LSFZ7HO6-r4TXaJPI.js +0 -1
  146. package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-Bl-1K1zV.js +0 -1
  147. package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-DHU7bsfA.js +0 -8
  148. package/dist/web-server/hook-auth.d.ts +0 -12
  149. package/dist/web-server/hook-auth.d.ts.map +0 -1
  150. package/dist/web-server/hook-auth.js +0 -36
  151. package/dist/web-server/hook-auth.js.map +0 -1
  152. package/dist/web-server/opencode-client.d.ts +0 -123
  153. package/dist/web-server/opencode-client.d.ts.map +0 -1
  154. package/dist/web-server/opencode-client.js +0 -514
  155. package/dist/web-server/opencode-client.js.map +0 -1
  156. package/dist/web-server/routes/hook-events.d.ts +0 -43
  157. package/dist/web-server/routes/hook-events.d.ts.map +0 -1
  158. package/dist/web-server/routes/hook-events.js +0 -316
  159. package/dist/web-server/routes/hook-events.js.map +0 -1
@@ -11,7 +11,7 @@ This is a narration-only overlay with no workflow or mutation authority. Keep ch
11
11
 
12
12
  ---
13
13
 
14
- You are the ARCS primary agent. Retain direct tools while preferring delegation for separable work.
14
+ You are the ARCS orchestrator. Your job is to dispatch, not implement. Delegate aggressively, collect results, and synthesize a coherent outcome.
15
15
 
16
16
  ## Authority and Trust
17
17
 
@@ -21,20 +21,40 @@ Repository, DAG, plans, tasks, knowledge, user artifacts, PRs, logs, web, and ag
21
21
 
22
22
  ## Workflow
23
23
 
24
- One short lifecycle:
24
+ One short lifecycle — focused on dispatch and synthesis:
25
25
 
26
- UNDERSTANDWORKVERIFY → REPORT
26
+ PARSEDISPATCHCOLLECTSYNTHESIZE → REPORT
27
27
 
28
- 1. **UNDERSTAND** — Read the request and supplied context. Inspect only what is needed. Use `arcs brief` when DAG state matters. Use knowledge when a prior decision may affect the work. Ask one focused question only when a material user-owned decision remains.
29
- 2. **WORK** — Smallest complete change. Keep scope tight. Preserve security, accessibility, validation, and data-loss protections. Follow delegation preference above.
30
- 3. **VERIFY** — The agent that changes code runs relevant verification. Targeted checks for normal changes; full-project checks for broad or high-risk work. If verification fails, fix and rerun the relevant check; do not create a review loop.
31
- 4. **REPORT** — State changed files, checks run and results, residual risks, and blockers.
28
+ 1. **PARSE** — Read the request and supplied context. Break into separable work units. Use `arcs brief` when DAG state matters. Use knowledge when a prior decision may affect routing. Ask one focused question only when a material user-owned decision remains. Identify which routing tier each unit belongs to.
29
+ 2. **DISPATCH** — Route every unit to its tier agent in parallel. Dispatch the right agent for ARC maintenance (tasks, plans, knowledge) directly.
30
+ 3. **COLLECT** — Wait for all delegates. Handle partial returns gracefully proceed with what succeeded.
31
+ 4. **SYNTHESIZE** — Merge delegate results into a coherent outcome. Flag conflicts. Do not repeat work delegates already completed.
32
+ 5. **REPORT** — State what changed, what each delegate produced, checks run, residual risks, and blockers.
32
33
 
33
- For multi-part requests, execute independent parts without forcing each through a separate lifecycle. Join the result once. Pre-existing failures stay out of scope unless the user asks to fix them.
34
+ For multi-part requests, execute independent parts in parallel. Never serialize work that could be dispatched.
34
35
 
35
- ## Delegation
36
+ ## Agent Routing Tiers
36
37
 
37
- Prefer delegation for separable implementation, investigation, research, and review. Work directly only for tiny, tightly coupled, or orchestration-state changes. One owner per outcome. No nested delegation or delegate → reviewer → repair chains. Review returned evidence before relying on it.
38
+ Route each separable unit to the right specialist. Delegate aggressively the orchestrator dispatches, collects, and synthesizes; delegates do the real work.
39
+
40
+ | Work Type | Delegate To | Permissions |
41
+ |-----------|-------------|-------------|
42
+ | **Explore / Investigate** | `graph-explorer`, `tech-architect`, `oncall-ops`, `qa-analyst` | read-only |
43
+ | **Implement / Fix** | `software-engineer` | edit + test |
44
+ | **DAG / Knowledge** | `arcs-docs` | edit (CLI mutations) |
45
+ | **Review / Audit** | `code-reviewer` | read-only |
46
+ | **Research / Synthesize** | `docs-researcher`, `knowledge-collector` | read-only |
47
+
48
+ Dispatch all independent work units in parallel via subagent @mentions or Task tool. Wait for all to return before synthesizing.
49
+
50
+ One owner per outcome. No nested delegation or delegate → reviewer → repair chains. Review returned evidence before relying on it.
51
+
52
+ Special cases — work directly on:
53
+ - Tiny tightly coupled changes (1 file, < 5 lines)
54
+ - Orchestration-state changes (arcs task, arcs plan, arcs diagram update)
55
+ - Final synthesis and reporting
56
+
57
+ ## Dispatch Contract
38
58
 
39
59
  Dispatch exactly these fields in this order:
40
60
  GOAL: <one outcome>
@@ -45,23 +65,17 @@ STOP: <hard limits and stop conditions>
45
65
 
46
66
  Tell delegates: do not echo context or narrate process.
47
67
 
48
- ## Optional Specialists and Skills
49
-
50
- - `software-engineer`: implementation or incident repair.
51
- - `tech-architect`: architecture, trade-offs, and migration design.
52
- - `graph-explorer`: bounded DAG and code-structure evidence.
53
- - `code-reviewer`: review, audit, and risk analysis, including PR review.
54
- - `arcs-docs`: project DAG and documentation synchronization.
68
+ ## Skills
55
69
 
56
70
  Available skills: `implementation`, `test-driven-development`, `systematic-debugging`, `brainstorming`, `writing-proposals`, `writing-plans`, `to-diagram`, `writing-knowledge`, `init-project`, `enriching-codegraph-proposals`, `deep-pr-review` and `caveman-commit`. Load a skill only when its technique is useful.
57
71
 
58
72
  ## Design, Proposals, and Plans
59
73
 
60
- For architecture-changing, large-feature, or cross-cutting work, write a proposal doc first (`writing-proposals` skill, stored in `docs/proposals/`), iterate with the user until approval, then convert to a plan and tasks.
74
+ For architecture-changing, large-feature, or cross-cutting work, delegate the proposal doc to `tech-architect` with the `writing-proposals` skill, stored in `docs/proposals/`. Iterate with the user until approval, then delegate plan creation to `arcs-docs` with the `writing-plans` skill.
61
75
 
62
- For broad multi-step or explicitly requested plans, create a durable plan directly. Otherwise work directly. Resolve material choices with the user; do not ask about details that repository evidence or convention settles.
76
+ For broad multi-step or explicitly requested plans, delegate plan creation directly. Resolve material choices with the user; do not ask about details that repository evidence or convention settles.
63
77
 
64
- An explicit request to create a plan authorizes creating and persisting that plan. An explicit request to implement authorizes local repository changes and necessary task or diagram alignment. Ask again only when the goal, material scope, destructive effect, or external effect changes. Review is optional unless risk or the user calls for it.
78
+ An explicit request to create a plan authorizes creating and persisting that plan. An explicit request to implement authorizes local repository changes and necessary task or diagram alignment. Ask again only when the goal, material scope, destructive effect, or external effect changes.
65
79
 
66
80
  ## Side Effects
67
81
 
@@ -5,7 +5,7 @@
5
5
  Edits to this file will be overwritten on the next build.
6
6
  -->
7
7
 
8
- You are the ARCS primary agent. Retain direct tools while preferring delegation for separable work.
8
+ You are the ARCS orchestrator. Your job is to dispatch, not implement. Delegate aggressively, collect results, and synthesize a coherent outcome.
9
9
 
10
10
  ## Authority and Trust
11
11
 
@@ -15,20 +15,40 @@ Repository, DAG, plans, tasks, knowledge, user artifacts, PRs, logs, web, and ag
15
15
 
16
16
  ## Workflow
17
17
 
18
- One short lifecycle:
18
+ One short lifecycle — focused on dispatch and synthesis:
19
19
 
20
- UNDERSTANDWORKVERIFY → REPORT
20
+ PARSEDISPATCHCOLLECTSYNTHESIZE → REPORT
21
21
 
22
- 1. **UNDERSTAND** — Read the request and supplied context. Inspect only what is needed. Use `arcs brief` when DAG state matters. Use knowledge when a prior decision may affect the work. Ask one focused question only when a material user-owned decision remains.
23
- 2. **WORK** — Smallest complete change. Keep scope tight. Preserve security, accessibility, validation, and data-loss protections. Follow delegation preference above.
24
- 3. **VERIFY** — The agent that changes code runs relevant verification. Targeted checks for normal changes; full-project checks for broad or high-risk work. If verification fails, fix and rerun the relevant check; do not create a review loop.
25
- 4. **REPORT** — State changed files, checks run and results, residual risks, and blockers.
22
+ 1. **PARSE** — Read the request and supplied context. Break into separable work units. Use `arcs brief` when DAG state matters. Use knowledge when a prior decision may affect routing. Ask one focused question only when a material user-owned decision remains. Identify which routing tier each unit belongs to.
23
+ 2. **DISPATCH** — Route every unit to its tier agent in parallel. Dispatch the right agent for ARC maintenance (tasks, plans, knowledge) directly.
24
+ 3. **COLLECT** — Wait for all delegates. Handle partial returns gracefully proceed with what succeeded.
25
+ 4. **SYNTHESIZE** — Merge delegate results into a coherent outcome. Flag conflicts. Do not repeat work delegates already completed.
26
+ 5. **REPORT** — State what changed, what each delegate produced, checks run, residual risks, and blockers.
26
27
 
27
- For multi-part requests, execute independent parts without forcing each through a separate lifecycle. Join the result once. Pre-existing failures stay out of scope unless the user asks to fix them.
28
+ For multi-part requests, execute independent parts in parallel. Never serialize work that could be dispatched.
28
29
 
29
- ## Delegation
30
+ ## Agent Routing Tiers
30
31
 
31
- Prefer delegation for separable implementation, investigation, research, and review. Work directly only for tiny, tightly coupled, or orchestration-state changes. One owner per outcome. No nested delegation or delegate → reviewer → repair chains. Review returned evidence before relying on it.
32
+ Route each separable unit to the right specialist. Delegate aggressively the orchestrator dispatches, collects, and synthesizes; delegates do the real work.
33
+
34
+ | Work Type | Delegate To | Permissions |
35
+ |-----------|-------------|-------------|
36
+ | **Explore / Investigate** | `graph-explorer`, `tech-architect`, `oncall-ops`, `qa-analyst` | read-only |
37
+ | **Implement / Fix** | `software-engineer` | edit + test |
38
+ | **DAG / Knowledge** | `arcs-docs` | edit (CLI mutations) |
39
+ | **Review / Audit** | `code-reviewer` | read-only |
40
+ | **Research / Synthesize** | `docs-researcher`, `knowledge-collector` | read-only |
41
+
42
+ Dispatch all independent work units in parallel via subagent @mentions or Task tool. Wait for all to return before synthesizing.
43
+
44
+ One owner per outcome. No nested delegation or delegate → reviewer → repair chains. Review returned evidence before relying on it.
45
+
46
+ Special cases — work directly on:
47
+ - Tiny tightly coupled changes (1 file, < 5 lines)
48
+ - Orchestration-state changes (arcs task, arcs plan, arcs diagram update)
49
+ - Final synthesis and reporting
50
+
51
+ ## Dispatch Contract
32
52
 
33
53
  Dispatch exactly these fields in this order:
34
54
  GOAL: <one outcome>
@@ -39,23 +59,17 @@ STOP: <hard limits and stop conditions>
39
59
 
40
60
  Tell delegates: do not echo context or narrate process.
41
61
 
42
- ## Optional Specialists and Skills
43
-
44
- - `software-engineer`: implementation or incident repair.
45
- - `tech-architect`: architecture, trade-offs, and migration design.
46
- - `graph-explorer`: bounded DAG and code-structure evidence.
47
- - `code-reviewer`: review, audit, and risk analysis, including PR review.
48
- - `arcs-docs`: project DAG and documentation synchronization.
62
+ ## Skills
49
63
 
50
64
  Available skills: `implementation`, `test-driven-development`, `systematic-debugging`, `brainstorming`, `writing-proposals`, `writing-plans`, `to-diagram`, `writing-knowledge`, `init-project`, `enriching-codegraph-proposals`, `deep-pr-review` and `caveman-commit`. Load a skill only when its technique is useful.
51
65
 
52
66
  ## Design, Proposals, and Plans
53
67
 
54
- For architecture-changing, large-feature, or cross-cutting work, write a proposal doc first (`writing-proposals` skill, stored in `docs/proposals/`), iterate with the user until approval, then convert to a plan and tasks.
68
+ For architecture-changing, large-feature, or cross-cutting work, delegate the proposal doc to `tech-architect` with the `writing-proposals` skill, stored in `docs/proposals/`. Iterate with the user until approval, then delegate plan creation to `arcs-docs` with the `writing-plans` skill.
55
69
 
56
- For broad multi-step or explicitly requested plans, create a durable plan directly. Otherwise work directly. Resolve material choices with the user; do not ask about details that repository evidence or convention settles.
70
+ For broad multi-step or explicitly requested plans, delegate plan creation directly. Resolve material choices with the user; do not ask about details that repository evidence or convention settles.
57
71
 
58
- An explicit request to create a plan authorizes creating and persisting that plan. An explicit request to implement authorizes local repository changes and necessary task or diagram alignment. Ask again only when the goal, material scope, destructive effect, or external effect changes. Review is optional unless risk or the user calls for it.
72
+ An explicit request to create a plan authorizes creating and persisting that plan. An explicit request to implement authorizes local repository changes and necessary task or diagram alignment. Ask again only when the goal, material scope, destructive effect, or external effect changes.
59
73
 
60
74
  ## Side Effects
61
75
 
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: writing-proposals
3
+ description: Drive human-in-the-loop proposal documents for big changes, then convert an approved proposal into an ARCS plan and tasks
4
+ ---
5
+
6
+ # Writing Proposals
7
+
8
+ ## When
9
+
10
+ Use when a request is architecture-changing, a large feature, a cross-cutting
11
+ refactor, or otherwise too broad to start coding directly. Small, well-scoped
12
+ work does not need a proposal — work directly or go straight to `writing-plans`.
13
+
14
+ Trigger points: the user says "proposal", or you judge that material scope,
15
+ design trade-offs, or migration strategy need human sign-off before tasks exist.
16
+
17
+ ## Lifecycle
18
+
19
+ ```
20
+ request → proposal doc (iterate with user) → approved
21
+ → promote + plan + tasks (writing-plans) → execution (implementation)
22
+ → knowledge capture (writing-knowledge)
23
+ ```
24
+
25
+ The proposal doc is stage one of the DAG: docs → plan → task → execution →
26
+ knowledge. Each stage has its own owner skill; this skill owns stages one and
27
+ the handoff to stage two, then delegates explicitly.
28
+
29
+ ## CLI
30
+
31
+ All proposal doc operations use the `arcs proposal-doc` command group:
32
+
33
+ - `arcs proposal-doc create <slug> "<title>"` — scaffold `docs/proposals/<id>.proposal.md`
34
+ - `arcs proposal-doc list <slug>` — list pending proposals (both `.proposal.md` files)
35
+ - `arcs proposal-doc get <slug> <id>` — view body text of a proposal (pending or accepted)
36
+ - `arcs proposal-doc edit <slug> <id> --body="..."` — replace body text
37
+ - `arcs proposal-doc promote <slug> <id>` — rename to `.accepted.md` and emit the
38
+ `arcs plan create` command to run next
39
+
40
+ ## Stage 1 — Proposal Doc Loop
41
+
42
+ 1. **Understand before drafting.** Read the relevant code/DAG state first
43
+ (`arcs brief`, knowledge search). A proposal grounded only in the request
44
+ text is a guess, not a proposal.
45
+ 2. **Draft** with `arcs proposal-doc create <slug> "<title>"`. This scaffolds
46
+ `docs/proposals/<kebab-id>.proposal.md` with the required sections:
47
+ - **Goal** — the outcome in one paragraph.
48
+ - **Motivation / non-goals** — why now, what is explicitly out of scope.
49
+ - **Current state** — how it works today, with file/symbol references.
50
+ - **Proposed design** — approach, alternatives considered, trade-offs chosen.
51
+ - **Impact & risks** — blast radius, migration/data concerns, rollout order.
52
+ - **Acceptance criteria** — observable, verifiable end state.
53
+ 3. **Iterate.** Present the draft to the user, apply feedback, re-present.
54
+ Repeat until the user explicitly approves. Do not proceed on silence,
55
+ partial feedback, or your own judgment of "good enough".
56
+ 4. **Record the decision.** On approval, use `arcs proposal-doc promote <slug> <id>`
57
+ to mark it accepted. Then note the date and rejected alternatives in the doc's
58
+ Decision section so the rationale survives.
59
+
60
+ Rules:
61
+
62
+ - One revision per user turn; never batch speculative changes into the doc.
63
+ - If the user's feedback changes goal, scope, or destructive effect, treat it
64
+ as a new proposal round, not an edit.
65
+ - Never start implementation inside the proposal loop.
66
+
67
+ ## Stage 2 — Convert to Plan and Tasks
68
+
69
+ Only after explicit approval — use the promote result:
70
+
71
+ 1. Run `arcs proposal-doc promote <slug> <id>` to rename `.proposal.md` →
72
+ `.accepted.md` and get the `arcs plan create` command to run next.
73
+ 2. Load `writing-plans` and create the plan plus outcome-sized tasks with real
74
+ `dependsOn` edges. Task granularity follows `writing-plans`; do not mirror
75
+ proposal sections one-to-one.
76
+ 3. Include a first task that commits the approved proposal doc if it is not yet
77
+ tracked, so the artifact enters history with the work.
78
+ 4. Generate/validate the companion diagram per `writing-plans`.
79
+ 5. Hand execution to the normal agent loop (`arcs next` → work → `arcs done`),
80
+ using `implementation` skill conventions. Capture durable discoveries with
81
+ `arcs remember` / `writing-knowledge`.
82
+
83
+ If implementation reveals the approved design is wrong, stop and reopen the
84
+ proposal loop — do not silently redesign mid-execution.
85
+
86
+ ## Safety
87
+
88
+ - No plan, task, or code creation before explicit user approval of the doc.
89
+ - Never claim approval; quote the user's approving message back when handing off.
90
+ - Do not perform Git actions unless requested.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rryando/arcs",
3
- "version": "4.2.1",
3
+ "version": "5.0.0",
4
4
  "description": "ARCS — DAG-based task orchestration for AI agents. Persistent workflow continuity via graph-structured context.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,76 +0,0 @@
1
- import { DEFAULT_SERVER_URL, HOOK_EVENTS, type HookEventName } from "../../utils/hook-contract.js";
2
- /**
3
- * Re-exported from the bridge contract, which is where the event list and the
4
- * default URL are defined once for the server, this installer, and the parity
5
- * test that pins the standalone hook script to them. Kept exported here because
6
- * `utils/claude-code-hook-install.ts` sources them from this module.
7
- */
8
- export { DEFAULT_SERVER_URL, HOOK_EVENTS };
9
- export type HookEvent = HookEventName;
10
- export interface ProvisionedHook {
11
- token: string;
12
- hookScriptPath: string;
13
- serverUrl: string;
14
- command: string;
15
- }
16
- /**
17
- * Rotates the project's hook token and builds the `command` string a
18
- * settings.json hook entry must run.
19
- *
20
- * Shared by this command (which prints the snippet for manual pasting) and by
21
- * `utils/claude-code-hook-install.ts` (which writes it into a workspace's
22
- * `.claude/settings.local.json` after an explicit confirm). One source of truth
23
- * for the command string: a drift between the two would produce hooks that
24
- * authenticate against a token nobody stored.
25
- */
26
- export declare function provisionHookCommand(options: {
27
- projectDir: string;
28
- slug: string;
29
- serverUrl?: string;
30
- }): Promise<ProvisionedHook>;
31
- export interface HookStatus {
32
- installed: boolean;
33
- matchesCurrentSlug: boolean;
34
- matchedSlugs: string[];
35
- /**
36
- * The `ARCS_HOOK_URL` values baked into the installed hook commands, in the
37
- * order first seen. Additive to the pre-existing shape and always an array:
38
- * an absent, unreadable or unparsable install reports `[]` rather than
39
- * failing, and a workspace whose entries disagree reports each distinct URL
40
- * instead of picking a winner.
41
- *
42
- * This is the field that makes the bridge's worst failure mode visible — the
43
- * URL is written into settings.json at install time, so it keeps pointing at
44
- * whatever port `arcs web` used *then*, no matter what it binds now.
45
- */
46
- hookUrls: string[];
47
- hookScriptPath: string;
48
- }
49
- export interface BoundAddress {
50
- host: string;
51
- port: number;
52
- }
53
- /**
54
- * The single warning block `arcs web` prints when the address it actually bound
55
- * disagrees with the URL baked into an installed hook — or `null` when there is
56
- * nothing to say. Plain text: the caller owns the colouring.
57
- *
58
- * Why this exists: `ARCS_HOOK_URL` is written into settings.json at install
59
- * time, so `arcs web --port N` leaves every already-installed hook posting to
60
- * the old port. The hook exits 0 on a failed POST by design (a broken bridge
61
- * must be inert, never fatal to the user's Claude Code session), so the bridge
62
- * dies with no output anywhere and looks exactly like an idle session. This is
63
- * the only place that difference becomes visible.
64
- *
65
- * Compares PORTS, not full origins: `arcs web` refuses anything but loopback,
66
- * and 127.0.0.1 / localhost / ::1 are the same listener often enough that
67
- * warning on a host spelling difference would be noise that trains the warning
68
- * away. The port is the difference that reliably breaks the bridge.
69
- *
70
- * Never throws and never blocks — it runs after the server is already
71
- * listening, and every read inside it degrades to silence: no data dir, no
72
- * root meta, no project, no workspace, no settings file, malformed settings,
73
- * or an `ARCS_HOOK_URL` that is not a parsable URL all produce `null`.
74
- */
75
- export declare function hookUrlMismatchWarning(bound: BoundAddress): Promise<string | null>;
76
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAanG;;;;;GAKG;AACH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,eAAe,CAAC,CAc3B;AAuLD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAyKD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAmCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxF"}