@joshuafolkken/kit 1.872.0
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/.claude/.claude-plugin/plugin.json +11 -0
- package/.claude/settings.json +110 -0
- package/.claude/skills/dependency-update/SKILL.md +76 -0
- package/.claude/skills/epic-commands/SKILL.md +463 -0
- package/.claude/skills/verify-ui/SKILL.md +96 -0
- package/.claude/skills/workflow-commands/SKILL.md +265 -0
- package/.claude/skills/workflow-commands/background-commands.md +130 -0
- package/.claude/skills/workflow-commands/backlogrun-child.md +364 -0
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +345 -0
- package/.claude/skills/workflow-commands/backlogrun-park.md +179 -0
- package/.claude/skills/workflow-commands/backlogrun-progress.md +600 -0
- package/.claude/skills/workflow-commands/backlogrun-steps.md +604 -0
- package/.claude/skills/workflow-commands/backlogrun.md +109 -0
- package/.claude/skills/workflow-commands/chain-rule.md +98 -0
- package/.claude/skills/workflow-commands/delegation.md +52 -0
- package/.claude/skills/workflow-commands/followup-reference.md +118 -0
- package/.claude/skills/workflow-commands/followup.md +222 -0
- package/.claude/skills/workflow-commands/fullrun-steps.md +93 -0
- package/.claude/skills/workflow-commands/fullrun.md +82 -0
- package/.claude/skills/workflow-commands/halfrun.md +73 -0
- package/.claude/skills/workflow-commands/into-target.md +48 -0
- package/.claude/skills/workflow-commands/issue-comments.md +109 -0
- package/.claude/skills/workflow-commands/issue-fold-existing.md +27 -0
- package/.claude/skills/workflow-commands/issue-scout.md +45 -0
- package/.claude/skills/workflow-commands/kickoff.md +82 -0
- package/.claude/skills/workflow-commands/latest-gate.md +85 -0
- package/.claude/skills/workflow-commands/needs-human-review.md +64 -0
- package/.claude/skills/workflow-commands/observation-filing.md +349 -0
- package/.claude/skills/workflow-commands/pre-gate-cut.md +340 -0
- package/.claude/skills/workflow-commands/prerequisite.md +62 -0
- package/.claude/skills/workflow-commands/retrospective.md +81 -0
- package/.claude/skills/workflow-commands/rule-residency.md +267 -0
- package/.claude/skills/workflow-commands/split-assessment.md +130 -0
- package/.claude/skills/workflow-commands/target-repository.md +58 -0
- package/.claude/skills/workflow-commands/working-tree-hold.md +66 -0
- package/.claude-plugin/marketplace.json +15 -0
- package/.coderabbit.yaml +50 -0
- package/.codex/config.toml +8 -0
- package/.codex/hooks.json +71 -0
- package/.cursorrules +45 -0
- package/.gitattributes +7 -0
- package/.github/dependabot.yml +19 -0
- package/.github/pull_request_template.md +1 -0
- package/.github/release.yml +18 -0
- package/.github/workflows/auto-tag.yml +111 -0
- package/.github/workflows/ci.yml +681 -0
- package/.github/workflows/dependabot-auto-merge.yml +55 -0
- package/.github/workflows/production.yml +47 -0
- package/.github/workflows/publish.yml +39 -0
- package/.github/workflows/sonar-qube.yml +34 -0
- package/.mcp.json +8 -0
- package/.ncurc.json +3 -0
- package/.prettierignore +20 -0
- package/.vscode/extensions.json +21 -0
- package/.vscode/settings.json +41 -0
- package/AGENTS.md +29 -0
- package/CLAUDE.md +207 -0
- package/CODE_OF_CONDUCT.md +132 -0
- package/GEMINI.md +30 -0
- package/LICENSE +21 -0
- package/README.md +41 -0
- package/SECURITY.md +34 -0
- package/cspell/index.yaml +177 -0
- package/dist/CLAUDE.md +207 -0
- package/dist/config-merge/index.d.ts +29 -0
- package/dist/config-merge/index.js +459 -0
- package/dist/hooks/batch-guard.js +28 -0
- package/dist/hooks/chunk-25JL6FMS.js +4970 -0
- package/dist/hooks/chunk-2ANGT3XM.js +375 -0
- package/dist/hooks/chunk-2EI5GBSW.js +42 -0
- package/dist/hooks/chunk-2OT5XE2N.js +5014 -0
- package/dist/hooks/chunk-2RUPMGGV.js +137 -0
- package/dist/hooks/chunk-2XIGZQMQ.js +3299 -0
- package/dist/hooks/chunk-33ELOKEV.js +910 -0
- package/dist/hooks/chunk-33YRTKM7.js +230 -0
- package/dist/hooks/chunk-36JQU5NN.js +77 -0
- package/dist/hooks/chunk-3EJBTWVS.js +1769 -0
- package/dist/hooks/chunk-3FK5SFAC.js +432 -0
- package/dist/hooks/chunk-3PWPYDD2.js +240 -0
- package/dist/hooks/chunk-3TQU7TDH.js +375 -0
- package/dist/hooks/chunk-3TVLSFZ6.js +432 -0
- package/dist/hooks/chunk-3VXYCB4E.js +77 -0
- package/dist/hooks/chunk-44M6JXGV.js +3398 -0
- package/dist/hooks/chunk-46EEEHC3.js +240 -0
- package/dist/hooks/chunk-4A7UVP2P.js +364 -0
- package/dist/hooks/chunk-4LFQEZS4.js +137 -0
- package/dist/hooks/chunk-4OCX3V2T.js +469 -0
- package/dist/hooks/chunk-4OHA5DE7.js +49 -0
- package/dist/hooks/chunk-4PMDW3YD.js +68 -0
- package/dist/hooks/chunk-4QHBNAI4.js +68 -0
- package/dist/hooks/chunk-4SSB3FEE.js +3273 -0
- package/dist/hooks/chunk-5A2WQ2CQ.js +5390 -0
- package/dist/hooks/chunk-5EVA2JQB.js +5390 -0
- package/dist/hooks/chunk-5P7VF5VE.js +3230 -0
- package/dist/hooks/chunk-5QWJGGZP.js +49 -0
- package/dist/hooks/chunk-5U5EZYG6.js +77 -0
- package/dist/hooks/chunk-5VUUF3ZV.js +240 -0
- package/dist/hooks/chunk-5WA7UBT3.js +374 -0
- package/dist/hooks/chunk-6EBGRQ3Q.js +301 -0
- package/dist/hooks/chunk-6TVHWMD3.js +432 -0
- package/dist/hooks/chunk-6V5OPIUU.js +13 -0
- package/dist/hooks/chunk-6VAGLEMB.js +68 -0
- package/dist/hooks/chunk-75BTXKFJ.js +3424 -0
- package/dist/hooks/chunk-75RHN67S.js +137 -0
- package/dist/hooks/chunk-76KC3BDD.js +3414 -0
- package/dist/hooks/chunk-76SLS7CZ.js +898 -0
- package/dist/hooks/chunk-7DHZ4DWT.js +5015 -0
- package/dist/hooks/chunk-7INSJDGE.js +458 -0
- package/dist/hooks/chunk-7VJ4FTDX.js +268 -0
- package/dist/hooks/chunk-7XCYNHQK.js +77 -0
- package/dist/hooks/chunk-A5YJ3H7E.js +375 -0
- package/dist/hooks/chunk-AAEXXUUL.js +268 -0
- package/dist/hooks/chunk-ABVEVV2M.js +432 -0
- package/dist/hooks/chunk-ACN3YXFL.js +68 -0
- package/dist/hooks/chunk-AD3XE3QZ.js +397 -0
- package/dist/hooks/chunk-AENFZPZH.js +230 -0
- package/dist/hooks/chunk-AFKRFQ6W.js +68 -0
- package/dist/hooks/chunk-AHD5IPWI.js +375 -0
- package/dist/hooks/chunk-AMK5JGV7.js +77 -0
- package/dist/hooks/chunk-ARN7NCQI.js +425 -0
- package/dist/hooks/chunk-AUFY653N.js +3425 -0
- package/dist/hooks/chunk-AXQBNFEF.js +375 -0
- package/dist/hooks/chunk-AYC7R6U4.js +3316 -0
- package/dist/hooks/chunk-AYEA2FJ7.js +5015 -0
- package/dist/hooks/chunk-B2LIXYFL.js +77 -0
- package/dist/hooks/chunk-B4HPNY2I.js +375 -0
- package/dist/hooks/chunk-B4YNCUGB.js +469 -0
- package/dist/hooks/chunk-B57S3VWT.js +922 -0
- package/dist/hooks/chunk-BINZ3PLI.js +364 -0
- package/dist/hooks/chunk-BIWLABFK.js +432 -0
- package/dist/hooks/chunk-BODUSXKK.js +410 -0
- package/dist/hooks/chunk-BQBAT2YK.js +375 -0
- package/dist/hooks/chunk-BUJEBW75.js +391 -0
- package/dist/hooks/chunk-BVNWORKA.js +72 -0
- package/dist/hooks/chunk-BWI47LQS.js +5205 -0
- package/dist/hooks/chunk-C25HRMJX.js +137 -0
- package/dist/hooks/chunk-CBFZNC74.js +375 -0
- package/dist/hooks/chunk-CECYXS4Y.js +3424 -0
- package/dist/hooks/chunk-CELGUP5F.js +49 -0
- package/dist/hooks/chunk-CMHANU3F.js +3442 -0
- package/dist/hooks/chunk-CMN372LI.js +68 -0
- package/dist/hooks/chunk-CPGZLMMK.js +3299 -0
- package/dist/hooks/chunk-CTQKXDC7.js +268 -0
- package/dist/hooks/chunk-CYAT4RIT.js +68 -0
- package/dist/hooks/chunk-CYTWYCH2.js +5014 -0
- package/dist/hooks/chunk-CZSOLRBA.js +77 -0
- package/dist/hooks/chunk-D2PIDYJR.js +3438 -0
- package/dist/hooks/chunk-DE57HI6T.js +137 -0
- package/dist/hooks/chunk-DGXDGAPG.js +5306 -0
- package/dist/hooks/chunk-DNYRSYQG.js +5014 -0
- package/dist/hooks/chunk-DTAXH2A2.js +240 -0
- package/dist/hooks/chunk-E2IZUWI5.js +375 -0
- package/dist/hooks/chunk-E4L2K2BL.js +397 -0
- package/dist/hooks/chunk-E55NKX5F.js +68 -0
- package/dist/hooks/chunk-ECXVCCVD.js +3079 -0
- package/dist/hooks/chunk-EPHO443D.js +68 -0
- package/dist/hooks/chunk-EUFK2BI2.js +375 -0
- package/dist/hooks/chunk-EYCD5ZAV.js +137 -0
- package/dist/hooks/chunk-F2SDYJU4.js +240 -0
- package/dist/hooks/chunk-F4B5D5TF.js +68 -0
- package/dist/hooks/chunk-FGEO3NDX.js +432 -0
- package/dist/hooks/chunk-FJYI52RE.js +137 -0
- package/dist/hooks/chunk-FXAKJKTB.js +18 -0
- package/dist/hooks/chunk-FYTZHIY4.js +3085 -0
- package/dist/hooks/chunk-G7JL2A5K.js +375 -0
- package/dist/hooks/chunk-GA3ITDBW.js +42 -0
- package/dist/hooks/chunk-GDR4H4SV.js +469 -0
- package/dist/hooks/chunk-GFKDXPSM.js +2855 -0
- package/dist/hooks/chunk-GIMRTKFU.js +566 -0
- package/dist/hooks/chunk-GOPHRLGO.js +240 -0
- package/dist/hooks/chunk-GX4HO7SJ.js +230 -0
- package/dist/hooks/chunk-GXKKK23T.js +240 -0
- package/dist/hooks/chunk-GZ6FUVIK.js +566 -0
- package/dist/hooks/chunk-H5HPY5M5.js +2869 -0
- package/dist/hooks/chunk-HCF3OGEE.js +1829 -0
- package/dist/hooks/chunk-HDEXAOUM.js +469 -0
- package/dist/hooks/chunk-HM2TY3TN.js +469 -0
- package/dist/hooks/chunk-HOA7NXA2.js +55 -0
- package/dist/hooks/chunk-HOFEWH6H.js +240 -0
- package/dist/hooks/chunk-HUUI6S5J.js +2669 -0
- package/dist/hooks/chunk-I4D3NVUD.js +469 -0
- package/dist/hooks/chunk-I4Q6WAJE.js +68 -0
- package/dist/hooks/chunk-IB6N4CR2.js +432 -0
- package/dist/hooks/chunk-IFLDYJMD.js +469 -0
- package/dist/hooks/chunk-IGU466YD.js +77 -0
- package/dist/hooks/chunk-IJCQUHKY.js +375 -0
- package/dist/hooks/chunk-IKUMBDJB.js +230 -0
- package/dist/hooks/chunk-IM3BDIBJ.js +5005 -0
- package/dist/hooks/chunk-IMYMAODK.js +3431 -0
- package/dist/hooks/chunk-IN2ZVGXA.js +5005 -0
- package/dist/hooks/chunk-ITVJ2MKQ.js +18 -0
- package/dist/hooks/chunk-J5RIJYTM.js +2669 -0
- package/dist/hooks/chunk-JFLMH4K5.js +3460 -0
- package/dist/hooks/chunk-JR25IFML.js +77 -0
- package/dist/hooks/chunk-JT5AUXFI.js +432 -0
- package/dist/hooks/chunk-JY5YVN6N.js +3234 -0
- package/dist/hooks/chunk-K5Q4ETVI.js +391 -0
- package/dist/hooks/chunk-K67V2F24.js +137 -0
- package/dist/hooks/chunk-KABG6AEW.js +3460 -0
- package/dist/hooks/chunk-KATZESEC.js +3273 -0
- package/dist/hooks/chunk-KFH4H7W7.js +469 -0
- package/dist/hooks/chunk-KMUEI6RX.js +910 -0
- package/dist/hooks/chunk-KMV4OY77.js +3438 -0
- package/dist/hooks/chunk-KQAZNWEY.js +137 -0
- package/dist/hooks/chunk-KZZR6JER.js +5015 -0
- package/dist/hooks/chunk-LAR6DREP.js +77 -0
- package/dist/hooks/chunk-LNCJWEZD.js +5015 -0
- package/dist/hooks/chunk-LRYD2GLM.js +6 -0
- package/dist/hooks/chunk-LXBKYHDV.js +77 -0
- package/dist/hooks/chunk-LYLKIUNE.js +5024 -0
- package/dist/hooks/chunk-LZKCFOVC.js +432 -0
- package/dist/hooks/chunk-M4FCIYRI.js +77 -0
- package/dist/hooks/chunk-M5M7327Q.js +3425 -0
- package/dist/hooks/chunk-MF72MHSX.js +3455 -0
- package/dist/hooks/chunk-MK56LKDO.js +397 -0
- package/dist/hooks/chunk-N3MJADY7.js +240 -0
- package/dist/hooks/chunk-NFQSUDBN.js +458 -0
- package/dist/hooks/chunk-NHREKY45.js +137 -0
- package/dist/hooks/chunk-NP5TTAAW.js +375 -0
- package/dist/hooks/chunk-NQTLTKTJ.js +2993 -0
- package/dist/hooks/chunk-NVRCZPBZ.js +391 -0
- package/dist/hooks/chunk-O46HMMLJ.js +469 -0
- package/dist/hooks/chunk-OFJGH2L4.js +240 -0
- package/dist/hooks/chunk-OLFMCZH5.js +240 -0
- package/dist/hooks/chunk-OMCZS46I.js +49 -0
- package/dist/hooks/chunk-OQZEZW5G.js +469 -0
- package/dist/hooks/chunk-P2MDAT2Y.js +1897 -0
- package/dist/hooks/chunk-P3M2JJIF.js +68 -0
- package/dist/hooks/chunk-PDVHQITQ.js +3453 -0
- package/dist/hooks/chunk-PNT2AMDH.js +391 -0
- package/dist/hooks/chunk-PR2LVSY6.js +3445 -0
- package/dist/hooks/chunk-PRR5R4JK.js +137 -0
- package/dist/hooks/chunk-PXT44QVN.js +566 -0
- package/dist/hooks/chunk-PZLWJLAP.js +469 -0
- package/dist/hooks/chunk-Q2FEAZJ2.js +77 -0
- package/dist/hooks/chunk-Q32WETDO.js +3265 -0
- package/dist/hooks/chunk-Q45DUBLE.js +3600 -0
- package/dist/hooks/chunk-Q7NZSWQ5.js +240 -0
- package/dist/hooks/chunk-QH2JNAMK.js +3085 -0
- package/dist/hooks/chunk-QNNWYQ2R.js +375 -0
- package/dist/hooks/chunk-QPU5H2OS.js +68 -0
- package/dist/hooks/chunk-QRAHZ5TO.js +1829 -0
- package/dist/hooks/chunk-QUZ5HPIE.js +469 -0
- package/dist/hooks/chunk-QVCRG34O.js +2893 -0
- package/dist/hooks/chunk-R3MY4E3S.js +1675 -0
- package/dist/hooks/chunk-R6TXJJXP.js +77 -0
- package/dist/hooks/chunk-REJU6VT7.js +1829 -0
- package/dist/hooks/chunk-REQAQLRC.js +2993 -0
- package/dist/hooks/chunk-RFCXPAHH.js +391 -0
- package/dist/hooks/chunk-RHI6Y22X.js +137 -0
- package/dist/hooks/chunk-RKZVOBBS.js +469 -0
- package/dist/hooks/chunk-RL57TT2Y.js +566 -0
- package/dist/hooks/chunk-RORDOD4S.js +3321 -0
- package/dist/hooks/chunk-RZKYW5P2.js +77 -0
- package/dist/hooks/chunk-SJPJ6VSI.js +391 -0
- package/dist/hooks/chunk-SKSIJQQQ.js +432 -0
- package/dist/hooks/chunk-SSQDZKXG.js +268 -0
- package/dist/hooks/chunk-SSX23SJ2.js +89 -0
- package/dist/hooks/chunk-SYHFKE4C.js +77 -0
- package/dist/hooks/chunk-TCGNI2ZY.js +42 -0
- package/dist/hooks/chunk-TG3WXJF5.js +137 -0
- package/dist/hooks/chunk-TH7IJAY5.js +77 -0
- package/dist/hooks/chunk-TLZ27PCY.js +240 -0
- package/dist/hooks/chunk-U652FXTN.js +566 -0
- package/dist/hooks/chunk-UEK47YUF.js +268 -0
- package/dist/hooks/chunk-UIO45H3O.js +432 -0
- package/dist/hooks/chunk-UNLZEEVH.js +5005 -0
- package/dist/hooks/chunk-UNRVF3SZ.js +432 -0
- package/dist/hooks/chunk-USLFAFOI.js +3453 -0
- package/dist/hooks/chunk-VAEELMLL.js +442 -0
- package/dist/hooks/chunk-VALSWLDQ.js +3453 -0
- package/dist/hooks/chunk-VC5JEPNY.js +3398 -0
- package/dist/hooks/chunk-VEZVK6C7.js +230 -0
- package/dist/hooks/chunk-VK5JKFAR.js +49 -0
- package/dist/hooks/chunk-VNF2KP7Z.js +469 -0
- package/dist/hooks/chunk-VWWCUMW6.js +2669 -0
- package/dist/hooks/chunk-W4JARUQV.js +137 -0
- package/dist/hooks/chunk-WCYPBPJC.js +5014 -0
- package/dist/hooks/chunk-WEOBMNJG.js +2993 -0
- package/dist/hooks/chunk-WKJU3J5Y.js +5390 -0
- package/dist/hooks/chunk-WMN4TSVF.js +3299 -0
- package/dist/hooks/chunk-WNON54PT.js +3469 -0
- package/dist/hooks/chunk-WOVKBPPX.js +137 -0
- package/dist/hooks/chunk-WRVFORYJ.js +432 -0
- package/dist/hooks/chunk-WUBVYGQZ.js +240 -0
- package/dist/hooks/chunk-WWULTUOM.js +68 -0
- package/dist/hooks/chunk-WXHKKB45.js +4962 -0
- package/dist/hooks/chunk-XAI3YTHJ.js +469 -0
- package/dist/hooks/chunk-XFZH6JZJ.js +77 -0
- package/dist/hooks/chunk-XGPWX6IA.js +137 -0
- package/dist/hooks/chunk-XIXXIVGY.js +566 -0
- package/dist/hooks/chunk-XKDOYJGA.js +922 -0
- package/dist/hooks/chunk-YALTVBHM.js +432 -0
- package/dist/hooks/chunk-YEBEPBFK.js +5014 -0
- package/dist/hooks/chunk-YI2BQ3DK.js +3441 -0
- package/dist/hooks/chunk-YVNBCFGG.js +1829 -0
- package/dist/hooks/chunk-YXBN3RGG.js +432 -0
- package/dist/hooks/chunk-Z2OOJSW3.js +3163 -0
- package/dist/hooks/chunk-ZA3HVBOY.js +2644 -0
- package/dist/hooks/chunk-ZKID46U3.js +137 -0
- package/dist/hooks/chunk-ZPMU2JV6.js +49 -0
- package/dist/hooks/chunk-ZRKY4W7O.js +432 -0
- package/dist/hooks/chunk-ZTMRB7LJ.js +268 -0
- package/dist/hooks/chunk-ZVPPBQ3L.js +3413 -0
- package/dist/hooks/codex-hook-adapter.js +164 -0
- package/dist/hooks/duplicate-read-guard.js +29 -0
- package/dist/hooks/format-edited.js +37 -0
- package/dist/hooks/investigation-guard.js +31 -0
- package/dist/hooks/pretool-guard.js +21 -0
- package/dist/hooks/session-lang.js +34 -0
- package/dist/hooks/stop-guard.js +1597 -0
- package/dist/josh.js +1795 -0
- package/dist/managed-marker/index.d.ts +10 -0
- package/dist/managed-marker/index.js +32 -0
- package/dist/self-sync-guard/index.d.ts +10 -0
- package/dist/self-sync-guard/index.js +49 -0
- package/dist/version/index.d.ts +93 -0
- package/dist/version/index.js +1024 -0
- package/env/index.d.ts +7 -0
- package/env/index.js +62 -0
- package/eslint/base.js +233 -0
- package/eslint/checkout-rooted-parser.js +34 -0
- package/eslint/config-fingerprint.js +103 -0
- package/eslint/rules/code-quality.js +292 -0
- package/eslint/rules/english-only-prose.js +135 -0
- package/eslint/rules/formatting.js +44 -0
- package/eslint/rules/import.js +83 -0
- package/eslint/rules/namespace-object-export.js +107 -0
- package/eslint/rules/naming-convention.js +109 -0
- package/eslint/rules/promise.js +17 -0
- package/eslint/rules/sonarjs.js +45 -0
- package/eslint/rules/test-filename.js +91 -0
- package/eslint/rules/typescript.js +186 -0
- package/eslint/rules/unicorn.js +191 -0
- package/eslint/vanilla.js +1 -0
- package/evals/scenarios/consult-not-execute.json +20 -0
- package/evals/scenarios/no-implicit-workflow.json +26 -0
- package/evals/scenarios/overrides-both-locations.json +29 -0
- package/evals/scenarios/upstream-interrupt.json +23 -0
- package/evals/scenarios/workflow-skill-loaded.json +16 -0
- package/lefthook/base.yml +131 -0
- package/lefthook/vanilla.yml +7 -0
- package/package.json +169 -0
- package/playwright.config.ts +160 -0
- package/pnpm-workspace.yaml +41 -0
- package/ports/index.d.ts +17 -0
- package/ports/index.js +256 -0
- package/prettier/index.d.ts +3 -0
- package/prettier/index.js +31 -0
- package/prompts/agent-lint-protocol.json +79 -0
- package/prompts/agent-rules.md +63 -0
- package/prompts/coding-standards.md +382 -0
- package/prompts/collaboration-workflow/consultation-vs-execution.md +8 -0
- package/prompts/collaboration-workflow/cross-repo-epic.md +54 -0
- package/prompts/collaboration-workflow/distributed-docs.md +7 -0
- package/prompts/collaboration-workflow/durable-rules.md +24 -0
- package/prompts/collaboration-workflow/epic-audit.md +56 -0
- package/prompts/collaboration-workflow/epic-bundle.md +109 -0
- package/prompts/collaboration-workflow/file-edits.md +124 -0
- package/prompts/collaboration-workflow/gh-rest.md +57 -0
- package/prompts/collaboration-workflow/issue-citation.md +38 -0
- package/prompts/collaboration-workflow/issue-template.md +190 -0
- package/prompts/collaboration-workflow/latest-first.md +14 -0
- package/prompts/collaboration-workflow/no-clones.md +11 -0
- package/prompts/collaboration-workflow/operating-rules.md +123 -0
- package/prompts/collaboration-workflow/output-bounds.md +107 -0
- package/prompts/collaboration-workflow/overview.md +35 -0
- package/prompts/collaboration-workflow/plan-comment.md +85 -0
- package/prompts/collaboration-workflow/proposal-request.md +23 -0
- package/prompts/collaboration-workflow/report-format.md +206 -0
- package/prompts/collaboration-workflow/residency.md +94 -0
- package/prompts/collaboration-workflow/rule-delivery.md +146 -0
- package/prompts/collaboration-workflow/shell-body.md +82 -0
- package/prompts/collaboration-workflow/simplicity-first.md +9 -0
- package/prompts/collaboration-workflow/single-source-rules.md +13 -0
- package/prompts/collaboration-workflow/turn-batching.md +137 -0
- package/prompts/collaboration-workflow/upstream-interrupt.md +51 -0
- package/prompts/collaboration-workflow/wip-cap.md +118 -0
- package/prompts/collaboration-workflow.md +52 -0
- package/prompts/refactoring.md +103 -0
- package/prompts/review-rubric.md +338 -0
- package/prompts/review.md +217 -0
- package/prompts/sonar-hotspot-handling.md +77 -0
- package/prompts/testing-guide.md +277 -0
- package/scripts/adopt/adopt-logic.ts +107 -0
- package/scripts/adopt/adopt-toolkits.ts +181 -0
- package/scripts/adopt/adopt.ts +171 -0
- package/scripts/agent/agent-argv.ts +140 -0
- package/scripts/agent/agent-diagnostics.ts +120 -0
- package/scripts/agent/agent-event.ts +173 -0
- package/scripts/agent/agent-exit-record.ts +32 -0
- package/scripts/agent/agent-launch-environment.ts +71 -0
- package/scripts/agent/agent-role-profile.ts +329 -0
- package/scripts/agent/api-outage.ts +51 -0
- package/scripts/agent/claude-agent-argv.ts +151 -0
- package/scripts/agent/claude-result-event.ts +98 -0
- package/scripts/agent/codex-agent-argv.ts +94 -0
- package/scripts/agent/codex-home-source.ts +11 -0
- package/scripts/agent/interactive-ask.ts +91 -0
- package/scripts/auto-ok/auto-ok-cli.ts +516 -0
- package/scripts/backlog/backlog-arrival.ts +147 -0
- package/scripts/backlog/backlog-budget-cli.ts +220 -0
- package/scripts/backlog/backlog-budget.ts +284 -0
- package/scripts/backlog/backlog-defect-priority.ts +77 -0
- package/scripts/backlog/backlog-drive-cli.ts +377 -0
- package/scripts/backlog/backlog-drive-finish.ts +23 -0
- package/scripts/backlog/backlog-drive-named-offer.ts +81 -0
- package/scripts/backlog/backlog-drive-named.ts +101 -0
- package/scripts/backlog/backlog-drive-offer-argv.ts +29 -0
- package/scripts/backlog/backlog-drive-owner.ts +22 -0
- package/scripts/backlog/backlog-drive-restore.ts +67 -0
- package/scripts/backlog/backlog-drive.ts +322 -0
- package/scripts/backlog/backlog-named.ts +164 -0
- package/scripts/backlog/backlog-next.ts +376 -0
- package/scripts/backlog/backlog-offer-cli.ts +279 -0
- package/scripts/backlog/backlog-offer.ts +93 -0
- package/scripts/backlog/backlog-plan-cli.ts +235 -0
- package/scripts/backlog/backlog-plan.ts +231 -0
- package/scripts/backlog/backlog-pool.ts +322 -0
- package/scripts/backlog/backlog-ready.ts +146 -0
- package/scripts/backlog/backlog-scope.ts +144 -0
- package/scripts/backlog/backlog-stalled-cli.ts +30 -0
- package/scripts/backlog/backlog-stalled-detect.ts +143 -0
- package/scripts/backlog/backlog-stalled.ts +118 -0
- package/scripts/behavior/behavior-assertion.ts +87 -0
- package/scripts/behavior/behavior-cli.ts +88 -0
- package/scripts/behavior/behavior-rules.ts +128 -0
- package/scripts/build/build-bin.ts +36 -0
- package/scripts/build/build-claude-md.ts +42 -0
- package/scripts/build/build-config-merge.ts +26 -0
- package/scripts/build/build-hooks.ts +79 -0
- package/scripts/build/build-library.ts +83 -0
- package/scripts/build/build-managed-marker.ts +26 -0
- package/scripts/build/build-self-sync-guard.ts +26 -0
- package/scripts/build/build-version.ts +25 -0
- package/scripts/build/local-bin.ts +97 -0
- package/scripts/build/shim-shell.ts +25 -0
- package/scripts/bytes/bytes-command.ts +181 -0
- package/scripts/cases/cases-cli.ts +48 -0
- package/scripts/cases/cases-logic.ts +100 -0
- package/scripts/claude/skill-meta.ts +37 -0
- package/scripts/claude/workflow-destination.ts +13 -0
- package/scripts/clone/clone-aggregate.ts +76 -0
- package/scripts/clone/clone-fingerprint.ts +96 -0
- package/scripts/clone/clone-scan-cli.ts +39 -0
- package/scripts/clone/clone-scan.ts +158 -0
- package/scripts/config-merge/index.ts +19 -0
- package/scripts/config-merge/json-format.ts +128 -0
- package/scripts/config-merge/list-patch.ts +61 -0
- package/scripts/config-merge/parse-jsonc.ts +14 -0
- package/scripts/config-merge/patch-json-key.ts +439 -0
- package/scripts/config-merge/patch-json-list.ts +38 -0
- package/scripts/config-merge/patch-yaml-list.ts +107 -0
- package/scripts/cost-runtime/codex-usage.ts +119 -0
- package/scripts/cost-runtime/context-cut-payback.ts +77 -0
- package/scripts/cost-runtime/context-cut-threshold.ts +21 -0
- package/scripts/cost-runtime/cost-attribute.ts +168 -0
- package/scripts/cost-runtime/cost-blocks.ts +149 -0
- package/scripts/cost-runtime/cost-cli.ts +318 -0
- package/scripts/cost-runtime/cost-corpus.ts +278 -0
- package/scripts/cost-runtime/cost-format.ts +32 -0
- package/scripts/cost-runtime/cost-pricing.ts +176 -0
- package/scripts/cost-runtime/cost-tokens.ts +84 -0
- package/scripts/cost-runtime/cost-transcript.ts +531 -0
- package/scripts/cost-runtime/cost-usage.ts +287 -0
- package/scripts/cost-runtime/cost-verdict.ts +89 -0
- package/scripts/cost-runtime/own-session.ts +58 -0
- package/scripts/cost-runtime/transcript-cwd.ts +14 -0
- package/scripts/delegation/delegation-cli.ts +91 -0
- package/scripts/delegation/delegation-policy.ts +178 -0
- package/scripts/delegation/duplicate-read-guard.ts +244 -0
- package/scripts/delegation/fanout-cli.ts +61 -0
- package/scripts/delegation/fanout.ts +95 -0
- package/scripts/delegation/investigation-guard.ts +131 -0
- package/scripts/delegation/investigation-reads.ts +637 -0
- package/scripts/discovery/repo-discovery.ts +166 -0
- package/scripts/discovery/repo-map-logic.ts +102 -0
- package/scripts/discovery/repo-origin.ts +153 -0
- package/scripts/discovery/repo-party-cli.ts +69 -0
- package/scripts/discovery/repo-party.ts +46 -0
- package/scripts/doctor/doctor-consumer.ts +181 -0
- package/scripts/doctor/doctor-io.ts +210 -0
- package/scripts/doctor/doctor-logic.ts +122 -0
- package/scripts/doctor/doctor-ports.ts +117 -0
- package/scripts/doctor/doctor.ts +232 -0
- package/scripts/document/backlogrun-parent-read-set.ts +48 -0
- package/scripts/document/bash-output-cap.ts +45 -0
- package/scripts/document/document-byte-budget.ts +183 -0
- package/scripts/document/document-byte-check.ts +131 -0
- package/scripts/document/document-reachability.ts +131 -0
- package/scripts/document/document-read-cli.ts +82 -0
- package/scripts/document/document-scan.ts +108 -0
- package/scripts/document/document-section-cli.ts +101 -0
- package/scripts/document/document-section.ts +156 -0
- package/scripts/document/edit-files-cli.ts +280 -0
- package/scripts/document/entry-read-budget.ts +154 -0
- package/scripts/document/entry-read-set.ts +471 -0
- package/scripts/document/generate-catalog.ts +69 -0
- package/scripts/document/lane-child-read-set.ts +88 -0
- package/scripts/document/read-files-cli.ts +135 -0
- package/scripts/document/read-set-cli.ts +295 -0
- package/scripts/document/read-set-point-of-use.ts +89 -0
- package/scripts/document/read-set-pricing.ts +52 -0
- package/scripts/document/read-set-trim.ts +78 -0
- package/scripts/document/retired-phrases.ts +143 -0
- package/scripts/document/review-agent-type.ts +46 -0
- package/scripts/document/single-source.ts +73 -0
- package/scripts/epic/epic-audit-checks.ts +452 -0
- package/scripts/epic/epic-audit-cli.ts +374 -0
- package/scripts/epic/epic-audit-orphans.ts +142 -0
- package/scripts/epic/epic-audit-rationale.ts +191 -0
- package/scripts/epic/epic-audit-report.ts +101 -0
- package/scripts/epic/epic-audit.ts +240 -0
- package/scripts/epic/epic-bundle-cli.ts +472 -0
- package/scripts/epic/epic-bundle-evidence.ts +147 -0
- package/scripts/epic/epic-bundle-gaps.ts +86 -0
- package/scripts/epic/epic-bundle-referenced.ts +195 -0
- package/scripts/epic/epic-bundle.ts +309 -0
- package/scripts/epic/epic-busy.ts +204 -0
- package/scripts/epic/epic-candidate-confirm.ts +279 -0
- package/scripts/epic/epic-classify.ts +294 -0
- package/scripts/epic/epic-cross-repo.ts +366 -0
- package/scripts/epic/epic-fetch.ts +370 -0
- package/scripts/epic/epic-graph.ts +279 -0
- package/scripts/epic/epic-index.ts +209 -0
- package/scripts/epic/epic-issue.ts +172 -0
- package/scripts/epic/epic-lane-offer.ts +207 -0
- package/scripts/epic/epic-nested.ts +37 -0
- package/scripts/epic/epic-next-read.ts +141 -0
- package/scripts/epic/epic-next-views.ts +144 -0
- package/scripts/epic/epic-next.ts +477 -0
- package/scripts/epic/epic-outside-blocker.ts +113 -0
- package/scripts/epic/epic-relation-recheck.ts +108 -0
- package/scripts/epic/epic-report.ts +200 -0
- package/scripts/gate/core-budget.ts +292 -0
- package/scripts/gate/gate-log.ts +95 -0
- package/scripts/gate/gate-plan.ts +356 -0
- package/scripts/gate/gate-report.ts +207 -0
- package/scripts/gate/gate-skip.ts +123 -0
- package/scripts/gate/gate-tree.ts +49 -0
- package/scripts/gate/hook-gate-reuse.ts +130 -0
- package/scripts/gate/pre-commit-type-check.ts +187 -0
- package/scripts/gate/scoped-green.ts +260 -0
- package/scripts/gate/type-check-step.ts +90 -0
- package/scripts/gate/verification-gate.ts +531 -0
- package/scripts/gh/fix-gh-packages-logic.ts +232 -0
- package/scripts/gh/fix-gh-packages.ts +129 -0
- package/scripts/gh/gh-cli-token.ts +18 -0
- package/scripts/gh/gh-spawn.ts +44 -0
- package/scripts/git/animation-helpers.ts +81 -0
- package/scripts/git/change-base.ts +26 -0
- package/scripts/git/changed-file-scope.ts +209 -0
- package/scripts/git/changed-paths.ts +30 -0
- package/scripts/git/constants.ts +41 -0
- package/scripts/git/git-ai-review-scan.ts +154 -0
- package/scripts/git/git-animation.ts +41 -0
- package/scripts/git/git-branch.ts +127 -0
- package/scripts/git/git-command.ts +587 -0
- package/scripts/git/git-commit.ts +27 -0
- package/scripts/git/git-common-directory.ts +38 -0
- package/scripts/git/git-epic-add-body.ts +365 -0
- package/scripts/git/git-epic-add-plan.ts +421 -0
- package/scripts/git/git-epic-add.ts +249 -0
- package/scripts/git/git-epic-body.ts +150 -0
- package/scripts/git/git-epic-chains.ts +411 -0
- package/scripts/git/git-epic-close-comment.ts +199 -0
- package/scripts/git/git-epic-close.ts +393 -0
- package/scripts/git/git-epic-decision.ts +171 -0
- package/scripts/git/git-epic-parse.ts +351 -0
- package/scripts/git/git-epic-promote.ts +102 -0
- package/scripts/git/git-epic-read.ts +73 -0
- package/scripts/git/git-epic-reconcile.ts +246 -0
- package/scripts/git/git-epic-reference.ts +98 -0
- package/scripts/git/git-epic-relations.ts +78 -0
- package/scripts/git/git-epic-remove-plan.ts +152 -0
- package/scripts/git/git-epic-remove.ts +101 -0
- package/scripts/git/git-epic-run.ts +223 -0
- package/scripts/git/git-epic-sections.ts +98 -0
- package/scripts/git/git-epic-shape.ts +81 -0
- package/scripts/git/git-epic-validate.ts +155 -0
- package/scripts/git/git-error.ts +78 -0
- package/scripts/git/git-execa-error.ts +35 -0
- package/scripts/git/git-fixture-workspace.ts +88 -0
- package/scripts/git/git-followup-cleanup.ts +88 -0
- package/scripts/git/git-followup-flush.ts +63 -0
- package/scripts/git/git-followup-label.ts +67 -0
- package/scripts/git/git-followup-pending.ts +95 -0
- package/scripts/git/git-followup-stages.ts +149 -0
- package/scripts/git/git-gh-api-path.ts +118 -0
- package/scripts/git/git-gh-check.ts +21 -0
- package/scripts/git/git-gh-command.ts +17 -0
- package/scripts/git/git-gh-exec.ts +344 -0
- package/scripts/git/git-gh-failure.ts +103 -0
- package/scripts/git/git-gh-helpers.ts +44 -0
- package/scripts/git/git-gh-issue-list.ts +257 -0
- package/scripts/git/git-gh-issue-read.ts +457 -0
- package/scripts/git/git-gh-issue-rest.ts +238 -0
- package/scripts/git/git-gh-issue-write.ts +285 -0
- package/scripts/git/git-gh-issue.ts +161 -0
- package/scripts/git/git-gh-pr-auto-merge.ts +85 -0
- package/scripts/git/git-gh-pr-read.ts +322 -0
- package/scripts/git/git-gh-pr-rest.ts +172 -0
- package/scripts/git/git-gh-pr-review.ts +103 -0
- package/scripts/git/git-gh-pr-rollup.ts +91 -0
- package/scripts/git/git-gh-pr-snapshot.ts +138 -0
- package/scripts/git/git-gh-pr.ts +219 -0
- package/scripts/git/git-gh-reachability.ts +56 -0
- package/scripts/git/git-gh-repo.ts +37 -0
- package/scripts/git/git-gh-rest-state.ts +14 -0
- package/scripts/git/git-issue.ts +168 -0
- package/scripts/git/git-location-environment.ts +62 -0
- package/scripts/git/git-ls-remote.ts +28 -0
- package/scripts/git/git-next-issues.ts +98 -0
- package/scripts/git/git-notify.ts +104 -0
- package/scripts/git/git-pr-ai-review.ts +180 -0
- package/scripts/git/git-pr-checks-eval.ts +265 -0
- package/scripts/git/git-pr-checks-parse.ts +153 -0
- package/scripts/git/git-pr-checks-watch.ts +184 -0
- package/scripts/git/git-pr-checks.ts +387 -0
- package/scripts/git/git-pr-coderabbit.ts +129 -0
- package/scripts/git/git-pr-confirmation.ts +64 -0
- package/scripts/git/git-pr-error.ts +25 -0
- package/scripts/git/git-pr-followup-wrapup.ts +225 -0
- package/scripts/git/git-pr-followup.ts +436 -0
- package/scripts/git/git-pr-managed-config.ts +69 -0
- package/scripts/git/git-pr-messages.ts +37 -0
- package/scripts/git/git-pr.ts +181 -0
- package/scripts/git/git-prompt-display.ts +22 -0
- package/scripts/git/git-prompt.ts +207 -0
- package/scripts/git/git-push-transport.ts +173 -0
- package/scripts/git/git-push.ts +27 -0
- package/scripts/git/git-remote-branch.ts +40 -0
- package/scripts/git/git-spawn.ts +47 -0
- package/scripts/git/git-staging.ts +128 -0
- package/scripts/git/git-stash.ts +124 -0
- package/scripts/git/git-status.ts +198 -0
- package/scripts/git/git-worktree.ts +110 -0
- package/scripts/git/github-issue-url.ts +105 -0
- package/scripts/git/gone-branch.ts +113 -0
- package/scripts/git/issue-labels.ts +279 -0
- package/scripts/git/listing-cutoff.ts +51 -0
- package/scripts/git/main-merge-guard.ts +134 -0
- package/scripts/git/main-merge.ts +120 -0
- package/scripts/git/main-sync.ts +121 -0
- package/scripts/git/parse-json-array.ts +102 -0
- package/scripts/git/schemas.ts +166 -0
- package/scripts/git/stash-orphans.ts +91 -0
- package/scripts/git/stash-pop-args.ts +59 -0
- package/scripts/git/stash-pop-cli.ts +105 -0
- package/scripts/git/telegram-notify.ts +404 -0
- package/scripts/hooks/batch-guard.ts +144 -0
- package/scripts/hooks/check-commit-message.ts +134 -0
- package/scripts/hooks/codex-hook-adapter.ts +155 -0
- package/scripts/hooks/edited-cspell.ts +128 -0
- package/scripts/hooks/format-edited-file-fixtures.ts +109 -0
- package/scripts/hooks/format-edited-file.ts +510 -0
- package/scripts/hooks/format-rewrite-notice.ts +99 -0
- package/scripts/hooks/pre-push-unit.ts +146 -0
- package/scripts/hooks/pretool-guard.ts +96 -0
- package/scripts/hooks/prevent-main-commit.ts +38 -0
- package/scripts/hooks/prompt-hooks.ts +38 -0
- package/scripts/hooks/reserved-run.ts +90 -0
- package/scripts/hooks/stop-guard.ts +135 -0
- package/scripts/init/claude-plugin-config.ts +51 -0
- package/scripts/init/distributed-paths.ts +100 -0
- package/scripts/init/hook-command-rewrite.ts +85 -0
- package/scripts/init/hook-launch.ts +31 -0
- package/scripts/init/init-actions.ts +147 -0
- package/scripts/init/init-ai-copy.ts +235 -0
- package/scripts/init/init-copy-content.ts +50 -0
- package/scripts/init/init-logic-deploy-vps.ts +43 -0
- package/scripts/init/init-logic-json-merge.ts +340 -0
- package/scripts/init/init-logic-migrate.ts +62 -0
- package/scripts/init/init-logic-package-key-order.ts +50 -0
- package/scripts/init/init-logic-secretlint.ts +36 -0
- package/scripts/init/init-logic-sonar.ts +197 -0
- package/scripts/init/init-logic-templates.ts +142 -0
- package/scripts/init/init-logic-workspace.ts +59 -0
- package/scripts/init/init-logic-yaml-merge.ts +57 -0
- package/scripts/init/init-logic.ts +474 -0
- package/scripts/init/init-paths.ts +11 -0
- package/scripts/init/init-sonar.ts +32 -0
- package/scripts/init/init.ts +219 -0
- package/scripts/init/kit-base-preset.ts +60 -0
- package/scripts/init/plugin-install-hint.ts +47 -0
- package/scripts/init/tsconfig-preset-migration.ts +67 -0
- package/scripts/issue/baseline-measure.ts +105 -0
- package/scripts/issue/behavior-change-lint.ts +122 -0
- package/scripts/issue/defect-rate-cli.ts +167 -0
- package/scripts/issue/defect-rate.ts +145 -0
- package/scripts/issue/issue-backlinks-cli.ts +97 -0
- package/scripts/issue/issue-backlinks.ts +164 -0
- package/scripts/issue/issue-cite-cli.ts +158 -0
- package/scripts/issue/issue-cite.ts +102 -0
- package/scripts/issue/issue-comment-cli.ts +95 -0
- package/scripts/issue/issue-fold-cli.ts +104 -0
- package/scripts/issue/issue-fold-existing-cli.ts +81 -0
- package/scripts/issue/issue-fold-existing.ts +73 -0
- package/scripts/issue/issue-fold.ts +42 -0
- package/scripts/issue/issue-lint-cli.ts +60 -0
- package/scripts/issue/issue-lint.ts +26 -0
- package/scripts/issue/issue-logic.ts +50 -0
- package/scripts/issue/issue-read-cli.ts +190 -0
- package/scripts/issue/issue-read.ts +145 -0
- package/scripts/issue/issue-scout-cli.ts +482 -0
- package/scripts/issue/issue-scout.ts +244 -0
- package/scripts/issue/issue-state-cli.ts +260 -0
- package/scripts/issue/issue-state.ts +109 -0
- package/scripts/issue/markdown-section.ts +39 -0
- package/scripts/issue/measure-rerun-cli.ts +98 -0
- package/scripts/issue/reproduction-measure.ts +59 -0
- package/scripts/josh/__snapshots__/josh-command-map.test.ts.snap +1171 -0
- package/scripts/josh/agent-session-environment.ts +188 -0
- package/scripts/josh/cli-body.ts +96 -0
- package/scripts/josh/command-suggest.ts +57 -0
- package/scripts/josh/file-map-stamp.ts +264 -0
- package/scripts/josh/hook-decision.ts +479 -0
- package/scripts/josh/josh-command-map.ts +196 -0
- package/scripts/josh/josh-command-types.ts +226 -0
- package/scripts/josh/josh-commands-ai.ts +327 -0
- package/scripts/josh/josh-commands-backlog.ts +54 -0
- package/scripts/josh/josh-commands-clone.ts +18 -0
- package/scripts/josh/josh-commands-development.ts +206 -0
- package/scripts/josh/josh-commands-document.ts +45 -0
- package/scripts/josh/josh-commands-guard.ts +38 -0
- package/scripts/josh/josh-commands-hooks.ts +42 -0
- package/scripts/josh/josh-commands-issue.ts +69 -0
- package/scripts/josh/josh-commands-lane.ts +75 -0
- package/scripts/josh/josh-commands-lint.ts +37 -0
- package/scripts/josh/josh-commands-maintenance.ts +80 -0
- package/scripts/josh/josh-commands-project.ts +53 -0
- package/scripts/josh/josh-commands-split.ts +20 -0
- package/scripts/josh/josh-commands-versioning.ts +48 -0
- package/scripts/josh/josh-commands-workflow.ts +116 -0
- package/scripts/josh/josh-composite-arguments.ts +55 -0
- package/scripts/josh/josh-environment-file.ts +31 -0
- package/scripts/josh/josh-in-process.ts +80 -0
- package/scripts/josh/josh-logic.ts +308 -0
- package/scripts/josh/josh-run.ts +53 -0
- package/scripts/josh/josh-script-reader.ts +11 -0
- package/scripts/josh/josh-verdict.ts +111 -0
- package/scripts/josh/josh.ts +60 -0
- package/scripts/josh/kit-only.ts +33 -0
- package/scripts/josh/path-decision.ts +104 -0
- package/scripts/josh/platform-temporary.ts +66 -0
- package/scripts/josh/process-identity.ts +335 -0
- package/scripts/josh/session-language-cli.ts +51 -0
- package/scripts/josh/session-language.ts +30 -0
- package/scripts/josh/stamp-file.ts +194 -0
- package/scripts/lane/lane-await.ts +165 -0
- package/scripts/lane/lane-cache-run.ts +39 -0
- package/scripts/lane/lane-cache.ts +135 -0
- package/scripts/lane/lane-capacity.ts +69 -0
- package/scripts/lane/lane-child-invocation.ts +73 -0
- package/scripts/lane/lane-child-marker.ts +58 -0
- package/scripts/lane/lane-cli.ts +410 -0
- package/scripts/lane/lane-close.ts +197 -0
- package/scripts/lane/lane-dispatch-log.ts +13 -0
- package/scripts/lane/lane-dispatch.ts +458 -0
- package/scripts/lane/lane-environment.ts +253 -0
- package/scripts/lane/lane-guard-policy.ts +136 -0
- package/scripts/lane/lane-install.ts +94 -0
- package/scripts/lane/lane-launch-cli.ts +133 -0
- package/scripts/lane/lane-occupancy.ts +112 -0
- package/scripts/lane/lane-open.ts +275 -0
- package/scripts/lane/lane-output.ts +124 -0
- package/scripts/lane/lane-paths.ts +96 -0
- package/scripts/lane/lane-reap.ts +137 -0
- package/scripts/lane/lane-registry.ts +261 -0
- package/scripts/lane/lane-relaunch.ts +68 -0
- package/scripts/lane/lane-report.ts +95 -0
- package/scripts/lane/lane-resume.ts +61 -0
- package/scripts/lane/lane-seed.ts +44 -0
- package/scripts/lane/lane-start-point.ts +175 -0
- package/scripts/lane/openai-lane-supervisor-cli.ts +32 -0
- package/scripts/lane/openai-lane-supervisor-decision.ts +63 -0
- package/scripts/lane/openai-lane-supervisor.ts +337 -0
- package/scripts/lib/bounded-pool.ts +109 -0
- package/scripts/lib/buffered-process.ts +82 -0
- package/scripts/lib/caddy-logs.sh +45 -0
- package/scripts/lib/cli-flags.ts +19 -0
- package/scripts/lib/json-value.ts +24 -0
- package/scripts/lib/poll.ts +57 -0
- package/scripts/lib/read-file.ts +16 -0
- package/scripts/lib/schemas.ts +67 -0
- package/scripts/lib/spawn-exit.ts +45 -0
- package/scripts/lib/status-icons.ts +24 -0
- package/scripts/lines/effective-limit.ts +156 -0
- package/scripts/lines/line-budget.ts +404 -0
- package/scripts/lines/line-targets.ts +80 -0
- package/scripts/lines/lines-command.ts +174 -0
- package/scripts/lint/cspell-cached.ts +41 -0
- package/scripts/lint/lint-parallel.ts +72 -0
- package/scripts/lint/lint-related-scope.ts +128 -0
- package/scripts/lint/lint-related.ts +104 -0
- package/scripts/managed-marker/index.ts +5 -0
- package/scripts/managed-marker/managed-marker-logic.ts +67 -0
- package/scripts/observations/observation-ledger-home.ts +32 -0
- package/scripts/observations/observation-ledger-line.ts +93 -0
- package/scripts/observations/observation-ledger.ts +35 -0
- package/scripts/observations/observations-flush-cli.ts +42 -0
- package/scripts/observations/observations-flush-landing.ts +97 -0
- package/scripts/observations/observations-flush.ts +420 -0
- package/scripts/overrides/lockfile-overrides.ts +105 -0
- package/scripts/overrides/overrides-check.ts +84 -0
- package/scripts/overrides/overrides-files.ts +19 -0
- package/scripts/overrides/overrides-logic.ts +211 -0
- package/scripts/overrides/schemas.ts +49 -0
- package/scripts/package/package-scout-cli.ts +195 -0
- package/scripts/package/package-scout-format.ts +151 -0
- package/scripts/package/package-scout.ts +121 -0
- package/scripts/ports/port-command.ts +87 -0
- package/scripts/propagate/propagate-git-failure.ts +191 -0
- package/scripts/propagate/propagate-git.ts +224 -0
- package/scripts/propagate/propagate-publish.ts +181 -0
- package/scripts/propagate/propagate-run.ts +201 -0
- package/scripts/propagate/propagate-steps.ts +421 -0
- package/scripts/propagate/propagate-targets.ts +160 -0
- package/scripts/propagate/propagate.ts +216 -0
- package/scripts/refactor/import-graph.ts +187 -0
- package/scripts/refactor/refactor-lint.ts +250 -0
- package/scripts/refactor/refactor-scan-cli.ts +10 -0
- package/scripts/refactor/refactor-scan.ts +124 -0
- package/scripts/refactor/refactor-targets.ts +103 -0
- package/scripts/release/release-cli.ts +88 -0
- package/scripts/release/release-history.ts +132 -0
- package/scripts/release/release-plan.ts +130 -0
- package/scripts/release/release-publish.ts +152 -0
- package/scripts/release/release-scope-cli.ts +103 -0
- package/scripts/release/release-tag.ts +93 -0
- package/scripts/release/release-worktree.ts +71 -0
- package/scripts/repo/auto-merge-setting-logic.ts +100 -0
- package/scripts/repo/auto-merge-setting.ts +37 -0
- package/scripts/repo/repo-setting.ts +112 -0
- package/scripts/report/report-lint-cli.ts +49 -0
- package/scripts/report/report-lint.ts +250 -0
- package/scripts/retrospective/retrospective-cli.ts +97 -0
- package/scripts/retrospective/retrospective.ts +127 -0
- package/scripts/review/disposition-cli.ts +44 -0
- package/scripts/review/disposition-logic.ts +45 -0
- package/scripts/review/live-evidence.ts +62 -0
- package/scripts/review/review-attest-cli.ts +115 -0
- package/scripts/review/review-attest.ts +319 -0
- package/scripts/review/review-brief-cli.ts +290 -0
- package/scripts/review/review-brief.ts +440 -0
- package/scripts/review/review-checkout.ts +56 -0
- package/scripts/review/review-finding-ledger.ts +167 -0
- package/scripts/review/review-findings-cli.ts +57 -0
- package/scripts/review/review-level.ts +86 -0
- package/scripts/review/review-record-cli.ts +196 -0
- package/scripts/review/review-record.ts +74 -0
- package/scripts/review/review-round2-cli.ts +84 -0
- package/scripts/review/review-round2.ts +139 -0
- package/scripts/review/review-stamps.ts +113 -0
- package/scripts/review/review-tree.ts +58 -0
- package/scripts/rules/bash-triggers.ts +44 -0
- package/scripts/rules/decision-oracle.ts +342 -0
- package/scripts/rules/delivered-rules-harness.ts +72 -0
- package/scripts/rules/delivered-rules.ts +793 -0
- package/scripts/rules/early-heartbeat.ts +241 -0
- package/scripts/rules/file-body.ts +150 -0
- package/scripts/rules/filing-cap.ts +133 -0
- package/scripts/rules/filing-offer.ts +81 -0
- package/scripts/rules/firing-point.ts +63 -0
- package/scripts/rules/gh-api.ts +65 -0
- package/scripts/rules/git-argv.ts +129 -0
- package/scripts/rules/git-force.ts +104 -0
- package/scripts/rules/implementation-cut-verdict.ts +84 -0
- package/scripts/rules/implementation-cut.ts +202 -0
- package/scripts/rules/issue-citation.ts +242 -0
- package/scripts/rules/issue-fold.ts +73 -0
- package/scripts/rules/issue-scout.ts +64 -0
- package/scripts/rules/josh-git-bare.ts +80 -0
- package/scripts/rules/lane-carry-conflict.ts +96 -0
- package/scripts/rules/lane-interactive-ask.ts +71 -0
- package/scripts/rules/lane-park.ts +122 -0
- package/scripts/rules/lane-switch-main.ts +139 -0
- package/scripts/rules/oracle-consulted.ts +81 -0
- package/scripts/rules/oracle-firing.ts +151 -0
- package/scripts/rules/oracle-list-cli.ts +81 -0
- package/scripts/rules/piped-verification.ts +126 -0
- package/scripts/rules/poll-loop.ts +125 -0
- package/scripts/rules/pre-gate-cut.ts +207 -0
- package/scripts/rules/prior-comment-read.ts +106 -0
- package/scripts/rules/raw-field-body.ts +56 -0
- package/scripts/rules/reply-language.ts +116 -0
- package/scripts/rules/rule-body-guard.ts +206 -0
- package/scripts/rules/rule-guard.ts +23 -0
- package/scripts/rules/rule-value-cli.ts +129 -0
- package/scripts/rules/rule-value.ts +397 -0
- package/scripts/rules/run-tail.ts +178 -0
- package/scripts/rules/shell-body-trigger.ts +204 -0
- package/scripts/rules/shell-segments.ts +45 -0
- package/scripts/rules/stop-rules.ts +329 -0
- package/scripts/rules/tail-commands.ts +35 -0
- package/scripts/rules/test-declared-commit.ts +51 -0
- package/scripts/rules/third-party-write.ts +90 -0
- package/scripts/rules/top-level-scripts-guard.ts +47 -0
- package/scripts/rules/worktree-guard.ts +130 -0
- package/scripts/run/detached-launch.ts +360 -0
- package/scripts/run/run-carry-args.ts +264 -0
- package/scripts/run/run-carry-change.ts +69 -0
- package/scripts/run/run-carry-cli.ts +441 -0
- package/scripts/run/run-carry-flush.ts +63 -0
- package/scripts/run/run-carry-stash.ts +71 -0
- package/scripts/run/run-carry-streak.ts +113 -0
- package/scripts/run/run-carry.ts +550 -0
- package/scripts/run/run-cut-args.ts +132 -0
- package/scripts/run/run-cut-cli.ts +461 -0
- package/scripts/run/run-cut-handoff.ts +126 -0
- package/scripts/run/run-cut.ts +531 -0
- package/scripts/run/run-ending-cli.ts +111 -0
- package/scripts/run/run-ending.ts +239 -0
- package/scripts/run/run-entry-cli.ts +135 -0
- package/scripts/run/run-entry.ts +95 -0
- package/scripts/run/run-event-cli.ts +210 -0
- package/scripts/run/run-event-follow.ts +65 -0
- package/scripts/run/run-event-render.ts +75 -0
- package/scripts/run/run-event-scope.ts +127 -0
- package/scripts/run/run-event-stream-emit.ts +140 -0
- package/scripts/run/run-event-stream.ts +258 -0
- package/scripts/run/run-event-watch.ts +37 -0
- package/scripts/run/run-headless.ts +105 -0
- package/scripts/run/run-hold-cli.ts +310 -0
- package/scripts/run/run-hold.ts +264 -0
- package/scripts/run/run-invocation.ts +237 -0
- package/scripts/run/run-issue-number.ts +19 -0
- package/scripts/run/run-liveness-cli.ts +169 -0
- package/scripts/run/run-liveness.ts +424 -0
- package/scripts/run/run-merge-cli.ts +385 -0
- package/scripts/run/run-merge-steps.ts +326 -0
- package/scripts/run/run-merge.ts +158 -0
- package/scripts/run/run-next-cli.ts +48 -0
- package/scripts/run/run-next.ts +80 -0
- package/scripts/run/run-preflight.ts +337 -0
- package/scripts/run/run-prep-cli.ts +151 -0
- package/scripts/run/run-prep.ts +84 -0
- package/scripts/run/run-progress-args.ts +65 -0
- package/scripts/run/run-progress-cli.ts +508 -0
- package/scripts/run/run-progress-clock.ts +320 -0
- package/scripts/run/run-progress-config.ts +119 -0
- package/scripts/run/run-progress-read.ts +199 -0
- package/scripts/run/run-progress.ts +366 -0
- package/scripts/run/run-report-cli.ts +71 -0
- package/scripts/run/run-report.ts +78 -0
- package/scripts/run/run-review-cli.ts +130 -0
- package/scripts/run/run-review-steps.ts +161 -0
- package/scripts/run/run-review.ts +121 -0
- package/scripts/run/run-ship-cli.ts +431 -0
- package/scripts/run/run-ship-detach.ts +200 -0
- package/scripts/run/run-ship-probe.ts +103 -0
- package/scripts/run/run-ship-return.ts +75 -0
- package/scripts/run/run-ship-review-steps.ts +227 -0
- package/scripts/run/run-ship-review.ts +177 -0
- package/scripts/run/run-ship-stage.ts +150 -0
- package/scripts/run/run-ship.ts +78 -0
- package/scripts/run/run-status-cli.ts +175 -0
- package/scripts/run/run-status.ts +77 -0
- package/scripts/run/run-step-cli.ts +111 -0
- package/scripts/run/run-step.ts +292 -0
- package/scripts/run/run-stop-notify.ts +52 -0
- package/scripts/run/run-stranded-cli.ts +31 -0
- package/scripts/run/run-stranded-detect.ts +134 -0
- package/scripts/run/run-stranded.ts +120 -0
- package/scripts/run/run-tail-cli.ts +105 -0
- package/scripts/run/run-tail.ts +61 -0
- package/scripts/run/run-transcript.golden.txt +57 -0
- package/scripts/run/run-wake-cli.ts +428 -0
- package/scripts/run/run-wake-describe.ts +97 -0
- package/scripts/run/run-wake-driver.ts +80 -0
- package/scripts/run/run-wake-handoff.ts +29 -0
- package/scripts/run/run-wake-loop.ts +223 -0
- package/scripts/run/run-wake-session.ts +150 -0
- package/scripts/run/run-wake-work.ts +104 -0
- package/scripts/run/run-wake.ts +607 -0
- package/scripts/run/run-watcher-guard-cli.ts +37 -0
- package/scripts/run/run-watcher-guard.ts +59 -0
- package/scripts/run/run-watcher-hook.ts +86 -0
- package/scripts/security/secretlint-scan.ts +86 -0
- package/scripts/security/security-audit-logic.ts +51 -0
- package/scripts/security/security-audit-provision-logic.ts +217 -0
- package/scripts/security/security-audit-provision.ts +186 -0
- package/scripts/security/security-audit.ts +132 -0
- package/scripts/security/security-updates-logic.ts +131 -0
- package/scripts/security/security-updates.ts +38 -0
- package/scripts/security/sonar-file.ts +44 -0
- package/scripts/self-sync-guard/index.ts +5 -0
- package/scripts/self-sync-guard/self-sync-guard-logic.ts +98 -0
- package/scripts/self-sync-guard/self-sync-refusal.ts +22 -0
- package/scripts/sonar/sonar-hotspots-cli.ts +149 -0
- package/scripts/sonar/sonar-hotspots.ts +111 -0
- package/scripts/split/split-assess-cli.ts +52 -0
- package/scripts/split/split-assess.ts +124 -0
- package/scripts/sync/dependabot-pin-logic.ts +135 -0
- package/scripts/sync/directory-copy-guard.ts +187 -0
- package/scripts/sync/file-content.ts +49 -0
- package/scripts/sync/managed-config-scope-cli.ts +64 -0
- package/scripts/sync/managed-config-scope.ts +123 -0
- package/scripts/sync/plugin-skill-directories.ts +15 -0
- package/scripts/sync/reconcile-templates.ts +53 -0
- package/scripts/sync/removed-skill-manifest.ts +27 -0
- package/scripts/sync/skill-migration.ts +192 -0
- package/scripts/sync/sync-configs.ts +156 -0
- package/scripts/sync/sync-hook-safety.ts +82 -0
- package/scripts/sync/sync.ts +417 -0
- package/scripts/sync/synced-paths.ts +52 -0
- package/scripts/sync/template-source-logic.ts +122 -0
- package/scripts/sync/workflow-pin-logic.ts +240 -0
- package/scripts/test/classify-isolation.ts +149 -0
- package/scripts/test/e2e-retry-check.ts +150 -0
- package/scripts/test/http-fault-injection.ts +79 -0
- package/scripts/test/josh-harness-environment.ts +260 -0
- package/scripts/test/josh-harness.ts +96 -0
- package/scripts/test/pilot-files.ts +457 -0
- package/scripts/test/pilot-measure.ts +78 -0
- package/scripts/test/test-declared-changed.ts +99 -0
- package/scripts/test/test-declared-logic.ts +91 -0
- package/scripts/test/test-declared-match.ts +106 -0
- package/scripts/test/test-declared.ts +180 -0
- package/scripts/test/test-e2e-guard.ts +86 -0
- package/scripts/test/test-network-guard.ts +453 -0
- package/scripts/test/test-red-commit.ts +51 -0
- package/scripts/test/test-red-logic.ts +76 -0
- package/scripts/test/test-red.ts +154 -0
- package/scripts/test/test-related-scope.ts +115 -0
- package/scripts/test/test-related.ts +73 -0
- package/scripts/test/test-repository-guard.ts +317 -0
- package/scripts/test/test-state-guard.ts +85 -0
- package/scripts/test/test-stdout-guard.ts +54 -0
- package/scripts/test/test-telegram-guard.ts +90 -0
- package/scripts/test/test-type-logic.ts +31 -0
- package/scripts/test/test-unit-guard.ts +185 -0
- package/scripts/test/unit-guard-environment.ts +12 -0
- package/scripts/test/unit-projects.ts +139 -0
- package/scripts/test/unit-worker-share.ts +251 -0
- package/scripts/test/vitest-include-globs.ts +12 -0
- package/scripts/time-runtime/time-agent-bundles.ts +128 -0
- package/scripts/time-runtime/time-background.ts +300 -0
- package/scripts/time-runtime/time-batch-guard-fixtures.ts +66 -0
- package/scripts/time-runtime/time-batch-guard.ts +529 -0
- package/scripts/time-runtime/time-bundle-call.ts +575 -0
- package/scripts/time-runtime/time-bundles.ts +536 -0
- package/scripts/time-runtime/time-call-identity.ts +37 -0
- package/scripts/time-runtime/time-command-key.ts +35 -0
- package/scripts/time-runtime/time-density-hook.ts +166 -0
- package/scripts/time-runtime/time-density.ts +147 -0
- package/scripts/time-runtime/time-followup-stage.ts +107 -0
- package/scripts/time-runtime/time-format.ts +186 -0
- package/scripts/time-runtime/time-hook-transcript.ts +82 -0
- package/scripts/time-runtime/time-instant.ts +20 -0
- package/scripts/time-runtime/time-markers.ts +228 -0
- package/scripts/time-runtime/time-phase-names.ts +123 -0
- package/scripts/time-runtime/time-reported-failure.ts +227 -0
- package/scripts/time-runtime/time-round-trips.ts +279 -0
- package/scripts/time-runtime/time-shell.ts +286 -0
- package/scripts/time-runtime/time-single-check.ts +65 -0
- package/scripts/time-runtime/time-spans.ts +545 -0
- package/scripts/time-runtime/time-transcript-line.ts +253 -0
- package/scripts/time-runtime/time-writes.ts +71 -0
- package/scripts/ui/ui-routes-cli.ts +122 -0
- package/scripts/ui/ui-routes.ts +102 -0
- package/scripts/version/bump-version.ts +71 -0
- package/scripts/version/effective-upstream.ts +93 -0
- package/scripts/version/index.ts +25 -0
- package/scripts/version/kit-descriptor.ts +10 -0
- package/scripts/version/kit-version-config.ts +30 -0
- package/scripts/version/latest-corepack.ts +404 -0
- package/scripts/version/latest-lane-guard.ts +49 -0
- package/scripts/version/latest-regression.ts +93 -0
- package/scripts/version/latest-scope-cli.ts +147 -0
- package/scripts/version/latest-stamp.ts +107 -0
- package/scripts/version/latest-update.ts +198 -0
- package/scripts/version/package-manager-version.ts +95 -0
- package/scripts/version/parse-json.ts +13 -0
- package/scripts/version/preinstall-version-update.ts +84 -0
- package/scripts/version/publishable-range-check.ts +74 -0
- package/scripts/version/publishable-range.ts +123 -0
- package/scripts/version/release-age.ts +146 -0
- package/scripts/version/release-hold.ts +142 -0
- package/scripts/version/running-binary.ts +42 -0
- package/scripts/version/upgrade-command-guard.ts +49 -0
- package/scripts/version/upgrade-shell-command.ts +30 -0
- package/scripts/version/version-check-logic.ts +333 -0
- package/scripts/version/version-check.ts +14 -0
- package/scripts/version/version-command-config.ts +177 -0
- package/scripts/version/version-commands.ts +296 -0
- package/scripts/version/version-remote.ts +86 -0
- package/scripts/version/version-targets.ts +81 -0
- package/scripts/yaml/yaml-document.ts +46 -0
- package/scripts-ai/completion-gate.ts +13 -0
- package/scripts-ai/environment-loader.ts +9 -0
- package/scripts-ai/epic-check.ts +34 -0
- package/scripts-ai/epic-cli-argv.ts +77 -0
- package/scripts-ai/epic-cli-remove.ts +71 -0
- package/scripts-ai/epic-cli.ts +413 -0
- package/scripts-ai/epic.ts +192 -0
- package/scripts-ai/followup-issue-number.ts +31 -0
- package/scripts-ai/git-followup-finish.ts +217 -0
- package/scripts-ai/git-followup-workflow.ts +252 -0
- package/scripts-ai/git-workflow.ts +246 -0
- package/scripts-ai/telegram-test-logic.ts +88 -0
- package/scripts-ai/telegram-test.ts +130 -0
- package/templates/gitignore +76 -0
- package/templates/sonar-project.properties +52 -0
- package/templates/workflows/ci.yml +639 -0
- package/templates/workflows/dependabot-auto-merge.yml +428 -0
- package/tsconfig/base.json +50 -0
- package/tsconfig.sonar.json +34 -0
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
# ESLint設定ガイド - コーディング支援用
|
|
2
|
+
|
|
3
|
+
このプロジェクトのESLint設定は非常に厳格で、標準的なJavaScript/TypeScriptプロジェクトとは異なる命名規則を採用しています。新しいコード作成やリファクタリング時は必ずこのガイドを参照してください。
|
|
4
|
+
|
|
5
|
+
## 📝 基本方針
|
|
6
|
+
|
|
7
|
+
### コードの書き方
|
|
8
|
+
|
|
9
|
+
- **シンプルで読みやすく**: 複雑な実装よりも、シンプルで理解しやすいコードを優先する
|
|
10
|
+
- **現在の要件に集中**: 予定のない未来の拡張性を考慮せず、現在必要な機能のみを実装する
|
|
11
|
+
- **適切な分割**: 同一ファイルに無理に実装を詰め込まず、適宜別ファイルにロジックを分割する
|
|
12
|
+
- **意図が不明瞭な処理は関数に抽出**: 条件式がわかりにくい、意図がわかりにくい処理は、たとえ1行でも抽出を行い、関数名等で理解できるようにする
|
|
13
|
+
- **既存のコード体系に寄り添う**: 現在のコード体系に可能な限り寄り添ったうえで、更に良いコードがかけるのであれば目指すこと
|
|
14
|
+
|
|
15
|
+
### コメントとドキュメント
|
|
16
|
+
|
|
17
|
+
- **コメントは必要最小限に**: コードで表現できることはコメントにしない。コード自体が説明になるように書く
|
|
18
|
+
- **なぜ書いたかを説明**: 何をしているかではなく、なぜその実装にしたかを説明する場合のみコメントを書く
|
|
19
|
+
- **複雑なロジックのみ**: 複雑な処理や意図が伝わりにくい部分のみにコメントを追加
|
|
20
|
+
- **コメントは英語で記載**: コメントは英語で記載する
|
|
21
|
+
|
|
22
|
+
### 抽象化と設計
|
|
23
|
+
|
|
24
|
+
- **過度な抽象化を避ける**: 現在の要件で必要な抽象化のみを行う。将来の拡張性を考慮した抽象化は不要
|
|
25
|
+
- **パターンの強制は避ける**: デザインパターンやアーキテクチャパターンを無理に適用しない
|
|
26
|
+
- **コードの重複は撲滅**: コードクローン(重複)は完全に撲滅する。重複が見つかった場合は関数やモジュールに抽出して共通化する
|
|
27
|
+
- **仕組みを足す前に原因を問う**: これは**書かれたコードの可読性**の規則。仕組み(フック・ガード・ルール)を足すか・どこへ置くかという**設計時の判断**は `prompts/collaboration-workflow/simplicity-first.md` の担当なので、本文を写さずそちらを参照する
|
|
28
|
+
|
|
29
|
+
### エラーハンドリング
|
|
30
|
+
|
|
31
|
+
- **シンプルなエラーハンドリング**: 複雑なエラーハンドリングロジックは避け、必要最小限の処理のみを行う
|
|
32
|
+
- **エラーメッセージは明確に**: エラーメッセージは原因が分かるように、簡潔に記述する
|
|
33
|
+
|
|
34
|
+
### 命名の考え方
|
|
35
|
+
|
|
36
|
+
- **意図が明確に伝わる命名**: 変数名や関数名から、何をしているかが分かるように命名する
|
|
37
|
+
- **略語は避ける**: 一般的でない略語は使わず、明確な単語を使用する
|
|
38
|
+
- **長すぎる名前も避ける**: 必要以上に長い名前は避け、適切な長さで意図を表現する
|
|
39
|
+
|
|
40
|
+
## 🚨 最重要:命名規則(標準と大きく異なる)
|
|
41
|
+
|
|
42
|
+
### ❌ よくある間違い:camelCase を使う
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
// ❌ 間違い(標準的なTypeScript)
|
|
46
|
+
const userName = 'john'
|
|
47
|
+
const isLoggedIn = true
|
|
48
|
+
const getUserData = () => {}
|
|
49
|
+
|
|
50
|
+
// ✅ 正しい(このプロジェクト)
|
|
51
|
+
const user_name = 'john'
|
|
52
|
+
const is_logged_in = true
|
|
53
|
+
const get_user_data = () => {}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 正しい命名規則
|
|
57
|
+
|
|
58
|
+
- **変数・関数・パラメータ**: `snake_case`
|
|
59
|
+
- **定数(const)**: `UPPER_CASE` または `snake_case`
|
|
60
|
+
- **boolean変数**: `is_`, `has_`, `should_`, `can_`, `will_`, `did_` で始める
|
|
61
|
+
- **型・クラス・インターフェース・Enum**: `PascalCase`
|
|
62
|
+
- **Enumメンバー**: `UPPER_CASE`
|
|
63
|
+
- **クラスプロパティ・メソッド**: `snake_case`
|
|
64
|
+
|
|
65
|
+
## 🔧 必須:型安全性ルール
|
|
66
|
+
|
|
67
|
+
### 明示的な型定義が必須
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
// ❌ 間違い
|
|
71
|
+
const processData = (data) => {
|
|
72
|
+
return data.map((item) => item.value)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// ✅ 正しい
|
|
76
|
+
const process_data = (data: Array<{ value: string }>): Array<string> => {
|
|
77
|
+
return data.map((item) => item.value)
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 禁止事項
|
|
82
|
+
|
|
83
|
+
- `any` の使用は完全禁止
|
|
84
|
+
- 未使用変数は禁止
|
|
85
|
+
- 浮動Promiseは禁止
|
|
86
|
+
- 型アサーションは制限あり
|
|
87
|
+
|
|
88
|
+
### 早期returnの書き方
|
|
89
|
+
|
|
90
|
+
- 条件の本体が単一の `return` だけで、かつ行長が100文字未満のときは1行で書く
|
|
91
|
+
`if (value === undefined) return default_value`
|
|
92
|
+
- 100文字以上になる、または複数ステートメントがある場合はブロック構文を使う
|
|
93
|
+
- **条件式が複雑な場合は関数に抽出**: 条件式の意図が不明瞭な場合は、関数に抽出して関数名で意図を明確にする
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
// ❌ 意図が不明瞭
|
|
97
|
+
if (user.age >= 18 && user.country === 'JP' && user.verified === true) { ... }
|
|
98
|
+
|
|
99
|
+
// ✅ 関数に抽出して意図を明確化
|
|
100
|
+
if (is_eligible_for_service(user)) { ... }
|
|
101
|
+
|
|
102
|
+
function is_eligible_for_service(user: User): boolean {
|
|
103
|
+
return user.age >= 18 && user.country === 'JP' && user.verified === true
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### マジックナンバーと定数化
|
|
108
|
+
|
|
109
|
+
- `0`, `1`, `-1` 以外の数値リテラルは原則として定数へ抽出する
|
|
110
|
+
- 繰り返し使用する文字列や識別子は定数化し、意味の分かる名前を付ける
|
|
111
|
+
|
|
112
|
+
## 📁 新規作成時の手順
|
|
113
|
+
|
|
114
|
+
### 1. 既存ファイルを必ず参照
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# 類似機能の既存ファイルを探す
|
|
118
|
+
find src -name "*.ts" -o -name "*.svelte" | grep -i [関連キーワード]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 2. ファイル作成時の注意点
|
|
122
|
+
|
|
123
|
+
- **Svelteファイル**: `PascalCase.svelte`(例: `UserProfile.svelte`)
|
|
124
|
+
- **`*.svelte.ts` ファイル**: Svelte のリアクティブな状態やロジックを格納するファイルも `PascalCase.svelte.ts` 形式とする(例: `ThemeStore.svelte.ts`, `LocaleStore.svelte.ts`)
|
|
125
|
+
- **TypeScriptファイル**: `kebab-case.ts`(例: `user-service.ts`)
|
|
126
|
+
- **テストファイル**: ユニット/統合テストは `*.test.ts`(`*.spec.ts` は禁止)、コンポーネント/ブラウザテストは `*.svelte.test.ts`(`.svelte.` の中置は必須・保持する)、E2E は `src/routes/**/*.e2e.ts`。テストは対象モジュールの隣に colocate し、トップレベルの `tests/` ディレクトリは使わない(詳細は `prompts/testing-guide.md` の「Test file naming & placement」を参照)
|
|
127
|
+
- **ルートファイル**: `+page.svelte`, `+layout.svelte` などは例外
|
|
128
|
+
- **関数定義**: `function` で表現できる処理はアロー関数ではなく通常の `function` 構文で記述する
|
|
129
|
+
- **複数関数のエクスポート**: 複数の関数を公開する場合は名前空間オブジェクト(namespace object)にまとめてエクスポートする(定数のみのエクスポートは個別で問題ない)
|
|
130
|
+
|
|
131
|
+
### ファイル分割の指針
|
|
132
|
+
|
|
133
|
+
- **複雑度が高い場合**: 関数の認知的複雑度が4を超える、または行数(コード行数)が25行を超える場合は分割を検討
|
|
134
|
+
- **責任が複数ある場合**: 1つのファイルが複数の責任を持つ場合は、責任ごとにファイルを分割
|
|
135
|
+
- **再利用性**: 他のファイルからも使用される可能性があるロジックは、別ファイルに分離
|
|
136
|
+
- **メインファイルの肥大化を避ける**: メインファイルの肥大化を避けることを優先する。再利用可能な機能や独立した責任を持つ機能は、積極的に別ファイルに分割する。メインファイルは主要な処理フローに集中し、詳細な実装は別ファイルに分離する
|
|
137
|
+
- **過度な分割は避ける**: 小さすぎるファイルの分割は避け、関連する機能は同じファイルにまとめる
|
|
138
|
+
|
|
139
|
+
### 3. インポート/エクスポート規則
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
// ❌ 間違い
|
|
143
|
+
export default class UserService {}
|
|
144
|
+
|
|
145
|
+
// ✅ 正しい
|
|
146
|
+
export class UserService {}
|
|
147
|
+
export type { UserData }
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
#### 名前空間オブジェクトエクスポート(必須)
|
|
151
|
+
|
|
152
|
+
**重要**: 複数の関数を公開する場合は、必ず名前空間オブジェクト(namespace object)にまとめてエクスポートする。リファクタリング時も同様に適用する。
|
|
153
|
+
|
|
154
|
+
**注意**: このルールは**関数のみ**に適用される。定数(`const`で定義された値やオブジェクト)は個別エクスポートで問題なく、名前空間オブジェクトにまとめる必要はない。
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
// ❌ 間違い: 個別の関数エクスポート
|
|
158
|
+
async function exec_git_branch(): Promise<string> {
|
|
159
|
+
return await exec_git_command('rev-parse --abbrev-ref HEAD')
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
async function exec_git_status(): Promise<string> {
|
|
163
|
+
return await exec_git_command('status --porcelain')
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export { exec_git_branch, exec_git_status }
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
// ✅ 正しい: 名前空間オブジェクトエクスポート
|
|
171
|
+
// ファイル名: git-command.ts
|
|
172
|
+
// 名前空間名: git_command
|
|
173
|
+
|
|
174
|
+
async function branch(): Promise<string> {
|
|
175
|
+
return await exec_git_command('rev-parse --abbrev-ref HEAD')
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
async function status(): Promise<string> {
|
|
179
|
+
return await exec_git_command('status --porcelain')
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const git_command = {
|
|
183
|
+
branch,
|
|
184
|
+
status,
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export { git_command }
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**命名の工夫**:
|
|
191
|
+
|
|
192
|
+
- ファイル名と名前空間名で意図を明確にする(例: `git-command.ts` → `git_command`)
|
|
193
|
+
- メソッド名は短く、名前空間で補完する(例: `exec_git_branch()` → `git_command.branch()`)
|
|
194
|
+
- アロー関数は使わず、通常の`function`構文を使用する
|
|
195
|
+
|
|
196
|
+
**使用例**:
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
// インポート
|
|
200
|
+
import { git_command } from './git/git-command.js'
|
|
201
|
+
|
|
202
|
+
// 使用
|
|
203
|
+
const branch_name = await git_command.branch()
|
|
204
|
+
const status_output = await git_command.status()
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## 🧹 必須:Lintチェック手順
|
|
208
|
+
|
|
209
|
+
### 基本ルール
|
|
210
|
+
|
|
211
|
+
- **ファイルを変更したときは、最後にかならず lint チェックを行うこと**
|
|
212
|
+
- エラーがある場合は修正してからコミットする
|
|
213
|
+
- 変更したファイルだけでなく、依存関係にあるファイルも含めてチェックする
|
|
214
|
+
|
|
215
|
+
### チェック対象
|
|
216
|
+
|
|
217
|
+
- 編集したファイル、新規作成したファイル、削除したファイル(インポート元がある場合)
|
|
218
|
+
- 依存ファイル:変更したファイルからインポートしているファイル、変更したファイルがインポートしているファイル、同じ機能領域のファイル
|
|
219
|
+
|
|
220
|
+
### 編集後の必須作業
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# 1. ESLintチェック
|
|
224
|
+
pnpm run lint
|
|
225
|
+
|
|
226
|
+
# 2. エラーがある場合は修正
|
|
227
|
+
pnpm run lint:fix
|
|
228
|
+
|
|
229
|
+
# 3. 型チェック
|
|
230
|
+
pnpm run check
|
|
231
|
+
|
|
232
|
+
# 4. 最終確認
|
|
233
|
+
pnpm run build
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Agentモード運用(報告=Lintゼロの保証)
|
|
237
|
+
|
|
238
|
+
1. **変更完了直後にLintを実行**
|
|
239
|
+
- `read_lints([変更ファイルの絶対パス配列])` で初期確認
|
|
240
|
+
- **必須**: `pnpm run lint` で検証(`read_lints` は一部のESLintルールやPrettierを検出しないため)
|
|
241
|
+
- エラーが1件でもあれば修正→再実行。ゼロになるまで報告禁止
|
|
242
|
+
|
|
243
|
+
2. **複数ファイル変更時**
|
|
244
|
+
- すべての関与ファイルを明示的に指定してチェック
|
|
245
|
+
- 大きな変更はファイル群ごとに区切り、群ごとにLintゼロを達成してから次へ
|
|
246
|
+
|
|
247
|
+
3. **報告文**
|
|
248
|
+
- 「Lint: 0 errors(確認対象: 変更ファイル/またはsrc配下)」を明記
|
|
249
|
+
- ゼロ以外は報告不可
|
|
250
|
+
|
|
251
|
+
**`read_lints` の制限**: 一部のESLintルール(例: `id-length`)やPrettierのフォーマットチェックを検出しない。報告前に必ず `pnpm run lint` で再確認すること。
|
|
252
|
+
|
|
253
|
+
補足: 本運用ルールの機械可読版は `prompts/agent-lint-protocol.json` に格納。
|
|
254
|
+
|
|
255
|
+
### よくあるLintエラーと対処法
|
|
256
|
+
|
|
257
|
+
#### 1. 命名規則エラー
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# エラー例
|
|
261
|
+
error: Identifier 'userName' is not in snake_case
|
|
262
|
+
|
|
263
|
+
# 修正
|
|
264
|
+
const user_name = 'john'; // snake_caseに変更
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
#### 2. 型定義エラー
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
# エラー例
|
|
271
|
+
error: Missing return type on function
|
|
272
|
+
|
|
273
|
+
# 修正
|
|
274
|
+
const get_user_data = (): UserData => { // 戻り値の型を明記
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
#### 3. 未使用変数エラー
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
# エラー例
|
|
281
|
+
error: 'unusedVar' is defined but never used
|
|
282
|
+
|
|
283
|
+
# 修正
|
|
284
|
+
const _unused_var = 'value'; // アンダースコアプレフィックス
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## 🎯 プロジェクト固有の設定
|
|
288
|
+
|
|
289
|
+
### Svelte固有ルール
|
|
290
|
+
|
|
291
|
+
- `$state` などのリアクティブ変数は再代入可能
|
|
292
|
+
- Propsインターフェース名は `Props` で許可
|
|
293
|
+
- DOM操作は制限あり
|
|
294
|
+
|
|
295
|
+
### ファイル除外設定
|
|
296
|
+
|
|
297
|
+
以下のファイルはESLint対象外:
|
|
298
|
+
|
|
299
|
+
- `.storybook/**`
|
|
300
|
+
- `*.config.js`
|
|
301
|
+
- `src/routes/demo/**`
|
|
302
|
+
- `src/stories/**`
|
|
303
|
+
|
|
304
|
+
### リファクタリング除外設定
|
|
305
|
+
|
|
306
|
+
ファイル先頭に `/* @refactor-ignore */` コメントが含まれるファイルは、リファクタリング提案や参考コードとして使用する際の対象から除外されます。
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
#!/usr/bin/env node
|
|
310
|
+
/* @refactor-ignore */
|
|
311
|
+
// このファイルはリファクタリング対象外です
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### 複雑度制限
|
|
315
|
+
|
|
316
|
+
- **関数の複雑度**: 最大5
|
|
317
|
+
- **認知的複雑度**: 最大4
|
|
318
|
+
- **ネストレベル**: 最大2
|
|
319
|
+
- **関数の行数**: 最大25行(テストファイルは35行)
|
|
320
|
+
- **ファイルの行数**: 最大300行
|
|
321
|
+
- **関数内の文の数**: 最大10
|
|
322
|
+
- **パラメータ数**: 最大4個
|
|
323
|
+
- **行数はコード行数であり物理行数ではない**: `max-lines` / `max-lines-per-function` は `skipBlankLines` と `skipComments` を有効にして動くため、空行とコメントは数えない。`wc -l` ではなく `pnpm josh lint` の報告で判断する(joshuafolkken/kit#1070)
|
|
324
|
+
|
|
325
|
+
## 🔍 デバッグ用コマンド
|
|
326
|
+
|
|
327
|
+
### 特定ファイルのLintチェック
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
pnpm exec eslint src/path/to/file.ts
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### 自動修正可能なエラーを修正
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
pnpm exec eslint --fix src/path/to/file.ts
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### 型チェックのみ
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
pnpm exec tsc --noEmit
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
## ⚠️ よくある間違いトップ5
|
|
346
|
+
|
|
347
|
+
1. **camelCase使用** → `snake_case`に変更
|
|
348
|
+
2. **型定義省略** → 明示的な型定義を追加
|
|
349
|
+
3. **any使用** → 適切な型を定義
|
|
350
|
+
4. **Lintチェック忘れ** → 必ず`pnpm run lint`実行
|
|
351
|
+
5. **既存ファイル未参照** → 類似機能のファイルを必ず確認
|
|
352
|
+
|
|
353
|
+
### その他のよくある間違い
|
|
354
|
+
|
|
355
|
+
- **過度な抽象化** → 現在の要件に必要な抽象化のみを行う
|
|
356
|
+
- **不要なコメント** → コードで表現できることはコメントにしない
|
|
357
|
+
- **未来の拡張性を考慮** → 現在必要な機能のみを実装する
|
|
358
|
+
- **意図が不明瞭な条件式** → 複雑な条件式や意図が伝わりにくい処理は関数に抽出して関数名で意図を明確にする
|
|
359
|
+
|
|
360
|
+
## 📋 チェックリスト
|
|
361
|
+
|
|
362
|
+
新規作成・リファクタリング時:
|
|
363
|
+
|
|
364
|
+
- [ ] 既存の類似ファイルを参照した
|
|
365
|
+
- [ ] 命名規則(snake_case)を守った
|
|
366
|
+
- [ ] 明示的な型定義を追加した
|
|
367
|
+
- [ ] `any`を使用していない
|
|
368
|
+
- [ ] `pnpm run lint`でエラーがない
|
|
369
|
+
- [ ] `pnpm run check`で型エラーがない
|
|
370
|
+
- [ ] 複雑度制限内に収まっている
|
|
371
|
+
- [ ] コードがシンプルで読みやすいか
|
|
372
|
+
- [ ] 現在の要件に集中しているか(未来の拡張性を考慮していないか)
|
|
373
|
+
- [ ] 過度な抽象化をしていないか
|
|
374
|
+
- [ ] 不要なコメントがないか
|
|
375
|
+
- [ ] 適切にファイル分割されているか
|
|
376
|
+
- [ ] コードの重複(クローン)がないか
|
|
377
|
+
- [ ] 条件式や意図が不明瞭な処理を関数に抽出しているか
|
|
378
|
+
- [ ] 複数の関数を公開する場合は名前空間オブジェクトにまとめてエクスポートしているか(**注意**: 関数のみに適用。定数は個別エクスポートで問題ない)
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
**重要**: このプロジェクトのESLint設定は標準と大きく異なります。必ずこのガイドを参照し、既存ファイルのパターンに従ってコーディングしてください。
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
## 相談と実行を区別する(議論中にファイルを編集しない)
|
|
2
|
+
|
|
3
|
+
ユーザーが「どう進めるべきか」「何をすべきか」「なぜそうなったか」を尋ねたり、目標・願望を述べたりした(「どうすべき?」「how should we…」「なぜ」「理由を知りたい」「〜したい」「〜の方が良い?」)ときは、**分析と推奨のみ**で応答する。ファイル編集・Issue 作成・その他の具体的アクションは取らない。
|
|
4
|
+
|
|
5
|
+
- 具体的アクションを取ってよいのは、明示的な命令(「do it」「書き換えて」「作成して」「implement」)またはワークフローキーワード(`kickoff` / `halfrun` / `fullrun` / `backlogrun`)があるときだけ
|
|
6
|
+
- 曖昧なときは propose-and-wait を既定とする(「これを実行してよいか?」と尋ねる)
|
|
7
|
+
- **目標の表明は「計画の依頼」であって「実行の承認」ではない**
|
|
8
|
+
- このルールは横断ドキュメント(CLAUDE.md「Distinguish consultation from execution」)のカノニカル参照
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
## リポジトリをまたぐ EPIC
|
|
2
|
+
|
|
3
|
+
1 つの要望が kit / app-kit / game-kit / joshuafolkken-com のうち複数にまたがることは珍しくない。EPIC は**他リポジトリの子 Issue を持てる**。
|
|
4
|
+
|
|
5
|
+
### 書き方
|
|
6
|
+
|
|
7
|
+
EPIC 本文のタスクリストに、次のどちらかの形で書く。
|
|
8
|
+
|
|
9
|
+
```md
|
|
10
|
+
## Progress
|
|
11
|
+
|
|
12
|
+
- [ ] #101
|
|
13
|
+
- [ ] joshuafolkken/app-kit#7
|
|
14
|
+
- [ ] https://github.com/joshuafolkken/game-kit/issues/12
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**状態の読み取りにローカルチェックアウトは要らない。** そのリポジトリを指定した REST パス(`gh api repos/<owner>/<repo>/issues/<n>`)で読むため、クローンが必要になるのは実装の段になってからである。
|
|
18
|
+
|
|
19
|
+
**owner の制限は joshuafolkken/kit#869 のものをそのまま継承する。** 現在のリポジトリと owner が異なるリポジトリの子は、いかなる経路でも対象にならない。
|
|
20
|
+
|
|
21
|
+
### 自動クローズ
|
|
22
|
+
|
|
23
|
+
**他リポジトリの子の状態が全て読めた場合に限り**、EPIC は自動でクローズされる。1 件でも読めない子があれば従来どおり据え置かれる。「状態を読めないまま閉じない」という安全側の判断は変わっておらず、読む手段ができただけである。
|
|
24
|
+
|
|
25
|
+
### 別 repo への依存は「公開の完了」までを条件とする
|
|
26
|
+
|
|
27
|
+
**`blocked-by` は相手 Issue が closed になれば解決するが、repo をまたぐ依存ではそれでは早すぎる。** kit の Issue が closed になった時点では npm への公開がまだ終わっていない(マージ → auto-tag → publish が非同期)。その瞬間に app-kit の子を着手可能と判定すると、まだ公開されていないバージョンを取りに行って失敗するか、古いバージョンのまま実装して壊れる。**放置すると「たまに壊れる」という最も診断しにくい形で出る。**
|
|
28
|
+
|
|
29
|
+
- 同一 repo 内の依存 → 相手が closed で解決
|
|
30
|
+
- **別 repo の子への依存 → 相手が closed + その repo が配布するパッケージの新バージョンが npm に出現、で解決**
|
|
31
|
+
|
|
32
|
+
**評価は AND であり、順序が意味を持つ。** 相手が open のあいだは未解決と判定するだけで npm を見に行かない。EPIC 開始時から公開待ちで固まることはなく、「前の子が終わってから、公開されたら着手する」という待ち方になる。
|
|
33
|
+
|
|
34
|
+
**待つ標的は具体的な版であり、「新しいバージョン」ではない。** 消費者が数バージョン遅れている場合、「今より新しい版が出た」を条件にすると目的の機能を含まない古い公開で満たされてしまう。相手 repo の default branch の `package.json` が持つバージョンを標的にする(`gh api` でローカルチェックアウト無しに読める)。**ただし子はもうバージョンを上げない**(joshuafolkken/kit#1486)。版が動くのは `pnpm josh release` が走ったときだけなので、標的は「子がマージされた直後の版」ではなく「その子を含むリリースが打たれた後の版」である。マージ直後の default branch の版は前回リリースのものなので、それを標的にすると待ちが即座に満たされてしまう。
|
|
35
|
+
|
|
36
|
+
**ただし相手 repo が配布物を持たない場合は待たない**(joshuafolkken/kit#1129)。default branch に `package.json` が無い、あるいは `private` を宣言している repo は公開する版そのものが存在しないため、closed な blocker はそこで解決とする。待ち続けると実行上限の 8 時間まで抜けられず、しかも人が編集して解消できるものが無い。
|
|
37
|
+
|
|
38
|
+
**この判定は相手 repo の manifest から読み、レジストリからは読まない。** レジストリの 404 は「公開されたことがない」だけでなく「このトークンからは見えない」(repo 名の変更、private パッケージ、`read:packages` 権限の欠如)も意味するため、それで解決としてしまうと、blocker の版がまだ公開されていないのに消費者側の子が着手してしまう。manifest の 404 にはその曖昧さが無い — その repo の Issue は既に読めているので権限は確認済みであり、無いのはファイルのほうである。読み取り自体の失敗は HTTP ステータスで区別し、従来どおり待つ。
|
|
39
|
+
|
|
40
|
+
公開待ちの判定は `josh propagate` の実装を共有する。二重定義を作らない。
|
|
41
|
+
|
|
42
|
+
### 実行のディスパッチ
|
|
43
|
+
|
|
44
|
+
`josh epic:next` の出力は各候補の**対象リポジトリとローカルチェックアウトのパス**を含む。パスは joshuafolkken/kit#869 の地図から引く。**チェックアウトが無いリポジトリは、勝手に clone せず「ローカルチェックアウト無し」と表示する。**
|
|
45
|
+
|
|
46
|
+
### EPIC を別リポジトリから参照する
|
|
47
|
+
|
|
48
|
+
**クロス repo の EPIC は 1 つの repo にしか存在しない。** app-kit のセッションから kit の EPIC を参照するときは `owner/repo#N` の形で修飾する。
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pnpm josh epic:next joshuafolkken/kit#858 --repo joshuafolkken/app-kit
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**裸の `#N` は自リポジトリの別 Issue に解決される** — 番号が同じだけの、まったく別の Issue である。したがってクロス repo の EPIC には必ず修飾を付ける。`backlogrun joshuafolkken/kit#858 --only` も同じ形。
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
## 配布ドキュメント・設定の変更は kit に上流化する
|
|
2
|
+
|
|
3
|
+
`CLAUDE.md` および kit が配布する他のドキュメント/設定は、kit から単一ソースで配布される。
|
|
4
|
+
|
|
5
|
+
- **消費者リポジトリ(app-kit / game-kit)ではこれらをローカル編集しない**: `josh sync` が編集を上書きするうえ、変更は本来上流(kit)に属する。ドキュメント/設定を編集する前に、それが配布物かどうかを確認し、配布物なら kit 側に変更を提案(Issue/PR)する
|
|
6
|
+
- **kit リポジトリ自身ではあなたが配布元**なので、ここでは編集してよい。編集先は `CLAUDE.md` 1 本である(次節)
|
|
7
|
+
- このルールは横断ドキュメント(CLAUDE.md「Route distributed-doc / config changes upstream to kit」)のカノニカル参照
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
## 恒久ルールは MEMORY ではなくプロンプト/ドキュメントに書く
|
|
2
|
+
|
|
3
|
+
今後のセッションでも守るべき恒久的な振る舞いのルールに気付いたときは、**kit が配布するプロンプト/ドキュメント**(`CLAUDE.md` / `prompts/*`)への変更として記述する。プロジェクト単位の自動 MEMORY(例: `~/.claude/projects/<repo-slug>/memory/`)への保存で済ませてはならない。
|
|
4
|
+
|
|
5
|
+
なぜプロンプト/ドキュメントが正なのか:
|
|
6
|
+
|
|
7
|
+
- **共有される**: バージョン管理下にありレビュー可能。PR で意図と経緯が残る
|
|
8
|
+
- **可搬**: `josh sync` で全消費者リポジトリに配布され、別の PC・別のリポジトリ・別の AI ツール(Claude / Gemini / Cursor)にも届く
|
|
9
|
+
- **監査できる**: いつ・なぜそのルールが入ったかを `git log` で追える
|
|
10
|
+
|
|
11
|
+
自動 MEMORY の性質と使いどころ:
|
|
12
|
+
|
|
13
|
+
- MEMORY は **1 台のマシン × 1 つのリポジトリ**にスコープされたローカルストアで、コミットされない。他の PC・他のリポジトリ・他の AI ツールからは見えない
|
|
14
|
+
- したがって **MEMORY への保存は最小限に留める**。用途は「本質的にローカルで共有しようがない文脈」だけ(マシン固有のパス、個人の環境の癖など)
|
|
15
|
+
- どこでも適用されるべきルールの唯一の置き場所を MEMORY にしてはならない
|
|
16
|
+
|
|
17
|
+
運用:
|
|
18
|
+
|
|
19
|
+
1. 恒久ルールに気付いたら、まず「これは kit のドキュメント/プロンプトに書くべきか?」を判定する。共有価値があるなら答えは常に yes
|
|
20
|
+
2. 現在のターンがドキュメント変更を承認していない(相談中など)場合は、**MEMORY に黙って保存せず、プロンプト/ドキュメント変更を提案する**(→「相談と実行を区別する」「配布ドキュメント・設定の変更は kit に上流化する」)
|
|
21
|
+
3. 消費者リポジトリで気付いた場合は、ローカル編集ではなく kit 側へ Issue/PR として上流化する
|
|
22
|
+
4. 既に MEMORY にあるルールが実は共有すべきものだと分かったときは、プロンプト/ドキュメントへ移し、MEMORY 側の重複エントリは削除する
|
|
23
|
+
|
|
24
|
+
- このルールは横断ドキュメント(CLAUDE.md「Durable rules belong in prompts/docs, not local MEMORY」)のカノニカル参照
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
## `josh epic:audit` — 子 Issue 群を横断して矛盾を検出する
|
|
2
|
+
|
|
3
|
+
`pnpm josh epic:check` は epic **1 件の形式**を検査するが、**子 Issue 群を横断した整合性**は誰も検査していなかった。joshuafolkken/kit#858 の子を人手で監査したところ、実装を始めれば必ず詰まる矛盾が 2 件見つかり、その間ずっと `epic:check` は 4 要件すべて通過と報告していた。
|
|
4
|
+
|
|
5
|
+
- **循環依存** — #863 の本文が「#864 の発見結果を使う」と書き、#864 の本文が「公開の判定は #863 と同一実装を共有する」と書いていた。どちらも `blocked-by` は空で、epic 本文は両方を「独立」と宣言していた
|
|
6
|
+
- **順序矛盾** — #860 の受け入れ条件が #863 / #864 の成果物を要求していたが、依存グラフ上 #860 はその 2 件より先に走る
|
|
7
|
+
|
|
8
|
+
人が「バグを探して」と指示して初めて見つかる状態では、無人実行の前提が成り立たない。
|
|
9
|
+
|
|
10
|
+
### 検査項目
|
|
11
|
+
|
|
12
|
+
グラフそのものの性質(循環依存、本文の宣言と `blocked-by` の食い違い)は `josh epic:next` が着手可否の計算のために既に検出しており、**その判定を利用する。検出を作り直さない。** 本コマンドが新たに担うのは、子 Issue の**本文の中身**を横断して読む 4 つと、そのうち孤立した子の検索が何を読めなかったかを報告する 2 つである。
|
|
13
|
+
|
|
14
|
+
| 検査 | 種別 | 内容 |
|
|
15
|
+
| ------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
16
|
+
| 暗黙の依存 | 警告 | 子 A の本文が同じ epic の子 B を参照しているのに、どちら向きにも依存が宣言されていない |
|
|
17
|
+
| 順序矛盾 | エラー | 子 A の**受け入れ条件**が子 B の成果物を参照しているのに、A が B に依存していない(先に走れる)。ただし A・B がどちらも closed なら警告に降格 |
|
|
18
|
+
| 未解決の参照 | 警告 | 本文が参照する Issue が存在しない、または既にクローズ済み |
|
|
19
|
+
| 孤立した子 | 警告 | epic を親として参照しているのに epic のタスクリストに載っていない Issue |
|
|
20
|
+
| 孤児検索 | エラー | 上記を探すための open issue 一覧そのものが読めなかった(レート制限、認証切れ) |
|
|
21
|
+
| 孤児検索 | 警告 | その検索が backlog の末尾に届く前に打ち切られた(500 件のページ上限、または 50 件の一致上限) |
|
|
22
|
+
|
|
23
|
+
### 警告とエラーを区別する
|
|
24
|
+
|
|
25
|
+
**警告は exit code を左右せず、エラーだけが exit 1 になる。** 暗黙の依存の検査は「参照している」ことしか見ないため、後続の子への前方参照(「この部分は #864 が埋める」)にも当たる。これをエラーにすると正当な設計メモが書けなくなるので、**判断は読み手に委ね、機械は見落としを防ぐ側に徹する**。
|
|
26
|
+
|
|
27
|
+
一方、受け入れ条件が後から作られるものを要求している状態は誰がどう決めても満たせないため、エラーとする。
|
|
28
|
+
|
|
29
|
+
### 両端が closed の順序矛盾は警告に落とす
|
|
30
|
+
|
|
31
|
+
順序矛盾がエラーである根拠は「**先に走れてしまう**」という一点にある。子が 2 件とも closed になった時点でどちらにも実行が残っておらず、その根拠は成立しない。にもかかわらずエラーのままにすると、**過去に一度でも順序を宣言し忘れた EPIC は永久に監査を通らなくなる** — `backlogrun` は epic の最初の子より前に監査を走らせるため、その EPIC は再開のたびに一歩目で止まる。joshuafolkken/kit#908 で実際に起きており、同じ状態で `epic:next` は次の子を問題無く返していた。すなわち**エラーが止める根拠と、実際に実行を阻むかどうかが食い違っていた**(joshuafolkken/kit#1010)。
|
|
32
|
+
|
|
33
|
+
**「報告しない」ではなく「警告に降格」を採る。** 受け入れ条件は本文の一部なので、同じ組は暗黙の依存の検査にも当たっており、順序矛盾がその組を報告している間だけ重複が抑止されている。落とせばその組は 1 行下に `implicit dependency` として現れるだけで、**出力は 1 行も短くならず**、「受け入れ条件に書かれている」という唯一読む価値のある情報だけが失われる。短さという利点が実在しない以上、履歴を残す側を採る。closed かどうかは**確認できた場合にのみ**降格する — `epic_issue.normalize_state` は `CLOSED` 以外(`MERGED` を含む)をすべて `OPEN` に写すため、確認できない状態はエラーのまま残る。
|
|
34
|
+
|
|
35
|
+
### 孤児検索の 2 件は「子の矛盾」ではない
|
|
36
|
+
|
|
37
|
+
孤立した子の検査は open issue を一覧して本文をクライアント側で照合する。**一覧が読めなかった場合、以前はそれが空の結果として届いていた** — レート制限が「孤児ゼロ」という綺麗な監査結果を生み、何も読んでいないことが出力から分からなかった(joshuafolkken/kit#1033)。
|
|
38
|
+
|
|
39
|
+
- **`✖ orphan search: Could not list the open issues…`** — 検査そのものが走っていないので、`epic:audit` は exit 1 になり `backlogrun` は相 0 で止まる。**対応は監査の再実行だけ**で、直すべき矛盾も決めるべき設計判断も無い — 下記の Tier A にも `needs-decision` park にも当たらない。繰り返し失敗するなら `gh auth status` とレート制限の回復を確認する
|
|
40
|
+
- **`⚠ orphan search: The open-issue scan hit its …`** — 検索は走ったが backlog の新しい側だけを見た(500 件のページ上限、または epic に言及する本文 50 件で打ち切り)。監査自体は通るので、行を読んだうえで、より古い位置に孤児が予想される場合だけ人手で確認する
|
|
41
|
+
|
|
42
|
+
### 実行される場所(人が指示しなくても回る)
|
|
43
|
+
|
|
44
|
+
- **`backlogrun` の判断パスの前** — 一括決定の前に矛盾を洗い出す
|
|
45
|
+
- **`backlogrun` が epic 項目を始めるとき** — 矛盾を抱えたまま無人実行を始めない
|
|
46
|
+
- **子 Issue を追加した直後、依存を変更した直後**
|
|
47
|
+
|
|
48
|
+
### 検出した矛盾は Tier A(確認せず直す)
|
|
49
|
+
|
|
50
|
+
依存の付け直しも本文の記述修正も可逆であり、放置すれば必ず実装時に詰まる。**確認を挟む価値がないので、人に尋ねず修正して根拠を Issue に記録する。** 例外は「どちらの設計を採るべきかが決まらない」種類の矛盾で、これに限り該当の子に `needs-decision` を付けて park する。
|
|
51
|
+
|
|
52
|
+
### 波及先の点検(計画段階の手順)
|
|
53
|
+
|
|
54
|
+
機械的検査では捕まらない欠陥として、**新しい概念を導入したのに既存コードの参照箇所が更新されない**というものがある。#858 の監査では 3 件見つかった — `needs-decision` ラベルを導入するのに除外集合への追加担当が無かった、`epicrun` を導入するのに epic 本文が古いコマンドを案内し続ける点の担当が無かった、`in-progress` を付ける処理はあるが外す処理が無かった。
|
|
55
|
+
|
|
56
|
+
したがって計画段階で次を行う。**新しいラベル・コマンド・状態・成果物を導入する子 Issue がある場合、既存コードでその概念を参照している箇所を列挙し、更新の担当がいずれかの子 Issue に割り当てられていることを確認する。** ラベル名は `scripts/git/issue-labels.ts` に単一ソース化されているので、そこを起点に消費者を辿れる。
|