vibesubin 0.3.1
vibesubin 0.3.1 — operational rules, enforced.
No user-facing skill changes. This is a maintenance bump that turns two previously-social rules into durable guardrails.
What's new
CLAUDE.md at the repo root — the operational rules that apply to every Claude Code session on this repo are now in a single file Claude reads at session start. It encodes the never-do / always-do lists, the full release process (annotated tag + gh release create), a change-type → file matrix for common tasks (add a skill, rename a skill, split a skill, bump a version), the load-bearing invariants table, and a "recently decided" section listing decisions that should not be re-argued: the 10-skill cap, functional-only CHANGELOG style, harsh mode as framing only, no bulk README rewrites, unify-design as intentionally web-dev specific, and release notes living on GitHub only.
scripts/validate_skills.py enforces the 500-line SKILL.md cap. The cap was previously documented in MAINTENANCE.md and docs/PHILOSOPHY.md but nothing checked it. The validator now fails any SKILL.md that exceeds 500 lines with a remediation pointer ("extract tail sections into references/*.md"). Every current skill fits under the cap — the largest is write-for-ai/SKILL.md at 379 lines — so this release is a no-op for existing skills and a guardrail against future regressions. The verbose mode (--verbose) now reports per-file line counts.
Why this matters
The 0.3.0 review revealed that harsh mode had a coverage gap (only 2 of 6 workers implemented it) because the rule existed as documentation, not as a check. Social rules decay without enforcement. This release moves two such rules — operational workflow and the SKILL.md line cap — into places that cannot be silently ignored: a CLAUDE.md that Claude reads every session, and a validator that blocks commits on failure.
The full, functional CHANGELOG is at CHANGELOG.md.