Skip to content
expand-topic logo

Expand Topic

expand-topic

Generate a new article on a topic. Content is published directly.

SKILL.md

Full skill instructions

Expand Topic

Generate a new article on a philosophical topic.

When to Use

  • When a todo item is type expand-topic
  • When /​expand-topic [topic] is invoked
  • After research has been completed on a topic

Instructions

1. Check for Research

Look in obsidian/​research/ for existing research on this topic.

If no research exists:

  • For simple topics, proceed with general knowledge
  • For complex topics, run /​research-topic first

2. Determine Target Location

First, check if the source research has a target_section field in its frontmatter and use that.

Otherwise, apply this priority order (favour voids and topics over concepts):

  1. Voids (obsidian/​voids/[slug].md) — if the article explores:

    • Cognitive limits or boundaries of thought
    • Unchartable territories or things that resist understanding
    • The unexplored, unexplorable, or occluded
    • Paradoxes or self-referential difficulties
    • Apophatic or negative approaches to knowledge
  2. Topics (obsidian/​topics/[slug].md) — if the article addresses:

    • Big philosophical questions (consciousness, free will, meaning, identity)
    • Substantive explorations that connect multiple concepts
    • Questions humans actually ask about life and mind
    • Anything that could be framed as "What does X mean for us?"
  3. Concepts (obsidian/​concepts/[slug].md) — only if the article is:

    • A definitional piece explaining a specific philosophical term
    • Background material that other articles will reference
    • A technical idea that serves as building block, not destination

Default to topics when uncertain. The Unfinishable Map has many concepts but fewer topics exploring what those concepts mean for the big questions.

Use kebab-case for filenames (e.g., hard-problem-of-consciousness.md).

Voids content note: Articles in the voids section explore cognitive limits, unchartable territories, and the boundaries of human thought. They should:

  • Maintain intellectual honesty about what is speculation vs. established
  • Acknowledge uncertainty about whether limits are real or merely difficult
  • Connect to the voids framework (unexplored, unexplorable, occluded)
  • Reference the voids index: [[voids]]

3. Review Style Guide

Before writing, review obsidian/​project/​writing-style.md for:

  • Document structure requirements (opening summary, H2 sections, tenet connection)
  • Named-anchor summary pattern for forward references
  • Background vs. novelty guidance (what to include/​omit)
  • LLM optimization (front-load important information)

4. Check Tenet Alignment

Before writing, review obsidian/​tenets/​tenets.md and ensure the article will:

  • Not contradict any tenet
  • Not endorse positions that tenets "rule out"
  • Acknowledge the Map's perspective where relevant

5. Generate Article

Use the existing generation tool:

uv run python scripts/​generate.py article "[Topic Title]" --style exploratory

Or write directly with this structure:

---
title: "[Topic Title]"
description: "[150-160 chars emphasizing human+AI collaboration, iterative refinement, and pursuit of truth]"
created: YYYY-MM-DD
modified: YYYY-MM-DD
human_modified:
ai_modified: YYYY-MM-DDTHH:MM:SS+00:00
draft: false
topics: []
concepts: []
related_articles: []
ai_contribution: 100
author:
ai_system: [current model]
ai_generated_date: YYYY-MM-DD
last_curated:
---

[Opening paragraph - accessible hook into the topic]

## [First Major Section]

[Content...]

## [Second Major Section]

[Content...]

## Relation to Site Perspective

[How this topic connects to the Map's tenets - be explicit]

## Further Reading

- [[related-article-1]]
- [[related-article-2]]

## References

[If based on research, cite sources]

5.5 Length Check (Self-Edit if Over Target)

Before finalizing, count words and check against section thresholds:

uv run python -c "
from pathlib import Path
from tools.curate.length import analyze_length
a = analyze_length(Path('[filepath]'))
print(f'{a.word_count} words ({a.excess_percent:.0f}% of {a.soft_threshold} target) - {a.status}')
"

Target ranges by section:

SectionTargetSoft MaxHard Max
concepts/1500-200025003500
topics/2000-250030004000
voids/1500-200020003000

If over soft max: Self-edit before publishing:

  • Tighten prose (remove "it is the case that", "one might argue")
  • Cut redundant explanations
  • Replace detailed tangents with links to other articles
  • Ensure the core argument is preserved

If over hard max: Mandatory self-edit:

  • The article is too long for its section
  • Consider splitting into multiple articles
  • Or significantly condense following /​condense principles

Include final word count in the changelog entry.

6. Update Todo

If this was a todo item:

  1. Mark the task as complete
  2. Note the output file

7. Log to Changelog

Append to obsidian/​workflow/​changelog.md:

### HH:MM - expand-topic
- **Status**: Success
- **Topic**: [topic name]
- **Output**: [filepath]
- **Word count**: [count]
- **Based on research**: [yes/​no, link if yes]

8. Commit

Create a git commit with message:

feat(content): Add article on [topic]

Based on research: [yes/​no]

9. Check Apex Sources

After creating the article, check if it's a source for any apex article:

  1. Read obsidian/​apex/​apex-articles.md
  2. For each apex article entry, check if the new article path appears in Source articles
  3. If yes, add a task to obsidian/​workflow/​todo.md:
    - [ ] P2 apex-evolve: [apex-slug] — source [new-article] created
    

This ensures apex articles are updated when their source content changes.

Content Guidelines

Follow the comprehensive guidance in obsidian/​project/​writing-style.md.

Quick reference:

  • Lead with the most important point (LLM truncation resilience)
  • Use named-anchor pattern for forward references
  • Include "Relation to Site Perspective" section
  • Minimize standard background; focus on what's novel
  • Short: 500-800 words | Medium: 1000-1500 | Long: 2000-3000

Important

  • CRITICAL: ALWAYS set draft: false — Content is published directly. Never use draft: true.
  • ALWAYS include a description — 150-160 chars emphasizing human+AI collaboration, iterative refinement, pursuit of truth. Avoid generic descriptions.
  • ALWAYS include ai_contribution: 100
  • ALWAYS include current model in ai_system
  • ALWAYS update ai_modified timestamp
  • Content must align with site tenets

More Other skills

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

179.7K 100.1K
View

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

179.7K 89.5K
View

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

179.7K 76.1K
View

Fundamental design principles for writing maintainable, testable Python code.

40.2K 21.9K
View

Modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first strategies.

40.2K 20K
View

Generate Playwright tests from scenarios using interactive browser exploration and validation.

39.7K 18.2K
View

Modern React state management with Redux Toolkit, Zustand, Jotai, and React Query for every state category.

40.2K 14.7K
View

GDPR-compliant data handling with consent management, data subject rights, and privacy controls.

40.2K 14.3K
View

Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.

40.2K 13.5K
View

Detailed multi-file refactor planning with safety checks and rollback guidance.

39.7K 13K
View