Install
openclaw skills install autowriterAutomated writing system. Extracts the "modify-evaluate-loop" paradigm from autoresearch's agent loop, fuses it with humanizer de-AI mechanisms into a closed loop: draft -> de-AI -> self-evaluate -> rewrite -> iterate. Built-in de-AI capability, no post-processing needed. For tech blogs, articles, paper explainers, AI/ML content. Trigger words: autowriter, auto-write, iterative writing, karpathy-style, de-AI writing.
openclaw skills install autowriterautoresearch's core is an agent loop: modify code → run → evaluate → keep/discard → loop.
autowriter maps this paradigm to writing, embedding "de-AI" into the loop itself — not post-processing after writing, but writing, purifying, evaluating, rewriting in every single iteration.
Three core principles from autoresearch, mapped to writing:
| autoresearch Principle | Writing Mapping | Mechanism |
|---|---|---|
| Automated loop | write → humanize → evaluate → rewrite loop | Agent Loop |
| Quantified evaluation | 6-dimension scoring function (with "human feel" dimension) | Phase 2 |
| Failure transparency | draft log records every discarded version | Draft Log |
Plus humanizer's core insight: De-AI is not post-processing polish, it's part of writing quality. The evaluation function detects AI patterns directly — rewrite if not passing, rewrite again, until clean.
┌─────────────────────────────────────────────────┐
│ INPUT: topic/paper/project + --depth N │
│ (N=1 quick, N=2 standard, N=3 deep, N=4 survey) │
└──────────────────────┬──────────────────────────┘
▼
┌────────────────┐
│ Phase 0: Research│ Read user-provided sources
└───────┬────────┘
▼
┌──── Loop start (max N rounds) ───┐
│ │
│ ┌────────────────────┐ │
│ │ Phase 1: Write │ │
│ │ Generate full draft│ │
│ │ (built-in human │ │
│ │ feel constraints) │ │
│ └────────┬───────────┘ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ Phase 1.5: De-AI │ │
│ │ Scan + rewrite │ │
│ │ AI patterns │ │
│ └────────┬───────────┘ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ Phase 2: Evaluate │ │
│ │ 6-dim quantitative │ │
│ │ scoring │ │
│ └────────┬───────────┘ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ Phase 3: Decide │ │
│ │ score>=80 → keep │──────┐ │
│ │ score<80 → rewrite │ │ │
│ │ with annotations │ │ │
│ └────────────────────┘ │ │
│ │ │
└───────────────────────────────┼───┘
▼
┌────────────────┐
│ Output final │
│ article + log │
└────────────────┘
One parameter controls everything. No other knobs exposed.
| depth | Words | Technical Detail | Iterations | Use Case |
|---|---|---|---|---|
| 1 | 1500-2000 | Intuition-focused, minimal formulas | 2 | Quick takes, social posts |
| 2 | 2500-3500 | Code + data, moderate formulas | 3 | Standard blog articles |
| 3 | 4500-6000 | Deep technical + experimental data | 4 | Deep dives, paper explainers |
| 4 | 8000+ | Full tech stack, includes derivations | 5 | Tutorials, surveys |
Facts first, then write. autoresearch reads train.py first — same principle.
Actions (user supplies all source material — this skill does not make network requests):
Output: research_facts.md in the current workspace directory — structured fact checklist (not an outline, not "what goes in paragraph 1")
Important: If the user has not provided source material, ask them to supply it. Do not search the web or access files outside the workspace.
research_facts.md, don't overthink structureThis is the key step where humanizer mechanism is embedded into the loop. Not post-processing, but a mandatory checkpoint in every iteration.
Run AI pattern scan on Phase 1 output, check and rewrite each item:
Scan checklist (fast scan, not line-by-line):
Filler phrases — Remove opening bromides and emphasis crutches
Overemphasis — Check for exaggerated significance
AI vocabulary blacklist — Replace with direct expression
Structural patterns — Break formulas
Voice injection — Add human touch
De-AI scan must be fast. Not line-by-line proofreading, 5 minutes for a pass:
Don't pursue perfection. Phase 2's evaluation function catches residual AI traces — if it doesn't pass, next round will handle it.
6-dimension quantitative evaluation function. Each dimension 0-100.
| Dimension | Weight | 90+ Standard | Below 50 |
|---|---|---|---|
| Information density | 20% | Nearly every sentence carries new info | Heavy padding, transitions, repetition |
| Code/data ratio | 20% | Every core claim backed by code or data | Pure prose, no verifiable evidence |
| Failure showcase | 15% | Includes "what didn't work" and specific reasons | Only shows success paths |
| Conciseness | 15% | No paragraph removable without losing information | 30%+ content can be deleted |
| Actionability | 15% | Reader can immediately verify after reading | Reader knows but can't act |
| Human feel | 15% | Sounds like a real person, has opinions and emotion | AI-scented, formulaic structure |
| Score | Standard |
|---|---|
| 90+ | Unique voice and personal opinions; varied sentence length; zero AI blacklist hits; no rule-of-three / negative parallelism |
| 70-89 | Mostly natural, occasional AI traces acceptable; has opinions but not sharp enough |
| 50-69 | Formulaic structure, visible AI patterns; flat tone, no personality |
| Below 50 | Heavy AI vocabulary, rule-of-three, dash reveals, promotional language |
score = info_density*0.20 + code_data_ratio*0.20 + failure_showcase*0.15
+ conciseness*0.15 + actionability*0.15 + human_feel*0.15
## Self-Eval - Round N
| Dimension | Score | Notes |
|-----------|-------|-------|
| Information density | 75 | Paragraphs 3-4 too much setup |
| Code/data ratio | 60 | "Significant improvement" has no data |
| Failure showcase | 40 | Missing failed experiments |
| Conciseness | 70 | First two paragraphs removable |
| Actionability | 85 | Code examples clear |
| Human feel | 55 | "Furthermore" x3, rule-of-three x2, cliched ending |
**Composite: 64/100**
**Decision: REWRITE**
**Focus areas:**
1. Add failed experiments (failure 40 -> 70+)
2. Replace "significantly improved" with data (code/data 60 -> 75+)
3. Rewrite lowest human-feel paragraphs: kill "furthermore", change rule-of-three, new ending (human 55 -> 75+)
score >= 80 → KEEP, proceed to output
score < 80 → DISCARD, enter next round with annotations
Append after each evaluation, equivalent to autoresearch's results.tsv:
| Round | Score | Human | Decision | Main Issues | Fix Actions |
|-------|-------|-------|----------|-------------|-------------|
| 1 | 52 | 40 | DISCARD | Heavy AI, no data | De-AI, add experiments |
| 2 | 71 | 68 | DISCARD | Rule-of-three remnant, no failures | Restructure, add detours |
| 3 | 83 | 80 | KEEP | - | - |
Draft log stays at the end of the article or as an attachment. Fully transparent, no secret recipe.
Storage limit: Only retain the current draft and the final draft_log summary. Discarded intermediate drafts are NOT saved to disk — only their scores and fix actions are recorded in the log table. This prevents accumulation of potentially sensitive content.
Enforced on every write/rewrite. These rules fuse Karpathy style with humanizer principles:
Use: First person, specific numbers, code snippets, colloquial tech language, admitting ignorance, mixed sentence lengths, opinionated reactions Don't use:
Automatically chosen based on --depth and content type, not forced into templates:
Structure is a result, not a constraint.
No humanizer-zh post-processing needed. De-AI is built-in. This skill does not initiate network requests. All source material must be user-provided.
references/autoresearch-philosophy.mdreferences/karpathy-code-style.md