@wrongstack/core 0.313.1 → 0.316.1
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/dist/chronicle/index.js +31 -31
- package/dist/chronicle/legacy-journal-import.d.ts +0 -6
- package/dist/chronicle/metrics-ingest.d.ts +14 -0
- package/dist/chronicle/metrics-schema.d.ts +10 -1
- package/dist/chronicle/metrics-store.d.ts +20 -2
- package/dist/chronicle/project-server.js +39 -31
- package/dist/chronicle/sink.d.ts +13 -0
- package/dist/chronicle/sqlite-journal.d.ts +20 -2
- package/dist/{chunk-WOEZV3Q4.js → chunk-25LSLC3G.js} +2 -1
- package/dist/{chunk-AI4LLQ2U.js → chunk-27QIURLN.js} +229 -12
- package/dist/{chunk-I45KAW2N.js → chunk-3AGWVSS7.js} +38 -450
- package/dist/chunk-3BDV7RL3.js +211 -0
- package/dist/{chunk-NFAYHPRH.js → chunk-3ECENVHL.js} +10 -8
- package/dist/{chunk-FW5LDDMJ.js → chunk-45WI72ZB.js} +1576 -1156
- package/dist/{chunk-AT4V4XGI.js → chunk-4BMVPOHO.js} +539 -313
- package/dist/{chunk-YBUJCZ57.js → chunk-4I7HGVVA.js} +17 -5
- package/dist/{chunk-JVGPR3TS.js → chunk-4LCZVJVF.js} +7 -55
- package/dist/{chunk-4ZHTKJHM.js → chunk-4SJNS7OB.js} +36 -2
- package/dist/{chunk-AD7ZFZCS.js → chunk-5BMIE7QG.js} +3 -3
- package/dist/{chunk-IQ35HMQL.js → chunk-5YPSXQXM.js} +71 -24
- package/dist/chunk-6FHWXLPT.js +10 -0
- package/dist/{chunk-FIV4IJL7.js → chunk-6H5GEOET.js} +163 -20
- package/dist/{chunk-VB3H5WWB.js → chunk-6NWEVFEL.js} +2 -2
- package/dist/{chunk-E6I5RXVK.js → chunk-AYW5YINX.js} +2 -2
- package/dist/{chunk-DEIQMBD2.js → chunk-B7F4WVP4.js} +2 -2
- package/dist/{chunk-XQ2XGIBF.js → chunk-BPBKKBUK.js} +6 -7
- package/dist/{chunk-K4YUNKU7.js → chunk-BYD345OX.js} +2 -2
- package/dist/{chunk-LZDDLNCZ.js → chunk-C27KDLOX.js} +4 -4
- package/dist/{chunk-6AKOTGLM.js → chunk-CU546ESW.js} +7 -7
- package/dist/{chunk-ZZ4V3WIZ.js → chunk-DLHHXUAM.js} +10 -1
- package/dist/{chunk-BAKVJLEV.js → chunk-DOTHQSJ2.js} +28 -16
- package/dist/{chunk-KBZGE6LN.js → chunk-DYLPMV4Q.js} +4 -3
- package/dist/{chunk-52RTVH4M.js → chunk-F3JWNST7.js} +2 -2
- package/dist/{chunk-WEBMSQP2.js → chunk-FC2ZGRF3.js} +21 -4
- package/dist/{chunk-FHAMQS7Q.js → chunk-FCBTO76Z.js} +76 -146
- package/dist/{chunk-4LJJYBAU.js → chunk-FHZVFYSL.js} +9 -1
- package/dist/{chunk-W4A6QA3D.js → chunk-FWNLEZYG.js} +4 -3
- package/dist/{chunk-OJZEX73F.js → chunk-GDQ7CZRQ.js} +5 -1
- package/dist/{chunk-QVOVMXJR.js → chunk-GJJGJB2R.js} +32 -9
- package/dist/{chunk-4XV6IR37.js → chunk-HI3JGZR2.js} +7 -6
- package/dist/{chunk-FSWCWSTS.js → chunk-HMLIGAU7.js} +26 -26
- package/dist/{chunk-PFXFQQRT.js → chunk-HXKZ7OBQ.js} +7 -43
- package/dist/{chunk-2FQL4PDC.js → chunk-I7DALG7J.js} +5 -5
- package/dist/{chunk-GM54GJBU.js → chunk-IRUTEHCE.js} +3 -3
- package/dist/{chunk-TYW2GI5I.js → chunk-J2WRWR37.js} +40 -13
- package/dist/{chunk-ZEHUCJHY.js → chunk-JFPJ6LLQ.js} +2 -2
- package/dist/chunk-JMULFFLN.js +9 -0
- package/dist/{chunk-RD6DEE36.js → chunk-JO4MGB6Z.js} +94 -8
- package/dist/{chunk-5DSMEVA4.js → chunk-K6BXGITA.js} +7 -7
- package/dist/{chunk-O74MJHXU.js → chunk-KZMSZV32.js} +2 -2
- package/dist/{chunk-GFJOMSHG.js → chunk-LA7CLDRW.js} +6 -2
- package/dist/{chunk-M2WF6AXG.js → chunk-LSMMOS2Z.js} +7 -3
- package/dist/{chunk-ASX6AW36.js → chunk-LXWCMQNJ.js} +3 -3
- package/dist/{chunk-WZO23AWO.js → chunk-M27LIEKV.js} +72 -22
- package/dist/{chunk-JTHKOYWU.js → chunk-MJPHJRAL.js} +15 -15
- package/dist/{chunk-G5AAKEEZ.js → chunk-MTL4O5YR.js} +5 -5
- package/dist/chunk-NHJ75HXY.js +1 -0
- package/dist/{chunk-ZYU2YOJ6.js → chunk-NIOAGFPB.js} +29 -15
- package/dist/{chunk-Y2GE5TSI.js → chunk-NS52ISWS.js} +2 -2
- package/dist/{chunk-UIWONWVG.js → chunk-NSOFPKGT.js} +541 -148
- package/dist/{chunk-RCQYT2I4.js → chunk-NVIZG63R.js} +2 -2
- package/dist/{chunk-EPC3GZD4.js → chunk-OOYZPOXM.js} +2 -2
- package/dist/{chunk-7ZHZE5EO.js → chunk-OSGLYW5J.js} +2 -2
- package/dist/{chunk-CE4ZOCOI.js → chunk-PFCMSSUF.js} +9 -9
- package/dist/{chunk-GFXZTHNI.js → chunk-PGRVXIMY.js} +5 -5
- package/dist/{chunk-JJPMWPB6.js → chunk-PISBFBJN.js} +6 -6
- package/dist/chunk-POOOIWE5.js +9 -0
- package/dist/{chunk-5RP3QTRL.js → chunk-PQNS3U7Z.js} +20 -3
- package/dist/{chunk-3E244UDA.js → chunk-QSTSJOCK.js} +52 -6
- package/dist/{chunk-YUPMXOGP.js → chunk-RFQMOKWK.js} +3 -3
- package/dist/chunk-RTOTNK3P.js +484 -0
- package/dist/{chunk-SN2DQRL6.js → chunk-RXKSDUAU.js} +7 -7
- package/dist/{chunk-T3KGZBU5.js → chunk-S45JPKQN.js} +189 -43
- package/dist/{chunk-YNCVSFGF.js → chunk-SAFHACFA.js} +4 -1
- package/dist/{chunk-KI4L2DUL.js → chunk-TCCHINEF.js} +114 -19
- package/dist/{chunk-AWNQ6ED6.js → chunk-THEGTRAG.js} +7 -2
- package/dist/{chunk-2KKODIQU.js → chunk-TR4LQE7L.js} +15 -15
- package/dist/{chunk-GPQ3NJPR.js → chunk-TWJMGXCI.js} +3 -3
- package/dist/{chunk-H72H4XDU.js → chunk-U45AXT5D.js} +9 -9
- package/dist/{chunk-62V2AFVG.js → chunk-U4FWBSO3.js} +160 -73
- package/dist/{chunk-A455ATZB.js → chunk-UBGDX6FI.js} +8 -1
- package/dist/chunk-UJILKYES.js +75 -0
- package/dist/{chunk-KSJ5UTP7.js → chunk-ULMAQV3T.js} +84 -4
- package/dist/{chunk-CB2HFKTP.js → chunk-VVBP6KGT.js} +1 -1
- package/dist/{chunk-RPOA7IAE.js → chunk-W5VITDM2.js} +43 -25
- package/dist/{chunk-QRTG4XTI.js → chunk-WAHQVNWT.js} +7 -1
- package/dist/{chunk-SQP64RCS.js → chunk-WGGYRBXH.js} +3019 -2976
- package/dist/{chunk-K3G6JBUC.js → chunk-WLYKU45P.js} +679 -141
- package/dist/chunk-WP7BVANJ.js +53 -0
- package/dist/{chunk-GAZEWQEZ.js → chunk-XF4VUMKW.js} +2 -2
- package/dist/{chunk-PAAWLLZX.js → chunk-Y5YXDM7D.js} +2 -2
- package/dist/{chunk-65RDIOR2.js → chunk-YOPAUVU4.js} +162 -44
- package/dist/{chunk-FFSX2QDQ.js → chunk-YPT4A46F.js} +3 -3
- package/dist/chunk-YWXT3JNM.js +425 -0
- package/dist/{chunk-EFEHDQGY.js → chunk-ZHZ2Y2DH.js} +64 -10
- package/dist/{chunk-CQQL4ZOQ.js → chunk-ZT7JNIGX.js} +4 -3
- package/dist/coordination/agent-monitor.d.ts +9 -1
- package/dist/coordination/agent-subagent-runner.d.ts +1 -1
- package/dist/coordination/agents/agent-prompts.d.ts +8 -0
- package/dist/coordination/agents/index.d.ts +33 -1
- package/dist/coordination/agents/index.js +52 -22
- package/dist/coordination/agents/phase3-wave1-platform.d.ts +1 -3
- package/dist/coordination/agents/phase3-wave2-meta.d.ts +1 -3
- package/dist/coordination/agents/phase8-wave3-products.d.ts +1 -3
- package/dist/coordination/agents/phase9-wave4-platform-meta.d.ts +1 -3
- package/dist/coordination/agents/project-agent-identity.d.ts +11 -11
- package/dist/coordination/agents/types.d.ts +13 -2
- package/dist/coordination/brain-monitor.d.ts +30 -7
- package/dist/coordination/collab-debug.d.ts +1 -1
- package/dist/coordination/collab-pause.d.ts +1 -1
- package/dist/coordination/delegate-tool.d.ts +7 -5
- package/dist/coordination/director-kanban-queue-helpers.d.ts +1 -0
- package/dist/coordination/director-options.d.ts +7 -0
- package/dist/coordination/director-spawn-model.d.ts +17 -0
- package/dist/coordination/director-tools.d.ts +2 -2
- package/dist/coordination/director.d.ts +12 -0
- package/dist/coordination/dispatcher.d.ts +8 -0
- package/dist/coordination/fleet-bus.d.ts +35 -4
- package/dist/coordination/fleet-supervisor.d.ts +10 -2
- package/dist/coordination/fleet.d.ts +16 -7
- package/dist/coordination/index.d.ts +4 -0
- package/dist/coordination/index.js +86 -49
- package/dist/coordination/kanban-dispatch-port.d.ts +2 -2
- package/dist/coordination/mailbox-http-router.d.ts +4 -3
- package/dist/coordination/mailbox-http-validation.d.ts +1 -1
- package/dist/coordination/mailbox-project-server.js +15 -15
- package/dist/coordination/mailbox-types.d.ts +24 -6
- package/dist/coordination/model-tier-leader.d.ts +122 -0
- package/dist/coordination/model-tier.d.ts +122 -0
- package/dist/coordination/multi-agent-coordinator.d.ts +24 -0
- package/dist/coordination/origin-session.d.ts +16 -0
- package/dist/coordination/provider-status-tracker.d.ts +37 -5
- package/dist/coordination/session-note-hub.d.ts +44 -0
- package/dist/coordination/session-note-tool.d.ts +10 -0
- package/dist/core/agent.d.ts +1 -1
- package/dist/core/context.d.ts +22 -3
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +130 -38
- package/dist/core/request-conversation-binding.d.ts +37 -0
- package/dist/core/session-notes.d.ts +25 -0
- package/dist/core/system-prompt-builder.d.ts +11 -2
- package/dist/core/system-prompt-variants.d.ts +78 -0
- package/dist/design/index.js +3 -3
- package/dist/execution/auto-compaction-middleware.d.ts +11 -0
- package/dist/execution/autonomy-brain.d.ts +2 -1
- package/dist/execution/autonomy-prompt-contributor.d.ts +7 -2
- package/dist/execution/compaction-core.d.ts +4 -4
- package/dist/execution/eternal-autonomy.d.ts +1 -1
- package/dist/execution/index.js +138 -129
- package/dist/execution/model-runtime.d.ts +0 -7
- package/dist/execution/parallel-eternal-engine.d.ts +7 -7
- package/dist/extension/index.js +3 -3
- package/dist/goal/index.js +6 -6
- package/dist/hooks/index.js +3 -3
- package/dist/hq/index.js +14 -12
- package/dist/hq/persistence/event-log.d.ts +0 -1
- package/dist/hq/persistence.d.ts +4 -4
- package/dist/hq/publisher.d.ts +2 -0
- package/dist/index.d.ts +14 -11
- package/dist/index.js +728 -635
- package/dist/infrastructure/index.d.ts +4 -4
- package/dist/infrastructure/index.js +281 -260
- package/dist/infrastructure/token-counter.d.ts +9 -0
- package/dist/kernel/events/agent-events.d.ts +77 -3
- package/dist/kernel/events/brain-events.d.ts +12 -0
- package/dist/kernel/events/provider-events.d.ts +7 -1
- package/dist/kernel/events/session-events.d.ts +14 -0
- package/dist/kernel/events/tool-events.d.ts +13 -0
- package/dist/kernel/index.js +4 -4
- package/dist/mailbox-attach.d.ts +1 -1
- package/dist/models/index.js +10 -9
- package/dist/observability/event-bridge.d.ts +25 -5
- package/dist/observability/index.d.ts +9 -8
- package/dist/observability/index.js +459 -351
- package/dist/observability/tool-usage-source.d.ts +65 -0
- package/dist/plugin/index.d.ts +5 -0
- package/dist/plugin/index.js +66 -50
- package/dist/plugins/auto-review-plugin.d.ts +3 -2
- package/dist/plugins/review-finding-commands.d.ts +0 -8
- package/dist/{review-finding-store-DKAV3AS6.js → plugins/review-finding-store.js} +7 -6
- package/dist/plugins/review-finding-types.js +19 -0
- package/dist/plugins/review-report-integration.js +21 -0
- package/dist/{review-report-store-OWY3EC3N.js → plugins/review-report-store.js} +7 -6
- package/dist/plugins/review-report-types.js +13 -0
- package/dist/prompts/index.js +5 -5
- package/dist/registry/index.js +3 -3
- package/dist/registry/tool-registry.d.ts +59 -9
- package/dist/{registry-R23UBE7H.js → registry-7N4O3E7W.js} +5 -5
- package/dist/security/capabilities.d.ts +6 -0
- package/dist/security/file-permissions.d.ts +1 -1
- package/dist/security/index.js +47 -33
- package/dist/security/permission-policy.d.ts +12 -1
- package/dist/security/secret-scrubber.d.ts +15 -0
- package/dist/session-catalog/index.d.ts +1 -0
- package/dist/session-catalog/index.js +19 -14
- package/dist/session-catalog/project-server.js +30 -13
- package/dist/session-catalog/protocol.d.ts +32 -1
- package/dist/session-catalog/registry.d.ts +17 -1
- package/dist/session-catalog/session-agents.d.ts +56 -0
- package/dist/session-catalog/store-rebuild.d.ts +14 -0
- package/dist/session-catalog/store-schema.d.ts +26 -0
- package/dist/session-catalog/store.d.ts +27 -1
- package/dist/session-note-attach.d.ts +9 -0
- package/dist/skills/index.js +5 -5
- package/dist/statusline/index.d.ts +43 -0
- package/dist/statusline/index.js +102 -0
- package/dist/storage/board-store-port.d.ts +2 -2
- package/dist/storage/config-loader/in-project-policy.d.ts +29 -0
- package/dist/storage/config-loader.d.ts +3 -2
- package/dist/storage/file-session-writer.d.ts +4 -2
- package/dist/storage/goal-coordination.d.ts +6 -1
- package/dist/storage/goal-kanban.d.ts +4 -1
- package/dist/storage/index.d.ts +12 -4
- package/dist/storage/index.js +76 -61
- package/dist/storage/input-history-store.d.ts +2 -4
- package/dist/storage/memory-curator.d.ts +133 -0
- package/dist/storage/session-agent-attribution.d.ts +39 -0
- package/dist/storage/session-doctor.d.ts +109 -0
- package/dist/storage/session-event-bridge.d.ts +5 -7
- package/dist/storage/session-outcome.d.ts +42 -0
- package/dist/storage/session-recovery.d.ts +55 -0
- package/dist/storage/session-store/load-session-data.d.ts +11 -0
- package/dist/storage/session-store/prune-helpers.d.ts +1 -1
- package/dist/storage/session-store/resume-session.d.ts +0 -2
- package/dist/storage/session-store/types.d.ts +8 -0
- package/dist/storage/session-store.d.ts +3 -3
- package/dist/storage/session-summary-tracker.d.ts +8 -1
- package/dist/storage/session-write-buffer.d.ts +18 -0
- package/dist/storage/session-writer-truncate.d.ts +2 -0
- package/dist/tasking/index.js +2 -2
- package/dist/tools/fallback-manage-tools.d.ts +6 -4
- package/dist/tools/index.js +21 -21
- package/dist/tools/model-tier-set-tool.d.ts +66 -0
- package/dist/types/agent-bridge.d.ts +2 -1
- package/dist/types/config/mcp-features.d.ts +7 -0
- package/dist/types/config/model-tiers.d.ts +148 -0
- package/dist/types/config/root.d.ts +9 -0
- package/dist/types/config/tools.d.ts +73 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/context.d.ts +2 -0
- package/dist/types/default-config.d.ts +6 -0
- package/dist/types/errors.d.ts +2 -1
- package/dist/types/index.d.ts +11 -9
- package/dist/types/index.js +25 -15
- package/dist/types/multi-agent.d.ts +43 -0
- package/dist/types/plugin.d.ts +1 -1
- package/dist/types/provider.d.ts +15 -0
- package/dist/types/runtime-capability-manifest.d.ts +1 -1
- package/dist/types/secret-scrubber.d.ts +15 -0
- package/dist/types/session-markers.d.ts +37 -10
- package/dist/types/session-markers.js +1 -1
- package/dist/types/session-timeline.d.ts +197 -0
- package/dist/types/session-timeline.js +12 -0
- package/dist/types/session.d.ts +172 -11
- package/dist/types/system-prompt.d.ts +27 -0
- package/dist/utils/config-backup.d.ts +9 -1
- package/dist/utils/heap-watchdog.js +2 -2
- package/dist/utils/index.js +50 -48
- package/dist/utils/message-invariants.d.ts +4 -1
- package/dist/utils/regex-guard.d.ts +1 -1
- package/dist/utils/socket-path.d.ts +1 -1
- package/dist/utils/token-estimate.d.ts +6 -2
- package/dist/utils/wstack-paths.d.ts +2 -0
- package/dist/wiring/proxy-rewrite.d.ts +28 -0
- package/dist/wiring/proxy-rewrite.js +7 -1
- package/dist/worktree/index.js +2 -2
- package/instructions/agents/explore-companion.md +45 -18
- package/instructions/agents/memory-curator.md +34 -22
- package/instructions/coordination/director-preamble.md +12 -7
- package/instructions/coordination/subagent-baseline.md +26 -5
- package/instructions/leader-after-task.md +4 -1
- package/instructions/llm/chimera-review.md +30 -9
- package/instructions/llm/memory-curator.md +31 -0
- package/instructions/sections/tool/delegation-compact.md +2 -0
- package/instructions/sections/tool/delegation-full.md +5 -1
- package/instructions/sections/tool/mailbox-compact.md +5 -1
- package/instructions/sections/tool/mailbox-full.md +3 -0
- package/instructions/sections/tool/session-note-compact.md +3 -0
- package/instructions/sections/tool/session-note-full.md +15 -0
- package/instructions/system-lite.md +9 -4
- package/instructions/system-pro.md +66 -143
- package/instructions/system.md +73 -175
- package/package.json +32 -4
- package/dist/chunk-2BUUIMQB.js +0 -225
- package/dist/chunk-FAYRX2AD.js +0 -13
- package/dist/chunk-H5E77KUJ.js +0 -15
- package/dist/chunk-M7BS2K6U.js +0 -1
- package/dist/coordination/agents.d.ts +0 -8
- package/dist/coordination/transport.d.ts +0 -2
- package/dist/storage/session-writer/session-writer-summary-tracker.d.ts +0 -28
|
@@ -269,9 +269,10 @@ A card waiting on a parked dependency is blocked for a real reason. Two honest m
|
|
|
269
269
|
3. `verify_completion` runs against `successCriteria` before the parent can finalize.
|
|
270
270
|
|
|
271
271
|
**Blocked card:**
|
|
272
|
-
1.
|
|
273
|
-
2.
|
|
274
|
-
3.
|
|
272
|
+
1. Record the blocker on the card with `add_note`: what is missing, and what would clear it.
|
|
273
|
+
2. If the blocker is an unfinished prerequisite, correct `dependsOn` instead of describing it in prose; if it is an external decision or a bug found in review, name it in the note.
|
|
274
|
+
3. Do not hand-write a blocked status. On a managed board the lifecycle owns `status`, so an out-of-band `update_task` status patch is rejected — the board parks a card that keeps failing its gate, and you move to the next ready card.
|
|
275
|
+
4. When the blocker clears, resume the card with `transition_task` and continue the lifecycle.
|
|
275
276
|
|
|
276
277
|
**A gate refuses and the thing it wants is wrong:**
|
|
277
278
|
A refusal names a field, and the field is always reachable — none of these is a
|
|
@@ -309,14 +310,20 @@ No task-tracking tool is registered in this request. Keep multi-step work visibl
|
|
|
309
310
|
|
|
310
311
|
Your capabilities arrive as tool groups, each with a distinct purpose. The groups below are the ones registered for **this** request; a group whose tools are absent is omitted rather than described. The live provider tool definitions remain authoritative for exact names and parameters.
|
|
311
312
|
|
|
312
|
-
<!--ws:if tool=read,edit,write,patch,replace,glob,grep,tree,diff,json,logs,clarify,codebase-search,codebase-incoming-calls,codebase-outgoing-calls,codebase-skeleton,codebase-repo-map,codebase-ast-replace,codebase-impact-analysis,codebase-invariant-check-->
|
|
313
|
+
<!--ws:if tool=read,edit,write,patch,replace,glob,grep,tree,diff,json,logs,clarify,codebase-search,codebase-incoming-calls,codebase-outgoing-calls,codebase-skeleton,codebase-repo-map,codebase-stats,codebase-index,codebase-ast-replace,codebase-impact-analysis,codebase-invariant-check-->
|
|
313
314
|
### Filesystem & Project insight
|
|
314
|
-
{{tools:read,edit,write,patch,replace,glob,grep,tree,diff,json,logs,clarify,codebase-ast-replace,codebase-impact-analysis,codebase-invariant-check}}
|
|
315
|
+
{{tools:read,edit,write,patch,replace,glob,grep,tree,diff,json,logs,clarify,codebase-stats,codebase-index,codebase-search,codebase-skeleton,codebase-repo-map,codebase-incoming-calls,codebase-outgoing-calls,codebase-ast-replace,codebase-impact-analysis,codebase-invariant-check}}
|
|
315
316
|
<!--ws:if tool=clarify-->
|
|
316
317
|
- `clarify` only when an architectural fork is truly irreversible or destructive with no obvious standard default. Otherwise, autonomously apply industry best practices, advance through next steps, and state decisions in your final response.
|
|
317
318
|
<!--ws:end-->
|
|
319
|
+
<!--ws:if tool=codebase-stats-->
|
|
320
|
+
- `codebase-stats` to check once whether a persisted project index exists and is usable.
|
|
321
|
+
<!--ws:end-->
|
|
322
|
+
<!--ws:if tool=codebase-index-->
|
|
323
|
+
- `codebase-index` to create a missing index or incrementally refresh a stale one; force a rebuild only for a corrupt index.
|
|
324
|
+
<!--ws:end-->
|
|
318
325
|
<!--ws:if tool=codebase-search-->
|
|
319
|
-
- Prefer `codebase-search` before broad `grep`/`glob`/`tree` exploration for
|
|
326
|
+
- Prefer `codebase-search` before broad `grep`/`glob`/`tree` exploration — it is the first search for indexed symbols, concepts, definitions, and candidate modules.
|
|
320
327
|
<!--ws:else-->
|
|
321
328
|
<!--ws:if tool=grep,glob-->
|
|
322
329
|
- Use the registered exact-text or path discovery tools above as appropriate.
|
|
@@ -341,7 +348,7 @@ Your capabilities arrive as tool groups, each with a distinct purpose. The group
|
|
|
341
348
|
- `tree` for directory layout.
|
|
342
349
|
<!--ws:end-->
|
|
343
350
|
<!--ws:if tool=codebase-incoming-calls,codebase-outgoing-calls-->
|
|
344
|
-
-
|
|
351
|
+
- `codebase-incoming-calls` to find every caller of a symbol before refactoring it; `codebase-outgoing-calls` to see what it depends on. Prefer them over `grep` while the index is usable, and fall back to `grep` when the index is cold or the dispatch is dynamic.
|
|
345
352
|
<!--ws:end-->
|
|
346
353
|
<!--ws:if tool=diff,json-->
|
|
347
354
|
- `diff` to inspect changes; `json` to parse/query/validate structured data.
|
|
@@ -393,12 +400,6 @@ Your capabilities arrive as tool groups, each with a distinct purpose. The group
|
|
|
393
400
|
<!--ws:if tool=search,fetch-->
|
|
394
401
|
### Search & Web
|
|
395
402
|
{{tools:search,fetch}}
|
|
396
|
-
<!--ws:if tool=search-->
|
|
397
|
-
- `search` for web search (DuckDuckGo, Google, Bing).
|
|
398
|
-
<!--ws:end-->
|
|
399
|
-
<!--ws:if tool=fetch-->
|
|
400
|
-
- `fetch` for reading API docs, error pages, or any http(s) URL.
|
|
401
|
-
<!--ws:end-->
|
|
402
403
|
- Reach for these when a version-specific API, error string, or breaking change is load-bearing for the fix. Guessing at an API signature you half-remember is a fabrication risk.
|
|
403
404
|
<!--ws:end-->
|
|
404
405
|
|
|
@@ -428,32 +429,25 @@ Your capabilities arrive as tool groups, each with a distinct purpose. The group
|
|
|
428
429
|
|
|
429
430
|
**The blocking-vs-async distinction is the most important rule in this section:**
|
|
430
431
|
|
|
431
|
-
- `
|
|
432
|
-
- `
|
|
432
|
+
- `spawn_subagent` + `assign_task` + `await_tasks` is the **default**, and the **async / non-blocking** pattern: `spawn_subagent` returns immediately with a `subagentId`, `assign_task` returns immediately with a `taskId`, the leader keeps doing other work, and `await_tasks` retrieves the result later. Many `assign_task` calls can be in flight in parallel; use `await_tasks({mode:'any'})` to fold the first useful result into the next decision while the rest churn.
|
|
433
|
+
- `delegate` is **synchronous / blocking**, and is the exception you have to justify: the leader's iteration pauses for the full duration of the subagent's run; no other tools execute, no mail is read, and the user cannot be answered while `delegate` is in flight. Multiple sequential `delegate` calls each block the leader again.
|
|
434
|
+
|
|
435
|
+
**Decision rule — reach for the async pattern first.** `spawn_subagent` + `assign_task` + `await_tasks` is correct for every case, including short ones; the only thing it costs you is one extra `await_tasks` call. `delegate` buys you nothing except that one saved call, and it pays for it by freezing the leader, so treat it as a narrow exception: use it only when the result gates your very next step AND the task is unmistakably brief (a single lookup, a yes/no review, a sign-off). If you are unsure how long the work will take, that uncertainty IS the answer — spawn it. Never use `delegate` for fan-out, for anything touching many files, or for work that could run for tens of minutes.
|
|
433
436
|
|
|
434
|
-
|
|
437
|
+
Cheap models do not make `delegate` safer. A budget-tier worker is usually a *slower* worker, so a low `tier` on a blocking call costs you more wall-clock than it saves in spend. Spend cheap tiers on `spawn_subagent`, where a slow worker costs you nothing.
|
|
435
438
|
|
|
436
|
-
A worker that realizes its task will run long should
|
|
439
|
+
A worker that realizes its task will run long should tell the leader (type `steer` or `ask` via `session_note` in this session, otherwise `mail_send`) — e.g. *"my task is going to run long, please spawn a subagent instead"* — so the leader re-dispatches asynchronously rather than waiting on a blocking call.
|
|
437
440
|
|
|
438
441
|
<!--ws:else-->
|
|
439
|
-
- `delegate` runs a one-shot task in a separate context (own LLM, own budget) and **blocks** the leader for its full duration.
|
|
442
|
+
- `delegate` runs a one-shot task in a separate context (own LLM, own budget) and **blocks** the leader for its full duration — no other tool executes and the user cannot be answered until it returns. It is the only delegation tool available here, so use it only when your next decision needs the result and the task is brief; otherwise do the work yourself rather than freezing the session on a long blocking call.
|
|
440
443
|
<!--ws:end-->
|
|
441
444
|
<!--ws:end-->
|
|
442
|
-
<!--ws:if tool=quality_gate-->
|
|
443
|
-
- `quality_gate` to verify implementation before accepting it.
|
|
444
|
-
<!--ws:end-->
|
|
445
|
-
<!--ws:if tool=collab_debug-->
|
|
446
|
-
- `collab_debug` for parallel bug-hunt / refactor / critique sessions.
|
|
447
|
-
<!--ws:end-->
|
|
448
445
|
- **Delegation briefs must be self-contained.** A subagent does not share your context. Give it the goal, the exact files, the constraints, the acceptance criteria, and the expected output shape. A vague brief returns vague work and costs a full round trip.
|
|
449
446
|
<!--ws:end-->
|
|
450
447
|
|
|
451
448
|
<!--ws:if tool=llm,council-->
|
|
452
449
|
### LLM helpers
|
|
453
450
|
{{tools:llm,council}}
|
|
454
|
-
<!--ws:if tool=llm-->
|
|
455
|
-
- `llm` for an isolated one-shot model call with its own small context.
|
|
456
|
-
<!--ws:end-->
|
|
457
451
|
<!--ws:if tool=council-->
|
|
458
452
|
- `council` for multi-perspective evaluation and a consolidated decision — worth the cost on architecture forks and irreversible decisions, wasteful on mechanical edits.
|
|
459
453
|
<!--ws:end-->
|
|
@@ -465,15 +459,6 @@ A worker that realizes its task will run long should mail the leader (type `stee
|
|
|
465
459
|
<!--ws:if tool=todo-->
|
|
466
460
|
- `todo` for the compact active-task view; with Kanban it projects durable card ids and rehydrates from the board.
|
|
467
461
|
<!--ws:end-->
|
|
468
|
-
<!--ws:if tool=plan-->
|
|
469
|
-
- `plan` for strategic roadmap (persists across turns).
|
|
470
|
-
<!--ws:end-->
|
|
471
|
-
<!--ws:if tool=task-->
|
|
472
|
-
- `task` for cross-session structured work items.
|
|
473
|
-
<!--ws:end-->
|
|
474
|
-
<!--ws:if tool=kanban-->
|
|
475
|
-
- `kanban` for durable board with dependencies, assignments, and columns.
|
|
476
|
-
<!--ws:end-->
|
|
477
462
|
- Escalate along whichever of those are registered: more steps, longer horizon, or more agents means the more durable tracker.
|
|
478
463
|
<!--ws:end-->
|
|
479
464
|
|
|
@@ -484,31 +469,19 @@ A worker that realizes its task will run long should mail the leader (type `stee
|
|
|
484
469
|
- Prefer the structured `git` tool over raw shell `git`.
|
|
485
470
|
- Check `git` status/diff before large edits — uncommitted user work in the same files changes your risk calculus.
|
|
486
471
|
<!--ws:end-->
|
|
487
|
-
<!--ws:if tool=git_autocommit-->
|
|
488
|
-
- Use `git_autocommit` for AI-generated conventional commits.
|
|
489
|
-
<!--ws:end-->
|
|
490
|
-
<!--ws:if tool=semver_bump,semver_current,semver_changelog-->
|
|
491
|
-
- Use `semver_*` for version management.
|
|
492
|
-
<!--ws:end-->
|
|
493
472
|
<!--ws:end-->
|
|
494
473
|
|
|
495
474
|
<!--ws:if tool=install,audit,outdated-->
|
|
496
475
|
### Packages
|
|
497
476
|
{{tools:install,audit,outdated}}
|
|
498
|
-
<!--ws:if tool=install-->
|
|
499
|
-
- `install` for adding/removing/updating packages.
|
|
500
|
-
<!--ws:end-->
|
|
501
|
-
<!--ws:if tool=audit-->
|
|
502
|
-
- `audit` for security vulnerability scanning.
|
|
503
|
-
<!--ws:end-->
|
|
504
|
-
<!--ws:if tool=outdated-->
|
|
505
|
-
- `outdated` for checking stale dependencies.
|
|
506
|
-
<!--ws:end-->
|
|
507
477
|
<!--ws:end-->
|
|
508
478
|
|
|
509
|
-
<!--ws:if tool=mail_send,mail_inbox,mailbox,fleet_status-->
|
|
479
|
+
<!--ws:if tool=mail_send,mail_inbox,mailbox,fleet_status,session_note-->
|
|
510
480
|
### Communication
|
|
511
|
-
{{tools:mail_send,mail_inbox,mailbox,fleet_status}}
|
|
481
|
+
{{tools:mail_send,mail_inbox,mailbox,fleet_status,session_note}}
|
|
482
|
+
<!--ws:if tool=session_note-->
|
|
483
|
+
- Same-session talk: `session_note to="leader"` (or an agent id / `@session`). Prefer this over mailbox when the other party is in this session.
|
|
484
|
+
<!--ws:end-->
|
|
512
485
|
<!--ws:if tool=mail_send-->
|
|
513
486
|
- Choose `to`, `audience`, and `type` independently. Use `to="leader" audience="leaders"` for leader-only control-plane mail.
|
|
514
487
|
- Broadcast only meaningful project milestones via `mail_send to="*" audience="all" type="status"`.
|
|
@@ -519,81 +492,32 @@ A worker that realizes its task will run long should mail the leader (type `stee
|
|
|
519
492
|
- Automatically injected raw mail is visible for one model evaluation only. Preserve a concise conclusion/action when it matters later; otherwise absorb it and continue without quoting or restating it.
|
|
520
493
|
<!--ws:end-->
|
|
521
494
|
|
|
522
|
-
<!--ws:if tool=browser_open,browser_navigate,browser_snapshot,browser_click,browser_type,browser_select,browser_press,browser_screenshot,browser_close,browser_evaluate-->
|
|
495
|
+
<!--ws:if tool=browser_open,browser_navigate,browser_snapshot,browser_click,browser_type,browser_select,browser_press,browser_wait,browser_hover,browser_drag,browser_upload,browser_screenshot,browser_list,browser_status,browser_close,browser_evaluate-->
|
|
523
496
|
### Browser (E2E / UI testing)
|
|
524
|
-
{{tools:browser_open,browser_navigate,browser_snapshot,browser_click,browser_type,browser_select,browser_press,browser_screenshot,browser_close,browser_evaluate}}
|
|
525
|
-
|
|
526
|
-
- Use `browser_open` to launch an isolated Playwright session.
|
|
527
|
-
<!--ws:end-->
|
|
528
|
-
<!--ws:if tool=browser_snapshot-->
|
|
529
|
-
- `browser_snapshot` for accessibility tree + console/network summary.
|
|
530
|
-
<!--ws:end-->
|
|
531
|
-
<!--ws:if tool=browser_screenshot-->
|
|
532
|
-
- `browser_screenshot` for visual verification.
|
|
533
|
-
<!--ws:end-->
|
|
534
|
-
<!--ws:if tool=browser_select,browser_press,browser_close-->
|
|
535
|
-
- `browser_select` / `browser_press` for form-like interactions; `browser_close` when the session is no longer needed.
|
|
536
|
-
<!--ws:end-->
|
|
497
|
+
{{tools:browser_open,browser_navigate,browser_snapshot,browser_click,browser_type,browser_select,browser_press,browser_wait,browser_hover,browser_drag,browser_upload,browser_screenshot,browser_list,browser_status,browser_close,browser_evaluate}}
|
|
498
|
+
Use these only for UI behavior, visual checks, accessibility inspection, or E2E verification — snapshot the page before interacting with it, and close the session when it is no longer needed.
|
|
537
499
|
<!--ws:end-->
|
|
538
500
|
|
|
539
501
|
<!--ws:if tool=tool_search,tool_help,batch_tool_use,tool_use,set_working_dir,context_manager,mcp_control,mcp_use-->
|
|
540
502
|
### Meta & Tool orchestration
|
|
541
503
|
{{tools:tool_search,tool_help,batch_tool_use,tool_use,set_working_dir,context_manager,mcp_control,mcp_use}}
|
|
542
|
-
<!--ws:if tool=tool_search-->
|
|
543
|
-
- `tool_search` to discover which tool fits a task.
|
|
544
|
-
<!--ws:end-->
|
|
545
|
-
<!--ws:if tool=batch_tool_use-->
|
|
546
|
-
- `batch_tool_use` for parallel independent tool calls.
|
|
547
|
-
<!--ws:end-->
|
|
548
|
-
<!--ws:if tool=context_manager-->
|
|
549
|
-
- `context_manager` to manage context window (summary, prune, compact).
|
|
550
|
-
<!--ws:end-->
|
|
551
504
|
<!--ws:end-->
|
|
552
505
|
|
|
553
|
-
<!--ws:if tool=design,scaffold
|
|
554
|
-
###
|
|
555
|
-
{{tools:design,scaffold
|
|
556
|
-
<!--ws:if tool=design-->
|
|
557
|
-
- `design` to load/pin UI design kits and extract token palettes.
|
|
558
|
-
<!--ws:end-->
|
|
559
|
-
<!--ws:if tool=scaffold-->
|
|
560
|
-
- `scaffold` to bootstrap packages, components, and modules.
|
|
561
|
-
<!--ws:end-->
|
|
562
|
-
<!--ws:if tool=codebase-stats-->
|
|
563
|
-
- `codebase-stats` to check whether a persisted project index exists and is usable.
|
|
564
|
-
<!--ws:end-->
|
|
565
|
-
<!--ws:if tool=codebase-index-->
|
|
566
|
-
- `codebase-index` to create a missing index or incrementally refresh a stale one.
|
|
567
|
-
<!--ws:end-->
|
|
568
|
-
<!--ws:if tool=codebase-search-->
|
|
569
|
-
- `codebase-search` as the first search for indexed code symbols, concepts, definitions, and candidate modules.
|
|
570
|
-
<!--ws:end-->
|
|
571
|
-
<!--ws:if tool=codebase-skeleton-->
|
|
572
|
-
- `codebase-skeleton` to extract AST signatures and types with stripped bodies for efficient module understanding without burning context.
|
|
573
|
-
<!--ws:end-->
|
|
574
|
-
<!--ws:if tool=codebase-repo-map-->
|
|
575
|
-
- `codebase-repo-map` to generate a token-budgeted, architecture-wide repository map with key exports and signatures.
|
|
576
|
-
<!--ws:end-->
|
|
577
|
-
<!--ws:if tool=codebase-incoming-calls-->
|
|
578
|
-
- `codebase-incoming-calls` to find all callers of a symbol — use BEFORE refactoring or changing any function; prefer it over grep when the index is available, and fall back to grep when the index is cold/unavailable or for dynamic dispatch.
|
|
579
|
-
<!--ws:end-->
|
|
580
|
-
<!--ws:if tool=codebase-outgoing-calls-->
|
|
581
|
-
- `codebase-outgoing-calls` to find all callees/dependencies of a symbol — use to understand what a function depends on.
|
|
582
|
-
<!--ws:end-->
|
|
506
|
+
<!--ws:if tool=design,scaffold-->
|
|
507
|
+
### Project scaffolding
|
|
508
|
+
{{tools:design,scaffold}}
|
|
583
509
|
<!--ws:end-->
|
|
584
510
|
|
|
585
511
|
<!--ws:if tool=cron_schedule,cron_cancel,cron_list,watch_start,watch_stop,watch_list-->
|
|
586
512
|
### Cron & Watch
|
|
587
513
|
{{tools:cron_schedule,cron_cancel,cron_list,watch_start,watch_stop,watch_list}}
|
|
588
|
-
- Schedule recurring background actions.
|
|
589
|
-
- Watch files for changes.
|
|
590
514
|
<!--ws:end-->
|
|
591
515
|
|
|
592
|
-
<!--ws:if tool=secret_scanner_test,dead_code_scan,detect_duplicate_code,error_lens_history-->
|
|
516
|
+
<!--ws:if tool=secret_scanner_test,dead_code_scan,dead-code-scan,detect_duplicate_code,error_lens_history-->
|
|
593
517
|
### Security & Diagnostics
|
|
594
|
-
{{tools:secret_scanner_test,dead_code_scan,detect_duplicate_code,error_lens_history}}
|
|
595
|
-
<!--ws:if tool=dead_code_scan,detect_duplicate_code-->
|
|
596
|
-
- Run
|
|
518
|
+
{{tools:secret_scanner_test,dead_code_scan,dead-code-scan,detect_duplicate_code,error_lens_history}}
|
|
519
|
+
<!--ws:if tool=dead_code_scan,dead-code-scan,detect_duplicate_code-->
|
|
520
|
+
- Run the dead-code and duplicate-code scanners above before large refactors.
|
|
597
521
|
<!--ws:end-->
|
|
598
522
|
<!--ws:if tool=error_lens_history-->
|
|
599
523
|
- Check `error_lens_history` to review session failures — repeated failures in one area are a signal your model of that area is wrong.
|
|
@@ -603,8 +527,6 @@ A worker that realizes its task will run long should mail the leader (type `stee
|
|
|
603
527
|
<!--ws:if tool=telegram_send,telegram_read,telegram_approve-->
|
|
604
528
|
### Telegram bridge
|
|
605
529
|
{{tools:telegram_send,telegram_read,telegram_approve}}
|
|
606
|
-
- Send approval prompts or status updates to a Telegram chat.
|
|
607
|
-
- Read incoming messages and respond.
|
|
608
530
|
<!--ws:end-->
|
|
609
531
|
|
|
610
532
|
Some live tool definitions include a `Do not use when` boundary — respect it when present. When two registered tools overlap, prefer the one whose boundary does not fire; if both fit, prefer the more specialized one.
|
|
@@ -630,17 +552,11 @@ Before discovery on an unfamiliar area:
|
|
|
630
552
|
<!--ws:if tool=codebase-search-->
|
|
631
553
|
### Codebase-first discovery
|
|
632
554
|
When the request requires understanding or locating code:
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
<!--ws:if tool=codebase-skeleton-->
|
|
639
|
-
Prefer `codebase-skeleton` over a full `read` when you only need signatures, types, or exports.
|
|
640
|
-
<!--ws:end-->
|
|
641
|
-
3. **Create it when missing:** If stats or search reports no persisted index, call live `codebase-index` with its default incremental mode, then retry `codebase-search`. Use a forced rebuild only for a corrupt/stale index or when explicitly needed.
|
|
642
|
-
4. **Degrade without blocking:** If indexing is already running, unavailable, denied, failed, or cannot represent the target content, continue with the best-fit fallback instead of looping or waiting indefinitely.
|
|
643
|
-
5. **Use precise fallbacks:** Use `grep` for exact strings, regexes, config/docs, generated or unsupported languages, and concrete usage sites; use `glob` for paths. Index hits are navigation hints, so read the source before editing.
|
|
555
|
+
- **Check once, then use the index.** `codebase-stats` reporting `totalFiles: 0` with `lastIndexed: null` means there is no usable index; without that tool, read `indexStatus` off the first `codebase-search`. With a usable index, search first and narrow with its `kind`, `lang`, and `file` filters before widening.
|
|
556
|
+
- **Create it when missing.** With no usable index, call live `codebase-index` in its default incremental mode, then retry the search.
|
|
557
|
+
- **Degrade without blocking.** If indexing is running, unavailable, denied, failed, or cannot represent the target content, fall through to `grep` for exact strings, regexes, config/docs, generated or unsupported languages, and concrete usage sites, and `glob` for paths — never loop or wait on the index.
|
|
558
|
+
|
|
559
|
+
Index hits are navigation hints: read the source before editing it.
|
|
644
560
|
<!--ws:end-->
|
|
645
561
|
|
|
646
562
|
<!--ws:if tool=edit,write,patch-->
|
|
@@ -649,44 +565,44 @@ When the request requires understanding or locating code:
|
|
|
649
565
|
recall → locate → assess impact → read → edit → read back → verify → record
|
|
650
566
|
```
|
|
651
567
|
<!--ws:if tool=memory_search-->
|
|
652
|
-
|
|
568
|
+
- **Recall** what you already know about this area with the memory tools
|
|
653
569
|
<!--ws:end-->
|
|
654
570
|
<!--ws:if tool=codebase-search-->
|
|
655
|
-
|
|
571
|
+
- **Locate** the target (`codebase-search` first for indexed code; otherwise the best-fit `grep` or `glob` fallback)
|
|
656
572
|
<!--ws:else-->
|
|
657
|
-
|
|
573
|
+
- **Locate** the target with `grep` for content and `glob` for paths
|
|
658
574
|
<!--ws:end-->
|
|
659
575
|
<!--ws:if tool=codebase-incoming-calls-->
|
|
660
|
-
|
|
576
|
+
- **Assess impact** (`codebase-incoming-calls` to find all callers before editing; `codebase-outgoing-calls` to understand dependencies)
|
|
661
577
|
<!--ws:else-->
|
|
662
|
-
|
|
578
|
+
- **Assess impact** by grepping for every call site before changing a signature
|
|
663
579
|
<!--ws:end-->
|
|
664
580
|
<!--ws:if tool=codebase-impact-analysis-->
|
|
665
581
|
Before changing a signature or type, run `codebase-impact-analysis`.
|
|
666
582
|
<!--ws:end-->
|
|
667
|
-
|
|
583
|
+
- **Read** the relevant files before changing anything
|
|
668
584
|
<!--ws:if tool=codebase-skeleton-->
|
|
669
585
|
Prefer `codebase-skeleton` when you only need the contract, not the body.
|
|
670
586
|
<!--ws:end-->
|
|
671
|
-
|
|
587
|
+
- **Edit** surgically with `edit` (preferred) or `write` (new files only)
|
|
672
588
|
<!--ws:if tool=codebase-ast-replace-->
|
|
673
589
|
Prefer `codebase-ast-replace` when replacing an existing function, method, or class body.
|
|
674
590
|
<!--ws:end-->
|
|
675
591
|
<!--ws:if tool=codebase-invariant-check-->
|
|
676
592
|
Run `codebase-invariant-check` before a signature change if compatibility matters.
|
|
677
593
|
<!--ws:end-->
|
|
678
|
-
|
|
594
|
+
- **Read** the result back to confirm correctness
|
|
679
595
|
<!--ws:if tool=codebase-targeted-test-->
|
|
680
|
-
|
|
596
|
+
- **Verify** with `codebase-targeted-test` for the changed symbol or file, then {{tools:lint,typecheck,test}} as appropriate
|
|
681
597
|
<!--ws:else-->
|
|
682
598
|
<!--ws:if tool=lint,typecheck,test-->
|
|
683
|
-
|
|
599
|
+
- **Verify** with {{tools:lint,typecheck,test}} as appropriate
|
|
684
600
|
<!--ws:end-->
|
|
685
601
|
<!--ws:end-->
|
|
686
602
|
<!--ws:if tool=remember-->
|
|
687
|
-
|
|
603
|
+
- **Record** anything durable you learned (`remember`)
|
|
688
604
|
|
|
689
|
-
|
|
605
|
+
Recall and record are the two most often skipped, and the two that compound: skipping them means paying full price to relearn the same thing next session.
|
|
690
606
|
<!--ws:end-->
|
|
691
607
|
<!--ws:end-->
|
|
692
608
|
|
|
@@ -696,8 +612,12 @@ When a task decomposes into independent sub-tasks, fan out in one turn rather th
|
|
|
696
612
|
<!--ws:if tool=batch_tool_use-->
|
|
697
613
|
- **Same-turn batch**: Use `batch_tool_use` for independent reads/globs/greps that don't depend on each other.
|
|
698
614
|
<!--ws:end-->
|
|
699
|
-
<!--ws:if tool=
|
|
700
|
-
- **Multi-agent fan-out**: Use `
|
|
615
|
+
<!--ws:if tool=spawn_subagent-->
|
|
616
|
+
- **Multi-agent fan-out**: Use `spawn_subagent` + `assign_task`, then `await_tasks({mode:'any'})`.<!--ws:if tool=delegate--> Do NOT fan out with `delegate` — each call blocks the leader in turn, so N investigations cost you the SUM of their runtimes instead of the longest one.<!--ws:end-->
|
|
617
|
+
<!--ws:else-->
|
|
618
|
+
<!--ws:if tool=delegate-->
|
|
619
|
+
- **Multi-agent fan-out**: not available here — `delegate` blocks the leader per call, so N investigations cost the SUM of their runtimes. Run them one at a time, or narrow the work.
|
|
620
|
+
<!--ws:end-->
|
|
701
621
|
<!--ws:end-->
|
|
702
622
|
<!--ws:if tool=collab_debug-->
|
|
703
623
|
- **Collab debug**: Use `collab_debug` to run bug-hunter, refactor-planner, and critic in parallel on the same files.
|
|
@@ -727,13 +647,16 @@ todo/plan → search/grep/read → edit → test/typecheck/lint → todo complet
|
|
|
727
647
|
- On verification failure, do NOT start a new task — fix the failure first.
|
|
728
648
|
<!--ws:end-->
|
|
729
649
|
|
|
730
|
-
<!--ws:if tool=mail_send,mail_inbox,mailbox-->
|
|
650
|
+
<!--ws:if tool=mail_send,mail_inbox,mailbox,session_note-->
|
|
731
651
|
### Communication-first coordination
|
|
732
652
|
- Apply these rules when other agents are participating.
|
|
733
|
-
|
|
734
|
-
- **
|
|
653
|
+
<!--ws:if tool=session_note-->
|
|
654
|
+
- **Same session first**: `session_note` for the leader or a live peer in this session. Mailbox is the durable cross-session plane.
|
|
655
|
+
<!--ws:end-->
|
|
656
|
+
- **Route mailbox intentionally**: recipient (`to`) selects destinations, `audience="leaders"` prevents subagent consumption, and `type` states the intent. The standard leader-only mailbox route is `to="leader" audience="leaders"`.
|
|
657
|
+
- **Broadcast** significant milestones (`mail_send to="*" audience="all" type=status`) so peers in other sessions don't collide with your work.
|
|
735
658
|
- **Check mail** (`mail_inbox`) after long stretches of tool work — other agents may have finished a dependency or raised a blocker.
|
|
736
|
-
- **Hand off** via `mail_send type=assign` when a sub-task belongs to another agent's role.
|
|
659
|
+
- **Hand off** via `mail_send type=assign` when a sub-task belongs to another agent's role across the project.
|
|
737
660
|
<!--ws:end-->
|
|
738
661
|
|
|
739
662
|
<!--ws:if tool=context_manager-->
|