two-pass-writer

two-pass-writer is a skill for Claude Code, Codex from Glad-Labs/poindexter. It costs 58 tokens per session (2,286 once invoked), scanned A, original, Apache-2.0.

A two-stage blog-writing workflow for specialised topics: it first drafts the article, then replaces marked claims with verified outside facts and source links.

In plain words
What is it for?
Use it to write a niche article from a topic, angle, and background, then revise it with sourced external information.
Why use it?
It separates composition from fact checking and makes unsupported claims visible during drafting.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to write a niche article from a topic, angle, and background, then revise it with sourced external information.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/glad-labs/poindexter/two-pass-writer
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add Glad-Labs/poindexter --skill two-pass-writer
Clone the repo
git clone --depth 1 https://github.com/Glad-Labs/poindexter

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for two-pass-writer

README.md
[![agentmods](https://agentmods.dev/badge/skills/glad-labs/poindexter/two-pass-writer/github.svg)](https://agentmods.dev/skills/glad-labs/poindexter/two-pass-writer)
Your own site
<a href="https://agentmods.dev/skills/glad-labs/poindexter/two-pass-writer"><img src="https://agentmods.dev/badge/skills/glad-labs/poindexter/two-pass-writer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for two-pass-writer

Your own site · 80×15
<a href="https://agentmods.dev/skills/glad-labs/poindexter/two-pass-writer"><img src="https://agentmods.dev/badge/skills/glad-labs/poindexter/two-pass-writer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 58 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,286 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00058 $0.02286
Opus 5 $0.00029 $0.01143
Sonnet 5 $0.00012 $0.00457
Haiku 4.5 $0.00006 $0.00229

Measured 7d ago against content hash 7d20d3337268, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

two-pass-writer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

src/cofounder_agent/skills/content/two-pass-writer/SKILL.md · 194 lines

How it starts

The opening of the file, as written. The whole thing — 194 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Two-pass writer skill

Two prompts the canonical_blog pipeline uses to draft and revise niche-driven posts. The architect routes on the description above; UnifiedPromptManager resolves each template by key (Langfuse override still wins over the bodies below).

Keys follow the dotted shape atoms.<atom_name>.<purpose>. Variables use {name} placeholders matched against str.format kwargs; curly literals inside JSON-shaped templates must be doubled ({{ and }}).

Default prompts — basic but functional; production-quality prompt packs ship as a premium add-on.

atoms.two_pass_writer.revise_prompt

Revise the following draft. For each [EXTERNAL_NEEDED: ...] marker, substitute
the corresponding external fact below and link it inline to its source URL.
Leave all other content as-is.

Return the COMPLETE revised post exactly once. Do not repeat, duplicate, or
append a second copy of any section, and do not pad the length — the revision
should be about as long as the original and end on a complete sentence.

If revision exposes a new claim that needs outside support, mark it
[EXTERNAL_NEEDED: ...] again so the next pass can fill it.

Original draft:
{draft}

External facts:
{aug_block}

atoms.two_pass_writer.generate_with_context

Write a blog post on the topic: "{topic}" with this angle: "{angle}".

{instructions}

Background context — your own prior work, posts, and research notes, each shown
as "From <source>:". These are for your understanding only — write what they say
in your own words and never print a source filename or its label in the post.
Lead with what you (the publisher) have actually built, run, or found here; use
outside sources to corroborate, not to carry the whole article:
{snippet_block}

EVIDENCE MARKERS — the only two markers this prompt accepts:

Both show the reader something REAL instead of a diffusion model's impression
of it. Both take a key from a fixed list; an unlisted key renders nothing, so
never invent one, and never put data, numbers, a description, or a URL inside
the brackets — the contents come from the system, not from you.

- CHARTS. When a section states a NUMERIC claim our own measurements can plot —
  a comparison, a rate, a spread — place [CHART: chart-key] on its own line. It
  draws the real figures to scale. Available charts:
{chart_targets}
- SCREENSHOTS. When a section makes a claim about THIS system that a real screen
  would evidence — a dashboard, a queue, a metric — place
  [SCREENSHOT: target-key] on its own line. It captures the live surface, so the
  reader sees the actual numbers. Available targets:
{screenshot_targets}

- Place at most one of each, and only where the surrounding prose actually
  discusses what it shows. Add no OTHER image markers: ordinary illustrations
  are chosen for you after the draft is written.

VOICE
- First person is welcome when it is grounded in the context or SOURCES above.
  Use "we"/"our" for work, tests, or results that actually appear there
  ("we ran this on a 32GB card and saw..."). Never claim work that is not in a
  source — if you cannot ground a "we" statement, drop it.
- Write to the reader as "you". Take a clear position; don't hedge with
  "both have merits".

CITE YOUR SOURCES (do this — don't avoid the numbers)
- Use the specific numbers, prices, and named results from your sources, and
  link each one inline to its exact URL: "it sustains [142 fps at 4K](https://...)".
- Any claim that names a publication, person, or statistic needs an inline
  markdown link to its source URL. With no URL, state the point plainly and
  drop the attribution — never write a bare "[]", a placeholder parenthetical
  like "(source)", "(citation)", or "(url)", or "According to [Source]" with no
  link.
- The ONLY square brackets in the post are real markdown links —
  [visible text](https://real-url). Never reproduce a background-note label
  (a filename, a slug, or a "From <source>:" prefix) as a citation.
- Never invent a statistic, percentage, benchmark, or version number. Use a
  figure only when it appears verbatim in a source or background note;
  otherwise describe the effect in words ("a clear speedup") with no number. A
  plausible-sounding but unsourced number fails review.
- No footnotes and no reference list. Do not use footnote markers ([^1],
  [^2]), and do not add a "Sources", "References", "Footnotes", or "Further
  reading" section at the end. A source is either an inline markdown link in
  the sentence, or it is not cited at all.
- Never write a placeholder or guessed URL, a bare bracketed domain
  ([example.com/page]), or a meta-note like "placeholder URLs". If you lack a
  real https:// URL for a fact — normal for your own background notes — state
  it in plain prose with no marker; the pipeline adds internal links afterward.

BE SPECIFIC — USE REAL NAMES
- Name the actual products, tools, models, and numbers from the topic and your
  context. If the topic says "RTX 5090", write "RTX 5090" — never a generic
  stand-in like [High-End Consumer GPU], [Product Name], or [Enterprise
  Accelerator]. A bracketed placeholder is always worse than naming the thing.
- Naming an entity that already appears in your topic or context is NOT
  fabrication — it is the job. The anti-fabrication rule bans inventing a
  precise number that has no source; it never bans using a name or figure that
  is already in front of you. When unsure, name the entity and describe the
  effect in plain words.
- Leave NO fill-in-the-blank token in the final post — no [bracketed
  placeholder] of any kind, no "TBD", no "(add benchmark here)". If you lack a
  specific, write the sentence without it rather than marking a gap.

NAMING PEOPLE (products and people follow different rules)
- Name a person when they are the subject of the piece, the author of a source
  you are citing, or a public figure being discussed in their public work — a
  researcher and their paper, an author and their book, an executive and their
  public statement. That is the job; the sourcing rules above apply as normal.
- Everyone else stays out of the post. When research surfaces a private
  individual — someone who merely shares a name or a location with your topic,
  a named reviewer, a local business owner — make the point without them. A
  real person is not colour for an opening paragraph.
- Describe a named person only by what they published, built, or said on the
  record. Never characterise how someone does their job from rating-site
  scores, review-site listings, or complaint records — accurate or not, that is
  not something to write about a person.

STRUCTURE
- Use real "## " H2 headings ("### " for subsections). Never use a bold line as
  a fake heading, and don't open the body with an H1 — the title is added
  separately.
- Cover each point once. Do NOT repeat or restate a section to fill length. If
  you find yourself rewriting something you already covered, move to the
  conclusion instead.
- Finish with a complete concluding paragraph. Never stop mid-sentence.

LENGTH
- Aim for roughly {target_length} words. Treat this as a depth target, not a
  quota: reach it by covering the topic thoroughly — concrete detail, worked
  examples, and reasoning — never by padding, repeating, or stretching a thin
  point. If the topic is genuinely covered in fewer words, stop there; if it
  needs more to be complete, write more. A focused post that is shorter beats a
  padded one that hits the number.

STYLE
- Vary sentence and paragraph length. Avoid "delve", "testament", "tapestry",
  "navigating the landscape", "multifaceted", "at its core", "at the heart of",
  "It's not just X, it's Y", "In conclusion", "In summary".

Return the full post body once, in Markdown — no preamble, no image
descriptions, and no placeholder tokens other than [EXTERNAL_NEEDED: ...].

Read the full file on GitHub · 194 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago Changed · +21 lines 7d20d3337268
  2. 11d ago First seen · 173 lines · 58 tokens per session scan A 7f88bc109be7

Subscribe to this mod's changes

two-pass-writer is a skill published in the GitHub repository Glad-Labs/poindexter (5 stars, last pushed today), licensed Apache-2.0. It adds 58 tokens to every session and 2,286 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

spec-generate

Product Spec Builder that helps PMs generate clear, structured, testable PRDs. Creates both full and lightweight specs for any product or platform with a guided step-by-step workflow. Output in English Markdown format.

djblack1209-coder/OpenClaw-Bot · 46 tokens

Playwright (Automation + MCP + Scraper)

Browser automation via Playwright MCP. Navigate websites, click elements, fill forms, take screenshots, extract data, and debug real browser workflows. Use when (1) you need a real browser, not static fetch; (2) the task involves Playwright MCP, browser tools, Playwright tests, scripts, or JS-rendered pages; (3) the…

djblack1209-coder/OpenClaw-Bot · 104 tokens

product-team

A Chinese-language product development workflow led by one AI team lead taking several roles: product strategy, requirements writing, prototype creation, and user-experience review.

djblack1209-coder/OpenClaw-Bot · 104 tokens

ux-walkthrough-skill

A user-experience review process that examines a product’s screens and user journeys against its product requirements document (PRD). It checks consistency, accessibility, errors, and whether users can complete tasks clearly.

djblack1209-coder/OpenClaw-Bot · 72 tokens

glmocr

An optical character recognition tool that extracts printed text, tables, mathematical formulas, and handwriting from images or PDFs.

djblack1209-coder/OpenClaw-Bot · 87 tokens

cli-anything

A tool-building workflow that turns software controlled through a graphical interface—such as GIMP or Blender—into a command-line tool. The resulting tool can return machine-readable JSON as well as text for people.

djblack1209-coder/OpenClaw-Bot · 37 tokens