feat(dialect): add Zed adapter compiling skills to .agents/skills (fixes #15) - #22
Merged
Merged
Conversation
…200200#15) Add Zed as Cinch's 10th supported harness. Zed's agent loads Agent Skills from the cross-vendor .agents/skills/<name>/SKILL.md layout (global ~/.agents/skills or project-local <worktree>/.agents/skills), so the new ZedAdapter emits only the documented name, description, and, for commands, disable-model-invocation frontmatter fields. No paths/globs are emitted. - src/cinch/adapters.py: ZedAdapter + ADAPTERS registration - src/cinch/catalog.py: append zed to HARNESS_ORDER and HARNESSES - tests/conformance/zed/SOURCE.md: vendor documentation fixture - tests/test_translation.py: adapter unit tests + integration/shared-path - tests/test_cinch.py: harness-id list + CLI init/preview coverage - README/CHANGELOG/pyproject/examples/benchmark: counts and docs Zed shares .agents/skills with Cursor/Codex; when wired together the first target writes and later targets report shared. The pre-existing wire.py support-copy behaviour is left untouched and documented as known. Also makes test_interactive_empty_inventory_none_selected independent of which harness CLIs happen to be installed on the host PATH (pre-existing environment-dependent flake). Refs 00200200#15
00200200
approved these changes
Sep 27, 2026
00200200
left a comment
Owner
There was a problem hiding this comment.
Excellent work @nilay1221! Comprehensive adapter implementation, thorough conformance tests, and accurate vendor documentation. Thank you for contributing! 🚀
nilay1221
added a commit
to nilay1221/cinch
that referenced
this pull request
Sep 27, 2026
Zed now appears as a regular dialect in the One Skill, Every Dialect (The Rosetta Stone) section, matching the other harnesses' format. Removes the standalone Zed subsection from the harness matrix section. Refs 00200200#22
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add Zed as Cinch's 10th supported harness.
cinch init --harness zedandcinch preview <item> --target zednow compile skills, agents, and commands into Zed's native Agent Skills layout at.agents/skills/<name>/SKILL.md.Implements #15.
Scope decision: vendor accuracy over the issue's proposed
.zed/prompts/Issue #15 proposed
.zed/prompts/<name>.md. Current Zed documentation does not define a.zed/prompts/format. PerCONTRIBUTING.md("Vendor Accuracy: every target path and dialect emitted is backed by vendor documentation"), this PR targets the documented layout instead:~/.agents/skills/<name>/SKILL.md<worktree>/.agents/skills/<name>/SKILL.md(flat; nested folders are not discovered)name,description, optionaldisable-model-invocationonlyRecorded in
tests/conformance/zed/SOURCE.mdagainst https://zed.dev/docs/ai/skills.Out of scope, as agreed:
.zed/prompts/, MCP/context servers,AGENTS.md/.rules, hook translation, and the pre-existingwire.pysupport-copy quirk (documented below, not fixed).What changed
src/cinch/adapters.pyZedAdapter(renders.agents/skills/<name>/SKILL.md, emits nopaths; commands getdisable-model-invocation: true) registered inADAPTERSsrc/cinch/catalog.py"zed"appended toHARNESS_ORDER;HARNESSES["zed"]spec (binaries/home markers/project markers/skill source/project dirs)tests/conformance/zed/SOURCE.mdtests/test_translation.pyTestZedAdapterunit tests + single-target andcursor,zedshared-path integration teststests/test_cinch.pyZedtitle assertion; non-interactiveinit --harness zedandpreview --target zedcoveragetests/test_conformance.pyREADME.md/+@skillinvocation,cmd-alt-l/ctrl-alt-l, trusted worktree, link)CHANGELOG.mdpyproject.tomlexamples/README.md.agents/skills/is also read by Zedbenchmark/run.pyShared path behaviour
Zed shares
.agents/skills/with Cursor and Codex. A--harness cursor,zedrun writes the file once (as Cursor's rendering, which includespaths) and reports Zed assharedwithshared_with: "cursor"; the extrapathskey is ignored by Zed. Wire--harness zedalone for Zed's minimal frontmatter. This ordering is covered bytest_cursor_and_zed_share_agents_path.Known behaviour (documented, not fixed)
wire.py::_apply_filecopies a skill's support directory before writing the main file. Whensupport_destis the parent of the main relpath (Claude/Cursor/Codex/Zed multi-file skills), the copiedSKILL.mdmakes the destination pre-exist, so the outcome can beexistsrather thanwritten. Pre-existing, unaffected by this change, left out of scope.Verification
Also verified manually:
cinch harnesseslists Zed;cinch inventory --harness zedruns and lists Zed;benchmark/run.pyreportsAdapters Tested (10)andTranslation Latency (10 dialects).