Every loaded SKILL.md and every listed description is paid on every turn of every session, and every delivered message costs its recipient a full turn. scripts/budget.py gains SKILL_WORDS = 600, enforced by test_lock, and test_naming forbids a skill naming its own slash command; 53 descriptions and 10 body lines drop it. The 18 longest skills move details into 31 side files read only in their situation (organize's capacity, succession, peers, offices, relay and lineage; cleanup's docker, worktrees, execute and ask; code-tune, changelog, triage, dream, split and others), so all SKILL.md files shrink from 33866 to 26291 words without dropping a rule; an independent review of HEAD against the new text found no loss in 60 of 64 skills and three weakenings, now restored (WSJF re-estimates after an objective change, cleanup's volume checklist, essence's absolute dates). The kvb-org-organize Peer protocol sends status that asks nothing to the news board, answers nothing that asks nothing, keeps messages terse, and lets light runs admit themselves in the operator's wording; the skills follow it (operator reads the register, relax and wakeup reply through the news, evening collects them there, wsjf asks only for missing estimates, cleanup and triage batch their questions). Skills that explore code ask the codebase-memory-mcp graph first, subagent briefs scale with the stakes and cap their answers, and the skills that need the full register or council tables call show --wide or list --long. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Changelog: why each rule holds
pkgmgr writes one text to the CHANGELOG.md entry, the annotated release tag,
debian/changelog and the RPM %changelog; every rule keeps one of them from
breaking or mangling it.
- HEAD failure: pkgmgr's CI gate runs after the tag, so a workflow that failed on HEAD means pkgmgr would tag a release that never goes stable.
- Plain section labels: pkgmgr creates the tag with
git tag -a -m, whose defaultstripcleanup deletes every line starting with#. A bold-only line fails MD036. - No version heading: pkgmgr adds
## [X.Y.Z] - YYYY-MM-DDitself. - One line per bullet: RPM turns every non-empty line into its own
-entry and Debian indents each line, so a continuation line becomes a separate, broken entry. - 78 characters: lines stay within 80 after Debian's two-space indent
and RPM's two-character
-prefix. - The existing list marker: MD004's default consistent style takes the marker of the first list in the file, and pkgmgr puts the new entry on top, so a marker that differs from the older entries turns every older list into a finding.
- No backticks: pkgmgr rewrites inline code to italic in all four targets, and a fenced block fails its fallback lint.
- The wrapped lint: pkgmgr wraps the message as
# Changelog, blank line,## [X.Y.Z] - date, blank line, message, then runsmarkdownlint-cli2with the target repository's own config; hence the N - 4 line mapping. --no-globs: it keeps the config's own globs from linting the whole tree too.- The whole-file lint: the standalone check cannot see rules that compare the entry with the rest of the file (MD004 consistent, MD024 duplicate headings), but the repository's own markdown lint and pre-push gate do.
- The manual check: it covers what pkgmgr's fallback checks, plus the length limit.
A message that follows every rule:
Fixed:
- Backup: rsync -a stored no xattrs, ACLs or hardlinks; now -aHAX
- Restore: *--empty* no longer aborts on a database with an extension
Upgrade notes:
- First backup re-copies every attribute-carrying volume once in full