@rryando/arcs 3.10.0 → 4.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.
- package/README.md +172 -146
- package/dist/cli/agent-registry.d.ts +12 -0
- package/dist/cli/agent-registry.d.ts.map +1 -0
- package/dist/cli/agent-registry.js +67 -0
- package/dist/cli/agent-registry.js.map +1 -0
- package/dist/cli/arcs-flash.d.ts +2 -0
- package/dist/cli/arcs-flash.d.ts.map +1 -0
- package/dist/cli/arcs-flash.js +68 -0
- package/dist/cli/arcs-flash.js.map +1 -0
- package/dist/cli/arcs-orchestrate-caveman.d.ts +2 -14
- package/dist/cli/arcs-orchestrate-caveman.d.ts.map +1 -1
- package/dist/cli/arcs-orchestrate-caveman.js +6 -97
- package/dist/cli/arcs-orchestrate-caveman.js.map +1 -1
- package/dist/cli/arcs-orchestrate.d.ts +1 -1
- package/dist/cli/arcs-orchestrate.d.ts.map +1 -1
- package/dist/cli/arcs-orchestrate.js +40 -383
- package/dist/cli/arcs-orchestrate.js.map +1 -1
- package/dist/cli/bundle-installer.d.ts +10 -4
- package/dist/cli/bundle-installer.d.ts.map +1 -1
- package/dist/cli/bundle-installer.js +99 -6
- package/dist/cli/bundle-installer.js.map +1 -1
- package/dist/cli/commands/batch.js +4 -0
- package/dist/cli/commands/batch.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts +76 -0
- package/dist/cli/commands/hooks.d.ts.map +1 -0
- package/dist/cli/commands/hooks.js +436 -0
- package/dist/cli/commands/hooks.js.map +1 -0
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/project.js +27 -0
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/task.js +16 -1
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/web.d.ts +2 -0
- package/dist/cli/commands/web.d.ts.map +1 -0
- package/dist/cli/commands/web.js +66 -0
- package/dist/cli/commands/web.js.map +1 -0
- package/dist/cli/config.d.ts +46 -3
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +95 -38
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/instructions.d.ts +32 -7
- package/dist/cli/instructions.d.ts.map +1 -1
- package/dist/cli/instructions.js +99 -34
- package/dist/cli/instructions.js.map +1 -1
- package/dist/cli/orchestrator-shared-blocks.d.ts +31 -0
- package/dist/cli/orchestrator-shared-blocks.d.ts.map +1 -0
- package/dist/cli/orchestrator-shared-blocks.js +148 -0
- package/dist/cli/orchestrator-shared-blocks.js.map +1 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +230 -91
- package/dist/cli/setup.js.map +1 -1
- package/dist/retrieval/index-builder.d.ts.map +1 -1
- package/dist/retrieval/index-builder.js +29 -1
- package/dist/retrieval/index-builder.js.map +1 -1
- package/dist/shared/session-vocabulary.d.ts +88 -0
- package/dist/shared/session-vocabulary.d.ts.map +1 -0
- package/dist/shared/session-vocabulary.js +114 -0
- package/dist/shared/session-vocabulary.js.map +1 -0
- package/dist/utils/claude-code-hook-install.d.ts +80 -0
- package/dist/utils/claude-code-hook-install.d.ts.map +1 -0
- package/dist/utils/claude-code-hook-install.js +211 -0
- package/dist/utils/claude-code-hook-install.js.map +1 -0
- package/dist/utils/claude-transcript.d.ts +206 -0
- package/dist/utils/claude-transcript.d.ts.map +1 -0
- package/dist/utils/claude-transcript.js +384 -0
- package/dist/utils/claude-transcript.js.map +1 -0
- package/dist/utils/diagram-generator.d.ts +1 -1
- package/dist/utils/diagram-generator.d.ts.map +1 -1
- package/dist/utils/diagram-generator.js +3 -2
- package/dist/utils/diagram-generator.js.map +1 -1
- package/dist/utils/errors.d.ts +6 -2
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +12 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/git.d.ts +21 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +65 -1
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/hook-contract.d.ts +36 -0
- package/dist/utils/hook-contract.d.ts.map +1 -0
- package/dist/utils/hook-contract.js +35 -0
- package/dist/utils/hook-contract.js.map +1 -0
- package/dist/utils/hook-token-store.d.ts +61 -0
- package/dist/utils/hook-token-store.d.ts.map +1 -0
- package/dist/utils/hook-token-store.js +86 -0
- package/dist/utils/hook-token-store.js.map +1 -0
- package/dist/utils/json-schemas.d.ts +186 -2
- package/dist/utils/json-schemas.d.ts.map +1 -1
- package/dist/utils/json-schemas.js +48 -4
- package/dist/utils/json-schemas.js.map +1 -1
- package/dist/utils/knowledge-store.d.ts +7 -1
- package/dist/utils/knowledge-store.d.ts.map +1 -1
- package/dist/utils/knowledge-store.js +97 -65
- package/dist/utils/knowledge-store.js.map +1 -1
- package/dist/utils/plan-store.d.ts +8 -0
- package/dist/utils/plan-store.d.ts.map +1 -1
- package/dist/utils/plan-store.js +98 -59
- package/dist/utils/plan-store.js.map +1 -1
- package/dist/utils/project-resolver.d.ts +8 -0
- package/dist/utils/project-resolver.d.ts.map +1 -1
- package/dist/utils/project-resolver.js +7 -2
- package/dist/utils/project-resolver.js.map +1 -1
- package/dist/utils/session-store.d.ts +339 -0
- package/dist/utils/session-store.d.ts.map +1 -0
- package/dist/utils/session-store.js +577 -0
- package/dist/utils/session-store.js.map +1 -0
- package/dist/utils/storage-utils.d.ts +31 -0
- package/dist/utils/storage-utils.d.ts.map +1 -1
- package/dist/utils/storage-utils.js +116 -5
- package/dist/utils/storage-utils.js.map +1 -1
- package/dist/utils/task-store.d.ts +7 -0
- package/dist/utils/task-store.d.ts.map +1 -1
- package/dist/utils/task-store.js +73 -23
- package/dist/utils/task-store.js.map +1 -1
- package/dist/web-client/assets/GraphCanvas-CTyf_XXQ.js +1 -0
- package/dist/web-client/assets/MarkdownEditor-af2vwQOX.js +77 -0
- package/dist/web-client/assets/abnfDiagram-VRR7QNED-CdxcKX9t.js +1 -0
- package/dist/web-client/assets/arc-Bfaogrm1.js +1 -0
- package/dist/web-client/assets/architecture-TIHT7OUA-Bt2-DmfV.js +1 -0
- package/dist/web-client/assets/architectureDiagram-ZJ3FMSHR-DOISDv6o.js +36 -0
- package/dist/web-client/assets/array-BifhSqXX.js +1 -0
- package/dist/web-client/assets/blockDiagram-677ZJIJ3-DKwtbttM.js +132 -0
- package/dist/web-client/assets/c4Diagram-LMCZKHZV-CilqK-Mm.js +10 -0
- package/dist/web-client/assets/channel-C2mb9np_.js +1 -0
- package/dist/web-client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/web-client/assets/chunk-32BRIVSS-C79m1mkG.js +1 -0
- package/dist/web-client/assets/chunk-52WLFC77-C6WelGWJ.js +10 -0
- package/dist/web-client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/web-client/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
- package/dist/web-client/assets/chunk-C7G6YPKG-DLg7ryWI.js +1 -0
- package/dist/web-client/assets/chunk-EX3LRPZG-DjWgo4gL.js +231 -0
- package/dist/web-client/assets/chunk-FWX5IMBZ-BgS9p_zy.js +2 -0
- package/dist/web-client/assets/chunk-HOUHSVGY-DuVR7dZO.js +1 -0
- package/dist/web-client/assets/chunk-ICXQ74PX-Y8DlnIJM.js +2 -0
- package/dist/web-client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/web-client/assets/chunk-KEIR6QF5-DEvma7oi.js +161 -0
- package/dist/web-client/assets/chunk-MOJQB5TN-BEM3QgeD.js +88 -0
- package/dist/web-client/assets/chunk-OGEWGWER-DlM8LxGr.js +1 -0
- package/dist/web-client/assets/chunk-PUDLZKDR-c6cqNVTx.js +156 -0
- package/dist/web-client/assets/chunk-Q4XR5HBZ-C5lNmcka.js +70 -0
- package/dist/web-client/assets/chunk-RYQCIY6F-np2RyIY1.js +1 -0
- package/dist/web-client/assets/chunk-V7JOEXUC-nSswxvSG.js +206 -0
- package/dist/web-client/assets/chunk-VAUOI2AC-CqJkCkT0.js +1 -0
- package/dist/web-client/assets/chunk-VR4S4FIN-D3pFchin.js +1 -0
- package/dist/web-client/assets/chunk-WYO6CB5R-BI9c-NzI.js +125 -0
- package/dist/web-client/assets/chunk-XXDRQBXY-BvKO0v-W.js +1 -0
- package/dist/web-client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/web-client/assets/chunk-ZGVPDNZ5-CKTF2kLR.js +62 -0
- package/dist/web-client/assets/chunk-ZIRB5QZD-BpeS1aZ7.js +32 -0
- package/dist/web-client/assets/classDiagram-OUVF2IWQ-CPd_w3Zr.js +1 -0
- package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-CPd_w3Zr.js +1 -0
- package/dist/web-client/assets/cose-bilkent-JH36ORCC-BebHqzgp.js +1 -0
- package/dist/web-client/assets/cynefin-VYW2F7L2-BrJrnfh1.js +1 -0
- package/dist/web-client/assets/cynefinDiagram-TSTJHNR4-9jYzPWJZ.js +62 -0
- package/dist/web-client/assets/cytoscape-fcose-peAzqedC.js +1 -0
- package/dist/web-client/assets/cytoscape.esm-C3UvhD5t.js +321 -0
- package/dist/web-client/assets/dagre-Buvkdvvj.js +1 -0
- package/dist/web-client/assets/dagre-VKFMJZFB-B705Djpu.js +4 -0
- package/dist/web-client/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/web-client/assets/diagram-FQU43EPY-BfQAlUlJ.js +3 -0
- package/dist/web-client/assets/diagram-G47NLZAW-s1YDe06A.js +24 -0
- package/dist/web-client/assets/diagram-NH7WQ7WH-Dy3z11Hc.js +24 -0
- package/dist/web-client/assets/diagram-OA4YK3LP-Bius2xUN.js +30 -0
- package/dist/web-client/assets/diagram-WEI45ONY-D7x4VcHM.js +41 -0
- package/dist/web-client/assets/dist-B_J_HbC0.js +1 -0
- package/dist/web-client/assets/ebnfDiagram-CCIWWBDH-CBg1xrmD.js +1 -0
- package/dist/web-client/assets/erDiagram-Q63AITRT-CJRvTFvd.js +85 -0
- package/dist/web-client/assets/eventmodeling-45OFAUF4-CTKRC2Yj.js +1 -0
- package/dist/web-client/assets/flowDiagram-23GEKE2U-CaZjFyU1.js +1 -0
- package/dist/web-client/assets/ganttDiagram-NO4QXBWP-C_LsypZ4.js +292 -0
- package/dist/web-client/assets/gitGraph-TEB2WS4Q-Dx2XxdGk.js +1 -0
- package/dist/web-client/assets/gitGraphDiagram-IHSO6WYX-DiKWkGWQ.js +106 -0
- package/dist/web-client/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/web-client/assets/index-CYwhkPtc.js +60 -0
- package/dist/web-client/assets/index-wSzUPvml.css +2 -0
- package/dist/web-client/assets/info-DKCQHKI2-DORwHenK.js +1 -0
- package/dist/web-client/assets/infoDiagram-FWYZ7A6U-CQecXS1E.js +2 -0
- package/dist/web-client/assets/init-C-OQMol4.js +1 -0
- package/dist/web-client/assets/ishikawaDiagram-FXEZZL3T-CWhj60Zp.js +70 -0
- package/dist/web-client/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/dist/web-client/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/dist/web-client/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/web-client/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/web-client/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/dist/web-client/assets/journeyDiagram-5HDEW3XC-Cj3z2U8u.js +139 -0
- package/dist/web-client/assets/kanban-definition-HUTT4EX6-DFmBRenP.js +89 -0
- package/dist/web-client/assets/katex-DolUETbr.js +257 -0
- package/dist/web-client/assets/line-C_Hxz9xb.js +1 -0
- package/dist/web-client/assets/linear-DeUiD2wj.js +1 -0
- package/dist/web-client/assets/map-BaFkSB1l.js +1 -0
- package/dist/web-client/assets/mermaid-parser.core-E3xRdzPn.js +7 -0
- package/dist/web-client/assets/mermaid.core-C2_CcotH.js +11 -0
- package/dist/web-client/assets/mindmap-definition-LN4V7U3C-Bs7VxPid.js +96 -0
- package/dist/web-client/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/web-client/assets/packet-7NZHBO7P-D2nqso7i.js +1 -0
- package/dist/web-client/assets/path-COt_16Va.js +1 -0
- package/dist/web-client/assets/pegDiagram-2B236MQR-Cepo1sIu.js +1 -0
- package/dist/web-client/assets/pie-RZYD4A2V-Sx0IGbXt.js +1 -0
- package/dist/web-client/assets/pieDiagram-ENE6RG2P-D-PMDNhk.js +39 -0
- package/dist/web-client/assets/quadrantDiagram-ABIIQ3AL-BNGC7Fms.js +7 -0
- package/dist/web-client/assets/radar-I7S5WNFK-CFf_-2OC.js +1 -0
- package/dist/web-client/assets/railroad-3IZDKUUU-BvZeVRGh.js +1 -0
- package/dist/web-client/assets/railroad-abnf-AHOZXSZD-DnGh6x2O.js +1 -0
- package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-CGfgCoaE.js +1 -0
- package/dist/web-client/assets/railroad-peg-LSFZ7HO6-BzQxYdqp.js +1 -0
- package/dist/web-client/assets/railroadDiagram-RFXS5EU6-D0iK_k84.js +1 -0
- package/dist/web-client/assets/requirementDiagram-TGXJPOKE-BPdsw9tz.js +84 -0
- package/dist/web-client/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
- package/dist/web-client/assets/rough.esm-By172zw-.js +1 -0
- package/dist/web-client/assets/sankeyDiagram-HTMAVEWB-maA6ukOJ.js +40 -0
- package/dist/web-client/assets/sequenceDiagram-DBY2YBRQ-DKmAjmgr.js +162 -0
- package/dist/web-client/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
- package/dist/web-client/assets/src-oBChb5qS.js +1 -0
- package/dist/web-client/assets/stateDiagram-2N3HPSRC-esxmzk3w.js +1 -0
- package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-hcBqlOLc.js +1 -0
- package/dist/web-client/assets/swimlanes-5IMT3BWC-DFd-wGBv.js +2 -0
- package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-DbSrPBYr.js +8 -0
- package/dist/web-client/assets/timeline-definition-FHXFAJF6-C7SG8MQH.js +120 -0
- package/dist/web-client/assets/treeView-QDETBFTQ-M0rhxbs2.js +1 -0
- package/dist/web-client/assets/treemap-6X3UGDF4-BQfkQxSh.js +1 -0
- package/dist/web-client/assets/vennDiagram-L72KCM5P-CyIlb8ju.js +34 -0
- package/dist/web-client/assets/wardley-OPB4EBWU-EE-7q8M1.js +1 -0
- package/dist/web-client/assets/wardleyDiagram-EHGQE667-bY8XdYYS.js +78 -0
- package/dist/web-client/assets/xychartDiagram-FW5EYKEG-AhuXJ3de.js +7 -0
- package/dist/web-client/index.html +15 -0
- package/dist/web-server/app.d.ts +16 -0
- package/dist/web-server/app.d.ts.map +1 -0
- package/dist/web-server/app.js +77 -0
- package/dist/web-server/app.js.map +1 -0
- package/dist/web-server/claude-runner.d.ts +188 -0
- package/dist/web-server/claude-runner.d.ts.map +1 -0
- package/dist/web-server/claude-runner.js +599 -0
- package/dist/web-server/claude-runner.js.map +1 -0
- package/dist/web-server/hook-auth.d.ts +12 -0
- package/dist/web-server/hook-auth.d.ts.map +1 -0
- package/dist/web-server/hook-auth.js +36 -0
- package/dist/web-server/hook-auth.js.map +1 -0
- package/dist/web-server/index.d.ts +23 -0
- package/dist/web-server/index.d.ts.map +1 -0
- package/dist/web-server/index.js +50 -0
- package/dist/web-server/index.js.map +1 -0
- package/dist/web-server/opencode-client.d.ts +123 -0
- package/dist/web-server/opencode-client.d.ts.map +1 -0
- package/dist/web-server/opencode-client.js +514 -0
- package/dist/web-server/opencode-client.js.map +1 -0
- package/dist/web-server/permission-policy.d.ts +46 -0
- package/dist/web-server/permission-policy.d.ts.map +1 -0
- package/dist/web-server/permission-policy.js +96 -0
- package/dist/web-server/permission-policy.js.map +1 -0
- package/dist/web-server/prompt-assembly.d.ts +454 -0
- package/dist/web-server/prompt-assembly.d.ts.map +1 -0
- package/dist/web-server/prompt-assembly.js +1122 -0
- package/dist/web-server/prompt-assembly.js.map +1 -0
- package/dist/web-server/respond.d.ts +33 -0
- package/dist/web-server/respond.d.ts.map +1 -0
- package/dist/web-server/respond.js +79 -0
- package/dist/web-server/respond.js.map +1 -0
- package/dist/web-server/routes/collections.d.ts +11 -0
- package/dist/web-server/routes/collections.d.ts.map +1 -0
- package/dist/web-server/routes/collections.js +217 -0
- package/dist/web-server/routes/collections.js.map +1 -0
- package/dist/web-server/routes/discovery.d.ts +7 -0
- package/dist/web-server/routes/discovery.d.ts.map +1 -0
- package/dist/web-server/routes/discovery.js +159 -0
- package/dist/web-server/routes/discovery.js.map +1 -0
- package/dist/web-server/routes/events.d.ts +6 -0
- package/dist/web-server/routes/events.d.ts.map +1 -0
- package/dist/web-server/routes/events.js +25 -0
- package/dist/web-server/routes/events.js.map +1 -0
- package/dist/web-server/routes/hook-events.d.ts +44 -0
- package/dist/web-server/routes/hook-events.d.ts.map +1 -0
- package/dist/web-server/routes/hook-events.js +320 -0
- package/dist/web-server/routes/hook-events.js.map +1 -0
- package/dist/web-server/routes/projects.d.ts +7 -0
- package/dist/web-server/routes/projects.d.ts.map +1 -0
- package/dist/web-server/routes/projects.js +272 -0
- package/dist/web-server/routes/projects.js.map +1 -0
- package/dist/web-server/routes/sessions.d.ts +18 -0
- package/dist/web-server/routes/sessions.d.ts.map +1 -0
- package/dist/web-server/routes/sessions.js +1298 -0
- package/dist/web-server/routes/sessions.js.map +1 -0
- package/dist/web-server/routes/workspace.d.ts +27 -0
- package/dist/web-server/routes/workspace.d.ts.map +1 -0
- package/dist/web-server/routes/workspace.js +280 -0
- package/dist/web-server/routes/workspace.js.map +1 -0
- package/dist/web-server/run-event-log.d.ts +167 -0
- package/dist/web-server/run-event-log.d.ts.map +1 -0
- package/dist/web-server/run-event-log.js +468 -0
- package/dist/web-server/run-event-log.js.map +1 -0
- package/dist/web-server/security.d.ts +7 -0
- package/dist/web-server/security.d.ts.map +1 -0
- package/dist/web-server/security.js +41 -0
- package/dist/web-server/security.js.map +1 -0
- package/dist/web-server/session-reconciler.d.ts +162 -0
- package/dist/web-server/session-reconciler.d.ts.map +1 -0
- package/dist/web-server/session-reconciler.js +363 -0
- package/dist/web-server/session-reconciler.js.map +1 -0
- package/dist/web-server/static.d.ts +17 -0
- package/dist/web-server/static.d.ts.map +1 -0
- package/dist/web-server/static.js +79 -0
- package/dist/web-server/static.js.map +1 -0
- package/dist/web-server/storage.d.ts +17 -0
- package/dist/web-server/storage.d.ts.map +1 -0
- package/dist/web-server/storage.js +42 -0
- package/dist/web-server/storage.js.map +1 -0
- package/dist/web-server/watcher.d.ts +37 -0
- package/dist/web-server/watcher.d.ts.map +1 -0
- package/dist/web-server/watcher.js +181 -0
- package/dist/web-server/watcher.js.map +1 -0
- package/dist/web-server/web-auth.d.ts +17 -0
- package/dist/web-server/web-auth.d.ts.map +1 -0
- package/dist/web-server/web-auth.js +33 -0
- package/dist/web-server/web-auth.js.map +1 -0
- package/dist/web-server/web-token.d.ts +39 -0
- package/dist/web-server/web-token.d.ts.map +1 -0
- package/dist/web-server/web-token.js +71 -0
- package/dist/web-server/web-token.js.map +1 -0
- package/opencode/arcs/bundle-runtime.json +5 -13
- package/opencode/arcs/manifest.json +215 -151
- package/opencode/arcs/prompts/arcs-docs.txt +53 -47
- package/opencode/arcs/prompts/arcs-flash.txt +190 -0
- package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +116 -422
- package/opencode/arcs/prompts/arcs-orchestrate.txt +114 -341
- package/opencode/arcs/prompts/code-reviewer.txt +37 -98
- package/opencode/arcs/prompts/devil-advocate.txt +44 -115
- package/opencode/arcs/prompts/graph-explorer.txt +31 -179
- package/opencode/arcs/prompts/software-engineer.txt +24 -6
- package/opencode/arcs/prompts/tech-architect.txt +25 -9
- package/opencode/arcs/skills/brainstorming/SKILL.md +65 -105
- package/opencode/arcs/skills/deep-pr-review/SKILL.md +5 -5
- package/opencode/arcs/skills/deep-pr-review/review-template.md +1 -1
- package/opencode/arcs/skills/enriching-codegraph-proposals/SKILL.md +17 -18
- package/opencode/arcs/skills/executing-plans/SKILL.md +26 -234
- package/opencode/arcs/skills/implementation/SKILL.md +61 -0
- package/opencode/arcs/skills/init-project/SKILL.md +16 -15
- package/opencode/arcs/skills/install-claude-code-hook/SKILL.md +143 -0
- package/opencode/arcs/skills/systematic-debugging/SKILL.md +7 -7
- package/opencode/arcs/skills/test-driven-development/SKILL.md +1 -1
- package/opencode/arcs/skills/to-diagram/SKILL.md +8 -3
- package/opencode/arcs/skills/writing-knowledge/SKILL.md +7 -6
- package/opencode/arcs/skills/writing-plans/SKILL.md +80 -130
- package/opencode/arcs/skills/writing-plans/plan-document-reviewer-prompt.md +38 -30
- package/package.json +14 -6
- package/scripts/build-opencode-bundle.mjs +22 -7
- package/scripts/claude-code-session-hook.mjs +171 -0
- package/scripts/deploy-claudecode-bundle.mjs +206 -132
- package/scripts/deploy-opencode-bundle.mjs +181 -5
- package/scripts/lib/bundle-helpers.mjs +26 -0
- package/scripts/lint-bundle.mjs +123 -3
- package/skills/explore-dag.md +5 -3
- package/skills/init-project.md +27 -26
- package/skills/orchestrate.md +29 -13
- package/skills/update-docs.md +8 -13
- package/opencode/arcs/prompts/docs-researcher.txt +0 -79
- package/opencode/arcs/prompts/oncall-ops.txt +0 -85
- package/opencode/arcs/skills/code-agent/SKILL.md +0 -63
- package/opencode/arcs/skills/executing-plans/code-quality-reviewer-prompt.md +0 -57
- package/opencode/arcs/skills/executing-plans/implementer-prompt.md +0 -152
- package/opencode/arcs/skills/executing-plans/spec-reviewer-prompt.md +0 -91
- package/opencode/arcs/skills/quick-dev/SKILL.md +0 -52
- package/opencode/arcs/skills/requesting-code-review/SKILL.md +0 -59
- package/opencode/arcs/skills/requesting-code-review/code-reviewer.md +0 -139
- package/opencode/arcs/skills/the-ladder/SKILL.md +0 -54
|
@@ -1,153 +1,113 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brainstorming
|
|
3
|
-
description: "You MUST use this before
|
|
3
|
+
description: "You MUST use this before creative work that needs design. Resolves facts and material user-owned decisions, then obtains explicit design approval without authoring implementation artifacts."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Skill: brainstorming
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Purpose
|
|
9
9
|
|
|
10
|
-
You are a critical design partner
|
|
10
|
+
You are a critical design partner. Make the requested outcome precise, minimal, and grounded in current evidence. Brainstorming is a finite human-in-the-loop design phase, not an authoring or implementation phase.
|
|
11
11
|
|
|
12
|
-
Tone:
|
|
12
|
+
Tone: direct, constructive, and concise. Challenge unsupported scope, but do not manufacture disagreement or questions when the request is already complete.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Lifecycle
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
The canonical lifecycle is:
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
`INTAKE → FACT_FINDING → DECISION_LOOP → DESIGN_DRAFT → WAITING_FOR_DESIGN_APPROVAL → PLAN_DRAFT → BRAINSTORM_GATE → WAITING_FOR_EXACT_AUTHORIZATION → AUTHORING`
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
Do NOT invoke any implementation skill, write any code, or take any implementation action until you have presented a design and the user has approved it. Every project, regardless of perceived simplicity.
|
|
22
|
-
</HARD-GATE>
|
|
23
|
-
|
|
24
|
-
## Flow
|
|
20
|
+
Brainstorming owns only `INTAKE` through `WAITING_FOR_DESIGN_APPROVAL`. After explicit design approval, hand the approved design to `writing-plans`, the sole owner of `PLAN_DRAFT` through `AUTHORING`.
|
|
25
21
|
|
|
26
22
|
```mermaid
|
|
27
23
|
flowchart TD
|
|
28
|
-
A[
|
|
29
|
-
B
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
E -->|
|
|
34
|
-
E -->|precise| G[Propose minimal approach — 1 not 3]
|
|
35
|
-
F --> E
|
|
36
|
-
G --> H[Present constraints and trade-offs]
|
|
37
|
-
H --> I{User approves?}
|
|
38
|
-
I -->|no| G
|
|
39
|
-
I -->|yes| J[Generate plan diagram .mmd]
|
|
40
|
-
J --> K[Write design to arcs plan]
|
|
41
|
-
K --> L[Invoke writing-plans skill]
|
|
24
|
+
A[INTAKE] --> B[FACT_FINDING]
|
|
25
|
+
B --> C[DECISION_LOOP]
|
|
26
|
+
C -->|completion predicate satisfied| D[DESIGN_DRAFT]
|
|
27
|
+
D --> E[WAITING_FOR_DESIGN_APPROVAL]
|
|
28
|
+
E -->|material revision requested| C
|
|
29
|
+
E -->|explicit design approval| F[Hand off to writing-plans]
|
|
42
30
|
```
|
|
43
31
|
|
|
44
|
-
##
|
|
45
|
-
|
|
46
|
-
Before challenging, read what's already settled so you don't relitigate or contradict a prior call: `arcs knowledge search <slug> "<topic-keywords>" --lean --json` filtering for `kind=decision` and `kind=architecture`. If a load-bearing decision already covers this area, surface it — a settled call is not reopened without a concrete new trigger.
|
|
32
|
+
## Hard Boundary
|
|
47
33
|
|
|
48
|
-
|
|
34
|
+
Brainstorming must never create, write, or persist plans, tasks, diagrams, or knowledge. It must not invoke implementation, write code, commit, perform automatic git actions, or claim authorization to author durable artifacts. It may read repository, DAG, and environment evidence and may propose knowledge wording for later orchestrator fan-in, but it does not persist that proposal.
|
|
49
35
|
|
|
50
|
-
|
|
36
|
+
The only next skill after approved design is `writing-plans`; never invoke an implementation skill from brainstorming.
|
|
51
37
|
|
|
52
|
-
|
|
53
|
-
- "What breaks if we don't do this?"
|
|
54
|
-
- "Who is blocked by the absence of this?"
|
|
55
|
-
- "Show me the error / the gap / the user complaint."
|
|
38
|
+
## State Protocol
|
|
56
39
|
|
|
57
|
-
|
|
40
|
+
### INTAKE
|
|
58
41
|
|
|
59
|
-
|
|
60
|
-
- "What exactly changes? Name the file, the function, the behavior."
|
|
61
|
-
- "What does 'done' look like? Give me the acceptance test in one sentence."
|
|
62
|
-
- "What does this NOT do? Draw the boundary."
|
|
42
|
+
Extract the stated goal, requested scope, constraints, non-goals, acceptance evidence, and volunteered decisions. Treat clear user statements as settled unless current evidence contradicts them. Push back only on a concrete risk, unsupported premise, conflict, or avoidable scope.
|
|
63
43
|
|
|
64
|
-
|
|
44
|
+
### FACT_FINDING
|
|
65
45
|
|
|
66
|
-
|
|
67
|
-
- "What's the smallest version that unblocks you?"
|
|
68
|
-
- "Can this be a 1-file change instead of a system?"
|
|
69
|
-
- "Does this need a new abstraction, or can the existing pattern absorb it?"
|
|
46
|
+
Resolve repository-, DAG-, environment-, and tool-discoverable facts before asking the user. Read established patterns and settled architecture or decision knowledge so you do not ask the user to locate files, recite current behavior, or relitigate prior calls.
|
|
70
47
|
|
|
71
|
-
|
|
48
|
+
Use `arcs knowledge search <slug> "<topic-keywords>" --lean --json` for relevant decisions, patterns, and architecture. Reads are evidence gathering only.
|
|
72
49
|
|
|
73
|
-
|
|
50
|
+
### DECISION_LOOP
|
|
74
51
|
|
|
75
|
-
|
|
76
|
-
|--------|----------|
|
|
77
|
-
| "We might need X later" | "What's the concrete trigger? Until it fires, we don't build it." |
|
|
78
|
-
| "Let's make it configurable" | "How many configs exist today? If 1, hardcode it." |
|
|
79
|
-
| "Add a plugin/hook system" | "Name 2 plugins that exist right now. If you can't, no." |
|
|
80
|
-
| "Generic interface for future use" | "1 consumer = no interface. Inline it." |
|
|
81
|
-
| "Let's plan for scale" | "What's current load? Solve for 10x of that, nothing more." |
|
|
82
|
-
| User adds scope during discussion | "That's a separate request. Finish this one minimal first." |
|
|
52
|
+
Maintain a finite list of unresolved material user-owned decisions. A decision is material when different answers alter externally visible behavior, scope, acceptance, irreversible choices, security/privacy posture, or a load-bearing trade-off.
|
|
83
53
|
|
|
84
|
-
|
|
54
|
+
- Ask one coupled material user-owned decision at a time, with a recommended answer and concise trade-off.
|
|
55
|
+
- Accept multiple answers when the user volunteers them; do not ask them again.
|
|
56
|
+
- Batch only independent factual confirmations when a tool cannot resolve them.
|
|
57
|
+
- Choose trivial, reversible implementation details from existing conventions without consuming a user turn.
|
|
58
|
+
- Do not ask a question merely to demonstrate challenge. If no material user-owned decision remains, proceed.
|
|
85
59
|
|
|
86
|
-
|
|
60
|
+
The explicit completion predicate is satisfied only when all five are known: **goal, scope, non-goals, acceptance criterion, and all material decisions**. Stop questioning immediately when the completion predicate is satisfied.
|
|
87
61
|
|
|
88
|
-
|
|
62
|
+
### DESIGN_DRAFT
|
|
89
63
|
|
|
90
|
-
|
|
91
|
-
- **Separation of concerns.** One thing per unit. If a proposal mixes responsibilities, split it before designing.
|
|
92
|
-
- **Testability first.** If a design can't be tested in isolation, reject it. "How do you test this without spinning up the whole system?"
|
|
93
|
-
- **Explicit over implicit.** If behavior is hidden behind magic (auto-detection, convention-over-configuration chains), make it explicit.
|
|
94
|
-
- **Reversibility.** Prefer changes that are easy to undo. Flag irreversible decisions loudly.
|
|
64
|
+
Present one minimal design, scaled to the problem. Include:
|
|
95
65
|
|
|
96
|
-
|
|
66
|
+
- one-sentence goal and done criterion;
|
|
67
|
+
- in-scope and non-goals;
|
|
68
|
+
- behavior and boundaries;
|
|
69
|
+
- affected surfaces at design-level precision;
|
|
70
|
+
- load-bearing decisions, constraints, and trade-offs;
|
|
71
|
+
- test or verification strategy.
|
|
97
72
|
|
|
98
|
-
|
|
99
|
-
- **Multiple choice when forcing a decision** — 2-3 options, each with clear trade-off stated
|
|
100
|
-
- **Cut scope aggressively**: if request describes multiple independent concerns, split immediately. "That's 3 separate things. Which one is blocking you right now?"
|
|
101
|
-
- No open-ended "what do you think?" — always propose a position and let user argue against it
|
|
102
|
-
- When the user explicitly requests a grill, or an ordinary challenge leaves a material decision unresolved, investigate environment- or tool-discoverable facts before asking the user. Then ask exactly one user-owned decision at a time, with a recommended default.
|
|
73
|
+
Do not include a plan, task decomposition, execution diagram, implementation steps, or persistence commands. The design may describe a visual interaction, but it is not an agentic execution map.
|
|
103
74
|
|
|
104
|
-
|
|
75
|
+
### WAITING_FOR_DESIGN_APPROVAL
|
|
105
76
|
|
|
106
|
-
|
|
77
|
+
Ask the current user to approve or revise the presented design. Design approval means only that `writing-plans` may draft authoring artifacts; it is not authorization to persist a plan, tasks, a diagram, or knowledge.
|
|
107
78
|
|
|
108
|
-
|
|
109
|
-
- State constraints and trade-offs up front — what this design gives up, what it can't do, where it'll hurt if scope grows.
|
|
110
|
-
- Cover only what's needed: affected files, behavior change, test strategy. No boilerplate sections.
|
|
111
|
-
- Scale each section to its complexity (1 sentence → 200 words max). Don't pad.
|
|
79
|
+
If the user requests a material design change, return to `DECISION_LOOP`, revise the design, and request approval of the new design. If the user approves, hand the exact approved design to `writing-plans`.
|
|
112
80
|
|
|
113
|
-
##
|
|
81
|
+
## Scope Discipline
|
|
114
82
|
|
|
115
|
-
|
|
116
|
-
A plan diagram MUST be generated and presented before proceeding to storage. Draft in memory or `/tmp` — never write to DAG before the user confirms the design.
|
|
117
|
-
</HARD-GATE>
|
|
83
|
+
Apply YAGNI against concrete evidence:
|
|
118
84
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
arcs plan create <slug> --title="YYYY-MM-DD <topic> Design" --summary="..." --status=proposed --keywords="spec,design" --body="<markdown>" --json
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
When creating tasks from the plan, wire execution order with `--dependsOn=dep-task-id-1,dep-task-id-2`. The `dependsOn` graph determines what `arcs next` returns — priority is a tiebreaker within the same topological level.
|
|
131
|
-
|
|
132
|
-
After the design lands, capture the reasoning that the plan body alone will lose — this is the richest, most-skipped knowledge in the whole workflow. For each load-bearing DECISION and each REJECTED ALTERNATIVE (with the rationale for rejection), emit/run an upsert: `arcs knowledge upsert <slug> "<decision title>" --kind=decision --summary="<what was decided and why; what was rejected and why>" --keywords="<k1,k2>" --source-files="<path[:anchor],...>" --json`. Upsert is idempotent by title, so no dedup search is needed. (When the orchestrator drives this skill, emit the upsert command for it to run; standalone with bash, run it directly.)
|
|
85
|
+
| Signal | Response |
|
|
86
|
+
|--------|----------|
|
|
87
|
+
| Hypothetical future need | Defer until a named trigger occurs |
|
|
88
|
+
| Configuration with one current value | Keep the value local unless variability is required now |
|
|
89
|
+
| Generic interface with one consumer | Use the existing concrete pattern |
|
|
90
|
+
| Unrelated cleanup | Exclude it from scope |
|
|
91
|
+
| Multiple independent outcomes | Separate them and identify which outcome is currently required |
|
|
133
92
|
|
|
134
|
-
|
|
93
|
+
Existing codebase patterns win unless the approved goal requires changing them. Prefer reversible choices. Never simplify away security, accessibility, validation, or data-loss prevention.
|
|
135
94
|
|
|
136
95
|
## Visual Companion
|
|
137
96
|
|
|
138
|
-
Browser-based companion for mockups
|
|
97
|
+
Browser-based companion for mockups and visual design questions. Offer once when seeing is materially clearer than reading:
|
|
139
98
|
|
|
140
99
|
> "This might be easier to show visually. Want a browser companion?"
|
|
141
100
|
|
|
142
|
-
- This offer
|
|
143
|
-
-
|
|
144
|
-
- If accepted, read `skills/brainstorming/visual-companion.md
|
|
101
|
+
- This offer must be its own message with no other content.
|
|
102
|
+
- Use the browser only for questions where seeing beats reading.
|
|
103
|
+
- If accepted, read `skills/brainstorming/visual-companion.md`.
|
|
104
|
+
- A visual companion is exploratory design evidence, not a plan diagram or durable artifact.
|
|
105
|
+
|
|
106
|
+
## Exit
|
|
107
|
+
|
|
108
|
+
Exit only with either:
|
|
145
109
|
|
|
146
|
-
|
|
110
|
+
1. a specifically identified unresolved material user-owned decision; or
|
|
111
|
+
2. an exact approved design handed to `writing-plans`.
|
|
147
112
|
|
|
148
|
-
|
|
149
|
-
- Every project needs a design, no matter how "simple"
|
|
150
|
-
- One challenge per message, multiple choice when forcing decisions
|
|
151
|
-
- YAGNI is not a suggestion — it's a hard filter. Every feature must justify its existence NOW.
|
|
152
|
-
- Existing codebases: explore first, follow patterns, don't propose unrelated refactoring
|
|
153
|
-
- **Never agree easily.** If the user's first description is accepted without pushback, you failed. There's always something to clarify, trim, or ground.
|
|
113
|
+
Never imply that brainstorming must always ask something. Finite completion is the objective.
|
|
@@ -9,7 +9,7 @@ description: Use when the user provides a GitHub PR link with a "deep review" tr
|
|
|
9
9
|
|
|
10
10
|
User gives a GitHub PR URL plus a "deep review" trigger inside the locally cloned repo of that PR. Reviewer-side workflow: read-only by default, posts to GitHub only after explicit user gate.
|
|
11
11
|
|
|
12
|
-
> CLI: `arcs --commands --json` for discovery. Posting is user-gated.
|
|
12
|
+
> CLI: `arcs --commands --json` for discovery. Posting is user-gated. Knowledge is proposal-only unless the user separately and explicitly authorizes that exact ARCS write.
|
|
13
13
|
|
|
14
14
|
## Flow
|
|
15
15
|
|
|
@@ -84,7 +84,7 @@ Agent picks dimensions from diff context. **Correctness is always evaluated.** O
|
|
|
84
84
|
| **SOLID** | Module gains responsibilities, dependency direction shifts, large classes touched |
|
|
85
85
|
| **Convention fit** | AGENTS.md or DAG `pattern`/`architecture` knowledge applies to changed files |
|
|
86
86
|
| **Architectural risk** → handoff to the tech-architect agent (structural audit) | Diff crosses module boundaries, touches god nodes, changes public API |
|
|
87
|
-
| **Performance risk** → handoff to the
|
|
87
|
+
| **Performance/incident risk** → handoff to the software-engineer agent in incident mode with systematic-debugging | Hot paths, loops over external IO, new queries, allocations in render |
|
|
88
88
|
|
|
89
89
|
Skipped dimensions are reported as `cleared (not applicable: <reason>)`. Never silently dropped.
|
|
90
90
|
|
|
@@ -106,7 +106,7 @@ Format: `L<line>: <tag> <what>. <replacement>.` — use `<file>:L<line>: ...` fo
|
|
|
106
106
|
|
|
107
107
|
End with the only metric that matters: `net: -<N> lines, -<M> deps possible.` Nothing to cut → `Lean already. Ship.`
|
|
108
108
|
|
|
109
|
-
Boundary: never flag the single
|
|
109
|
+
Boundary: never flag the single runnable check that implementation minimalism requires for non-trivial logic as bloat.
|
|
110
110
|
|
|
111
111
|
## Severity Prefixes
|
|
112
112
|
|
|
@@ -184,7 +184,7 @@ gh api POST /repos/{owner}/{repo}/pulls/{number}/reviews \
|
|
|
184
184
|
|
|
185
185
|
## Knowledge Proposals (standard report output)
|
|
186
186
|
|
|
187
|
-
A recurring finding — the same class of bug, the same convention violation, a trap seen more than once across the diff — is durable knowledge, not just a one-off comment. Make proposing it a standard part of the report, not an afterthought
|
|
187
|
+
A recurring finding — the same class of bug, the same convention violation, a trap seen more than once across the diff — is durable knowledge, not just a one-off comment. Make proposing it a standard part of the report, not an afterthought. First use `arcs knowledge template --kind=<kind> --json`; then include a proposed `arcs knowledge upsert <slug> "<title>" --kind=<pattern|gotcha> --summary="<the recurring issue and the fix convention>" --body="<substantive filled template>" --keywords="<k1,k2>" --source-files="<path,...>" --json` in the report. Do not execute `arcs knowledge upsert` without explicit user authorization for that exact command. This opt-in is separate from the GitHub posting choice: a review that posts nothing can still surface knowledge proposals. Upsert is idempotent by title.
|
|
188
188
|
|
|
189
189
|
## Report Structure
|
|
190
190
|
|
|
@@ -210,7 +210,7 @@ A recurring finding — the same class of bug, the same convention violation, a
|
|
|
210
210
|
- Cite every finding — no uncited claims
|
|
211
211
|
- ` ```suggestion ` blocks only for small line-replacement fixes
|
|
212
212
|
- Defer to the tech-architect agent (structural audit) for full structural drift; surface as handoff flag, do not run inline
|
|
213
|
-
- Defer to the
|
|
213
|
+
- Defer performance or incident investigation to the software-engineer agent with `AGENT_MODE: incident` and mandatory systematic-debugging; surface as a risk flag
|
|
214
214
|
- Review dimensions are defined in this skill (Adaptive Rubric); inline findings use the one-line format `<file>:L<line>: problem. fix.` — do not duplicate
|
|
215
215
|
- Re-review detection: if AI has reviewed before, scope to diff since last review's commit_id
|
|
216
216
|
- Tag each posted suggestion with `<!-- arcs:deep-review:<finding-id> -->` for re-review tracking
|
|
@@ -26,7 +26,7 @@ Used as the `body` field of `gh api repos/{owner}/{repo}/pulls/{pull_number}/rev
|
|
|
26
26
|
### Architectural / Performance Handoffs
|
|
27
27
|
<only if any; otherwise omit section>
|
|
28
28
|
- [tech-architect] <reason — e.g. crosses 3 modules, touches god node X>
|
|
29
|
-
- [
|
|
29
|
+
- [software-engineer, AGENT_MODE: incident, systematic-debugging] <reason — e.g. new query in render path>
|
|
30
30
|
|
|
31
31
|
### Citations Used
|
|
32
32
|
- AGENTS.md §<section> — <what was checked>
|
|
@@ -13,7 +13,7 @@ The CLI surfaced raw codegraph proposals and is waiting for an agent to turn the
|
|
|
13
13
|
- `arcs codegraph-sync` returned `pending_enrichment: true`.
|
|
14
14
|
- User said "enrich the proposals", "process the codegraph queue", "promote the pending proposals", or similar.
|
|
15
15
|
|
|
16
|
-
> **Read-
|
|
16
|
+
> **Read-only proposal skill.** This skill reads the queue, reaches verdicts only after the evidence threshold below is met, and returns exact commands under `PROPOSED_MUTATIONS:`. It does not execute `arcs proposal promote/drop` or `arcs knowledge upsert`; the orchestrator applies approved mutations.
|
|
17
17
|
|
|
18
18
|
## Flow
|
|
19
19
|
|
|
@@ -27,12 +27,12 @@ flowchart TD
|
|
|
27
27
|
B -->|No| C[Pick highest-degree proposal]
|
|
28
28
|
C --> D[Read structuralFacts + suggestedDedupCandidates]
|
|
29
29
|
D --> E{Verdict}:::decision
|
|
30
|
-
E -->|drop| F[
|
|
30
|
+
E -->|drop| F[Propose drop command + reason]
|
|
31
31
|
E -->|keep| G[Author title + summary + body]
|
|
32
32
|
E -->|merge| H[Identify dedup target id]
|
|
33
33
|
H --> I[Author append-style body]
|
|
34
|
-
I --> J[
|
|
35
|
-
G --> K[
|
|
34
|
+
I --> J[Propose merge command]
|
|
35
|
+
G --> K[Propose promote command]
|
|
36
36
|
F --> L{Budget left?}
|
|
37
37
|
J --> L
|
|
38
38
|
K --> L
|
|
@@ -57,7 +57,7 @@ Promote as a fresh knowledge entry when ALL of:
|
|
|
57
57
|
|
|
58
58
|
### Drop
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
Propose `arcs proposal drop` when ANY of:
|
|
61
61
|
|
|
62
62
|
- `structuralFacts.fileTypeBreakdown` has zero code (all `.md`, `.mdx`, `.txt`, `.html` templates, skill files). T007 should already filter these — drop is defense-in-depth.
|
|
63
63
|
- Cluster covers test directories only (`test/`, `__tests__/`, `*.test.ts`, `*.spec.ts`, `tests/`).
|
|
@@ -70,7 +70,7 @@ Always pass a `--reason` string. The reason is durable on the proposal-store led
|
|
|
70
70
|
|
|
71
71
|
### Merge
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Propose `arcs proposal promote --merge-with=<existing-id>` when:
|
|
74
74
|
|
|
75
75
|
- `suggestedDedupCandidates` lists an existing knowledge entry whose `kind` matches the proposal's natural kind, AND
|
|
76
76
|
- The proposal adds genuinely new structural facts the existing entry does not already document (e.g. precise degree numbers, additional top hubs, cross-module edges, fileCount).
|
|
@@ -113,17 +113,17 @@ Always pass `--source-files` listing the files in `structuralFacts.fileList` (or
|
|
|
113
113
|
|
|
114
114
|
- **Cap at 12 enrichments per session.** If proposals list exceeds 12, drop low-signal entries en masse before enriching the keep set.
|
|
115
115
|
- **Process highest-degree clusters first.** Sort proposals by `structuralFacts.degree` descending; the top 3–5 carry most of the value.
|
|
116
|
-
- **Bulk
|
|
116
|
+
- **Bulk-triage early.** Proposing drops for obvious noise in one pass is cheaper than enriching one and discovering the next is also noise.
|
|
117
117
|
- **Stop early on budget.** If the agent has spent ~12 enrichments, drop the remainder with reason `"session budget exhausted; reconsider next sync"` rather than producing rushed entries.
|
|
118
118
|
|
|
119
119
|
## Failure Modes
|
|
120
120
|
|
|
121
121
|
| Symptom | Recovery |
|
|
122
122
|
|-----------------------------------------------------------|------------------------------------------------------------------------------------------------|
|
|
123
|
-
|
|
|
123
|
+
| Proposed merge target no longer exists at apply time | Orchestrator rejects it; return for re-audit rather than changing the command during apply. |
|
|
124
124
|
| Body too long for shell argv (errno E2BIG / argv overflow)| Switch to `--body-file=path/to/body.md` or pipe via `--body-stdin`. |
|
|
125
|
-
|
|
|
126
|
-
|
|
|
125
|
+
| Proposal disappears before return | Re-list read-only, omit it, and report the race. |
|
|
126
|
+
| Proposed entry would miss graph edges | Verify `--source-files` is present and points at real paths under the project root. |
|
|
127
127
|
| `structuralFacts` field absent | Treat as drop candidate — proposal has no evidence to enrich from. |
|
|
128
128
|
| Verdict drift: same proposal triaged twice in one session | Re-list with `arcs proposal list --json` — the store is the single source of truth. |
|
|
129
129
|
|
|
@@ -132,8 +132,8 @@ Always pass `--source-files` listing the files in `structuralFacts.fileList` (or
|
|
|
132
132
|
- **Do not invent structural facts** not present in `structuralFacts`. If real-code grounding is needed, defer to `arcs context <slug> --audience=<role>` or `arcs related <slug> <id>` and read source. Hallucinated graph facts poison every downstream retrieval.
|
|
133
133
|
- **Always specify `--source-files`** on promote — graph-retrieval depends on it (per AGENTS.md "Knowledge gravity"). An entry without source files is a leaf with no inbound edges.
|
|
134
134
|
- **Never edit `.mmd` files** directly — diagram ownership rules in AGENTS.md still apply during enrichment.
|
|
135
|
-
- **No batch promote.** Each promote is one decision
|
|
136
|
-
- **Preserve proposal IDs in
|
|
135
|
+
- **No batch promote.** Each proposed promote is one decision and one command. Bulk promotion bypasses dedup checks and per-proposal review.
|
|
136
|
+
- **Preserve proposal IDs in summaries** when reporting back so the human can audit the verdict ledger.
|
|
137
137
|
|
|
138
138
|
## Worked Example
|
|
139
139
|
|
|
@@ -141,11 +141,11 @@ Always pass `--source-files` listing the files in `structuralFacts.fileList` (or
|
|
|
141
141
|
# 1. List pending proposals (highest-degree first by default)
|
|
142
142
|
arcs proposal list arcs --json
|
|
143
143
|
|
|
144
|
-
# 2.
|
|
144
|
+
# 2. PROPOSED_MUTATIONS: drop obvious noise
|
|
145
145
|
arcs proposal drop arcs prop_test_dirs_only \
|
|
146
146
|
--reason="cluster covers test/ only — defense in depth past T007 filter" --json
|
|
147
147
|
|
|
148
|
-
# 3.
|
|
148
|
+
# 3. PROPOSED_MUTATIONS: promote a keep verdict with full enrichment
|
|
149
149
|
arcs proposal promote arcs prop_storage_hub \
|
|
150
150
|
--title="Storage hub re-exporting helpers to all persistent stores" \
|
|
151
151
|
--summary="Central re-export point for nowISO and sanitizeFileRefs used by task/plan/knowledge stores; edits ripple through every persistent surface." \
|
|
@@ -154,17 +154,16 @@ arcs proposal promote arcs prop_storage_hub \
|
|
|
154
154
|
--source-files=src/utils/storage-utils.ts,src/utils/task-store.ts,src/utils/plan-store.ts,src/utils/knowledge-store.ts \
|
|
155
155
|
--json
|
|
156
156
|
|
|
157
|
-
# 4.
|
|
157
|
+
# 4. PROPOSED_MUTATIONS: merge into an existing entry
|
|
158
158
|
arcs proposal promote arcs prop_cli_registry \
|
|
159
159
|
--merge-with=cli-registry-pattern-handlers-typed-via-parsedparams \
|
|
160
160
|
--body-file=/tmp/cli-registry-graph-evidence.md \
|
|
161
161
|
--source-files=src/cli/command-registry.ts,src/cli/index.ts \
|
|
162
162
|
--json
|
|
163
163
|
|
|
164
|
-
#
|
|
165
|
-
arcs proposal list arcs --json # expect data.proposals == []
|
|
164
|
+
# Return these commands without executing them; the orchestrator applies approved mutations.
|
|
166
165
|
```
|
|
167
166
|
|
|
168
167
|
## Exit
|
|
169
168
|
|
|
170
|
-
|
|
169
|
+
Return `PROPOSED_MUTATIONS:` with one stable proposal ID, verdict, rationale, and exact command per item. Do not execute `arcs knowledge upsert` or proposal mutations. Surface a one-line summary to the orchestrator: proposed keeps N, merges M, drops K, deferred D.
|