[5.0.0] — 2026-07-06
Plugin-native distribution + deterministic hook enforcement + Claude 5. v5 lands the full M1+M2+M3 scope of the skills-only 5.0 plan — this is the complete 5.0 release; there is no skills 5.1 (further MCP/memory work moves to the separate etyb.ai product).
Changed
- M1 (universal core):
skills/etyb/SKILL.mdrewritten to the Agent Skills open-spec subset: 967-char description (spec cap 1,024), 76-line body with the Tier 0-4 table inline — Tier 0 requests need zero additional file reads.core/signature.md,core/response-formats.md,core/scale-calibration.md,core/always-on-protocols.mdconsolidated intocore/session.md; core modules total −40% words. Progress-marker and clarifying-question contradictions resolved (CTO-voice status lines, cap of 3, everywhere). RootAGENTS.mdadded (open standard);CLAUDE.mdreduced to an@AGENTS.mdimport plus Claude-only notes. Whole-repo version5.0.0under the single-version policy. - M2 (agents & hooks): five agent definitions under
agents/(explorer, planner, reviewer, stack-researcher, cartographer;memory: project) with model tiering — light work (explorer's search-and-cite, stack-researcher's fetch-and-distill) pins to the smallest model tier (model: haiku, mirroring the Codex emissions'gpt-5.4-mini); extensive-reasoning work (planner, reviewer, cartographer) inherits the user's session model. Pins only ever go down: the user-selected model is the ceiling, and any harness that can't resolve the field falls back to the session model. Hook scripts rewritten to the stdin-JSON contract (advisorysystemMessagewarnings, 21 tests) and wired via pluginhooks/hooks.json; deterministic adapter generator emits Codex TOMLs, Kiro agent JSONs, and a Cursor plugin skeleton underdist/adapters/. All five hooks verified firing against a real local Claude Code plugin install (seedocs/plan/skills-5.0-plan.mdM2-T4 for the observed transcript). - M3 (remote stacks):
manifest.jsongains a generated 538-pagestacks_pagesarray (scripts/build-manifest.sh); the stack-researcher agent owns the manifest-driven fetch + currency protocol; per-page currency checking with a batch-stamp detector (now hard-fails,CHECK_CURRENCY_STRICT=1); the anthropic-claude stack refreshed to the Claude 5 generation (Sonnet 5 / Opus 4.8 / Haiku 4.5 / Fable-Mythos tier) with per-page verification stamps, spot-checked against live Anthropic docs at release time. All 13 stackSKILL.mddescriptions compressed under the 1,024-char open-spec cap (prose kept, trigger lists trimmed to the strongest signals); the token-budget lint now hard-fails over-cap descriptions.
Removed
scripts/install.sh,scripts/update.sh,scripts/install-codex-runtime.shand their tests — distribution isnpx skills add e-t-y-b/etyb-skills(multi-harness) or the Claude Code plugin (.claude-plugin/plugin.json, nameetyb, added).- The three pre-release role skills (
/etyb-review,/etyb-plan,/etyb-explore) and their Claude fork overlays, withdrawn before tagging./etybis the single trigger surface — the only skill a user (or auto-trigger) ever invokes. The same review/plan/explore work runs through theagents/definitions, dispatched by the orchestrator into sub-agent contexts, so the user's session context stays clean. This also closed a review finding: the fork overlays only existed indist/, so the installed role skills would have run inline — contradicting their own "fresh context" promise. Removing the surface removes the gap.
Fixed
- Docs no longer claim hook enforcement that is not wired —
docs/installation.md's Enforcement Status note now accurately describes the advisory (non-blocking) hooks shipped on the Claude Code plugin path; the old lint check against gitignored.claude/settings.json— which could never pass on a clean clone — replaced with hook-script existence checks. - New
scripts/lint-token-budget.shin CI enforces description caps; all 13 stack descriptions compressed under the spec cap (M3-T5). hooks/session-start-memory.shshipped without the executable bit, which would have made the SessionStart hook fail with "permission denied" on a real plugin install; fixed..claude-plugin/marketplace.json's plugin entry declared a redundantskillscomponent list that conflicted withplugin.json's convention-based auto-discovery, causingclaude plugin installto report the plugin as failed to load; removed..gitignore'sMARKETPLACE.mdpattern (intended only for the repo-root internal doc) was unscoped and silently excludedstacks/vercel/marketplace.mdfrom version control on case-insensitive filesystems; anchored to/MARKETPLACE.mdand recovered the untracked page.- Release-time truth sweep:
CLAUDE.md,AGENTS.md, andREADME.mdstill said hooks and agent definitions "arrive in M2 — do not assume they exist" after M2 shipped them; all three now describe what actually installs. The marketplace plugin description double-counted the roster ("20 specialists + 9 protocols + 6 verticals" — the 20 already included the verticals); corrected to 14. A stale "Pro tier only" line incore/team-registry.md(tiers were removed in v4.0.0) dropped.