Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create, revise, or package a ContextOS blog post with editorial positioning, accurate runtime terminology, frontmatter, category routing, read-next links, social metadata, and optional cover art. Use for blog publishing; not for canonical spec pages.
.claude/skills/contextosai-contextos-blog-publisher/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -19% | 0% |
Ship a complete editorial package, not an isolated MDX body. A blog may explain or challenge the spec, but it must not silently redefine it.
Before drafting, identify:
Reject or reshape a topic that duplicates an existing post, blends conflicting terms, lacks an artifact, or has no clear audience.
Read references/publishing-checklist.md for metadata, category, visual, and verification requirements.
socialTitle for a sharper but defensible distribution hook.## What to read next and 2–5 deliberate links spanning the same audience, deeper technical material, and the relevant primitive/use case.If the post makes current product, research, legal, security, or market claims, verify them against primary sources and preserve citations. Do not browse merely to decorate stable ContextOS explanations.
Add required frontmatter and deliberately assign the slug to exactly one blog category. Keep tags stable and useful; do not use ContextOS as a universal tag. Do not change the canonical title only to improve a social headline.
For a priority social cover, use the available image-generation workflow and inspect the result at full size and thumbnail size. The checked-in PNG must be exactly 1200x630, use the exact headline and contextosai.com, keep text crop-safe, and contain no malformed or invented text. Preserve the original generated asset unless deletion was requested.
Run the blog distribution tests and git diff --check. Run typecheck/lint when category, metadata, React, or rendering code changes; run the full tests in proportion to the change. Preview the post and social card when practical.
Report the article promise, category/read-next placement, sources checked, assets produced, and any browser/social/live verification skipped.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 52,176 | 16,457 | -68% | 1 | 1 | 0% | 8,390 | 796 | -91% | 0 | 0 | — |
case-02 | fail→fail | 54,518 | 26,424 | -52% | 1 | 1 | 0% | 8,503 | 1,105 | -87% | 0 | 0 | — |
case-03 | fail→fail | 43,359 | 6,305 | -85% | 1 | 1 | 0% | 7,509 | 821 | -89% | 0 | 0 | — |
case-04 | pass→fail | 15,633 | 44,286 | +183% | 1 | 1 | 0% | 2,965 | 8,808 | +197% | 0 | 0 | — |
case-05 | pass→fail | 12,582 | 12,728 | +1% | 1 | 1 | 0% | 1,991 | 886 | -55% | 0 | 0 | — |
case-06 | pass→fail | 21,907 | 34,037 | +55% | 1 | 1 | 0% | 3,444 | 5,851 | +70% | 0 | 0 | — |
case-07 | fail→pass | 15,726 | 15,615 | -1% | 1 | 1 | 0% | 2,149 | 2,788 | +30% | 0 | 0 | — |
case-08 | pass→pass | 9,758 | 7,846 | -20% | 1 | 1 | 0% | 1,356 | 1,647 | +21% | 0 | 0 | — |
case-09 | fail→pass | 10,542 | 6,341 | -40% | 1 | 1 | 0% | 1,431 | 1,506 | +5% | 0 | 0 | — |
case-10 | fail→pass | 9,542 | 5,199 | -46% | 1 | 1 | 0% | 1,445 | 1,353 | -6% | 0 | 0 | — |
case-11 | fail→pass | 9,123 | 6,469 | -29% | 1 | 1 | 0% | 1,442 | 1,454 | +1% | 0 | 0 | — |
case-12 | fail→pass | 11,735 | 4,917 | -58% | 1 | 1 | 0% | 1,577 | 1,283 | -19% | 0 | 0 | — |
case-13 | pass→pass | 12,582 | 7,171 | -43% | 1 | 1 | 0% | 1,778 | 1,638 | -8% | 0 | 0 | — |
case-14 | fail→pass | 11,312 | 16,963 | +50% | 1 | 1 | 0% | 1,824 | 1,965 | +8% | 0 | 0 | — |
case-15 | fail→pass | 9,899 | 4,678 | -53% | 1 | 1 | 0% | 1,497 | 1,221 | -18% | 0 | 0 | — |
case-16 | pass→pass | 15,247 | 18,543 | +22% | 1 | 1 | 0% | 2,289 | 3,236 | +41% | 0 | 0 | — |
case-17 | pass→pass | 9,293 | 3,746 | -60% | 1 | 1 | 0% | 1,285 | 1,091 | -15% | 0 | 0 | — |
case-18 | fail→pass | 17,262 | 10,964 | -36% | 1 | 1 | 0% | 2,485 | 2,161 | -13% | 0 | 0 | — |
case-19 | fail→pass | 9,530 | 7,420 | -22% | 1 | 1 | 0% | 1,445 | 1,734 | +20% | 0 | 0 | — |
case-20 | pass→pass | 11,438 | 4,141 | -64% | 1 | 1 | 0% | 1,352 | 1,100 | -19% | 0 | 0 | — |
case-21 | fail→fail | 10,054 | 26,940 | +168% | 1 | 1 | 0% | 1,544 | 2,053 | +33% | 0 | 0 | — |
case-22 | fail→fail | 5,212 | 3,587 | -31% | 1 | 1 | 0% | 676 | 1,105 | +63% | 0 | 0 | — |
case-23 | pass→pass | 12,044 | 10,780 | -10% | 1 | 1 | 0% | 1,850 | 1,984 | +7% | 0 | 0 | — |
case-24 | pass→pass | 11,773 | 8,419 | -28% | 1 | 1 | 0% | 1,677 | 1,663 | -1% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 20 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +25 percentage points is the difference between those two pass rates over the 20 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.