CtrlK
BlogDocsLog inGet started
Tessl Logo

writers-pattern

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.

72

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is writers-pattern in caliber-ai-org/ai-setup

SKILL.md
Quality
Evals
Security

Quality

Content

85%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is an actionable, well-sequenced pattern guide: every step has executable code, exact integration points, and explicit validation checkpoints, with troubleshooting tied to real error messages. Its weaknesses are repetition of a few details (frontmatter format, Cursor special case) and a monolithic structure — no reference files despite being well past the length where the per-platform catalog, worked example, and Common Issues could be split out.

Suggestions

Split the Step 2 per-platform append-block catalog, the full DevCode worked example, and the Common Issues section into files under references/ (e.g., references/platform-patterns.md, references/example-devcode.md, references/troubleshooting.md), leaving SKILL.md as a concise overview with clearly signaled one-level-deep links.

State the skill frontmatter format once and reference it from the 'Skill file has no frontmatter / malformed YAML' issue instead of restating it; do the same for the Cursor rule-injection special case, which appears in both Step 2 and Common Issues.

Trim line-number citations that will rot as the codebase changes (e.g., 'line 9', 'lines 19-22', 'line 40-47') in favor of function/anchor names (e.g., 'the writeSkills loop in src/writers/claude/index.ts'), which stay valid and cost fewer tokens.

DimensionReasoningScore

Conciseness

The body is dense with information Claude cannot infer — exact helper compositions ('appendSyncBlock(appendLearningsBlock(appendPreCommitBlock(config.claudeMd)))'), file paths, and line-number pointers — so nearly every token earns its place, matching the 'efficient; minor instances of over-explanation that could be trimmed' anchor. It is not a 5 because of repetition: the skill frontmatter format is specified twice (Step 2 and the 'Skill file has no frontmatter' issue) and the Cursor rule-injection special case is explained in Step 2 and restated nearly verbatim in Common Issues.

4 / 5

Actionability

The guidance is fully executable: complete TypeScript snippets (the DevCode example is copy-paste ready with interface, function, and test), exact commands ('npm test -- src/writers/__tests__/<platform>.test.ts'), and specific assertions (".toHaveBeenCalledWith(path, { recursive: true })", "expect content .toContain('caliber:managed:pre-commit')"). This matches the top anchor — specific examples cover the common cases; the 4 anchor's 'minor gaps' do not apply.

5 / 5

Workflow Clarity

Steps 1–6 are clearly sequenced with an explicit '**Validation**' checkpoint after each, plus a pre-flight uniqueness check ('ls src/writers/ shows no <platform>/index.ts'), a test step, and a Common Issues section providing fix-and-retry feedback loops for concrete error messages ('ENOENT: no such file or directory', 'write<Platform>Config is not a function'). This matches the top anchor including error-recovery loops for the batch file-writing operations; the 4 anchor's 'minor validation gaps' are not present.

5 / 5

Progressive Disclosure

There is good section structure (Critical, Instructions, Examples, Common Issues), but the skill is a ~260-line monolith with no bundle files at all (references/, scripts/, assets/ are absent). Content that plausibly belongs one level deep — the per-platform append-block catalog in Step 2, the full DevCode worked example, and the six Common Issues entries — is inlined, matching the 'some structure but could be better organized; content that should be separate is inline' anchor. It is above the 2 anchor because the inline content is well-sectioned and navigable, and below the 4 anchor because nothing is split out despite the length.

3 / 5

Total

17

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

This is a strong description: it states what the skill does in concrete, codebase-specific terms, gives explicit 'Use when' triggers, and adds negative scope guidance that sharply reduces mis-triggering. The only minor weakness is that trigger terms rely on internal vocabulary ('writer module', 'caliber') without more synonyms or example tool names a user might naturally mention.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — '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' — matching the anchor for comprehensive, specific concrete actions. It is not merely naming the domain; the operations are enumerated with technical specifics (return type, directory names, frontmatter), and nothing above this anchor exists.

5 / 5

Completeness

Both 'what' (the enumerated writer responsibilities) and 'when' ('Use when adding platform support for a new agent, integrating a new code AI tool, or extending caliber to support new targets') are answered explicitly with concrete trigger phrases, plus explicit negative scope ('Do NOT use for modifying existing writers, refactoring scoring logic, or changing how writers are invoked'). This clearly matches the top anchor; the 4 anchor applies only when the 'when' clause is less explicit, which is not the case here.

5 / 5

Trigger Term Quality

Trigger phrases like 'adding platform support for a new agent', 'integrating a new code AI tool', and 'extending caliber to support new targets' are natural user phrasings with good coverage, matching the 'good keyword coverage; a few natural terms missing' anchor. It stops short of the 5 anchor because there are no synonyms or extension variations (e.g., named example tools like Claude/Cursor/Copilot, or 'onboarding a new editor'), and terms like 'writer module' are internal jargon rather than user vocabulary.

4 / 5

Distinctiveness Conflict Risk

The description carves a clear niche — adding a new writer module in 'src/writers/' — and the explicit exclusion clause ('Do NOT use for modifying existing writers, refactoring scoring logic, or changing how writers are invoked') minimizes conflict with sibling skills by ruling out the nearest overlapping scenarios. It fits the 'clear niche with distinct triggers; minimal conflict risk' anchor, not the 4 anchor, because the overlap risk with closely related skills is actively mitigated.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
caliber-ai-org/ai-setup
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.