mp-web3/claude-starter-kit/reflect
Claude Code and agent skill by mp-web3/claude-starter-kit
- community
Checking that the SKILL.md file is still in the repository.
Analyze the current or recent session(s) for corrections, preferences, and implicit feedback. Extracts learnings and routes them to the right knowledge/rules file. Run when you want to capture what was learned this session.
Install
npx vskill@latest install mp-web3/claude-starter-kit/reflectSKILL.md
The same SKILL.md was published earlier as sohaibdevv/claude-starter-kit/reflect.
/reflect — Session Learning System
First: Read LEARNINGS.md (in this skill's directory) before proceeding.
You are running a 4-phase reflection workflow. Follow each phase in order.
Arguments: $ARGUMENTS
Phase 1: Extract
Run the extraction script to get candidate learnings from session JSONL.
If $ARGUMENTS is empty, it analyzes the latest session. Pass --since YYYY-MM-DD or --file <path> to customize scope.
- If no pairs found -- tell user "Nothing to reflect on" and stop
- If pairs found -- capture the output and proceed to Phase 2
Phase 2: Analyze
For each candidate pair from Phase 1, determine:
- Is this a real learning? ~40% are normal conversation — skip those. Look for:
- Corrections ("no, do X instead", "actually...", "wrong")
- Preferences ("always use...", "I prefer...", "from now on...")
- Tool rejections with feedback (user denied + said why)
- Workflow patterns (user repeatedly does something a specific way)
- Implicit feedback (user rephrases, asks again, provides what Claude should have known)
- Check rejections — Read
~/claude-assistant/knowledge/self/rejections.md. For each candidate:
- If it matches a previously rejected learning (same topic + target file): skip silently. Note in output: "Skipped: matches rejected learning from [date]"
- If it contradicts a previously rejected learning (opposite of what was rejected): flag as potential reversal — present to user with context from the rejection log
- Classify and route each real learning using the routing table below.
- Check for duplicates — Read the target file and verify the learning isn't already captured.
- Scan for contradictions — For each proposed change with a target file:
a. Read the target file b. Read up to 5 related files: same directory + shared tags (YAML tags field) + wiki-linked files c. Scan for statements that directly contradict the proposed change d. If contradiction found, flag it for Phase 3 conflict resolution: `` CONFLICT with [file.md:line]: Existing: "[quoted text]" Proposed: "[new learning]" ` e. **Update feedback counters** — If the contradiction traces to a specific existing rule/learning entry, increment its harmful counter in ~/claude-assistant/state/rule-feedback.json`
- Update feedback counters — Read
~/claude-assistant/state/rule-feedback.json(create if missing). For each finding:
a. If a correction contradicts an existing rule -- increment harmful for that rule:
- Key format:
"<relative-path>::<section or first 60 chars of rule>"
b. If the session had no corrections in an area covered by a rule, and the rule was relevant to work done this session -- increment helpful
c. Write updated counters back to ~/claude-assistant/state/rule-feedback.json
d. Flag unhealthy rules for Phase 3:
harmful >= 3-- flag: "This rule has been contradicted 3 times. Review or remove?"harmful / (helpful + harmful) > 0.5with 4+ total signals -- flag as unreliablehelpful >= 5withharmful == 0-- mark as "stable" (note in output, no action needed)
- For multi-session scans (
--since): Track if the same learning appears across 2+ sessions. Flag for promotion:
- 2+ occurrences -- suggest knowledge file if not already there
- 3+ occurrences -- flag for promotion to rule
- Exception: if the learning contradicts a rejected entry (Claude keeps making the same mistake), promote immediately to rule on 2nd occurrence
Routing Table
| Category | Target File | |
|---|---|---|
| Task/operational correction | ~/.claude/rules/tasks.md | |
| Communication preference | ~/.claude/rules/communication.md | |
| Session management | ~/.claude/rules/sessions.md | |
| Security/git correction | ~/.claude/rules/security.md | |
| Delegation pattern | ~/.claude/rules/delegation.md | |
| Development standard | ~/.claude/rules/development.md | |
| Research convention | ~/.claude/rules/research.md | |
| User profile update | ~/claude-assistant/knowledge/user/profile.md | |
| User goals update | ~/claude-assistant/knowledge/user/goals.md | |
| Self-knowledge | ~/claude-assistant/knowledge/self/identity.md | |
| Problem insight | ~/claude-assistant/knowledge/problems/NN-*.md Insights Log | |
| Project state change | ~/claude-assistant/knowledge/projects/<project>.md | |
| Global convention | ~/.claude/CLAUDE.md | |
| Recurring pattern (3+ sessions) | ~/.claude/rules/ (new file or existing) | |
| Actionable work identified | SQLite via sqlite3 ~/claude-assistant/tasks.db then python3 ~/claude-assistant/scripts/db.py export | |
| MEMORY.md state change | MEMORY.md (sparingly) |
Routing priority: Rules files > Knowledge files > MEMORY.md > CLAUDE.md
Problem routing: Read ~/claude-assistant/knowledge/problems/00-overview.md to match findings against the user's problems.
Phase 3: Present
Show each finding to the user in this format:
Conflict Resolution
If Phase 2 flagged contradictions:
Flagged Rules
If feedback counters flagged unhealthy rules:
Ask: "Action on flagged rules? (r)emove, (e)dit, (k)eep, or (s)kip"
User Decision
After listing all findings, ask:
Apply all (a), select by number (e.g. 1,3,5), or discard (d)?
If no real learnings found: tell user "Analyzed N pairs, no actionable learnings found" and stop.
Rejection Logging
When user discards findings:
- Ask: "Brief reason? (or Enter to skip)"
- Append to
~/claude-assistant/knowledge/self/rejections.md:
```markdown ### YYYY-MM-DD — Rejected
- Proposed: [the learning]
- Target:
path/to/file.md - Reason: [user's reason, or "(not provided)"]
```
Phase 4: Apply
For each approved finding:
- Read the target file
- Edit with the proposed change (use Edit tool, not Write)
- Update YAML frontmatter
last_reviewedto today's date (if present) - If adding to a problem file's Insights Log, use format:
### YYYY-MM-DD — Session Reflection
After all edits:
- Summarize what was changed:
| File | Change |table - Stage
~/claude-assistant/state/rule-feedback.jsonif counters were updated - Commit with message
reflect: capture session learnings
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/reflect/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mp-web3/claude-starter-kit/reflect)