Skip to content
Back to skills

Doc Consolidation

ASecurity

Merges ephemeral report and analysis artifacts into permanent documentation. Use when LLM-generated markdown files have accumulated and need consolidation.

  • 342 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added December 19, 2025
developmentpythongorefactoringgitapisecuritydocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add athola/claude-night-market --skill doc-consolidation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Doc Consolidation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Doc Consolidation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/athola-doc-consolidation/badge)](https://www.skillsdirectory.com/skills/athola-doc-consolidation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: doc-consolidation
description: Merges ephemeral report and analysis artifacts into permanent documentation. Use when LLM-generated markdown files have accumulated and need consolidation.
globs: "**/*.md"
alwaysApply: false
category: documentation
tags:
- docs
- consolidation
- cleanup
- git-hygiene
- knowledge-management
status: stable
created: 2025-12-06
updated: 2025-12-06
modules:
- modules/candidate-detection.md
- modules/content-analysis.md
- modules/destination-routing.md
- modules/merge-execution.md
model_hint: standard
---

# Doc Consolidation

Extracts valuable knowledge from ephemeral LLM outputs and merges it into permanent documentation.

## When To Use

Use this skill when:
- You have untracked `*_REPORT.md` or `*_ANALYSIS.md` files from Claude sessions
- Git status shows markdown files that shouldn't be committed but contain useful content
- You want to preserve insights from code reviews, refactoring reports, or API audits
- Preparing a PR and need to clean up working artifacts

Do NOT use when:
- Files are already in proper documentation locations
  (`docs/`, `skills/`)
- Files are intentionally temporary scratch notes
- User explicitly wants to preserve the original report format
- Source files have no extractable value (pure log output)

## When NOT To Use

- Updating docs to match a code change (use `sanctum:doc-updates`)
- Detecting AI patterns in prose (use `scribe:slop-detector`)

## Formatting

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.

## Quick Start

```
/consolidate-docs
```

Or invoke directly:

```
I have some report files that need consolidating into permanent docs.
```

## Two-Phase Workflow

### Phase 1: Triage (Fast Model)

Read-only analysis to generate a consolidation plan:

1. **Detect candidates** - Find untracked markdown files with LLM output markers
2. **Analyze content** - Extract and categorize valuable sections
3. **Route destinations** - Match content to existing docs or propose new files
4. **Present plan** - Show user what will be consolidated and where

**Checkpoint**: User reviews and approves plan before execution.

### Phase 2: Execute (Main Model)

After approval, performs the consolidation:

1. **Merge content** - Weave into existing docs or create new files
2. **Delete sources** - Remove ephemeral files after successful merge
3. **Generate summary** - Report what was created/updated/deleted

## Workflow Details

### Step 1: Candidate Detection

Load: `@modules/candidate-detection.md`

Identifies files using:
- Git status (untracked `.md` files)
- Location (not in standard doc directories)
- Naming (ALL_CAPS non-standard names)
- Content markers (Executive Summary, Findings, Action Items)

### Step 2: Content Analysis

Load: `@modules/content-analysis.md`

For each candidate:
- Extract sections as content chunks
- Categorize: Actionable Items, Decisions, Findings, Metrics, Migration Guides, API Changes
- Score value: high/medium/low

### Step 3: Destination Routing

Load: `@modules/destination-routing.md`

For each valuable chunk:
- Semantic match against existing documentation
- Apply default mappings if no good match
- Determine merge strategy (weave, replace, append, create)
- **Check the audience tier before routing.** A destination
  serves one reader, and merging across tiers is how a
  getting-started page acquires an audit table. Report-derived
  findings, metrics, and rationale are `expert` content: route
  them to `docs/deep-dive/<topic>.md`, an ADR, or a benchmarks
  page, then link from the `newcomer` document rather than
  weaving into it. Tier table and cut test:
  `scribe:slop-detector` module `audience-targeting.md`. When
  the destination's own tier is unclear, **ask, do not guess**.

### Step 4: Generate Plan

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]
```

### Step 5: Execute Merges

Load: `@modules/merge-execution.md`

After user approval:
- Group operations by destination file
- Apply merge strategies
- Validate results (frontmatter intact, structure preserved)
- Delete source files
- Generate execution summary

## Fast Model Delegation

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.

## Content Categories

| 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 **of the same tier**, else `docs/deep-dive/` |
| 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 |

## Merge Strategies

### Intelligent Weave
Insert content into matching existing sections, preserving style.

  Use when: Destination has relevant section, content is additive.

### Replace Section
Replace existing section with more detailed new content.

  Use when: New content 2x+ more detailed or has later date.

### Append with Context
Add new section with date and source reference.

  Use when: No matching section, content doesn't fit existing structure.

### Create New File
Generate complete new document.

  Use when: No suitable destination exists, content warrants standalone doc.

## Integration

Works with other sanctum skills:

- **git-workspace-review**: May suggest consolidation when untracked reports detected
- **pr-prep**: Warns about untracked analysis files before PR creation
- **doc-updates**: Can invoke for final polish after consolidation

## Example Session

```
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.
```

## Troubleshooting

### No candidates found
- Check git status for untracked files
- Files may already be in standard locations
- Try explicit file path: "Consolidate API_REVIEW_REPORT.md"

### Low-quality extractions
- Source file may lack structured sections
- Content may be too generic to categorize
- Try manual extraction for unstructured reports

### Merge conflicts
- Destination file structure changed
- Try APPEND strategy instead of WEAVE
- Manual intervention may be needed

## Related Skills

- `sanctum:doc-updates` - General documentation updates
- `sanctum:git-workspace-review` - Pre-flight workspace analysis
- `sanctum:pr-prep` - Pull request preparation
- `imbue:catchup` - Understanding recent changes

## Exit Criteria

- [ ] Consolidation plan presented to the user showing source files,
      content categories, destination paths, and merge strategies
      before any file is modified
- [ ] All source ephemeral files (`*_REPORT.md`, `*_ANALYSIS.md`, etc.)
      are deleted after their content is successfully merged
- [ ] Each merged destination file has its frontmatter intact and
      existing structure preserved after the merge
- [ ] No merge moved content into a document written for a
      different reader. Cross-tier content went to a linked deep
      dive instead
- [ ] `git status` shows no untracked report-style markdown files
      after consolidation completes
- [ ] If no candidates are found, skill reports "no candidates" with
      the search criteria used rather than silently completing

Files in this skill

  • SKILL.md7.2 KB
  • modules/candidate-detection.md4.3 KB
  • modules/content-analysis.md6.1 KB
  • modules/destination-routing.md6.7 KB
  • modules/merge-execution.md10.1 KB
  • scripts/consolidation_planner.py18 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.