Batch populate summary fields using content analysis
Scanned 9/9/2026
Install to Claude Code
npx -y skills add DavidROliverBA/ArchitectKB --skill auto-summary --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Auto Summary?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/davidroliverba-auto-summary)More formats (shields.io, HTML) on the badges page.
---
name: auto-summary
context: fork
skill: auto-summary
model: haiku
description: Batch populate summary fields using content analysis
tags: [activity/governance, domain/tooling, automation]
---
# /auto-summary
Batch populate the `summary` frontmatter field on notes where it is null or missing. The summary field is the highest-value AI triage field — it enables fast note discovery without reading full content.
## Usage
```
/auto-summary # Process all notes with null summary
/auto-summary <path> # Process specific file or folder
/auto-summary --dry-run # Preview summaries without applying
/auto-summary --type Concept # Only process specific note type
/auto-summary --limit 50 # Process at most 50 notes
```
## Instructions
### Phase 1: Find Notes Needing Summary
Use Grep to find notes with null or missing summary:
```bash
# Find notes with summary: null
Grep for "summary: null" in *.md files
# Also find notes with no summary field at all
# (These should have had summary added by template cleanup)
```
Filter results:
- Exclude `Templates/`, `.obsidian/`, `.claude/`, `Archive/`, `Attachments/`
- Exclude Daily notes (journals don't need summaries)
- If `--type` specified, filter by frontmatter type
- Sort by type for batch efficiency
### Phase 2: Generate Summaries (Parallel)
Launch parallel Haiku sub-agents, batching 20 notes per agent:
For each note, the agent should:
1. **Read the full note** (frontmatter + body)
2. **Generate a one-line summary** following these rules:
#### Summary Writing Rules
- **Length:** 10-25 words. One sentence. No period at the end
- **Voice:** Active, descriptive. State what the note IS or DOES
- **Content:** Capture the core purpose, not details
- **Avoid:** Starting with "This note...", "A document about...", "Summary of..."
- **Include:** Key entities, technologies, or decisions where relevant
#### Summary Patterns by Type
| Type | Pattern | Example |
|------|---------|---------|
| Concept | What X is | `Continuous Airworthiness Management Organisation responsible for aircraft safety compliance` |
| Pattern | How to do X | `Event-driven architecture pattern using Kafka for real-time system integration` |
| Meeting | What was discussed/decided | `Alpha sprint review covering data migration progress and API blockers` |
| ADR | What was decided and why | `Selected AWS Bedrock over Azure OpenAI for AlertHub safety processing` |
| Project | What the project delivers | `SAP to DataPlatform data integration enabling unified engineering analytics` |
| System | What the system does | `MRO Vendor MRO platform managing aircraft maintenance scheduling` |
| Person | Role and context | `Solutions Architect in Engineering IT, Alpha project lead` |
| Task | What needs to be done | `Implement Kafka consumer for Alpha work order events` |
| Incubator | What idea is being explored | `Exploring voice-activated Claude Code workflows for hands-free note capture` |
| Research | What question was investigated | `Analysis of vault structure identifying efficiency improvements for human and AI workflows` |
| Reference | What the resource covers/teaches | `AWS documentation on Bedrock guardrails for AI model safety` |
| Email | What the email communicates | `Proposal to Beta programme board for Claude Code adoption across architecture team` |
3. **Return** — list of (filepath, summary) tuples
### Phase 3: Apply Summaries
For each note with a generated summary:
1. Read current frontmatter
2. If `summary: null` — replace with generated summary (quoted string)
3. If no summary field — add `summary:` field after tags
4. Write updated file using Edit tool
**Format:**
```yaml
summary: "Continuous Airworthiness Management Organisation responsible for aircraft safety compliance"
```
Always quote the summary value since it may contain special YAML characters (colons, brackets).
### Phase 4: Report
```markdown
## Auto-Summary Results
**Notes processed:** {{count}}
**Summaries added:** {{added_count}}
**Notes skipped:** {{skipped_count}} (already has summary or insufficient content)
### By Type
| Type | Summarised | Avg Length |
|------|-----------|------------|
| Concept | 45 | 15 words |
| Meeting | 80 | 18 words |
| ADR | 30 | 20 words |
### Sample Summaries
| Note | Summary |
|------|---------|
| {{note}} | {{summary}} |
| {{note}} | {{summary}} |
```
## Safety
- Always use `--dry-run` first for vault-wide operations
- Never overwrite existing non-null summaries
- Commit to git before running
- If note body is too short (<50 words), skip rather than guess
- Summary is additive only — never removes existing summaries
## Quality Checks
After running, verify quality by:
1. Spot-check 10-15 summaries across different types
2. Ensure summaries are accurate (not hallucinated)
3. Check length (10-25 words target)
4. Verify no YAML quoting issues
## Related Skills
- `/summarize` — Detailed single-note summarisation
- `/quality-report` — Includes summary coverage metrics
- `/auto-tag` — Companion batch field population skill
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!