Directory Indexer
Generate or update index.md files — yellow pages for directories.
Principles
-
List what exists — Names and links only
-
No judgment — No status, flags, or inference
-
Hierarchical nav — ↑ parent · → related
-
Docs only — No code files (separate code-mapper skill)
-
Skip terminal directories — No index.md in directories with no subdirectories
Excludes
Directories: node_modules , .git , .venv , pycache , src , lib , dist , build , vendor
Files: *.py , *.js , *.ts , *.jsx , *.tsx , *.go , *.rs , *.java , *.rb , *.php , *.c , *.cpp , *.h , *.css , *.scss , *.json , *.yaml , *.yml , *.toml , *.lock , *.sum
Directory Types
Pattern Subdirs
artifacts/
sales, marketing, engineering, operations, etc
docs/
references, workflows, etc
meeting-notes/
as found
research/
customer, market, etc
strategy/
canvas, goals, financial, etc
threads/
{domain}/{type}/{thread}/ — see Threads Structure
any other as found
Threads Structure
threads/ ├── index.md ├── marketing/ │ ├── index.md │ └── {thread_name}/ │ ├── 1-input.md ← source for index entry (frontmatter) │ ├── 2-hypothesis.md │ ├── 3-implication.md │ ├── 4-decision.md │ ├── 5-actions.md │ └── 6-learning.md ← NO index.md here ├── sales/ ├── engineering/ └── operations/
Rules:
-
Stop at 1-input.md — If directory contains 1-input.md , it's a thread leaf. Do NOT create index inside.
-
Read 1-input.md — Extract thread_id from frontmatter and first heading for parent index entry.
-
Index at domain level — marketing/index.md lists all threads under it.
1-input.md frontmatter (source for index):
thread_id: marketing_content-authority_2026q1 goal_id: distribution-q1/1.content-authority created: 2026-02-01 owner: mkt-content-manager status: active
Content Authority Execution
Generated index (e.g., marketing/index.md ):
Marketing
- content-authority_2026q1 — Content Authority Execution
↑ Threads
Process
- Scan
find {root} -type f -name ".md"
! -path "/node_modules/"
! -path "/.git/"
! -path "/src/"
! -path "/lib/"
! -path "/dist/"
! -path "/build/"
! -path "/vendor/*"
- Check for Terminal Directory
Terminal = has NO subdirectories (only files)
Do NOT create index.md in terminal directories
Instead, parent index lists their contents under ## heading
if directory has subdirectories: → CREATE index.md (lists files + subdirs) else: → SKIP index.md — parent will bubble up contents
- Check for Thread Leaf
If 1-input.md exists, this is a thread — do NOT index inside
if [ -f "{dir}/1-input.md" ]; then
Skip — parent will index this via 1-input.md frontmatter
exit fi
- List
For .md files: - {name} — {snapshot}
For non-terminal dirs: - {name} — {snapshot}
For terminal dirs: bubble up contents under ## {dir_name} heading:
{dir_name}
- {file} — {snapshot}
For threads (has 1-input.md): read thread_id and first heading from 1-input.md
Description: first heading or first line — max 40 chars, truncate with …
- Link Navigation
- Recurse
For subdirs with content → generate index → link ↑↓ Skip when:
-
Directory contains 1-input.md (thread leaf)
-
Directory has no subdirectories (terminal — contents bubbled up to parent)
Output Format
{Directory Name}
↑ Parent
Examples
Artifacts:
Artifacts
sales
engineering
- auth-service — OAuth2 implementation
Threads (domain level):
Marketing
↑ Threads
Threads (domain level — reads from 1-input.md):
Marketing
- content-authority_2026q1 — Content Authority Execution
- github-organic_2026q1 — GitHub Organic Growth Execution
↑ Threads
Strategy (canvas is terminal — files bubble up):
Strategy
- Goals — OKRs and milestones
Canvas
- 00.mode — Business Model Mode
- 01.context — Strategic Context (KBOS)
Boundaries
Does: List .md files, read 1-input.md for threads, generate links, build navigation
Does NOT:
-
Index code files
-
Create index inside thread dirs (with 1-input.md)
-
Create index in terminal directories (no subdirs)
-
Infer status or add judgment
Error Handling
Situation Action
Directory empty Skip, no index needed
No .md files found Create index listing subdirs only
1-input.md malformed Use directory name as fallback, warn
Circular symlinks Skip symlinked directories
Permission denied Skip directory, log warning
Existing index.md Overwrite with fresh generation
References
-
references/patterns.md — Detection patterns for directory types and navigation
-
references/templates.md — Index.md templates per directory type