@jakkrichm/create-nexus-devflow 2.0.12 → 2.0.14
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/dist/bin/create-nexus-devflow.d.ts +2 -0
- package/dist/bin/create-nexus-devflow.js +233 -0
- package/dist/bin/create-nexus-devflow.js.map +1 -0
- package/dist/lib/starter-templates.d.ts +6 -0
- package/dist/lib/starter-templates.js +8 -0
- package/dist/lib/starter-templates.js.map +1 -0
- package/dist/lib/update.d.ts +68 -0
- package/dist/lib/update.js +325 -0
- package/dist/lib/update.js.map +1 -0
- package/dist/scripts/clean-template.d.ts +1 -0
- package/dist/scripts/clean-template.js +14 -0
- package/dist/scripts/clean-template.js.map +1 -0
- package/dist/scripts/prepare-template.d.ts +1 -0
- package/dist/scripts/prepare-template.js +89 -0
- package/dist/scripts/prepare-template.js.map +1 -0
- package/package.json +11 -9
- package/template/.agents/skills/00-discover/SKILL.md +2 -0
- package/template/.agents/skills/60-report/SKILL.md +21 -75
- package/template/.agents/skills/70-release/SKILL.md +7 -4
- package/template/.agents/skills/check/SKILL.md +68 -0
- package/template/.agents/skills/ci/SKILL.md +25 -78
- package/template/.agents/skills/commit/SKILL.md +39 -43
- package/template/.agents/skills/complete/SKILL.md +73 -0
- package/template/.agents/skills/debug/SKILL.md +43 -104
- package/template/.agents/skills/deploy/SKILL.md +37 -65
- package/template/.agents/skills/devflow/SKILL.md +89 -80
- package/template/.agents/skills/idea/SKILL.md +57 -0
- package/template/.agents/skills/implement/SKILL.md +64 -0
- package/template/.agents/skills/insight/SKILL.md +27 -116
- package/template/.agents/skills/overview/SKILL.md +114 -0
- package/template/.agents/skills/preview/SKILL.md +24 -103
- package/template/.agents/skills/report-html/SKILL.md +45 -0
- package/template/.agents/skills/review/SKILL.md +53 -37
- package/template/.agents/skills/rollback/SKILL.md +1 -0
- package/template/.agents/skills/security-review/SKILL.md +44 -147
- package/template/.agents/skills/simplify/SKILL.md +48 -57
- package/template/.agents/skills/spec/SKILL.md +105 -0
- package/template/.agents/skills/test/SKILL.md +63 -51
- package/template/.claude/skills/00-discover/SKILL.md +2 -0
- package/template/.claude/skills/60-report/SKILL.md +21 -75
- package/template/.claude/skills/70-release/SKILL.md +7 -4
- package/template/.claude/skills/check/SKILL.md +68 -0
- package/template/.claude/skills/ci/SKILL.md +25 -78
- package/template/.claude/skills/commit/SKILL.md +39 -43
- package/template/.claude/skills/complete/SKILL.md +73 -0
- package/template/.claude/skills/debug/SKILL.md +43 -104
- package/template/.claude/skills/deploy/SKILL.md +37 -65
- package/template/.claude/skills/devflow/SKILL.md +89 -80
- package/template/.claude/skills/idea/SKILL.md +57 -0
- package/template/.claude/skills/implement/SKILL.md +64 -0
- package/template/.claude/skills/insight/SKILL.md +27 -116
- package/template/.claude/skills/overview/SKILL.md +114 -0
- package/template/.claude/skills/preview/SKILL.md +24 -103
- package/template/.claude/skills/report-html/SKILL.md +45 -0
- package/template/.claude/skills/review/SKILL.md +53 -37
- package/template/.claude/skills/rollback/SKILL.md +1 -0
- package/template/.claude/skills/security-review/SKILL.md +44 -147
- package/template/.claude/skills/simplify/SKILL.md +48 -57
- package/template/.claude/skills/spec/SKILL.md +105 -0
- package/template/.claude/skills/test/SKILL.md +63 -51
- package/template/AGENTS.md +71 -74
- package/template/devflow/context/ai-interaction.md +1 -0
- package/template/devflow/context/coding-standards.md +31 -18
- package/template/devflow/context/current-stage.md +3 -3
- package/template/devflow/context/findings.md +10 -6
- package/template/devflow/context/project-overview.md +29 -11
- package/template/devflow/discoveries/.gitkeep +0 -0
- package/template/devflow/history/HISTORY.md +31 -0
- package/template/devflow/ideas.md +15 -0
- package/template/devflow/reference/running-id-contract.md +1 -1
- package/template/devflow/runs/.gitkeep +0 -0
- package/bin/create-nexus-devflow.js +0 -287
- package/lib/starter-templates.js +0 -111
- package/lib/update.js +0 -379
- package/template/.agents/skills/9arm-skills/README.md +0 -51
- package/template/.agents/skills/9arm-skills/debug-mantra/SKILL.md +0 -86
- package/template/.agents/skills/9arm-skills/management-talk/SKILL.md +0 -79
- package/template/.agents/skills/9arm-skills/post-mortem/SKILL.md +0 -71
- package/template/.agents/skills/9arm-skills/scrutinize/SKILL.md +0 -72
- package/template/.agents/skills/browser-testing-with-devtools/SKILL.md +0 -302
- package/template/.agents/skills/ci-cd-and-automation/SKILL.md +0 -390
- package/template/.agents/skills/code-review-and-quality/SKILL.md +0 -392
- package/template/.agents/skills/code-simplification/SKILL.md +0 -331
- package/template/.agents/skills/debugging-and-error-recovery/SKILL.md +0 -298
- package/template/.agents/skills/deployment-procedures/SKILL.md +0 -241
- package/template/.agents/skills/deprecation-and-migration/SKILL.md +0 -206
- package/template/.agents/skills/diagnosing-bugs/SKILL.md +0 -93
- package/template/.agents/skills/git-workflow-and-versioning/SKILL.md +0 -300
- package/template/.agents/skills/human-review-decisions/SKILL.md +0 -74
- package/template/.agents/skills/idea-refine/SKILL.md +0 -178
- package/template/.agents/skills/idea-refine/examples.md +0 -238
- package/template/.agents/skills/idea-refine/frameworks.md +0 -99
- package/template/.agents/skills/idea-refine/refinement-criteria.md +0 -113
- package/template/.agents/skills/idea-refine/scripts/idea-refine.sh +0 -15
- package/template/.agents/skills/incremental-implementation/SKILL.md +0 -248
- package/template/.agents/skills/insight-capture/SKILL.md +0 -84
- package/template/.agents/skills/intelligent-routing/SKILL.md +0 -176
- package/template/.agents/skills/md2html/SKILL.md +0 -154
- package/template/.agents/skills/md2html/components.md +0 -505
- package/template/.agents/skills/md2html/template.html +0 -1152
- package/template/.agents/skills/planning-and-task-breakdown/SKILL.md +0 -239
- package/template/.agents/skills/pr-review/SKILL.md +0 -143
- package/template/.agents/skills/pr-review-analysis/SKILL.md +0 -89
- package/template/.agents/skills/preview-local-check/SKILL.md +0 -59
- package/template/.agents/skills/release-git-operations/SKILL.md +0 -97
- package/template/.agents/skills/review-followup-routing/SKILL.md +0 -98
- package/template/.agents/skills/security-and-hardening/SKILL.md +0 -349
- package/template/.agents/skills/security-and-hardening/security-checklist.md +0 -134
- package/template/.agents/skills/shipping-and-launch/SKILL.md +0 -311
- package/template/.agents/skills/silent-failure-audit/SKILL.md +0 -73
- package/template/.agents/skills/spec-orchestration/SKILL.md +0 -91
- package/template/.agents/skills/specialist-agent-routing/SKILL.md +0 -107
- package/template/.agents/skills/test-driven-development/SKILL.md +0 -422
- package/template/.agents/skills/test-driven-development/testing-patterns.md +0 -236
- package/template/.agents/skills/test-execution-and-coverage/SKILL.md +0 -56
- package/template/.agents/skills/using-agent-skills/SKILL.md +0 -171
- package/template/.agents/skills/verification-orchestration/SKILL.md +0 -68
- package/template/.agents/skills/vulnerability-scanner/SKILL.md +0 -276
- package/template/.agents/skills/vulnerability-scanner/checklists.md +0 -121
- package/template/.agents/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
- package/template/.agents/skills/wiki/SKILL.md +0 -149
- package/template/.agents/skills/workflow-documentation-sync/SKILL.md +0 -87
- package/template/.claude/skills/9arm-skills/README.md +0 -51
- package/template/.claude/skills/9arm-skills/debug-mantra/SKILL.md +0 -86
- package/template/.claude/skills/9arm-skills/management-talk/SKILL.md +0 -79
- package/template/.claude/skills/9arm-skills/post-mortem/SKILL.md +0 -71
- package/template/.claude/skills/9arm-skills/scrutinize/SKILL.md +0 -72
- package/template/.claude/skills/browser-testing-with-devtools/SKILL.md +0 -302
- package/template/.claude/skills/ci-cd-and-automation/SKILL.md +0 -390
- package/template/.claude/skills/code-review-and-quality/SKILL.md +0 -392
- package/template/.claude/skills/code-simplification/SKILL.md +0 -331
- package/template/.claude/skills/debugging-and-error-recovery/SKILL.md +0 -298
- package/template/.claude/skills/deployment-procedures/SKILL.md +0 -241
- package/template/.claude/skills/deprecation-and-migration/SKILL.md +0 -206
- package/template/.claude/skills/diagnosing-bugs/SKILL.md +0 -93
- package/template/.claude/skills/git-workflow-and-versioning/SKILL.md +0 -300
- package/template/.claude/skills/human-review-decisions/SKILL.md +0 -74
- package/template/.claude/skills/idea-refine/SKILL.md +0 -178
- package/template/.claude/skills/idea-refine/examples.md +0 -238
- package/template/.claude/skills/idea-refine/frameworks.md +0 -99
- package/template/.claude/skills/idea-refine/refinement-criteria.md +0 -113
- package/template/.claude/skills/idea-refine/scripts/idea-refine.sh +0 -15
- package/template/.claude/skills/incremental-implementation/SKILL.md +0 -248
- package/template/.claude/skills/insight-capture/SKILL.md +0 -84
- package/template/.claude/skills/intelligent-routing/SKILL.md +0 -176
- package/template/.claude/skills/md2html/SKILL.md +0 -154
- package/template/.claude/skills/md2html/components.md +0 -505
- package/template/.claude/skills/md2html/template.html +0 -1152
- package/template/.claude/skills/planning-and-task-breakdown/SKILL.md +0 -239
- package/template/.claude/skills/pr-review/SKILL.md +0 -143
- package/template/.claude/skills/pr-review-analysis/SKILL.md +0 -89
- package/template/.claude/skills/preview-local-check/SKILL.md +0 -59
- package/template/.claude/skills/release-git-operations/SKILL.md +0 -97
- package/template/.claude/skills/review-followup-routing/SKILL.md +0 -98
- package/template/.claude/skills/security-and-hardening/SKILL.md +0 -349
- package/template/.claude/skills/security-and-hardening/security-checklist.md +0 -134
- package/template/.claude/skills/shipping-and-launch/SKILL.md +0 -311
- package/template/.claude/skills/silent-failure-audit/SKILL.md +0 -73
- package/template/.claude/skills/spec-orchestration/SKILL.md +0 -91
- package/template/.claude/skills/specialist-agent-routing/SKILL.md +0 -107
- package/template/.claude/skills/test-driven-development/SKILL.md +0 -422
- package/template/.claude/skills/test-driven-development/testing-patterns.md +0 -236
- package/template/.claude/skills/test-execution-and-coverage/SKILL.md +0 -56
- package/template/.claude/skills/using-agent-skills/SKILL.md +0 -171
- package/template/.claude/skills/verification-orchestration/SKILL.md +0 -68
- package/template/.claude/skills/vulnerability-scanner/SKILL.md +0 -276
- package/template/.claude/skills/vulnerability-scanner/checklists.md +0 -121
- package/template/.claude/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
- package/template/.claude/skills/wiki/SKILL.md +0 -149
- package/template/.claude/skills/workflow-documentation-sync/SKILL.md +0 -87
- package/template/.nexus/nexus-devflow.json +0 -44
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../lib/update.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,WAAW,qBAAqB,CAAC;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GAA6B;IACrD,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;IACxD,KAAK,EAAE,CAAC,gBAAgB,CAAC;IACzB,WAAW,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IACnD,MAAM,EAAE,CAAC,gBAAgB,CAAC;CAC3B,CAAC;AAgDF,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACxD,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,QAA0B,EAC1B,aAAwC;IAExC,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,KAAK,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChF,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,EAAE,CAAC;QACF,YAAY,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,OAAO;QACL,aAAa,EAAE,uBAAuB;QACtC,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,iCAAiC;QAC1C,OAAO;QACP,UAAU,EAAE,2CAA2C;QACvD,gBAAgB,EAAE,IAAI;QACtB,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE;YACT,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,iBAAiB;YAC7B,YAAY,EAAE,mBAAmB;YACjC,OAAO,EAAE,cAAc;YACvB,cAAc,EAAE,qBAAqB;SACtC;QACD,SAAS,EAAE;YACT,cAAc,EAAE;gBACd,aAAa;gBACb,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,cAAc;gBACd,WAAW;gBACX,WAAW;gBACX,YAAY;aACb;YACD,iBAAiB,EAAE;gBACjB,MAAM;gBACN,YAAY;gBACZ,UAAU;gBACV,OAAO;gBACP,KAAK;gBACL,cAAc;gBACd,iBAAiB;gBACjB,mBAAmB;gBACnB,MAAM;aACP;SACF;QACD,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,YAAoB,EACpB,QAAkB;IAElB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,MAAM,KAAK,GAAG;QACZ,GAAG,aAAa,CAAC,MAAM;QACvB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KAC/D,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,MAAM,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,UAAkB,EAClB,YAAoB,EACpB,KAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,oDAAoD,YAAY,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEvD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,kBAAkB,CACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAC5B,GAAG,YAAY,IAAI,KAAK,EAAE,EAC1B,KAAK,CACN,CAAC;YACJ,CAAC;YAED,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gDAAgD,YAAY,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE;YACtB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,MAAM,QAAQ,CAAC,UAAU,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB;IAClD,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAa,CAAC;QAE7C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,uBAAuB,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,SAAS,EACT,YAAY,EACZ,OAAO,EACP,OAAO,EAMR;IACC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC7B,GAAG,iBAAiB;QACpB,GAAG,CAAC,gBAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,2BAA2B,CACrD,YAAY,EACZ,CAAC,GAAG,cAAc,CAAC,CACpB,CAAC;IACF,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,YAAY,GAAe,EAAE,CAAC;IAEpC,KAAK,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,aAAa,EAAE,CAAC;QACzD,MAAM,sBAAsB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEvD,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC;gBAChB,YAAY;gBACZ,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,iCAAiC;aAC1C,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC;gBAChB,YAAY;gBACZ,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,+CAA+C;aACxD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,WAAW,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,YAAY,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;YACjD,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,YAAY,CAAC,IAAI,CAAC;YAChB,YAAY;YACZ,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,YAAY;gBAClB,CAAC,CAAC,+CAA+C;gBACjD,CAAC,CAAC,mDAAmD;SACxD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,gBAAgB,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CACvD,gBAAgB,CAAC,YAAY,CAC9B,EAAE,CAAC;YACF,IAAI,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YAED,MAAM,sBAAsB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAEvD,IAAI,WAAW,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACvD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;gBACjC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,YAAY;QACZ,gBAAgB;QAChB,YAAY;QACZ,cAAc,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE;QAC1C,aAAa;QACb,UAAU;QACV,UAAU;QACV,YAAY;QACZ,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAwB,EACxB,EAAE,gBAAgB,GAAG,KAAK,KAAqC,EAAE;IAEjE,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,CAAC,YAAY,CAAC,MAAM,+DAA+D,CACxH,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG;QACnB,GAAG,QAAQ,CAAC,UAAU;QACtB,GAAG,QAAQ,CAAC,UAAU;QACtB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACpF,CAAC;IAEF,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,YAAY,IAAI,YAAY,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5E,YAAY,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9B,YAAY,EAAE,CAAC;YACf,MAAM,2BAA2B,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEtE,OAAO;QACL,YAAY;QACZ,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,SAAiB,EAAE,QAAgB;IACnF,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/C,OAAO,SAAS,KAAK,cAAc,IAAI,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1B,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,QAAkB;IAC9E,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,YAAoB,EACpB,UAAkB;IAElB,MAAM,sBAAsB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,GAAG,eAAe,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACvE,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,YAAoB;IAChE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAiB,EAAE,YAAoB;IAClF,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,oBAAoB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM;YACR,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
const packageRoot = path.resolve(__dirname, "..");
|
|
6
|
+
const templateRoot = path.join(packageRoot, "template");
|
|
7
|
+
async function main() {
|
|
8
|
+
await fs.rm(templateRoot, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 });
|
|
9
|
+
}
|
|
10
|
+
main().catch((error) => {
|
|
11
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
12
|
+
process.exit(1);
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=clean-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean-template.js","sourceRoot":"","sources":["../../scripts/clean-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAExD,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
const packageRoot = path.resolve(__dirname, "..");
|
|
6
|
+
const repoRoot = path.resolve(packageRoot, "..", "..");
|
|
7
|
+
const templateRoot = path.join(packageRoot, "template");
|
|
8
|
+
const entries = [
|
|
9
|
+
"AGENTS.md",
|
|
10
|
+
"CLAUDE.md",
|
|
11
|
+
".agents",
|
|
12
|
+
".claude",
|
|
13
|
+
"devflow",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
];
|
|
16
|
+
async function copyEntry(entry) {
|
|
17
|
+
const source = path.join(repoRoot, entry);
|
|
18
|
+
const target = path.join(templateRoot, entry);
|
|
19
|
+
try {
|
|
20
|
+
await fs.cp(source, target, {
|
|
21
|
+
recursive: true,
|
|
22
|
+
filter: (src) => {
|
|
23
|
+
const normalized = path.relative(repoRoot, src).replace(/\\/g, "/");
|
|
24
|
+
if (normalized.startsWith("devflow/runs/") &&
|
|
25
|
+
!normalized.endsWith(".gitkeep") &&
|
|
26
|
+
!normalized.endsWith("README.md")) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
if (normalized.startsWith("devflow/discoveries/") &&
|
|
30
|
+
!normalized.endsWith(".gitkeep") &&
|
|
31
|
+
!normalized.endsWith("README.md")) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (normalized.includes(".agents/skills/sync-upstream") ||
|
|
35
|
+
normalized.includes(".claude/skills/sync-upstream")) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
if (err.code !== "ENOENT") {
|
|
44
|
+
throw err;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async function ensureEmptyDirectories() {
|
|
49
|
+
const runsDir = path.join(templateRoot, "devflow", "runs");
|
|
50
|
+
const discDir = path.join(templateRoot, "devflow", "discoveries");
|
|
51
|
+
await fs.mkdir(runsDir, { recursive: true });
|
|
52
|
+
await fs.mkdir(discDir, { recursive: true });
|
|
53
|
+
await fs.writeFile(path.join(runsDir, ".gitkeep"), "", "utf8");
|
|
54
|
+
await fs.writeFile(path.join(discDir, ".gitkeep"), "", "utf8");
|
|
55
|
+
}
|
|
56
|
+
async function sanitizeAgentsEntryFile(filePath) {
|
|
57
|
+
try {
|
|
58
|
+
let content = await fs.readFile(filePath, "utf8");
|
|
59
|
+
const maintainerCommandsRegex = /## Verification & Commands[\s\S]*$/;
|
|
60
|
+
const starterCommands = `## Commands
|
|
61
|
+
|
|
62
|
+
- Dev Server: \`npm run dev\`
|
|
63
|
+
- Build: \`npm run build\`
|
|
64
|
+
- Test: \`npm test\`
|
|
65
|
+
- Verify: \`npm run check\` (Run \`/onboard\` to auto-configure)
|
|
66
|
+
`;
|
|
67
|
+
content = content.replace(maintainerCommandsRegex, starterCommands);
|
|
68
|
+
await fs.writeFile(filePath, content, "utf8");
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
if (error.code !== "ENOENT") {
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async function main() {
|
|
77
|
+
await fs.rm(templateRoot, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 });
|
|
78
|
+
await fs.mkdir(templateRoot, { recursive: true });
|
|
79
|
+
for (const entry of entries) {
|
|
80
|
+
await copyEntry(entry);
|
|
81
|
+
}
|
|
82
|
+
await ensureEmptyDirectories();
|
|
83
|
+
await sanitizeAgentsEntryFile(path.join(templateRoot, "AGENTS.md"));
|
|
84
|
+
}
|
|
85
|
+
main().catch((error) => {
|
|
86
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
87
|
+
process.exit(1);
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=prepare-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-template.js","sourceRoot":"","sources":["../../scripts/prepare-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAExD,MAAM,OAAO,GAAG;IACd,WAAW;IACX,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,KAAK,UAAU,SAAS,CAAC,KAAa;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE;YAC1B,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;gBACd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACpE,IACE,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC;oBACtC,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EACjC,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IACE,UAAU,CAAC,UAAU,CAAC,sBAAsB,CAAC;oBAC7C,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EACjC,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IACE,UAAU,CAAC,QAAQ,CAAC,8BAA8B,CAAC;oBACnD,UAAU,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EACnD,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAElE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,QAAgB;IACrD,IAAI,CAAC;QACH,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAElD,MAAM,uBAAuB,GAAG,oCAAoC,CAAC;QACrE,MAAM,eAAe,GAAG;;;;;;CAM3B,CAAC;QACE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC;QAEpE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5F,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,sBAAsB,EAAE,CAAC;IAC/B,MAAM,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jakkrichm/create-nexus-devflow",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.14",
|
|
4
4
|
"description": "Installer package for Nexus-DevFlow agentic workflow layer.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Jakkrich",
|
|
@@ -25,20 +25,22 @@
|
|
|
25
25
|
"workflow",
|
|
26
26
|
"scaffold"
|
|
27
27
|
],
|
|
28
|
+
"type": "module",
|
|
28
29
|
"bin": {
|
|
29
|
-
"create-nexus-devflow": "bin/create-nexus-devflow.js",
|
|
30
|
-
"nexus-devflow": "bin/create-nexus-devflow.js"
|
|
30
|
+
"create-nexus-devflow": "dist/bin/create-nexus-devflow.js",
|
|
31
|
+
"nexus-devflow": "dist/bin/create-nexus-devflow.js"
|
|
31
32
|
},
|
|
32
33
|
"scripts": {
|
|
33
|
-
"
|
|
34
|
+
"build": "tsc -p tsconfig.json",
|
|
35
|
+
"test": "tsx --test test/update.test.ts",
|
|
34
36
|
"check:pack": "npm pack --dry-run",
|
|
35
|
-
"prepare-template": "
|
|
36
|
-
"
|
|
37
|
-
"
|
|
37
|
+
"prepare-template": "tsx scripts/prepare-template.ts",
|
|
38
|
+
"clean-template": "tsx scripts/clean-template.ts",
|
|
39
|
+
"prepack": "npm run build && npm run prepare-template",
|
|
40
|
+
"postpack": "npm run clean-template"
|
|
38
41
|
},
|
|
39
42
|
"files": [
|
|
40
|
-
"
|
|
41
|
-
"lib/",
|
|
43
|
+
"dist/",
|
|
42
44
|
"template/",
|
|
43
45
|
"README.md",
|
|
44
46
|
"LICENSE",
|
|
@@ -14,12 +14,14 @@ Explore a request before delivery commitment. Create or resume a Discovery ID, c
|
|
|
14
14
|
|
|
15
15
|
```text
|
|
16
16
|
00-discover {title or request}
|
|
17
|
+
00-discover IDEA-xxx
|
|
17
18
|
00-discover {discovery-id}
|
|
18
19
|
```
|
|
19
20
|
|
|
20
21
|
Use this when:
|
|
21
22
|
|
|
22
23
|
- a new request needs discussion before the team commits to delivery
|
|
24
|
+
- exploring a pending idea from `devflow/ideas.md` (`00-discover IDEA-xxx`)
|
|
23
25
|
- the best route may be `Brainstorm`, `PRD`, `Research`, or `Debug`
|
|
24
26
|
- supporting findings need to be synthesized into a go/no-go decision
|
|
25
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
description: "[Devflow] Report stage in DevFlow 2.0 - produce standardized markdown
|
|
1
|
+
---
|
|
2
|
+
name: 60-report
|
|
3
|
+
description: "[Devflow] Report stage in DevFlow 2.0 - produce standardized markdown summary report for the completed run."
|
|
4
4
|
argument-hint: "{running-id or workspace path}"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ argument-hint: "{running-id or workspace path}"
|
|
|
8
8
|
|
|
9
9
|
$ARGUMENTS
|
|
10
10
|
|
|
11
|
-
Produce the final human-friendly summary of the full running flow in
|
|
11
|
+
Produce the final human-friendly summary of the full running flow in Markdown (`60-report.md`) so the outcome is easy to communicate every time.
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
@@ -16,19 +16,12 @@ Produce the final human-friendly summary of the full running flow in both Markdo
|
|
|
16
16
|
60-report {running-id or workspace path}
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
Use this when:
|
|
20
|
-
|
|
21
|
-
- verification is complete and the run is ready for a final standardized summary before release
|
|
22
|
-
- the team needs a standardized summary for communication
|
|
23
|
-
- non-technical readers should be able to understand what happened
|
|
24
|
-
|
|
25
19
|
## Markdown-First Contract
|
|
26
20
|
|
|
27
|
-
Write the primary stage
|
|
21
|
+
Write the primary stage artifact to:
|
|
28
22
|
|
|
29
23
|
```text
|
|
30
|
-
devflow/runs/{ID}-{slug}60-report.md
|
|
31
|
-
devflow/runs/{ID}-{slug}60-report.html
|
|
24
|
+
devflow/runs/{ID}-{slug}/60-report.md
|
|
32
25
|
```
|
|
33
26
|
|
|
34
27
|
using:
|
|
@@ -39,6 +32,9 @@ using:
|
|
|
39
32
|
|
|
40
33
|
Before writing `60-report.md`, read `artifact_language` from `report.template.md` and produce the markdown artifact in that language.
|
|
41
34
|
|
|
35
|
+
> [!IMPORTANT]
|
|
36
|
+
> **No Auto-Generated HTML**: ยกเลิกการสร้างไฟล์ `60-report.html` แบบอัตโนมัติในขั้นตอนนี้! ระบบจะสร้างเฉพาะ `60-report.md` เท่านั้น หากผู้ใช้หรือทีมต้องการสร้าง HTML Report สวยงาม ให้เรียกคำสั่งแยกต่างหาก: `/report:html` หรือ `npm run report:html`
|
|
37
|
+
|
|
42
38
|
## Required Section Content
|
|
43
39
|
|
|
44
40
|
Before completing any generated artifact:
|
|
@@ -57,13 +53,13 @@ Before completing any generated artifact:
|
|
|
57
53
|
|
|
58
54
|
Run reporting as an outcome-evidence loop, not as a dump of prior artifacts.
|
|
59
55
|
|
|
60
|
-
- **Intent**: produce a final markdown
|
|
56
|
+
- **Intent**: produce a final markdown summary that lets a reader understand the outcome, evidence, decisions, risks, and next actions without replaying the whole run.
|
|
61
57
|
- **Context**: read all relevant stage artifacts, checklist files, verify impact notes, release notes, validation output, and supporting artifacts that materially explain the result.
|
|
62
|
-
- **Action**: summarize the problem, direction, completed work, validation outcome, checklist progress, final decision, open risks, and next actions
|
|
58
|
+
- **Action**: summarize the problem, direction, completed work, validation outcome, checklist progress, final decision, open risks, and next actions.
|
|
63
59
|
- **Observation**: use concrete evidence such as checklist completion, blocked or skipped items, validation results, release state, impact notes, and unresolved follow-ups.
|
|
64
60
|
- **Adjustment**: if evidence is missing, return to the owning stage; if the report must support continuation, use `handoff`; if the run produced reusable lessons, use `insight-capture` or `Wiki`.
|
|
65
|
-
- **Stop Condition**: stop when `
|
|
66
|
-
- **Handoff**: `
|
|
61
|
+
- **Stop Condition**: stop when `60-report.md` exists, summarizes the outcome accurately, includes checklist and evidence snapshots, and names any remaining follow-up work.
|
|
62
|
+
- **Handoff**: `60-report.md` must close the mainline run or tell the next reader exactly where follow-up work should continue.
|
|
67
63
|
|
|
68
64
|
### 1. Gather Full Run Context
|
|
69
65
|
|
|
@@ -98,19 +94,9 @@ Explain:
|
|
|
98
94
|
|
|
99
95
|
Write:
|
|
100
96
|
|
|
101
|
-
- a readable Markdown report for contributors
|
|
102
|
-
- a consistent HTML report for stakeholder sharing
|
|
103
|
-
|
|
104
|
-
In phase 1, `artifact_language` governs the markdown report text. HTML output is derived directly from `60-report.md` through the shared markdown-to-html renderer.
|
|
97
|
+
- a readable Markdown report (`60-report.md`) for contributors
|
|
105
98
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
```text
|
|
109
|
-
npm run report:html -- <workspace-path-or-running-id>
|
|
110
|
-
npm run render:html -- --stage 60-report <workspace-path-or-running-id>
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Keep checklist summaries and follow-up status inside `60-report.md` so they carry through into the rendered HTML.
|
|
99
|
+
Keep checklist summaries and follow-up status inside `60-report.md`.
|
|
114
100
|
|
|
115
101
|
Both outputs should summarize checklist state when checklist artifacts exist, including:
|
|
116
102
|
|
|
@@ -120,27 +106,6 @@ Both outputs should summarize checklist state when checklist artifacts exist, in
|
|
|
120
106
|
- approval status, review blockers, and next allowed command when they still matter
|
|
121
107
|
- remaining follow-up work
|
|
122
108
|
|
|
123
|
-
The HTML should stay visually consistent across runs while preserving the report markdown as the source of truth.
|
|
124
|
-
|
|
125
|
-
### 4. Keep The Audience In Mind
|
|
126
|
-
|
|
127
|
-
Prefer clarity over internal detail.
|
|
128
|
-
|
|
129
|
-
Do not bury the outcome inside implementation trivia. The report should help a reader understand the run without replaying the whole workflow.
|
|
130
|
-
|
|
131
|
-
When checklists exist, use them as the most human-readable operational record of what actually happened.
|
|
132
|
-
Use `handoff` when the report must support continued work, and `insight-capture` when the run produced lessons that should become reusable knowledge.
|
|
133
|
-
|
|
134
|
-
### 5. Manual Review Soft Gate
|
|
135
|
-
|
|
136
|
-
Use the report as the final visibility checkpoint before release.
|
|
137
|
-
If any stage still shows unresolved approval, blockers, or deferred work:
|
|
138
|
-
|
|
139
|
-
- surface that state clearly in `60-report.md`
|
|
140
|
-
- pull the relevant signal forward from checklist approval sections when they exist
|
|
141
|
-
- do not imply the phase is fully closed when review is still open
|
|
142
|
-
- recommend the real next action, even if that means returning to an earlier stage
|
|
143
|
-
|
|
144
109
|
## Output
|
|
145
110
|
|
|
146
111
|
Report:
|
|
@@ -148,37 +113,18 @@ Report:
|
|
|
148
113
|
- what the run accomplished
|
|
149
114
|
- checklist completion status and remaining items
|
|
150
115
|
- important remaining follow-ups
|
|
151
|
-
- where `60-report.md`
|
|
152
|
-
-
|
|
153
|
-
|
|
154
|
-
```text
|
|
155
|
-
npm run report:html -- <workspace-path-or-running-id>
|
|
156
|
-
```
|
|
116
|
+
- where `60-report.md` was written
|
|
117
|
+
- standalone HTML command tip: `/report:html` (if HTML view is desired)
|
|
157
118
|
|
|
158
119
|
## Relationship To DevFlow 2.0
|
|
159
120
|
|
|
160
121
|
- Classification: Mainline workflow
|
|
161
122
|
- Previous state: `50-verify`
|
|
162
123
|
- Next state: `70-release` when the summary is aligned and release can proceed
|
|
163
|
-
- Common companion commands: `Wiki` for durable knowledge capture, `Help` for routing or explanation
|
|
164
|
-
- Support skills: `handoff`, `insight-capture`, and writing skills when final reporting must support continuation or reusable learning
|
|
165
|
-
|
|
166
|
-
## Sources
|
|
167
|
-
|
|
168
|
-
- `AGENTS.md`
|
|
169
|
-
- `docs/workspace-artifacts.md`
|
|
170
|
-
- `.agent/resources/schemas/report.template.md`
|
|
171
|
-
- Related commands: `50-verify`, `70-release`, `Wiki`, `Help`
|
|
124
|
+
- Common companion commands: `/report:html` for standalone HTML dashboard, `Wiki` for durable knowledge capture, `Help` for routing or explanation
|
|
172
125
|
|
|
173
126
|
## Next Workflow Recommendation
|
|
174
127
|
|
|
175
|
-
- **Primary**: `70-release {ID}` after `60-report.md`
|
|
176
|
-
- **
|
|
177
|
-
- **Alternative**: `Wiki` when the completed run should be promoted into durable reusable knowledge before release packaging continues
|
|
178
|
-
- **Additional Alternative**: `handoff` when another session or agent must continue from the completed run.
|
|
179
|
-
|
|
180
|
-
## Nexus Event
|
|
181
|
-
|
|
182
|
-
- Use `Wiki` when the final summary should become durable project or framework knowledge.
|
|
183
|
-
- Use `Help` when approval signals, ownership, or route timing still feel ambiguous.
|
|
184
|
-
- Return to `50-verify` when unresolved evidence, blockers, or review state mean the report should not advance yet.
|
|
128
|
+
- **Primary**: `70-release {ID}` after `60-report.md` reflects the verified state clearly.
|
|
129
|
+
- **Optional Standalone HTML**: `/report:html` (or `npm run report:html -- {ID}`) if an interactive HTML report is desired for stakeholder presentation.
|
|
130
|
+
- **Alternative**: `Wiki` when the completed run should be promoted into durable reusable knowledge before release packaging continues.
|
|
@@ -77,6 +77,8 @@ Before packaging, merging, or releasing:
|
|
|
77
77
|
- **การ Push ไปยัง Remote หรือ Deploy จะต้องขออนุมัติแยกต่างหากอย่างชัดเจน (Merge approval DOES NOT equal Push approval)**
|
|
78
78
|
3. **Archive Resolved Findings**:
|
|
79
79
|
- ย้ายรายการ Findings ที่ปิดแล้ว (`closed`, `accepted`, `invalid`) ไปบันทึกในเอกสาร Release และรีเซ็ต `findings.md` ให้สะอาด
|
|
80
|
+
4. **Append to Master History Ledger**:
|
|
81
|
+
- บันทึก Entry ใหม่ลงใน `devflow/history/HISTORY.md` พร้อมระบุ Running ID, Title, วันที่, Git Commit Hash / Tag, สถานะ (`Released`), และลิงก์ไปยังรายงานสรุป `60-report.md`
|
|
80
82
|
|
|
81
83
|
### 1. Load Verified Context
|
|
82
84
|
|
|
@@ -146,7 +148,7 @@ Report:
|
|
|
146
148
|
- Classification: Mainline workflow
|
|
147
149
|
- Previous state: `60-report`
|
|
148
150
|
- Next state: End of the mainline run when release packaging or handoff is complete
|
|
149
|
-
- Common companion commands: `Commit`, `PR`, `Deploy`, `Changelog`, `Merge`, `Wiki`
|
|
151
|
+
- Common companion commands: `Commit`, `PR`, `Deploy`, `Changelog`, `Merge`, `Wiki`, `overview`
|
|
150
152
|
- Support skills: `resolving-merge-conflicts`, `handoff`, and `setup-pre-commit` when release packaging needs conflict resolution, transfer notes, or local quality gates
|
|
151
153
|
|
|
152
154
|
## Sources
|
|
@@ -154,13 +156,14 @@ Report:
|
|
|
154
156
|
- `AGENTS.md`
|
|
155
157
|
- `docs/workspace-artifacts.md`
|
|
156
158
|
- `.agent/resources/schemas/release.template.md`
|
|
157
|
-
- Related commands: `60-report`, `Commit`, `PR`, `Deploy`, `Changelog`, `Merge`, `Wiki`
|
|
159
|
+
- Related commands: `60-report`, `Commit`, `PR`, `Deploy`, `Changelog`, `Merge`, `Wiki`, `overview`
|
|
158
160
|
|
|
159
161
|
## Next Workflow Recommendation
|
|
160
162
|
|
|
161
|
-
- **Primary**: End of Timeline flow
|
|
163
|
+
- **Primary**: End of Timeline flow (or run `/overview` to sync living project context)
|
|
162
164
|
- **Why**: The report is already complete, and this phase is the final release-facing execution step.
|
|
163
165
|
- **Alternatives**:
|
|
166
|
+
- `overview` - choose this to immediately sync newly shipped capabilities into `devflow/context/project-overview.md`.
|
|
164
167
|
- `60-report` - choose this when the release package diverges from the approved report and the summary must be refreshed first.
|
|
165
168
|
- `50-verify` - choose this when release readiness becomes uncertain.
|
|
166
169
|
- `40-implement` - choose this when additional fixes are needed before release can proceed.
|
|
@@ -168,7 +171,7 @@ Report:
|
|
|
168
171
|
|
|
169
172
|
## Nexus Event
|
|
170
173
|
|
|
171
|
-
- Use `Commit`, `PR`, `Deploy`, `Merge`, or `
|
|
174
|
+
- Use `Commit`, `PR`, `Deploy`, `Merge`, `Changelog`, or `overview` when release execution still needs a concrete lane.
|
|
172
175
|
- Return to `60-report` when release notes, scope, or handoff wording diverge from the approved summary.
|
|
173
176
|
- Return to `50-verify` or `40-implement` when release readiness changes because unresolved issues are discovered.
|
|
174
177
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: check
|
|
3
|
+
description: "[Devflow] Fast-Track Check stage in DevFlow (Blueprint Mode) - perform senior QA review, run multi-lane verification, and record evidence in spec.md."
|
|
4
|
+
argument-hint: "{running-id or workspace path}"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Fast-Track: Check (Blueprint Mode)
|
|
8
|
+
|
|
9
|
+
$ARGUMENTS
|
|
10
|
+
|
|
11
|
+
Quality assurance and multi-lane verification stage in Fast-Track. Validates the implementation against Acceptance Criteria, runs test suites, checks for regressions, and records evidence in the Single Living Spec (`spec.md`).
|
|
12
|
+
|
|
13
|
+
## Invocations & Aliases
|
|
14
|
+
|
|
15
|
+
- `/check`: Run verification on current active run
|
|
16
|
+
- `/check {running-id}`: Run verification on specified running ID
|
|
17
|
+
- `$check`: Codex CLI invocation
|
|
18
|
+
|
|
19
|
+
## Fast-Track Mainline Workflow
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
/spec ──▶ /implement ──▶ /check ──▶ /complete
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Behavior & Contract
|
|
26
|
+
|
|
27
|
+
When invoked:
|
|
28
|
+
|
|
29
|
+
### 1. Load Active Context
|
|
30
|
+
1. Identify active Running ID from `devflow/context/current-stage.md` or argument.
|
|
31
|
+
2. Read `devflow/runs/{RUNNING_ID}/spec.md`.
|
|
32
|
+
3. Locate `## 1. Specification & Scope` (Acceptance Criteria) and `## 3. Implementation Checklist`.
|
|
33
|
+
|
|
34
|
+
### 2. Multi-lane Verification Execution
|
|
35
|
+
Execute the verification gates across all lanes:
|
|
36
|
+
1. **Lane 1 (Type & Syntax Safety)**:
|
|
37
|
+
- Run typecheck and linting (e.g. `npm run typecheck`, `npm run lint`).
|
|
38
|
+
2. **Lane 2 (Test Suites & Coverage)**:
|
|
39
|
+
- Run automated unit and integration tests (e.g. `npm test`).
|
|
40
|
+
3. **Lane 3 (Manual / Scenario Proof)**:
|
|
41
|
+
- Verify specific scenarios against Acceptance Criteria (`AC-1`, `AC-2`).
|
|
42
|
+
- Summarize "Where to go", "What to click/call", and "What to expect".
|
|
43
|
+
|
|
44
|
+
### 3. Update Living Spec (`spec.md`)
|
|
45
|
+
Append or update `## 5. Verification Evidence` in `spec.md` in **Thai (`th`)**:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
## 5. Verification Evidence
|
|
49
|
+
- **Typecheck & Linter**: Passed (0 errors, 0 warnings)
|
|
50
|
+
- **Automated Test Suites**: All tests passed (e.g. 12/12 passed, 0 failed)
|
|
51
|
+
- **Acceptance Criteria Verification**:
|
|
52
|
+
- [x] AC-1: {ผลการตรวจสอบเงื่อนไขที่ 1 ผ่าน 100%}
|
|
53
|
+
- [x] AC-2: {ผลการตรวจสอบเงื่อนไขที่ 2 ผ่าน 100%}
|
|
54
|
+
- **Manual Verification Guide**:
|
|
55
|
+
- *Where to go*: `http://localhost:3000/api/auth`
|
|
56
|
+
- *Action*: Send POST request with test credentials
|
|
57
|
+
- *Expected Result*: Received HTTP 200 with valid JWT token
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 4. Update Workspace Status
|
|
61
|
+
Update `devflow/context/current-stage.md`:
|
|
62
|
+
- `Current Stage`: `check (Fast-Track -> Verification Passed -> Ready for /complete)`
|
|
63
|
+
|
|
64
|
+
### 5. Output Summary & Next Step
|
|
65
|
+
Report to the user:
|
|
66
|
+
- Summary of verification results across all lanes
|
|
67
|
+
- Evidence recorded in `spec.md`
|
|
68
|
+
- **Next Command**: `/complete` (or `/complete {RUNNING_ID}`)
|
|
@@ -1,70 +1,36 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ci
|
|
3
|
-
description: "[Devflow]
|
|
3
|
+
description: "[Devflow] CI/CD pipeline automation and GitHub Actions setup (.github/workflows/verify.yml). Automates quality gates, typechecks, tests, and build checks."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# CI/CD Pipeline Automation & Quality Gates
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
This is the CI/CD and automation master skill for Nexus-DevFlow. It automates quality gates so that no change reaches production without passing static analysis, typechecking, tests, security audits, and builds.
|
|
9
11
|
|
|
10
12
|
```text
|
|
11
|
-
|
|
12
|
-
(project setup) (setup) (same command) (automated checks)
|
|
13
|
+
PR / Push ➔ Lint & Typecheck ➔ Unit & Integration Tests ➔ Build Verification ➔ Security Audit
|
|
13
14
|
```
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- **Verify is the recipe**: Runs the project's real checks (typecheck, tests, build) defined in `AGENTS.md`.
|
|
18
|
-
- **GitHub Actions is the worker**: Executes the same recipe automatically on pull requests and pushes.
|
|
19
|
-
- **Branch Protection / Ruleset is the gate**: Optionally requires the check to pass before merging.
|
|
20
|
-
|
|
21
|
-
This skill configures the workflow file. It **never pushes to remote, changes remote repository rulesets, or publishes releases** without explicit permission.
|
|
22
|
-
|
|
23
|
-
## Input
|
|
24
|
-
|
|
25
|
-
No argument is required. A preferred package manager or branch name can be optionally provided.
|
|
26
|
-
|
|
27
|
-
## Step 1 - Inspect Project Setup (Read-Only)
|
|
28
|
-
|
|
29
|
-
Inspect the repository without modifying files:
|
|
30
|
-
|
|
31
|
-
1. **Commands in `AGENTS.md`**: Look for existing `Verify`, `Test`, `Build`, and `Dev` commands.
|
|
32
|
-
2. **Project Manifests**: `package.json`, `requirements.txt`, `pyproject.toml`, `go.mod`, `Cargo.toml`, etc.
|
|
33
|
-
3. **Lockfiles & Package Manager**: `pnpm-lock.yaml` (pnpm), `package-lock.json` (npm), `yarn.lock` (yarn), `bun.lockb` (bun), `poetry.lock` (poetry), `Cargo.lock` (cargo).
|
|
34
|
-
4. **Runtime Versions**: `.node-version`, `.nvmrc`, `package.json` engines, `.python-version`.
|
|
35
|
-
5. **Existing Workflows**: Inspect `.github/workflows/` to check if a CI workflow already exists.
|
|
36
|
-
6. **Git Default Branch**: Detect `main` or `master`.
|
|
37
|
-
|
|
38
|
-
If a healthy and matching workflow already exists, report that CI is already in place and stop.
|
|
39
|
-
|
|
40
|
-
## Step 2 - Define The Single Verify Command
|
|
41
|
-
|
|
42
|
-
Build one combined Verify command from actual checks that exist in the project, in this standard order:
|
|
43
|
-
|
|
44
|
-
1. **Typecheck** (e.g. `tsc --noEmit`, `mypy`, `pyright`, `go vet`)
|
|
45
|
-
2. **Tests** (e.g. `npm test`, `pytest`, `go test ./...`, `cargo test`) - only if real tests exist
|
|
46
|
-
3. **Build** (e.g. `npm run build`, `cargo build`)
|
|
47
|
-
|
|
48
|
-
For JavaScript/TypeScript projects, ensure a `verify` or `check` script exists in `package.json` (or combine existing scripts: e.g. `npm run check:static && npm test && npm run build`).
|
|
49
|
-
|
|
50
|
-
Record the exact command in the Commands section of `AGENTS.md`:
|
|
16
|
+
---
|
|
51
17
|
|
|
52
|
-
|
|
53
|
-
## Commands
|
|
54
|
-
- Verify: `npm run check` (or detected verify command)
|
|
55
|
-
```
|
|
18
|
+
## 1. Shift-Left Quality Gate Pipeline
|
|
56
19
|
|
|
57
|
-
|
|
20
|
+
1. **Static Analysis & Typecheck**: `tsc --noEmit`, `eslint`, `biome` (Catches syntax & type flaws in seconds).
|
|
21
|
+
2. **Automated Tests**: Unit & Integration tests (`npm test`, `pytest`, `go test`).
|
|
22
|
+
3. **Build Integrity**: `npm run build` (Ensures bundle compiles cleanly without warnings).
|
|
23
|
+
4. **Security Hygiene**: `npm audit --audit-level=high` (Flags vulnerable dependencies).
|
|
58
24
|
|
|
59
|
-
|
|
25
|
+
---
|
|
60
26
|
|
|
61
|
-
|
|
62
|
-
- **Permissions**: Set least privilege `permissions: contents: read`.
|
|
63
|
-
- **Concurrency**: Cancel in-progress runs on the same PR branch.
|
|
64
|
-
- **Lockfile-Safe Install**: Use `npm ci`, `pnpm install --frozen-lockfile`, `yarn install --immutable`, or `cargo --locked`.
|
|
65
|
-
- **Exact Verify Step**: Run the exact Verify command from `AGENTS.md`.
|
|
27
|
+
## 2. GitHub Actions Setup (`.github/workflows/verify.yml`)
|
|
66
28
|
|
|
67
|
-
|
|
29
|
+
When setting up or updating CI:
|
|
30
|
+
- **Trigger**: Pull requests and pushes to `main` / `master`.
|
|
31
|
+
- **Permissions**: Enforce least privilege (`permissions: contents: read`).
|
|
32
|
+
- **Concurrency**: Cancel stale in-progress runs on the same PR.
|
|
33
|
+
- **Deterministic Install**: Use `npm ci` or `--frozen-lockfile`.
|
|
68
34
|
|
|
69
35
|
```yaml
|
|
70
36
|
name: Verify
|
|
@@ -90,7 +56,7 @@ jobs:
|
|
|
90
56
|
- name: Checkout Code
|
|
91
57
|
uses: actions/checkout@v4
|
|
92
58
|
|
|
93
|
-
- name: Setup
|
|
59
|
+
- name: Setup Node
|
|
94
60
|
uses: actions/setup-node@v4
|
|
95
61
|
with:
|
|
96
62
|
node-version: 20
|
|
@@ -103,29 +69,10 @@ jobs:
|
|
|
103
69
|
run: npm run check
|
|
104
70
|
```
|
|
105
71
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
Execute the Verify command locally to confirm that it succeeds on clean code before recommending it:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
npm run check
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
If local verification fails, report the failing check and assist in resolving it before claiming CI readiness.
|
|
115
|
-
|
|
116
|
-
## Step 5 - Summary & Handoff
|
|
117
|
-
|
|
118
|
-
Output a concise summary:
|
|
119
|
-
|
|
120
|
-
- **Verify Command**: Documented command in `AGENTS.md`.
|
|
121
|
-
- **Workflow File**: `.github/workflows/verify.yml` (created/updated).
|
|
122
|
-
- **Trigger Events**: `pull_request` & `push`.
|
|
123
|
-
- **Local Test**: Result of local execution.
|
|
124
|
-
- **Next Steps**: Advise user to commit and push the workflow to activate GitHub Actions.
|
|
72
|
+
---
|
|
125
73
|
|
|
126
|
-
##
|
|
74
|
+
## Relationship To DevFlow 2.0
|
|
127
75
|
|
|
128
|
-
- **
|
|
129
|
-
- **
|
|
130
|
-
- **
|
|
131
|
-
- **No Auto-Push**: Stop at local file creation; do not push to remote automatically.
|
|
76
|
+
- **Classification**: Companion command & Automated testing infrastructure
|
|
77
|
+
- **Mainline integration**: Invoked via `/ci` during `onboard` or `adopt`.
|
|
78
|
+
- **Handoff**: `50-verify`, `70-release`
|