rulesync-feature-research — Claude Code skill: map rulesync features
Maps rulesync features against coding-agent docs: what is supported, where the gaps are, how clients differ.
npx skills add dyoshikawa/rulesync --skill rulesync-feature-research -a claude-codeWhat rulesync-feature-research does
The skill builds a reproducible map between a coding-agent client, its upstream docs and the local rulesync implementation. Ask about feature support or triage an issue and you get a table with feature, agent surface, rulesync support, rulesync surface and difference columns. Features with sub-surfaces such as hook events, MCP transports, permission actions, config keys or output roots get a second table.
Inside there is a request target table: for each client (claudecode, codexcli, cursor, copilot, geminicli, opencode and others) the skill reads its own file under references/. A target without a matching file is treated as coming, not unsupported. For an unknown target it falls back to references/rulesync-source-map.md plus the closest existing client map. Support labels follow the README style: project, global, simulated, unsupported.
Validation runs through dry-run: pnpm run dev generate --targets <client> --features "*" --dry-run. The skill advises an all-feature dry-run for a single client by default, and an all-target run for cross-client questions. Dry-run is validation, not the answer. The output ends with a ## Capability Gaps section that lists only material gaps: unsupported upstream capabilities, lossy import or export, deprecated surfaces. Tests, fixtures and refactors stay out of that list.
What it helps with
- check rulesync feature support against client docs
- triage an issue where agent behavior and rulesync diverge
- build a capability map for a new coding-agent client
- find missing project and global scope support
- verify generator gates and output roots from dry-run
Example prompts for the agent
- Check hook support in cursor against the official docs and rulesync
- Build a feature map for codexcli and list the capability gaps
- Triage this issue: why is the feature marked simulated in claudecode
How to install rulesync-feature-research
1Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rulesync-feature-research -a claude-code2Manually: put the files in place
~/.claude/skills/rulesync-feature-research/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/rulesync-feature-research/
1Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rulesync-feature-research -a codex2Manually: put the files in place
.agents/skills/rulesync-feature-research/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rulesync-feature-research -a cursor2Manually: put the files in place
.cursor/skills/rulesync-feature-research/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dyoshikawa/rulesync rulesync-feature-research2Manually: put the files in place
.github/skills/rulesync-feature-research/SKILL.md1Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rulesync-feature-research -a gemini-cli2Platform CLI
gemini skills install https://github.com/dyoshikawa/rulesync --path .rulesync/skills/rulesync-feature-researchManually: put the files in place
.devin/skills/rulesync-feature-research/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rulesync-feature-research -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about rulesync-feature-research
How do I install rulesync-feature-research in Claude?
Run npx skills add dyoshikawa/rulesync --skill rulesync-feature-research -a claude-code. The skill lands at ~/.claude/skills/rulesync-feature-research/SKILL.md.
What does rulesync-feature-research do?
It builds a table matching a rulesync feature to the coding-agent surface and the local implementation. It closes with the material capability gaps.
Which clients already have maps?
Separate files under references/ exist for claudecode, codexcli, cursor, copilot, geminicli, opencode and other targets. A missing client file means the map is still being prepared.
Source text
SKILL.md · MIT
---
name: rulesync-feature-research
description: >-
Maps rulesync feature implementations to upstream coding-agent documentation.
Use when evaluating rulesync issues, comparing any coding-agent client with
rulesync source capability surfaces, checking support, or planning a client map.
---
# Rulesync Feature Research
## What
Build a reproducible map between a coding-agent client, an upstream feature
surface, and the local rulesync implementation.
| Request target | Read |
| ------------------------- | --------------------------------------------------------------------- |
| `antigravity` | `references/antigravity.md` |
| `augmentcode` | `references/augmentcode.md` |
| `claudecode` | `references/claudecode.md` |
| `cline` | `references/cline.md` |
| `codexcli` | `references/codexcli.md` |
| `copilot` | `references/copilot.md` |
| `copilotcli` | `references/copilotcli.md` |
| `cursor` | `references/cursor.md` |
| `deepagents` | `references/deepagents.md` |
| `factorydroid` | `references/factorydroid.md` |
| `geminicli` | `references/geminicli.md` |
| `goose` | `references/goose.md` |
| `junie` | `references/junie.md` |
| `kilo` | `references/kilo.md` |
| `kiro` | `references/kiro.md` |
| `opencode` | `references/opencode.md` |
| `pi` | `references/pi.md` |
| `qwencode` | `references/qwencode.md` |
| `replit` | `references/replit.md` |
| `roo` | `references/roo.md` |
| `rovodev` | `references/rovodev.md` |
| `takt` | `references/takt.md` |
| `warp` | `references/warp.md` |
| `windsurf` | `references/windsurf.md` |
| `zed` | `references/zed.md` |
| Any other rulesync target | `references/rulesync-source-map.md` + the closest existing client map |
A target without `references/<client>.md` is To be coming, not unsupported.
To add a client map:
1. Create `references/<client>.md` from the closest existing map.
2. Fill `Official Docs` with the client's docs URLs and feature surfaces.
3. Add `Client Anchors` only for behavior not obvious from `rulesync-source-map.md`.
4. Add the client to the request target table.
## Contract
Input:
| Field | Source |
| -------- | ---------------------------------------------------------------------- |
| Client | User prompt or issue text; validate with the rulesync target list |
| Question | Support check, diff, capability surface, issue triage, or new map work |
Reproducibility boundary: same question, official docs, local source tree, and
dry-run command/config.
Collect:
1. Canonical target and feature lists from `references/rulesync-source-map.md`.
2. Rulesync support labels from README, source, processor gates, and dry-run.
3. Official docs from the selected client map.
4. Re-check sentinel rows through official docs/site, then web search if needed;
confirm candidate URLs with Curl or Fetch. Recognized sentinel phrases:
- `No dedicated upstream <feature> surface in map` — upstream has no
dedicated docs surface that this row could point at.
- `No Rulesync-supported <feature> target in map` — no Rulesync adapter is
known to target this feature.
- `Rulesync maps <surface>; verify upstream before expanding behavior` —
Rulesync ships an adapter, but the upstream docs surface is thin or
missing; treat as low confidence until re-verified.
5. Client anchors for surfaces not obvious from naming rules.
6. Dry-run output for generator gates and output roots.
Scope:
- Inspect every rulesync feature for each requested client.
- Do not narrow the investigation by feature or surface.
- Do not explain scope normalization in the final answer.
Dry-run commands:
```bash
pnpm run dev generate --targets <client> --features "*" --dry-run
pnpm run dev generate --targets <client> --features "*" --global --dry-run
pnpm run dev generate --targets "*" --features "*" --dry-run
```
Use client all-feature dry-runs by default. Use the all-target dry-run for
cross-client questions. Dry-run is validation, not the answer.
Output:
1. Start with the result table.
| Feature | Agent surface | Rulesync support | Rulesync surface | Difference |
| ------- | ------------- | ---------------- | ---------------- | ---------- |
Use README-style support labels for Rulesync: `project`, `global`, `simulated`,
`unsupported`.
2. Add a surface table when the feature has sub-surfaces such as hook events,
MCP transports, permission actions, config keys, metadata fields, or output roots.
| Surface | Agent surface | Rulesync map | Difference |
| ------- | ------------- | ------------ | ---------- |
3. End with capability gaps.
Use this section title:
```markdown
## Capability Gaps
```
List only material feature gaps: unsupported upstream capabilities, missing
project/global scope, missing event/config surfaces, lossy import/export, or
deprecated surfaces that should be replaced. Each bullet should name the
feature and user-visible missing capability. Write `None` only when every
observed difference is an intentional mapping or already covered behavior.
For gaps based on any of the sentinel phrases listed in Collect step 4,
re-check during the current run before claiming absence or low confidence.
Do not list tests, fixtures, refactors, source locations, or implementation
chores unless they are necessary to explain the capability gap. Do not write
"implementation change is not needed"; it is ambiguous.
Skip separate sections for canonicalization, map status, dry-run logs, and
source lists unless the user asks for them.
© dyoshikawa · MIT · dyoshikawa/rulesync