inkos-multi-agent-novel-writing

Multi-agent CLI system for autonomous novel writing, auditing, and revision with human review gates

22 stars

Best use case

inkos-multi-agent-novel-writing is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Multi-agent CLI system for autonomous novel writing, auditing, and revision with human review gates

Teams using inkos-multi-agent-novel-writing should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/inkos-multi-agent-novel-writing/SKILL.md --create-dirs "https://raw.githubusercontent.com/Aradotso/trending-skills/main/skills/inkos-multi-agent-novel-writing/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/inkos-multi-agent-novel-writing/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How inkos-multi-agent-novel-writing Compares

Feature / Agentinkos-multi-agent-novel-writingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Multi-agent CLI system for autonomous novel writing, auditing, and revision with human review gates

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# InkOS Multi-Agent Novel Writing

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection

InkOS is a multi-agent CLI system that autonomously writes, audits, and revises novels. Agents handle the full pipeline: Writer → Validator → Auditor → Reviser, with human review gates at configurable checkpoints.

## Installation

```bash
npm install -g @actalk/inkos
# or run directly
npx @actalk/inkos --version
```

**Requirements:** Node.js ≥ 20.0.0

## Quick Start

```bash
# Create a new novel project
inkos book create --title "吞天魔帝" --genre xuanhuan

# Write the next chapter
inkos write next 吞天魔帝

# Audit a specific chapter
inkos audit 吞天魔帝 --chapter 3

# Run the full daemon (continuous production)
inkos daemon start
```

## Project Structure

After `inkos book create`, the project directory contains:

```
story/
  outline.md              # Story outline (architect agent input)
  book_rules.md           # Per-book custom rules and audit dimensions
  chapter_summaries.md    # Auto-generated per-chapter summaries
  subplot_board.md        # Subplot progress tracking (A/B/C lines)
  emotional_arcs.md       # Per-character emotional arc tracking
  character_matrix.md     # Character interaction matrix + info boundaries
  parent_canon.md         # Spinoff only: imported canon constraints
  style_profile.json      # Style fingerprint (if style import used)
  style_guide.md          # LLM-generated qualitative style guide
  chapters/
    ch001.md
    ch002.md
    ...
```

## Core Commands

### Book Management

```bash
inkos book create --title "Title" --genre xuanhuan  # genres: xuanhuan | xianxia | dushi | horror | general
inkos book list
inkos book status 吞天魔帝
```

### Writing Pipeline

```bash
inkos write next 吞天魔帝           # Write next chapter (auto-loads all context)
inkos write chapter 吞天魔帝 5      # Write specific chapter
inkos audit 吞天魔帝 --chapter 3    # Audit chapter (33 dimensions)
inkos revise 吞天魔帝 --chapter 3   # Revise based on audit results
inkos revise 吞天魔帝 --chapter 3 --mode spot-fix   # Point fix only (default)
inkos revise 吞天魔帝 --chapter 3 --mode rewrite    # Full rewrite (use cautiously)
inkos revise 吞天魔帝 --chapter 3 --mode polish     # Polish (no structural changes)
```

### Genre System

```bash
inkos genre list                        # List all built-in genres
inkos genre show xuanhuan               # View full rules for a genre
inkos genre copy xuanhuan               # Copy genre rules to project for customization
inkos genre create wuxia --name 武侠     # Create new genre from scratch
```

### Style Matching

```bash
inkos style analyze reference.txt               # Analyze style fingerprint
inkos style import reference.txt 吞天魔帝        # Import style into book
inkos style import reference.txt 吞天魔帝 --name "某作者"
```

### Spinoff (Prequel/Sequel/IF-branch)

```bash
inkos book create --title "烈焰前传" --genre xuanhuan
inkos import canon 烈焰前传 --from 吞天魔帝       # Import parent canon constraints
inkos write next 烈焰前传                         # Writer auto-reads canon constraints
```

### AIGC Detection

```bash
inkos detect 吞天魔帝 --chapter 3     # Detect AIGC markers in chapter
inkos detect 吞天魔帝 --all           # Detect all chapters
inkos detect --stats                  # View detection history statistics
```

