From inc-os
Improve your system. Improves skills from iteration, captures experiences, reviews session history for knowledge, audits for rot, and sets up foundation content. Routes automatically based on context.
How this skill is triggered — by the user, by Claude, or both
Slash command
/inc-os:improve-systemThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Make your entire system smarter based on what just happened. One skill, five modes. The model determines which mode based on conversation context, or you can specify.
Make your entire system smarter based on what just happened. One skill, five modes. The model determines which mode based on conversation context, or you can specify.
| Mode | Trigger | What it does |
|---|---|---|
| Skill | You iterated on a skill's output | Updates the skill's process, learnings, or steps |
| Experience | You have a story, win, or lesson to capture | Writes a structured experience entry |
| Session Review | You want to extract value from recent Claude Code sessions | Reads history, pulls out transferable learnings |
| Audit | You want to check the system for rot | Finds stale, conflicting, duplicate, or orphaned content |
| Foundation | The project is missing foundational content (brand, offers, audience, etc.) | Auto-discovers foundation sub-skills and runs interviews to fill gaps |
Look at the conversation context and determine which mode(s) apply:
Skill mode if:
Experience mode if:
Session Review mode if:
Audit mode if:
Foundation mode if:
wiki/brand-voice/, wiki/offers/, wiki/audience/ are empty or missingIf unclear, ask:
"What are we improving? I can:
- Improve a skill based on our back-and-forth
- Capture an experience (story, win, lesson)
- Review recent sessions for missed learnings
- Audit the system for stale or conflicting content
- Set up foundation (brand, offers, audience, or whatever the project declares)
Or describe what you're thinking and I'll figure it out."
Multiple modes can run in one invocation if relevant.
From conversation context, determine which skill was used. If ambiguous, ask.
If user says "based on our conversation" without naming a skill, infer from context which skill(s) are relevant.
Review the conversation for:
Read the skill's SKILL.md (or equivalent). Identify:
Neighboring skills are skills that load the same wiki folders. When you improve one, the learning might apply to others.
How to find neighbors:
Show neighbors only if the learning applies to them. Don't ask about empty matches.
Show:
"Here's what I'd update in [skill-name]:
Current state: [X steps, Y learnings, loads Z folders]
Proposed changes:
- [specific change to process, learning, or step]
- [specific change]
Neighboring skills that might need the same update:
- [skill-name]: [why this learning applies]
Apply these?"
After proposing changes, scan the skill for:
If found, flag them alongside the proposed changes.
Update the skill file(s) and any approved neighbors. Confirm what changed.
Either from:
From the raw input, extract:
Scan the project for an experience directory:
wiki/experiences/, docs/experiences/, or similar pathsWrite as {path}/{YYYY-MM-DD}-{brief-slug}.md:
# {YYYY-MM-DD} - {Brief Descriptive Title}
## Metadata
- **Date**: YYYY-MM-DD
- **Topics**: [topic1, topic2, topic3]
- **Source**: [voice-transcript | session-history | combined | typed]
## Key Stories
### Story 1: {Story Title}
{Narrative: specific context, the challenge, what you tried, what worked, the outcome}
## Quotable Moments
> "{Direct quote that sounds natural and punchy}"
## Insights & Learnings
- {Transferable insight}
- {Another learning}
## Tags
{topic1, topic2, topic3}
Check if this experience is relevant to any active projects in the workspace. If so, mention which project and where the story might fit.
After writing all experience entries, automatically run the /inc-os:add-new-resource process on each file:
## Summary section with source type, key entities, key concepts, and ingestion date[[wikilinks]] to the source file for first mentions of wiki entitieswiki/_Home.md if any new top-level wiki sections were addedFor multiple entries, batch the wiki updates at the end (one pass, not per-file). Use parallel agents when processing 3+ files to speed this up.
Read ~/.claude/history.jsonl (last 500 lines or configurable). Extract:
project field, using the display field for prompt text/timestamp to order the day's/week's workpastedContents field for error messages, transcripts, or meeting notes included in promptsAlso supplement with git log --oneline --since="2 weeks ago" to see what was actually committed, which is often richer than the history file alone.
Look for:
Present 2-5 draft entry summaries (title + 2-3 sentence description each). Do NOT write the full entries yet.
Then interview the user to dig deeper. For each entry, ask 2-3 targeted questions:
Pick the most relevant questions per entry. Don't ask all of them for every entry. The goal is to surface the insight behind the action, not just document what happened.
Continue the interview for 1-2 rounds until the entries feel rich enough to capture something transferable, not just a log of what was built.
After the interview, write entries using the Experience mode format (Step 2-4 from Mode 2). Each entry should include:
Generate entries for significant sessions only (2-5 entries). Skip trivial sessions.
Same path detection as Experience mode. Write each entry as a separate file.
If the session review reveals skill iteration patterns (a skill was used with multiple rounds of feedback), offer to switch to Skill mode for those specific skills.
Scan for all components:
.claude/skills/, .claude/commands/)wiki/) and docs (docs/). Client material (clients/) is in scope for orphan/link checks but never for cross-project lifting..claude/agents/).claude/rules/ filesBuild two maps:
Dependency map (what uses what):
skill-name -> reads: wiki/path/a/, wiki/path/b/
agent-name -> reads: wiki/path/c/
Link graph (for projects using wikilinks/Obsidian):
For each .md file, extract outgoing [[wikilinks]] and markdown links to local files. Build incoming/outgoing link maps.
Check 1: Broken links (high severity)
Check 2: Conflicting rules (high severity)
Check 3: Orphaned content (medium severity)
Check 4: Missing pages (medium severity)
Check 5: Stale content (low severity)
git log -1 --format="%ai" -- [file])Check 6: Coverage gaps (low severity)
Check 7: Duplicate content (low severity)
brand-context.md and brand-brief.md)Check 8: Learning bloat (low severity)
Show a summary first:
SYSTEM AUDIT
============
Components: X skills, Y agents, Z wiki files
Referenced: X files used by skills/agents
Orphaned: X files
Broken links: X
Conflicts: X
Stale: X
Gaps: X
HEALTH SCORE: X/10
Then show each category with details, grouped by severity.
Never auto-delete without explicit approval.
If the project has a wiki home file (e.g., wiki/_Home.md), rebuild its section index with:
Every Incubator OS project has the same three foundation areas: brand voice, offers, and audience. These produce the source-of-truth wiki content every downstream draft reads from. Foundation mode detects which of the three are empty and runs the right interview to fill it.
The interview content lives in this plugin (not in the project). The wiki content lives in the project at wiki/brand-voice/, wiki/offers/, wiki/audience/.
| Area | Wiki path | Interview file |
|---|---|---|
| Brand voice | wiki/brand-voice/ | $CLAUDE_PLUGIN_ROOT/skills/improve-system/foundation/brand-voice.md |
| Offers | wiki/offers/ | $CLAUDE_PLUGIN_ROOT/skills/improve-system/foundation/offers.md |
| Audience | wiki/audience/ | $CLAUDE_PLUGIN_ROOT/skills/improve-system/foundation/audience.md |
All three share interview principles defined in $CLAUDE_PLUGIN_ROOT/skills/improve-system/foundation/principles.md. Read once before running any interview.
For each of the three wiki paths, check completion:
.gitkeep.gitkeep (or nothing)Use ls or equivalent. Treat the project root as the current working directory.
FOUNDATION STATUS
=================
+ brand-voice wiki/brand-voice/ (populated)
x offers wiki/offers/ (empty)
x audience wiki/audience/ (empty)
If all three are populated, say so and stop.
If any area is empty or missing:
"Two foundation pieces are missing: offers and audience. Want me to walk through them now? I can run both, or pick one to start."
On user confirmation, for each chosen area:
$CLAUDE_PLUGIN_ROOT/skills/improve-system/foundation/principles.md once at the start of the session (re-use for subsequent areas in the same run).$CLAUDE_PLUGIN_ROOT/skills/improve-system/foundation/brand-voice.md).Create the wiki directory if it does not exist. Remove the .gitkeep file once real content lands.
After each interview, confirm the wiki path now contains the expected files. If not, note what's still missing.
Once foundation is complete, mention that:
/inc-os:save-system automatically treats wiki/brand-voice/, wiki/offers/, and wiki/audience/ as sensitive on every push.npx claudepluginhub austinmarchese/incubator-os-plugin --plugin inc-osCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.