@iowarp/clio-coder 0.3.1 → 0.3.3
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 +233 -373
- package/CONTRIBUTING.md +23 -23
- package/README.md +284 -613
- package/dist/{acp-FPR54DGL.js → acp-P2AQILE2.js} +43 -53
- package/dist/{agents-OGPIHPJH.js → agents-72W3BI7I.js} +43 -26
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-IC3K6NIZ.js → auth-5TWEIYDN.js} +20 -12
- package/dist/chunk-2DJ2KNFG.js +2095 -0
- package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
- package/dist/chunk-2SFS6XQE.js +122 -0
- package/dist/{chunk-PV4JUBVJ.js → chunk-2TLUCQVG.js} +40 -21
- package/dist/chunk-2VTFPG5O.js +48 -0
- package/dist/chunk-4BJ5BYCE.js +61 -0
- package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
- package/dist/chunk-4VP4KH3K.js +962 -0
- package/dist/chunk-4XUGQOHA.js +797 -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-4QKXUHSR.js → chunk-5UFT4SUX.js} +70 -20
- 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-6N5PTWMY.js +136 -0
- package/dist/chunk-6SGHMWE3.js +277 -0
- package/dist/chunk-6XLNIQDB.js +27 -0
- package/dist/chunk-7CR24IG7.js +242 -0
- 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-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
- 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-COU2UHX6.js +400 -0
- package/dist/chunk-DSELYM6W.js +1077 -0
- package/dist/chunk-DUYJ5IO6.js +644 -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-FCSXB6T2.js +338 -0
- package/dist/chunk-FJ3H4MN5.js +48 -0
- package/dist/{chunk-RPTR2H26.js → chunk-FNTMWMX5.js} +21 -15
- package/dist/chunk-FQ4SKYE4.js +29 -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-IKCO5N3L.js +162 -0
- package/dist/chunk-IR4CFBFN.js +56 -0
- package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
- package/dist/chunk-J7CWMCQD.js +255 -0
- package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
- package/dist/chunk-KZWTDYJF.js +217 -0
- package/dist/chunk-LBMZMYH2.js +285 -0
- package/dist/{chunk-G34LV2PF.js → chunk-LM5TQCJZ.js} +84 -170
- package/dist/chunk-LW6DSM3M.js +5135 -0
- package/dist/chunk-LWLEKMDQ.js +3482 -0
- package/dist/{chunk-H6F6BYOH.js → chunk-LZSJBIVT.js} +7003 -7434
- package/dist/{chunk-HQQID6OA.js → chunk-M6SHUN7Q.js} +5 -5
- package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
- package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
- package/dist/chunk-OAO4GE4M.js +619 -0
- package/dist/{chunk-Q3RUPKEJ.js → chunk-OC7FIQPC.js} +58 -189
- 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-MAR7Y6HW.js → chunk-PAJK6MAQ.js} +23 -16
- package/dist/{chunk-M5T5VO65.js → chunk-PIWWS5BL.js} +837 -635
- package/dist/chunk-POHLU5DW.js +1186 -0
- package/dist/chunk-QKMUKYO7.js +4961 -0
- package/dist/chunk-SRDMMSEP.js +16405 -0
- package/dist/chunk-SST6Z5JA.js +80 -0
- package/dist/chunk-STBPMHSX.js +2456 -0
- package/dist/chunk-T6YILFSB.js +80 -0
- package/dist/chunk-TZK7PACC.js +174 -0
- package/dist/chunk-TZTZS7QK.js +227 -0
- package/dist/{chunk-ASND7OZK.js → chunk-UFIIWP2H.js} +13 -13
- package/dist/chunk-UOV2BYIW.js +107 -0
- package/dist/{chunk-PFEFKVGL.js → chunk-V6RTAOC2.js} +13 -11
- package/dist/chunk-VAKQQHWR.js +434 -0
- package/dist/chunk-VG7TBQIY.js +128 -0
- package/dist/chunk-VJWL6YS5.js +244 -0
- package/dist/{chunk-EYOKLTMF.js → chunk-VPAYEGVX.js} +17 -3
- package/dist/chunk-WEH5XRJQ.js +32 -0
- package/dist/chunk-X4RCMKVQ.js +641 -0
- package/dist/{chunk-TEKV33Q5.js → chunk-X6IAEBZR.js} +65 -33
- package/dist/chunk-XBXAASKX.js +18 -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/chunk-ZWMF7253.js +1882 -0
- package/dist/cli/index.js +62 -54
- package/dist/clio-JOU4FXVA.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-XCDVKR23.js} +92 -55
- package/dist/configure-4GAP54ZW.js +42 -0
- package/dist/{context-5RADCKTR.js → context-4UOGGLQ5.js} +71 -35
- package/dist/context-5VKGUVJJ.js +866 -0
- package/dist/{context-3KWFLHJG.js → context-77FM5DV5.js} +15 -13
- package/dist/{context-clear-7TSNPAAI.js → context-clear-XXJRLCJJ.js} +54 -28
- package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
- package/dist/dispatch-runner-QPRDDBDX.js +1997 -0
- package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
- package/dist/{doctor-UC5NAJYQ.js → doctor-HR46URBJ.js} +27 -17
- package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
- package/dist/{evidence-YEGUW4L3.js → evidence-6HG2PY2B.js} +46 -26
- package/dist/{evolve-TXARCTPG.js → evolve-K7YU3NCY.js} +45 -25
- package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
- package/dist/{fleet-6G3DHNYE.js → fleet-VY3HHKN6.js} +163 -54
- package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
- package/dist/{init-KZ5QTF6M.js → init-JYGXI3FK.js} +69 -32
- package/dist/{memory-73ESV5YC.js → memory-WFZMGYHX.js} +48 -27
- package/dist/{models-A4PVNWJK.js → models-I5QWSEOM.js} +39 -25
- package/dist/monitor-GE4ID3IA.js +661 -0
- package/dist/{chunk-FCIH3BIZ.js → orchestrator-EM5MC3HM.js} +15979 -12407
- 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-ZU3QMZPZ.js} +101 -61
- package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
- package/dist/{skills-2V6RA3OQ.js → skills-X5VXCRNQ.js} +34 -14
- package/dist/{skills-eval-S2TVJO4F.js → skills-eval-WKIHWTHR.js} +70 -34
- package/dist/steer-GGWFUJUD.js +77 -0
- package/dist/{targets-TYXLPB23.js → targets-SNCPI2NR.js} +43 -27
- package/dist/terminal-lease-BNAHVHBS.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-JQHHPQ4K.js} +45 -25
- package/dist/{usage-ZAFSXKKG.js → usage-OR4O5SMZ.js} +62 -31
- package/dist/verify-375KUB3Y.js +716 -0
- package/dist/web-fetch-2YHJ3KTG.js +638 -0
- package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-UEXP2ARI.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 +387 -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 +45 -9
- 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 +715 -278
- package/src/interactive/chat-renderer.ts +306 -85
- 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 +253 -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 +42 -22
- package/src/interactive/footer-panel.ts +8 -3
- package/src/interactive/format-time.ts +14 -2
- package/src/interactive/interactive-application.ts +203 -17
- package/src/interactive/interactive-event-projection.ts +18 -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 +184 -117
- 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/ask-user.ts +146 -24
- 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 +516 -168
- 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/status/index.ts +12 -1
- package/src/interactive/status/reasoning.ts +87 -0
- package/src/interactive/status/summary.ts +13 -2
- 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/transcript-detail.ts +120 -0
- 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 +271 -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/presentation.ts +107 -0
- package/src/tools/registry.ts +45 -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,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-intent
|
|
3
|
+
description: Use at the start of a greenfield product effort, when the user wants a problem-first product document — "why are we building this", "write the product thesis", "PRD for this idea". Interviews for the problem, evidence, and a falsifiable hypothesis; writes an intent-only PRD with zero engineering decisions. Not for engineering decisions; use architecture. Not for turning a locked idea into milestone build prompts; use prd.
|
|
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
|
+
- write
|
|
14
|
+
- ask_user
|
|
15
|
+
clio:
|
|
16
|
+
registry-id: iowarp/clio-coder
|
|
17
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/product-intent
|
|
18
|
+
audit: pass
|
|
19
|
+
provenance: adapted
|
|
20
|
+
origin: https://github.com/coleam00/skills/tree/main/.claude/skills/product-intent
|
|
21
|
+
eval-status: smoke-checked
|
|
22
|
+
model-size: large
|
|
23
|
+
agents:
|
|
24
|
+
- main
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Product Intent
|
|
28
|
+
|
|
29
|
+
A PRD is intent: the problem and the hypothesis about solving it, in a form a
|
|
30
|
+
team can challenge before building and judge after shipping. Engineering
|
|
31
|
+
decisions (library, data model, boundaries) never enter it; they belong to
|
|
32
|
+
`architecture`.
|
|
33
|
+
|
|
34
|
+
Two hard guards, checked before writing anything:
|
|
35
|
+
|
|
36
|
+
1. **Intent-framed.** If only one solution could fit your problem statement,
|
|
37
|
+
you wrote a spec, not a PRD. "Give users a way to group related replies"
|
|
38
|
+
passes; "add a reply button" fails.
|
|
39
|
+
2. **Never invent requirements.** Anything unknown ships as
|
|
40
|
+
"TBD — needs validation", verbatim, never as a plausible guess.
|
|
41
|
+
|
|
42
|
+
## Step 0 — Ground in evidence
|
|
43
|
+
|
|
44
|
+
If the user passed reference docs (interviews, support tickets, analytics,
|
|
45
|
+
competitor notes), read them first and treat them as evidence. If none were
|
|
46
|
+
passed, ask whether any exist before interviewing.
|
|
47
|
+
|
|
48
|
+
## The interview
|
|
49
|
+
|
|
50
|
+
Ask in clusters via `ask_user`, and GATE: post the cluster, stop, wait for
|
|
51
|
+
answers. Never answer your own questions, never roll into the next phase in
|
|
52
|
+
the same turn. Thin answers get reflected back and dug into.
|
|
53
|
+
|
|
54
|
+
If the user declines the interview ("just write it"): honor it, name what
|
|
55
|
+
you will have to leave TBD, ask only the two or three highest-leverage
|
|
56
|
+
questions, and mark everything else "TBD — needs validation".
|
|
57
|
+
|
|
58
|
+
1. **Initiate.** Input given → restate and confirm. Blank → "What do you
|
|
59
|
+
want to build? A few sentences." GATE.
|
|
60
|
+
2. **Foundation.** Who has the problem (a specific role, not "users")? What
|
|
61
|
+
is the observable pain? How do they cope today (workaround, competitor,
|
|
62
|
+
tolerating)? Why now? And the switch test: do you solve it so much better
|
|
63
|
+
they leave their current cope? No switch case → no product yet; say so.
|
|
64
|
+
GATE.
|
|
65
|
+
3. **Users.** One-sentence vision · primary user (role, context, trigger) ·
|
|
66
|
+
job-to-be-done ("When [situation], I want [motivation], so I can
|
|
67
|
+
[outcome]") · explicit non-users · constraints. GATE.
|
|
68
|
+
4. **Hypothesis.** Co-write the falsifiable bet. The WRONG condition is the
|
|
69
|
+
most-skipped line and the one that makes it a hypothesis:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
We believe [change] will cause [users] to [do Y], resulting in [outcome].
|
|
73
|
+
RIGHT if [leading signal] within [timeframe].
|
|
74
|
+
WRONG if [counter-signal / a guardrail moves].
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
No hypothesis ships without a WRONG condition. GATE.
|
|
78
|
+
5. **MVP and doors.** MVP = the thinnest end-to-end line that proves the
|
|
79
|
+
hypothesis right or wrong, not "the product, smaller". Mark each major
|
|
80
|
+
call two-way door (reversible → just build) or one-way door (expensive to
|
|
81
|
+
undo → flag for a spike in architecture). GATE before generating.
|
|
82
|
+
|
|
83
|
+
Optional pressure test when useful: value (do they want it more than their
|
|
84
|
+
cope?), usability, feasibility, viability. Most ideas over-argue feasibility
|
|
85
|
+
and under-argue value.
|
|
86
|
+
|
|
87
|
+
## Generate
|
|
88
|
+
|
|
89
|
+
Write to `docs/<kebab-slug>.prd.md` (slug from the core idea; repo root if
|
|
90
|
+
no `docs/`; a user-supplied path always wins). Never hardcode `PRD.md` — a
|
|
91
|
+
second PRD must not overwrite the first. Sections, scannable, product only:
|
|
92
|
+
|
|
93
|
+
1. **Problem statement** — who, what pain, cost of not solving it.
|
|
94
|
+
2. **Evidence** — quote/data/observation, or "Assumption — validate via
|
|
95
|
+
[method]".
|
|
96
|
+
3. **Thesis** — why this, why now, why it beats the current cope.
|
|
97
|
+
4. **Hypothesis** — the RIGHT/WRONG block, verbatim.
|
|
98
|
+
5. **Target user & JTBD** — plus non-users.
|
|
99
|
+
6. **MVP** — the thinnest proving line.
|
|
100
|
+
7. **Success metrics** — outcome-shaped: metric · target · how measured.
|
|
101
|
+
"Engagement" is not a metric.
|
|
102
|
+
8. **Non-goals.**
|
|
103
|
+
9. **Open questions** — named checkboxes, never hidden.
|
|
104
|
+
|
|
105
|
+
## Done when
|
|
106
|
+
|
|
107
|
+
The file exists; the summary to the user leads with thesis and hypothesis,
|
|
108
|
+
counts evidenced-vs-assumed claims and open questions; and the next step is
|
|
109
|
+
offered: `architecture` for the engineering decisions this PRD
|
|
110
|
+
deliberately left open. Failing any of the five tests below means not done:
|
|
111
|
+
evidence-grounded problem · hypothesis with separate RIGHT and WRONG ·
|
|
112
|
+
outcome-shaped metrics · explicit non-goals · zero engineering decisions.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Evals — product-intent
|
|
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 — greenfield idea
|
|
8
|
+
Prompt: "I want to build a log-triage tool for HPC operators, write the PRD."
|
|
9
|
+
Expected:
|
|
10
|
+
- Interviews in gated clusters; never answers its own questions.
|
|
11
|
+
- Hypothesis block has both RIGHT and WRONG conditions.
|
|
12
|
+
- Output lands at `docs/<slug>.prd.md`, not `PRD.md`.
|
|
13
|
+
- Zero engineering decisions (no stack, no schema, no libraries).
|
|
14
|
+
- Unknowns say "TBD — needs validation", not invented requirements.
|
|
15
|
+
|
|
16
|
+
## S2 — user declines the interview
|
|
17
|
+
Prompt: "skip the questions, just write it."
|
|
18
|
+
Expected:
|
|
19
|
+
- Asks only 2-3 highest-leverage questions, names what goes TBD.
|
|
20
|
+
- No fabricated evidence or metrics.
|
|
21
|
+
|
|
22
|
+
## S3 — solution-shaped request
|
|
23
|
+
Prompt: "PRD for adding a reply button."
|
|
24
|
+
Expected:
|
|
25
|
+
- Reframes to the underlying problem; the problem statement admits more
|
|
26
|
+
than one solution.
|
|
27
|
+
|
|
28
|
+
## Baseline failure modes to watch for (RED)
|
|
29
|
+
- One-shot PRD generated from thin air.
|
|
30
|
+
- Hypothesis with no WRONG condition.
|
|
31
|
+
- "React + Postgres" appearing anywhere in the document.
|
|
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. PASS. Interview degraded gracefully headless; PRD written to docs/, judge 5/5.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tech-spec
|
|
3
|
+
description: Write a typed call-stack architecture handoff — code-shaped contracts plus execution flows, implementation-ready for another engineer. User-invoked only.
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
allowed-tools:
|
|
8
|
+
- read
|
|
9
|
+
- grep
|
|
10
|
+
- find
|
|
11
|
+
- ls
|
|
12
|
+
- git
|
|
13
|
+
- context
|
|
14
|
+
- code_nav
|
|
15
|
+
- write
|
|
16
|
+
- ask_user
|
|
17
|
+
requires:
|
|
18
|
+
- skill:tdd
|
|
19
|
+
clio:
|
|
20
|
+
registry-id: iowarp/clio-coder
|
|
21
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/tech-spec
|
|
22
|
+
audit: pass
|
|
23
|
+
provenance: adapted
|
|
24
|
+
origin: https://github.com/dmmulroy/skills/tree/main/tech-spec
|
|
25
|
+
eval-status: smoke-checked
|
|
26
|
+
model-size: large
|
|
27
|
+
provisional: true
|
|
28
|
+
agents:
|
|
29
|
+
- main
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# Tech Spec
|
|
33
|
+
|
|
34
|
+
A tech spec is a typed call-stack architecture handoff: contracts as
|
|
35
|
+
TypeScript pseudocode plus end-to-end execution flows. Prose explains why;
|
|
36
|
+
types and call stacks define what changes. Design only — never implement,
|
|
37
|
+
and save a file only when the user asks; otherwise return the spec inline.
|
|
38
|
+
|
|
39
|
+
## Choose the path
|
|
40
|
+
|
|
41
|
+
- **Path A — convert context to spec**: the conversation, docs, or codebase
|
|
42
|
+
already describe the change.
|
|
43
|
+
- **Path B — interview first**: not enough problem, constraints, or
|
|
44
|
+
acceptance criteria exist. Say so, then interview one question at a time
|
|
45
|
+
with a recommended answer per question (the grill-me posture); anything
|
|
46
|
+
answerable by exploring the codebase is explored, not asked. When context
|
|
47
|
+
suffices, run Path A. Never invent requirements to skip the interview.
|
|
48
|
+
|
|
49
|
+
## Path A
|
|
50
|
+
|
|
51
|
+
1. **Load local context.** Inspect existing code and docs for vocabulary,
|
|
52
|
+
module layout, error style, adapters, test conventions. Done when the
|
|
53
|
+
spec introduces no pattern, library, or schema style without checking
|
|
54
|
+
local precedent.
|
|
55
|
+
2. **Extract the design problem.** Current state, problem, callers, goals,
|
|
56
|
+
non-goals, constraints, invariants, affected systems, entrypoints,
|
|
57
|
+
risks. Unknowns become open questions, never plausible filler. Done when
|
|
58
|
+
every claimed constraint traces to conversation, code, docs, or an open
|
|
59
|
+
question.
|
|
60
|
+
3. **Explore alternatives.** 2-3 designs differing materially — interface
|
|
61
|
+
shape, seam placement, ownership, call stack, module boundaries — not
|
|
62
|
+
just names. Sketch each: domain types, interfaces, failure types, seams,
|
|
63
|
+
entrypoint-to-effect call stack, test strategy, trade-offs. Compare on
|
|
64
|
+
caller burden, module depth, locality of change, seam placement,
|
|
65
|
+
testability through real seams, complexity. Done when the
|
|
66
|
+
recommendation is chosen after the comparison, not before.
|
|
67
|
+
4. **Specify the contracts.** For the recommended design, every new,
|
|
68
|
+
changed, or deleted type, signature, interface, error union, adapter,
|
|
69
|
+
DTO, and API gets a concrete sketch — or an explicit reason no new
|
|
70
|
+
contract is needed. Name what each layer may know and what must not
|
|
71
|
+
leak across each seam.
|
|
72
|
+
5. **Specify call stacks.** Every affected behavior gets an entrypoint →
|
|
73
|
+
side-effect → response trace with the type/data flow (`raw input →
|
|
74
|
+
parser → domain input → service → adapter → typed result → projection →
|
|
75
|
+
output`), current-vs-proposed when changing behavior, and failure /
|
|
76
|
+
retry / idempotency flow where reachable.
|
|
77
|
+
6. **Map files.** Files to add, change, delete; test files; config or
|
|
78
|
+
migration files. Each maps to the contract or call-stack step it owns.
|
|
79
|
+
7. **Write the TDD plan.** Vertical red-green slices per the `tdd` skill:
|
|
80
|
+
one failing behavior test, minimal implementation, repeat. Cover happy
|
|
81
|
+
paths, failure paths, parser rejection, invariants, changed seams — or
|
|
82
|
+
state why a path is deliberately untested.
|
|
83
|
+
|
|
84
|
+
## Spec outline
|
|
85
|
+
|
|
86
|
+
Use this shape (omit sections that truly do not apply, but never omit
|
|
87
|
+
contracts, seams, call stacks, or the test plan for being hard):
|
|
88
|
+
|
|
89
|
+
```md
|
|
90
|
+
# <Title>
|
|
91
|
+
## Summary · Context / Current State · Goals · Non-Goals · Invariants ·
|
|
92
|
+
## Design Constraints
|
|
93
|
+
## Alternatives Considered (Option 1..3)
|
|
94
|
+
## Recommendation · Proposed Design
|
|
95
|
+
## Domain Model and Types · Types, Interfaces, and APIs
|
|
96
|
+
## Seams, Boundaries, Adapters, and Implementations
|
|
97
|
+
## Call Stacks and Data Flow (current / proposed / failure / retry)
|
|
98
|
+
## Files to Add / Change / Delete
|
|
99
|
+
## TDD Test Plan
|
|
100
|
+
## Risks and Open Questions
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Done when
|
|
104
|
+
|
|
105
|
+
The spec follows the outline, every boundary has a typed contract or a
|
|
106
|
+
stated reason it needs none, every behavior has a call stack, unknowns are
|
|
107
|
+
open questions rather than invented design, and nothing was implemented.
|
|
108
|
+
|
|
109
|
+
## Red flags
|
|
110
|
+
|
|
111
|
+
- Prose where a type signature would be more precise.
|
|
112
|
+
- A recommendation written before the alternatives.
|
|
113
|
+
- Speculative seams no invariant, boundary, or test earns.
|
|
114
|
+
- The same rule restated in three sections.
|
|
115
|
+
- "While I'm here" implementation.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Evals — tech-spec
|
|
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`); skill is marked provisional and user-invoked only.
|
|
6
|
+
|
|
7
|
+
## S1 — sufficient context (Path A)
|
|
8
|
+
Setup: write a tech spec for adding per-client rate limiting to the ingest
|
|
9
|
+
endpoint in src/ingest.js; limits should be configurable and violations
|
|
10
|
+
must return 429 without dropping the connection.
|
|
11
|
+
|
|
12
|
+
Fixture:
|
|
13
|
+
```bash
|
|
14
|
+
mkdir -p src
|
|
15
|
+
printf 'const http = require("http");\nconst { parseEvent } = require("./parse-event.js");\n\nconst INGEST_ROUTE = "ingest";\n\nfunction createIngestServer(store) {\n return http.createServer((req, res) => {\n if (req.url.slice(1) !== INGEST_ROUTE || req.method !== "POST") {\n res.writeHead(404);\n res.end();\n return;\n }\n let body = "";\n req.on("data", (chunk) => { body += chunk; });\n req.on("end", () => {\n const parsed = parseEvent(body);\n if (parsed.err) {\n res.writeHead(400);\n res.end(JSON.stringify({ error: parsed.err }));\n return;\n }\n store.append(parsed.value);\n res.writeHead(202);\n res.end();\n });\n });\n}\n\nmodule.exports = { createIngestServer };\n' > src/ingest.js
|
|
16
|
+
printf 'function parseEvent(raw) {\n try {\n const value = JSON.parse(raw);\n if (typeof value.client !== "string") return { err: "missing client" };\n return { err: null, value };\n } catch {\n return { err: "invalid json" };\n }\n}\n\nmodule.exports = { parseEvent };\n' > src/parse-event.js
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Expected:
|
|
20
|
+
- Local conventions inspected before any pattern is proposed.
|
|
21
|
+
- 2-3 materially different alternatives compared before recommending.
|
|
22
|
+
- Typed contracts for every new/changed boundary; call stacks with data
|
|
23
|
+
flow; file map; vertical TDD plan.
|
|
24
|
+
- Nothing implemented; spec returned inline (no file unless asked).
|
|
25
|
+
|
|
26
|
+
## S2 — thin context (Path B)
|
|
27
|
+
Setup: user asks for a spec with only a vague sentence.
|
|
28
|
+
Expected:
|
|
29
|
+
- States context is insufficient; interviews one question at a time with
|
|
30
|
+
recommended answers; explores the codebase instead of asking what code
|
|
31
|
+
answers.
|
|
32
|
+
- Converts to Path A only when context suffices.
|
|
33
|
+
|
|
34
|
+
## S3 — unknowns
|
|
35
|
+
Setup: a dependency's behavior is genuinely unknown.
|
|
36
|
+
Expected:
|
|
37
|
+
- Recorded as an open question, not filled with plausible design.
|
|
38
|
+
|
|
39
|
+
## Baseline failure modes to watch for (RED)
|
|
40
|
+
- Prose-only spec with no typed contracts or call stacks.
|
|
41
|
+
- Single foregone design presented as "the" answer.
|
|
42
|
+
- Implementation snuck in.
|
|
43
|
+
|
|
44
|
+
## Smoke record (2026-08-13)
|
|
45
|
+
|
|
46
|
+
One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
|
|
47
|
+
(30B local, llamacpp on mini), full-auto sandbox. PASS. Spec written and its claims exercised with node -e; judge 4/4.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Pinned marketplace skill content hashes (provenance-stripped sha256).
|
|
2
|
+
# Generated by `npm run skills:pin`. At activation, an installed skill
|
|
3
|
+
# carrying registry-id provenance is compared against its pinned hash;
|
|
4
|
+
# a mismatch surfaces a drift warning.
|
|
5
|
+
skills:
|
|
6
|
+
# ── coding ──
|
|
7
|
+
- name: ast-grep
|
|
8
|
+
path: coding/ast-grep
|
|
9
|
+
version: 0.1.0
|
|
10
|
+
sha256: 24ed3d9490e0923eec1321cb334ae6315194975be1694a243d0d4f45590b586f
|
|
11
|
+
- name: coding-standards
|
|
12
|
+
path: coding/coding-standards
|
|
13
|
+
version: 0.1.0
|
|
14
|
+
sha256: bd906dad6f244c82e3641078964bf69f56b5b36cb692d6e7c09555555451d893
|
|
15
|
+
- name: prototype
|
|
16
|
+
path: coding/prototype
|
|
17
|
+
version: 0.2.0
|
|
18
|
+
sha256: 243258c7ad15a016d930927181912b4282bf84e698c05beaa03b48be1f6fdb66
|
|
19
|
+
- name: tdd
|
|
20
|
+
path: coding/tdd
|
|
21
|
+
version: 0.2.0
|
|
22
|
+
sha256: da6c7feb5a56d31d111c0e0f1b795f9c0e9012270e4bbc2a35d32b30cbfa9851
|
|
23
|
+
# ── context ──
|
|
24
|
+
- name: context-handoff
|
|
25
|
+
path: context/context-handoff
|
|
26
|
+
version: 0.3.1
|
|
27
|
+
sha256: 2dc67e24a88607dbedb12163d8afd412421b004df7a845e301accc4e908e18ff
|
|
28
|
+
- name: context-prime
|
|
29
|
+
path: context/context-prime
|
|
30
|
+
version: 0.2.2
|
|
31
|
+
sha256: 1228302e03b86bcf829ac0016441f408f78b05c4658085d65628cf05fd282f8b
|
|
32
|
+
# ── git ──
|
|
33
|
+
- name: file-ticket
|
|
34
|
+
path: git/file-ticket
|
|
35
|
+
version: 0.1.0
|
|
36
|
+
sha256: 0532ac43ffacbfe3cbc681e68b2cbb7816751d9041b6f1f365e3d43a106a0e91
|
|
37
|
+
- name: fix-issue
|
|
38
|
+
path: git/fix-issue
|
|
39
|
+
version: 0.1.0
|
|
40
|
+
sha256: 2c1a7d9c252dd8e0c9512b9610e1c467020fd2948d8d189d594e33e87e2d6fce
|
|
41
|
+
- name: resolve-merge-conflicts
|
|
42
|
+
path: git/resolve-merge-conflicts
|
|
43
|
+
version: 0.2.0
|
|
44
|
+
sha256: 7974a394b560de7e8995a59e7f15fbbb7d6481d2cfdf12238d854cb9278675a0
|
|
45
|
+
- name: ship
|
|
46
|
+
path: git/ship
|
|
47
|
+
version: 0.1.0
|
|
48
|
+
sha256: 58b76f46629562310f833beb2adebe3cc91a078d2d84523608797ee1b53bb445
|
|
49
|
+
- name: worktree-create
|
|
50
|
+
path: git/worktree-create
|
|
51
|
+
version: 0.2.0
|
|
52
|
+
sha256: 9a22d1e0b5bce8f439f4f757ff47f7ec43a94bb80af87f6834d29644d1334e23
|
|
53
|
+
- name: worktree-merge
|
|
54
|
+
path: git/worktree-merge
|
|
55
|
+
version: 0.2.0
|
|
56
|
+
sha256: 407a31fc1e5e21b7aae2af39d09886944272ae8bef5ceed85711ad88122360ed
|
|
57
|
+
# ── meta ──
|
|
58
|
+
- name: clio-dev
|
|
59
|
+
path: meta/clio-dev
|
|
60
|
+
version: 0.2.0
|
|
61
|
+
sha256: 386ebfdac9379ebf5630fa7a9af259bb45f473f7d3d679b0a7ef4164f5fc4dea
|
|
62
|
+
- name: clio-test
|
|
63
|
+
path: meta/clio-test
|
|
64
|
+
version: 0.1.3
|
|
65
|
+
sha256: 99683ea7d7bf5bf57788e58ee6c66e01a4e30ec8d3d7d0a1f8b2b85caff4ae5a
|
|
66
|
+
- name: credentials
|
|
67
|
+
path: meta/credentials
|
|
68
|
+
version: 0.1.2
|
|
69
|
+
sha256: 3730d1492742922981c87643c878b36e927d8745080d3cb99dfa2c0374322c91
|
|
70
|
+
- name: find-skills
|
|
71
|
+
path: meta/find-skills
|
|
72
|
+
version: 0.1.1
|
|
73
|
+
sha256: c0be6f4198f490930d9370d3a778ae6e64fed0250720f0ff66c08a0e41e838cc
|
|
74
|
+
- name: herdr
|
|
75
|
+
path: meta/herdr
|
|
76
|
+
version: 0.1.0
|
|
77
|
+
sha256: 147ddba47c4bd99844a896858b5ec483aa3df46fbcfadf8226115ba4bf51456b
|
|
78
|
+
- name: skill-craft
|
|
79
|
+
path: meta/skill-craft
|
|
80
|
+
version: 0.1.1
|
|
81
|
+
sha256: ec67b2dd6c4684886eed3c0c2204cba783b1d7b691f2234ebad5e9ab58caf754
|
|
82
|
+
# ── planning ──
|
|
83
|
+
- name: architecture
|
|
84
|
+
path: planning/architecture
|
|
85
|
+
version: 0.2.0
|
|
86
|
+
sha256: e43e306e49adcc788d71eb534e425e34b13eea8d181a2af38d511308ede39b43
|
|
87
|
+
- name: backlog
|
|
88
|
+
path: planning/backlog
|
|
89
|
+
version: 0.2.0
|
|
90
|
+
sha256: 12c19d24bfac5356089fb225404aa33635b96b4d53bef20751f3389be8680423
|
|
91
|
+
- name: prd
|
|
92
|
+
path: planning/prd
|
|
93
|
+
version: 0.2.1
|
|
94
|
+
sha256: bc23b47c94ce40df338b8e775f1992fd602f55636548acbb690fffce2f94efa5
|
|
95
|
+
- name: product-intent
|
|
96
|
+
path: planning/product-intent
|
|
97
|
+
version: 0.2.0
|
|
98
|
+
sha256: 17566702dfb367e9aec1f162a7063b87051af08803be953738a8079f2ab559ed
|
|
99
|
+
- name: tech-spec
|
|
100
|
+
path: planning/tech-spec
|
|
101
|
+
version: 0.1.0
|
|
102
|
+
sha256: 86b3d72a6c2e155e43bdebf6687b039f3a7443ae55fc765814e62241b1e3e47c
|
|
103
|
+
# ── research ──
|
|
104
|
+
- name: arxiv-literature
|
|
105
|
+
path: research/arxiv-literature
|
|
106
|
+
version: 0.3.0
|
|
107
|
+
sha256: 08e5c6591e28d6195e4a612b3323bcb63eed93b8e07e54515b6417b11780f8b8
|
|
108
|
+
- name: experiment-protocol
|
|
109
|
+
path: research/experiment-protocol
|
|
110
|
+
version: 0.1.2
|
|
111
|
+
sha256: 3af25cbcbd1adc37e3a1290cb975e0c2441f347c03148512b38c4f987f3c9c8e
|
|
112
|
+
- name: scientific-debugging
|
|
113
|
+
path: research/scientific-debugging
|
|
114
|
+
version: 0.1.2
|
|
115
|
+
sha256: a9d7e2153c18ec93b00c5b58fd1842201de3c75f7cbea051ae2faac777055520
|
|
116
|
+
- name: scientific-modernization
|
|
117
|
+
path: research/scientific-modernization
|
|
118
|
+
version: 0.2.0
|
|
119
|
+
sha256: df5aa24fd478c10faac65d0cc9623cfd55ef2405e8f16d3c2d2fee799cf57226
|
|
120
|
+
# ── workflow ──
|
|
121
|
+
- name: cut-it
|
|
122
|
+
path: workflow/cut-it
|
|
123
|
+
version: 0.2.1
|
|
124
|
+
sha256: f83526535d43137624a9345dbbfbd9de706ccbe464a0aff96dc4a9de2abaaf16
|
|
125
|
+
- name: design-council
|
|
126
|
+
path: workflow/design-council
|
|
127
|
+
version: 0.3.0
|
|
128
|
+
sha256: e02865e1603802acdcb1f3de6c8a43ac7b6f8f1c085f66ed7a5aeae22ab2d8b6
|
|
129
|
+
- name: grill-me
|
|
130
|
+
path: workflow/grill-me
|
|
131
|
+
version: 0.3.2
|
|
132
|
+
sha256: 08f9a165755210dfe942e14fe59803acd19c35ab182b9da10deebdc8554c3f9d
|
|
133
|
+
- name: workflow-distiller
|
|
134
|
+
path: workflow/workflow-distiller
|
|
135
|
+
version: 0.2.1
|
|
136
|
+
sha256: 48238593de4877a7b3a4d63e982f9eca84e47f8ec41654dab97da72e9b590ad5
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arxiv-literature
|
|
3
|
+
description: Use when the user asks to search arXiv, summarize an arXiv paper, compare papers, find recent research, or build a compact literature survey. Prefer the Researcher shadow agent for noisy multi-paper retrieval; return only citation-ready, source-linked paper cards.
|
|
4
|
+
version: 0.3.0
|
|
5
|
+
license: Apache-2.0
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- web_fetch
|
|
8
|
+
- dispatch
|
|
9
|
+
- read
|
|
10
|
+
- grep
|
|
11
|
+
- find
|
|
12
|
+
- ls
|
|
13
|
+
- artifact
|
|
14
|
+
clio:
|
|
15
|
+
registry-id: iowarp/clio-coder
|
|
16
|
+
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/research/arxiv-literature
|
|
17
|
+
audit: pass
|
|
18
|
+
provenance: designed
|
|
19
|
+
eval-status: smoke-checked
|
|
20
|
+
model-size: any
|
|
21
|
+
agents:
|
|
22
|
+
- researcher
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# ArXiv Literature
|
|
26
|
+
|
|
27
|
+
Find, summarize, or compare academic papers without flooding the main context
|
|
28
|
+
window. Raw search results and paper text stay in a worker or get compressed
|
|
29
|
+
immediately; only paper cards reach the user.
|
|
30
|
+
|
|
31
|
+
## Step 1 — Classify the request
|
|
32
|
+
|
|
33
|
+
Pick exactly one:
|
|
34
|
+
|
|
35
|
+
- **Single paper**: one arXiv URL/ID, "summarize this paper", "explain this paper".
|
|
36
|
+
- **Search**: "find papers about X", "search arxiv for X", "latest papers on X".
|
|
37
|
+
- **Compare**: two or more paper URLs/IDs, "compare these papers".
|
|
38
|
+
- **Survey**: "what is the literature on X", "best papers for X".
|
|
39
|
+
|
|
40
|
+
## Step 2 — Pick the vehicle
|
|
41
|
+
|
|
42
|
+
- **Search, compare, survey**: dispatch the `researcher` shadow agent. Task
|
|
43
|
+
prompt:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
Research arXiv literature for: <user goal>.
|
|
47
|
+
Return only compact source-linked paper cards, comparison/synthesis,
|
|
48
|
+
caveats, and read/skim/skip recommendations.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
- **Single paper, or dispatch unavailable**: use `web_fetch` directly.
|
|
52
|
+
- Paper URL/ID: fetch the arXiv page. Clio normalizes it into structured
|
|
53
|
+
metadata plus AlphaXiv enrichment when available.
|
|
54
|
+
- Search query: fetch the arXiv Atom API; Clio compacts the XML into paper
|
|
55
|
+
cards:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
https://export.arxiv.org/api/query?search_query=all:QUERY&sortBy=submittedDate&sortOrder=descending&start=0&max_results=10
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Useful categories for `search_query`: `cs.AI` (AI), `cs.LG` (ML), `cs.CL`
|
|
62
|
+
(NLP/LLMs), `cs.CR` (security), `cs.SE` (software engineering), `cs.MA`
|
|
63
|
+
(multi-agent), `cs.IR` (retrieval/RAG), `cs.CV` (vision), `cs.RO` (robotics).
|
|
64
|
+
|
|
65
|
+
## Step 3 — Return paper cards only
|
|
66
|
+
|
|
67
|
+
Never paste raw Atom XML or full paper text into the response. Output format:
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
## Literature Result
|
|
71
|
+
|
|
72
|
+
### Query
|
|
73
|
+
...
|
|
74
|
+
|
|
75
|
+
### Best Matches / Papers
|
|
76
|
+
1. **Title** — authors, date, `arxiv:id`
|
|
77
|
+
- Problem:
|
|
78
|
+
- Method:
|
|
79
|
+
- Evidence:
|
|
80
|
+
- Limitation:
|
|
81
|
+
- Relevance:
|
|
82
|
+
- Links:
|
|
83
|
+
|
|
84
|
+
### Recommendation
|
|
85
|
+
- Read:
|
|
86
|
+
- Skim:
|
|
87
|
+
- Skip:
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Done when every returned paper has a card with a working link and the
|
|
91
|
+
recommendation section is filled in. Stop after one search round unless the
|
|
92
|
+
user asks to go deeper; do not keep fetching to "be thorough". One round
|
|
93
|
+
means at most two Atom API fetches: the initial query plus one refinement.
|
|
94
|
+
Rewording the same query a third time is thrash — build cards from what the
|
|
95
|
+
first two returned.
|
|
96
|
+
|
|
97
|
+
## Gotchas
|
|
98
|
+
|
|
99
|
+
- arXiv Atom is XML, not JSON; fetch it through `web_fetch` so Clio compacts it.
|
|
100
|
+
- `lastUpdatedDate` surfaces old papers with trivial edits; use `submittedDate`
|
|
101
|
+
for newly submitted work.
|
|
102
|
+
- AlphaXiv is AI-generated enrichment: useful for scanning, never citable as
|
|
103
|
+
authoritative.
|
|
104
|
+
- Fetch or enrich only the top candidates, not every result.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Evals - arxiv-literature
|
|
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 - topic search
|
|
7
|
+
|
|
8
|
+
Setup: Prompt: "find recent arXiv papers on speculative decoding for LLM
|
|
9
|
+
inference and tell me which are worth reading."
|
|
10
|
+
|
|
11
|
+
Expected:
|
|
12
|
+
|
|
13
|
+
- Retrieval happens through the `researcher` shadow agent or the arXiv Atom
|
|
14
|
+
API via `web_fetch`, not through generic web browsing.
|
|
15
|
+
- No raw Atom XML or full paper text appears in the final answer.
|
|
16
|
+
- Each paper is a compact card carrying title, authors, date, and an
|
|
17
|
+
`arxiv:id` or link.
|
|
18
|
+
- The answer closes with explicit read/skim/skip recommendations.
|
|
19
|
+
|
|
20
|
+
## S2 - single known paper
|
|
21
|
+
|
|
22
|
+
Setup: Prompt: "summarize https://arxiv.org/abs/1706.03762 for an engineer
|
|
23
|
+
deciding whether to read it."
|
|
24
|
+
|
|
25
|
+
Expected:
|
|
26
|
+
|
|
27
|
+
- Fetches the paper page directly with `web_fetch` instead of dispatching a
|
|
28
|
+
search.
|
|
29
|
+
- The summary states problem, method, evidence, and limitation distinctly
|
|
30
|
+
rather than paraphrasing the abstract in one block.
|
|
31
|
+
- Any AlphaXiv or AI-generated enrichment is labeled as such, not presented
|
|
32
|
+
as the paper's own claims.
|
|
33
|
+
|
|
34
|
+
## S3 - comparison without context flooding
|
|
35
|
+
|
|
36
|
+
Setup: Prompt gives three arXiv IDs and asks "compare these approaches and
|
|
37
|
+
recommend one for low-latency serving."
|
|
38
|
+
|
|
39
|
+
Expected:
|
|
40
|
+
|
|
41
|
+
- Fetching and digestion is delegated or batched so full paper contents do
|
|
42
|
+
not accumulate in the main transcript.
|
|
43
|
+
- The comparison is criterion-based (problem fit, evidence, limitations),
|
|
44
|
+
citing each paper by id.
|
|
45
|
+
- A single recommendation is made and justified against the alternatives.
|
|
46
|
+
|
|
47
|
+
## Baseline failure modes to watch for (RED)
|
|
48
|
+
|
|
49
|
+
- Raw Atom XML or multi-page paper text pasted into the answer.
|
|
50
|
+
- Searches by `lastUpdatedDate`, surfacing old papers with trivial edits as
|
|
51
|
+
"recent work".
|
|
52
|
+
- Fetching every search hit instead of the top candidates.
|
|
53
|
+
- Uncited claims: summaries with no ids or links a reader can follow.
|
|
54
|
+
|
|
55
|
+
## Smoke record (2026-08-13)
|
|
56
|
+
|
|
57
|
+
One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
|
|
58
|
+
(30B local, llamacpp on mini), full-auto sandbox. PASS (driver FAIL overturned on transcript review): skill loaded, skill_surface blocked two curl attempts, retrieval ran through web_fetch on the Atom API per the designed dispatch-unavailable fallback. Judge misread the OR in bullet 1. Query thrash (8 fetches) led to the two-fetch cap now in the body.
|