diff --git a/scripts/resolvers/index.ts b/scripts/resolvers/index.ts index de63a468..02b81204 100644 --- a/scripts/resolvers/index.ts +++ b/scripts/resolvers/index.ts @@ -12,7 +12,7 @@ import { generateCommandReference, generateSnapshotFlags, generateBrowseSetup } import { generateDesignMethodology, generateDesignHardRules, generateDesignOutsideVoices, generateDesignReviewLite, generateDesignSketch, generateDesignSetup, generateDesignMockup, generateDesignShotgunLoop } from './design'; import { generateTestBootstrap, generateTestCoverageAuditPlan, generateTestCoverageAuditShip, generateTestCoverageAuditReview } from './testing'; import { generateReviewDashboard, generatePlanFileReviewReport, generateSpecReviewLoop, generateBenefitsFrom, generateCodexSecondOpinion, generateAdversarialStep, generateCodexPlanReview, generatePlanCompletionAuditShip, generatePlanCompletionAuditReview, generatePlanVerificationExec } from './review'; -import { generateSlugEval, generateSlugSetup, generateBaseBranchDetect, generateDeployBootstrap, generateQAMethodology, generateCoAuthorTrailer } from './utility'; +import { generateSlugEval, generateSlugSetup, generateBaseBranchDetect, generateDeployBootstrap, generateQAMethodology, generateCoAuthorTrailer, generateChangelogWorkflow } from './utility'; import { generateInvokeSkill } from './composition'; export const RESOLVERS: Record = { @@ -50,4 +50,5 @@ export const RESOLVERS: Record = { PLAN_VERIFICATION_EXEC: generatePlanVerificationExec, CO_AUTHOR_TRAILER: generateCoAuthorTrailer, INVOKE_SKILL: generateInvokeSkill, + CHANGELOG_WORKFLOW: generateChangelogWorkflow, }; diff --git a/scripts/resolvers/utility.ts b/scripts/resolvers/utility.ts index 48e9c0d8..8cf75cbe 100644 --- a/scripts/resolvers/utility.ts +++ b/scripts/resolvers/utility.ts @@ -372,3 +372,47 @@ export function generateCoAuthorTrailer(ctx: TemplateContext): string { } return 'Co-Authored-By: Claude Opus 4.6 '; } + +export function generateChangelogWorkflow(_ctx: TemplateContext): string { + return `## CHANGELOG (auto-generate) + +1. Read \`CHANGELOG.md\` header to know the format. + +2. **First, enumerate every commit on the branch:** + \`\`\`bash + git log ..HEAD --oneline + \`\`\` + Copy the full list. Count the commits. You will use this as a checklist. + +3. **Read the full diff** to understand what each commit actually changed: + \`\`\`bash + git diff ...HEAD + \`\`\` + +4. **Group commits by theme** before writing anything. Common themes: + - New features / capabilities + - Performance improvements + - Bug fixes + - Dead code removal / cleanup + - Infrastructure / tooling / tests + - Refactoring + +5. **Write the CHANGELOG entry** covering ALL groups: + - If existing CHANGELOG entries on the branch already cover some commits, replace them with one unified entry for the new version + - Categorize changes into applicable sections: + - \`### Added\` — new features + - \`### Changed\` — changes to existing functionality + - \`### Fixed\` — bug fixes + - \`### Removed\` — removed features + - Write concise, descriptive bullet points + - Insert after the file header (line 5), dated today + - Format: \`## [X.Y.Z.W] - YYYY-MM-DD\` + - **Voice:** Lead with what the user can now **do** that they couldn't before. Use plain language, not implementation details. Never mention TODOS.md, internal tracking, or contributor-facing details. + +6. **Cross-check:** Compare your CHANGELOG entry against the commit list from step 2. + Every commit must map to at least one bullet point. If any commit is unrepresented, + add it now. If the branch has N commits spanning K themes, the CHANGELOG must + reflect all K themes. + +**Do NOT ask the user to describe changes.** Infer from the diff and commit history.`; +} diff --git a/ship/SKILL.md b/ship/SKILL.md index de2743f8..f20fd96a 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -1618,7 +1618,7 @@ High-confidence findings (agreed on by multiple sources) should be prioritized f --- -## Step 5: CHANGELOG (auto-generate) +## CHANGELOG (auto-generate) 1. Read `CHANGELOG.md` header to know the format. @@ -1651,6 +1651,7 @@ High-confidence findings (agreed on by multiple sources) should be prioritized f - Write concise, descriptive bullet points - Insert after the file header (line 5), dated today - Format: `## [X.Y.Z.W] - YYYY-MM-DD` + - **Voice:** Lead with what the user can now **do** that they couldn't before. Use plain language, not implementation details. Never mention TODOS.md, internal tracking, or contributor-facing details. 6. **Cross-check:** Compare your CHANGELOG entry against the commit list from step 2. Every commit must map to at least one bullet point. If any commit is unrepresented, diff --git a/ship/SKILL.md.tmpl b/ship/SKILL.md.tmpl index 62842fc5..048f3156 100644 --- a/ship/SKILL.md.tmpl +++ b/ship/SKILL.md.tmpl @@ -335,46 +335,7 @@ For each classified comment: --- -## Step 5: CHANGELOG (auto-generate) - -1. Read `CHANGELOG.md` header to know the format. - -2. **First, enumerate every commit on the branch:** - ```bash - git log ..HEAD --oneline - ``` - Copy the full list. Count the commits. You will use this as a checklist. - -3. **Read the full diff** to understand what each commit actually changed: - ```bash - git diff ...HEAD - ``` - -4. **Group commits by theme** before writing anything. Common themes: - - New features / capabilities - - Performance improvements - - Bug fixes - - Dead code removal / cleanup - - Infrastructure / tooling / tests - - Refactoring - -5. **Write the CHANGELOG entry** covering ALL groups: - - If existing CHANGELOG entries on the branch already cover some commits, replace them with one unified entry for the new version - - Categorize changes into applicable sections: - - `### Added` — new features - - `### Changed` — changes to existing functionality - - `### Fixed` — bug fixes - - `### Removed` — removed features - - Write concise, descriptive bullet points - - Insert after the file header (line 5), dated today - - Format: `## [X.Y.Z.W] - YYYY-MM-DD` - -6. **Cross-check:** Compare your CHANGELOG entry against the commit list from step 2. - Every commit must map to at least one bullet point. If any commit is unrepresented, - add it now. If the branch has N commits spanning K themes, the CHANGELOG must - reflect all K themes. - -**Do NOT ask the user to describe changes.** Infer from the diff and commit history. +{{CHANGELOG_WORKFLOW}} ---