Skip to content

feat(skills): add skill-article — launch article for any skill, receipts-first - #945

Merged
aaronjmars merged 3 commits into
aeonfun:mainfrom
NurstarK:skill/skill-article
Aug 24, 2026
Merged

aaronjmars merged 3 commits into
aeonfun:mainfrom
NurstarK:skill/skill-article

Conversation

@NurstarK

Copy link
Copy Markdown
Contributor

Adds a skill-article skill that turns any skill in the instance into a publish-ready launch article - the "skill announcement" format: sell the insight the skill encodes, then give the file away.

What makes it a fit for the catalog:

  • Receipts-first headlines: mines memory/logs/, output/, opened PRs, and git log for a real proof stat ("84 verified findings"-style). If no real count exists, the headline falls back to the mechanism - it never invents numbers, and run-less skills get "how it plays out" scenarios explicitly labeled as scenarios, never dressed as case studies.
  • One-thesis structure: forces 3 candidate contrast pairs ("production shows what the system does; tests show what developers thought it did") and builds the whole article on the sharpest one - provenance, mechanics, war stories, reframe, ship-it CTA, then the target SKILL.md embedded verbatim in a CODENAME: block.
  • Standard conventions: ${var} selector (<skill-name> [--brand <handle>], empty → picks the most article-worthy skill from the last 14 days of logs), soul/ voice calibration, output to output/skill-articles/, clickable notify link, ### skill-article run log with SKILL_ARTICLE_OK / SKILL_ARTICLE_NO_TARGET / SKILL_ARTICLE_NOT_FOUND status codes.
  • Anti-tells baked in: banned hype words, claim-shaped headings, no private-fork references, CTA links verified in-run.

Pairs naturally with skill-of-the-day (daily tweet-sized feature) - this is the long-form counterpart for when a skill deserves a full article.

Modeled on video-script (#835) for content-skill conventions. Includes regenerated catalog/*.json, icon glyph + SVG + dashboard data, docs/skill-packs.md basics row (17 → 18), and the eyebrowlock.json entry (eyebrow 0.4.1 scan, findings: none; only the new entry added - pre-existing drift on other skills left untouched).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Vtf8BB3m8Kx74ZUYZFwTJa

NurstarK and others added 3 commits August 24, 2026 16:04
…pts-first

Turns any skill in the instance into a publish-ready launch article: proof-stat
headline mined from real run history (memory/logs, output/, git log), one
contrarian thesis, mechanics, war stories, a mental-model reframe, and the
target SKILL.md embedded verbatim as a CODENAME block. Falls back to a
mechanism headline when no real stats exist — never invents numbers.

Includes regenerated catalogs (skills.json, packs.json, skill-icons), icon
glyph + SVG, docs/skill-packs.md basics row, and the eyebrowlock.json entry
(scanned with eyebrow 0.4.1, findings: none).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vtf8BB3m8Kx74ZUYZFwTJa
Opt-in 16:9 banner generated through the Higgsfield MCP after the article is
written. Prompt is built from the thesis contrast pair (visual metaphor, no
long text in pixels). Follows the higgsfield skill's rules: one generation
per run, credit-gated, bounded polling, and every failure mode
(NOT_CONNECTED / AUTH_STALE / NO_CREDITS / FAILED) degrades to
article-without-banner instead of failing the run. Banner URL is embedded in
the article header comment, surfaced in the notify, and logged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vtf8BB3m8Kx74ZUYZFwTJa
ci-readme-catalog required the README caption to match the regenerated
catalog (76 skills). Bumped the README caption + anchor and the
skill-packs.md heading (the anchor target) together so the link stays valid.

Co-Authored-By: NurstarK <NurstarK@users.noreply.github.com>
@aaronjmars
aaronjmars merged commit 3a80957 into aeonfun:main Aug 24, 2026
10 checks passed
@aaronjmars aaronjmars mentioned this pull request Aug 24, 2026
4 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants