What to do
- Ran
import augmenton v0.61.0? Run it again. The importer looked fortool-namewhere Augment, and this tool's own emitter, writetoolName, so every rule was skipped and the generated spec came back empty with no error (one command). - Hand-wrote a
permissionmap inopencode.json? Move it underx-opencode.permissionin a settings spec before the next sync, or the translated rules replace it for the tools it names. Rules for other tools are untouched (one block moved, a couple of minutes). - Syncing
opencode? Read the generatedpermissionmap once before committing it. OpenCode is last-match-wins, so a broad rule and a narrow one on the same tool interact, andWriteandEditboth land on its singleeditkey (a minute per project). - On Windows? Nothing to change, but this is the release to take: a sync where two targets wrote the same shared directory could fail outright.
Nothing else needs action. Every other change either adds output or reports something that used to disappear in silence.
Shipped in agnostic-ai v0.62.0
Added
- OpenCode reads your permission policy: the portable
allow,deny, andasklists translate into thepermissionmap inopencode.json, andimport opencodereads them back (#922). - Kilo Code reads your permission policy: portable
allow,deny, andasklists reachkilo.jsonc'spermissionmap, an agent'stoolslist translates into the same per-tool shape, andimport kiloreads both back (#890). - Hook specs reach two more targets: OpenCode as plugin modules at
.opencode/plugins/<name>.ts, and Cline as one executable script per event under.cline/hooks/(#889, #892). - Import catches up with what sync writes:
import goosereads Goose's agents, skills, plugin hooks, reviews and rules,import traereads.trae/hooks.json, andimport clinereads.agents/skills/(#889, #894). - Copilot reaches three more documented keys:
disabledMcpServersin.github/copilot/settings.json,cwdandenvon hooks, and a per-servertoolsallowlist on Copilot CLI MCP entries (#888). - A settings
modelreaches Factory at<project>/.factory/settings.json, the documented project tier (#891). agnostic-ai import alldetects a Goose project from.agents/plugins/or.agents/REVIEW.md, not just the opt-in.goosehints, so a default Goose sync is no longer skipped (#906).
Fixed
- Cline agents load again: they emit as
.cline/agents/<name>.ymlwith thenameanddescriptionfrontmatter the loader requires, andimportreads both that and the old.md(#886). - Claude Code's AGENTS.md fallback no longer leaks routing:
CLAUDE.mdis always written, so anoutputs.claude.rules-fileoverride cannot hand Claude Code codex'sAGENTS.md, andimport claudereads the same fallback files the tool itself loads (#885, #893). - An exact
Bash(cmd)in adenylist now blocks the command on Windsurf instead of being dropped and leaving it unblocked (#887). import augmentreads your permission policy again: it looked fortool-namewhere Augment and our own emitter writetoolName, so every rule was skipped (#912).syncno longer fails on Windows when two targets write the same shared directory: pruning a legacy tree treated the platform's "directory is not empty" refusal as an error instead of a lost race (#918).- Copilot, Junie, and Codex say what a permission policy does there instead of dropping it in silence: each reports a coverage note naming where that vendor keeps its rules, and Codex's points at
outputs.codex.exec-policies(#917, #923). - Emitted config matches what each vendor documents: Cursor stdio MCP entries carry the required
"type": "stdio", andvalidateflags a copilot hook spelledSubagentStart, an event no Copilot page names (#888, #895). - Antigravity stops writing to a legacy path and past a documented limit:
sync --globalwrites skills to~/.gemini/config/skills/, and a rule over the 12,000-character cap reports a coverage note (#896). agnostic-ai import antigravity codexworks: multi-source validation reads the same list as the help text, so a source the error message calls supported is no longer rejected (#905).validateflags a kiro hook spelledAgentSpawn, which Kiro CLI 3.0 documents nowhere, and acceptsManual, which it does (#907).- A release now checks that Homebrew and npm actually serve the tag it just cut, instead of reporting success when a missing token silently skipped the push (#920).
Site
- Site search ranks the page a query names ahead of that page's own sections, finds a page by text anywhere in it, folds plurals, and caps one page at three of the ten result slots.
- Target pages drop stale claims: Cline reads both
.clinerules/and.cline/rules/, Trae emits scoped rules, Junie also loads.agents/skills/, aider writes.aiderignore, and goose's.goosehintsneeds the Developer extension (#897). - The Claude Code plugin carries a README covering both install commands, its four skills, and updating; the settings spec page names the right targets for
permissionsandmodeland states the rule grammar it uses in every example.
Upstream CLI and model news
- OpenCode (checked 2026-09-19, page dated "Last updated: Sep 19, 2026"): the project-tier
opencode.jsondocuments apermissionkey takingallow,ask, anddeny, the same three names this project's portable lists use. "Rules are evaluated by pattern match, with the last matching rule winning", and "You can set permissions globally (with*), and override specific tools." That surface is what this release translates into. State: supported. permissions - Augment CLI (checked 2026-09-19): the permissions page grew a "Migrating from legacy tool names" section aliasing
launch-process,view,str-replace-editor, andsave-filetoterminal,read,edit, andwrite. "They still work, the legacy names are aliased to their current equivalents, but use the current names below." The rename covers the permissions surface only, while subagents and hooks still document the old names, so the two vocabularies stay apart here. State: supported. permissions - Kiro CLI 3.0 (checked 2026-09-19): the hook trigger table no longer lists
AgentSpawn, and listsManualas a current trigger. A hook spec written against the older table now failsvalidaterather than emitting a trigger Kiro documents nowhere. State: supported. hooks