From mission-control
This skill should be used when the user asks about "mission learnings", "memory files", "view or manage memory", "how the learning system works", or wants to understand how mission-control persists and loads learnings from past missions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mission-control:mission-memoryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Mission memory stores learnings extracted from completed missions in `.mission-control/memory/`. These learnings are loaded into new missions to avoid repeating mistakes and reuse successful patterns. Over time, the memory builds a project-specific knowledge base that makes every mission smarter than the last.
Mission memory stores learnings extracted from completed missions in .mission-control/memory/. These learnings are loaded into new missions to avoid repeating mistakes and reuse successful patterns. Over time, the memory builds a project-specific knowledge base that makes every mission smarter than the last.
Mission memory is a persistent, per-project learning system. Each learning is a markdown file with YAML frontmatter that captures a single insight: a pattern that worked, a gotcha to avoid, an architectural constraint, a tooling quirk, or a prompt technique that improved agent output.
Learnings are not documentation. They are operational knowledge -- the kind of thing a senior engineer would tell a new team member on their first day: "Don't do X because Y" or "Always do A before B because C."
.mission-control/memory/
├── use-named-exports.md
├── vitest-root-flag.md
├── circular-dep-gotcha.md
├── monorepo-build-order.md
├── researcher-prompt-pattern.md
└── ...
Each file is a standalone learning. File names should be descriptive kebab-case identifiers. There is no index file -- the system discovers learnings by reading all .md files in the directory.
Every learning belongs to one of five categories:
| Category | Description | Loading Behavior |
|---|---|---|
| pattern | A successful approach that should be reused. Example: "Always run build:packages before build:server in this monorepo." | Loaded when tags match the mission goal. |
| gotcha | A mistake or trap that must be avoided. Example: "Vitest in this monorepo requires the --root flag when run from the repo root." | Always loaded into every mission regardless of tags. Gotchas represent universal traps. |
| architecture | A structural constraint or design decision. Example: "Packages in libs/ can only depend on packages above them in the dependency chain." | Loaded when tags match the mission goal. |
| tooling | A tool-specific quirk or configuration detail. Example: "The npm run test:server command uses Vitest, not Jest." | Loaded when tags match the mission goal. |
| prompt | A prompt pattern that improved agent output. Example: "Researchers produce better results when given specific file paths to start from rather than open-ended exploration." | Loaded when tags match the mission goal. |
Learnings are extracted by a retrospective agent during the /debrief command when autoLearn is enabled. The retrospective agent reviews the entire mission -- the state file, the log, the task results -- and identifies insights worth preserving.
The extraction process:
See references/learning-extraction.md for the full extraction process and examples.
When a new mission starts, the memory system loads relevant learnings into the agent context:
category: gotcha is injected into every mission, regardless of tags. These represent universal traps that apply across all mission types.tags against the mission goal text. A learning is considered relevant if any of its tags appear in the mission goal (case-insensitive substring match).extractedAt timestamp).Loaded learnings are injected into the agent's system prompt as a "Project Learnings" section. Agents are instructed to respect these learnings as project-specific rules.
Each memory file uses YAML frontmatter with the following fields:
---
tags:
- <string> # Keywords for matching against mission goals
source: <string> # Mission ID that produced this learning
extractedAt: <ISO-8601 datetime>
confidence: <low|medium|high>
category: <pattern|gotcha|architecture|tooling|prompt>
---
The body is a markdown description of the learning. It should be concise (1-3 paragraphs), specific (include file paths and commands where applicable), and actionable (tell the agent what to do or avoid).
See references/memory-format.md for the full schema, field-by-field documentation, and examples for each category.
You do not need to run a mission to create memory files. Any markdown file with the correct YAML frontmatter placed in .mission-control/memory/ will be picked up by the system.
To manually create a learning:
.md file in .mission-control/memory/ with a descriptive kebab-case name.tags, source, extractedAt, confidence, category).source field, use manual to indicate a human-created learning.To edit an existing learning, modify the file directly. You can change the confidence level, add tags, update the body, or change the category.
To remove a learning, delete the file.
npx claudepluginhub jbactad/claude-plugins --plugin mission-controlPersists learnings into a 5-layer memory hierarchy (CLAUDE.md files, memory/MEMORY.md) and consolidates by pruning outdated entries and promoting recurring patterns. Triggers on 'extract learnings', 'remember', 'dream'.
Manages project learnings in markdown files: view index, add patterns/pitfalls/operational notes/decisions, search, prune, export for CLAUDE.md persistence across sessions.
Saves, searches, recalls, digests, and prunes project learnings that persist across sessions. Use when the user wants to record knowledge or load prior learnings before starting work.