원클릭으로
reflect
Analyze recent Claude Code sessions and write business-agnostic behavioral reflections to Obsidian
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Analyze recent Claude Code sessions and write business-agnostic behavioral reflections to Obsidian
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Session-after-session product perfection loop. The strongest available model (Fable) directs — it walks the repo's context map context-by-context, proposes 5 challenged, high-value directions per context (features, design elevations, significant optimizations), gates them with the user until 10 are accepted, then orchestrates one Opus builder subagent per context in isolated worktrees while making every review/merge decision itself. All state lives in a linked Obsidian vault so any future session resumes the loop exactly where the last one stopped. Invoke with `/perfect [init|propose|build|status|reflect] [context-name]`.
Generate images with OpenAI gpt-image-2 (primary) or Leonardo AI (fallback), remove backgrounds, analyze with Gemini vision, and write SVG. For brand assets, UI illustrations, backgrounds, and icons.
Upgrade a generic UI icon or loading/empty state into a traced, motion-animated SVG. Generates flat trace-friendly art (via /leonardo tools), validates with Qwen vision, vectorizes to a clean multi-path SVG, and emits a Motion (framer-motion) reveal component. For icon + loading-state visual upgrades — NOT raw image generation (use /leonardo for that).
Hunts the highest-value surface of an LLM-powered app — the LLM call sites themselves — and drives them to their potential across three lenses. (1) Code quality of the AI plumbing (wrapping/chokepoint, logging/telemetry, caching/dedupe, schema+validation+self-repair). (2) Business value, by reusing the UAT Character method (representative users with jobs-to-be-done + a senior-quality bar + time-saved) but TESTING ONLY THE LLM PIECES — does each prompt's grounding and output clear the bar. (3) Model optimization as an alternative scenario — benchmark the same character inputs across models × thinking levels to find quality degradation/upgrade vs cost/latency. Everything is memorized in a linked **Obsidian vault** (one note per call site / character / model / session) so each scan builds on the last. Stack-agnostic engine; per-app specifics live in the repo's `tiger/` overlay (which IS the vault). Invoke with `/tiger init|scan|run|benchmark|recall|backlog [args]`.
Simulated User Acceptance Testing for the Personas desktop app, driven by Characters (representative users with jobs-to-be-done) rather than feature/code coverage. A capable LLM verifies each user journey in two chronological certification levels — L1 theoretical (over a code-derived surface model, cheap + mass-parallel) then L2 empirical (the LIVE app driven through the test-automation harness, serial) — judging through each Character's own consistent lens (time saved vs the manual way, and senior-in-role quality). Personas-specific: L1 reads context-map.json + the React/Rust source; L2 drives the running app via the test-automation server on :17320 (NOT a browser). Per-run specifics live in the repo's uat/ overlay. Invoke with `/uat init|update|run|promote [args]`.
Iteratively prototype a UI component through directional variants behind a tab switcher, then consolidate and refactor the winner. Use when the user wants to improve a component they consider a pillar of the app (visual appeal, creativity, UX clarity).
| name | reflect |
| description | Analyze recent Claude Code sessions and write business-agnostic behavioral reflections to Obsidian |
Analyze recent Claude Code CLI sessions to extract business-agnostic behavioral patterns — how the user thinks, what they correct, what approaches they validate. Write a structured reflection to the shared Obsidian vault.
This skill is project-agnostic. It reads transcripts from ALL projects in ~/.claude/projects/ and produces transferable insights about the user's working style, not implementation details about any codebase.
VAULT_CANDIDATES below.Reflections/ (inside the resolved vault)Patterns/ (inside the resolved vault — promoted permanent rules).claude/skills/reflect/tools/parse-transcripts.mjsThe user works across multiple devices. Each row is one device's vault root. The skill picks the first path that exists; extend the list (top or bottom) when onboarding a new device.
C:/Users/mkdol/Documents/Obsidian/personasC:/Users/kazda/Documents/Obsidian/personasWhen copying this skill to another repo, only the parser path is relative to the repo root — VAULT_CANDIDATES stays identical because the vault is the user's personal knowledge base, shared across all projects and devices.
Run the candidate resolver and capture its output as {VAULT} for every subsequent phase:
for p in "C:/Users/mkdol/Documents/Obsidian/personas" "C:/Users/kazda/Documents/Obsidian/personas"; do
if [ -d "$p" ]; then echo "$p"; break; fi
done
{VAULT} to that path and continue.node .claude/skills/reflect/tools/parse-transcripts.mjs --days {DAYS} --max-sessions 30
Default {DAYS} is 7 unless the user passed --days N. The parser:
If sessionsAnalyzed is 0, tell the user no recent sessions were found and stop.
{VAULT}/Reflections/*.md — read the 2 most recent (by filename date) for continuity.{VAULT}/Patterns/*.md to know which rules are already promoted.If neither folder has files, this is the first reflection — skip continuity analysis.
Analyze the parser output. Focus entirely on behavioral signals that transfer across projects.
Correction patterns — What does the user repeatedly correct?
Validated approaches — What positive signals confirm?
Request patterns — What work categories dominate?
Tool usage style — How does the user work with Claude?
Interaction style — How does the user communicate?
For every insight, ask: "Would this still be true if the user switched to a completely different project?"
Ensure the folder exists (under the resolved {VAULT}):
node -e "require('fs').mkdirSync('{VAULT}/Reflections', {recursive:true})"
Write to {VAULT}/Reflections/YYYY-MM-DD-reflection.md (today's date). If a file for today exists, append counter: -reflection-2.md.
---
date: {YYYY-MM-DD}
period: {N}d
sessions: {N}
corrections: {N}
positive_signals: {N}
top_categories: [{cat1}, {cat2}, {cat3}]
---
## Working Phase
{One sentence: what phase dominates — exploration, building, stabilizing, etc.}
## Correction Patterns
{Bullets. Lead with the generalized rule, brief "e.g." if helpful.}
- **{Pattern name}** — {Description}
## Validated Approaches
{Confirmed approaches — same format.}
- **{Pattern name}** — {Description}
## Thinking Style
{2-3 sentences: delegation level, exploration depth, iteration speed, spec detail.}
## Emerging Signals
{New observations from this period — not yet patterns, but worth watching.}
- {Signal}
## Continuity
{Compare with previous reflections: what changed, what held, what's trending. Skip if first reflection.}
Scan the reflection just written PLUS previous reflections. If any signal has appeared in 3+ reflections:
{VAULT}/Patterns/*.md — skip if already promoted.{VAULT}/Patterns/cli-{slug}.md:---
promoted: {YYYY-MM-DD}
source: reflections
observations: {N}
---
## {Pattern Name}
{Clear, actionable statement.}
**Applies when:** {Conditions}
**Counter-signal:** {When this should NOT apply}
Print to the user:
Reflection written → {VAULT-short}/Reflections/{filename}
Device: {resolved-vault path}
Period: {N}d ({M} sessions, {P} projects)
Corrections: {N} — top: {top pattern}
Confirmed: {N}
Phase: {phase}
Promoted: {N} new patterns