Keel v3.0.0
Major release: Everything the workflow used to materialize only for Claude — the portability lock, the embedded skill, the native config package — now has a first-class container for every assistant the user actually works with: OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI and Windsurf alongside Claude Code, riding the two open standards that consolidated in 2025-2026 (AGENTS.md for agent instructions, Agent Skills for the skill format itself) so most other tools — opencode, Zed, Warp, JetBrains Junie, Kiro, Cline and more — are covered by the standards at no extra cost. The principle throughout: one source of content (the project's own recorded decisions), one container per tool, parity between containers as a duty.
Added
- The portability lock is dual, always (
references/project-state.md). The same KEEL block now lives inCLAUDE.mdANDAGENTS.mdin every project — created together, refreshed together, stamped together. Claude reads the first; Codex, Copilot, Cursor, Windsurf, opencode, Zed, Warp, Junie, Kiro, Cline and most other tools read the second natively. Gemini CLI, whose default context file isGEMINI.md, gets one recorded pick when the user works with it: aGEMINI.mdmirror, orcontext.fileNamein.gemini/settings.jsonincludingAGENTS.md. The lock text itself is now assistant-neutral (embedded-copy paths name both trees; the continuation-prompt pointer no longer assumes.claude/). The lock-freshness check (references/keel-maintenance.md) refreshes both files — and creates the missingAGENTS.mdon projects that predate the dual lock. - The embedded skill is dual (
references/project-state.md). The embed now goes to.claude/skills/keel/+.agents/skills/keel/, identical byte for byte: between the native tree and the open Agent Skills discovery convention, virtually every assistant loads Keel as a project skill on its own. The verified full-copy protocol applies to each tree; version sync always touches both, so they can never diverge. The update check (references/keel-maintenance.md) compares and updates both trees, and user-level install locations now include~/.agents/skills/keel/alongside~/.claude/skills/keel/. references/assistant-config.md— replacesreferences/claude-config.md, generalized. The offer now asks which assistants will work on the repo; the package materializes one container per accepted tool from the SAME sources (technical plan §Conventions, the loaded security profile, Keel's quality gates, the verified commands): rules with path scoping (.claude/rules/withpaths:,.cursor/rules/*.mdcwithglobs:,.github/instructions/*.instructions.mdwithapplyTo:,.windsurf/rules/*.mdwithtrigger: glob, and nested context files per source directory for Codex/Gemini, which have no glob mechanism); the seven verifier subagents (.claude/agents/— which Cursor also reads natively —.github/agents/*.agent.md,.gemini/agents/*.md; Codex and Windsurf run the same checks inline per the standing fallback); permission allow-lists (.claude/settings.json,.codex/rules/Starlark prefix rules,tools.allowedin.gemini/settings.json,.cursor/cli.json; Copilot and Windsurf have no committable equivalent — the verified commands are documented in the repo's development notes instead); and MCP registration (.mcp.json,.cursor/mcp.json,.vscode/mcp.json,[mcp_servers]in.codex/config.toml,mcpServersin.gemini/settings.json). New standing rules: a "—" cell removes the mechanism, never the duty; parity across containers is verified at the Phase 7 gate; per-tool size limits are respected by construction (Keel's under-40-lines rule sits far inside all of them); config syntax rots — the content is Keel's contract, the container is the tool's, verified against current docs when in doubt.- Project card line renamed:
Assistant config: [none / rules / rules+agents / full] (tools: ...)— replacesClaude config:, now recording WHICH tools were accepted. MANIFEST Table 1 rows updated accordingly (lock, embed, rules, subagents, permissions, MCP registration all name their per-tool containers), and Table 3 carries the v3.0.0 reconciliation delta for existing projects (rename the card line, create the missingAGENTS.md, add the second embed tree, offer the new tools' containers, extend.gitignoreand the gate exemption). - INSTALL.md: per-assistant installation. A user-level install-path table (Claude, Codex, Cursor, Gemini CLI, Copilot/VS Code, Windsurf, and the shared
~/.agents/skills/convention that serves the standard-compliant tools with one copy), plus the note that an embedded Keel project needs no per-machine install at all. README and INSTALL are now written for the multi-assistant reality (repo docs).
Changed
- The confidential-data pre-commit gate exempts both embedded-skill trees (
.claude/skills/*and.agents/skills/*— the canonical trees that legitimately contain the gate's own patterns); the assistant-side hook note now points at the native pre-tool-use hooks of Claude Code, Codex, Gemini CLI and Cursor as the optional layer on top, git hook always the baseline. The scaffold's.gitignoreadds the accepted tools' personal files (AGENTS.override.md,.gemini/.env,.gemini/tmp/) to the unconditional trio. - Phase 7 export-ignore covers every generated assistant config tree (
.claude/,.agents/,.codex/,.cursor/,.gemini/,.windsurf/,.github/instructions/,.github/agents/,.vscode/mcp.json, nested context files,GEMINI.mdwhen kept) — nothing from the package ships, whatever the tool. The pre-tag verification checks container parity, not just the Claude tree. - Phase 5 plan mode names its equivalents (Claude Code, Cursor, Gemini CLI's plan approval mode) with the same no-plan-mode fallback; the scaffold completes the package per tool; the subagent hooks in Phases 4/5/7/8 and the accessibility reference now point at
references/assistant-config.md. references/estimation-budget.md: subscription mode names the other flat-fee plans (ChatGPT Plus/Pro, Gemini AI plans), the price-verification step carries the OpenAI and Google official pricing pages next to Anthropic's, and the measured-usage examples add Codex/statusand Gemini CLI/statsbeside Claude Code/cost.- SKILL.md: the portability paragraph, the shared-templates entry and the reference index describe the dual lock, the dual embed and the generalized package; the token-economy line no longer assumes the coding assistant is Claude Code.