Releases: e-t-y-b/etyb-skills
Release list
v5.0.0
[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.
v4.0.2
[4.0.2] — 2026-05-15
Removed
- etyb-oss-maintainer skill is no longer in this repo at all. v4.0.1 moved it from
.claude/skills/tointernal/to keep it out of the npx skills CLI listing. v4.0.2 takes the next step: the skill is maintainer-personal tooling, not project artifact, and now lives in the maintainer's home directory (~/Utility/SKILLS/ETYB, symlinked to~/.claude/skills/etyb-oss-maintainer). The slash command moved to~/.claude/commands/etyb-oss-maintainer.md. Public clones ofetyb-skillscarry zero trace of it. .gitignoresimplified — the.claude/directory is now ignored wholesale (no exceptions needed for the maintainer skill or its slash command, since both moved out of the repo).
Changed
scripts/maintainer/audit-repo.sh— the maintainer-skill regression check now treats any in-repo trace ofetyb-oss-maintaineras a leak (previously only flagged.claude/skills/). This catches the case where the skill could re-creep back viainternal/or anywhere else.
v4.0.1
[4.0.1] — 2026-05-15
Fixed
- Install no longer surfaces the internal maintainer skill.
npx skills add e-t-y-b/etyb-skillspreviously reported "Found 2 skills" —etybplusetyb-oss-maintainer. The maintainer skill is repo-internal tooling, not for end-user installation, but it lived under.claude/skills/which the agentskills.io / npx skills CLI scans. Moved tointernal/etyb-oss-maintainer/(outside any directory the CLI scans). The/etyb-oss-maintainerslash command and audit script were updated to the new path; the local-only maintainer workflow is unchanged.
v4.0.0
[4.0.0] — 2026-05-15
One brand. One channel. 13 vendor Stacks live in-repo. v4 is the largest release in the project's history — three changes in one:
-
Structural collapse 30 → 1. Where v3 surfaced 30 separate slash commands (one per specialist + protocol + vertical), v4 ships a single coordinated skill (
/etyb) holding all 29 as internal references. The user always talks to/etyb; ETYB silently routes to the right expertise. Every Tier 1-4 response is signed (ETYB · <role-engaged>) and links the public changelog. -
Vendor knowledge lives in-repo under
stacks/<vendor>/. v4 brings ~525 currency-stamped markdown pages — one per product, plus composed per-role views, across 13 vendor Stacks — alongside the slimSKILL.mdtrigger pointer in each Stack folder. When a user's request hits a Stack, ETYB reads the relevant page directly from disk. For third-party agents without the install, the same content is reachable as raw markdown athttps://raw.githubusercontent.com/e-t-y-b/etyb-skills/main/stacks/<vendor>/<page>.md. -
Knowledge-currency framework. Every Stack page carries
last_verified_on,drift_risk, andauthoritative_urlin YAML frontmatter. The drift-check protocol incore/knowledge-currency.mdgoverns the soft path (disclose currency + source) vs. strict path (defer to vendor MCP/skill, or WebFetch the authoritative URL) keyed off the fetched page's metadata. The maintainer-side validatorscripts/maintainer/check-currency.shprobes the local pointer freshness AND the per-pageauthoritative_urlreachability underCHECK_CURRENCY_FETCH=1.
Why this is a major release
- Slash-command pollution gone. v3 had 30 trigger surfaces competing at activation time. v4 has one. The router becomes ETYB's responsibility, not Claude's.
- Vendor content stops shipping in the install. Pre-v4 had ~57K lines of role-overlay markdown sitting on every user's disk going stale between releases. v4 fetches it live; the install carries detection + delegation + gotchas only.
- Brand consolidation. Every response now identifies as ETYB and links to
etyb.ai/changelog. Users don't have to remember 30 names; they remember one. - Skill-creator-compliant. This aligns the repo with Anthropic's Domain Organization guidance: one skill with internal
references/<variant>/files, rather than 30 sibling skills.
Added
skills/etyb/references/specialists/— 14 core specialist READMEs (was:skills/<name>/SKILL.md).skills/etyb/references/protocols/— 9 always-on protocol READMEs.skills/etyb/references/verticals/— 6 vertical-domain READMEs.skills/etyb/core/signature.md— output template appended to every Tier 1-4 response: a divider line,ETYB · <role-engaged>, andWhat's new — etyb.ai/changelog. Tier 0 skips the signature; Tier 2 incidents skip the changelog line to keep firefighting output lean.skills/etyb/core/knowledge-currency.md— two-layer Stack architecture (slim trigger pointer + per-product / per-role pages, all in-repo) with the tiered drift-check protocol. Soft path discloses currency; strict path defers to a vendor MCP/skill or WebFetches the authoritative URL. Includes degraded-mode handling for 404 / network failure / stale-high-drift content.- Stack v2 schema in every Stack frontmatter —
last_verified_on,authoritative_sources.primary,delegate_to_skills,products_coveredwith per-productdrift_riskand notes. - 13 slim local Stack pointers under
stacks/<vendor>/SKILL.md— Salesforce, AWS, GCP, Azure, Anthropic Claude, OpenAI, Cloudflare, Vercel, Supabase, Firebase, Expo, Stripe, Observability (multi-vendor). Each ~125-200 lines: detection signals, delegation map, products list, top 5-10 platform gotchas. Per-product depth lives atstacks/<vendor>/<product>/; per-role composed views atstacks/<vendor>/<role>/. scripts/maintainer/check-currency.sh— walks every local Stack pointer, flags products whosedrift_riskthreshold has been exceeded (high=90d, medium=180d, low=365d). UnderCHECK_CURRENCY_FETCH=1also probesstacks/<vendor>/for reachability (v4 invariant: every local pointer must have a published canonical page) and smoke-checksauthoritative_sources.primaryURLs. Wired intovalidate-pr.sh..claude/skills/etyb-oss-maintainer/references/currency-spec.md— maintainer playbook for the currency model: refresh-PR flow, delegation maintenance, anti-patterns.- v3→v4 migration check in
scripts/install.sh— detects sibling skills from v3.x installs (research-analyst/,tdd-protocol/, etc.) and offers to back them up so they don't compete with/etybat trigger time. Also rewrites stale Claude-Code hook paths in.claude/settings.json. scripts/maintainer/v4-migrate-skill.sh— the migration helper used to move the 29 sibling skills into internal references. Kept in the repo for future similar restructures.
Changed
skills/etyb/SKILL.md— new description optimized for v4 collapsed routing (~210 words, category-level triggers rather than enumerated keywords from 29 deleted skills). "Internal References" section now states that vendor knowledge is remote (fetched from stacks/), not bundled.skills/etyb/core/team-registry.md,core/charter.md,core/always-on-protocols.md, all other core files — references rewritten fromskills/<name>/paths toreferences/<library>/<name>/paths.skills/etyb/core/stack-registry.md— detection workflow rewritten around the stacks/ fetch contract. Per-Stack sections now show both the slim local pointer and the canonical stacks/ URL. Authoring section: publish on stacks/ first, then register the slim pointer locally.stacks/salesforce/SKILL.md— retrofitted to v2 schema and slimmed (149 → 115 lines).- All 13
stacks/<vendor>/SKILL.mdfiles slimmed — body collapsed from per-role overlays + extensive briefing into a thin pointer template (~125-200 lines): detection frontmatter (preserved verbatim), where-the-briefing-lives section pointing at stacks/, top 5-10 currency-anchor gotchas verbatim from the prior body, standing instructions, escalation map. Net: 1,981 lines removed across the 13 SKILL.md files. - 7 vendor-heavy specialist files migrated to pointer + platform-neutral summary —
cloud-aws-specialist.md,cloud-gcp-specialist.md,cloud-azure-specialist.md,llm-specialist.md,ai-integration.md,monitoring-specialist.md,react-native-specialist.md. Each one's vendor-specific content moved into the matching Stack(s); each one now retains the role's platform-neutral principles and points at the Stack(s) for vendor specifics. Net: -6,209 lines / +218 lines across these 7 files. scripts/install.sh— single-mode install. Always copiesskills/etyb/. The--tierand--list-tiersflags from the v4-pre prototype are explicitly rejected with an error message pointing at the no-flag flow..claude-plugin/marketplace.json— one plugin (etyb) that installs the full skill (14 specialists + 9 protocols + 6 verticals).manifest.json—skills: {...}map collapses toskill: {etyb: 4.0.0}. 13 Stacks declared, each withapplies_to_rolesanddeferred_roles. No tier block, noavailable_on_tiersper stack.STACKS.md— public-doc v2 schema; Tiers column dropped from the Available Stack Packs table; authoring conventions updated for the docs-first ordering.scripts/maintainer/validate-pr.sh— now includescheck-currency.shin the umbrella suite.scripts/maintainer/validate-skill-manifest-sync.sh— rewritten for v4 single-skill layout. Now FAILS if a.tiersblock or anyavailable_on_tiersreappears in the manifest.scripts/maintainer/validate-version-sync.sh— updated for the v4manifest.json .skillshape (was.skills) and frontmatter consolidation.scripts/lint-portability.sh— rewritten around v4 (1 installable skill, 14+9+6 references, Claude hook paths at v4 locations, no tiers).tests/install/test-install-flags.sh— rewritten to verify the new single-install behaviour and that removed flags (--tier,--list-tiers) are rejected with the v4 error.- README.md, CLAUDE.md — rewritten around the one-skill model + stacks/ pointer table.
Removed
- 29 sibling skill directories (
skills/research-analyst/,skills/tdd-protocol/,skills/fintech-architect/, etc.) — content lives underskills/etyb/references/. - 13
stacks/<vendor>/references/directories — ~67 role-overlay files (~57K lines) deleted from the install. Equivalent content republished atstacks/<vendor>/<role>/and fetched at runtime. - Tier system —
--tier/--list-tiersflags fromscripts/install.sh,.tiersblock frommanifest.json,available_on_tiersfield from every stack entry, the tier badge from README, and the install-tier table from CLAUDE.md. Install always copies the full skill; vendor knowledge breadth is governed by what's on stacks/, not by what's on disk. bundles/— 4 plain-text bundle files. Replaced by the single full install.scripts/generate-bundles.py— no longer needed.- Per-sibling
evals/— each sibling shipped its own eval set. Those targeted the deleted shape; we'll rebuild a single eval set for/etybonce the description is empirically tuned.
Release ordering note
The stacks/ site (in e-t-y-b/etyb-dot-ai) MUST be deployed before this release tag is cut. The slim local Stack pointers reference stacks/<vendor>/... URLs; cutting v4.0.0 before the docs site is live ships pointers at 404 destinations. CHECK_CURRENCY_FETCH=1 scripts/maintainer/check-currency.sh is the gate — it MUST pass against production stacks/ before tagging.
Migration notes for v3 users
/plugin install etyb-full@etyb-skills→/plugin install etyb@etyb-skills- `./scripts/install.sh --bundle pro...
v3.0.0
[3.0.0] — 2026-05-12
Stack Packs are here. Salesforce is live. ETYB now ships tech-stack expertise alongside the engineering team — knowledge overlays that load on top of the existing 20 specialists whenever the work involves a specific platform. The first pack ships full Salesforce coverage current to Spring '26, capturing the 2025–2026 platform reset (Agentforce, Data 360, MCP-native dev, Apex Cursors, ECA migration, MFA mandate) that pre-2025 training data misses. Same pattern will land for AWS, GCP, Azure, Vercel, Supabase, Snowflake, Databricks, Stripe, Shopify, SAP, and ServiceNow.
Why this is a major release
This adds a new artifact type to ETYB. Until now, ETYB was specialists + protocols — two orthogonal axes. Now it's specialists + protocols + stack expertise — three orthogonal axes. Stack Packs sit alongside the team without bloating it: a Salesforce engagement still routes to backend-architect, frontend-architect, security-engineer, and ai-ml-engineer — but each one picks up the platform overlay for that engagement. When the work changes stack, the overlay rotates; the team doesn't. The architecture scales by adding folders, not roles.
This release also adopts single-version semantics. Every skill, every stack, every artifact tracks the bundle version on every release. No more per-skill version drift (which had silently put etyb at 2.0.0 in SKILL.md and 2.1.0 in the manifest before this release).
Added
- Stack Packs — new top-level artifact type. Each pack lives under
stacks/<name>/with aSKILL.mdorchestrator briefing and per-role overlays atreferences/<role>.md. ETYB's router loads them via the newskills/etyb/core/stack-registry.mdwhen stack signals match the user's request. Packs compose across roles, defer to vertical specialists on compliance, and always-on protocols still apply unchanged. - Salesforce Stack Pack — full 11-role coverage current to Spring '26 (API v66.0), Dreamforce '25, and TrailblazerDX 2026. Each role gets a focused overlay:
system-architect— primitive selection (Flow vs Apex vs Agentforce vs MuleSoft vs external), Headless 360 patterns, org-strategy decisions, integration-boundary calls.backend-architect— modern Apex (Cursors, user-mode SOQL, transaction finalizers, Queueable patterns), Pub/Sub API, MCP authoring + Apex-as-Agent-Action plumbing, Named & External Credentials, bulkification and the trigger handler pattern.frontend-architect— LWC 2026 (TypeScript types,lightning/graphql, reactive screen flows, LWR for Experience Cloud, Lightning Out 2.0), wire-first data, Aura → LWC migration, LWC Jest testing.ai-ml-engineer— Agentforce design (Topics / Actions / Guardrails / Atlas Reasoning Engine), Prompt Builder, Agent Script for deterministic flow, BYOM via Einstein Studio, Data 360 grounding with vector search, MCP-native development, Voice agents, the three Agentforce pricing models.database-architect— Data 360, Zero Copy with Snowflake / Databricks / BigQuery, BYOM data plumbing, Big Objects vs Data 360, calculated insights, sharing-aware data modeling, LDV patterns.devops-engineer—sfCLI (replaces deprecatedsfdxalias), scratch orgs, 2GP unlocked / managed packaging, source format, DevOps Center vs Copado / Gearset / AutoRABIT, smart test selection (Spring '26), Agentforce Vibes IDE.security-engineer— Einstein Trust Layer (deep architecture), External Client Apps migration mandate (May 11, 2026), MFA enforcement (phased June–August 2026), Shield (Platform Encryption / Event Monitoring / Field Audit Trail), permission sets and PSGs, FLS / CRUD code-layer enforcement (WITH USER_MODE), AppExchange Security Review prep.qa-engineer— Apex tests with meaningful assertions (≥85% target), bulk path testing, LWC Jest, Salesforce Code Analyzer + Graph Engine for SOQL injection and FLS gap detection, ApexGuru for runtime performance, smart test selection (Spring '26), UTAM / Provar for E2E.saas-architect— multi-tenant patterns on the platform, ISV distribution shapes (2GP managed, OEM, Embedded Apps, Internal SaaS), AppExchange Checkout 2.0, Salesforce Marketplace, License Management App.healthcare-architect— Health Cloud data model, Industries FHIR R4 + HL7 v2 adapters, OmniStudio for clinical workflows, Agentforce Health agents. Thin overlay — defers to healthcare-architect for HIPAA / FHIR semantics / audit retention policy.fintech-architect— Financial Services Cloud data model, MuleSoft Banking Accelerator, Pub/Sub for transaction events, Open Banking adapters, Agentforce Financial Services agents with deterministic money-movement gates. Thin overlay — defers to fintech-architect for ledger / PCI / PSD2 / AML interpretation. Salesforce is NOT the ledger.
- 2025–2026 platform reset captured. Every overlay reflects the renames, retirements, and additions that an LLM with a pre-2025 cutoff will get wrong: Einstein Copilot → Agentforce (Jan 2025), Data Cloud → Data 360 (Dreamforce '25), Apex Cursors (Spring '26), LWC
lightning/graphql+ TypeScript types (Spring '26), Salesforce-Hosted MCP Servers (GA April 2026), Headless 360 (TDX 2026), External Client Apps mandatory by May 11 2026, MFA mandate phased June–August 2026, Flow Orchestration going free (Feb 2026), Heroku end-of-new-enterprise-sales (Feb 2026), Salesforce Functions retirement (Jan 2025). STACKS.md— top-level registry of available Stack Packs with version, last-verified release, status, and authoring conventions for the next pack.skills/etyb/core/stack-registry.md— ETYB router cue layer for tech-stack detection. Sits alongsideteam-registry.md. Includes positive signals (Salesforce / Apex / LWC / Agentforce /sfdx/ Trailhead / Dreamforce / TDX / 60+ keywords) and negative signals so migrating off a stack doesn't falsely activate the overlay.manifest.jsonstackssection — first-class versioned registration of stacks alongsideskills, withlast_verified_release,verified_on, andapplies_to_rolesper stack.- MARKETPLACE.md Stack Packs section — new lane in the marketplace copy that introduces Stack Packs alongside the existing 30 skills.
Changed
- Single-version semantics. The bundle version is now THE version. Every skill (30), every stack (1), every artifact tracks it on every release — including
manifest.json .skills.*,manifest.json .stacks.*.version, and everySKILL.mdfrontmattermetadata.version.scripts/maintainer/validate-version-sync.shis extended to enforce this; the validator now fails the release if any per-skill or per-stack version drifts fromVERSION. The 5 historical bundle files (VERSION,package.json,manifest.json .bundle.version,.claude-plugin/marketplace.json,.claude-plugin/plugin.json) plus all per-artifact locations move together. skills/etyb/SKILL.mdcore modules table — addscore/stack-registry.md. ETYB reads it afterteam-registry.mdto detect tech-stack signals and load the matching pack.
Roadmap
Future Stack Packs on the candidate list, in rough priority order based on common ETYB use cases:
- AWS — Bedrock, Lambda, EventBridge, ECS, IAM, S3, RDS / Aurora
- GCP — Vertex AI, Cloud Run, Pub/Sub, Firestore, BigQuery
- Azure — OpenAI Service, Functions, AKS, Entra ID, Cosmos DB
- Vercel — Next.js patterns, Edge Functions, Vercel AI SDK
- Supabase — Postgres + Auth + Realtime + Storage + Edge Functions
- Snowflake — Warehouse architecture, Native Apps, Cortex
- Databricks — Lakehouse, Mosaic AI, Delta Live Tables
- Stripe — Payment intents, Billing, Connect, fraud
- Shopify — Storefront API, Hydrogen, app development
- SAP S/4HANA — Integration patterns, BTP
- ServiceNow — Now Platform, Flow Designer, integration patterns
The pattern is set — adding a new stack adds a folder, not a roster slot.
v2.2.0
[2.2.0] — 2026-04-18
The install-parity and hardening release. Bundle-aware installs reach every platform (not just Claude Code's native marketplace), hook scripts get a ShellCheck-clean CI gate, and a JSON-injection bug in the plan-execution edit log is fixed.
Added
- Bundle-aware
install.sh. New flags--bundle NAME,--skills a,b,c, and--list-bundlesbring Codex / Antigravity / manual installs to parity with Claude's plugin marketplace.--bundleaccepts short (process-protocols) and long (etyb-process-protocols) forms. Default behaviour (no flag) is unchanged — every skill on disk is installed. - Bundle generator (
scripts/generate-bundles.py). Reads.claude-plugin/marketplace.jsonand emitsbundles/<plugin>.txtsoinstall.shstays dependency-free.--checkmode is wired into CI to enforce that generated manifests never drift from the marketplace definition. - CI workflow (
.github/workflows/ci.yml). ShellCheck across every.shwith no severity exclusions, hook regression tests, bundle drift check, and installer tests — all on every PR and push to main. - Regression test for the hook JSON-injection fix (
tests/hooks/test-post-edit-log-json-escaping.sh). Firespost-edit-log.shwith hostile payloads and asserts the log stays well-formed. - Installer tests (
tests/install/test-install-flags.sh). Happy paths for each new flag, all three error paths, and one real non-dry-run install to confirm bundles copy exactly the expected directories.
Fixed
- Log injection in
post-edit-log.sh. The hook previously splatted file paths, task IDs, and plan names straight into a JSON heredoc. A filename containing a quote, backslash, or newline corruptededit-log.jsonlor let an attacker forge log entries. Fields are now JSON-escaped before write. Flagged as High Risk by Gen on skills.sh; Socket and Snyk had passed. pre-commit-review-check.shfailed to parse. Twoifblocks were closed withdoneinstead offi. Withset -euo pipefailat the top the script errored on every invocation — meaning the pre-commit review reminder never fired since it shipped.- Silent glob shadowing in
pre-edit-check.sh. Earlier glob patterns in the config-file skip list (*.config.*,*.mod,*.sum) shadowed later explicit entries (jest.config.*,vitest.config.*,go.mod,go.sum). Collapsed into a single arm that reflects real coverage. - Unquoted pattern expansion in
post-edit-log.sh's${FILE_PATH#$PROJECT_ROOT/}— stripping failed when the path contained glob metacharacters. - Version drift.
.claude-plugin/marketplace.jsonand.claude-plugin/plugin.jsonhad been stuck at2.0.0through the2.1.0release; skill counts said "31" in two places and "30" elsewhere. All version fields now trackVERSIONand all skill counts read30.
Changed
- Docs updated. README and
docs/installation.mddocument the new--bundle,--skills,--list-bundlesflags and list the four bundles (full,process-protocols,core-team,verticals) with skill counts. install-codex-runtime.shcleanup. Dropped an unusedFORCEvariable;--forceeffect is carried byON_CONFLICT="replace"alone.
v2.1.0
[2.1.0] — 2026-04-16
The Codex runtime release. ETYB now ships with full OpenAI Codex runtime support — lifecycle hooks, custom agents, and per-skill metadata — upgrading Codex from model-trusted to partial runtime-enforced.
Added
- Codex lifecycle hooks (
.codex/hooks/). 4 Python hooks —UserPromptSubmit(blocks gate-skipping prompts),PreToolUse(guards merge/commit without tests),PostToolUse(captures test pass/fail signals),Stop(blocks completion claims without verification evidence). - Codex custom agents (
.codex/agents/). 4 TOML-defined agents — explorer, planner, reviewer, docs researcher — providing Codex-native parallel dispatch. - Per-skill Codex metadata (
agents/openai.yaml). All 30 skills now ship withinterface+policymetadata for Codex skill discovery. - Codex runtime installer (
scripts/install-codex-runtime.sh). Installs.codex/config, hooks, and agents into any project with conflict detection and backup. - Codex runtime evals (
skills/etyb/evals/codex-runtime-evals.json). Eval suite for verifying hook behavior on a real Codex instance. - Portability linter (
scripts/lint-portability.sh). Cross-platform compliance checker — validates skill count, Codex metadata, plan path portability, and doc consistency.
Changed
- Codex enforcement upgraded. Platform status changed from "model-trusted" to "partial runtime-enforced + model-trusted gaps." Edit-before-test remains model-trusted; all other gates now have hook support.
- README overhauled. OG image banner, platform badges, dedicated platform support table, restructured install section with Codex runtime details.
.gitignoreupdated. Added.etyb/(runtime plan artifacts) and__pycache__/(Codex hook bytecode).
v2.0.0 — The Portability Release
[2.0.0] — 2026-04-15
The portability release. ETYB is now a cross-platform virtual engineering team with adapters for Claude Code, OpenAI Codex, and Google Antigravity. Skills are reorganized for independent use on any agentskills.io-compliant platform.
Breaking
orchestratorskill renamed toetyb. The folder moved fromskills/orchestrator/toskills/etyb/. Any code or prompts invoking the old name must be updated. Motivation: the skill IS the product brand — one name across marketplace, repo, invocation.etyb/references/verification-protocol.md→skills/verification-protocol/. Verification is now its own peer skill. Specialists that referenced the old path have been updated; external references need to update toskills/verification-protocol/references/verification-methodology.md.etyb/references/debugging-protocol.md→skills/debugging-protocol/. Same pattern as verification.- Total skill count: 29 → 31. Two new peer protocol skills (verification-protocol, debugging-protocol) extracted from etyb's references.
Added
- Portable core architecture.
skills/etyb/SKILL.mdis now a 65-line thin entry point pointing at eight focused core modules (core/charter.md,team-registry.md,gates.md,expert-mandating.md,coordination-patterns.md,response-formats.md,scale-calibration.md,always-on-protocols.md). Core modules are platform-neutral and loadable on demand. - Claude Code adapter (
skills/etyb/adapters/claude/) — ADAPTER.md, hooks.md, plan-mode.md, subagents.md. Deterministic hook enforcement; flagship experience. - OpenAI Codex adapter (
skills/etyb/adapters/codex/) — ADAPTER.md, enforcement-notes.md, openai-yaml-example.md. Model-trusted gates, grounded in current Codex Agent Skills spec. - Google Antigravity adapter (
skills/etyb/adapters/antigravity/) — ADAPTER.md, enforcement-notes.md, adk-integration.md. Model-trusted with optional ADK sub-agent elevation for parallel tracks. verification-protocolskill — the Five Verification Questions, universal completion report, done criteria per gate, evidence standards. Independently installable.debugging-protocolskill — root-cause-first methodology, hypothesis-driven debugging, one-variable rule, three-failure escalation. Independently installable.VERSIONfile,manifest.json,CHANGELOG.mdat repo root for versioning and update-mechanism infrastructure.
Changed
- Bundle name/brand alignment. Plugin descriptions, marketplace configs, README, CLAUDE.md, architecture.md, and all cross-references now use "ETYB" as the brand name.
- Frontmatter compliance. All 30 SKILL.md files validated against the agentskills.io specification — name (lowercase+hyphens, matches parent dir), description (≤1024 chars), compatibility (≤500 chars where present).
- Specialists are standalone. Every specialist now works without etyb installed. References to etyb are supplemental cross-references, not hard dependencies. The invariant "uninstall etyb → specialists still function" holds.
- Counts updated across docs. 31 total skills, 9 process protocols (was 7), 1 reference remaining in etyb (was 3 — two extracted as peer skills).
Migration Notes
If you had skills/orchestrator/ installed:
git pull(or reinstall via your marketplace tool of choice) — the rename is agit mvso history is preserved.- Update any prompts or scripts invoking
orchestratorto useetybinstead. - If you had custom references to
skills/etyb/references/verification-protocol.mdorskills/etyb/references/debugging-protocol.md, update them toskills/verification-protocol/references/verification-methodology.mdandskills/debugging-protocol/references/debugging-methodology.md.