Windsurf + Aider targets, MCP server, and demo placement (#33)
Broadens both reach (more tools) and content types (an MCP server), continuing the multi-platform story. Windsurf + Aider: - build-exports.mjs gains two platforms: exports/windsurf/*.md (workspace rules, trigger: model_decision) and exports/aider/*.md (conventions for `aider --read`). Now 5 platforms (ChatGPT, Gemini, Cursor, Windsurf, Aider). - install.sh + bin/cli.mjs install both (windsurf -> .windsurf/rules, aider -> .aider/skills with a --read hint); generated README index is excluded from copies. - One-line windsurf-install.sh / aider-install.sh wrappers for parity. MCP server (new content type): - mcp/server.mjs — zero-dependency stdio MCP server exposing list_skills, search_skills, get_skill. Published as a second bin (pm-claude-skills-mcp). Logs to stderr; reads bundled skills/ at startup. mcp/README.md documents client config. Also: README hero "See it in action" demo placement (ready to swap in a GIF; recording guide in web/docs-assets/README.md), Works-With table + exports + install docs updated, CHANGELOG Unreleased. package.json files/bin updated. Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,25 @@ const PLATFORMS = {
|
||||
render: ({ description, body }) =>
|
||||
`---\ndescription: ${JSON.stringify(description)}\nglobs:\nalwaysApply: false\n---\n\n${body.trim()}\n`,
|
||||
},
|
||||
windsurf: {
|
||||
label: 'Windsurf — workspace rule (.md)',
|
||||
dir: 'exports/windsurf',
|
||||
file: (s) => `${s.name}.md`,
|
||||
groupByBundle: true,
|
||||
// Windsurf reads `.windsurf/rules/*.md`. trigger:model_decision = the agent
|
||||
// pulls the rule in when the description matches the task.
|
||||
render: ({ description, body }) =>
|
||||
`---\ntrigger: model_decision\ndescription: ${JSON.stringify(description)}\n---\n\n${body.trim()}\n`,
|
||||
},
|
||||
aider: {
|
||||
label: 'Aider — conventions file (.md)',
|
||||
dir: 'exports/aider',
|
||||
file: (s) => `${s.name}.md`,
|
||||
groupByBundle: true,
|
||||
// Aider has no auto-discovery dir — you load a file into context with
|
||||
// `aider --read <file>`. So this is the plain body, ready to --read.
|
||||
render: ({ body }) => `${body.trim()}\n`,
|
||||
},
|
||||
};
|
||||
|
||||
// ── Helpers (shared shape with web/build-skills.mjs) ────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user