Overview
Validate research-phase artifacts, resume progress from any interruption point, and run chapter writing and review through a subagent loop until the entire planned novel is complete and all review gates pass.
Process advancement is supervised by lint. The controller cannot advance the drafting state based solely on verbal claims in chat; it must read project artifacts and run the drafting validator.
When to Use
- Project status is
research_completeordraft_blocked - All required research files exist and their content is sufficient
- The user wants to start or continue writing chapters
- Before review passes, the drafting process must remain blocked
Entry Gate
Before starting writing, check:
00-project/workflow-status.mdstatus isresearch_completeordraft_blocked00-project/workflow-status.mdcurrent stage is compatible with the drafting stage00-project/success-criteria.md20-story/characters/20-story/plot-outline.md20-story/foreshadowing.md30-draft/chapter-plan.md
If any item is missing or its content is weak, stop immediately and report the blockage.
Validation Gate
Before advancing the workflow state, run the drafting validator against the novel root directory:
node --experimental-strip-types <skill-root>/scripts/validate-drafting-project.mts --project-root <project-root> --mode Entry
node --experimental-strip-types <skill-root>/scripts/validate-drafting-project.mts --project-root <project-root> --mode Progress
node --experimental-strip-types <skill-root>/scripts/validate-drafting-project.mts --project-root <project-root> --mode Completion
node --experimental-strip-types <skill-root>/scripts/validate-drafting-project.mts --project-root <project-root> --mode WordCount
node --experimental-strip-types <skill-root>/scripts/validate-drafting-project.mts --project-root <project-root> --mode WordCount --chapter chapter-03
Usage:
Entry: before drafting starts or resumesProgress: after the writer's or reviewer's output changes the current chapter stateCompletion: before settingdraft_completeorNext Allowed Skill: novel-deliveryPreviouslyWordCount: only perform word count checks, do not advance the workflow, and do not check the review / completion gate
WordCount rules:
- Without
--chapter, check whether the chapter word counts of all existing chapter files fall within the target range - With
--chapter chapter-XXor--chapter 3, only check the specified chapter WordCountdoes not check the completion status of the whole book; the total word count of the whole book is still handled byCompletionResponsible for
Word count validation priority rules:
- When the agent only needs to confirm whether a chapter or a single chapter's word count meets the standard, it must prioritize running
WordCountmode - Do not estimate word counts yourself in chat, and do not hastily create new statistics commands to replace the validator
- Only when debugging
check-word-count.mtsitself is it allowed to bypass this entry point
Validator output has final authority. As long as it fails, the process must not be advanced.
Project Root Directory Identification
All paths in this skill should be treated as relative to the novel project root directory, not by default relative to the workspace root directory.
Before reading or writing 00-project、30-draft、40-review or 50-delivery , identify the root directory according to the following rules:
- If the current directory already contains
00-project/workflow-status.md, use the current directory - Otherwise, if exactly one child book directory under the current directory contains
00-project/workflow-status.md, use that subdirectory - Otherwise, stop and report that the project root directory is ambiguous
Once a valid novel root directory has been identified, do not continue repeatedly searching in the sibling directory tree.
Resume Logic
Check:
30-draft/chapters/30-draft/continuity/40-review/chapter-reviews/
Continue from the first chapter that is missing, has not passed review, or has not yet been marked as passed.
Subagent Chain-of-Thought Template
Before performing drafting or review, Writer and Reviewer subagents proceed according to the following template:
- Context Understanding — Where does this chapter sit in the whole book? What is the core objective of this chapter? Which characters appear?
- Constraint review — What style constraints must this chapter follow (compare against
10-research/style-research.mdandreferences/style-analysis-guide.md's four-layer charter)? Character voice requirements (compare against the character cards)? Foreshadowing/reveal requirements (compare against20-story/foreshadowing.md)? - Execution plan — How many acts are planned? The start, end, and function of each act? Key scenes in each act?
- Self-check — Does the output cover all the above requirements? Does it pass item by item against
lint-contract.md's drafting self-check list?
Before the subagent actually produces output, it first outputs a brief summary of the above four steps.
Writer Sub-Agent Contract
Provide only to the writer:
00-project/project-brief.md10-research/style-research.md- In addition, when the Writer needs to handle style consistency, it may consult
references/style-analysis-guide.md's style reproduction charter. 20-story/characters/20-story/plot-outline.md20-story/foreshadowing.md30-draft/continuity/story-state.md- If necessary, the most recent approved
30-draft/continuity/chapter-XX-state.md 30-draft/chapter-plan.mdthe objective of the current chapter in
The writer outputs the draft of the current chapter and writes the continuity state of the current chapter.
Writer hard requirements:
- In dialogue scenes, each passage of dialogue must embody at least one subtext verb (expose/manipulate/maintain). Check against
references/theory/mckee-dialogue.md's three major functions and subtext verb system. - When drafting, check against
references/style-analysis-guide.md's four-layer charter (god/bone/skin/flesh) to verify style consistency layer by layer.
Reviewer Sub-Agent Contract
The reviewer needs to check:
- Whether the chapter word count meets the target
- Whether it meets the current chapter objective
- Whether it fits the overall outline
- Character consistency
- Style consistency (if there are explicit style constraints, check against
style-research.mdandstyle-analysis-guide.md's four-layer style framework) - Whether any disallowed premature reveals appear
- Continuity with previous chapters
- Consistency with
story-state.mdand the most recent approved continuity state - Pacing and readability
- Character behavior consistency: check against
references/theory/mckee-character.md's six-dimension system to verify whether character behavior is consistent with the character card definitions and whether contradictions exist. Confirm whether this character has perceptible arc progression in this chapter - Narrative structure verification: Does this chapter achieve
30-draft/chapter-plan.mdthe current chapter objective in? Does it correctly carry forward the previous chapter's events and set up clues for the next chapter?
When the reviewer or controller only needs to confirm whether the word count meets the standard, rather than performing a full Progress / Completion verification:
- Run
node --experimental-strip-types <skill-root>/scripts/validate-drafting-project.mts --project-root <project-root> --mode WordCount - If you need to spot-check a single chapter, run
node --experimental-strip-types <skill-root>/scripts/validate-drafting-project.mts --project-root <project-root> --mode WordCount --chapter chapter-XX - Do not implement word-count logic yourself
The reviewer must write the structured review file to 40-review/chapter-reviews/chapter-XX-review.md, and return 通过 or 不通过.
The reviewer is not responsible for rewriting the chapter body.
The reviewer must also confirm that the current chapter's 30-draft/continuity/chapter-XX-state.md can accurately record:
- Newly confirmed facts
- Changes in character cognition
- The triggering basis for changes in character cognition
- One-time events that have been triggered
- Continuity constraints that the next chapter must not violate
Character Knowledge Changes and story-state.md 's Character Knowledge must use:
<角色名> | <事实> | unknown|suspected|confirmed | source=chapter-XX
If a certain knowledge state is written as confirmed,chapter-XX-state.md , the corresponding must be provided in:
<角色名> | <事实> | basis=<本章内的触发依据>
story-state.md in the One-Time Events Consumed The source chapter must be explicitly stated, in the fixed format:
<Event Name>: chapter-XX
chapter-XX-state.md in the One-Time Events Triggered must also be recorded in a structured way, in the fixed format:
<Event Name> | consumed=yes<Event Name> | consumed=no
If an event is marked as consumed=yes, then story-state.md must contain an archive entry with the same name.
Revision loop
- If review returns
不通过, only pass the review conclusion back to the writer. - A chapter may be attempted at most 3 times for drafts.
- If the 3rd attempt still fails, stop and mark
draft_blocked。
Corresponding requirements:
- If review returns
不通过, only pass the review conclusion back to the writer - A chapter may be attempted at most 3 times for drafts
- If the 3rd attempt still fails, stop and mark
draft_blocked
Status update
When drafting begins:
- Set the status to
draft_in_progress
When a chapter has failed too many times:
- Set the status to
draft_blocked - List the blocked chapters and the reasons
When all chapters and the final review have passed:
- Set the status to
draft_complete
Whole-book completion gate
After the last planned chapter passes, perform a whole-book-level review:
- Compare the completed chapters with
30-draft/chapter-plan.mdcomparison - Align
30-draft/continuity/story-state.mdwith the passed chapters - Verify that every
40-review/chapter-reviews/chapter-XX-review.mdhas passed - Compare the total word count with the target range
Only after all the above checks pass may you set draft_complete。
Advancement preconditions
Before advancing the process, you must confirm:
- There is concrete, clear evidence of chapter completion (not a vague "almost done")
- All review comments for the current chapter have been resolved (not "fix it later")
- The timing of foreshadowing reveals is consistent with the outline (not released early)
- The retry count has not exceeded the limit (current chapter retry limit: 3 times)
Common self-persuasion
| Excuse | Reality |
|---|---|
| "Missing one file should not hinder creation" | A missing file means the contract is incomplete. |
| "It is fine to relax the review a bit; later chapters will make up for it" | Later chapters will only amplify continuity damage. |
| "Trying one more time cannot hurt" | Unlimited retries will mask the work that is truly blocked. |
Next step
After draft_complete , the next allowed skill to use is novel-delivery。
For the validator mode and mandatory artifact checks, see lint-contract.md。