### Daemon (Continuous Production)

```bash
inkos daemon start                    # Start scheduler (default: 15 min/cycle)
inkos daemon stop
inkos daemon status
```

## Configuration

### Global Config (`~/.inkos/config.json`)

```json
{
  "llm": {
    "provider": "openai",
    "model": "gpt-4o",
    "apiKey": "sk-...",
    "temperature": 0.8
  },
  "daemon": {
    "intervalMinutes": 15,
    "dailyChapterLimit": 10,
    "parallelBooks": 2
  },
  "webhook": {
    "url": "https://your-server.com/hooks/inkos",
    "secret": "your-hmac-secret",
    "events": ["chapter-complete", "audit-failed", "pipeline-error"]
  },
  "aigcDetection": {
    "provider": "gptzero",
    "apiKey": "...",
    "endpoint": "https://api.gptzero.me/v2/predict/text"
  }
}
```

### Per-Book Rules (`story/book_rules.md`)

````markdown
# Book Rules: 吞天魔帝

## 禁忌 (Forbidden)
- 主角不得主动求饶
- 不得出现「命运」「天意」等宿命论表述

## 高疲劳词
- 震撼, 惊骇, 恐惧, 颤抖

## additionalAuditDimensions
- 数值系统一致性: 战力数值不得前后矛盾
- 角色成长节奏: 主角突破间隔不少于3章

## 写手特别指令
- 战斗场面优先感官描写,禁止数值报告
````

## Agent Architecture

InkOS runs five specialized agents in sequence:

```
ArchitectAgent  →  outline.md, book_rules.md
     ↓
WriterAgent     →  ch00N.md (reads: outline, summaries, arcs, matrix, style_guide, canon)
     ↓
ValidatorAgent  →  11 deterministic rules, zero LLM cost
     ↓  (error found → trigger spot-fix immediately)
AuditorAgent    →  33 LLM dimensions, temperature=0 for consistency
     ↓
ReviserAgent    →  spot-fix | rewrite | polish | anti-detect
```

### Post-Write Validator Rules (Deterministic, No LLM)

| Rule | Condition |
|------|-----------|
| Forbidden patterns | `不是……而是……` constructs |
| Em-dash ban | `——` character |
| Transition word density | 仿佛/忽然/竟然≤1 per 3000 chars |
| High-fatigue words | Per-book list, ≤1 per chapter |
| Meta-narrative | Screenwriter-style narration |
| Report terminology | Analytical framework terms in prose |
| Author moralizing | 显然/不言而喻 etc. |
| Collective reaction | 「全场震惊」clichés |
| Consecutive 了 | ≥4 consecutive sentences with 了 |
| Paragraph length | ≥2 paragraphs over 300 chars |
| Book-specific bans | `book_rules.md` forbidden list |

### Audit Dimensions (33 total, LLM-evaluated)

Key dimensions include:
- Dims 1–23: Core narrative quality (plot, character, pacing, foreshadowing)
- Dim 24–26: Subplot stagnation, arc flatness, rhythm monotony (all 5 genres)
- Dim 27: Sensitive content
- Dim 28–31: Spinoff-specific (canon conflicts, future info leakage, world rule consistency, foreshadowing isolation)
- Dim 32: Reader expectation management
- Dim 33: Outline deviation detection

## Code Integration Examples

### Programmatic Usage (TypeScript)

```typescript
import { BookManager } from '@actalk/inkos'
import { WriterAgent } from '@actalk/inkos/agents'
import { ValidatorAgent } from '@actalk/inkos/agents'

// Create and configure a book
const manager = new BookManager()
const book = await manager.createBook({
  title: '吞天魔帝',
  genre: 'xuanhuan',
  outlinePath: './my-outline.md'
})

// Run the write pipeline for next chapter
const writer = new WriterAgent({ temperature: 0.8 })
const chapter = await writer.writeNext(book)

// Run deterministic validation (no LLM cost)
const validator = new ValidatorAgent()
const validationResult = await validator.validate(chapter, book)

if (validationResult.hasErrors) {
  // Auto spot-fix triggered
  const reviser = new ReviserAgent({ mode: 'spot-fix' })
  const fixed = await reviser.revise(chapter, validationResult.errors, book)
  console.log('Fixed violations:', validationResult.errors.length)
}
```

