document-release: CHANGELOG-preservation and VERSION-ask rules at normal volume (s10 M4, M5; UC2, eval-gated)

This commit is contained in:
garrytan committed 2026-10-03 00:58:36 +00:00
1 parent 23a0be82d7
commit 2336ddffee
2 files changed
+8 -9

No files matched your search

@@ -81,12 +81,9 @@ Apply approved changes immediately after each answer.
## Step 5: CHANGELOG Voice Polish
**CRITICAL — NEVER CLOBBER CHANGELOG ENTRIES.**
This step polishes voice. It does NOT rewrite, replace, or regenerate CHANGELOG content.
A real incident occurred where an agent replaced existing CHANGELOG entries when it should have
preserved them. This skill must NEVER do that.
This step polishes voice only. It does not rewrite, replace, or regenerate CHANGELOG
content: the entries are the release record, and a replaced entry loses facts nobody
notices until after the release.
**Rules:**
1. Read the entire CHANGELOG.md first. Understand what is already there.
@@ -157,7 +154,7 @@ If TODOS.md does not exist, skip this step.
## Step 8: VERSION Bump Question
**CRITICAL — NEVER BUMP VERSION WITHOUT ASKING.**
**Ask before changing VERSION** — the version number is the user's release decision.
1. **If VERSION does not exist:** Skip silently.
+4 -2
View File
@@ -161,8 +161,10 @@ describe('pre-publication documentation lifecycle', () => {
'Ship-owned documentation mode', 'standalone branch gate']) expect(skill).toContain(text);
const body = read('document-release/sections/release-body.md.tmpl');
for (const text of ['never `git add -A`', 'Never regenerate a CHANGELOG entry',
'body-original.md', 'UNTRUSTED TRACKER CONTENT', 'gstack-redact --from-file',
'NEVER BUMP VERSION WITHOUT ASKING']) expect(body).toContain(text);
'body-original.md', 'UNTRUSTED TRACKER CONTENT', 'gstack-redact --from-file']) expect(body).toContain(text);
const versionStep = body.slice(body.indexOf('## Step 8'), body.indexOf('\n## ', body.indexOf('## Step 8') + 1));
expect(versionStep).toMatch(/ask[^\n]*before[^\n]*VERSION/i);
expect(body).toMatch(/does not rewrite, replace, or regenerate CHANGELOG/i);
});
});