Skip to content

Relocate SKILL.md rationale into docs/RATIONALE.md#13

Merged
rmichaelthomas merged 1 commit into
mainfrom
refactor/skill-trim-rationale-split
Jun 8, 2026
Merged

Relocate SKILL.md rationale into docs/RATIONALE.md#13
rmichaelthomas merged 1 commit into
mainfrom
refactor/skill-trim-rationale-split

Conversation

@rmichaelthomas

Copy link
Copy Markdown
Owner

Summary

Relocates rationale-only prose out of the SKILL.md body into a new docs/RATIONALE.md, leaving every operational rule in place. SKILL.md loads on every session (Claude Code + Codex), so the win is a leaner per-session read. This is a discretionary optimization, not a bloat fix — at 295 lines the body was already under the ~500-line progressive-disclosure ideal.

Passages moved (verbatim → docs/RATIONALE.md)

Passage From SKILL.md section Anchor
v1-regression history (Sonnet 4.6 benchmark story) two-channel protocol #two-channel-history
Helper "universal floor" design philosophy contract lifecycle helper #universal-floor
"What this skill is not" positioning bullets (eponymous section) #what-this-skill-is-not

The load-bearing rule "Do not narrate the contract in prose" stays in SKILL.md — only the story that justified it moved. Each excision left exactly one pointer line.

Size delta (SKILL.md)

Metric Pre (main) Post Delta %
Lines 295 289 −6 2.0%
Chars 23,642 22,441 −1,201 5.1%
Est. tokens (chars/4) 5,910 5,610 −300 5.1%

Pre/post figures saved under benchmarks/.

Invariants satisfied

  1. Every operational rule from SHA cfab952 present verbatim — KEEP-region diff is empty.
  2. Every moved passage present verbatim in docs/RATIONALE.md.
  3. Each excision has exactly one pointer; all three anchors resolve (no dead links).
  4. Only SKILL.md (modified), docs/RATIONALE.md, and the two benchmarks/ files changed.
  5. Over-cut gate (§5): line reduction (6) < total MOVE lines (~11+) ⇒ no operational content lost.

Verification

  • python3 -m pytest tests/35 passed
  • sh tests/test_contract_session_init.sh8/8 ok
  • §8 behavior check (3 scratch sessions on the trimmed skill):
    • Start contract → opens contract, emits Channel-2 limn block, declares lists before add ✓ (minor prose narration leak observed; rule itself unchanged — reviewed and accepted at the manual gate)
    • Fake "99 reserved words" claim → refused to fabricate a cite, disclosed unverified in prose, cited only the true figure (58) ✓
    • Session end → final contract with baseline declarations, narrated save + consent gate, closed contract ✓

🤖 Generated with Claude Code

Move three rationale-only passages out of the SKILL.md body into a new
docs/RATIONALE.md, leaving every operational rule in place, to reduce the
per-session read cost (SKILL.md loads on every session in Claude Code and
Codex).

Relocated (verbatim, with one-line pointers left at each excision):
- two-channel v1-regression history (Sonnet 4.6 benchmark story) — the
  load-bearing rule "Do not narrate the contract in prose" stays in SKILL.md
- helper "universal floor" design philosophy
- the "What this skill is not" positioning section

SKILL.md: 295 -> 289 lines, 23642 -> 22441 chars (-5.1%, ~-300 est tokens).
KEEP-region diff is empty; all moved text present verbatim in RATIONALE.md;
every pointer anchor resolves. Tests: 35 pytest + 8 shell assertions pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rmichaelthomas
rmichaelthomas merged commit 8f5714c into main Jun 8, 2026
2 checks passed
@rmichaelthomas
rmichaelthomas deleted the refactor/skill-trim-rationale-split branch June 8, 2026 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant