writers-pattern

Featured

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. Use when adding platform support for a new agent, integrating a new code AI tool, or extending caliber to support new targets. Do NOT use for modifying existing writers, refactoring scoring logic, or changing how writers are invoked.

AI & Automation 1,286 stars 126 forks Updated 2 days ago MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Platform Writer Pattern ## Critical - **Every writer MUST**: 1. Export a single named function: `write<Platform>Config(config: <PlatformConfig>): string[]` 2. Accept a platform-specific config interface defining what content to write 3. Return `string[]` of all written file paths (used by manifest and progress display) 4. Create parent directories with `fs.mkdirSync(dir, { recursive: true })` before writing files 5. Wrap skill frontmatter exactly as shown in Step 4 (YAML between `---` markers) 6. 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: `na...

Details

Author
caliber-ai-org
Repository
caliber-ai-org/ai-setup
Created
6 months ago
Last Updated
2 days ago
Language
TypeScript
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Listed

content-writer

Professional content generation with phased workflow (discuss→plan→execute→verify→ship), SEO optimization, and anti-AI auditing. Multi-profile support for unlimited brands. USE for: blog posts, LinkedIn, Twitter/X, Facebook, Instagram, email newsletters, landing pages, sales pages, case studies, product descriptions, SEO metadata. COMMANDS: /writer:discuss, /writer:plan, /writer:execute, /writer:verify, /writer:ship, /writer:next, /writer:profile-create, /writer:profile-list, /writer:profile-use, /writer:profile-view, /writer:profile-edit, /writer:status, /writer:help ALWAYS use for content requests like "write me a LinkedIn post" or "draft a blog article."

51 Updated 2 months ago
sociilabs
Code & Development Listed

writing

Draft, review, and finish long form prose, essays, talks, newsletters, memos, and briefings.

0 Updated 3 days ago
pgoell
AI & Automation Solid

blog-writer

Channel-master writer for long-form blog posts. Owns the SHAPE of a post — beat structure, title/preview/slug commitments, per-post container layout, per-site voice anchor discovery — and delegates VOICE (prose generation) to /authors-voice and PUBLISH mechanics to the openwriter github plugin (`add_blog_site` + `post_to_blog`). Use when: "/blog-writer", "write a blog post", "blog draft", "brainstorm blog topics", "blog beats", "extract beats from this post", "write about this feature", "draft a post", "blog title", "preview text", "OG description", "blog image", "featured image", "OG image", "integrate", "create the files", "wire up the blog post", "publish to blog", "post to blog", "set up blog repo", "register blog site". Requires: OpenWriter MCP server configured + github plugin enabled + `gh auth login` set up locally. Project SHOULD have a `## Blog` section in its CLAUDE.md for writing-rules / image-style overrides (optional after setup).

31 Updated 2 days ago
travsteward