Prerequisites
Run wewrite run show to read the current task. If there is no task but the user has given a topic, create one in draft mode; if there is no topic, switch to wewrite-topic. This module only writes artifacts.brief、artifacts.claims and
artifacts.draft;artifacts.article is generated by the review module after approval.
Read {home}/style.yaml; if it does not exist, first execute wewrite-style. Read the custom persona by priority
{home}/personas/<name>.yaml, built-in personas/<name>.yaml, and finally fall back to midnight-friend.
The persona only controls expression preferences and cannot override facts, personal materials, or the article brief.
Run on entry wewrite run step write in_progress。
3. Article task and materials
Read in full:
读取: {skill_dir}/references/article-brief.md
读取: {skill_dir}/references/editorial-quality.md
读取: {skill_dir}/references/frameworks-quick.md
读取: {skill_dir}/references/content-enhance.md
3.1 Define the article first
Clarify the target reader, reading context, real problem, takeaway, core judgment, added value, applicable boundaries, and strongest opposing view.
Choose the most suitable one from pain point, story, list, comparison, hot topic interpretation, opinion, and retrospective. Write the result into
artifacts.brief, and do not jump directly to the main text.
At the same time, record the personal materials for this session: only experiences, observations, or exact words explicitly provided by the user in the current task count as usable.
personal_materials.available=false In this case, first-person judgment may be written, but it is forbidden to fabricate personal experiences, friends or colleagues, interviews,
dialogue, time and place, actions, and sensory scenes. When the persona requires a story or personal opening, switch to an observation, question, or judgment opening.
3.2 Establish claims and evidence
Search around the 3-6 claims that the article truly needs to prove. Every specific data point, quotation, case, or time-sensitive fact that enters the article must be verified on the original page and recorded immediately:
wewrite sources add --url "{原始页面}" --title "{标题}" --publisher "{发布方}" \
--published-at "{日期}" --claim "{该页面支持的具体主张}" --status verified
Prioritize original reports, official documents, and information from the parties involved. Mark user materials as user_provided; do not mark search summaries, model
memory, or sample essays as verified; especially do not mark model memory as verified. Write facts, inferences, opinions, and user experiences into artifacts.claims, citing
sources.yaml source numbers.unsupported must not enter the first draft.
When search is unavailable, write only analysis and bounded judgments that do not depend on the latest data; delete unverifiable numbers, quotations, and "research shows," and record the downgrade in the task.
3.3 Safety enhancement
According to content-enhance.md , supplement the current framework with new angles, action conditions, real details, or decision criteria. Enhanced content must
also enter the claims and source list. If materials are insufficient, narrow the claims or change the framework; do not force a reversal, add stories, or manufacture "inside information."
4. Write the first draft
First run wewrite learn-edits --summarize --json to obtain rules still within their validity period, and do not directly trust the old
playbook.md cached scores. Use only rules matching the current content_type/framework/persona:
hard=true are hard constraints, and the rest are for reference only; global structure or tone rules must not be enforced if they are only a one-time modification.
Read at most 2 relevant sample essays from the sample library:
- Sample essays marked
ownership=userand created/modified by the user can help calibrate voice and structure. - Third-party sample essays or old sample essays lacking metadata are all treated as third-party and can only be referenced for rhythm and structure.
- No model essay can provide reusable personal experiences, characters, dialogue, specific details, opinions, or sentences.
Writing requirements:
- The title is accurate and has a clear target and benefit point; the body is usually 1200-2500 characters and can be adjusted according to the assignment brief.
- The opening should get to the reader's problem or the core judgment as quickly as possible; each section serves
brief.sectionsand the corresponding claim. - Clearly distinguish facts, inferences, and personal opinions; write out counterarguments and applicable boundaries, and do not pad the word count with consensus or clichés.
- The account voice comes from style, persona, and filtered learning results, but content and evidence always take priority.
- It is forbidden to fabricate personal experiences, identities, interviews, numbers, evaluations, quotations, or details that do not exist in the sources.
If flags.use_writer_model=true, take brief.yaml、claims.yaml, the source ledger, the style, and the above boundaries as
complete input to call wewrite llm-write, and output to artifacts.draft; if it fails, the current Agent writes directly. Otherwise,
write the first draft directly. In both ways, read through it once according to the assignment brief and the claims list, and correct attribution, repetition, jumps, and out-of-bounds content.
After completion, update the task:
wewrite run update --patch '{"framework":"...","enhance_strategy":"...","persona":"...","word_count":0,"provenance":{"verified_sources":0,"unverified_sources":0,"exemplars":[],"playbook_rules":[]}}'
wewrite run step write completed
When calling separately, tell the user the paths to the first draft, the assignment brief, and the claims list, and suggest continuing with wewrite-review; do not call the first draft
a finished manuscript that has already been reviewed.