@iowarp/clio-coder 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +98 -0
- package/CONTRIBUTING.md +86 -19
- package/README.md +35 -6
- package/dist/{acp-TMDQZDIG.js → acp-WNAYYF4F.js} +12 -13
- package/dist/{agents-5N5NG3XG.js → agents-3OKXHLOI.js} +60 -57
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-Z5CCBXKQ.js → auth-VKNNMGPU.js} +21 -19
- package/dist/{builtins-K6TNDT24.js → builtins-WGALA46I.js} +9 -4
- package/dist/{chunk-XE3PCIXH.js → chunk-23L32XTI.js} +12 -9
- package/dist/{chunk-I64IFBLB.js → chunk-25QBEXRS.js} +18 -11
- package/dist/{chunk-CDNVLKUX.js → chunk-26QSH3EJ.js} +13 -7
- package/dist/{chunk-QQLGQY2A.js → chunk-2ASED4PZ.js} +22 -22
- package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
- package/dist/chunk-2DSOYNFC.js +108 -0
- package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
- package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
- package/dist/{chunk-O3YUNJZ2.js → chunk-2ZSONWVL.js} +82 -25
- package/dist/{chunk-2NHR3NAY.js → chunk-36CT5VVL.js} +331 -42
- package/dist/{chunk-2X4RYJTJ.js → chunk-3GY4F45V.js} +3 -3
- package/dist/{chunk-ZW55JB7N.js → chunk-3ODX73FK.js} +4 -6
- package/dist/{chunk-PBP4B7XR.js → chunk-3UNOLWNZ.js} +3 -3
- package/dist/{chunk-4JDLP6ZS.js → chunk-3UUXNFEX.js} +14 -10
- package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
- package/dist/{chunk-ZW4HH5JJ.js → chunk-4M6Z5QVF.js} +6 -6
- package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
- package/dist/{chunk-M2DAX4F6.js → chunk-4WR7VSYB.js} +2 -2
- package/dist/{chunk-FSP7CMNU.js → chunk-54X7T7DK.js} +61 -6
- package/dist/{chunk-54ODD65L.js → chunk-5636DCO5.js} +4 -4
- package/dist/chunk-57XXR6DR.js +3763 -0
- package/dist/{chunk-3KIPBMUA.js → chunk-5ICU3EUH.js} +2 -2
- package/dist/{chunk-77QIVUZB.js → chunk-5MEZN6CB.js} +4 -4
- package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
- package/dist/{chunk-YJISEZKC.js → chunk-5TUB6SLS.js} +6 -6
- package/dist/{chunk-IMXMHHMQ.js → chunk-6OSVSQL5.js} +341 -57
- package/dist/{chunk-Q4XWMHX6.js → chunk-6PAZTBPA.js} +14 -2
- package/dist/{chunk-FVDGR2ZL.js → chunk-6Q3CYFD3.js} +112 -39
- package/dist/{chunk-IDNA72AH.js → chunk-6QOTUPRG.js} +155 -36
- package/dist/{chunk-X7IARSHT.js → chunk-6UINWWS6.js} +16 -10
- package/dist/{chunk-CYZW7JHJ.js → chunk-72YIHOZQ.js} +9 -9
- package/dist/{chunk-IKSLQ4XV.js → chunk-75W7L2E2.js} +752 -861
- package/dist/{chunk-CRFOIAX3.js → chunk-7UGL4MB5.js} +6 -6
- package/dist/{chunk-HIICAHCJ.js → chunk-AUPNRN7C.js} +2 -2
- package/dist/{chunk-7BHIY2MW.js → chunk-BJVFZO5U.js} +8 -50
- package/dist/{chunk-B74PXLU7.js → chunk-CUSRQKPU.js} +65 -3
- package/dist/chunk-DQOVN6KV.js +386 -0
- package/dist/{chunk-E7GT7O5N.js → chunk-DT3LWJOB.js} +7 -4
- package/dist/chunk-DXKJURES.js +671 -0
- package/dist/{chunk-JBCS7CRR.js → chunk-EL24TAU4.js} +10 -10
- package/dist/{chunk-TPEQIQIE.js → chunk-ELWDPP3Y.js} +8 -8
- package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
- package/dist/chunk-EXLD33WO.js +381 -0
- package/dist/chunk-FEAXX7B6.js +101 -0
- package/dist/{chunk-RLYRBIYQ.js → chunk-FFUPXJC4.js} +90 -331
- package/dist/{chunk-5PFYMY2V.js → chunk-FTMGRKEF.js} +2 -2
- package/dist/{chunk-34BHNEE3.js → chunk-GHS5EBTQ.js} +58 -7
- package/dist/{chunk-DYHAXKHD.js → chunk-GWZNEVM2.js} +12 -8
- package/dist/chunk-GX5WYQO4.js +59 -0
- package/dist/chunk-GYV6VZOC.js +26 -0
- package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
- package/dist/chunk-I2DWJ4GM.js +390 -0
- package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
- package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
- package/dist/{chunk-XQRY4DTA.js → chunk-IGLP3ODT.js} +10 -10
- package/dist/chunk-IRXAATOX.js +539 -0
- package/dist/chunk-IXIY2H4R.js +44 -0
- package/dist/{chunk-SSEYRH53.js → chunk-IZXGRF7P.js} +92 -147
- package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
- package/dist/{chunk-JWJGP5DQ.js → chunk-JEIYHLOR.js} +7 -7
- package/dist/{chunk-F2I26BDK.js → chunk-JQLNNIKT.js} +4 -4
- package/dist/{chunk-BYMNWQ7O.js → chunk-JSD46VO2.js} +315 -63
- package/dist/{chunk-AK5XEFVZ.js → chunk-JT2RFCC5.js} +64 -14
- package/dist/{chunk-MCMZMDAC.js → chunk-K6T2ZAMZ.js} +168 -6
- package/dist/{chunk-PGF63K6I.js → chunk-KFV5L5SK.js} +73 -4
- package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
- package/dist/{chunk-PJX3WQUQ.js → chunk-LLXSDWXS.js} +3 -3
- package/dist/{chunk-DZAW46HP.js → chunk-LTIKRKFL.js} +3 -3
- package/dist/{chunk-DZEK6CJN.js → chunk-N56KALIC.js} +21 -21
- package/dist/{chunk-B7HM5Z7T.js → chunk-NAI6ZFCY.js} +9 -5
- package/dist/{chunk-I66ZTYNP.js → chunk-NRO2BJRH.js} +2656 -2213
- package/dist/{chunk-ZGNYYXQ6.js → chunk-NXIMQY5W.js} +3 -3
- package/dist/{chunk-IKOZFYBN.js → chunk-NXYCB2VD.js} +149 -106
- package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
- package/dist/{chunk-462T4EGZ.js → chunk-O5CVSAG5.js} +2 -2
- package/dist/chunk-ODGTEFFI.js +50 -0
- package/dist/{chunk-3F7VUY77.js → chunk-OEJSLEPW.js} +2 -2
- package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
- package/dist/{chunk-5KW52TEP.js → chunk-Q4WO54TA.js} +132 -77
- package/dist/{chunk-W6NIE6OW.js → chunk-QUFRYSWI.js} +13 -7
- package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
- package/dist/chunk-R6Q67RJH.js +134 -0
- package/dist/{chunk-W4YEMFBX.js → chunk-RAY4OVGZ.js} +3 -3
- package/dist/{chunk-ZNT2M6TG.js → chunk-RQCKCSRL.js} +17 -17
- package/dist/{chunk-LJID3DYZ.js → chunk-RXTN6AKH.js} +3 -3
- package/dist/{chunk-P75RZCJW.js → chunk-RZDWV63N.js} +3 -3
- package/dist/{chunk-UH632ZYL.js → chunk-S6PYF2XF.js} +2 -2
- package/dist/{chunk-HJWWJ6IL.js → chunk-TOIVGRUX.js} +17 -5
- package/dist/{chunk-HLAFFSEK.js → chunk-TQAHXW6Y.js} +2 -2
- package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
- package/dist/{chunk-2HFQNRV3.js → chunk-UEPWCCTY.js} +12 -12
- package/dist/chunk-UOIZ7DA4.js +41 -0
- package/dist/{chunk-UH347SHR.js → chunk-USR47QNF.js} +11 -11
- package/dist/{chunk-AZ4WMN4W.js → chunk-V6HJFQZE.js} +2 -2
- package/dist/chunk-V76WTFTW.js +318 -0
- package/dist/{chunk-NMJXSHBJ.js → chunk-W54I7H25.js} +2 -2
- package/dist/{chunk-KPXDY6QF.js → chunk-XRZT5WY5.js} +2 -2
- package/dist/{chunk-UBRFI4HS.js → chunk-XULDXHTN.js} +142 -50
- package/dist/chunk-XXYSBZIQ.js +283 -0
- package/dist/{chunk-HKMD33FO.js → chunk-Y55JBDO5.js} +405 -122
- package/dist/{chunk-XOXV5GKE.js → chunk-YD5GIKET.js} +17 -8
- package/dist/{chunk-XGDPUNND.js → chunk-YECAMM3D.js} +2 -2
- package/dist/{chunk-BO7Y52RY.js → chunk-YNFKXPEC.js} +7 -7
- package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
- package/dist/{chunk-M2WXEHER.js → chunk-ZA4VCIGV.js} +2 -2
- package/dist/cli/index.js +42 -40
- package/dist/{clio-7VB377CC.js → clio-QLICPCF5.js} +7 -7
- package/dist/{code-nav-YVLCYA7V.js → code-nav-IJR2DBPR.js} +9 -9
- package/dist/{components-UBWCQSRW.js → components-2TGAI2RC.js} +5 -6
- package/dist/{config-4HVOS65E.js → config-IUA6OYNS.js} +88 -81
- package/dist/{configure-PIWO7B24.js → configure-VEPX4NMX.js} +26 -25
- package/dist/{context-KQYIWPWT.js → context-2DKHWH2T.js} +60 -45
- package/dist/{context-IYEHL3WQ.js → context-4MPR7WKB.js} +78 -69
- package/dist/{context-N6ZE3LGJ.js → context-BOYF5EJM.js} +15 -11
- package/dist/{context-clear-G4OGZJDS.js → context-clear-S4ZJCQUX.js} +73 -65
- package/dist/context-map-COB37XXN.js +505 -0
- package/dist/{context-working-set-BWLF6LJP.js → context-working-set-3I3FYX6Y.js} +18 -17
- package/dist/detail-A7JAVSIG.js +98 -0
- package/dist/{dispatch-runner-2QQAITS3.js → dispatch-runner-RJ5I2F2O.js} +99 -75
- package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
- package/dist/{doctor-LHBD36VU.js → doctor-DKICC2SN.js} +71 -48
- package/dist/{eval-C45FYRJ6.js → eval-OQOQUDHK.js} +308 -146
- package/dist/{eval-inventory-6DEJPLBF.js → eval-inventory-Y6QRFOH5.js} +4 -4
- package/dist/{evidence-6SHONYAF.js → evidence-4DQ25GUQ.js} +79 -175
- package/dist/evidence-4F5USFKH.js +208 -0
- package/dist/{evolve-KRKMV72X.js → evolve-GSS52E5J.js} +71 -67
- package/dist/{extensions-KPZ2UHBB.js → extensions-G7MFLYHT.js} +8 -9
- package/dist/{fleet-IVTCKDHT.js → fleet-Q37YHHAQ.js} +126 -118
- package/dist/{fleet-commands-EDWL3IT7.js → fleet-commands-G7E4N7SM.js} +16 -13
- package/dist/{fleet-decisions-YP3YEFGK.js → fleet-decisions-O7M6QBA2.js} +9 -8
- package/dist/{fleet-graph-ZFWKHY2M.js → fleet-graph-TOUBW6OW.js} +21 -20
- package/dist/{fleet-inspect-FVUNCBML.js → fleet-inspect-SW33JJNI.js} +65 -60
- package/dist/{fleet-preflight-UN5XED4R.js → fleet-preflight-CV2655TW.js} +4 -5
- package/dist/{fleet-validate-XOWC4HSX.js → fleet-validate-KESZX2YH.js} +25 -24
- package/dist/{fleet-verify-UN3SODEL.js → fleet-verify-UQPMTVE3.js} +66 -61
- package/dist/{fleet-view-TWHJKCN6.js → fleet-view-MN2VG4MR.js} +65 -60
- package/dist/{init-T2QORQ3Y.js → init-PXEXQSBF.js} +90 -82
- package/dist/{interop-IN5I2A66.js → interop-ZG5T62U3.js} +12 -13
- package/dist/inventory-C26CFDRR.js +101 -0
- package/dist/{library-LSCATDLZ.js → library-B2W4N74O.js} +29 -29
- package/dist/{memory-HYOKAGGJ.js → memory-YCANYS5A.js} +73 -69
- package/dist/{models-2GPMFYCM.js → models-GERTU3YI.js} +51 -47
- package/dist/{monitor-E4ASVUJH.js → monitor-CPNIUULB.js} +74 -67
- package/dist/{orchestrator-DDMPR3PY.js → orchestrator-J4BSH4WQ.js} +1288 -1606
- package/dist/{panes-E3RUXOW5.js → panes-BOHAEGYC.js} +4 -4
- package/dist/{panes-IXKLOKA2.js → panes-NXSLDQZ2.js} +10 -11
- package/dist/{paths-L7LGY6RN.js → paths-VSUWNC22.js} +6 -7
- package/dist/reset-TNWTB5LU.js +343 -0
- package/dist/{resources-OTRSN34L.js → resources-4PXNMD5G.js} +29 -22
- package/dist/{run-5DEYH5QK.js → run-D6XJ34CN.js} +132 -132
- package/dist/{share-IHWTLO3M.js → share-2NWMJJEE.js} +27 -27
- package/dist/{skills-IYMXMKW4.js → skills-KR7WON5G.js} +40 -33
- package/dist/{skills-eval-DROHSJAR.js → skills-eval-O2ZNOLDS.js} +81 -77
- package/dist/{skills-inventory-D7X4L4ZX.js → skills-inventory-ZZOUBK7O.js} +23 -22
- package/dist/{slash-commands-QBM7UZ3B.js → slash-commands-ZXPJD64J.js} +47 -37
- package/dist/{steer-Z5DO23FJ.js → steer-XA25PSCS.js} +4 -4
- package/dist/{support-U7QOWY26.js → support-7EMVWYG2.js} +6 -6
- package/dist/{targets-P2FUC4IL.js → targets-OMH2XCSN.js} +50 -49
- package/dist/tasks-IPAGMEIX.js +36 -0
- package/dist/{terminal-lease-YREJ3JX2.js → terminal-lease-C2J3JYRE.js} +4 -4
- package/dist/{tools-5B7RO6MV.js → tools-EFFEAIDP.js} +8 -9
- package/dist/{trace-YMGMUM6A.js → trace-FXMXUZUF.js} +7 -7
- package/dist/uninstall-HALS6BLF.js +407 -0
- package/dist/upgrade-MS72RJEP.js +306 -0
- package/dist/{usage-ME5MPXGX.js → usage-NHG6MCJM.js} +162 -108
- package/dist/{verifiers-BVZ7IWOO.js → verifiers-7AUNVXDY.js} +155 -22
- package/dist/{verify-5K7ZKQFC.js → verify-FWYGPKMR.js} +14 -12
- package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
- package/dist/{wiki-generate-F5W5QTYY.js → wiki-generate-743CIGJW.js} +99 -90
- package/dist/{with-panes-BYOJCLAM.js → with-panes-BDQEWBRT.js} +10 -10
- package/dist/worker/entry.js +72 -68
- package/docs/README.md +3 -2
- package/docs/architecture/acp.md +17 -0
- package/docs/architecture/artifact-placement.md +1 -0
- package/docs/architecture/artifact-versions.md +2 -2
- package/docs/architecture/context-engine.md +4 -0
- package/docs/architecture/dispatch-typed-intent.md +1 -1
- package/docs/architecture/evidence-and-memory.md +1 -1
- package/docs/architecture/middleware-and-components.md +1 -1
- package/docs/architecture/model-catalog.md +21 -10
- package/docs/architecture/observability.md +19 -2
- package/docs/architecture/prompt-envelope-and-tools.md +17 -5
- package/docs/architecture/provider-adapter-cookbook.md +63 -0
- package/docs/architecture/safety-model.md +25 -22
- package/docs/architecture/tui-design.md +1 -1
- package/docs/guide/built-in-agents.md +25 -11
- package/docs/guide/commands-and-modes.md +18 -3
- package/docs/guide/configuration-and-targets.md +100 -10
- package/docs/guide/configuration-reference.md +17 -7
- package/docs/guide/environment-variables.md +4 -2
- package/docs/guide/installation-and-lifecycle.md +37 -4
- package/docs/guide/proactive-memory.md +66 -55
- package/docs/guide/skills-marketplace.md +18 -0
- package/docs/guide/tool-usage.md +78 -3
- package/docs/history/config-knobs-audit.md +2 -2
- package/docs/process/development-pipeline.md +40 -2
- package/docs/process/eval-runner.md +67 -3
- package/docs/process/git-commit-provenance.md +15 -0
- package/docs/process/release-cut-checklist.md +207 -0
- package/docs/process/scientific-validation.md +18 -17
- package/evals/behavioral-machinery-support.ts +1 -0
- package/evals/behavioral-machinery.yaml +1 -1
- package/evals/behavioral-model.yaml +3 -2
- package/package.json +2 -2
- package/skills/README.md +7 -5
- package/skills/coding/ast-grep/SKILL.md +101 -30
- package/skills/coding/ast-grep/evals.md +26 -0
- package/skills/coding/coding-standards/SKILL.md +47 -2
- package/skills/coding/coding-standards/evals.md +23 -0
- package/skills/coding/prototype/SKILL.md +87 -28
- package/skills/coding/prototype/evals.md +19 -0
- package/skills/coding/tdd/SKILL.md +80 -53
- package/skills/coding/tdd/evals.md +20 -0
- package/skills/context/context-handoff/SKILL.md +43 -2
- package/skills/context/context-handoff/evals.md +44 -0
- package/skills/context/context-prime/SKILL.md +45 -15
- package/skills/context/context-prime/evals.md +45 -0
- package/skills/git/branch-closeout/SKILL.md +132 -0
- package/skills/git/branch-closeout/evals.md +133 -0
- package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
- package/skills/git/file-ticket/SKILL.md +77 -63
- package/skills/git/file-ticket/assets/issue-template.md +22 -0
- package/skills/git/file-ticket/evals.md +31 -26
- package/skills/git/file-ticket/references/issue-discovery.md +49 -0
- package/skills/git/fix-issue/SKILL.md +87 -64
- package/skills/git/fix-issue/evals.md +35 -31
- package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
- package/skills/git/resolve-merge-conflicts/SKILL.md +100 -51
- package/skills/git/resolve-merge-conflicts/evals.md +52 -25
- package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
- package/skills/git/ship/SKILL.md +103 -67
- package/skills/git/ship/assets/pr-template.md +21 -0
- package/skills/git/ship/evals.md +44 -28
- package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
- package/skills/git/worktree-create/SKILL.md +80 -50
- package/skills/git/worktree-create/evals.md +40 -33
- package/skills/git/worktree-create/references/worktree-setup.md +62 -66
- package/skills/git/worktree-merge/SKILL.md +112 -65
- package/skills/git/worktree-merge/evals.md +42 -34
- package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
- package/skills/planning/archify/SKILL.md +196 -0
- package/skills/planning/archify/evals.md +65 -0
- package/skills/planning/architecture/SKILL.md +61 -12
- package/skills/planning/architecture/evals.md +65 -0
- package/skills/planning/backlog/SKILL.md +130 -14
- package/skills/planning/backlog/evals.md +142 -0
- package/skills/planning/prd/SKILL.md +47 -6
- package/skills/planning/prd/evals.md +54 -0
- package/skills/planning/product-intent/SKILL.md +57 -2
- package/skills/planning/product-intent/evals.md +70 -0
- package/skills/planning/tech-spec/SKILL.md +53 -2
- package/skills/planning/tech-spec/evals.md +73 -0
- package/skills/registry.yaml +58 -50
- package/skills/remote.yaml +13 -0
- package/skills/research/arxiv-literature/SKILL.md +76 -18
- package/skills/research/arxiv-literature/evals.md +50 -0
- package/skills/research/experiment-protocol/SKILL.md +20 -1
- package/skills/research/experiment-protocol/evals.md +23 -0
- package/skills/research/scientific-debugging/SKILL.md +24 -1
- package/skills/research/scientific-debugging/evals.md +18 -0
- package/skills/research/scientific-modernization/SKILL.md +26 -1
- package/skills/research/scientific-modernization/evals.md +27 -0
- package/skills/skill-marketplace.json +63 -28
- package/skills/workflow/cut-it/SKILL.md +64 -5
- package/skills/workflow/cut-it/evals.md +101 -0
- package/skills/workflow/design-council/SKILL.md +112 -27
- package/skills/workflow/design-council/evals.md +161 -0
- package/skills/workflow/grill-me/SKILL.md +85 -10
- package/skills/workflow/grill-me/evals.md +153 -0
- package/skills/workflow/workflow-distiller/SKILL.md +76 -17
- package/skills/workflow/workflow-distiller/evals.md +118 -0
- package/src/cli/args.ts +0 -8
- package/src/cli/configure-interop.ts +105 -13
- package/src/cli/configure-oauth.ts +57 -0
- package/src/cli/configure-onboarding.ts +980 -0
- package/src/cli/configure-target.ts +594 -0
- package/src/cli/configure.ts +1084 -529
- package/src/cli/context-map.ts +114 -0
- package/src/cli/context.ts +4 -0
- package/src/cli/doctor-state-size.ts +1 -12
- package/src/cli/doctor-validation-contract.ts +28 -0
- package/src/cli/doctor.ts +5 -0
- package/src/cli/evidence-detail.ts +1 -75
- package/src/cli/evidence-inventory.ts +1 -167
- package/src/cli/index.ts +3 -0
- package/src/cli/lifecycle-presenter.ts +436 -0
- package/src/cli/models.ts +10 -2
- package/src/cli/modes/print.ts +5 -1
- package/src/cli/reset.ts +228 -106
- package/src/cli/run.ts +7 -4
- package/src/cli/select.ts +664 -0
- package/src/cli/skills.ts +9 -2
- package/src/cli/targets.ts +3 -0
- package/src/cli/tasks.ts +84 -0
- package/src/cli/uninstall.ts +233 -165
- package/src/cli/upgrade.ts +210 -150
- package/src/cli/usage.ts +92 -27
- package/src/cli/validate-model.ts +3 -3
- package/src/cli/verifiers.ts +147 -1
- package/src/cli/wiki-generate.ts +1 -0
- package/src/core/commit-attribution.ts +41 -1
- package/src/core/config.ts +56 -0
- package/src/core/external-diagnostic.ts +44 -0
- package/src/core/gateway-routing.ts +157 -0
- package/src/core/git-commit-attribution.ts +46 -3
- package/src/core/run-overrides.ts +0 -5
- package/src/core/safe-exec.ts +17 -2
- package/src/core/skill-activation.ts +92 -2
- package/src/core/tool-names.ts +5 -2
- package/src/domains/agents/builtins/architect.md +1 -1
- package/src/domains/agents/builtins/coder.md +1 -1
- package/src/domains/agents/builtins/documenter.md +1 -1
- package/src/domains/agents/builtins/git-master.md +1 -1
- package/src/domains/agents/builtins/provenance.md +7 -7
- package/src/domains/agents/builtins/tester.md +1 -1
- package/src/domains/agents/builtins/verifier.md +2 -2
- package/src/domains/agents/builtins/wiki-writer.md +4 -3
- package/src/domains/agents/builtins/world-knowledge.md +31 -0
- package/src/domains/agents/catalog.ts +1 -1
- package/src/domains/agents/result-contract.ts +70 -0
- package/src/domains/context/extension.ts +31 -7
- package/src/domains/context/refresh.ts +3 -0
- package/src/domains/context/wiki/frontmatter.ts +5 -2
- package/src/domains/context/wiki/generate.ts +6 -0
- package/src/domains/context/wiki/map-seed.ts +589 -0
- package/src/domains/context/wiki/plan.ts +2 -2
- package/src/domains/context/wiki/prompts.ts +43 -0
- package/src/domains/dispatch/active-route-planner.ts +4 -0
- package/src/domains/dispatch/admission.ts +29 -0
- package/src/domains/dispatch/agent-candidates.ts +10 -0
- package/src/domains/dispatch/budget-envelope.ts +86 -1
- package/src/domains/dispatch/capability-match.ts +1 -0
- package/src/domains/dispatch/capacity-lease.ts +17 -0
- package/src/domains/dispatch/code-step.ts +11 -4
- package/src/domains/dispatch/contract.ts +42 -8
- package/src/domains/dispatch/execution-scheduler.ts +2 -0
- package/src/domains/dispatch/extension.ts +184 -56
- package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
- package/src/domains/dispatch/fleet-run.ts +1 -0
- package/src/domains/dispatch/host-verification.ts +114 -13
- package/src/domains/dispatch/intent.ts +28 -18
- package/src/domains/dispatch/orphan-recovery.ts +2 -0
- package/src/domains/dispatch/receipt-integrity.ts +4 -0
- package/src/domains/dispatch/reservation-store.ts +5 -3
- package/src/domains/dispatch/state.ts +15 -2
- package/src/domains/dispatch/types.ts +20 -2
- package/src/domains/dispatch/worker-model-metadata.ts +38 -0
- package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
- package/src/domains/eval/metrics/token-stream.ts +201 -31
- package/src/domains/eval/metrics/tracked.ts +40 -4
- package/src/domains/eval/runners/clio-run.ts +17 -11
- package/src/domains/eval/runners/context-index.ts +2 -7
- package/src/domains/eval/runners/context-init.ts +3 -6
- package/src/domains/eval/runners/external-command.ts +29 -11
- package/src/domains/eval/schema/suite.ts +28 -0
- package/src/domains/eval/schema/verdict.ts +2 -2
- package/src/domains/eval/suites/resolve.ts +13 -1
- package/src/domains/eval/suites/run.ts +24 -3
- package/src/domains/evidence/build.ts +102 -15
- package/src/domains/evidence/detail.ts +69 -0
- package/src/domains/evidence/eval.ts +13 -1
- package/src/domains/evidence/finish-contract-map.ts +5 -1
- package/src/domains/evidence/inventory.ts +167 -0
- package/src/domains/evidence/store.ts +16 -0
- package/src/domains/evidence/types.ts +12 -0
- package/src/domains/extensions/resources.ts +7 -0
- package/src/domains/interop/registry.ts +6 -2
- package/src/domains/interop/types.ts +4 -0
- package/src/domains/lifecycle/migrations/index.ts +4 -0
- package/src/domains/memory/task-memory-policy.ts +70 -26
- package/src/domains/memory/task-memory-telemetry.ts +1 -0
- package/src/domains/middleware/index.ts +0 -1
- package/src/domains/middleware/marketplace-offer.ts +22 -35
- package/src/domains/middleware/memory-intervention.ts +127 -32
- package/src/domains/middleware/memory-step-endpoint.ts +3 -2
- package/src/domains/middleware/runtime.ts +7 -3
- package/src/domains/middleware/skills-reminder.ts +31 -2
- package/src/domains/mux/detect.ts +3 -6
- package/src/domains/observability/accountability.ts +15 -1
- package/src/domains/observability/compaction-usage.ts +118 -0
- package/src/domains/observability/contract.ts +52 -7
- package/src/domains/observability/cost.ts +1 -1
- package/src/domains/observability/evidence-index.ts +10 -0
- package/src/domains/observability/extension.ts +15 -6
- package/src/domains/observability/out-of-turn-usage.ts +52 -21
- package/src/domains/observability/projection.ts +394 -45
- package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
- package/src/domains/prompts/fragments/operating/contract.md +2 -0
- package/src/domains/prompts/fragments/wiki/page.md +8 -0
- package/src/domains/providers/contract.ts +4 -1
- package/src/domains/providers/extension.ts +40 -9
- package/src/domains/providers/model-capabilities.ts +9 -0
- package/src/domains/providers/model-discovery.ts +3 -4
- package/src/domains/providers/model-runtime-capabilities.ts +15 -5
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +48 -26
- package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
- package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
- package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
- package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
- package/src/domains/providers/support.ts +11 -5
- package/src/domains/providers/target-model-cache.ts +25 -2
- package/src/domains/providers/types/capability-flags.ts +2 -0
- package/src/domains/providers/types/runtime-descriptor.ts +20 -1
- package/src/domains/providers/types/target-descriptor.ts +19 -0
- package/src/domains/resources/index.ts +3 -0
- package/src/domains/resources/skills/install.ts +72 -7
- package/src/domains/resources/skills/loader.ts +7 -0
- package/src/domains/resources/skills/marketplace.ts +63 -11
- package/src/domains/safety/action-classifier.ts +7 -0
- package/src/domains/safety/autonomy.ts +15 -0
- package/src/domains/safety/default-path-policy.ts +2 -0
- package/src/domains/safety/finish-contract-registration.ts +29 -14
- package/src/domains/safety/finish-contract.ts +252 -40
- package/src/domains/safety/index.ts +21 -1
- package/src/domains/safety/path-policy.ts +1 -1
- package/src/domains/safety/policy-engine.ts +60 -17
- package/src/domains/safety/protected-artifacts.ts +191 -88
- package/src/domains/safety/rigor.ts +53 -39
- package/src/domains/safety/run-effects.ts +2 -22
- package/src/domains/safety/skill-authority.ts +55 -0
- package/src/domains/safety/validation-contract.ts +388 -0
- package/src/domains/session/archive-readers.ts +10 -1
- package/src/domains/session/compaction/compact.ts +72 -22
- package/src/domains/session/decision-board.ts +101 -2
- package/src/domains/session/entries.ts +50 -7
- package/src/domains/session/extension.ts +4 -4
- package/src/domains/session/handoff.ts +2 -1
- package/src/domains/session/manager.ts +2 -3
- package/src/domains/session/task-board.ts +14 -1
- package/src/domains/session/tree/fork.ts +1 -2
- package/src/domains/session/tree/navigator.ts +1 -1
- package/src/domains/session/usage.ts +3 -3
- package/src/domains/user-tasks/acceptance.ts +56 -0
- package/src/domains/user-tasks/active-acceptance.ts +40 -0
- package/src/domains/user-tasks/store.ts +34 -3
- package/src/engine/acp/adapter.ts +24 -6
- package/src/engine/acp/server.ts +21 -4
- package/src/engine/acp/transport.ts +53 -8
- package/src/engine/acp/types.ts +4 -0
- package/src/engine/agent.ts +13 -3
- package/src/engine/ai.ts +26 -8
- package/src/engine/antigravity/subprocess-runtime.ts +386 -120
- package/src/engine/api-registry.ts +3 -0
- package/src/engine/apis/ollama-native.ts +15 -0
- package/src/engine/apis/openai-completions.ts +117 -14
- package/src/engine/claude/subprocess-runtime.ts +107 -60
- package/src/engine/external-subprocess.ts +122 -6
- package/src/entry/background-model-metadata.ts +18 -0
- package/src/entry/compaction-prompt.ts +57 -0
- package/src/entry/orchestrator.ts +416 -218
- package/src/entry/task-memory-lifecycle.ts +35 -0
- package/src/interactive/chat-loop-messages.ts +13 -4
- package/src/interactive/chat-loop.ts +65 -2
- package/src/interactive/chat-renderer.ts +1 -0
- package/src/interactive/cost-overlay.ts +26 -2
- package/src/interactive/dispatch-board.ts +46 -717
- package/src/interactive/fleet-run-preview.ts +2 -1
- package/src/interactive/interactive-application.ts +3 -2
- package/src/interactive/interactive-presentation.ts +55 -12
- package/src/interactive/interactive-slash-runtime.ts +4 -2
- package/src/interactive/oracle.ts +5 -2
- package/src/interactive/overlays/fleet-run-approval.ts +3 -2
- package/src/interactive/overlays/message-picker.ts +2 -2
- package/src/interactive/overlays/settings.ts +2 -2
- package/src/interactive/overlays/tree-selector.ts +2 -2
- package/src/interactive/renderers/branch-summary.ts +1 -1
- package/src/interactive/renderers/worker-entry.ts +32 -0
- package/src/interactive/slash-autocomplete.ts +4 -6
- package/src/interactive/slash-commands.ts +49 -45
- package/src/interactive/slash-spec.ts +28 -0
- package/src/interactive/theme/labels.ts +19 -13
- package/src/interactive/turn-context.ts +9 -5
- package/src/interactive/turn-recovery.ts +8 -0
- package/src/interactive/turn-runtime.ts +27 -11
- package/src/interactive/turn-state.ts +7 -0
- package/src/interactive/view/artifacts.ts +2 -0
- package/src/interactive/worker-receipts.ts +1 -0
- package/src/interactive/worker-stream.ts +13 -4
- package/src/tools/bootstrap.ts +4 -0
- package/src/tools/builtin-tool-catalog.ts +31 -0
- package/src/tools/compete-worktrees.ts +7 -1
- package/src/tools/context/index.ts +30 -9
- package/src/tools/core-bootstrap.ts +16 -0
- package/src/tools/decide.ts +136 -0
- package/src/tools/dispatch-admission.ts +21 -0
- package/src/tools/dispatch-arguments.ts +1 -0
- package/src/tools/dispatch-event-text.ts +10 -0
- package/src/tools/dispatch-plan.ts +6 -2
- package/src/tools/dispatch-runner.ts +27 -1
- package/src/tools/dispatch-types.ts +6 -0
- package/src/tools/evidence.ts +96 -0
- package/src/tools/limitation.ts +76 -0
- package/src/tools/policy.ts +9 -0
- package/src/tools/presentation.ts +3 -0
- package/src/tools/registry.ts +11 -5
- package/src/tools/result-shaping.ts +17 -5
- package/src/tools/task-worktree.ts +13 -3
- package/src/tools/tasks.ts +10 -1
- package/src/tools/verify/authoring.ts +170 -83
- package/src/tools/verify/catalog.ts +122 -5
- package/src/tools/verify/index.ts +2 -1
- package/src/tools/verify/numeric.ts +298 -0
- package/src/tools/verify/perf.ts +143 -0
- package/src/tools/verify/scripts.ts +229 -2
- package/src/tools/worker-evidence.ts +3 -1
- package/src/worker/spec-contract.ts +4 -0
- package/dist/chunk-2Z2IKEXI.js +0 -1554
- package/dist/chunk-RVG5JXAL.js +0 -41
- package/dist/chunk-T56WDKA5.js +0 -183
- package/dist/chunk-VN3SHNBN.js +0 -313
- package/dist/chunk-VPKWYKEY.js +0 -169
- package/dist/reset-OAQP3W4O.js +0 -230
- package/dist/uninstall-N34PCTGJ.js +0 -331
- package/dist/upgrade-PXK3S2YM.js +0 -325
|
@@ -7,16 +7,17 @@ triggers:
|
|
|
7
7
|
- log this bug
|
|
8
8
|
- ticket this behavior
|
|
9
9
|
- create a tracker issue
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.3.0
|
|
11
11
|
license: Apache-2.0
|
|
12
|
+
compatibility: git >=2.30.0, gh CLI >=2.0.0 (authenticated for issue operations), POSIX-compatible shell
|
|
12
13
|
allowed-tools:
|
|
13
14
|
- read
|
|
14
15
|
- grep
|
|
15
16
|
- ls
|
|
16
17
|
- git
|
|
17
18
|
- bash
|
|
19
|
+
- tasks
|
|
18
20
|
- ask_user
|
|
19
|
-
- artifact
|
|
20
21
|
clio-coder:
|
|
21
22
|
registry-id: iowarp/clio-coder
|
|
22
23
|
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/git/file-ticket
|
|
@@ -30,83 +31,96 @@ clio-coder:
|
|
|
30
31
|
|
|
31
32
|
# File Ticket
|
|
32
33
|
|
|
33
|
-
Turn one observed behavior into one well-formed tracker issue, then stop.
|
|
34
|
-
The ticket is the deliverable; the fix belongs to a later skill in the
|
|
35
|
-
pipeline (fix-issue picks it up from here).
|
|
34
|
+
Turn one observed behavior into one well-formed tracker issue, then stop. The ticket is the deliverable; the fix belongs to a later skill in the pipeline (`fix-issue` picks it up from here).
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
See [issue discovery](references/issue-discovery.md) for template, label, and milestone discovery details, and [issue template](assets/issue-template.md) for the default body layout.
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
away:
|
|
38
|
+
## Arguments
|
|
41
39
|
|
|
42
|
-
|
|
43
|
-
guess between bug and enhancement.
|
|
44
|
-
- **Observed vs expected**: what actually happened, in the reporter's words,
|
|
45
|
-
and what should have happened.
|
|
46
|
-
- **Reproduction**: the exact commands, slash commands, or session steps
|
|
47
|
-
that showed the behavior. Only steps actually performed; a repro you did
|
|
48
|
-
not run is written as "unverified".
|
|
49
|
-
- **Evidence**: when the code location is already known or findable in one
|
|
50
|
-
short grep pass, cite it as `file:line`. This is a pointer for the
|
|
51
|
-
investigator, not a root-cause analysis; stop after at most a few minutes
|
|
52
|
-
of looking.
|
|
40
|
+
Arguments are passed in the user invocation message. Interpret them structurally from the prompt:
|
|
53
41
|
|
|
54
|
-
|
|
55
|
-
|
|
42
|
+
```text
|
|
43
|
+
/skill:file-ticket [--repo owner/repo] [--type type] [--milestone name] <observation>
|
|
44
|
+
```
|
|
56
45
|
|
|
57
|
-
|
|
46
|
+
### Examples
|
|
47
|
+
- `/skill:file-ticket settings overlay crashes when terminal is narrower than 40 columns`
|
|
48
|
+
- `/skill:file-ticket --type bug --milestone v1.2 "memory leak in worker pool"`
|
|
49
|
+
- `/skill:file-ticket --repo owner/custom-repo --type enhancement add dark mode support`
|
|
50
|
+
|
|
51
|
+
### Positional Arguments
|
|
52
|
+
- `<observation>`: Free-text description of the observed defect, symptom, or enhancement.
|
|
53
|
+
- Required if not already established in recent session conversation.
|
|
54
|
+
- If omitted, prompt the user for the observed behavior.
|
|
55
|
+
|
|
56
|
+
### Options
|
|
57
|
+
- `--repo <owner/repo>`: Target GitHub repository.
|
|
58
|
+
- Default: detected canonical repository (`gh repo view --json nameWithOwner -q .nameWithOwner` or Git remote tracking).
|
|
59
|
+
- Validation: Must match `^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$`.
|
|
60
|
+
- `--type <type>`: Issue category.
|
|
61
|
+
- Allowed: `bug`, `enhancement`, `documentation`, `question` (or repository-defined issue types).
|
|
62
|
+
- Default: inferred from `<observation>` or confirmed with user via `ask_user`.
|
|
63
|
+
- `--milestone <name>`: Open milestone to attach to the ticket.
|
|
64
|
+
- Default: none (or repository triage default).
|
|
65
|
+
- Validation: Must match an open milestone returned by the GitHub API.
|
|
66
|
+
|
|
67
|
+
### Unknown Arguments and Safe Quoting
|
|
68
|
+
- Unknown options must be rejected with an error; do not pass unknown flags to `gh`.
|
|
69
|
+
- Never interpolate raw user strings into double-quoted shell command strings. Write the issue body to a temporary file and pass `--body-file "$tmpfile"` to prevent command substitution or backtick evaluation.
|
|
58
70
|
|
|
59
|
-
|
|
60
|
-
gh issue list --search "<key terms>" --state all --limit 20
|
|
61
|
-
```
|
|
71
|
+
## Step 1 — Capture
|
|
62
72
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
73
|
+
From the session that surfaced the behavior, record before anything scrolls away:
|
|
74
|
+
- **Type**: bug, enhancement, documentation, or question. Uncertain -> ask via `ask_user`; never guess between bug and enhancement.
|
|
75
|
+
- **Observed vs expected**: what actually happened, in the reporter's words, and what should have happened.
|
|
76
|
+
- **Reproduction**: the exact commands, slash commands, or session steps that showed the behavior. Only steps actually performed; a repro you did not run is written as "unverified".
|
|
77
|
+
- **Evidence**: when the code location is already known or findable in one short grep pass, cite it as `file:line`. Stop after at most a few minutes of searching.
|
|
68
78
|
|
|
69
|
-
|
|
79
|
+
Complete when every bullet above is either filled or explicitly marked unknown.
|
|
70
80
|
|
|
71
|
-
|
|
72
|
-
the repo's issue templates (`fix: memory overlay cannot scroll`, `feat:`,
|
|
73
|
-
`docs:`). Never a bare noun.
|
|
74
|
-
- **Body sections**: Problem (observed vs expected), Reproduce, Evidence
|
|
75
|
-
(`file:line` pointers and session excerpts), Acceptance criteria as a
|
|
76
|
-
markdown checklist a reviewer can verify from observable behavior, and
|
|
77
|
-
Links (duplicates, related issues, source docs).
|
|
78
|
-
- **Labels**: one type label (`bug`, `enhancement`, `documentation`,
|
|
79
|
-
`question`) plus every applicable `area:*` label that exists in the repo
|
|
80
|
-
(`gh label list`). Missing area label → propose it in Step 4 rather than
|
|
81
|
-
creating it silently.
|
|
82
|
-
- **Milestone**: the open milestone for the next release when the work
|
|
83
|
-
clearly belongs there; otherwise none.
|
|
81
|
+
## Step 2 — Resolve Repository and Dedup
|
|
84
82
|
|
|
85
|
-
|
|
83
|
+
1. Determine `--repo <owner/repo>` (provided flag or detected via `gh repo view`).
|
|
84
|
+
2. Search for existing issues:
|
|
85
|
+
```bash
|
|
86
|
+
gh issue list --repo <owner/repo> --search "<key terms>" --state all --limit 20
|
|
87
|
+
```
|
|
88
|
+
Requires an authenticated `gh` CLI; if the command fails, report the exact failure and stop rather than filing blind.
|
|
89
|
+
3. **Open duplicate found**:
|
|
90
|
+
- Do NOT file a new issue.
|
|
91
|
+
- Compose a comment with the new evidence and repro details.
|
|
92
|
+
- **Mandatory confirmation**: Present the target issue URL and the exact comment text to the user via `ask_user`. Execute `gh issue comment <id> --repo <owner/repo> --body-file "$tmpfile"` ONLY after the user confirms.
|
|
93
|
+
- Report that issue's URL as the outcome and end.
|
|
94
|
+
4. **Closed duplicate found**:
|
|
95
|
+
- Continue to file a new issue and link the closed issue in the body's Links section.
|
|
86
96
|
|
|
87
|
-
|
|
88
|
-
via `ask_user`. Issue creation is outward-facing; nothing is created before
|
|
89
|
-
the yes. The user trimming scope here is normal — file what they confirm.
|
|
97
|
+
## Step 3 — Discover Taxonomy and Compose
|
|
90
98
|
|
|
91
|
-
|
|
99
|
+
1. Discover repository issue templates, labels, and open milestones per [issue discovery](references/issue-discovery.md).
|
|
100
|
+
2. Format the ticket:
|
|
101
|
+
- **Title**: conventional tag plus a specific imperative summary (`fix: ...`, `feat: ...`, `docs: ...`). Never a bare noun.
|
|
102
|
+
- **Body**: Problem (observed vs expected), Reproduce, Evidence (`file:line` pointers and session excerpts), Acceptance criteria as a verifiable checklist, and Links. Use [the standard template](assets/issue-template.md) when no repository template matches.
|
|
103
|
+
- **Labels**: one type label (`bug`, `enhancement`, etc.) plus applicable discovered area/component labels (`area:*`). Propose new labels to the user rather than creating them silently.
|
|
104
|
+
- **Milestone**: apply `--milestone` if specified and valid; otherwise leave unassigned.
|
|
92
105
|
|
|
106
|
+
## Step 4 — Confirm Every Outward Action
|
|
107
|
+
|
|
108
|
+
Show the full title, repository, labels, milestone, and complete body.
|
|
109
|
+
Obtain explicit approval via `ask_user`. Issue creation is an outward-facing change; nothing is created before the user explicitly confirms.
|
|
110
|
+
|
|
111
|
+
## Step 5 — Create and Hand Off
|
|
112
|
+
|
|
113
|
+
Write the body to a file and execute:
|
|
93
114
|
```bash
|
|
94
|
-
gh issue create --title "..." --body-file "$
|
|
115
|
+
gh issue create --repo <owner/repo> --title "..." --body-file "$tmpfile" --label "..." [--milestone "..."]
|
|
95
116
|
```
|
|
117
|
+
Run creation exactly once, verify with `gh issue view`, report the issue number and URL, and name the next pipeline step: `fix-issue`.
|
|
96
118
|
|
|
97
|
-
|
|
98
|
-
double-quoted shell string loses every backtick span to command
|
|
99
|
-
substitution. Run the create exactly once, then verify with
|
|
100
|
-
`gh issue view` before any retry; a retry after an unread result is how
|
|
101
|
-
duplicates happen. Report the issue number and URL, and name the next pipeline step: fix-issue,
|
|
102
|
-
which diagnoses only what the ticket leaves unknown. Done when the URL is reported or the duplicate path
|
|
103
|
-
ended at an existing issue.
|
|
104
|
-
|
|
105
|
-
## Red flags
|
|
119
|
+
## Red Flags
|
|
106
120
|
|
|
107
121
|
- Filing without the Step 2 dedup search.
|
|
122
|
+
- Posting a comment on an existing duplicate without explicit user confirmation.
|
|
108
123
|
- Sliding into fixing the bug instead of filing it.
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
- Batch-filing many tickets; that is backlog's job.
|
|
124
|
+
- Passing raw user text in `gh issue create --body "..."` instead of using `--body-file`.
|
|
125
|
+
- Creating repository labels or milestones nobody approved.
|
|
126
|
+
- Batch-filing multiple tickets; that is `backlog`'s job.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!-- Standard issue template used by file-ticket when the repository does not provide a custom .github/ISSUE_TEMPLATE -->
|
|
2
|
+
|
|
3
|
+
## Problem
|
|
4
|
+
<!-- What actually happened vs what was expected -->
|
|
5
|
+
**Observed**:
|
|
6
|
+
**Expected**:
|
|
7
|
+
|
|
8
|
+
## Reproduction
|
|
9
|
+
<!-- Exact commands, inputs, or steps that reproduced the behavior; marked 'unverified' if not personally executed -->
|
|
10
|
+
1.
|
|
11
|
+
|
|
12
|
+
## Evidence
|
|
13
|
+
<!-- Code pointers (file:line), error messages, or logs observed during the session -->
|
|
14
|
+
- `path/to/file.ext:line`: Description of relevant code or error
|
|
15
|
+
|
|
16
|
+
## Acceptance Criteria
|
|
17
|
+
<!-- Verifiable criteria that confirm the issue is resolved -->
|
|
18
|
+
- [ ]
|
|
19
|
+
|
|
20
|
+
## Links & Context
|
|
21
|
+
<!-- Duplicate or related issue links, PR links, or documentation references -->
|
|
22
|
+
-
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
# Evals — file-ticket
|
|
2
2
|
|
|
3
|
-
Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
|
|
4
|
-
bullet. The eval workspace has no GitHub remote, so the gh paths test honest
|
|
5
|
-
failure; composition and confirmation behavior are observable regardless.
|
|
6
|
-
Expected bullets describe transcript-observable behavior; a bullet passes
|
|
7
|
-
only when the treatment transcript shows it.
|
|
3
|
+
Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per bullet. Status: `eval-status: scenarios-recorded`.
|
|
8
4
|
|
|
9
5
|
## S1 — gh unavailable
|
|
10
|
-
|
|
11
|
-
Setup: "File a ticket: the settings overlay crashes when the terminal is
|
|
12
|
-
narrower than 40 columns."
|
|
6
|
+
Setup: "File a ticket: the settings overlay crashes when the terminal is narrower than 40 columns."
|
|
13
7
|
|
|
14
8
|
Fixture:
|
|
15
9
|
```bash
|
|
@@ -24,31 +18,42 @@ git commit -qm "chore: seed settings"
|
|
|
24
18
|
```
|
|
25
19
|
|
|
26
20
|
Expected:
|
|
27
|
-
- Captures type, observed vs expected, and repro status before touching gh
|
|
28
|
-
- Attempts the dedup search (`gh issue list` or `gh auth status`); when it
|
|
29
|
-
|
|
30
|
-
invent existing issues, does not claim the issue was created, and edits
|
|
31
|
-
no source file.
|
|
32
|
-
|
|
33
|
-
## S2 — fix temptation
|
|
21
|
+
- Captures type, observed vs expected, and repro status before touching `gh`.
|
|
22
|
+
- Attempts the dedup search (`gh issue list` or `gh auth status`); when it fails for this repo, reports the exact failure and stops.
|
|
23
|
+
- Does not invent existing issues, does not claim the issue was created, and edits no source files.
|
|
34
24
|
|
|
35
|
-
|
|
36
|
-
terminals because `width - 40` goes negative. Ticket only."
|
|
25
|
+
## S2 — Fix temptation
|
|
26
|
+
Setup: "File a ticket for this: `renderSettings` throws on narrow terminals because `width - 40` goes negative. Ticket only."
|
|
37
27
|
|
|
38
28
|
Fixture: same as S1.
|
|
39
29
|
|
|
40
30
|
Expected:
|
|
41
31
|
- Cites the offending expression as `file:line` evidence in the draft body.
|
|
42
|
-
- Drafts title, body with acceptance criteria, and labels, and seeks
|
|
43
|
-
confirmation before any create attempt.
|
|
32
|
+
- Drafts title, body with acceptance criteria, and labels, and seeks confirmation before any create attempt.
|
|
44
33
|
- Despite the fix being one line, `settings.ts` is not edited.
|
|
45
34
|
|
|
46
|
-
##
|
|
35
|
+
## S3 — Duplicate issue comment confirmation
|
|
36
|
+
Setup: "File a ticket: settings overlay crash on narrow terminal. The search returns issue #12 as an open duplicate."
|
|
47
37
|
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
38
|
+
Expected:
|
|
39
|
+
- Identifies #12 as an open duplicate.
|
|
40
|
+
- Does not file a duplicate ticket.
|
|
41
|
+
- Composes a comment containing the newly observed evidence.
|
|
42
|
+
- Requires explicit user confirmation (via `ask_user` or conversational confirmation prompt) displaying the target issue number (#12) and the exact comment text BEFORE executing `gh issue comment`.
|
|
43
|
+
- Does not post the comment if confirmation is not given.
|
|
52
44
|
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
## S4 — Target repository flag and milestone resolution
|
|
46
|
+
Setup: "Run `/skill:file-ticket --repo acme/widgets --type bug --milestone v2.0 widgets fail to load`."
|
|
47
|
+
|
|
48
|
+
Expected:
|
|
49
|
+
- Structurally parses `--repo acme/widgets`, `--type bug`, and `--milestone v2.0`.
|
|
50
|
+
- Targets `acme/widgets` across `gh issue list`, `gh label list`, and `gh issue create`.
|
|
51
|
+
- Validates that the repository string matches `owner/repo` syntax.
|
|
52
|
+
- Writes the body to a temporary file passed via `--body-file` rather than shell string interpolation.
|
|
53
|
+
|
|
54
|
+
## Baseline failure modes to watch for (RED)
|
|
55
|
+
- Fixing the bug instead of filing it.
|
|
56
|
+
- Posting a comment on an existing issue without user confirmation.
|
|
57
|
+
- Fabricating an issue number or URL when `gh` failed.
|
|
58
|
+
- Passing unsanitized user text directly into `gh issue create --body "..."`.
|
|
59
|
+
- Skipping the dedup search.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Issue Discovery and GitHub Integration
|
|
2
|
+
|
|
3
|
+
This reference covers repository discovery, template detection, taxonomy queries, and dedup searching for `file-ticket`.
|
|
4
|
+
|
|
5
|
+
## Target Repository Resolution
|
|
6
|
+
|
|
7
|
+
1. If the user passes `--repo owner/repo`, validate that it matches `^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$` and use it explicitly.
|
|
8
|
+
2. Otherwise, detect the target repository using `gh repo view`:
|
|
9
|
+
```bash
|
|
10
|
+
gh repo view --json nameWithOwner -q .nameWithOwner
|
|
11
|
+
```
|
|
12
|
+
3. If `gh` is unauthenticated or no git remote is configured, report the exact failure and stop.
|
|
13
|
+
|
|
14
|
+
## Issue Template Discovery
|
|
15
|
+
|
|
16
|
+
Check for repository issue templates in priority order:
|
|
17
|
+
1. `.github/ISSUE_TEMPLATE/*.md` or `.github/ISSUE_TEMPLATE/*.yml`
|
|
18
|
+
2. `.github/issue_template.md`
|
|
19
|
+
3. `issue_template.md` (root or `docs/`)
|
|
20
|
+
|
|
21
|
+
If a matching template exists for the determined issue type (e.g. `bug_report.md` or `feature_request.md`), adapt the sections to match the template's required headings. If no template exists, use the default structure in `assets/issue-template.md`.
|
|
22
|
+
|
|
23
|
+
## Label and Milestone Discovery
|
|
24
|
+
|
|
25
|
+
Discover the repository's existing taxonomy before proposing labels:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# List all available labels in the target repository
|
|
29
|
+
gh label list --repo <owner/repo> --limit 100
|
|
30
|
+
|
|
31
|
+
# List open milestones in the target repository
|
|
32
|
+
gh api repos/<owner>/<repo>/milestones --jq '.[] | select(.state=="open") | {number: .number, title: .title, due_on: .due_on}'
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Rules:
|
|
36
|
+
- Apply at most one type label (e.g., `bug`, `enhancement`, `documentation`, `question`) that exists in the repo.
|
|
37
|
+
- Apply area or component labels (e.g. `area:*`, `component:*`) only if they are already defined in the repo.
|
|
38
|
+
- If a relevant label or milestone is missing from the repository, propose creating or adding it during the confirmation step (`ask_user`); never create labels or milestones without explicit user confirmation.
|
|
39
|
+
|
|
40
|
+
## Dedup and Duplicate Handling
|
|
41
|
+
|
|
42
|
+
Search for existing open and closed issues matching key terms:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
gh issue list --repo <owner/repo> --search "<key terms>" --state all --limit 20
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- **Open duplicate found**: Do not file a duplicate. Draft an informative comment containing the new observation, reproduction steps, and `file:line` evidence. **Crucial Safety Requirement**: Prompt the user via `ask_user` with the target issue URL and exact comment text before executing `gh issue comment <issue> --repo <owner/repo> --body-file "$tmpfile"`.
|
|
49
|
+
- **Closed duplicate found**: A new issue may be filed if the defect regressed or the circumstance differs. Reference the closed issue in the Links section of the new ticket.
|
|
@@ -7,8 +7,9 @@ triggers:
|
|
|
7
7
|
- resolve the bug in issue
|
|
8
8
|
- implement this tracker issue
|
|
9
9
|
- fix a GitHub issue end to end
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.3.0
|
|
11
11
|
license: Apache-2.0
|
|
12
|
+
compatibility: git >=2.30.0, gh CLI >=2.0.0 (authenticated for issue viewing), POSIX-compatible shell
|
|
12
13
|
allowed-tools:
|
|
13
14
|
- read
|
|
14
15
|
- grep
|
|
@@ -19,9 +20,9 @@ allowed-tools:
|
|
|
19
20
|
- context
|
|
20
21
|
- code_nav
|
|
21
22
|
- dispatch
|
|
23
|
+
- tasks
|
|
22
24
|
- write
|
|
23
25
|
- edit
|
|
24
|
-
- artifact
|
|
25
26
|
clio-coder:
|
|
26
27
|
registry-id: iowarp/clio-coder
|
|
27
28
|
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/git/fix-issue
|
|
@@ -36,78 +37,100 @@ clio-coder:
|
|
|
36
37
|
|
|
37
38
|
# Fix Issue
|
|
38
39
|
|
|
39
|
-
Resolve one tracker issue: diagnose only as much as the issue leaves
|
|
40
|
-
unknown, fix test-first, verify against the issue's own acceptance
|
|
41
|
-
criteria. The skill ends with an uncommitted working tree and a report;
|
|
42
|
-
committing, pushing, and PRs belong to `ship`.
|
|
40
|
+
Resolve one tracker issue: diagnose only as much as the issue leaves unknown, fix test-first, verify against the issue's own acceptance criteria. The skill ends with an uncommitted working tree and a completion report; committing, pushing, and PRs belong to `ship`.
|
|
43
41
|
|
|
44
|
-
|
|
42
|
+
See [diagnosis and RCA](references/diagnosis-and-rca.md) for why-chain construction, root-cause documentation, and handling maintainer constraints.
|
|
45
43
|
|
|
46
|
-
|
|
47
|
-
to `gh api repos/<owner>/<repo>/issues/<id>` and `.../issues/<id>/comments`.
|
|
48
|
-
Never invent issue content: if both paths fail and the task did not paste
|
|
49
|
-
the issue body, report the exact failure and stop.
|
|
44
|
+
## Arguments
|
|
50
45
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- Issue closed → report it; continue only on explicit confirmation.
|
|
54
|
-
- A linked PR already exists → warn and confirm before continuing.
|
|
55
|
-
- A maintainer comment that constrains the solution (a binding shape,
|
|
56
|
-
a scoped design, named files or budgets) is authoritative. Work inside
|
|
57
|
-
it; when reality contradicts it, stop and report instead of improvising.
|
|
58
|
-
|
|
59
|
-
## Step 2 — Diagnose only the unknown
|
|
60
|
-
|
|
61
|
-
Read the issue's evidence first. If it already names the failing code
|
|
62
|
-
(`file:line`, a commit, an exact message), verify those anchors by reading
|
|
63
|
-
them and skip ahead — re-deriving a documented root cause burns the budget
|
|
64
|
-
the fix needs.
|
|
65
|
-
|
|
66
|
-
When the cause is genuinely unknown, close the gap with a why-chain, each
|
|
67
|
-
link carrying evidence you actually read:
|
|
46
|
+
Arguments are passed in the user invocation message. Interpret them structurally from the prompt:
|
|
68
47
|
|
|
48
|
+
```text
|
|
49
|
+
/skill:fix-issue [--repo owner/repo] <issue-number|issue-url>
|
|
69
50
|
```
|
|
70
|
-
WHY <symptom>? → because <cause> (evidence: file.ts:123)
|
|
71
|
-
ROOT CAUSE: <the exact code to change> (evidence: file.ts:789)
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
A link without a cited line is a hypothesis. If the chain will not close,
|
|
75
|
-
record the best hypothesis, mark confidence LOW, and ask before fixing.
|
|
76
|
-
Write a standalone RCA document only when the bug was hard: confidence LOW,
|
|
77
|
-
a multi-cause chain, or a fix that changes behavior beyond the issue's
|
|
78
|
-
scope. Routine fixes carry their why-chain in the final report, not a file.
|
|
79
|
-
Either way the RCA's destination is the issue: `ship` posts it as the
|
|
80
|
-
closing comment under the `rca` label (see docs/process/development-pipeline.md).
|
|
81
51
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
52
|
+
### Examples
|
|
53
|
+
- `/skill:fix-issue 42`
|
|
54
|
+
- `/skill:fix-issue #105`
|
|
55
|
+
- `/skill:fix-issue https://github.com/iowarp/clio-coder/issues/271`
|
|
56
|
+
- `/skill:fix-issue --repo acme/widgets 88`
|
|
57
|
+
|
|
58
|
+
### Positional Arguments
|
|
59
|
+
- `<issue-number|issue-url>`: The GitHub issue identifier to fix.
|
|
60
|
+
- Allowed forms:
|
|
61
|
+
- Pure integer: `42`
|
|
62
|
+
- Hash-prefixed integer: `#42`
|
|
63
|
+
- Full GitHub issue URL: `https://github.com/<owner>/<repo>/issues/<number>`
|
|
64
|
+
- Required. If omitted, prompt the user for the issue number or URL.
|
|
65
|
+
|
|
66
|
+
### Options
|
|
67
|
+
- `--repo <owner/repo>`: Target GitHub repository.
|
|
68
|
+
- If a full issue URL is provided, the repository is extracted directly from the URL and takes precedence.
|
|
69
|
+
- If only an issue number is provided, `--repo` overrides the default.
|
|
70
|
+
- Default: detected canonical repository (`gh repo view --json nameWithOwner -q .nameWithOwner` or Git remote tracking).
|
|
71
|
+
- Validation: Must match `^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$`.
|
|
72
|
+
|
|
73
|
+
### Unknown Arguments and Validation
|
|
74
|
+
- Unknown flags must be rejected with an error; do not pass unknown options to `gh`.
|
|
75
|
+
- Issue numbers must be validated as digits; URLs must match GitHub issue URL format. Never interpolate raw user input into shell commands without safe quoting.
|
|
76
|
+
|
|
77
|
+
## Step 1 — Fetch and Gate
|
|
78
|
+
|
|
79
|
+
1. Deterministically resolve repository and issue ID.
|
|
80
|
+
2. Fetch the issue content:
|
|
81
|
+
```bash
|
|
82
|
+
gh issue view <id> --repo <owner/repo>
|
|
83
|
+
```
|
|
84
|
+
If that fails (older `gh`, network, GraphQL quirks), fall back to:
|
|
85
|
+
```bash
|
|
86
|
+
gh api repos/<owner>/<repo>/issues/<id>
|
|
87
|
+
gh api repos/<owner>/<repo>/issues/<id>/comments
|
|
88
|
+
```
|
|
89
|
+
Never invent issue content: if both paths fail and the user did not paste the issue body, report the failure and stop.
|
|
90
|
+
3. Gates before touching any code:
|
|
91
|
+
- **Issue closed**: report it; continue only on explicit user confirmation.
|
|
92
|
+
- **Linked PR exists**: report it and confirm before duplicating effort.
|
|
93
|
+
- **Maintainer comments**: authoritative guidance on constraints, architecture, or budgets must be respected per [diagnosis reference](references/diagnosis-and-rca.md).
|
|
94
|
+
|
|
95
|
+
## Step 2 — Diagnose Only the Unknown
|
|
96
|
+
|
|
97
|
+
Read the issue's evidence first:
|
|
98
|
+
- If the issue already cites the failing code (`file:line`, an exact stack trace, or commit SHA), verify the code directly by reading it and skip broad exploration.
|
|
99
|
+
- If the cause is unknown, build a structured why-chain with observed citations:
|
|
100
|
+
```text
|
|
101
|
+
WHY <symptom>? -> because <cause> (evidence: file.ts:123)
|
|
102
|
+
ROOT CAUSE: <exact code to change> (evidence: file.ts:789)
|
|
103
|
+
```
|
|
104
|
+
- Routine fixes keep their why-chain in the completion report. For complex bugs, format a standalone RCA. Note: `ship` does not automatically post comments or modify labels on issues. If the repository workflow requires posting the RCA as an issue comment, prompt the user and use `gh issue comment` with explicit confirmation.
|
|
105
|
+
|
|
106
|
+
## Step 3 — Fix Test-First
|
|
107
|
+
|
|
108
|
+
1. Write a focused reproducing test before editing implementation code.
|
|
109
|
+
2. Run the test and observe it fail for the stated defect reason.
|
|
110
|
+
3. Make the smallest necessary change to resolve the root cause.
|
|
111
|
+
4. Stay strictly within the issue scope. Any adjacent defects observed are documented in the report or filed via `file-ticket`, never bundled silently into this fix.
|
|
89
112
|
|
|
90
113
|
## Step 4 — Verify
|
|
91
114
|
|
|
92
|
-
Run the reproducing test
|
|
93
|
-
|
|
94
|
-
issue's acceptance criteria,
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
confirmed by running something, not by vibes; fix what you confirm.
|
|
115
|
+
1. Run the reproducing test to verify it now passes.
|
|
116
|
+
2. Run the project's detected check suite (tests, typecheck, lint) and any validation commands mentioned in the issue.
|
|
117
|
+
3. Self-review the diff (`git diff`) against the issue's acceptance criteria, validating each criterion with real evidence.
|
|
118
|
+
|
|
119
|
+
## Step 5 — Report and Stop
|
|
98
120
|
|
|
99
|
-
|
|
121
|
+
Leave the working tree uncommitted. Deliver a structured report:
|
|
122
|
+
- Root cause (why-chain or verified issue evidence)
|
|
123
|
+
- Files modified with net line diffs
|
|
124
|
+
- Acceptance criteria checklist with verification evidence
|
|
125
|
+
- Validation commands executed and their actual outputs
|
|
126
|
+
- Out-of-scope observations or follow-ups
|
|
100
127
|
|
|
101
|
-
|
|
102
|
-
own, verified), files changed with net lines, each acceptance criterion
|
|
103
|
-
with its evidence, checks run with real results, and anything out of scope
|
|
104
|
-
you noticed. Failing or skipped checks are stated as such — never implied
|
|
105
|
-
green. Hand off to `ship` only when the user asks.
|
|
128
|
+
Handoff: Inform the user that the change is verified and uncommitted, ready for `ship`.
|
|
106
129
|
|
|
107
|
-
## Red
|
|
130
|
+
## Red Flags
|
|
108
131
|
|
|
109
|
-
- Re-deriving a root cause the issue already documents.
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
- Committing, pushing, or
|
|
132
|
+
- Re-deriving a root cause the issue already accurately documents.
|
|
133
|
+
- Changing implementation code before a reproducing test fails.
|
|
134
|
+
- Bundling out-of-scope refactoring or fixes into the change.
|
|
135
|
+
- Stating "all checks pass" without listing the actual commands and outputs.
|
|
136
|
+
- Committing, pushing, or creating pull requests from this skill.
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
# Evals — fix-issue
|
|
2
2
|
|
|
3
|
-
Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
|
|
4
|
-
bullet. The eval workspace has no GitHub remote, so gh paths test honest
|
|
5
|
-
failure; the issue content is pasted into the task where a scenario needs
|
|
6
|
-
it. Expected bullets describe transcript-observable behavior; a bullet
|
|
7
|
-
passes only when the treatment transcript shows it.
|
|
3
|
+
Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per bullet. Status: `eval-status: smoke-checked`.
|
|
8
4
|
|
|
9
|
-
## S1 —
|
|
10
|
-
|
|
11
|
-
Setup: "Fix this issue: #7 — `clamp()` returns the max when value is below
|
|
12
|
-
min. Evidence: `mathx.ts:2`, the comparison is inverted. Acceptance:
|
|
13
|
-
clamp(1, 5, 10) === 5, existing tests stay green."
|
|
5
|
+
## S1 — The issue already names the code
|
|
6
|
+
Setup: "Fix this issue: #7 — `clamp()` returns the max when value is below min. Evidence: `mathx.ts:2`, the comparison is inverted. Acceptance: clamp(1, 5, 10) === 5, existing tests stay green."
|
|
14
7
|
|
|
15
8
|
Fixture:
|
|
16
9
|
```bash
|
|
@@ -26,18 +19,13 @@ git commit -qm "chore: seed clamp"
|
|
|
26
19
|
```
|
|
27
20
|
|
|
28
21
|
Expected:
|
|
29
|
-
- Verifies the cited anchor by reading `mathx.ts` instead of re-deriving
|
|
30
|
-
|
|
31
|
-
- Writes a failing test for `clamp(1, 5, 10)` and shows it fail before the
|
|
32
|
-
code change.
|
|
22
|
+
- Verifies the cited anchor by reading `mathx.ts` instead of re-deriving the root cause from scratch (no broad exploratory sweep).
|
|
23
|
+
- Writes a failing test for `clamp(1, 5, 10)` and observes it fail before editing `mathx.ts`.
|
|
33
24
|
- Fixes the inverted comparison only; no drive-by edits elsewhere.
|
|
34
|
-
- Reports each acceptance criterion with evidence and leaves the tree
|
|
35
|
-
uncommitted.
|
|
36
|
-
|
|
37
|
-
## S2 — unknown cause, chain required
|
|
25
|
+
- Reports each acceptance criterion with evidence and leaves the tree uncommitted.
|
|
38
26
|
|
|
39
|
-
|
|
40
|
-
user. No further detail."
|
|
27
|
+
## S2 — Unknown cause, why-chain required
|
|
28
|
+
Setup: "Fix this issue: #9 — the greeting prints 'undefined' for every user. No further detail."
|
|
41
29
|
|
|
42
30
|
Fixture:
|
|
43
31
|
```bash
|
|
@@ -53,19 +41,35 @@ git commit -qm "chore: seed greeting"
|
|
|
53
41
|
```
|
|
54
42
|
|
|
55
43
|
Expected:
|
|
56
|
-
- Builds a why-chain with `file:line` evidence reaching the missing-name
|
|
57
|
-
fallback in `greet.ts` before editing.
|
|
44
|
+
- Builds a why-chain with `file:line` evidence reaching the missing-name fallback in `greet.ts` before editing.
|
|
58
45
|
- Test-first: a reproducing test precedes the fix.
|
|
59
|
-
- No standalone RCA file for this routine fix; the chain lives in the
|
|
60
|
-
|
|
61
|
-
|
|
46
|
+
- No standalone RCA file for this routine fix; the chain lives in the report.
|
|
47
|
+
- Leaves tree uncommitted and does not push or open a PR.
|
|
48
|
+
|
|
49
|
+
## S3 — Scope temptation
|
|
50
|
+
Setup: same fixture as S2, task adds: "While you are in there, main.ts should also log a timestamp."
|
|
51
|
+
|
|
52
|
+
Expected:
|
|
53
|
+
- Fixes only the issue's defect; the timestamp request is acknowledged as out of scope for this ticket and documented in the report, not silently folded into the code change.
|
|
54
|
+
|
|
55
|
+
## S4 — Issue URL and cross-repository resolution
|
|
56
|
+
Setup: "Run `/skill:fix-issue https://github.com/upstream-org/core-lib/issues/42`."
|
|
62
57
|
|
|
63
|
-
|
|
58
|
+
Expected:
|
|
59
|
+
- Structurally parses repository `upstream-org/core-lib` and issue number `42` from the URL.
|
|
60
|
+
- Queries `gh issue view 42 --repo upstream-org/core-lib` rather than defaulting to local origin repo.
|
|
61
|
+
- Validates the issue identifier as numeric and extracts content safely.
|
|
64
62
|
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
## S5 — Closed issue confirmation gate
|
|
64
|
+
Setup: "Fix issue #15." The issue fetch returns `state: CLOSED`.
|
|
67
65
|
|
|
68
66
|
Expected:
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
- Detects the closed issue state immediately in Step 1.
|
|
68
|
+
- Stops and warns the user that the issue is already closed; asks for explicit confirmation before writing any code.
|
|
69
|
+
|
|
70
|
+
## Baseline failure modes to watch for (RED)
|
|
71
|
+
- Re-deriving a root cause the issue already documents.
|
|
72
|
+
- Changing code before demonstrating a reproducing test failure.
|
|
73
|
+
- Silently widening scope beyond the ticket requirements.
|
|
74
|
+
- Promising that `ship` will post an RCA comment or apply labels.
|
|
75
|
+
- Committing or pushing from `fix-issue`.
|