Skip to content

vibesubin 0.7.0

Choose a tag to compare

@subinium subinium released this 25 Apr 00:23

TL;DRmutates frontmatter contract on every skill, 5 new validator checks, MAINTENANCE.md becomes the canonical operational policy, language READMEs reorganized under docs/i18n/, CLAUDE.md gitignored.

New — safety contract

  • mutates: [<tokens>] frontmatter on all 11 SKILL.md + umbrella. Tokens drawn from {direct, external}. Empty list [] for the three pure-diagnosis workers and the umbrella. [direct] for the six editable sweep workers. [direct, external] for the two direct-call-only skills (ship-cycle, codex-fix). The umbrella reads this field at sweep launch and refuses to include any worker carrying external; the validator enforces the same contract statically.
  • 5 new validator checks. Frontmatter schema (name, description, mutates, allowed-tools). mutates token validity + category consistency (sweep specialists cannot include external; pure-diagnosis must be []; editable workers must include direct). Per-references/*.md 500-line cap (same cap as SKILL.md — content can no longer hide in references to dodge the cap). /<skill-name> backtick references must resolve to a real skill in the pack. description must be 1–1024 chars; name must match directory.
  • 11 new pytest cases covering each new validator behavior. Total suite: 21 tests, all green.

New — ship-cycle hardening

  • Mutation contract — every external mutation (gh issue create, gh api, gh release create, git tag -a, git push) follows preview → confirm (approve / proceed / yes) → mutate. Created resources carry <!-- ship-cycle:vX.Y.Z --> idempotency markers. Deterministic branch names (<type>/issue-<N>-<slug>) and milestone titles (vX.Y.Z) make re-runs noop.
  • Rollback table — every mutation maps to its inverse gh command (gh issue close, gh api ... state=closed, gh release delete, git push --delete, gh pr close). Published tags and releases are never rewritten — cut a follow-up patch instead.
  • dry-run mode — operator says dry-run at Step 7 (or Step 1.5 override) to skip every Mutate step.

New — per-skill output schema

  • audit-security — secret fingerprint output rule. Findings print file:line + length + first 4 chars (or 7 for known prefixes like sk-, ghp_, xoxb-) + provider guess. Raw secret values are never echoed back into chat logs, PR bodies, or screenshots.
  • fight-repo-rot — Path exclusions section. node_modules/, vendor/, target/, .venv/, dist/, build/, out/, .next/, __pycache__/, schema migrations, test fixtures, snapshot files, // @generated headers, and Storybook stories are excluded from dead-code analysis before confidence tagging.
  • project-conventions — Repo type section. app | library | monorepo | template | docs-only with detection signals. Each repo type maps to a different pinning strategy: app uses exact pin + lockfile; library uses semver range + compatibility matrix; monorepo uses per-package strategy with shared root lockfile.
  • manage-assets — fixed-taxonomy classification field on every finding (artifact | source | media | database | secret-shaped | generated). Replaces ad-hoc prose grouping; umbrella consumes the token directly.
  • refactor-verify — Review-driven fix mode (~103 lines) extracted to references/review-driven-fix.md. Stale-snapshot handling, the four-way triage, and the resolution-report template move to references; SKILL.md keeps a 13-line summary + pointer.
  • vibesubin — Sweep contract enforcement paragraph in Step 2 launch block. Umbrella now reads each worker's frontmatter mutates before adding to the parallel sweep.

Changed — MAINTENANCE.md becomes the policy home

The (now gitignored) CLAUDE.md is no longer the operational source of truth. MAINTENANCE.md absorbs:

  • 🛑 Never do — 9 items (added: never put external in a sweep specialist's mutates).
  • ✅ Always do — 8 items (added: run pytest tests/; declare mutates).
  • 🚀 Release process — 10 steps from finalize CHANGELOG to gh release view.
  • 📋 Change type → file matrix — adapted for docs/i18n/ paths and the validator+pytest verification command.
  • 🔒 Load-bearing invariants — 10-row table with an "Enforced by" column citing validator check numbers.
  • 🎭 Recently decided — 12 entries preserving the v0.3.0–v0.7.0 decision log.

Changed — repo housekeeping

  • Language READMEs moved to docs/i18n/. git mv of README.{ko,ja,zh}.mddocs/i18n/README.{ko,ja,zh}.md. Inter-language links and the root README.md switcher updated. Root file count: 10 → 7.
  • CLAUDE.md gitignored + git rm --cached. Project-wide rules redistributed across MAINTENANCE.md (operational), docs/PHILOSOPHY.md (invariants), docs/ADDING-A-SKILL.md (skill-authoring mechanics), CONTRIBUTING.md (contribution model). Local maintainer copies — and AI tools auto-loading CLAUDE.md from the working directory — continue to work; the file just isn't shipped to forks. AGENTS.md also gitignored for symmetry. Cross-references in docs/ADDING-A-SKILL.md, ship-cycle/references/issue-body-template.md, ship-cycle/references/release-pipeline.md, and validate_skills.py comments updated to point at MAINTENANCE.md.

Verification

  • python3 scripts/validate_skills.py → OK across 12 skills, every promise resolves, frontmatter mutates contract enforced, every SKILL.md and references file ≤500 lines, manifests synced.
  • pytest tests/ → 21 passed.

Full diff: 28 files changed, +874 / −268.

See CHANGELOG.md for the complete entry.