Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Merges ephemeral report and analysis artifacts into permanent documentation. Use when LLM-generated markdown files have accumulated and need consolidation.
.claude/skills/athola-doc-consolidation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 73% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 141% | 0% |
Extracts valuable knowledge from ephemeral LLM outputs and merges it into permanent documentation.
Use this skill when:
*_REPORT.md or *_ANALYSIS.md files from Claude sessionsDo NOT use when:
(docs/, skills/)
sanctum:doc-updates)scribe:slop-detector)When merging content into permanent documentation, follow Skill(leyline:markdown-formatting) conventions: wrap prose at 80 chars (prefer sentence/clause boundaries), blank lines around headings, ATX headings only, blank line before lists, and reference-style links for long URLs.
/consolidate-docsOr invoke directly:
I have some report files that need consolidating into permanent docs.Read-only analysis to generate a consolidation plan:
Checkpoint: User reviews and approves plan before execution.
After approval, performs the consolidation:
Load: @modules/candidate-detection.md
Identifies files using:
.md files)Load: @modules/content-analysis.md
For each candidate:
Load: @modules/destination-routing.md
For each valuable chunk:
Present consolidation plan to user:
markdown# Consolidation Plan ## Source: API_REVIEW_REPORT.md | Content | Category | Value | Destination | Action | |---------|----------|-------|-------------|--------| | API inventory | Findings | High | docs/api-overview.md | Create | | Action items | Actionable | High | docs/plans/2025-12-06-api.md | Create | ### Post-Consolidation - Delete: API_REVIEW_REPORT.md Proceed with consolidation? [Y/n]
Load: @modules/merge-execution.md
After user approval:
Phase 1 tasks are delegated to haiku-class models for efficiency:
python# plugins/sanctum/scripts/consolidation_planner.py handles: -scan_for_candidates() -extract_content_chunks() -categorize_chunks() -score_value() -find_semantic_matches()
Phase 2 stays on the main model for careful merge execution.
| Category | Description | Default Destination | |----------|-------------|---------------------| | Actionable Items | Tasks, TODOs, next steps | docs/plans/YYYY-MM-DD-{topic}.md | | Decisions Made | Architecture choices | docs/adr/NNNN-{date}-{topic}.md | | Findings/Insights | Audit results, analysis | Best-match existing doc | | Metrics/Baselines | Before/after comparisons | docs/benchmarks/ | | Migration Guides | Step-by-step procedures | docs/migration-guide.md | | API Changes | Breaking changes, deprecations | CHANGELOG or api docs |
Insert content into matching existing sections, preserving style.
Use when: Destination has relevant section, content is additive.
Replace existing section with more detailed new content.
Use when: New content 2x+ more detailed or has later date.
Add new section with date and source reference.
Use when: No matching section, content doesn't fit existing structure.
Generate complete new document.
Use when: No suitable destination exists, content warrants standalone doc.
Works with other sanctum skills:
User: I have API_REVIEW_REPORT.md from our review session. Can you consolidate it?
Claude: I'll consolidate the report into permanent documentation.
**Phase 1: Triage**
Scanning for candidates...
- Found: API_REVIEW_REPORT.md (untracked, LLM markers detected)
Analyzing content...
- Extracted 6 content chunks
- High value: API inventory, action items, CLI recommendation
- Medium value: security assessment
- Low value: executive summary (generic)
Routing destinations...
- API inventory → docs/api-overview.md (CREATE)
- Action items → docs/plans/2025-12-06-api-consistency.md (CREATE)
- CLI naming → docs/adr/0002-cli-naming.md (CREATE ADR)
- Security → Already covered in docs/security.md (SKIP)
**Consolidation Plan**
[table shown]
Proceed? [Y/n]
User: Y
Claude: **Phase 2: Executing**
Created: docs/api-overview.md (1,247 bytes)
Created: docs/plans/2025-12-06-api-consistency.md (892 bytes)
Created: docs/adr/0002-2025-12-06-cli-naming.md (634 bytes)
Deleted: API_REVIEW_REPORT.md
Consolidation complete. Review the created files and commit when ready.sanctum:doc-updates - General documentation updatessanctum:git-workspace-review - Pre-flight workspace analysissanctum:pr-prep - Pull request preparationimbue:catchup - Understanding recent changescontent categories, destination paths, and merge strategies before any file is modified
*_REPORT.md, *_ANALYSIS.md, etc.)are deleted after their content is successfully merged
existing structure preserved after the merge
git status shows no untracked report-style markdown filesafter consolidation completes
the search criteria used rather than silently completing
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-18 | pass→pass | 12,539 | 6,211 | -50% | 1 | 1 | 0% | 1,926 | 3,160 | +64% | 0 | 0 | — |
case-19 | fail→pass | 10,407 | 3,972 | -62% | 1 | 1 | 0% | 1,791 | 3,040 | +70% | 0 | 0 | — |
case-20 | fail→pass | 15,004 | 2,549 | -83% | 1 | 1 | 0% | 2,266 | 2,631 | +16% | 0 | 0 | — |
case-01 | pass→pass | 7,452 | 5,135 | -31% | 1 | 1 | 0% | 1,121 | 3,177 | +183% | 0 | 0 | — |
case-02 | fail→pass | 10,560 | 2,383 | -77% | 1 | 1 | 0% | 1,788 | 2,690 | +50% | 0 | 0 | — |
case-03 | pass→pass | 9,572 | 4,326 | -55% | 1 | 1 | 0% | 1,450 | 2,903 | +100% | 0 | 0 | — |
case-08 | pass→pass | 4,153 | 2,022 | -51% | 1 | 1 | 0% | 493 | 2,693 | +446% | 0 | 0 | — |
case-04 | fail→pass | 10,516 | 3,460 | -67% | 1 | 1 | 0% | 1,630 | 2,828 | +73% | 0 | 0 | — |
case-05 | fail→pass | 7,100 | 4,028 | -43% | 1 | 1 | 0% | 1,258 | 3,030 | +141% | 0 | 0 | — |
case-06 | fail→pass | 10,737 | 2,910 | -73% | 1 | 1 | 0% | 1,719 | 2,835 | +65% | 0 | 0 | — |
case-07 | fail→pass | 12,651 | 3,799 | -70% | 1 | 1 | 0% | 1,844 | 2,972 | +61% | 0 | 0 | — |
case-09 | fail→pass | 7,406 | 3,829 | -48% | 1 | 1 | 0% | 1,186 | 2,969 | +150% | 0 | 0 | — |
case-10 | fail→pass | 9,254 | 1,648 | -82% | 1 | 1 | 0% | 1,487 | 2,579 | +73% | 0 | 0 | — |
case-11 | fail→fail | 5,342 | 2,431 | -54% | 1 | 1 | 0% | 701 | 2,662 | +280% | 0 | 0 | — |
case-12 | fail→pass | 7,049 | 4,402 | -38% | 1 | 1 | 0% | 1,123 | 3,013 | +168% | 0 | 0 | — |
case-13 | pass→pass | 3,800 | 3,420 | -10% | 1 | 1 | 0% | 537 | 2,959 | +451% | 0 | 0 | — |
case-14 | fail→pass | 9,917 | 2,791 | -72% | 1 | 1 | 0% | 1,478 | 2,765 | +87% | 0 | 0 | — |
case-15 | pass→pass | 7,785 | 5,085 | -35% | 1 | 1 | 0% | 1,317 | 2,987 | +127% | 0 | 0 | — |
case-16 | fail→pass | 9,817 | 3,273 | -67% | 1 | 1 | 0% | 1,504 | 2,818 | +87% | 0 | 0 | — |
case-17 | pass→pass | 4,362 | 3,601 | -17% | 1 | 1 | 0% | 719 | 3,014 | +319% | 0 | 0 | — |
case-21 | fail→pass | 6,046 | 3,621 | -40% | 1 | 1 | 0% | 861 | 2,826 | +228% | 0 | 0 | — |
case-22 | pass→pass | 14,127 | 2,930 | -79% | 1 | 1 | 0% | 2,175 | 2,814 | +29% | 0 | 0 | — |
case-23 | fail→pass | 8,199 | 3,852 | -53% | 1 | 1 | 0% | 1,218 | 2,922 | +140% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +61 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.