
Article Enrichment
- 127 installs
- 27.8k repo stars
- Updated August 5, 2026
- garrytan/gbrain
Rewrites raw article text dumps in a knowledge base into structured pages with an executive summary, verbatim quotes, insights, and cross-references.
About
Transforms wall-of-text article pages into quotable, actionable knowledge-base pages while preserving the raw source in a collapsed block. A developer uses it to make ingested articles useful and referenceable.
- Requires three or more verbatim quotes and context-grounded 'why it matters'
- Sonnet for bulk enrichment, Opus for high-value content
Article Enrichment by the numbers
- 127 all-time installs (skills.sh)
- Ranked #1,261 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/garrytan/gbrain --skill article-enrichmentAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 127 |
|---|---|
| repo stars | ★ 27.8k |
| Last updated | August 5, 2026 |
| Repository | garrytan/gbrain ↗ |
What it does
Rewrites raw article text dumps in a knowledge base into structured pages with an executive summary, verbatim quotes, insights, and cross-references.
Files
article-enrichment — From Raw Dumps to Useful Brain Pages
Convention: see conventions/quality.md for
citation rules, verbatim-quote requirements, and back-link enforcement.
>
Convention: see _brain-filing-rules.md for
filing rules. Article pages live under media/articles/ for raw ingest;personalized one-of-one synthesis output uses the sanctioned
media/articles/<slug>-personalized.md exception.What this does
Takes an article brain page that's a wall of raw extracted text and rewrites it as a structured page with:
- Executive Summary — 2-3 sentences, the ONE thing worth remembering
- Why It Matters — connects to the user's specific projects + interests
(read from brain context, not assumed)
- Quotable Lines — 3-5 VERBATIM quotes worth referencing in essays
- Key Insights — actual insights, not topic labels
- Surprising or Counterintuitive — what makes this content unique
- See Also — standard markdown links to related brain pages
Raw source content is preserved in a collapsed <details> section so the original is never lost.
When to invoke
- New article page lands in the brain via media-ingest with
needs_enrichment: true - Existing article page is a wall of text under a
## Contentheader with
no synthesis
- User says a brain page is useless, boring, or a dump
- An LLM-judge brain-quality eval fails on quotability or actionability for
an article page
The pipeline
1. READ → Open the article brain page; parse frontmatter + body.
2. SCAN → Look for ## Content (raw dump) and absence of ## Executive Summary.
3. CONTEXT → gbrain query the article's key entities to ground "Why It Matters".
4. ENRICH → Sonnet (default) or Opus (for high-value content) restructures.
5. WRITE → Replace ## Content with the structured sections; preserve raw
source in <details>; clear needs_enrichment in frontmatter.
6. CROSS-LINK→ Add back-links from referenced people/companies pages
(Iron Law per conventions/quality.md).Invocation
The skill itself is markdown instructions to the agent. It does NOT ship a deterministic CLI command in v0.25.1. The agent uses gbrain's existing operations:
# 1. Find candidate pages
gbrain query "needs_enrichment: true type:article" --limit 50
# 2. For each candidate, read the page
gbrain get media/articles/<slug>
# 3. Enrich via the agent's LLM (Sonnet by default; Opus for high-value)
# The agent reads the raw content + brain context + writes the structured page.
# 4. Write the enriched page
# Use the put_page operation with the new structured markdown body.
# 5. Cross-link entities
# For every person/company mentioned, add a timeline back-link.Quality bar
An enriched page passes if it has:
- ✅
## Executive Summary(2-3 sentences) - ✅
## Quotable Lineswith ≥3 verbatim quotes (literal quotes, not paraphrase) - ✅
## Key Insightswith ≥3 bullets (insights, not topic labels) - ✅
## Why It Mattersconnecting to specific brain context (not generic) - ✅
## See Alsowith standard markdown links (NOT[[wiki-links]]) - ✅
<details>block preserving the raw source content
Model selection
| Model | Use when | Quote accuracy |
|---|---|---|
| Sonnet (default) | Bulk enrichment, most articles | Good — occasionally paraphrases |
| Opus | High-value content, original-thinking pieces, longreads | Excellent — respects "verbatim" instruction |
Rule: for bulk enrichment, do a Sonnet draft pass and spot-check 5 with the LLM-judge brain-quality eval. If quotes are paraphrased, switch to Opus for that batch.
Link convention
All cross-references use standard markdown links: [Title](relative/path.md). NEVER use [[wiki-links]] — they don't render on GitHub.
Anti-Patterns
- ❌ Paraphrasing quotes ("the author argues that…"). Quotes are verbatim
or they're not quotes.
- ❌ Generic "Why It Matters" ("this is important because innovation").
Tie to specific brain context or remove the section.
- ❌ Inventing topic labels and calling them insights. An insight is a
thing the article says that you didn't already know.
- ❌ Discarding the raw source. Always wrap it in
<details>. - ❌ Re-enriching non-idempotently — check the
needs_enrichmentflag in
frontmatter; skip if already false.
Related skills
skills/media-ingest/SKILL.md— creates the raw article pages this skill enrichesskills/idea-ingest/SKILL.md— link/article ingestion with author people-page enforcementskills/conventions/quality.md— citation + back-link rules
Contract
This skill guarantees:
- Routing matches the canonical triggers in the frontmatter.
- Output written under the directories listed in
writes_to:(when applicable). - Conventions referenced (
quality.md,brain-first.md,_brain-filing-rules.md) are followed. - Privacy contract preserved: no real names, no fork-specific filesystem path literals, no upstream-fork references.
The full behavior contract is documented in the body sections above; this section exists for the conformance test.
Output Format
The skill's output shape is documented inline in the body sections above (see "Output", "Brain page format", or equivalent). The literal section header here exists for the conformance test (test/skills-conformance.test.ts).
// Routing eval fixtures for skills/article-enrichment. Each intent
// includes at least one trigger string as substring.
// `enrich` parent skill naturally co-fires (skills chain by design,
// per RESOLVER.md preamble); ambiguous_with acknowledges that.
{"intent":"This article page is a wall of raw text — please enrich this article with quotes and insights","expected_skill":"article-enrichment","ambiguous_with":["enrich"]}
{"intent":"Run a batch enrich pass on the unstructured articles in my brain","expected_skill":"article-enrichment","ambiguous_with":["enrich"]}
{"intent":"Make brain pages useful by enriching the article dumps","expected_skill":"article-enrichment","ambiguous_with":["enrich"]}
{"intent":"Please enrich brain pages that have raw content but no executive summary","expected_skill":"article-enrichment","ambiguous_with":["enrich"]}
{"intent":"Enrich this article so it has verbatim quotes, key insights, and a why-it-matters section","expected_skill":"article-enrichment","ambiguous_with":["enrich"]}