@iowarp/clio-coder 0.4.3 → 0.4.4
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/CHANGELOG.md +63 -0
- package/README.md +1 -1
- package/dist/{acp-H2NGRPWO.js → acp-WNAYYF4F.js} +4 -5
- package/dist/{agents-TL5LLUQP.js → agents-3OKXHLOI.js} +33 -31
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-E5SW4HMS.js → auth-VKNNMGPU.js} +10 -11
- package/dist/{builtins-IA7V7FUC.js → builtins-WGALA46I.js} +4 -4
- package/dist/{chunk-F5JHEYZM.js → chunk-23L32XTI.js} +10 -7
- package/dist/{chunk-DWUOQKRU.js → chunk-25QBEXRS.js} +2 -2
- package/dist/{chunk-LLDJM5XK.js → chunk-26QSH3EJ.js} +2 -2
- package/dist/{chunk-N2Z7HLVY.js → chunk-2ASED4PZ.js} +10 -10
- package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
- package/dist/chunk-2DSOYNFC.js +108 -0
- package/dist/{chunk-LDJG7DW3.js → chunk-2ZSONWVL.js} +4 -4
- package/dist/{chunk-GI7YYQ3F.js → chunk-36CT5VVL.js} +324 -41
- package/dist/{chunk-4UVU7BJ5.js → chunk-3GY4F45V.js} +2 -2
- package/dist/{chunk-PUVDKJ2Y.js → chunk-3ODX73FK.js} +3 -5
- package/dist/{chunk-IUE3Y34X.js → chunk-3UNOLWNZ.js} +2 -2
- package/dist/{chunk-6PTFB5VS.js → chunk-3UUXNFEX.js} +8 -4
- package/dist/{chunk-2APPQIER.js → chunk-4M6Z5QVF.js} +4 -4
- package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
- package/dist/{chunk-JGRC33J2.js → chunk-54X7T7DK.js} +12 -3
- package/dist/{chunk-YQWYVTMC.js → chunk-5636DCO5.js} +4 -4
- package/dist/{chunk-7E7I3WLS.js → chunk-57XXR6DR.js} +23 -22
- package/dist/{chunk-7ZYNNDKC.js → chunk-5TUB6SLS.js} +2 -2
- package/dist/{chunk-VW6DOEDG.js → chunk-6OSVSQL5.js} +11 -2
- package/dist/{chunk-L47TF46W.js → chunk-6PAZTBPA.js} +14 -2
- package/dist/{chunk-XIVNBFZS.js → chunk-6Q3CYFD3.js} +34 -16
- package/dist/{chunk-RSJ25QSL.js → chunk-6QOTUPRG.js} +155 -36
- package/dist/{chunk-JKKCYP3C.js → chunk-6UINWWS6.js} +10 -4
- package/dist/{chunk-WBKFA554.js → chunk-72YIHOZQ.js} +2 -2
- package/dist/{chunk-PAJQJ7BS.js → chunk-75W7L2E2.js} +246 -697
- package/dist/{chunk-RRNP2ANY.js → chunk-7UGL4MB5.js} +4 -4
- package/dist/{chunk-EKCHAPYA.js → chunk-AUPNRN7C.js} +2 -2
- package/dist/{chunk-ZDN3Y73Y.js → chunk-BJVFZO5U.js} +6 -48
- package/dist/{chunk-IWT4SF4R.js → chunk-CUSRQKPU.js} +64 -2
- package/dist/{chunk-SKHCAU7K.js → chunk-DQOVN6KV.js} +3 -2
- package/dist/{chunk-ZWPRK62N.js → chunk-DT3LWJOB.js} +4 -4
- package/dist/chunk-DXKJURES.js +671 -0
- package/dist/{chunk-BEPZRGGU.js → chunk-EL24TAU4.js} +2 -2
- package/dist/{chunk-OML5D5V5.js → chunk-ELWDPP3Y.js} +5 -5
- package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
- package/dist/chunk-EXLD33WO.js +381 -0
- package/dist/{chunk-IJNZMHLA.js → chunk-FEAXX7B6.js} +2 -2
- package/dist/{chunk-TM6LQDI3.js → chunk-FFUPXJC4.js} +74 -323
- package/dist/chunk-GX5WYQO4.js +59 -0
- package/dist/chunk-I2DWJ4GM.js +390 -0
- package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
- package/dist/chunk-IRXAATOX.js +539 -0
- package/dist/chunk-IXIY2H4R.js +44 -0
- package/dist/{chunk-KK4JZPBQ.js → chunk-IZXGRF7P.js} +76 -10
- package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
- package/dist/{chunk-INY6HTFL.js → chunk-JEIYHLOR.js} +2 -2
- package/dist/{chunk-MUW2BDDH.js → chunk-JQLNNIKT.js} +2 -2
- package/dist/{chunk-XPWWI35G.js → chunk-JSD46VO2.js} +19 -8
- package/dist/{chunk-VA5FNYMT.js → chunk-JT2RFCC5.js} +39 -2
- package/dist/{chunk-V2ANDPVT.js → chunk-K6T2ZAMZ.js} +168 -6
- package/dist/{chunk-B4OAX3SI.js → chunk-KFV5L5SK.js} +13 -6
- package/dist/{chunk-JEQ3XTHC.js → chunk-LLXSDWXS.js} +2 -2
- package/dist/{chunk-E3TPLWFX.js → chunk-LTIKRKFL.js} +3 -3
- package/dist/{chunk-NIQJ66N4.js → chunk-N56KALIC.js} +17 -17
- package/dist/{chunk-JDAY6FIL.js → chunk-NAI6ZFCY.js} +13 -9
- package/dist/{chunk-AF4YM7Z4.js → chunk-NRO2BJRH.js} +2490 -2182
- package/dist/{chunk-WRBAGUNF.js → chunk-NXIMQY5W.js} +2 -2
- package/dist/{chunk-I7ZPNEJM.js → chunk-NXYCB2VD.js} +5 -5
- package/dist/chunk-ODGTEFFI.js +50 -0
- package/dist/{chunk-2VIKGWFZ.js → chunk-OEJSLEPW.js} +2 -2
- package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
- package/dist/{chunk-54CBCGIR.js → chunk-Q4WO54TA.js} +132 -77
- package/dist/{chunk-B4VEBZKF.js → chunk-QUFRYSWI.js} +12 -6
- package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
- package/dist/{chunk-HEQY7ZFI.js → chunk-RAY4OVGZ.js} +2 -2
- package/dist/{chunk-G76U63X4.js → chunk-RQCKCSRL.js} +7 -7
- package/dist/{chunk-64I3JVYM.js → chunk-RXTN6AKH.js} +2 -2
- package/dist/{chunk-UPZU6GE4.js → chunk-RZDWV63N.js} +3 -3
- package/dist/{chunk-2UH2KFUP.js → chunk-S6PYF2XF.js} +2 -2
- package/dist/{chunk-JSC3U7TI.js → chunk-TOIVGRUX.js} +2 -2
- package/dist/{chunk-7DRAWPTZ.js → chunk-TQAHXW6Y.js} +1 -1
- package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
- package/dist/{chunk-AX2THNSA.js → chunk-UEPWCCTY.js} +4 -4
- package/dist/{chunk-QWGDJJYJ.js → chunk-USR47QNF.js} +4 -4
- package/dist/{chunk-Y3CBHOR6.js → chunk-V6HJFQZE.js} +2 -2
- package/dist/chunk-V76WTFTW.js +318 -0
- package/dist/{chunk-NMJXSHBJ.js → chunk-W54I7H25.js} +2 -2
- package/dist/{chunk-2UG5F4C5.js → chunk-XULDXHTN.js} +24 -12
- package/dist/chunk-XXYSBZIQ.js +283 -0
- package/dist/{chunk-MWUZBSAQ.js → chunk-Y55JBDO5.js} +331 -51
- package/dist/{chunk-W6RRQCPQ.js → chunk-YD5GIKET.js} +4 -4
- package/dist/{chunk-CE5AX47J.js → chunk-YECAMM3D.js} +2 -2
- package/dist/{chunk-WCXUNS7U.js → chunk-YNFKXPEC.js} +6 -6
- package/dist/cli/index.js +36 -35
- package/dist/{clio-CMMK4KRR.js → clio-QLICPCF5.js} +2 -2
- package/dist/{code-nav-MDZNQS33.js → code-nav-IJR2DBPR.js} +6 -6
- package/dist/{components-UCUQ4QXW.js → components-2TGAI2RC.js} +3 -4
- package/dist/{config-SVM5P5YI.js → config-IUA6OYNS.js} +52 -47
- package/dist/{configure-LE3IK2TJ.js → configure-VEPX4NMX.js} +14 -15
- package/dist/{context-VNCR7KAG.js → context-2DKHWH2T.js} +23 -23
- package/dist/{context-2OHRKS42.js → context-4MPR7WKB.js} +48 -42
- package/dist/{context-E3VC7RX5.js → context-BOYF5EJM.js} +11 -11
- package/dist/{context-clear-BW4O37TG.js → context-clear-S4ZJCQUX.js} +48 -42
- package/dist/{context-working-set-VDS25HXZ.js → context-working-set-3I3FYX6Y.js} +8 -8
- package/dist/detail-A7JAVSIG.js +98 -0
- package/dist/{dispatch-runner-5AHT53RF.js → dispatch-runner-RJ5I2F2O.js} +71 -58
- package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
- package/dist/{doctor-WNNVO6FY.js → doctor-DKICC2SN.js} +54 -31
- package/dist/{eval-7G7SGAYO.js → eval-OQOQUDHK.js} +47 -56
- package/dist/{evidence-VD6736FQ.js → evidence-4DQ25GUQ.js} +53 -150
- package/dist/evidence-4F5USFKH.js +208 -0
- package/dist/{evolve-AL3NGVRL.js → evolve-GSS52E5J.js} +44 -41
- package/dist/{extensions-MOVJ32NM.js → extensions-G7MFLYHT.js} +4 -5
- package/dist/{fleet-QZHUMAGI.js → fleet-Q37YHHAQ.js} +74 -68
- package/dist/{fleet-commands-BAYT5FJZ.js → fleet-commands-G7E4N7SM.js} +14 -11
- package/dist/{fleet-decisions-IREVMRU4.js → fleet-decisions-O7M6QBA2.js} +6 -6
- package/dist/{fleet-graph-YCTT3HTI.js → fleet-graph-TOUBW6OW.js} +13 -13
- package/dist/{fleet-inspect-QVJTDAVB.js → fleet-inspect-SW33JJNI.js} +43 -39
- package/dist/{fleet-preflight-25QAFPK4.js → fleet-preflight-CV2655TW.js} +2 -3
- package/dist/{fleet-validate-5O57AAJ7.js → fleet-validate-KESZX2YH.js} +16 -16
- package/dist/{fleet-verify-CPH2W2T6.js → fleet-verify-UQPMTVE3.js} +42 -38
- package/dist/{fleet-view-SWBR3VGQ.js → fleet-view-MN2VG4MR.js} +43 -39
- package/dist/{init-J477LKZH.js → init-PXEXQSBF.js} +60 -54
- package/dist/{interop-3FCM6XLG.js → interop-ZG5T62U3.js} +6 -7
- package/dist/inventory-C26CFDRR.js +101 -0
- package/dist/{library-QUQEIUG6.js → library-B2W4N74O.js} +16 -17
- package/dist/{memory-SGGSEP65.js → memory-YCANYS5A.js} +45 -42
- package/dist/{models-HEKUAXXK.js → models-GERTU3YI.js} +20 -22
- package/dist/{monitor-HKU57TYQ.js → monitor-CPNIUULB.js} +50 -44
- package/dist/{orchestrator-VDFAEFAI.js → orchestrator-J4BSH4WQ.js} +491 -1182
- package/dist/{panes-DN2SSFOH.js → panes-BOHAEGYC.js} +3 -3
- package/dist/{panes-TALGNPZT.js → panes-NXSLDQZ2.js} +5 -6
- package/dist/{paths-NBMFAIEZ.js → paths-VSUWNC22.js} +3 -4
- package/dist/{reset-EAJFFJVB.js → reset-TNWTB5LU.js} +5 -6
- package/dist/{resources-OVKSEFVE.js → resources-4PXNMD5G.js} +14 -14
- package/dist/{run-7DP7ZF2J.js → run-D6XJ34CN.js} +79 -83
- package/dist/{share-WML67FT3.js → share-2NWMJJEE.js} +14 -15
- package/dist/{skills-SG662R2K.js → skills-KR7WON5G.js} +18 -19
- package/dist/{skills-eval-VVZEUU46.js → skills-eval-O2ZNOLDS.js} +49 -46
- package/dist/{skills-inventory-I2E23GET.js → skills-inventory-ZZOUBK7O.js} +14 -14
- package/dist/{slash-commands-S7MBJDQK.js → slash-commands-ZXPJD64J.js} +32 -23
- package/dist/{steer-2LQOMCPB.js → steer-XA25PSCS.js} +3 -3
- package/dist/{support-CC2UJBJ6.js → support-7EMVWYG2.js} +2 -2
- package/dist/{targets-4QC3HIEW.js → targets-OMH2XCSN.js} +25 -27
- package/dist/tasks-IPAGMEIX.js +36 -0
- package/dist/{terminal-lease-TUHIJ6Y2.js → terminal-lease-C2J3JYRE.js} +4 -4
- package/dist/{tools-TFGJICCU.js → tools-EFFEAIDP.js} +5 -6
- package/dist/{uninstall-5PEVOE5B.js → uninstall-HALS6BLF.js} +7 -8
- package/dist/{upgrade-M4WXY6KN.js → upgrade-MS72RJEP.js} +14 -11
- package/dist/{usage-N7ZNVLEM.js → usage-NHG6MCJM.js} +60 -51
- package/dist/{verifiers-DJTP4XX6.js → verifiers-7AUNVXDY.js} +150 -17
- package/dist/{verify-RWE4PPEK.js → verify-FWYGPKMR.js} +12 -10
- package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
- package/dist/{wiki-generate-C7IQOXSP.js → wiki-generate-743CIGJW.js} +63 -56
- package/dist/{with-panes-4GCGSL7J.js → with-panes-BDQEWBRT.js} +2 -2
- package/dist/worker/entry.js +36 -33
- package/docs/README.md +3 -2
- package/docs/architecture/acp.md +17 -0
- package/docs/architecture/artifact-versions.md +1 -1
- package/docs/architecture/dispatch-typed-intent.md +1 -1
- package/docs/architecture/evidence-and-memory.md +1 -1
- package/docs/architecture/observability.md +7 -1
- package/docs/architecture/prompt-envelope-and-tools.md +15 -5
- package/docs/architecture/safety-model.md +10 -17
- package/docs/architecture/tui-design.md +1 -1
- package/docs/guide/built-in-agents.md +8 -8
- package/docs/guide/commands-and-modes.md +17 -2
- package/docs/guide/configuration-and-targets.md +3 -1
- package/docs/guide/configuration-reference.md +10 -5
- package/docs/guide/environment-variables.md +2 -2
- package/docs/guide/tool-usage.md +78 -3
- package/docs/history/config-knobs-audit.md +2 -2
- package/docs/process/development-pipeline.md +6 -1
- package/docs/process/git-commit-provenance.md +15 -0
- package/docs/process/release-cut-checklist.md +207 -0
- package/docs/process/scientific-validation.md +18 -17
- package/evals/behavioral-machinery-support.ts +1 -0
- package/evals/behavioral-machinery.yaml +1 -1
- package/package.json +1 -1
- package/skills/coding/coding-standards/SKILL.md +14 -4
- package/skills/context/context-handoff/SKILL.md +3 -3
- package/skills/context/context-prime/SKILL.md +3 -3
- package/skills/planning/architecture/SKILL.md +5 -5
- package/skills/planning/backlog/SKILL.md +4 -4
- package/skills/planning/prd/SKILL.md +4 -3
- package/skills/planning/product-intent/SKILL.md +8 -8
- package/skills/planning/tech-spec/SKILL.md +4 -4
- package/skills/registry.yaml +32 -32
- package/skills/research/arxiv-literature/SKILL.md +3 -3
- package/skills/research/experiment-protocol/SKILL.md +3 -3
- package/skills/research/scientific-debugging/SKILL.md +3 -2
- package/skills/research/scientific-modernization/SKILL.md +3 -3
- package/skills/skill-marketplace.json +16 -16
- package/skills/workflow/cut-it/SKILL.md +3 -4
- package/skills/workflow/design-council/SKILL.md +5 -10
- package/skills/workflow/grill-me/SKILL.md +14 -15
- package/skills/workflow/workflow-distiller/SKILL.md +4 -4
- package/src/cli/args.ts +0 -8
- package/src/cli/configure.ts +2 -1
- package/src/cli/doctor-state-size.ts +1 -12
- package/src/cli/doctor-validation-contract.ts +28 -0
- package/src/cli/doctor.ts +5 -0
- package/src/cli/evidence-detail.ts +1 -75
- package/src/cli/evidence-inventory.ts +1 -167
- package/src/cli/index.ts +2 -0
- package/src/cli/run.ts +0 -2
- package/src/cli/targets.ts +1 -1
- package/src/cli/tasks.ts +84 -0
- package/src/cli/upgrade.ts +10 -5
- package/src/cli/usage.ts +6 -0
- package/src/cli/verifiers.ts +147 -1
- package/src/cli/wiki-generate.ts +1 -0
- package/src/core/commit-attribution.ts +41 -1
- package/src/core/git-commit-attribution.ts +46 -3
- package/src/core/run-overrides.ts +0 -5
- package/src/core/skill-activation.ts +3 -0
- package/src/core/tool-names.ts +5 -2
- package/src/domains/agents/builtins/architect.md +1 -1
- package/src/domains/agents/builtins/coder.md +1 -1
- package/src/domains/agents/builtins/documenter.md +1 -1
- package/src/domains/agents/builtins/git-master.md +1 -1
- package/src/domains/agents/builtins/provenance.md +7 -7
- package/src/domains/agents/builtins/tester.md +1 -1
- package/src/domains/agents/builtins/verifier.md +2 -2
- package/src/domains/agents/builtins/wiki-writer.md +4 -3
- package/src/domains/context/extension.ts +31 -7
- package/src/domains/context/refresh.ts +3 -0
- package/src/domains/context/wiki/frontmatter.ts +5 -2
- package/src/domains/context/wiki/generate.ts +6 -0
- package/src/domains/context/wiki/prompts.ts +43 -0
- package/src/domains/dispatch/active-route-planner.ts +4 -0
- package/src/domains/dispatch/code-step.ts +11 -4
- package/src/domains/dispatch/contract.ts +31 -7
- package/src/domains/dispatch/execution-scheduler.ts +2 -0
- package/src/domains/dispatch/extension.ts +50 -27
- package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
- package/src/domains/dispatch/fleet-run.ts +1 -0
- package/src/domains/dispatch/host-verification.ts +114 -13
- package/src/domains/dispatch/intent.ts +28 -18
- package/src/domains/dispatch/orphan-recovery.ts +2 -0
- package/src/domains/dispatch/receipt-integrity.ts +4 -0
- package/src/domains/dispatch/reservation-store.ts +5 -3
- package/src/domains/dispatch/state.ts +15 -2
- package/src/domains/dispatch/types.ts +17 -2
- package/src/domains/eval/runners/clio-run.ts +12 -9
- package/src/domains/eval/runners/context-index.ts +2 -7
- package/src/domains/eval/runners/context-init.ts +3 -6
- package/src/domains/eval/runners/external-command.ts +29 -11
- package/src/domains/evidence/build.ts +102 -15
- package/src/domains/evidence/detail.ts +69 -0
- package/src/domains/evidence/eval.ts +13 -1
- package/src/domains/evidence/finish-contract-map.ts +5 -1
- package/src/domains/evidence/inventory.ts +167 -0
- package/src/domains/evidence/store.ts +16 -0
- package/src/domains/evidence/types.ts +12 -0
- package/src/domains/extensions/resources.ts +7 -0
- package/src/domains/middleware/marketplace-offer.ts +20 -1
- package/src/domains/middleware/runtime.ts +7 -3
- package/src/domains/mux/detect.ts +3 -6
- package/src/domains/observability/accountability.ts +15 -1
- package/src/domains/observability/contract.ts +52 -7
- package/src/domains/observability/evidence-index.ts +10 -0
- package/src/domains/observability/extension.ts +9 -5
- package/src/domains/observability/projection.ts +394 -45
- package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
- package/src/domains/prompts/fragments/operating/contract.md +2 -0
- package/src/domains/prompts/fragments/wiki/page.md +8 -0
- package/src/domains/providers/model-discovery.ts +1 -4
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +16 -14
- package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
- package/src/domains/providers/support.ts +1 -1
- package/src/domains/providers/types/runtime-descriptor.ts +1 -1
- package/src/domains/safety/action-classifier.ts +7 -0
- package/src/domains/safety/default-path-policy.ts +2 -0
- package/src/domains/safety/finish-contract-registration.ts +29 -14
- package/src/domains/safety/finish-contract.ts +252 -40
- package/src/domains/safety/index.ts +20 -1
- package/src/domains/safety/policy-engine.ts +26 -6
- package/src/domains/safety/rigor.ts +53 -39
- package/src/domains/safety/validation-contract.ts +388 -0
- package/src/domains/session/archive-readers.ts +10 -1
- package/src/domains/session/decision-board.ts +101 -2
- package/src/domains/session/entries.ts +44 -7
- package/src/domains/session/extension.ts +4 -4
- package/src/domains/session/handoff.ts +2 -1
- package/src/domains/session/manager.ts +2 -3
- package/src/domains/session/task-board.ts +14 -1
- package/src/domains/session/tree/fork.ts +1 -2
- package/src/domains/session/tree/navigator.ts +1 -1
- package/src/domains/user-tasks/acceptance.ts +56 -0
- package/src/domains/user-tasks/active-acceptance.ts +40 -0
- package/src/domains/user-tasks/store.ts +34 -3
- package/src/engine/acp/adapter.ts +24 -6
- package/src/engine/acp/server.ts +21 -4
- package/src/engine/acp/transport.ts +53 -8
- package/src/engine/acp/types.ts +4 -0
- package/src/engine/apis/ollama-native.ts +15 -0
- package/src/engine/claude/subprocess-runtime.ts +107 -60
- package/src/engine/external-subprocess.ts +12 -4
- package/src/entry/orchestrator.ts +11 -2
- package/src/interactive/dispatch-board.ts +46 -717
- package/src/interactive/fleet-run-preview.ts +2 -1
- package/src/interactive/interactive-application.ts +3 -2
- package/src/interactive/interactive-presentation.ts +55 -12
- package/src/interactive/interactive-slash-runtime.ts +2 -1
- package/src/interactive/oracle.ts +5 -2
- package/src/interactive/overlays/fleet-run-approval.ts +3 -2
- package/src/interactive/overlays/message-picker.ts +2 -2
- package/src/interactive/overlays/settings.ts +2 -2
- package/src/interactive/overlays/tree-selector.ts +2 -2
- package/src/interactive/renderers/branch-summary.ts +1 -1
- package/src/interactive/slash-autocomplete.ts +4 -6
- package/src/interactive/slash-commands.ts +25 -39
- package/src/interactive/slash-spec.ts +28 -0
- package/src/interactive/view/artifacts.ts +2 -0
- package/src/interactive/worker-stream.ts +7 -3
- package/src/tools/bootstrap.ts +4 -0
- package/src/tools/builtin-tool-catalog.ts +31 -0
- package/src/tools/compete-worktrees.ts +7 -1
- package/src/tools/core-bootstrap.ts +16 -0
- package/src/tools/decide.ts +136 -0
- package/src/tools/dispatch-admission.ts +21 -0
- package/src/tools/dispatch-plan.ts +5 -2
- package/src/tools/dispatch-runner.ts +15 -1
- package/src/tools/dispatch-types.ts +6 -0
- package/src/tools/evidence.ts +96 -0
- package/src/tools/limitation.ts +76 -0
- package/src/tools/policy.ts +9 -0
- package/src/tools/presentation.ts +3 -0
- package/src/tools/registry.ts +1 -1
- package/src/tools/result-shaping.ts +17 -5
- package/src/tools/task-worktree.ts +13 -3
- package/src/tools/tasks.ts +10 -1
- package/src/tools/verify/authoring.ts +170 -83
- package/src/tools/verify/catalog.ts +122 -5
- package/src/tools/verify/index.ts +2 -1
- package/src/tools/verify/numeric.ts +298 -0
- package/src/tools/verify/perf.ts +143 -0
- package/src/tools/verify/scripts.ts +229 -2
- package/dist/chunk-7DICMOS6.js +0 -313
- package/dist/chunk-RVG5JXAL.js +0 -41
- package/dist/chunk-T56WDKA5.js +0 -183
- package/dist/chunk-VPKWYKEY.js +0 -169
package/skills/registry.yaml
CHANGED
|
@@ -10,8 +10,8 @@ skills:
|
|
|
10
10
|
sha256: 0a72f4c906303f550be78f80a927da7e24e5c2076f058ccafdec80dfbed275af
|
|
11
11
|
- name: coding-standards
|
|
12
12
|
path: coding/coding-standards
|
|
13
|
-
version: 0.
|
|
14
|
-
sha256:
|
|
13
|
+
version: 0.4.0
|
|
14
|
+
sha256: d573cdc5b430ae94ebfb5ef69c4a0ac9ac074aae815959ab4e6515012846ce3b
|
|
15
15
|
- name: prototype
|
|
16
16
|
path: coding/prototype
|
|
17
17
|
version: 0.4.0
|
|
@@ -23,12 +23,12 @@ skills:
|
|
|
23
23
|
# ── context ──
|
|
24
24
|
- name: context-handoff
|
|
25
25
|
path: context/context-handoff
|
|
26
|
-
version: 0.5.
|
|
27
|
-
sha256:
|
|
26
|
+
version: 0.5.1
|
|
27
|
+
sha256: e05a8dc9d09b4decbf79afade1f530d7c81d5412112723faab104a83893c34f8
|
|
28
28
|
- name: context-prime
|
|
29
29
|
path: context/context-prime
|
|
30
|
-
version: 0.4.
|
|
31
|
-
sha256:
|
|
30
|
+
version: 0.4.1
|
|
31
|
+
sha256: 3e6783d3fd95bd5635fe274ea0b9f73f3c4606ce64b832524cc242b114d8ef12
|
|
32
32
|
# ── git ──
|
|
33
33
|
- name: branch-closeout
|
|
34
34
|
path: git/branch-closeout
|
|
@@ -90,55 +90,55 @@ skills:
|
|
|
90
90
|
sha256: d9e891eb5f3c27678de14165a0eb35d1eb2289be480e55009f9a57bcfe55be2d
|
|
91
91
|
- name: architecture
|
|
92
92
|
path: planning/architecture
|
|
93
|
-
version: 0.4.
|
|
94
|
-
sha256:
|
|
93
|
+
version: 0.4.1
|
|
94
|
+
sha256: 0d62ded74021d148f3091e044c32d205edfa3d1298706e68c84ad0f032d0feba
|
|
95
95
|
- name: backlog
|
|
96
96
|
path: planning/backlog
|
|
97
|
-
version: 0.4.
|
|
98
|
-
sha256:
|
|
97
|
+
version: 0.4.1
|
|
98
|
+
sha256: 8fc700ad8f1b2f44fb6ea013c54ce06314cf9c4fdee63bd65c36686f5c25d092
|
|
99
99
|
- name: prd
|
|
100
100
|
path: planning/prd
|
|
101
|
-
version: 0.4.
|
|
102
|
-
sha256:
|
|
101
|
+
version: 0.4.1
|
|
102
|
+
sha256: 3841f2f9635229c8208382e40123de1b5a496ec562cb851758d2ac013921c069
|
|
103
103
|
- name: product-intent
|
|
104
104
|
path: planning/product-intent
|
|
105
|
-
version: 0.4.
|
|
106
|
-
sha256:
|
|
105
|
+
version: 0.4.1
|
|
106
|
+
sha256: 95d629fe8688003a9816a0774674f0c9fd5a922a82835415c3c1806799436832
|
|
107
107
|
- name: tech-spec
|
|
108
108
|
path: planning/tech-spec
|
|
109
|
-
version: 0.3.
|
|
110
|
-
sha256:
|
|
109
|
+
version: 0.3.1
|
|
110
|
+
sha256: e8e6a1326aeb8b010647fc9fa9dc5ff827e13550f54524555f5e6a83341eb27f
|
|
111
111
|
# ── research ──
|
|
112
112
|
- name: arxiv-literature
|
|
113
113
|
path: research/arxiv-literature
|
|
114
|
-
version: 0.5.
|
|
115
|
-
sha256:
|
|
114
|
+
version: 0.5.1
|
|
115
|
+
sha256: 4668827aa0f13527de5fc34914911ef942d2103ed3d139008fbd1c0ce2c4bd3d
|
|
116
116
|
- name: experiment-protocol
|
|
117
117
|
path: research/experiment-protocol
|
|
118
|
-
version: 0.3.
|
|
119
|
-
sha256:
|
|
118
|
+
version: 0.3.1
|
|
119
|
+
sha256: da151931fb1961b19fcb6d4ae1957cef908f8b35692e301f109125488ad65302
|
|
120
120
|
- name: scientific-debugging
|
|
121
121
|
path: research/scientific-debugging
|
|
122
|
-
version: 0.3.
|
|
123
|
-
sha256:
|
|
122
|
+
version: 0.3.1
|
|
123
|
+
sha256: ba94f8ad2655396a3791c7599631513f16651ffa61c8148044b996a25c0bc1cc
|
|
124
124
|
- name: scientific-modernization
|
|
125
125
|
path: research/scientific-modernization
|
|
126
|
-
version: 0.4.
|
|
127
|
-
sha256:
|
|
126
|
+
version: 0.4.1
|
|
127
|
+
sha256: eb31099d764cba913c19726f6ba85d7081c5e01c81a3b2cd45eb136a4e47b858
|
|
128
128
|
# ── workflow ──
|
|
129
129
|
- name: cut-it
|
|
130
130
|
path: workflow/cut-it
|
|
131
|
-
version: 0.4.
|
|
132
|
-
sha256:
|
|
131
|
+
version: 0.4.1
|
|
132
|
+
sha256: d0ce7dc6ea633d87e9e68c6b59ad402c24644b9eac580774410b235e0ca1c93f
|
|
133
133
|
- name: design-council
|
|
134
134
|
path: workflow/design-council
|
|
135
|
-
version: 0.
|
|
136
|
-
sha256:
|
|
135
|
+
version: 0.6.0
|
|
136
|
+
sha256: 42fbf2e54524253b2955b22576ae0aca998dc04a902b8a59440edcfd051e0f5a
|
|
137
137
|
- name: grill-me
|
|
138
138
|
path: workflow/grill-me
|
|
139
|
-
version: 0.5.
|
|
140
|
-
sha256:
|
|
139
|
+
version: 0.5.1
|
|
140
|
+
sha256: 3844770b507f9b2904aaa5c944c2b26f9ecf114383758dfff3bd7f39b2c717a6
|
|
141
141
|
- name: workflow-distiller
|
|
142
142
|
path: workflow/workflow-distiller
|
|
143
|
-
version: 0.4.
|
|
144
|
-
sha256:
|
|
143
|
+
version: 0.4.1
|
|
144
|
+
sha256: 067b097299b0b630729a4a6ddde629dec5c798d5b4634f90f7feab380b8575e1
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- compare these papers
|
|
8
8
|
- find recent research papers
|
|
9
9
|
- build a literature survey
|
|
10
|
-
version: 0.5.
|
|
10
|
+
version: 0.5.1
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- web_fetch
|
|
@@ -40,8 +40,8 @@ immediately; only paper cards reach the user.
|
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
The request is free text: a paper URL/ID, a topic, or two or more IDs to
|
|
43
|
-
compare. There is no operator in a headless run
|
|
44
|
-
|
|
43
|
+
compare. There is no operator in a headless run: `ask_user` is not registered, so
|
|
44
|
+
any call is refused as an unregistered tool rather than answered. If the request is ambiguous (no
|
|
45
45
|
clear topic, an ID that doesn't resolve), state your best reading and
|
|
46
46
|
proceed; never stall waiting for clarification. `tasks` sits outside this
|
|
47
47
|
skill's tool surface and is refused; the steps below are the whole plan, do
|
|
@@ -8,7 +8,7 @@ triggers:
|
|
|
8
8
|
- define numerical tolerances
|
|
9
9
|
- reproduce these results
|
|
10
10
|
- compare solver accuracy
|
|
11
|
-
version: 0.3.
|
|
11
|
+
version: 0.3.1
|
|
12
12
|
license: Apache-2.0
|
|
13
13
|
allowed-tools:
|
|
14
14
|
- read
|
|
@@ -45,8 +45,8 @@ diagnosis, not an experiment; use scientific-debugging.
|
|
|
45
45
|
/skill experiment-protocol <what to benchmark, compare, or sweep>
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
There is no operator in a headless run
|
|
49
|
-
tool
|
|
48
|
+
There is no operator in a headless run: `ask_user` is not registered, so
|
|
49
|
+
any call is refused as an unregistered tool rather than answered. If a threshold, tolerance, or environment detail is unstated,
|
|
50
50
|
pick the most defensible default, record it as an explicit assumption in the
|
|
51
51
|
pre-registration, and proceed; never stall Phase 0 waiting for confirmation.
|
|
52
52
|
|
|
@@ -8,7 +8,7 @@ triggers:
|
|
|
8
8
|
- diagnose NaNs
|
|
9
9
|
- debug with falsifiable hypotheses
|
|
10
10
|
- scientific root cause
|
|
11
|
-
version: 0.3.
|
|
11
|
+
version: 0.3.1
|
|
12
12
|
license: Apache-2.0
|
|
13
13
|
allowed-tools:
|
|
14
14
|
- read
|
|
@@ -46,7 +46,8 @@ below is for failures that survived the first obvious fix.
|
|
|
46
46
|
|
|
47
47
|
Everything after the skill name is the failure report: the observed wrong
|
|
48
48
|
behavior and whatever has already been tried. There is no operator in a
|
|
49
|
-
headless run
|
|
49
|
+
headless run: `ask_user` is not registered, so any call is refused as an
|
|
50
|
+
unregistered tool rather than answered. If the goal,
|
|
50
51
|
a fault-class split, or a ranking call is ambiguous, state your best reading
|
|
51
52
|
in Step 1 or Step 3 and proceed; never stall a step waiting for confirmation.
|
|
52
53
|
|
|
@@ -8,7 +8,7 @@ triggers:
|
|
|
8
8
|
- migrate the scientific build system
|
|
9
9
|
- create a maintained fork
|
|
10
10
|
- preserve scientific parity
|
|
11
|
-
version: 0.4.
|
|
11
|
+
version: 0.4.1
|
|
12
12
|
license: Apache-2.0
|
|
13
13
|
allowed-tools:
|
|
14
14
|
- read
|
|
@@ -42,8 +42,8 @@ has an explicit exit condition.
|
|
|
42
42
|
/skill scientific-modernization <what to modernize, port, rewrite, or replace, and why>
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
There is no operator in a headless run
|
|
46
|
-
tool
|
|
45
|
+
There is no operator in a headless run: `ask_user` is not registered, so
|
|
46
|
+
any call is refused as an unregistered tool rather than answered. Stage 1's "the user has seen them" exit condition means,
|
|
47
47
|
headlessly: state the four bullets in your reply and proceed, never stall
|
|
48
48
|
waiting for acknowledgment. Every other stage gate below works the same way
|
|
49
49
|
— state the decision and its reasoning, then continue.
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"functional core imperative shell"
|
|
28
28
|
],
|
|
29
29
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/coding/coding-standards",
|
|
30
|
-
"version": "0.
|
|
30
|
+
"version": "0.4.0",
|
|
31
31
|
"audit": "pass",
|
|
32
32
|
"category": "coding"
|
|
33
33
|
},
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"write a continuation brief"
|
|
73
73
|
],
|
|
74
74
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/context/context-handoff",
|
|
75
|
-
"version": "0.5.
|
|
75
|
+
"version": "0.5.1",
|
|
76
76
|
"audit": "pass",
|
|
77
77
|
"category": "context"
|
|
78
78
|
},
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"resume repository work after a break"
|
|
88
88
|
],
|
|
89
89
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/context/context-prime",
|
|
90
|
-
"version": "0.4.
|
|
90
|
+
"version": "0.4.1",
|
|
91
91
|
"audit": "pass",
|
|
92
92
|
"category": "context"
|
|
93
93
|
},
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
"compare architecture options"
|
|
317
317
|
],
|
|
318
318
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/planning/architecture",
|
|
319
|
-
"version": "0.4.
|
|
319
|
+
"version": "0.4.1",
|
|
320
320
|
"audit": "pass",
|
|
321
321
|
"category": "planning"
|
|
322
322
|
},
|
|
@@ -331,7 +331,7 @@
|
|
|
331
331
|
"create GitHub issues from this architecture"
|
|
332
332
|
],
|
|
333
333
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/planning/backlog",
|
|
334
|
-
"version": "0.4.
|
|
334
|
+
"version": "0.4.1",
|
|
335
335
|
"audit": "pass",
|
|
336
336
|
"category": "planning"
|
|
337
337
|
},
|
|
@@ -346,7 +346,7 @@
|
|
|
346
346
|
"create milestone prompts"
|
|
347
347
|
],
|
|
348
348
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/planning/prd",
|
|
349
|
-
"version": "0.4.
|
|
349
|
+
"version": "0.4.1",
|
|
350
350
|
"audit": "pass",
|
|
351
351
|
"category": "planning"
|
|
352
352
|
},
|
|
@@ -361,7 +361,7 @@
|
|
|
361
361
|
"greenfield product intent"
|
|
362
362
|
],
|
|
363
363
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/planning/product-intent",
|
|
364
|
-
"version": "0.4.
|
|
364
|
+
"version": "0.4.1",
|
|
365
365
|
"audit": "pass",
|
|
366
366
|
"category": "planning"
|
|
367
367
|
},
|
|
@@ -376,7 +376,7 @@
|
|
|
376
376
|
"specify execution flows"
|
|
377
377
|
],
|
|
378
378
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/planning/tech-spec",
|
|
379
|
-
"version": "0.3.
|
|
379
|
+
"version": "0.3.1",
|
|
380
380
|
"audit": "pass",
|
|
381
381
|
"category": "planning"
|
|
382
382
|
},
|
|
@@ -391,7 +391,7 @@
|
|
|
391
391
|
"build a literature survey"
|
|
392
392
|
],
|
|
393
393
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/research/arxiv-literature",
|
|
394
|
-
"version": "0.5.
|
|
394
|
+
"version": "0.5.1",
|
|
395
395
|
"audit": "pass",
|
|
396
396
|
"category": "research"
|
|
397
397
|
},
|
|
@@ -407,7 +407,7 @@
|
|
|
407
407
|
"compare solver accuracy"
|
|
408
408
|
],
|
|
409
409
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/research/experiment-protocol",
|
|
410
|
-
"version": "0.3.
|
|
410
|
+
"version": "0.3.1",
|
|
411
411
|
"audit": "pass",
|
|
412
412
|
"category": "research"
|
|
413
413
|
},
|
|
@@ -423,7 +423,7 @@
|
|
|
423
423
|
"scientific root cause"
|
|
424
424
|
],
|
|
425
425
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/research/scientific-debugging",
|
|
426
|
-
"version": "0.3.
|
|
426
|
+
"version": "0.3.1",
|
|
427
427
|
"audit": "pass",
|
|
428
428
|
"category": "research"
|
|
429
429
|
},
|
|
@@ -439,7 +439,7 @@
|
|
|
439
439
|
"preserve scientific parity"
|
|
440
440
|
],
|
|
441
441
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/research/scientific-modernization",
|
|
442
|
-
"version": "0.4.
|
|
442
|
+
"version": "0.4.1",
|
|
443
443
|
"audit": "pass",
|
|
444
444
|
"category": "research"
|
|
445
445
|
},
|
|
@@ -454,7 +454,7 @@
|
|
|
454
454
|
"write dependency-ordered vertical slices"
|
|
455
455
|
],
|
|
456
456
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/workflow/cut-it",
|
|
457
|
-
"version": "0.4.
|
|
457
|
+
"version": "0.4.1",
|
|
458
458
|
"audit": "pass",
|
|
459
459
|
"category": "workflow"
|
|
460
460
|
},
|
|
@@ -469,7 +469,7 @@
|
|
|
469
469
|
"what would experts say"
|
|
470
470
|
],
|
|
471
471
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/workflow/design-council",
|
|
472
|
-
"version": "0.
|
|
472
|
+
"version": "0.6.0",
|
|
473
473
|
"audit": "pass",
|
|
474
474
|
"category": "workflow"
|
|
475
475
|
},
|
|
@@ -484,7 +484,7 @@
|
|
|
484
484
|
"clarify this plan one question at a time"
|
|
485
485
|
],
|
|
486
486
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/workflow/grill-me",
|
|
487
|
-
"version": "0.5.
|
|
487
|
+
"version": "0.5.1",
|
|
488
488
|
"audit": "pass",
|
|
489
489
|
"category": "workflow"
|
|
490
490
|
},
|
|
@@ -499,7 +499,7 @@
|
|
|
499
499
|
"create a skill from this session"
|
|
500
500
|
],
|
|
501
501
|
"sourceUrl": "https://github.com/iowarp/clio-coder/tree/main/skills/workflow/workflow-distiller",
|
|
502
|
-
"version": "0.4.
|
|
502
|
+
"version": "0.4.1",
|
|
503
503
|
"audit": "pass",
|
|
504
504
|
"category": "workflow"
|
|
505
505
|
}
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- make this plan executable
|
|
8
8
|
- turn this milestone into a sprint
|
|
9
9
|
- write dependency-ordered vertical slices
|
|
10
|
-
version: 0.4.
|
|
10
|
+
version: 0.4.1
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- read
|
|
@@ -52,9 +52,8 @@ destination like "write it to docs/SPRINT.md", is Step 3's output location,
|
|
|
52
52
|
not the input. When neither is named, Step 1 finds the plan and Step 3
|
|
53
53
|
writes to the repo-root default.
|
|
54
54
|
|
|
55
|
-
This run has no back-and-forth. `ask_user`
|
|
56
|
-
|
|
57
|
-
returns `{cancelled: true}` immediately, as an ordinary result, not an error.
|
|
55
|
+
This run has no back-and-forth. `ask_user` is not registered in a headless
|
|
56
|
+
run, so any call is refused as an unregistered tool rather than answered.
|
|
58
57
|
The happy path here rarely needs a question at all — Step 1's "stop and say
|
|
59
58
|
so" for a missing or vague plan is already headless-safe, and Step 3's output
|
|
60
59
|
path defaults without asking. If several plans or milestones are plausible
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- get multiple expert perspectives
|
|
8
8
|
- weigh the architecture options
|
|
9
9
|
- what would experts say
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.6.0
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- dispatch
|
|
@@ -52,10 +52,9 @@ argument.
|
|
|
52
52
|
**Headless is the enforced default, not a suggestion.** A council is several
|
|
53
53
|
worker runs; nobody is waiting between rounds in a headless run, and every
|
|
54
54
|
round that actually runs costs real wall-clock time on top of the
|
|
55
|
-
orchestrator's own turns. `ask_user`
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
immediately, as an ordinary result, not an error. Treat that cancellation (or
|
|
55
|
+
orchestrator's own turns. `ask_user` is not registered in a headless run,
|
|
56
|
+
so the single question Step 1 asks is refused as an unregistered tool
|
|
57
|
+
rather than answered. Treat that refusal (or
|
|
59
58
|
skip the call and reason from this paragraph directly — one is not more valid
|
|
60
59
|
than the other) as the fixed answer **quick mode: exactly three perspectives,
|
|
61
60
|
exactly one round (Positions) plus synthesis.** Do not compose four or five
|
|
@@ -85,11 +84,7 @@ Declare `intent: {read_roots: [...], relevant_paths: [...]}` with paths
|
|
|
85
84
|
relative to the repo root on every dispatch call instead of pasting an
|
|
86
85
|
absolute path into `task`/`briefing` prose (a config value, a mount point).
|
|
87
86
|
An absolute path token in briefing/task text with no declared `intent` is
|
|
88
|
-
rejected as `legacy_scope_path_absolute`.
|
|
89
|
-
never literal shell syntax — a phrase like "you can `rm -rf` the directory"
|
|
90
|
-
inside a dispatch call's text can trip the same damage-control pattern that
|
|
91
|
-
blocks a real destructive shell command, even though nothing executes; say
|
|
92
|
-
"delete the directory" instead.
|
|
87
|
+
rejected as `legacy_scope_path_absolute`.
|
|
93
88
|
|
|
94
89
|
A dispatch call's own synchronous result already carries every worker's
|
|
95
90
|
output — do not follow it with a `bash`/`read` pass over the receipt file on
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- stress-test this design
|
|
8
8
|
- poke holes in this idea
|
|
9
9
|
- clarify this plan one question at a time
|
|
10
|
-
version: 0.5.
|
|
10
|
+
version: 0.5.1
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- read
|
|
@@ -52,13 +52,12 @@ is coming. Ending the turn on an open question — even one question, even a
|
|
|
52
52
|
well-posed one — is this skill's single most common failure and worse than
|
|
53
53
|
skipping the interview format entirely.
|
|
54
54
|
|
|
55
|
-
There is no operator in a headless run
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
observing the cancellation). Whichever phase this lands in — even round
|
|
55
|
+
There is no operator in a headless run: `ask_user` is not registered, so
|
|
56
|
+
any call is refused as an unregistered tool rather than answered, every
|
|
57
|
+
time, with no exceptions. Calling it again will not produce a different
|
|
58
|
+
result, so one call is enough to confirm it (not required: reasoning from
|
|
59
|
+
this paragraph alone is just as valid as calling it and observing the
|
|
60
|
+
refusal). Whichever phase this lands in — even round
|
|
62
61
|
1 — switch immediately to the assumed-confirm monologue for every phase
|
|
63
62
|
from here on, in the same turn: state the question you would have asked,
|
|
64
63
|
give your own best/recommended answer with the reasoning behind it, mark
|
|
@@ -160,7 +159,7 @@ If an answer is vague, ask a follow-up on the same branch. Do not jump to a new
|
|
|
160
159
|
branch while the current one is still unresolved.
|
|
161
160
|
|
|
162
161
|
**Headless: there is no reply coming, whether `ask_user` comes back
|
|
163
|
-
|
|
162
|
+
refused as unregistered or you never call it at all.** Neither is a vague answer to
|
|
164
163
|
follow up on and neither is a signal to try again or to wait — both mean
|
|
165
164
|
there is no operator this run, from round 1 on. Do not call `ask_user`
|
|
166
165
|
again for this or any later phase, and do not phrase a question in plain
|
|
@@ -175,7 +174,7 @@ This step applies to a live session with a real operator. Stop immediately
|
|
|
175
174
|
when the user says "stop", "enough", "later", "done", "next time", or cancels
|
|
176
175
|
the modal. Do not ask another question to confirm stopping.
|
|
177
176
|
|
|
178
|
-
A headless `
|
|
177
|
+
A headless refusal of `ask_user` is not a stop signal from a user — it is the
|
|
179
178
|
absence of an operator (see Step 3). Do not treat it as "the user cancelled
|
|
180
179
|
this session"; treat it as the cue to switch to the assumed-confirm
|
|
181
180
|
monologue and keep going to a complete decision log, not to stop early.
|
|
@@ -205,9 +204,9 @@ state the partial decisions and the next unresolved root question.
|
|
|
205
204
|
|
|
206
205
|
In a live session, close with `ask_user` `action: "complete"` and a compact
|
|
207
206
|
`decisions` array before final prose. In a headless run where `ask_user`
|
|
208
|
-
already came back
|
|
209
|
-
not attempt another `ask_user` call just to close out; it will
|
|
210
|
-
and adds nothing. Write the final decision log:
|
|
207
|
+
already came back refused, skip straight to the decision log below — do
|
|
208
|
+
not attempt another `ask_user` call just to close out; it will be refused
|
|
209
|
+
too and adds nothing. Write the final decision log:
|
|
211
210
|
|
|
212
211
|
```markdown
|
|
213
212
|
## Decision Log - <topic>
|
|
@@ -256,7 +255,7 @@ Use this ordering when several questions are possible:
|
|
|
256
255
|
- Letting `ask_user` hit the round limit without completing the interview.
|
|
257
256
|
- Ending with a summary paragraph instead of the decision log.
|
|
258
257
|
- Re-calling `ask_user` for a later phase after an earlier round already came
|
|
259
|
-
back
|
|
258
|
+
back refused — the answer will not be different; that budget is wasted.
|
|
260
259
|
- Ending a turn on "Answer 1/2/3", "let me know which you prefer", or any
|
|
261
260
|
other wording that expects a reply in a headless run — there is no next
|
|
262
261
|
turn for a reply to land in. This is the single most common failure mode
|
|
@@ -264,5 +263,5 @@ Use this ordering when several questions are possible:
|
|
|
264
263
|
stopping, instead of running the assumed-confirm monologue through every
|
|
265
264
|
remaining phase to the decision log in the same turn.
|
|
266
265
|
- Opening a `tasks` list for the phase map; `tasks` is refused.
|
|
267
|
-
- Treating a headless `
|
|
266
|
+
- Treating a headless `ask_user` refusal as the user's stop signal (Step 4)
|
|
268
267
|
instead of the absence-of-operator cue it actually is.
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- turn this into a reusable workflow
|
|
8
8
|
- distill this repeated process
|
|
9
9
|
- create a skill from this session
|
|
10
|
-
version: 0.4.
|
|
10
|
+
version: 0.4.1
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- read
|
|
@@ -50,10 +50,10 @@ whichever workflow just ran in this session. Everything else in the request
|
|
|
50
50
|
not more arguments.
|
|
51
51
|
|
|
52
52
|
A live operator can answer Phase 2's interview and Phase 4's design gate for
|
|
53
|
-
real - treat a real,
|
|
53
|
+
real - treat a real, answered `ask_user` reply as proof an operator is
|
|
54
54
|
present and continue asking one question per round. There is no operator in
|
|
55
|
-
a headless run: `ask_user` is not registered
|
|
56
|
-
|
|
55
|
+
a headless run: `ask_user` is not registered, so any call is refused as an
|
|
56
|
+
unregistered tool rather than answered. When that
|
|
57
57
|
is the run's condition, do not wait for a reply that cannot come: answer
|
|
58
58
|
every remaining interview question and the Phase 4 gate yourself as an
|
|
59
59
|
assumed-confirm monologue (state the question, give your best-grounded
|
package/src/cli/args.ts
CHANGED
|
@@ -37,7 +37,6 @@ export interface RunCliArgs {
|
|
|
37
37
|
noSkills: boolean;
|
|
38
38
|
skillPaths: string[];
|
|
39
39
|
maxContextTokens?: number;
|
|
40
|
-
kvCacheMode?: string;
|
|
41
40
|
steerChannel?: string;
|
|
42
41
|
/** Resume this exact session and append the turn to it. */
|
|
43
42
|
sessionId?: string;
|
|
@@ -207,13 +206,6 @@ export function parseRunCliArgs(argv: ReadonlyArray<string>): RunCliArgs {
|
|
|
207
206
|
}
|
|
208
207
|
continue;
|
|
209
208
|
}
|
|
210
|
-
if (arg === "--kv-cache-mode") {
|
|
211
|
-
const value = need(arg);
|
|
212
|
-
if (value !== null) {
|
|
213
|
-
parsed.kvCacheMode = value;
|
|
214
|
-
}
|
|
215
|
-
continue;
|
|
216
|
-
}
|
|
217
209
|
if (arg === "--session") {
|
|
218
210
|
const value = need(arg);
|
|
219
211
|
if (value !== null) {
|
package/src/cli/configure.ts
CHANGED
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
type WorkerPermissionMode,
|
|
21
21
|
} from "../core/defaults.js";
|
|
22
22
|
import { initializeClioHome } from "../core/init.js";
|
|
23
|
+
import { warnLegacyNaming } from "../core/naming-compat.js";
|
|
23
24
|
import { resolveClioDirs } from "../core/xdg.js";
|
|
24
25
|
import { getVersionInfo } from "../domains/lifecycle/version.js";
|
|
25
26
|
import { openAuthStorage, targetRequiresAuth } from "../domains/providers/auth/index.js";
|
|
@@ -2113,7 +2114,7 @@ export async function runConfigureCommand(
|
|
|
2113
2114
|
return 2;
|
|
2114
2115
|
}
|
|
2115
2116
|
if (runtimeId === "lmstudio-native" && runtime.id === "lmstudio") {
|
|
2116
|
-
|
|
2117
|
+
warnLegacyNaming(runtimeId, runtime.id);
|
|
2117
2118
|
}
|
|
2118
2119
|
}
|
|
2119
2120
|
const hasTargetSetupFlag =
|
|
@@ -2,6 +2,7 @@ import { lstatSync, readdirSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { resolveClioDirs } from "../core/xdg.js";
|
|
4
4
|
import type { DoctorFinding } from "../domains/lifecycle/doctor.js";
|
|
5
|
+
import { formatBytes } from "./lifecycle-presenter.js";
|
|
5
6
|
|
|
6
7
|
interface MeasuredEntry {
|
|
7
8
|
bytes: number;
|
|
@@ -68,15 +69,3 @@ function measureEntry(path: string): MeasuredEntry {
|
|
|
68
69
|
}
|
|
69
70
|
return { bytes, error: null };
|
|
70
71
|
}
|
|
71
|
-
|
|
72
|
-
function formatBytes(bytes: number): string {
|
|
73
|
-
if (bytes < 1024) return `${bytes} B`;
|
|
74
|
-
const units = ["KiB", "MiB", "GiB", "TiB"];
|
|
75
|
-
let value = bytes;
|
|
76
|
-
let unit = -1;
|
|
77
|
-
do {
|
|
78
|
-
value /= 1024;
|
|
79
|
-
unit += 1;
|
|
80
|
-
} while (value >= 1024 && unit < units.length - 1);
|
|
81
|
-
return `${value.toFixed(value >= 10 ? 1 : 2)} ${units[unit]}`;
|
|
82
|
-
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { DoctorFinding } from "../domains/lifecycle/doctor.js";
|
|
2
|
+
import { describeValidationContract, loadValidationContract } from "../domains/safety/validation-contract.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* One row for the workspace's scientific validation contract: absent, parsed
|
|
6
|
+
* (and so raising the rigor default to high), Markdown-only advisory, or
|
|
7
|
+
* invalid with the parse fault. Reads the workspace root only; creates nothing.
|
|
8
|
+
*/
|
|
9
|
+
export function validationContractFinding(workspaceRoot = process.cwd()): DoctorFinding {
|
|
10
|
+
const name = "validation contract";
|
|
11
|
+
const loaded = loadValidationContract(workspaceRoot);
|
|
12
|
+
if (!loaded.ok) {
|
|
13
|
+
return { ok: false, name, detail: `invalid: ${describeValidationContract(loaded)}; rigor default stays normal` };
|
|
14
|
+
}
|
|
15
|
+
if (loaded.contract === null) {
|
|
16
|
+
if ("advisory" in loaded) {
|
|
17
|
+
return { ok: true, name, level: "warn", detail: `markdown-only: ${describeValidationContract(loaded)}` };
|
|
18
|
+
}
|
|
19
|
+
return { ok: true, name, detail: "none at the workspace root; rigor default normal" };
|
|
20
|
+
}
|
|
21
|
+
const artifacts = loaded.contract.artifacts?.length ?? 0;
|
|
22
|
+
const validators = loaded.contract.validators?.length ?? 0;
|
|
23
|
+
return {
|
|
24
|
+
ok: true,
|
|
25
|
+
name,
|
|
26
|
+
detail: `valid: ${loaded.path} (version ${loaded.contract.version}, ${artifacts} artifact(s), ${validators} validator(s)); rigor default high`,
|
|
27
|
+
};
|
|
28
|
+
}
|
package/src/cli/doctor.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { namingFootprintFindings } from "./doctor-naming.js";
|
|
|
12
12
|
import { panesFindings } from "./doctor-panes.js";
|
|
13
13
|
import { stateStorageFinding } from "./doctor-state-size.js";
|
|
14
14
|
import { toolchainFindings } from "./doctor-toolchain.js";
|
|
15
|
+
import { validationContractFinding } from "./doctor-validation-contract.js";
|
|
15
16
|
import { printError } from "./shared.js";
|
|
16
17
|
|
|
17
18
|
const HELP = `clio-coder doctor [--fix] [--json]
|
|
@@ -72,6 +73,9 @@ export async function runDoctorCommand(args: ReadonlyArray<string> = []): Promis
|
|
|
72
73
|
// has already agreed not to build on an untouched home.
|
|
73
74
|
const paneChecks = untouched ? [] : await panesFindings();
|
|
74
75
|
const namingChecks = namingFootprintFindings({ fix, yaziEnabled: filesEnabled });
|
|
76
|
+
// The validation contract lives in the workspace, not the home, so it is
|
|
77
|
+
// checked on every run: a broken contract is why rigor stayed normal.
|
|
78
|
+
const contractChecks = [validationContractFinding()];
|
|
75
79
|
const all = [
|
|
76
80
|
...findings,
|
|
77
81
|
...storageChecks,
|
|
@@ -82,6 +86,7 @@ export async function runDoctorCommand(args: ReadonlyArray<string> = []): Promis
|
|
|
82
86
|
...toolChecks,
|
|
83
87
|
...paneChecks,
|
|
84
88
|
...namingChecks,
|
|
89
|
+
...contractChecks,
|
|
85
90
|
];
|
|
86
91
|
const ok = all.every((f) => f.ok);
|
|
87
92
|
if (json) {
|