case-writer-hybrid
Expand a structured brief in `content-production/inbox/` into a reusable long-form markdown article draft, then run a local writer / critic / judge quality loop with a constrained humanization pass. Use when Codex needs a stage-1 article draft plus reusable writing sidecars for downstream `generate-image` and `wechat-formatter`.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/abigale-cyber/case-writer-hybridCase Writer Hybrid
Turn the structured brief into a stage-1 article draft, a writing pack sidecar, and a review trace that can flow into image generation and WeChat formatting.
Quick Start
Run the default command:
.venv/bin/python -m skill_runtime.cli run-skill case-writer-hybrid --input content-production/inbox/20260403-ai-content-system-brief.md
Prepare Input
Expect a markdown file with these sections:
基础信息核心观点背景与语境论证方向可用案例 / 素材
Important fields inside 基础信息:
dateslugtopictarget_readerpublish_goal
Follow Drafting Workflow
- Read the brief and preserve explicit user-supplied claims, framing, and evidence.
- Use
论证方向as the backbone for the major argument sections. - Pull material from
可用案例 / 素材into the matching sections instead of inventing new examples first. - Build a stable first draft structure: title, 导语, 问题提出, 核心判断, 论证段, 结论, 可传播总结.
- Run up to 3 local rounds of
writer -> critic -> humanizer-zh -> judge. - If the score still fails after 3 rounds, stop and emit a quality-gate notice instead of continuing downstream.
Write Output
Write the markdown draft to:
content-production/drafts/<slug>-article.md
Also write:
content-production/drafts/<slug>-writing-pack.md
content-production/drafts/<slug>-writing-pack.json
content-production/drafts/<slug>-review-trace.json
If the draft fails the quality gate after 3 rounds, also write:
content-production/published/YYYYMMDD-<slug>-quality-gate.md
Respect Constraints
- Treat the result as a controlled local draft loop, not a free-form creative writer
- If the brief is sparse, preserve structure and fill gaps conservatively
- Prefer explicit user-supplied arguments over invented framing
- Do not continue to image generation or formatting if the quality gate fails
Read Related Files
- Runtime entry:
skill_runtime/engine.py - Usage guide:
docs/case-writer-hybrid-execution-spec.md - Downstream skills:
generate-image,wechat-formatter
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-abigale-cyber-case-writer-hybrid": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
humanizer-zh
Remove obvious AI-writing traces from Chinese text in a constrained way. Use when Codex needs to reduce AI smell without changing facts, data, or the article's core argument.
news-aggregator-skill
Comprehensive news aggregator that fetches, filters, and deeply analyzes real-time content from 28 sources including Hacker News, GitHub, Hugging Face Papers, AI Newsletters, WallStreetCN, Weibo, and Podcasts. Use when user requests 'daily scans', 'tech news', 'finance updates', 'AI briefings', 'deep analysis', or says '如意如意' to open the interactive menu.
feishu-bitable-sync
Sync a local `wechat-report` result into Feishu Bitable after the user has reviewed the report and confirmed the sync.
wechat-formatter
Render article markdown into WeChat-style HTML as an independent executor. Use when Codex needs公众号排版预览, WeChat HTML output, or a publishable HTML artifact generated from an article markdown draft.
tavily-research
Conduct comprehensive AI-powered research with citations via the Tavily CLI. Use this skill when the user wants deep research, a detailed report, a comparison, market analysis, literature review, or says "research", "investigate", "analyze in depth", "compare X vs Y", "what does the market look like for", or needs multi-source synthesis with explicit citations. Returns a structured report grounded in web sources. Takes 30-120 seconds. For quick fact-finding, use tavily-search instead.