### Webhook Handler (Express)

```typescript
import express from 'express'
import crypto from 'crypto'

const app = express()
app.use(express.raw({ type: 'application/json' }))

app.post('/hooks/inkos', (req, res) => {
  const sig = req.headers['x-inkos-signature'] as string
  const expected = crypto
    .createHmac('sha256', process.env.INKOS_WEBHOOK_SECRET!)
    .update(req.body)
    .digest('hex')

  if (sig !== `sha256=${expected}`) {
    return res.status(401).send('Invalid signature')
  }

  const event = JSON.parse(req.body.toString())

  switch (event.type) {
    case 'chapter-complete':
      console.log(`Chapter ${event.chapter} of "${event.book}" complete`)
      // Trigger human review gate
      notifyReviewer(event)
      break
    case 'audit-failed':
      console.log(`Audit failed: ${event.criticalCount} critical issues`)
      break
    case 'pipeline-error':
      console.error(`Pipeline error in "${event.book}":`, event.error)
      break
  }

  res.status(200).json({ received: true })
})
```

### Custom Genre Definition

```typescript
// genres/wuxia.ts
import type { GenreConfig } from '@actalk/inkos/types'

export const wuxia: GenreConfig = {
  id: 'wuxia',
  name: '武侠',
  chapterTypes: ['江湖相遇', '武功切磋', '恩怨纠葛', '门派争斗', '武林大会'],
  forbiddenPatterns: [
    '内力值', '战力', '等级提升',   // No numerical power system
    '系统', '面板', '属性点'
  ],
  fatiguedWords: ['震惊', '无敌', '碾压', '秒杀'],
  languageRules: [
    {
      bad: '内力增加了100点',
      good: '一股暖流沿经脉漫开,指尖的颤抖渐渐平息'
    }
  ],
  auditDimensions: [
    '武功描写感官化',
    '江湖规则内部一致性',
    '恩怨情仇弧线完整性'
  ]
}
```

### Style Import Pipeline

```typescript
import { StyleAnalyzer } from '@actalk/inkos/style'

const analyzer = new StyleAnalyzer()

// Analyze reference text
const profile = await analyzer.analyze('./reference-novel.txt')
console.log(profile)
// {
//   avgSentenceLength: 18.3,
//   ttr: 0.42,           // Type-Token Ratio
//   rhetoricalDensity: 0.15,
//   paragraphLengthDist: { p25: 45, p50: 89, p75: 156 },
//   punctuationStyle: 'sparse'
// }

// Import into book (generates style_profile.json + style_guide.md)
await analyzer.importToBook('./reference-novel.txt', '吞天魔帝', {
  authorName: '某作者'
})
```

## Audit Revision Loop

The v0.4 hardened audit-revision loop prevents revision from introducing more AI markers:

```
AuditorAgent (temp=0)
     ↓ critical issues found
ReviserAgent spot-fix
     ↓
AI marker count comparison
     ↓ markers increased?
  YES → discard revision, keep original
  NO  → accept revision
     ↓
Re-audit (temp=0)
```

**Key settings for audit consistency:**
- Auditor always runs at `temperature: 0` — eliminates 0–6 critical variance on same chapter
- Default revision mode is `spot-fix` (only modify problem sentences)
- `rewrite` mode is available but measured to introduce 6× more AI markers
- `polish` mode is boundary-locked: no paragraph add/delete, no name changes, no new plot

## Spinoff Canon Constraints

When `parent_canon.md` is detected, 4 additional audit dimensions activate automatically:

