Cursor old-CLI smoke test (run after #16 merged) surfaced that the
trailing '## If parallel-cli is not found' heading injected by the
sync script could be misread as 'findall subcommand not found' on
a skim. The body says 'command not found', but each skill also has
an in-body 'errors with no such command' note that handles the
*separate* stale-CLI failure mode and routes to 'parallel-cli update'.
Rename the heading to '## If the parallel-cli binary is not installed'
and add an explicit cross-reference in the body so a skimming agent
can't mis-route a stale-CLI error to /parallel-setup (binary-missing
remediation) when it should trigger 'parallel-cli update' (stale-CLI
remediation).
Pairs with parallel-web/parallel-cursor-plugin#7.
agent-skills is the source of truth for skill content; the cursor
plugin needs a shape-converted copy of each skill. The script:
- Strips Claude Code-specific frontmatter fields (user-invocable,
argument-hint, context, agent) that cursor doesn't use
- Replaces the trailing '## Setup' section (full install commands
inline) with cursor's '## If parallel-cli is not found' stanza,
which delegates to the cursor /parallel-setup command
- Generates command wrappers in cursor-plugin/commands/ for any
synced skill that doesn't already have one
- Updates .cursor-plugin/plugin.json to register new commands
setup/result/status are skills in agent-skills but commands in
cursor — those are skipped by the skill sync.
Usage:
python3 scripts/sync-to-cursor.py [--dry-run] [--cursor-repo PATH]
Used to produce parallel-web/parallel-cursor-plugin#6.