Add a new platform writer module in src/writers/ that generates and writes agent config files for a supported platform. Each writer exports a function that accepts a config interface, creates directories (rules/, skills/, mcp configs), writes files with proper formatting and frontmatter, and returns string[] of written file paths.
SkillScore77Maintained
Automatic
◆Coding pack
Last verified 8/14/2026
What it changes
Passed 13 of 17 test cases with the skill, and 6 of 17 without it.
Without skill36%
With skill77%
Checks it passed that the model alone missed
Uses Vitest vi.mock('fs') at top of test file
Exports function named writeAiderConfig returning string array
Adds optional supercode property to AgentSetup in src/writers/index.ts
and 7 more in the full report
9 fixed8 passed either way5 still failing0 broke
Pass-rate lift
+41 pp
Tokens
+214%
Agent turns
0%
Response time
-19%
Model gemini-3.6-flashMeasured 8/14/2026v117 of 22 cases passed with skill · 17 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 9
Prompt
Before creating a writer for a platform named 'Cursor', what validation step must be performed in `src/writers/` to determine whether we are adding a new writer or modifying an existing one?
What was checked, without and with the skill
Checked
Without skill
With skill
Checks for existing writer file at src/writers/cursor/index.ts to confirm platform name uniqueness
Missed
Passed
case-10 · gemini-3.6-flash · 8/14/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md264 linessingle file
Platform Writer Pattern
Critical
Every writer MUST:
Export a single named function: write<Platform>Config(config: <PlatformConfig>): string[]
Accept a platform-specific config interface defining what content to write
Return string[] of all written file paths (used by manifest and progress display)
Create parent directories with fs.mkdirSync(dir, { recursive: true }) before writing files
Wrap skill frontmatter exactly as shown in Step 4 (YAML between --- markers)
NOT modify files outside the intended platform directories (e.g., Claude writer only touches .claude/, CLAUDE.md, .mcp.json)
Integration point: Every writer MUST be imported and called in src/writers/index.ts within the writeSetup() function. Missing this step means the writer will never execute.
Validation before Step 1: Verify the platform name is unique (ls src/writers/ shows no <platform>/index.ts). If it exists, you are modifying, not adding.
Instructions
Step 1: Define the Platform Config Interface
Verify the platform name is unique (see Critical). Create src/writers/<platform>/index.ts.
At the top of the file, define a config interface that describes all content the writer accepts. The interface MUST include:
A main markdown/text file (e.g., claudeMd, cursorrules, agentsMd, instructions)
Optional nested arrays: rules, skills, mcpServers, instructionFiles, etc.
Each rule/skill/file has at minimum: name or filename, content, and for skills, description
Example (matching GitHub Copilot pattern already in codebase):
Validation: Confirm the interface property names match platform conventions (e.g., Claude uses claudeMd, Cursor uses cursorrules). Check existing writers: src/writers/claude/index.ts line 9, src/writers/cursor/index.ts line 9, src/writers/codex/index.ts line 5.
Step 2: Implement the Writer Export Function
Export a function named write<Platform>Config(config: <PlatformConfig>): string[] that:
Initialize an empty written: string[] = [] array to track all written paths.