From ctx
Consolidates redundant entries in LEARNINGS.md or DECISIONS.md by grouping overlapping topics via keywords and merging into denser versions with user approval, archiving originals. Use on high ctx drift counts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ctx:ctx-consolidateThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze entries in LEARNINGS.md and/or DECISIONS.md, group overlapping
Analyze entries in LEARNINGS.md and/or DECISIONS.md, group overlapping entries by topic, and (with user approval) merge groups into denser consolidated entries. Originals are archived, not deleted.
Consolidation != archival. Archival moves old entries to the archive directory. Consolidation replaces verbose entries with tighter ones: the file stays useful, just denser. The originals move to archive as a paper trail.
ctx drift reports entry counts above threshold
(default: 30 learnings, 20 decisions)Read the target file(s):
# Check entry counts first
ctx drift --json
Then read the files directly:
Parse entries by their ## [YYYY-MM-DD-HHMMSS] Title headers. Each
entry extends from its header to the line before the next header or
end of file.
For each entry, extract keywords from its title and body:
Build a keyword-to-entries map. Entries sharing 2 or more non-trivial keywords are candidates for the same group.
Grouping rules:
Show the user what you found. Format:
Consolidation candidates for LEARNINGS.md:
Group 1: "Hook behavior" (5 entries)
- [2026-01-15] Hook scripts can lose execute permission
- [2026-01-20] Two-tier hook output is sufficient
- [2026-02-03] Claude Code Hook Key Names
- [2026-02-09] Agent ignores repeated hook output
- [2026-02-16] Security docs vulnerable after migrations
-> Proposed: merge into 1 consolidated entry
Group 2: "Path handling" (3 entries)
- [2026-01-10] Path construction uses stdlib
- [2026-02-05] G304 gosec false positives
- [2026-02-16] gosec G301/G306 permissions
-> Proposed: merge into 1 consolidated entry
Ungrouped: 12 entries (no consolidation needed)
Wait for the user to approve, modify, or reject each group. Do NOT proceed without explicit confirmation.
For each approved group, write a consolidated entry that:
YYYY-MM-DD-HHMMSS format**Consolidated from** lineFormat:
## [YYYY-MM-DD-HHMMSS] Hook behavior (consolidated)
**Consolidated from**: 5 entries (2026-01-15 to 2026-02-16)
- Hook scripts can lose execute permission without warning; always
restore +x after sync operations
- Two-tier output (stdout for AI context, stderr+exit for blocks)
is sufficient; don't over-engineer severity levels
- Claude Code hook key names are case-sensitive: PreToolUse, not
pre_tool_use
- Agents develop repetition fatigue: vary hook output phrasing
across invocations
- After infrastructure migrations, audit security docs first:
stale paths in security guidance give false confidence
For each approved group:
# Learnings or # Decisions header)archive/learnings-consolidated-YYYY-MM-DD.md in the context
directory (or decisions-consolidated-YYYY-MM-DD.md)ctx learning reindex
# or
ctx decision reindex
Consolidated LEARNINGS.md:
- Group "Hook behavior": 5 entries -> 1 (originals archived)
- Group "Path handling": 3 entries -> 1 (originals archived)
Total: 8 entries consolidated into 2. File reduced from 47 to 41 entries.
Archive: archive/learnings-consolidated-2026-02-19.md (in context dir)
The archive file uses the same Markdown format as the source file. Each archived entry keeps its original timestamp and content, preceded by a header noting which consolidated entry replaced it:
# Archived Learnings (consolidated 2026-02-19)
Originals replaced by consolidated entries in LEARNINGS.md.
## Group: Hook behavior
## [2026-01-15-120000] Hook scripts can lose execute permission
(original content preserved verbatim)
## [2026-01-20-093000] Two-tier hook output is sufficient
(original content preserved verbatim)
ctx task archive
for tasks; conventions rarely need consolidationBefore reporting results:
ctx reindex after modificationsnpx claudepluginhub activememory/ctx --plugin ctxMerges REPORT.md and ANALYSIS.md artifacts into permanent docs following markdown conventions, then deletes sources. Use to clean git status before PRs.
Synthesizes cross-cutting patterns from accumulated retro-notes lessons files, producing a top-of-file recurring-patterns section so planning agents read wisdom first instead of every dated entry. Refactors when entries partially supersede earlier claims.
Captures learnings from completed development sessions into reusable knowledge files organized by pattern, pitfall, decision, tool insight, and process improvement.