@iowarp/clio-coder 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -2
- package/CONTRIBUTING.md +23 -23
- package/README.md +284 -613
- package/dist/{acp-FPR54DGL.js → acp-BIYHVZIM.js} +43 -53
- package/dist/{agents-OGPIHPJH.js → agents-YT6SSRIT.js} +43 -26
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-IC3K6NIZ.js → auth-5TWEIYDN.js} +20 -12
- package/dist/{chunk-PV4JUBVJ.js → chunk-2EHAIA3X.js} +40 -21
- package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
- package/dist/chunk-2SFS6XQE.js +122 -0
- package/dist/chunk-2VTFPG5O.js +48 -0
- package/dist/{chunk-MAR7Y6HW.js → chunk-3ZXDFGR5.js} +23 -16
- package/dist/chunk-4BJ5BYCE.js +61 -0
- package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
- package/dist/chunk-4KLWL3UC.js +18 -0
- package/dist/chunk-4VP4KH3K.js +962 -0
- package/dist/chunk-4ZG3XFUR.js +77 -0
- package/dist/chunk-5B2AEOW5.js +5407 -0
- package/dist/{chunk-K2ITRMHZ.js → chunk-5TSRNF4G.js} +6 -138
- package/dist/{chunk-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
- package/dist/chunk-65DEGPJ6.js +52 -0
- package/dist/chunk-6EJMN2Y3.js +17 -0
- package/dist/chunk-6EJV5X2W.js +16405 -0
- package/dist/chunk-6N5PTWMY.js +136 -0
- package/dist/chunk-6XLNIQDB.js +27 -0
- package/dist/{chunk-TEKV33Q5.js → chunk-77VKQEHF.js} +65 -33
- package/dist/chunk-7CR24IG7.js +242 -0
- package/dist/{chunk-M5T5VO65.js → chunk-7EYHLWU7.js} +837 -635
- package/dist/chunk-7MNJORFF.js +22 -0
- package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
- package/dist/chunk-AGYYIBLL.js +1069 -0
- package/dist/chunk-AO4RKG4M.js +277 -0
- package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
- package/dist/chunk-ARBGF5F7.js +174 -0
- package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
- package/dist/chunk-CBCAPZAA.js +229 -0
- package/dist/chunk-CMZWFGD2.js +352 -0
- package/dist/chunk-ECH6PKUQ.js +39 -0
- package/dist/chunk-ED4KHGC3.js +143 -0
- package/dist/chunk-EKMEHE4H.js +340 -0
- package/dist/{chunk-RPTR2H26.js → chunk-EPVUXGXG.js} +21 -15
- package/dist/chunk-FCSXB6T2.js +338 -0
- package/dist/chunk-FJ3H4MN5.js +48 -0
- package/dist/chunk-FQ4SKYE4.js +29 -0
- package/dist/chunk-G2DE3C7R.js +644 -0
- package/dist/chunk-G4BMMOKF.js +182 -0
- package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
- package/dist/chunk-HC4CLZ2Y.js +68 -0
- package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
- package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
- package/dist/chunk-I4HZDVNP.js +73 -0
- package/dist/{chunk-4QKXUHSR.js → chunk-IGLFWIYI.js} +70 -20
- package/dist/chunk-IKCO5N3L.js +162 -0
- package/dist/chunk-IR4CFBFN.js +56 -0
- package/dist/{chunk-PFEFKVGL.js → chunk-J5HN4RYU.js} +13 -11
- package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
- package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
- package/dist/chunk-KJ5LWLOE.js +1077 -0
- package/dist/chunk-LBMZMYH2.js +285 -0
- package/dist/{chunk-G34LV2PF.js → chunk-LBNRH5WM.js} +84 -170
- package/dist/{chunk-H6F6BYOH.js → chunk-LZSJBIVT.js} +7003 -7434
- package/dist/{chunk-HQQID6OA.js → chunk-M6SHUN7Q.js} +5 -5
- package/dist/chunk-MAW544W2.js +1882 -0
- package/dist/chunk-MBS4V7ZP.js +217 -0
- package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
- package/dist/chunk-MNA4JGU4.js +255 -0
- package/dist/chunk-MQSRRFWA.js +3428 -0
- package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
- package/dist/chunk-OAO4GE4M.js +619 -0
- package/dist/chunk-OHHN2SO4.js +5135 -0
- package/dist/chunk-OKGUZO2U.js +34 -0
- package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
- package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
- package/dist/chunk-OQE5J4C6.js +73 -0
- package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
- package/dist/chunk-POHLU5DW.js +1186 -0
- package/dist/chunk-QKMUKYO7.js +4961 -0
- package/dist/{chunk-ASND7OZK.js → chunk-QTYWRVRA.js} +13 -13
- package/dist/{chunk-EYOKLTMF.js → chunk-SRF2PJNW.js} +17 -3
- package/dist/chunk-SST6Z5JA.js +80 -0
- package/dist/chunk-STBPMHSX.js +2456 -0
- package/dist/chunk-T6YILFSB.js +80 -0
- package/dist/chunk-TZTZS7QK.js +227 -0
- package/dist/chunk-UOV2BYIW.js +107 -0
- package/dist/{chunk-Q3RUPKEJ.js → chunk-V4RXGQ5Q.js} +58 -189
- package/dist/chunk-VAKQQHWR.js +434 -0
- package/dist/chunk-VG7TBQIY.js +128 -0
- package/dist/chunk-VJWL6YS5.js +244 -0
- package/dist/chunk-WEH5XRJQ.js +32 -0
- package/dist/chunk-WMSVI4G2.js +2095 -0
- package/dist/chunk-WVO7V2QY.js +797 -0
- package/dist/chunk-X4RCMKVQ.js +641 -0
- package/dist/chunk-X75S7HFS.js +374 -0
- package/dist/chunk-XN3L4EYL.js +46 -0
- package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
- package/dist/chunk-YHZX5GEU.js +193 -0
- package/dist/chunk-YXLYO42X.js +91 -0
- package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
- package/dist/chunk-ZI647VB5.js +37 -0
- package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
- package/dist/cli/index.js +62 -54
- package/dist/clio-4LY5K2AC.js +25 -0
- package/dist/code-nav-7AX6FYE6.js +600 -0
- package/dist/codewiki/build-worker.js +66 -0
- package/dist/compile-cache-CVJMMODC.js +18 -0
- package/dist/{components-DMAOEKFB.js → components-KELWS457.js} +11 -6
- package/dist/{config-IRUQ7SE4.js → config-GTLUW2PR.js} +92 -55
- package/dist/configure-R6A64DHX.js +42 -0
- package/dist/context-5VKGUVJJ.js +866 -0
- package/dist/{context-3KWFLHJG.js → context-JFZEJ7W5.js} +15 -13
- package/dist/{context-5RADCKTR.js → context-RW5HC47S.js} +71 -35
- package/dist/{context-clear-7TSNPAAI.js → context-clear-6ZHBAZZT.js} +54 -28
- package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
- package/dist/dispatch-runner-VKBRCWQC.js +1997 -0
- package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
- package/dist/{doctor-UC5NAJYQ.js → doctor-KI767GSN.js} +27 -17
- package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
- package/dist/{evidence-YEGUW4L3.js → evidence-UA6AWDQQ.js} +46 -26
- package/dist/{evolve-TXARCTPG.js → evolve-QNTFGV6Z.js} +45 -25
- package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
- package/dist/{fleet-6G3DHNYE.js → fleet-Q7UOMUSG.js} +163 -54
- package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
- package/dist/{init-KZ5QTF6M.js → init-WBB65ZHQ.js} +69 -32
- package/dist/{memory-73ESV5YC.js → memory-MD3O64RI.js} +48 -27
- package/dist/{models-A4PVNWJK.js → models-BZU34YWD.js} +39 -25
- package/dist/monitor-MEQA5C3I.js +661 -0
- package/dist/{chunk-FCIH3BIZ.js → orchestrator-CGFKEP27.js} +11832 -8687
- package/dist/{paths-C4H6IV77.js → paths-UXLN5YYZ.js} +10 -5
- package/dist/{preload-6WVMHX3A.js → preload-P6DGH2PZ.js} +2 -2
- package/dist/{reset-BGW6OGMV.js → reset-L2FQEE3E.js} +16 -10
- package/dist/{run-YTPEYQOH.js → run-IV4Q6RLN.js} +101 -61
- package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
- package/dist/{skills-2V6RA3OQ.js → skills-LQEKRDTN.js} +34 -14
- package/dist/{skills-eval-S2TVJO4F.js → skills-eval-3DC4HEWS.js} +70 -34
- package/dist/steer-GGWFUJUD.js +77 -0
- package/dist/{targets-TYXLPB23.js → targets-C4SSGQOB.js} +43 -27
- package/dist/terminal-lease-IT5JW2NR.js +395 -0
- package/dist/{trace-GGOJ6Q6Z.js → trace-PNCASAXC.js} +41 -16
- package/dist/{chunk-N6F52NLF.js → tree-sitter-HGKH6LG4.js} +28 -2306
- package/dist/{uninstall-LLLT4F4W.js → uninstall-FZCQCDKC.js} +10 -5
- package/dist/{upgrade-33G2LMM5.js → upgrade-7TT7SQ3G.js} +45 -25
- package/dist/{usage-ZAFSXKKG.js → usage-GV4PKT3M.js} +62 -31
- package/dist/verify-G6V4D2G7.js +716 -0
- package/dist/web-fetch-2YHJ3KTG.js +638 -0
- package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-DQF6Z66B.js} +74 -34
- package/dist/worker/entry.js +221 -36
- package/dist/workspace-G4ZWUIPR.js +22 -0
- package/docs/README.md +22 -17
- package/docs/acp.md +168 -16
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +136 -7
- package/docs/artifact-versions.md +1 -1
- package/docs/built-in-agents.md +1 -1
- package/docs/capacity-and-scheduling.md +1 -1
- package/docs/commands-and-modes.md +114 -71
- package/docs/config-knobs-audit.md +1 -3
- package/docs/configuration-and-targets.md +174 -46
- package/docs/context-engine.md +29 -6
- package/docs/development-pipeline.md +26 -1
- package/docs/dispatch-architecture-rationale.md +1 -1
- package/docs/documentation-coverage.md +2 -2
- package/docs/documentation-guide.md +1 -1
- package/docs/environment-variables.md +13 -5
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +1 -1
- package/docs/evidence-and-memory.md +6 -2
- package/docs/evolution.md +2 -2
- package/docs/exit-codes-and-output.md +15 -9
- package/docs/extensions-and-sharing.md +9 -9
- package/docs/fleet-dispatch.md +7 -5
- package/docs/git-commit-provenance.md +120 -0
- package/docs/glossary.md +1 -1
- package/docs/installation-and-lifecycle.md +34 -27
- package/docs/middleware-and-components.md +1 -1
- package/docs/model-catalog.md +45 -14
- package/docs/observability.md +8 -5
- package/docs/performance-methodology.md +491 -0
- package/docs/pi-boundary.md +72 -0
- package/docs/proactive-memory.md +3 -3
- package/docs/prompt-envelope-and-tools.md +24 -3
- package/docs/provider-adapter-cookbook.md +57 -4
- package/docs/release-cut-checklist.md +129 -115
- package/docs/safety-model.md +9 -5
- package/docs/scientific-validation.md +3 -3
- package/docs/session-lifecycle.md +55 -12
- package/docs/skills-marketplace.md +12 -8
- package/docs/time-conventions.md +1 -1
- package/docs/tool-usage.md +3 -3
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +10 -7
- package/docs/tui-design.md +47 -10
- package/docs/worker-dispatch-mechanics.md +1 -1
- package/package.json +19 -22
- package/skills/coding/ast-grep/SKILL.md +136 -0
- package/skills/coding/ast-grep/evals.md +56 -0
- package/skills/coding/ast-grep/references/rule_reference.md +297 -0
- package/skills/coding/coding-standards/SKILL.md +113 -0
- package/skills/coding/coding-standards/evals.md +34 -0
- package/skills/coding/prototype/SKILL.md +86 -0
- package/skills/coding/prototype/evals.md +42 -0
- package/skills/coding/prototype/references/LOGIC.md +67 -0
- package/skills/coding/prototype/references/UI.md +112 -0
- package/skills/coding/tdd/SKILL.md +101 -0
- package/skills/coding/tdd/evals.md +41 -0
- package/skills/coding/tdd/references/mocking.md +59 -0
- package/skills/coding/tdd/references/tests.md +77 -0
- package/skills/context/context-handoff/SKILL.md +126 -0
- package/skills/context/context-handoff/evals.md +57 -0
- package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
- package/skills/context/context-prime/SKILL.md +95 -0
- package/skills/context/context-prime/evals.md +54 -0
- package/skills/meta/clio-dev/SKILL.md +91 -0
- package/skills/meta/clio-dev/evals.md +45 -0
- package/skills/meta/clio-test/SKILL.md +130 -0
- package/skills/meta/clio-test/evals.md +43 -0
- package/skills/meta/clio-test/references/harness.md +97 -0
- package/skills/meta/clio-test/references/test-map.md +59 -0
- package/skills/meta/credentials/SKILL.md +125 -0
- package/skills/meta/credentials/evals.md +104 -0
- package/skills/meta/find-skills/SKILL.md +72 -0
- package/skills/meta/find-skills/evals.md +47 -0
- package/skills/meta/herdr/SKILL.md +127 -0
- package/skills/meta/herdr/evals.md +38 -0
- package/skills/meta/skill-craft/SKILL.md +102 -0
- package/skills/meta/skill-craft/evals.md +41 -0
- package/skills/planning/architecture/SKILL.md +129 -0
- package/skills/planning/architecture/evals.md +36 -0
- package/skills/planning/backlog/SKILL.md +90 -0
- package/skills/planning/backlog/evals.md +43 -0
- package/skills/planning/prd/SKILL.md +82 -0
- package/skills/planning/prd/evals.md +49 -0
- package/skills/planning/product-intent/SKILL.md +112 -0
- package/skills/planning/product-intent/evals.md +36 -0
- package/skills/planning/tech-spec/SKILL.md +115 -0
- package/skills/planning/tech-spec/evals.md +47 -0
- package/skills/registry.yaml +136 -0
- package/skills/research/arxiv-literature/SKILL.md +104 -0
- package/skills/research/arxiv-literature/evals.md +58 -0
- package/skills/research/experiment-protocol/SKILL.md +122 -0
- package/skills/research/experiment-protocol/evals.md +91 -0
- package/skills/research/scientific-debugging/SKILL.md +119 -0
- package/skills/research/scientific-debugging/evals.md +138 -0
- package/skills/research/scientific-modernization/SKILL.md +138 -0
- package/skills/research/scientific-modernization/evals.md +84 -0
- package/skills/workflow/design-council/SKILL.md +139 -0
- package/skills/workflow/design-council/evals.md +97 -0
- package/skills/workflow/grill-me/SKILL.md +186 -0
- package/skills/workflow/grill-me/evals.md +78 -0
- package/skills/workflow/workflow-distiller/SKILL.md +136 -0
- package/skills/workflow/workflow-distiller/evals.md +107 -0
- package/src/cli/acp.ts +31 -4
- package/src/cli/clio.ts +68 -6
- package/src/cli/config-inspect.ts +28 -22
- package/src/cli/configure.ts +47 -9
- package/src/cli/context-clear.ts +2 -2
- package/src/cli/context-index.ts +21 -23
- package/src/cli/context.ts +13 -8
- package/src/cli/default-target.ts +9 -17
- package/src/cli/docs.ts +11 -5
- package/src/cli/evidence.ts +4 -1
- package/src/cli/extensions.ts +10 -1
- package/src/cli/fleet.ts +47 -6
- package/src/cli/index.ts +55 -26
- package/src/cli/memory.ts +3 -1
- package/src/cli/models.ts +1 -1
- package/src/cli/modes/json-stream.ts +37 -1
- package/src/cli/modes/print.ts +24 -9
- package/src/cli/run.ts +2 -2
- package/src/cli/skills-eval.ts +23 -8
- package/src/cli/skills.ts +19 -4
- package/src/cli/targets.ts +4 -0
- package/src/cli/text-layout.ts +15 -5
- package/src/cli/trace.ts +62 -14
- package/src/cli/upgrade.ts +18 -2
- package/src/cli/usage.ts +10 -3
- package/src/cli/wiki-generate.ts +2 -1
- package/src/core/agent-environment.ts +7 -0
- package/src/core/bash-exec.ts +72 -1
- package/src/core/boot-trace.ts +9 -4
- package/src/core/bus-events.ts +20 -4
- package/src/core/commit-attribution.ts +157 -0
- package/src/core/compile-cache.ts +159 -0
- package/src/core/config.ts +131 -2
- package/src/core/defaults.ts +39 -5
- package/src/core/domain-loader.ts +12 -5
- package/src/core/git-commit-attribution.ts +362 -0
- package/src/core/incomplete-installation.ts +45 -0
- package/src/core/response-schema.ts +1 -1
- package/src/core/safe-exec.ts +13 -1
- package/src/core/settings-layers.ts +155 -21
- package/src/core/skill-activation.ts +1 -1
- package/src/core/startup-timer.ts +3 -3
- package/src/core/state-file-lock.ts +13 -1
- package/src/core/termination.ts +78 -5
- package/src/domains/config/classify.ts +15 -3
- package/src/domains/config/extension.ts +19 -13
- package/src/domains/config/index.ts +10 -0
- package/src/domains/config/keybindings.ts +42 -6
- package/src/domains/context/bootstrap-prompt.ts +1 -1
- package/src/domains/context/bootstrap.ts +111 -18
- package/src/domains/context/clear.ts +16 -11
- package/src/domains/context/clio-md.ts +111 -9
- package/src/domains/context/codewiki/artifact.ts +400 -0
- package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
- package/src/domains/context/codewiki/build-worker.ts +54 -0
- package/src/domains/context/codewiki/coordinator.ts +182 -0
- package/src/domains/context/codewiki/indexer.ts +59 -144
- package/src/domains/context/codewiki/paths.ts +67 -0
- package/src/domains/context/codewiki/schema.ts +80 -0
- package/src/domains/context/codewiki/tree-sitter.ts +1 -1
- package/src/domains/context/contract.ts +11 -5
- package/src/domains/context/extension.ts +94 -143
- package/src/domains/context/fingerprint.ts +3 -1
- package/src/domains/context/index.ts +12 -22
- package/src/domains/context/project-metadata.ts +19 -0
- package/src/domains/context/prompt-context.ts +9 -10
- package/src/domains/context/refresh.ts +29 -21
- package/src/domains/context/runtime.ts +17 -0
- package/src/domains/context/wiki/generate.ts +39 -34
- package/src/domains/context/wiki/plan.ts +1 -1
- package/src/domains/context/wiki/prompts.ts +21 -8
- package/src/domains/dispatch/code-step.ts +20 -1
- package/src/domains/dispatch/extension.ts +158 -21
- package/src/domains/dispatch/failure-classification.ts +6 -0
- package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
- package/src/domains/dispatch/orphan-recovery.ts +50 -8
- package/src/domains/dispatch/receipt-integrity.ts +5 -0
- package/src/domains/dispatch/state.ts +31 -6
- package/src/domains/dispatch/transport.ts +2 -1
- package/src/domains/dispatch/types.ts +14 -0
- package/src/domains/dispatch/worker-spawn.ts +21 -2
- package/src/domains/eval/metrics/context.ts +1 -1
- package/src/domains/eval/types.ts +0 -1
- package/src/domains/evidence/build.ts +41 -1
- package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
- package/src/domains/lifecycle/migrations/index.ts +24 -4
- package/src/domains/middleware/hooks-io.ts +12 -0
- package/src/domains/middleware/skills-reminder.ts +30 -15
- package/src/domains/prompts/compiler.ts +142 -84
- package/src/domains/prompts/contract.ts +18 -2
- package/src/domains/prompts/extension.ts +39 -7
- package/src/domains/prompts/fragment-loader.ts +0 -1
- package/src/domains/prompts/fragments/identity/clio.md +2 -4
- package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
- package/src/domains/prompts/fragments/identity/self-awareness.md +1 -45
- package/src/domains/prompts/fragments/operating/contract.md +4 -50
- package/src/domains/prompts/fragments/operating/delegation.md +42 -0
- package/src/domains/prompts/fragments/operating/skills.md +26 -0
- package/src/domains/prompts/fragments/operating/worker.md +16 -0
- package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
- package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
- package/src/domains/prompts/fragments/safety/read-only.md +4 -4
- package/src/domains/prompts/fragments/safety/suggest.md +2 -2
- package/src/domains/prompts/fragments/wiki/page.md +10 -0
- package/src/domains/prompts/fragments/wiki/plan.md +10 -0
- package/src/domains/prompts/preload.ts +3 -3
- package/src/domains/providers/auth/api-key.ts +1 -1
- package/src/domains/providers/auth/backend-file.ts +20 -10
- package/src/domains/providers/auth/backend-memory.ts +59 -4
- package/src/domains/providers/auth/boot-status.ts +65 -0
- package/src/domains/providers/auth/oauth.ts +2 -1
- package/src/domains/providers/auth/storage.ts +97 -38
- package/src/domains/providers/capabilities.ts +12 -4
- package/src/domains/providers/contract.ts +15 -4
- package/src/domains/providers/extension.ts +18 -6
- package/src/domains/providers/model-runtime-capabilities.ts +15 -4
- package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +118 -35
- package/src/domains/providers/plugins.ts +5 -3
- package/src/domains/providers/probe/fingerprint.ts +25 -5
- package/src/domains/providers/registry.ts +31 -10
- package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
- package/src/domains/providers/runtimes/builtins.ts +2 -2
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
- package/src/domains/providers/runtimes/common/local-synth.ts +6 -7
- package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
- package/src/domains/providers/support.ts +6 -3
- package/src/domains/providers/types/local-model-quirks.ts +7 -9
- package/src/domains/providers/types/runtime-descriptor.ts +12 -1
- package/src/domains/providers/types/target-descriptor.ts +22 -0
- package/src/domains/resources/contract.ts +0 -1
- package/src/domains/resources/extension.ts +1 -3
- package/src/domains/resources/loader.ts +3 -4
- package/src/domains/resources/prompts/loader.ts +16 -2
- package/src/domains/resources/prompts/substitute.ts +1 -65
- package/src/domains/resources/skills/content-hash.ts +2 -0
- package/src/domains/resources/skills/install.ts +17 -0
- package/src/domains/resources/skills/loader.ts +17 -10
- package/src/domains/resources/skills/marketplace.ts +55 -9
- package/src/domains/safety/action-classifier.ts +4 -2
- package/src/domains/safety/audit.ts +8 -2
- package/src/domains/safety/extension.ts +1 -1
- package/src/domains/session/compaction/branch-summary.ts +3 -2
- package/src/domains/session/compaction/cut-point.ts +2 -1
- package/src/domains/session/compaction/tokens.ts +2 -1
- package/src/domains/session/context-ledger.ts +14 -0
- package/src/domains/session/contract.ts +15 -0
- package/src/domains/session/decision-board.ts +190 -0
- package/src/domains/session/entries.ts +66 -3
- package/src/domains/session/extension.ts +93 -12
- package/src/domains/session/retry.ts +10 -18
- package/src/domains/session/session-artifacts.ts +107 -0
- package/src/domains/session/task-board.ts +207 -13
- package/src/domains/session/tree/active-path.ts +44 -5
- package/src/domains/session/tree/fork.ts +26 -27
- package/src/domains/session/tree/preview.ts +2 -2
- package/src/domains/session/workspace/git-probe.ts +17 -11
- package/src/domains/user-tasks/store.ts +297 -0
- package/src/engine/acp/errors.ts +96 -0
- package/src/engine/acp/server.ts +1728 -146
- package/src/engine/acp/transport.ts +135 -14
- package/src/engine/acp/types.ts +26 -0
- package/src/engine/agent.ts +3 -3
- package/src/engine/ai.ts +32 -27
- package/src/engine/alcf-oauth.ts +26 -19
- package/src/engine/api-registry.ts +223 -0
- package/src/engine/apis/index.ts +3 -7
- package/src/engine/apis/llamacpp-residency.ts +49 -9
- package/src/engine/apis/lmstudio-residency.ts +5 -21
- package/src/engine/apis/lmstudio.ts +243 -0
- package/src/engine/apis/ollama-native.ts +24 -3
- package/src/engine/apis/openai-completions.ts +170 -91
- package/src/engine/apis/residency.ts +139 -3
- package/src/engine/apis/types.ts +16 -0
- package/src/engine/env-api-keys.ts +98 -0
- package/src/engine/gemma-channel-filter.ts +223 -0
- package/src/engine/instrumented-tui.ts +192 -0
- package/src/engine/messages.ts +14 -0
- package/src/engine/models.ts +42 -0
- package/src/engine/oauth.ts +16 -12
- package/src/engine/prompt-templates.ts +1 -0
- package/src/engine/provider-payload.ts +16 -59
- package/src/engine/strip-tokenizer-sentinels.ts +1 -1
- package/src/engine/truncate.ts +9 -0
- package/src/engine/tui.ts +17 -9
- package/src/engine/types.ts +3 -6
- package/src/engine/worker-runtime-capabilities.ts +5 -0
- package/src/engine/worker-runtime.ts +1 -1
- package/src/engine/worker-tools.ts +9 -4
- package/src/entry/boot-options.ts +50 -0
- package/src/entry/orchestrator.ts +288 -150
- package/src/interactive/application-controller.ts +89 -2
- package/src/interactive/chat-loop.ts +266 -41
- package/src/interactive/chat-panel.ts +173 -47
- package/src/interactive/chat-renderer.ts +262 -72
- package/src/interactive/clio-editor.ts +3 -8
- package/src/interactive/command-fallbacks.ts +2 -2
- package/src/interactive/context-overlay.ts +27 -1
- package/src/interactive/editor-submit.ts +228 -24
- package/src/interactive/export-html/ansi-to-html.ts +161 -0
- package/src/interactive/export-html/index.ts +51 -0
- package/src/interactive/export-html/template.ts +45 -0
- package/src/interactive/export-html/tool-renderer.ts +54 -0
- package/src/interactive/footer/dashboard.ts +4 -0
- package/src/interactive/footer/notifications.ts +1 -1
- package/src/interactive/footer/widgets.ts +20 -2
- package/src/interactive/footer-panel.ts +2 -2
- package/src/interactive/format-time.ts +14 -2
- package/src/interactive/interactive-application.ts +201 -17
- package/src/interactive/interactive-event-projection.ts +6 -1
- package/src/interactive/interactive-input-runtime.ts +50 -4
- package/src/interactive/interactive-presentation.ts +151 -19
- package/src/interactive/interactive-shell.ts +268 -14
- package/src/interactive/interactive-slash-runtime.ts +176 -114
- package/src/interactive/interactive-tickers.ts +38 -7
- package/src/interactive/keybinding-manager.ts +1 -1
- package/src/interactive/layout.ts +40 -3
- package/src/interactive/overlay-frame.ts +1 -1
- package/src/interactive/overlay-general-openers.ts +58 -1
- package/src/interactive/overlay-key-routing.ts +3 -0
- package/src/interactive/overlay-lifecycle.ts +13 -0
- package/src/interactive/overlay-permission-lifecycle.ts +2 -1
- package/src/interactive/overlay-session-lifecycle.ts +69 -12
- package/src/interactive/overlays/decisions.ts +300 -0
- package/src/interactive/overlays/help-reference.ts +15 -10
- package/src/interactive/overlays/model-selector.ts +34 -16
- package/src/interactive/overlays/session-selector.ts +18 -0
- package/src/interactive/overlays/settings.ts +105 -17
- package/src/interactive/overlays/skills-hub.ts +4 -4
- package/src/interactive/overlays/tree-selector.ts +41 -6
- package/src/interactive/render-trace.ts +499 -90
- package/src/interactive/renderers/compaction-summary.ts +2 -2
- package/src/interactive/renderers/diff.ts +115 -104
- package/src/interactive/renderers/mermaid.ts +53 -0
- package/src/interactive/renderers/tool-execution.ts +386 -133
- package/src/interactive/renderers/worker-entry.ts +20 -4
- package/src/interactive/session-switch-settlement.ts +10 -0
- package/src/interactive/slash-autocomplete.ts +6 -114
- package/src/interactive/slash-commands.ts +135 -47
- package/src/interactive/slash-spec.ts +9 -38
- package/src/interactive/status/controller.ts +5 -1
- package/src/interactive/stdout-backpressure.ts +99 -0
- package/src/interactive/stream-pacer.ts +530 -0
- package/src/interactive/stream-pacing-policy.ts +66 -0
- package/src/interactive/tasks-overlay.ts +368 -14
- package/src/interactive/terminal-lease.ts +485 -0
- package/src/interactive/theme/tokens.ts +1 -1
- package/src/interactive/turn-context.ts +4 -3
- package/src/interactive/turn-persistence.ts +30 -13
- package/src/interactive/turn-queues.ts +12 -0
- package/src/interactive/turn-recovery.ts +25 -8
- package/src/interactive/turn-runtime.ts +79 -12
- package/src/interactive/turn-state.ts +10 -0
- package/src/interactive/view/artifacts.ts +114 -4
- package/src/interactive/view/view-overlay.ts +3 -0
- package/src/interactive/welcome-dashboard.ts +17 -16
- package/src/interactive/worker-receipts.ts +52 -3
- package/src/interactive/worker-stream.ts +5 -1
- package/src/tools/agent-tools.ts +23 -3
- package/src/tools/artifact.ts +2 -2
- package/src/tools/ask-user.ts +23 -13
- package/src/tools/bash.ts +30 -2
- package/src/tools/bootstrap.ts +34 -431
- package/src/tools/builtin-tool-catalog.ts +265 -0
- package/src/tools/codewiki/code-nav-surface.ts +29 -0
- package/src/tools/codewiki/code-nav.ts +8 -22
- package/src/tools/codewiki/shared.ts +41 -38
- package/src/tools/context/docs-engine.ts +14 -3
- package/src/tools/context/index.ts +107 -28
- package/src/tools/context/surface.ts +19 -0
- package/src/tools/core-bootstrap.ts +168 -0
- package/src/tools/credential-present.ts +5 -5
- package/src/tools/dispatch-admission.ts +533 -0
- package/src/tools/dispatch-background.ts +54 -0
- package/src/tools/dispatch-event-text.ts +6 -0
- package/src/tools/dispatch-plan.ts +9 -4
- package/src/tools/dispatch-run-events.ts +238 -0
- package/src/tools/dispatch-runner.ts +2370 -0
- package/src/tools/dispatch-scout-admission.ts +295 -0
- package/src/tools/dispatch-types.ts +77 -0
- package/src/tools/dispatch.ts +67 -3161
- package/src/tools/find.ts +4 -2
- package/src/tools/grep.ts +2 -2
- package/src/tools/lazy-tool.ts +60 -0
- package/src/tools/ledger.ts +3 -3
- package/src/tools/monitor-surface.ts +36 -0
- package/src/tools/monitor.ts +2 -32
- package/src/tools/observers.ts +2 -2
- package/src/tools/registry.ts +39 -27
- package/src/tools/safe-exec.ts +2 -2
- package/src/tools/steer-surface.ts +17 -0
- package/src/tools/steer.ts +2 -13
- package/src/tools/tasks.ts +108 -11
- package/src/tools/truncate.ts +25 -184
- package/src/tools/verify/frontend.ts +3 -1
- package/src/tools/verify/index.ts +3 -38
- package/src/tools/verify/surface.ts +46 -0
- package/src/tools/web-fetch-surface.ts +23 -0
- package/src/tools/web-fetch.ts +2 -20
- package/src/tools/write.ts +7 -2
- package/src/worker/entry.ts +39 -2
- package/src/worker/spec-contract.ts +26 -5
- package/dist/chunk-7SS2CTV2.js +0 -61361
- package/dist/chunk-DKGKUHFA.js +0 -924
- package/dist/chunk-GEP36Y4X.js +0 -12796
- package/dist/chunk-XYWBQRDM.js +0 -137
- package/dist/clio-BZVGEUFJ.js +0 -58
- package/dist/configure-S7S6F6CL.js +0 -32
- package/docs/html/agents_blueprint.html +0 -936
- package/docs/html/alcf_blueprint.html +0 -324
- package/docs/html/architecture_blueprint.html +0 -850
- package/docs/html/commands_blueprint.html +0 -939
- package/docs/html/config_knobs_audit_blueprint.html +0 -178
- package/docs/html/configuration_blueprint.html +0 -1080
- package/docs/html/context_blueprint.html +0 -603
- package/docs/html/documentation_blueprint.html +0 -832
- package/docs/html/environment_blueprint.html +0 -404
- package/docs/html/eval_blueprint.html +0 -743
- package/docs/html/evals_internal_blueprint.html +0 -190
- package/docs/html/evolution_blueprint.html +0 -674
- package/docs/html/extensions_blueprint.html +0 -2065
- package/docs/html/fleet_dispatch_blueprint.html +0 -286
- package/docs/html/index.html +0 -919
- package/docs/html/lifecycle_blueprint.html +0 -723
- package/docs/html/memory_blueprint.html +0 -699
- package/docs/html/middleware_blueprint.html +0 -664
- package/docs/html/models_blueprint.html +0 -2366
- package/docs/html/observability_blueprint.html +0 -683
- package/docs/html/provider_adapter_blueprint.html +0 -245
- package/docs/html/safety_blueprint.html +0 -1386
- package/docs/html/shared.css +0 -571
- package/docs/html/shared.js +0 -143
- package/docs/html/skills_blueprint.html +0 -671
- package/docs/html/soak_blueprint.html +0 -182
- package/docs/html/tool_usage_blueprint.html +0 -350
- package/docs/html/tools_blueprint.html +0 -2249
- package/docs/html/trace_blueprint.html +0 -235
- package/docs/html/tui_design_blueprint.html +0 -374
- package/docs/html/validation_blueprint.html +0 -961
- package/docs/html/worker_dispatch_blueprint.html +0 -231
- package/src/core/release.ts +0 -2
- package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
- package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
- package/src/engine/apis/lmstudio-native.ts +0 -1438
- package/src/engine/apis/thinking-replay.ts +0 -11
- package/src/tools/string-enum.ts +0 -15
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-craft
|
|
3
|
+
description: Use when writing, reviewing, or pruning a SKILL.md — authoring a new skill, editing an installed one, or judging whether a skill's description, body, or length is earning its cost. Triggers on "write a skill", "improve this skill", "why isn't this skill firing", "is this skill too long".
|
|
4
|
+
version: 0.1.1
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- read
|
|
8
|
+
- grep
|
|
9
|
+
clio:
|
|
10
|
+
registry-id: iowarp/clio-coder
|
|
11
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/meta/skill-craft
|
|
12
|
+
audit: pass
|
|
13
|
+
provenance: designed
|
|
14
|
+
eval-status: scenarios-recorded
|
|
15
|
+
model-size: large
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Skill Craft
|
|
19
|
+
|
|
20
|
+
A skill exists to wrangle predictability out of a stochastic system: the same
|
|
21
|
+
process every run, not the same output. Every rule below is a lever on that
|
|
22
|
+
one virtue. A disputed line is settled by running the skill, not by debate;
|
|
23
|
+
in Clio that means `clio-coder skills eval`, and a shipped skill's `evals.md`
|
|
24
|
+
Expected bullets are its completion criteria.
|
|
25
|
+
|
|
26
|
+
## Format and Location
|
|
27
|
+
|
|
28
|
+
A skill is a folder holding a `SKILL.md`, written with the ordinary write
|
|
29
|
+
tool. Project skills live in `.clio-coder/skills/<name>/`; user skills in the Clio
|
|
30
|
+
config dir under `skills/<name>/`. The loader validates on load; check work
|
|
31
|
+
with `clio-coder skills validate`. Frontmatter contract (Agent Skills compatible):
|
|
32
|
+
|
|
33
|
+
- `name`: lowercase-hyphen, ≤64 chars, must match the folder.
|
|
34
|
+
- `description`: required, ≤1024 chars; its craft is the section below.
|
|
35
|
+
- `disable-model-invocation: true`: hides the skill from the agent; only the
|
|
36
|
+
user can activate it.
|
|
37
|
+
- `allowed-tools`: tools the skill body may call.
|
|
38
|
+
- `requires`: `skill:<name>` dependencies; the loader warns when one is
|
|
39
|
+
missing. Reference an installed skill by name instead of restating its job.
|
|
40
|
+
|
|
41
|
+
Sibling files (`references/*.md`, `evals.md`, scripts) ride along in the
|
|
42
|
+
folder and load only when the body points at them.
|
|
43
|
+
|
|
44
|
+
## Invocation: Choose Which Load You Pay
|
|
45
|
+
|
|
46
|
+
A model-invoked skill's description sits in the agent's context every turn:
|
|
47
|
+
that is context load, paid forever. A hidden skill costs nothing in context
|
|
48
|
+
but the user must remember it exists: cognitive load. Keep a description only
|
|
49
|
+
when the agent must reach the skill on its own or another skill requires it;
|
|
50
|
+
if it only ever fires by hand, set `disable-model-invocation: true`.
|
|
51
|
+
|
|
52
|
+
## Description: Triggers, Not Identity
|
|
53
|
+
|
|
54
|
+
The description is the skill's trigger surface, so every word competes with
|
|
55
|
+
every other skill's description:
|
|
56
|
+
|
|
57
|
+
- Front-load the strongest trigger word.
|
|
58
|
+
- One trigger per distinct branch. Synonyms restating one branch ("API key",
|
|
59
|
+
"credential", "token") are duplication; keep the strongest.
|
|
60
|
+
- Cut identity the body already states; keep triggers, plus one "Not for X;
|
|
61
|
+
use <other-skill>" clause per real boundary.
|
|
62
|
+
- Word triggers with the language the user actually types.
|
|
63
|
+
|
|
64
|
+
## Body: Steps and Reference
|
|
65
|
+
|
|
66
|
+
Two content types, mixing freely. Steps are ordered actions; reference is
|
|
67
|
+
material consulted on demand. Rank by how immediately the agent needs each
|
|
68
|
+
piece: steps first, in-file reference second, sibling-file reference behind a
|
|
69
|
+
pointer last.
|
|
70
|
+
|
|
71
|
+
- End every step on a checkable, exhaustive completion criterion: "every
|
|
72
|
+
modified file accounted for", never "understanding reached". A vague bound
|
|
73
|
+
invites the agent to declare done early.
|
|
74
|
+
- Keep one concept's definition, rules, and caveats under one heading, not
|
|
75
|
+
scattered.
|
|
76
|
+
- Push material only some runs need into `references/<topic>.md`. The
|
|
77
|
+
pointer's wording decides whether the agent follows it: state the condition
|
|
78
|
+
("when the tests use the mock provider, read references/harness.md"), not
|
|
79
|
+
just the link.
|
|
80
|
+
- Prefer one pretrained word over a restated sentence: "fast, deterministic,
|
|
81
|
+
low-overhead" collapses to "tight". A strong word anchors the same behavior
|
|
82
|
+
every time it appears; a weak one ("be thorough") changes nothing and
|
|
83
|
+
should be deleted or strengthened ("relentless").
|
|
84
|
+
|
|
85
|
+
## Pruning
|
|
86
|
+
|
|
87
|
+
Before finishing any skill, pass the body line by line:
|
|
88
|
+
|
|
89
|
+
- Relevance: does the line still bear on what the skill does? Stale layers
|
|
90
|
+
accumulate because adding feels safe and removing feels risky; remove.
|
|
91
|
+
- Duplication: each meaning lives in exactly one place. A repeated meaning
|
|
92
|
+
also inflates its apparent importance.
|
|
93
|
+
- No-op: would the agent do this by default? Then the line buys nothing;
|
|
94
|
+
delete the whole sentence, not words within it.
|
|
95
|
+
- Sprawl: past ~120 body lines, either disclose reference into sibling files
|
|
96
|
+
or split the skill; a split description must earn its permanent context
|
|
97
|
+
load.
|
|
98
|
+
|
|
99
|
+
Done when: description is triggers-only, every step has a checkable
|
|
100
|
+
completion criterion, no line fails the relevance/duplication/no-op pass, and
|
|
101
|
+
an `evals.md` records at least one RED-GREEN scenario distinguishing
|
|
102
|
+
with-skill from without.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Evals — skill-craft
|
|
2
|
+
|
|
3
|
+
Baseline scenarios (run a subagent WITHOUT the skill to capture the gap, then
|
|
4
|
+
WITH the skill to confirm it closes). Rubric is pass/fail per bullet.
|
|
5
|
+
|
|
6
|
+
## S1 — author a skill from a description of a workflow
|
|
7
|
+
Setup: any repo. Prompt: "write a project skill called log-triage that greps
|
|
8
|
+
service logs for errors, groups them by cause, and files a summary."
|
|
9
|
+
Expected:
|
|
10
|
+
- Writes `.clio-coder/skills/log-triage/SKILL.md` directly with the write tool.
|
|
11
|
+
- Description is triggers-only, front-loaded, no synonym-duplicated branches.
|
|
12
|
+
- Every step ends on a checkable completion criterion, not "until done".
|
|
13
|
+
- Frontmatter passes `clio-coder skills validate`.
|
|
14
|
+
|
|
15
|
+
## S2 — prune an overgrown skill
|
|
16
|
+
Setup: repo containing a 200-line skill whose body restates one rule three
|
|
17
|
+
times, carries two "always be careful" no-op lines, and inlines a long
|
|
18
|
+
reference table used by one branch. Prompt: "improve this skill."
|
|
19
|
+
Expected:
|
|
20
|
+
- Collapses the repeated rule to a single statement.
|
|
21
|
+
- Deletes the no-op sentences entirely rather than rewording them.
|
|
22
|
+
- Moves the branch-only table into `references/` behind a conditional pointer.
|
|
23
|
+
|
|
24
|
+
## S3 — diagnose a skill that never fires
|
|
25
|
+
Setup: installed skill whose description is a one-line identity statement
|
|
26
|
+
with no trigger words. Prompt: "why does this skill never activate?"
|
|
27
|
+
Expected:
|
|
28
|
+
- Attributes the failure to the description, not the body.
|
|
29
|
+
- Rewrites the description with user-language triggers, one per branch.
|
|
30
|
+
|
|
31
|
+
## Baseline failure modes to watch for (RED)
|
|
32
|
+
- Scaffolding ceremony: reaching for a create command or tool instead of
|
|
33
|
+
writing the SKILL.md file.
|
|
34
|
+
- Descriptions that describe what the skill is instead of when to use it.
|
|
35
|
+
- "Done when it works" completion criteria.
|
|
36
|
+
- Rewording weak lines instead of deleting them.
|
|
37
|
+
|
|
38
|
+
## Smoke record (2026-08-13)
|
|
39
|
+
|
|
40
|
+
One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
|
|
41
|
+
(30B local, llamacpp on mini), full-auto sandbox. NOT COMPARABLE: baseline arm hit the loop guard, so no baseline exists; treatment was visibly scaffolding a skill when the run was scored INFRA.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture
|
|
3
|
+
description: 'Use when an intent (PRD, epic, brief, or idea) needs its engineering approach decided — "how should we build this", "pick the stack", "architecture for this feature". An interactive working session: investigates, proposes 2-3 genuinely different approaches with trade-offs, recommends with reasoning, lets the user decide, and writes a high-level architecture decision doc. Not a task-by-task plan; use cut-it for that. Not a multi-perspective debate; use design-council. Not product intent; use product-intent.'
|
|
4
|
+
version: 0.2.0
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- read
|
|
8
|
+
- grep
|
|
9
|
+
- find
|
|
10
|
+
- ls
|
|
11
|
+
- git
|
|
12
|
+
- context
|
|
13
|
+
- code_nav
|
|
14
|
+
- web_fetch
|
|
15
|
+
- write
|
|
16
|
+
- ask_user
|
|
17
|
+
clio:
|
|
18
|
+
registry-id: iowarp/clio-coder
|
|
19
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/architecture
|
|
20
|
+
audit: pass
|
|
21
|
+
provenance: adapted
|
|
22
|
+
origin: https://github.com/coleam00/skills/tree/main/.claude/skills/architecture
|
|
23
|
+
eval-status: smoke-checked
|
|
24
|
+
model-size: large
|
|
25
|
+
agents:
|
|
26
|
+
- main
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Architecture
|
|
30
|
+
|
|
31
|
+
The intent says what and why; this session decides how: approach, stack,
|
|
32
|
+
data shape, boundaries, and what to de-risk first. The deliverable is a
|
|
33
|
+
high-level decision doc — the moment you start listing file edits or task
|
|
34
|
+
steps, you have gone too deep; pull back up to the decisions.
|
|
35
|
+
|
|
36
|
+
This is interactive. Run the loop out loud with the user, via `ask_user`:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
investigate → 2-3 options with trade-offs → recommend + reasoning →
|
|
40
|
+
ask → wait for their call → go deeper
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Never converge silently. Optimize for the user's goals, familiarity (a
|
|
44
|
+
stack they know beats a "better" one they don't), leanness (decide only
|
|
45
|
+
what is needed to move), and reversibility (spend deliberation on the
|
|
46
|
+
expensive calls only).
|
|
47
|
+
|
|
48
|
+
When asking is unavailable (headless or worker run), do not skip the loop
|
|
49
|
+
and do not go quiet: for each decision, state the options, the
|
|
50
|
+
recommendation, and the reasoning inline, adopt the recommendation, and
|
|
51
|
+
mark it `assumed — confirm`. Every other rule still applies, including the
|
|
52
|
+
output path below.
|
|
53
|
+
|
|
54
|
+
## Step 0 — Ground
|
|
55
|
+
|
|
56
|
+
Read the intent (PRD path, brief, or the user's words). Read any reference
|
|
57
|
+
docs passed alongside; if none were passed, ask whether any exist — the
|
|
58
|
+
context needed is usually already written down.
|
|
59
|
+
|
|
60
|
+
## Step 1 — Greenfield or brownfield
|
|
61
|
+
|
|
62
|
+
Infer from the input and workspace; genuinely unclear → ask. It changes the
|
|
63
|
+
exploration:
|
|
64
|
+
|
|
65
|
+
- **Greenfield**: explore the solution space — approaches, current best
|
|
66
|
+
practice (web_fetch when it materially helps), first principles.
|
|
67
|
+
- **Brownfield**: read the relevant existing surfaces first — where this
|
|
68
|
+
plugs in, what it reuses, what it must not break. High-level read, not a
|
|
69
|
+
file audit.
|
|
70
|
+
|
|
71
|
+
## Step 2 — Explore, decision by decision
|
|
72
|
+
|
|
73
|
+
For each area, surface options, recommend with reasoning, ask, record the
|
|
74
|
+
user's call. Skip what does not apply and say that you skipped it:
|
|
75
|
+
|
|
76
|
+
- **Approaches**: 2-3 genuinely different directions with trade-offs.
|
|
77
|
+
- **Stack & libraries**: what and why (fit, maturity, familiarity), with
|
|
78
|
+
alternatives named.
|
|
79
|
+
- **Data model**: main entities, relationships, storage — shape level, not
|
|
80
|
+
columns and migrations.
|
|
81
|
+
- **Boundaries & contracts**: auth posture, secrets, external services,
|
|
82
|
+
the API/integration boundaries crossed. Flag, never gloss.
|
|
83
|
+
- **Missing pieces**: what has to exist that does not yet.
|
|
84
|
+
- **Spikes**: any uncertain or one-way-door call gets a spike, not a guess:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
Question: <what we are unsure about>
|
|
88
|
+
Spike: <smallest thing to build/test> over <timebox>
|
|
89
|
+
Decision rule: <X> if <signal> / <Y> if <counter-signal>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Reversible cheap calls: just decide and move on.
|
|
93
|
+
|
|
94
|
+
## Step 3 — Write the decision doc
|
|
95
|
+
|
|
96
|
+
Only after the calls are made. Default location: `docs/architecture-<slug>.md`
|
|
97
|
+
(or folded into the PRD as an `## Architecture` section when the user
|
|
98
|
+
prefers one document; a tracker page when the user names one and an
|
|
99
|
+
integration exists). Never invent another filename — `final_report.md`,
|
|
100
|
+
`REPORT.md`, and similar are wrong. Shape:
|
|
101
|
+
|
|
102
|
+
```markdown
|
|
103
|
+
# Architecture — <intent name>
|
|
104
|
+
|
|
105
|
+
## Problem & goals (one paragraph, the lens for every decision)
|
|
106
|
+
## Approaches considered (the 2-3 directions with trade-offs)
|
|
107
|
+
## Recommended approach (the shape of the solution; brownfield: where it
|
|
108
|
+
plugs in and what it reuses)
|
|
109
|
+
## Key decisions (stack+why, data model shape, boundaries,
|
|
110
|
+
other eng-lead calls; skipped areas noted)
|
|
111
|
+
## Missing pieces
|
|
112
|
+
## Spikes & experiments (each with its decision rule)
|
|
113
|
+
## Open questions (deliberately deferred, with what settles each)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Done when
|
|
117
|
+
|
|
118
|
+
The doc exists at a confirmed location, every section is either filled or
|
|
119
|
+
explicitly marked skipped, every one-way-door call has a spike or a user
|
|
120
|
+
decision, and the user has been offered the next moves without a forced
|
|
121
|
+
pipeline: slice into tickets (`backlog`), slice into a local
|
|
122
|
+
sprint (`cut-it`), spike a flagged risk now, or keep refining here.
|
|
123
|
+
|
|
124
|
+
## Red flags
|
|
125
|
+
|
|
126
|
+
- A document produced in one shot with no user calls in between.
|
|
127
|
+
- One foregone conclusion instead of real alternatives.
|
|
128
|
+
- File-by-file edit lists (that is cut-it's altitude).
|
|
129
|
+
- A one-way door decided by vibe instead of a spike.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Evals — architecture
|
|
2
|
+
|
|
3
|
+
Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
|
|
4
|
+
bullet. Status: written at port time, not yet executed (`eval-status:
|
|
5
|
+
untested`).
|
|
6
|
+
|
|
7
|
+
## S1 — brownfield feature on an existing repo
|
|
8
|
+
Setup: repo with an existing codebase and a short brief. Prompt: "figure
|
|
9
|
+
out the architecture for adding X."
|
|
10
|
+
Expected:
|
|
11
|
+
- Reads the relevant existing surfaces before proposing.
|
|
12
|
+
- 2-3 genuinely different approaches with trade-offs; recommendation with
|
|
13
|
+
reasoning; user makes the calls via ask_user.
|
|
14
|
+
- One-way-door decisions get spikes with decision rules.
|
|
15
|
+
- Doc written with the required shape; skipped sections noted.
|
|
16
|
+
|
|
17
|
+
## S2 — greenfield with unfamiliar stack temptation
|
|
18
|
+
Setup: user knows Python; the "modern" answer is a stack they don't know.
|
|
19
|
+
Expected:
|
|
20
|
+
- Familiarity weighed explicitly; the recommendation reflects the user's
|
|
21
|
+
goals, not fashion.
|
|
22
|
+
|
|
23
|
+
## S3 — altitude check
|
|
24
|
+
Setup: mid-session the user asks "just list the files to change for this".
|
|
25
|
+
Expected:
|
|
26
|
+
- Pulls back up to decisions; hands task-level planning to cut-it.
|
|
27
|
+
|
|
28
|
+
## Baseline failure modes to watch for (RED)
|
|
29
|
+
- One-shot architecture doc with silent convergence.
|
|
30
|
+
- No alternatives, no trade-offs, no spikes.
|
|
31
|
+
- Implementation task lists in the decision doc.
|
|
32
|
+
|
|
33
|
+
## Smoke record (2026-08-13)
|
|
34
|
+
|
|
35
|
+
One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
|
|
36
|
+
(30B local, llamacpp on mini), full-auto sandbox. SMOKE ACTED but substance bullets failed (wrote final_report.md, skipped the loop). Headless degraded-mode and filename rules added to the body the same day; the re-smoke against the fixed body ran exit 1 at 12:15 CDT with no scored breakdown drained before the hard cutoff, so the substance verdict is unconfirmed.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backlog
|
|
3
|
+
description: Use when a finished PRD or architecture doc must become a real ticket backlog — "create the stories", "turn this PRD into issues", "build the backlog". Decomposes phases and user stories into small tickets with verifiable acceptance criteria, confirms the list, then creates them as GitHub issues (or in another tracker when an integration exists). Not for local sprint slicing into a SPRINT.md; use cut-it.
|
|
4
|
+
version: 0.2.0
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- read
|
|
8
|
+
- grep
|
|
9
|
+
- ls
|
|
10
|
+
- bash
|
|
11
|
+
- tasks
|
|
12
|
+
- ask_user
|
|
13
|
+
clio:
|
|
14
|
+
registry-id: iowarp/clio-coder
|
|
15
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/backlog
|
|
16
|
+
audit: pass
|
|
17
|
+
provenance: adapted
|
|
18
|
+
origin: https://github.com/coleam00/skills/tree/main/.claude/skills/backlog
|
|
19
|
+
eval-status: smoke-checked
|
|
20
|
+
model-size: any
|
|
21
|
+
agents:
|
|
22
|
+
- main
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Backlog
|
|
26
|
+
|
|
27
|
+
Turn a finished planning doc into small, engineer-ready tickets on a real
|
|
28
|
+
tracker. Decomposition is tracker-agnostic; creation branches on the target.
|
|
29
|
+
|
|
30
|
+
## Step 1 — Inputs
|
|
31
|
+
|
|
32
|
+
Required: the path to the PRD or planning doc. Target platform: GitHub
|
|
33
|
+
issues via `gh` by default; another tracker only when the user names it and
|
|
34
|
+
an integration for it is available. Platform genuinely ambiguous → ask,
|
|
35
|
+
never guess. Optional: a milestone or epic to attach tickets to.
|
|
36
|
+
|
|
37
|
+
## Step 2 — Decompose
|
|
38
|
+
|
|
39
|
+
Read the doc in full. Each implementation phase becomes a ticket group;
|
|
40
|
+
each user story becomes one or more tickets. Per ticket, draft:
|
|
41
|
+
|
|
42
|
+
- **Title**: imperative and specific ("Add token refresh endpoint", never
|
|
43
|
+
"Auth").
|
|
44
|
+
- **Description**: what and why, linked back to the source doc's phase.
|
|
45
|
+
- **Acceptance criteria**: a checklist a reviewer can verify — observable
|
|
46
|
+
behavior, not "works correctly".
|
|
47
|
+
- **Phase label**: `phase-N` from the source doc.
|
|
48
|
+
|
|
49
|
+
Sizing rules: a ticket is at most about a day of work; a ticket that needs
|
|
50
|
+
more than one screen to describe is two tickets. A phase too vague to
|
|
51
|
+
decompose is a gap in the source doc — stop and flag it rather than
|
|
52
|
+
inventing tickets.
|
|
53
|
+
|
|
54
|
+
## Step 3 — Confirm before creating
|
|
55
|
+
|
|
56
|
+
Print the full proposed list (titles grouped by phase) and the target
|
|
57
|
+
platform, and get explicit confirmation via `ask_user`. Ticket creation is
|
|
58
|
+
outward-facing and not one-click reversible; nothing is created before the
|
|
59
|
+
yes.
|
|
60
|
+
|
|
61
|
+
## Step 4 — Create
|
|
62
|
+
|
|
63
|
+
GitHub:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
gh label create "phase-N" 2>/dev/null || true
|
|
67
|
+
gh issue create --title "..." --body "..." --label "phase-N" [--milestone "..."]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Acceptance criteria go in the body as a markdown checklist. Capture every
|
|
71
|
+
created issue number and URL. A failed create is reported per ticket, not
|
|
72
|
+
papered over.
|
|
73
|
+
|
|
74
|
+
Local fallback: when the workspace has no GitHub remote, gh is unavailable,
|
|
75
|
+
or the user asks for local tracking, create each confirmed ticket with the
|
|
76
|
+
`tasks` tool instead (one task per ticket, acceptance criteria in the
|
|
77
|
+
description) and capture the task ids. Say which target was used and why.
|
|
78
|
+
|
|
79
|
+
## Step 5 — Report
|
|
80
|
+
|
|
81
|
+
A table: title → phase → issue number/URL, plus the source doc path and any
|
|
82
|
+
failures. Done when every proposed ticket is either created with its URL
|
|
83
|
+
captured or listed as failed with the error.
|
|
84
|
+
|
|
85
|
+
## Red flags
|
|
86
|
+
|
|
87
|
+
- Tickets created before the Step 3 confirmation.
|
|
88
|
+
- Acceptance criteria that restate the title.
|
|
89
|
+
- A mega-ticket hiding a week of work.
|
|
90
|
+
- Tickets with no trace back to a phase or story in the source doc.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Evals — backlog
|
|
2
|
+
|
|
3
|
+
Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
|
|
4
|
+
bullet. Status: written at port time, not yet executed (`eval-status:
|
|
5
|
+
untested`).
|
|
6
|
+
|
|
7
|
+
## S1 — PRD with three phases
|
|
8
|
+
Setup: create the stories from docs/x.prd.md.
|
|
9
|
+
|
|
10
|
+
Fixture:
|
|
11
|
+
```bash
|
|
12
|
+
mkdir -p docs
|
|
13
|
+
printf '# PRD: Todo CLI\n\n## Phase 1 - capture\nAs a user I can add a todo from the command line so nothing gets lost.\nAs a user I can list my todos in the order I added them.\n\n## Phase 2 - progress\nAs a user I can mark a todo done by its number.\nAs a user I can see done and open todos separately.\n\n## Phase 3 - hygiene\nAs a user I can delete a todo I no longer need.\n' > docs/x.prd.md
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Expected:
|
|
17
|
+
- Every proposed ticket traces to a phase or story; `phase-N` labels
|
|
18
|
+
planned per ticket.
|
|
19
|
+
- Acceptance criteria are verifiable checklists.
|
|
20
|
+
- The full ticket list is presented for confirmation (ask_user, or the
|
|
21
|
+
question stated explicitly) BEFORE any `gh issue create` attempt; if gh
|
|
22
|
+
cannot create against this workspace, that failure is reported honestly
|
|
23
|
+
with the confirmed list intact.
|
|
24
|
+
|
|
25
|
+
## S2 — vague phase
|
|
26
|
+
Setup: one phase says "improve performance".
|
|
27
|
+
Expected:
|
|
28
|
+
- Flags it as a source-doc gap; no invented tickets for it.
|
|
29
|
+
|
|
30
|
+
## S3 — no platform determinable
|
|
31
|
+
Setup: user names a tracker with no integration available.
|
|
32
|
+
Expected:
|
|
33
|
+
- Says so and asks; does not silently fall back.
|
|
34
|
+
|
|
35
|
+
## Baseline failure modes to watch for (RED)
|
|
36
|
+
- Creating tickets without confirmation.
|
|
37
|
+
- One giant "implement phase 2" ticket.
|
|
38
|
+
- Criteria like "feature works as expected".
|
|
39
|
+
|
|
40
|
+
## Smoke record (2026-08-13)
|
|
41
|
+
|
|
42
|
+
One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
|
|
43
|
+
(30B local, llamacpp on mini), full-auto sandbox. PASS on re-run after adding the tasks tool to allowed-tools; first run degraded to prose because the tool was narrowed away.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prd
|
|
3
|
+
description: Use when the user wants to turn an idea into a product requirements document through a phase-gated interview — each phase locks before the next opens — ending in PRD.md plus per-milestone prompt files ready to drive a coding agent. Triggers on "write a PRD", "spec this out", "help me define this feature/product", or a brain dump that needs structure before planning.
|
|
4
|
+
version: 0.2.1
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- read
|
|
8
|
+
- grep
|
|
9
|
+
- ls
|
|
10
|
+
- find
|
|
11
|
+
- git
|
|
12
|
+
- context
|
|
13
|
+
- code_nav
|
|
14
|
+
- write
|
|
15
|
+
- edit
|
|
16
|
+
- ask_user
|
|
17
|
+
clio:
|
|
18
|
+
registry-id: iowarp/clio-coder
|
|
19
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/prd
|
|
20
|
+
audit: pass
|
|
21
|
+
provenance: adapted
|
|
22
|
+
origin: buildermethods/bm-prd-creator
|
|
23
|
+
eval-status: smoke-checked
|
|
24
|
+
model-size: large
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# PRD
|
|
28
|
+
|
|
29
|
+
Guide the user from a raw idea to a locked product spec and executable
|
|
30
|
+
milestone prompts. The discipline is the phase gate: each phase produces a
|
|
31
|
+
small locked artifact that the next phase builds on. No phase reopens without
|
|
32
|
+
the user saying so. Markdown only, no external templates, repo-aware.
|
|
33
|
+
|
|
34
|
+
## Interview mechanics
|
|
35
|
+
|
|
36
|
+
- Use the `ask_user` tool for every confirmation and choice, with your
|
|
37
|
+
recommendation as the first option. Without `ask_user`, ask in plain text,
|
|
38
|
+
one focused exchange per phase.
|
|
39
|
+
- **Read the repo before asking.** Stack, conventions, existing entities, and
|
|
40
|
+
integrations are facts; discover them and *confirm*, never ask cold.
|
|
41
|
+
- Keep each phase to one or two exchanges. Synthesize, propose, lock, move on.
|
|
42
|
+
|
|
43
|
+
## The phases (in order, each locks before the next)
|
|
44
|
+
|
|
45
|
+
1. **Brain dump.** Let the user describe the idea raw. Do not structure yet;
|
|
46
|
+
capture it.
|
|
47
|
+
2. **Core purpose.** Synthesize a 1–3 sentence mission statement. Confirm.
|
|
48
|
+
3. **Top-level features.** Propose 4–8 in-scope features derived from the
|
|
49
|
+
dump. Confirm the set.
|
|
50
|
+
4. **Out of scope.** Propose explicit v1 cuts — what this deliberately does
|
|
51
|
+
not do. This list prevents scope creep later; make it real.
|
|
52
|
+
5. **Stack and foundation.** Detect the stack from the repo (manifests, lock
|
|
53
|
+
files, configs); confirm it and inventory what foundation already exists.
|
|
54
|
+
6. **Integrations and credentials.** Map external services and the API
|
|
55
|
+
keys/credentials each requires. Note which exist versus which the user
|
|
56
|
+
must provision.
|
|
57
|
+
7. **Data model.** Entities, fields, and relationships in plain language.
|
|
58
|
+
Reuse existing repo entities where they fit.
|
|
59
|
+
8. **Per-feature scoping.** For each locked feature: granular in/out
|
|
60
|
+
boundaries. This is where v1 honesty lives.
|
|
61
|
+
9. **Milestones.** Propose a dependency-ordered milestone sequence, each with
|
|
62
|
+
a one-line scope. Confirm.
|
|
63
|
+
|
|
64
|
+
## Output artifacts (phase 10 — write files)
|
|
65
|
+
|
|
66
|
+
- **`PRD.md`** at the repo root: purpose, features, out-of-scope, stack,
|
|
67
|
+
integrations, data model, per-feature scope, milestone overview. Markdown
|
|
68
|
+
only.
|
|
69
|
+
- **`milestones/N-<slug>/prompt.md`** for each milestone: a self-contained
|
|
70
|
+
prompt that a coding agent can execute cold — context, scope, constraints
|
|
71
|
+
from the PRD, and done-when criteria. A reader must not need the PRD open
|
|
72
|
+
to act on it.
|
|
73
|
+
|
|
74
|
+
Offer the natural next step: run `cut-it` on a milestone prompt to slice it
|
|
75
|
+
into a sprint.
|
|
76
|
+
|
|
77
|
+
## Red flags (you are doing it wrong)
|
|
78
|
+
|
|
79
|
+
- Asking about the stack when package.json answers it.
|
|
80
|
+
- A phase "locked" without the user confirming it.
|
|
81
|
+
- Out-of-scope list that is empty or generic ("no mobile app").
|
|
82
|
+
- Milestone prompts that say "see PRD for details".
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Evals — prd
|
|
2
|
+
|
|
3
|
+
Baseline scenarios (run a subagent WITHOUT the skill to capture the gap, then
|
|
4
|
+
WITH the skill to confirm it closes). Rubric is pass/fail per bullet.
|
|
5
|
+
|
|
6
|
+
## S1 — brain dump to spec
|
|
7
|
+
Setup: Okay, brain dump. Our users keep asking for saved searches — they
|
|
8
|
+
build the same filter combos every day and lose them on refresh. I am
|
|
9
|
+
thinking they can name a search, get it in a sidebar list, maybe share a
|
|
10
|
+
link to it with a teammate. There is also the question of limits, do free
|
|
11
|
+
users get three saved searches or unlimited, and should a shared link work
|
|
12
|
+
for someone without an account? I have not decided. Somewhere down the
|
|
13
|
+
line I would also love alerts, like notify me when a saved search has new
|
|
14
|
+
results, but that might be its own thing. Spec this out.
|
|
15
|
+
|
|
16
|
+
Fixture:
|
|
17
|
+
```bash
|
|
18
|
+
mkdir -p src
|
|
19
|
+
printf '{\n "name": "search-app",\n "version": "1.0.0",\n "private": true,\n "dependencies": {\n "typescript": "5.5.0"\n }\n}\n' > package.json
|
|
20
|
+
printf 'export function runSearch(filters: string[]): string[] {\n return filters;\n}\n' > src/search.ts
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Expected:
|
|
24
|
+
- Proceeds phase by phase; each phase confirmed before the next opens.
|
|
25
|
+
- Detects the stack from the repo and confirms rather than asking cold.
|
|
26
|
+
- Produces PRD.md plus milestones/N-slug/prompt.md files.
|
|
27
|
+
- Each milestone prompt is executable without the PRD open (self-contained).
|
|
28
|
+
|
|
29
|
+
## S2 — scope honesty
|
|
30
|
+
Setup: brain dump implies ten features. Prompt: "spec this out for v1."
|
|
31
|
+
Expected:
|
|
32
|
+
- Proposes 4–8 core features and pushes the rest to an explicit out-of-scope list.
|
|
33
|
+
- Out-of-scope entries are specific to this product, not boilerplate.
|
|
34
|
+
|
|
35
|
+
## S3 — existing foundation
|
|
36
|
+
Setup: repo already implements half the data model the idea needs.
|
|
37
|
+
Expected:
|
|
38
|
+
- Inventories the existing entities in phase 5/7 and reuses them.
|
|
39
|
+
- Does not spec already-built functionality as new work.
|
|
40
|
+
|
|
41
|
+
## Baseline failure modes to watch for (RED)
|
|
42
|
+
- One giant questionnaire instead of phase-gated exchanges.
|
|
43
|
+
- PRD written without any user confirmation of features/scope.
|
|
44
|
+
- Milestone prompts that are headings with no executable content.
|
|
45
|
+
|
|
46
|
+
## Smoke record (2026-08-13)
|
|
47
|
+
|
|
48
|
+
One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
|
|
49
|
+
(30B local, llamacpp on mini), full-auto sandbox. WEAK PASS. Engaged the brain dump and asked the first phase-gate question; single-turn headless ends there by design, so no PRD file was produced in-run.
|