Our review
Scans YAML frontmatter from markdown files in docs/ to provide a structured map of available documentation without loading full content.
Strengths
- Minimizes token usage by avoiding full file reads
- Quick discovery of relevant documents
- Flags non-compliant files missing frontmatter
- Supports machine-readable JSON output for programmatic use
Limitations
- Requires a docs/ directory with YAML frontmatter in markdown files
- Only indexes metadata, not content
- Depends on the scan-docs.sh script being present
At the start of a session or when you need an overview of project documentation without loading full files into context.
When you need the full content of all documents or when the docs/ directory does not exist.
Security analysis
SafeThe skill runs a read-only bash script to extract YAML frontmatter from markdown files. No network calls, file modification, or execution of external payloads. It is non-invasive and uses standard file system utilities safely.
No concerns found
Examples
Run bash scripts/scan-docs.sh to list all documentation files with their YAML frontmatter metadata.Execute bash scripts/scan-docs.sh -j to get the documentation map as JSON for further processing.Scan the project documentation using bash scripts/scan-docs.sh, then tell me which approved specs exist for the current issue.name: doc-indexer description: Use this skill at the beginning of any session or when needing to understand available project documentation. Provides just-in-time context by scanning YAML frontmatter from all markdown files in the docs/ directory without loading full content.
Document Indexer Skill
Purpose
Provide just-in-time context about available project documentation without loading full file content into the context window. The doc-indexer scans all markdown files in the docs/ directory, extracts their YAML frontmatter metadata, and returns a structured map of available documentation. This enables efficient discovery of specs, plans, retrospectives, and other documentation while minimizing token usage.
When to Use
Use this skill in the following situations:
- At the beginning of any work session to understand the current state of documentation
- When starting work on a new issue to identify relevant specs and context
- Before proposing changes to understand existing specifications
- When planning a sprint to review available approved specs
- Anytime you need an overview of project documentation without reading full files
Prerequisites
- The project must have a
docs/directory - Documentation files should follow the convention of including YAML frontmatter
- The
jqtool is NOT required (script works without it)
Workflow
Step 1: Run the Documentation Scanner
Execute the helper script to scan all markdown files in the docs/ directory:
bash scripts/scan-docs.sh
This will output a human-readable summary showing each document's frontmatter metadata.
For machine-readable JSON output (useful for programmatic processing):
bash scripts/scan-docs.sh -j
Step 2: Review the Documentation Map
The scanner returns information about all markdown files found in docs/, including:
- File path: Location of the documentation file
- Frontmatter metadata: Key-value pairs from YAML frontmatter (title, status, type, etc.)
- Compliance warnings: Files missing YAML frontmatter are flagged
Example human-readable output:
---
file: docs/specs/001-synthesis-flow.md
title: AgenticDev Methodology
status: approved
type: spec
---
file: docs/changes/my-feature/proposal.md
title: My Feature Proposal
status: in-review
type: proposal
[WARNING] Non-compliant file (no frontmatter): docs/README.md
Example JSON output:
[
{
"file": "docs/specs/001-synthesis-flow.md",
"compliant": true,
"frontmatter": {
"title": "AgenticDev Methodology",
"status": "approved",
"type": "spec"
}
},
{
"file": "docs/README.md",
"compliant": false,
"frontmatter": null
}
]
Step 3: Use the Map to Identify Relevant Documentation
Based on the documentation map, identify which specific files to read for your current task:
- For implementation work: Look for approved specs related to your issue
- For spec proposals: Review existing specs to understand the current state
- For sprint planning: Identify approved specs ready for implementation
- For learning context: Find retrospectives and design docs
Step 4: Read Specific Documentation Files
Once you've identified relevant files from the map, use the Read tool to load their full content:
# Example: Read a specific spec identified from the map
Read docs/specs/001-synthesis-flow.md
This two-step approach (scan first, then read selectively) minimizes token usage while ensuring you have access to all necessary context.
Error Handling
No docs/ Directory
Symptom: Script reports "No such file or directory"
Solution:
- Verify you're in the project root directory
- Check if the project has been initialized with
project-initskill - Create
docs/directory structure if needed
Files Missing Frontmatter
Symptom: Script outputs "[WARNING] Non-compliant file (no frontmatter): ..."
Impact: These files won't have structured metadata in the output
Solution:
- Add YAML frontmatter to documentation files for better discoverability
- Frontmatter should be at the top of the file between
---markers - Example format:
--- title: My Document status: draft type: design --- # Document content starts here
Script Permission Errors
Symptom: "Permission denied" when running the script
Solution:
chmod +x scripts/scan-docs.sh
Output Interpretation Guide
Frontmatter Fields
Common frontmatter fields you'll encounter:
- title: Human-readable document title
- status: Document state (draft, in-review, approved, archived)
- type: Document category (spec, proposal, design, retrospective, plan)
- epic: Associated epic issue number
- sprint: Sprint identifier
- author: Document author
- created: Creation date
- updated: Last update date
Using JSON Output Programmatically
The JSON output mode is particularly useful when:
- Filtering documents by specific criteria (e.g., only approved specs)
- Counting documents by type or status
- Building automated workflows
- Integrating with other tools
Example using jq to filter approved specs:
bash scripts/scan-docs.sh -j | jq '.[] | select(.frontmatter.status == "approved")'
Notes
- The scanner is non-invasive and read-only - it never modifies files
- Large projects with many docs benefit most from this just-in-time approach
- The script scans recursively through all subdirectories in
docs/ - Empty frontmatter sections are treated as non-compliant
- The scan is fast and can be run frequently without performance concerns
- Consider running this at the start of each work session to stay current with documentation changes
API Documentation Generator
Documentation
Automatically generates OpenAPI/Swagger API documentation.
Technical Writer
Documentation
Writes clear technical documentation following top style guides.
Typed Documentation Forms System
Documentation
Add typed comments, documentation, todos, and metadata to Scheme code using `(doc ...)` forms. Doc annotations are authoritative for type inference, extracted by search commands (lf-todo, lf-types), and integrated with the type checker and LSP. Useful for annotating functions, marking deprecations, or tracking localized improvements alongside the code.