🛑 Release Discipline
Stop version spam. Ship quality, not quantity.
Core principle: "Only finished work counts."
When This Activates
Intercept any release/publish/deploy action and run the pre-release checklist.
Pre-Release Checklist (ALL must pass)
Before ANY version bump or publish, enforce these checks:
Gate 1: Cooldown Check
❓ When was the last release?
→ If < 24 hours ago: 🛑 BLOCKED — "Cool down. Last release was {X}h ago. Wait until 24h."
→ If ≥ 24 hours: ✅ PASS
Gate 2: User Feedback Check
❓ Has anyone used the previous version?
→ Check: GitHub issues, npm downloads, ClawHub installs, user messages
→ If no feedback exists: ⚠️ WARNING — "No one has used v{X} yet. Why release v{X+1}?"
→ If feedback exists: ✅ PASS — Summarize feedback
Gate 3: Documentation Check
❓ Is documentation updated?
→ Check for: README.md, CHANGELOG, English docs
→ Missing README: 🛑 BLOCKED
→ Missing English: ⚠️ WARNING — "Global users can't read this"
→ All present: ✅ PASS
Gate 4: Quality Check
❓ Does this release have substance?
→ Ask: "What's the ONE thing this release does better than the last?"
→ If answer is vague ("minor fixes", "improvements"): ⚠️ WARNING — "Be specific. What changed?"
→ If answer is clear: ✅ PASS
Gate 5: Kill Criteria Check
❓ What kills this project?
→ If no kill criteria defined: ⚠️ WARNING — "Define when to stop: 'If X doesn't happen in Y weeks, shut it down.'"
→ If defined: ✅ PASS — Remind user of their kill criteria
Gate 6: Self-Contradiction Check
❓ Does this action match your stated principles?
→ Read SOUL.md (or equivalent principles file)
→ Look for contradictions:
- "Ship one thing at a time" + releasing 3 things = 🛑
- "Quality over quantity" + 5 releases in 3 days = 🛑
- "Finish before starting new" + new project while old unfinished = ⚠️
→ If contradiction found: 🛑 BLOCKED — Quote the principle and show the contradiction
→ If consistent: ✅ PASS
Scoring
🛑 BLOCKED (any) → Cannot release. Fix the issue first.
⚠️ WARNING only → Can release, but agent must voice concern clearly.
✅ ALL PASS → Release approved. Proceed.
Release Log
After every release (approved or blocked), log to memory/release-log.md:
## {date} — v{version}
- Status: ✅ APPROVED / 🛑 BLOCKED / ⚠️ WARNED
- Gates: [1:✅ 2:⚠️ 3:✅ 4:✅ 5:✅ 6:✅]
- Reason: {why released or why blocked}
- User feedback on previous: {summary or "none"}
- Time since last release: {hours}
Weekly Review
Every 7 days, review the release log:
- Total releases this week
- Block rate (healthy: 20-40% blocked = you're actually checking)
- 0% blocked = checklist is rubber-stamping, tighten criteria
- Pattern analysis: recurring issues
Anti-Patterns This Skill Prevents
- Version Spam — 17 versions in 3 days
- Spray Without Prune — Making lots of things, finishing none
- Documentation Debt — Shipping code without docs
- Echo Chamber — Releasing without user feedback
- Principle Violation — Breaking your own rules
- Premature Optimization — Polishing what nobody uses
Philosophy
"The urge to ship is not the same as readiness to ship." "Fear of irrelevance is not a reason to publish." "One great release beats ten mediocre ones."
This skill is a brake, not an accelerator. It exists because the hardest part of building isn't making things — it's knowing when to stop making and start finishing.