```markdown
# parent_canon.md (auto-generated by `inkos import canon`)

## 正传世界规则
- 力量体系: 炼体→炼气→炼丹→炼神→炼虚
- 地理: 九州大陆,东海以东无人居住
- 阵营: 正道五宗 vs 魔道三门

## 关键事件时间线
- 第1章: 主角获得吞天诀
- 第45章: 正道五宗盟约成立 [分歧点]

## 角色快照 (分歧点时状态)
- 林天: 炼气期第三层,未知父母身世
- 剑宗宗主: 在世,尚未叛变

## 伏笔状态 (正传专属,番外禁止回收)
- 古剑残片: 未解
- 神秘老人身份: 未解
```

## Troubleshooting

**Validator fires on every chapter**
Check `book_rules.md` fatigue word list — words listed there are enforced ≤1 per chapter. Remove infrequently used terms.

**Audit results wildly inconsistent between runs**
Confirm auditor temperature is locked to 0 in config. If using a proxy LLM API, ensure it respects `temperature: 0`.

**Revision introduces more AI markers than original**
This is expected behavior — InkOS v0.4 automatically detects this and discards the revision. If it happens repeatedly, switch from `rewrite` to `spot-fix` mode explicitly.

**Spinoff audit incorrectly flags events**
Verify `parent_canon.md` has accurate divergence point timestamps. Events before the divergence point are canon-locked; events after are fair game for the spinoff.

**Daemon stops a book after repeated failures**
Check `daemon status` for the suspended book. After fixing the underlying issue (usually outline ambiguity or `book_rules.md` contradiction), run `inkos daemon resume 书名`.

**Style guide not being applied by writer**
Run `inkos style import` again — if `style_guide.md` is missing or empty, the writer skips style injection silently. Check that the reference text is ≥5000 characters for reliable fingerprinting.

Related Skills

openclaude-multi-llm

22
from Aradotso/trending-skills

Use Claude Code's full tool system with any OpenAI-compatible LLM — GPT-4o, DeepSeek, Gemini, Ollama, and 200+ models via environment variable configuration.

open-multi-agent-orchestration

22
from Aradotso/trending-skills

Expertise in using open-multi-agent, a TypeScript framework for building production-grade multi-agent AI teams with task scheduling, dependency graphs, and inter-agent communication.

oh-story-claudecode-writing

22
from Aradotso/trending-skills

网文写作 skill 包,覆盖长篇与短篇网络小说的扫榜、拆文、写作、去AI味全流程

gemma-tuner-multimodal

22
from Aradotso/trending-skills

Fine-tune Gemma 4 and 3n models with audio, images, and text on Apple Silicon using PyTorch and Metal Performance Shaders.

edict-multi-agent-orchestration

22
from Aradotso/trending-skills

Install and use the Edict (三省六部) multi-agent orchestration system with 12 specialized AI agents, real-time kanban dashboard, and audit trails

cmux-terminal-multiplexer

22
from Aradotso/trending-skills

AI-native terminal multiplexer with programmable socket API, full Playwright-equivalent browser automation, and agent team coordination — built for Claude Code and autonomous agent workflows

```markdown

22
from Aradotso/trending-skills

---

zeroboot-vm-sandbox

22
from Aradotso/trending-skills

Sub-millisecond VM sandboxes for AI agents using copy-on-write KVM forking via Zeroboot

yourvpndead-vpn-detection

22
from Aradotso/trending-skills

Android app that detects VPN/proxy servers (VLESS/xray/sing-box) via local SOCKS5 vulnerability, exposing exit IPs and server configs without root

xata-postgres-platform

22
from Aradotso/trending-skills

Expert skill for Xata open-source cloud-native Postgres platform with copy-on-write branching, scale-to-zero, and Kubernetes deployment

x-mentor-skill-nuwa

22
from Aradotso/trending-skills

AI-powered X (Twitter) content strategy skill that distills methodologies from 6 top creators + open-source algorithm data into actionable writing, growth, and monetization guidance.

wx-favorites-report

22
from Aradotso/trending-skills

End-to-end pipeline to extract, decrypt, and visualize WeChat Mac favorites from encrypted SQLite DB into an interactive HTML report.