Claude Skill

ia-reflect

Session retrospective and skill audit. Use when asked to reflect, do a retrospective, review lessons learned, audit what went well or wrong, or review session effectiveness.

LLM Mart · 0 points · 8 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download iliaal-whetstone-plugins_whetstone_skills_ia-reflect-bccd699.zip · 5 KB
Part of iliaal/whetstone — 62 skills

Install

skills CLI npx skills add https://github.com/iliaal/whetstone/tree/master/plugins/whetstone/skills/ia-reflect
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install iliaal-whetstone@llmmart
Git git clone https://github.com/iliaal/whetstone.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole iliaal/whetstone collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Reflect

Success Criteria

  • Every mistake/friction point cites the specific moment and its impact
  • Improvements are actionable and prioritized (cap defined in step 4)
  • Each skill audit proposes measurable changes (not vague suggestions)
  • Memory persistence follows existing authorization, or the user selects concrete proposed items before any write
  • If review activity occurred, review-trap candidates are reported; persist only with authorization, or explicitly report no candidates

Process

1. Session Review

Scan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.

Category Signal
Mistakes Wrong outputs, incorrect assumptions, hallucinated facts
Friction Repeated clarifications, verbose responses, misread intent
Wasted effort Work discarded, wrong approaches tried first
Wins Approaches worth repeating, smooth interactions

Skip one-time typos, external tool failures, and issues outside agent control.

2. Review Activity Scan (if applicable)

Collect candidates in the response. A retrospective alone does not authorize memory writes or skill edits; apply only changes already authorized by the user or approved in steps 4 and 5.

If the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.

Inbound (my code was reviewed): For each review comment received:

  • Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Propose a one-line memory candidate for step 4.
  • Did I push back? If I was right and the reviewer was wrong, nothing to capture. If I was wrong and had to retract mid-thread, capture what I learned.

Outbound (I reviewed someone else's code): For each comment I authored:

  • Was it accepted? Nothing to capture -- good call.
  • Was it rejected with a valid counter? That's a review trap. Capture the pattern: what heuristic did I apply that produced a wrong comment?

"No harvestable items" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.

3. Operational Learnings

Before listing improvements, scan the session for operational insights worth preserving. Apply the 5-minute filter: would knowing this save 5+ minutes in a future session? If yes, include it. Examples: a project-specific quirk, a project command that failed for a project-specific reason, an approach that worked better than expected.

Exclude harness-level noise — "File has not been read yet", token-limit truncations, bash-quoting slips, and other tooling artifacts. Those aren't project learnings; capture the project's behavior, not the agent's mechanics.

Also scan for information-access gaps: points where the session stalled or guessed because the agent lacked read access to something a human would have checked — dev-server logs, a third-party dashboard, a staging database, CI output. Distinct from the harness noise excluded above: a one-off tooling hiccup isn't reusable, but a standing access gap is, since granting access pays off in every future session. Each gap is an improvement candidate ("grant readonly access to X" or "pipe X into a file the agent can read"), often higher-leverage than a prompt tweak.

4. Improvements

Numbered list of concrete improvements, ranked by impact. Each item: one sentence, imperative, actionable. Cap at 10 items: if more surface, the bottom items are noise -- drop them rather than batching or splitting.

For items not already authorized for persistence, present the concrete candidates and ask which to remember. Use the active harness's supported approval interface, or ask directly in chat. Do not ask again for items the user already authorized.

Save authorized items in the project's configured memory location using the active harness's file-editing tool and memory format. In Claude Code, inspect ~/.claude/projects/<project-slug>/memory/ and its MEMORY.md index; use the configured project slug rather than inventing one.

Before writing, grep the existing memory directory for the item's key terms. On a near-duplicate, update that file instead of adding a second. On a direct contradiction with an entry already on file ("use tabs" when "use spaces" is recorded), do not blind-append — surface both and let the user choose merge, replace, or keep-both. Silent duplicate and contradiction accumulation is the main way a curated memory index rots.

5. Skill Audit (if skills were used)

For each skill invoked during the session:

A. Self-check gate -- If the skill lacks success criteria + verification loop:

  • Propose ## Success Criteria at top (3-5 measurable checks)
  • Propose ## Self-Check at bottom: "Verify all success criteria are met before presenting output. If not, iterate (max 5 times)."

B. Token efficiency -- Flag: redundant phrasing, mergeable sections, oversized examples, "Claude already knows this" content, inert frontmatter metadata.

C. Other -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add "do Y instead" or remove).

D. Guidance mismatch -- fires when a skill was invoked and its advice turned out wrong, stale, or inapplicable here. A, B, and C all judge a skill standing alone; this one anchors the finding to the line that actually misfired. Record four fields, all required:

  • the verbatim excerpt from SKILL.md or its reference that produced the wrong behavior
  • the project context that made it not apply (language, runner, framework version, house convention)
  • what happened when it was followed
  • what was done instead

A skill invoked with no mismatch gets an explicit "no mismatch" line, same discipline as "no harvestable items is a valid outcome". "Line X is wrong in context Y, here's the workaround" is an actionable edit; "this skill has vague directives" is a research task.

Present proposed changes as diffs. Apply changes within existing editing authorization; otherwise ask which concrete changes to apply using the active harness's supported approval interface or directly in chat.

6. Capture Markers

The remember: prefix is the highest-confidence capture signal. When the user writes a message beginning with remember:, treat everything after the colon as a memory candidate — no interpretation required. Save directly to the appropriate memory file with a one-line summary and the user's exact phrasing. "Directly" waives interpretation, not the step-4 pre-write check: still grep existing memory for duplicates and contradictions before writing (a remember: that contradicts a recorded entry gets the same merge/replace/keep-both handling). Example: remember: we never use Pest, always PHPUnit → save to feedback_phpunit_over_pest.md.

Correction patterns to watch for (lower-confidence, batch these for review at /ia-reflect time):

  • "no, use X" / "actually, X" / "don't use Y, use X"
  • "stop doing X" / "never X"
  • "that's wrong — the right way is..."
  • repeated clarifications of the same thing within a session

Optional capture hook: a UserPromptSubmit hook can pattern-match the markers above into ~/.claude/learnings-queue.json as the user types, so /ia-reflect processes the queue deterministically instead of re-scanning the full transcript. Not shipped with this skill; document the convention and leave implementation to users who need it.

7. Pattern Detection

If 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.

Proactive trigger: When the user corrects you, clarifies the same thing twice, or shows frustration, offer a retrospective when they're ready -- "I'll review what we can improve." Name the invocation the active harness actually supports (/ia-reflect in Claude Code, this skill by name elsewhere); never print a slash command on a harness that has none.

Self-Check

Before presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).

Files (whetstone)
  • SKILL.md 8.2 KB
    ---
    name: ia-reflect
    class: tool
    description: >-
      Session retrospective and skill audit. Use when asked to reflect, do a
      retrospective, review lessons learned, audit what went well or wrong, or
      review session effectiveness.
    ---
    
    # Reflect
    
    ## Success Criteria
    
    - Every mistake/friction point cites the specific moment and its impact
    - Improvements are actionable and prioritized (cap defined in step 4)
    - Each skill audit proposes measurable changes (not vague suggestions)
    - Memory persistence follows existing authorization, or the user selects concrete proposed items before any write
    - If review activity occurred, review-trap candidates are reported; persist only with authorization, or explicitly report no candidates
    
    ## Process
    
    ### 1. Session Review
    
    Scan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.
    
    | Category | Signal |
    |----------|--------|
    | **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |
    | **Friction** | Repeated clarifications, verbose responses, misread intent |
    | **Wasted effort** | Work discarded, wrong approaches tried first |
    | **Wins** | Approaches worth repeating, smooth interactions |
    
    Skip one-time typos, external tool failures, and issues outside agent control.
    
    ### 2. Review Activity Scan (if applicable)
    
    Collect candidates in the response. A retrospective alone does not authorize memory writes or skill edits; apply only changes already authorized by the user or approved in steps 4 and 5.
    
    If the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.
    
    **Inbound (my code was reviewed):** For each review comment received:
    - Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Propose a one-line memory candidate for step 4.
    - Did I push back? If I was right and the reviewer was wrong, nothing to capture. If I was wrong and had to retract mid-thread, capture what I learned.
    
    **Outbound (I reviewed someone else's code):** For each comment I authored:
    - Was it accepted? Nothing to capture -- good call.
    - Was it rejected with a valid counter? That's a review trap. Capture the pattern: what heuristic did I apply that produced a wrong comment?
    
    "No harvestable items" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.
    
    ### 3. Operational Learnings
    
    Before listing improvements, scan the session for operational insights worth preserving. Apply the 5-minute filter: would knowing this save 5+ minutes in a future session? If yes, include it. Examples: a project-specific quirk, a project command that failed for a project-specific reason, an approach that worked better than expected.
    
    Exclude harness-level noise — "File has not been read yet", token-limit truncations, bash-quoting slips, and other tooling artifacts. Those aren't project learnings; capture the *project's* behavior, not the agent's mechanics.
    
    Also scan for **information-access gaps**: points where the session stalled or guessed because the agent lacked read access to something a human would have checked — dev-server logs, a third-party dashboard, a staging database, CI output. Distinct from the harness noise excluded above: a one-off tooling hiccup isn't reusable, but a standing access gap is, since granting access pays off in every future session. Each gap is an improvement candidate ("grant readonly access to X" or "pipe X into a file the agent can read"), often higher-leverage than a prompt tweak.
    
    ### 4. Improvements
    
    Numbered list of **concrete improvements**, ranked by impact. Each item: one sentence, imperative, actionable. Cap at 10 items: if more surface, the bottom items are noise -- drop them rather than batching or splitting.
    
    For items not already authorized for persistence, present the concrete candidates and ask which to remember. Use the active harness's supported approval interface, or ask directly in chat. Do not ask again for items the user already authorized.
    
    Save authorized items in the project's configured memory location using the active harness's file-editing tool and memory format. In Claude Code, inspect `~/.claude/projects/<project-slug>/memory/` and its MEMORY.md index; use the configured project slug rather than inventing one.
    
    Before writing, grep the existing memory directory for the item's key terms. On a near-duplicate, update that file instead of adding a second. On a direct contradiction with an entry already on file ("use tabs" when "use spaces" is recorded), do not blind-append — surface both and let the user choose merge, replace, or keep-both. Silent duplicate and contradiction accumulation is the main way a curated memory index rots.
    
    ### 5. Skill Audit (if skills were used)
    
    For each skill invoked during the session:
    
    **A. Self-check gate** -- If the skill lacks success criteria + verification loop:
    - Propose `## Success Criteria` at top (3-5 measurable checks)
    - Propose `## Self-Check` at bottom: "Verify all success criteria are met before presenting output. If not, iterate (max 5 times)."
    
    **B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, "Claude already knows this" content, inert frontmatter metadata.
    
    **C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add "do Y instead" or remove).
    
    **D. Guidance mismatch** -- fires when a skill was invoked and its advice turned out wrong, stale, or inapplicable *here*. A, B, and C all judge a skill standing alone; this one anchors the finding to the line that actually misfired. Record four fields, all required:
    - the **verbatim excerpt** from SKILL.md or its reference that produced the wrong behavior
    - the **project context** that made it not apply (language, runner, framework version, house convention)
    - **what happened** when it was followed
    - **what was done instead**
    
    A skill invoked with no mismatch gets an explicit "no mismatch" line, same discipline as "no harvestable items is a valid outcome". "Line X is wrong in context Y, here's the workaround" is an actionable edit; "this skill has vague directives" is a research task.
    
    Present proposed changes as diffs. Apply changes within existing editing authorization; otherwise ask which concrete changes to apply using the active harness's supported approval interface or directly in chat.
    
    ### 6. Capture Markers
    
    **The `remember:` prefix** is the highest-confidence capture signal. When the user writes a message beginning with `remember:`, treat everything after the colon as a memory candidate — no interpretation required. Save directly to the appropriate memory file with a one-line summary and the user's exact phrasing. "Directly" waives interpretation, not the step-4 pre-write check: still grep existing memory for duplicates and contradictions before writing (a `remember:` that contradicts a recorded entry gets the same merge/replace/keep-both handling). Example: `remember: we never use Pest, always PHPUnit` → save to `feedback_phpunit_over_pest.md`.
    
    **Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):
    - "no, use X" / "actually, X" / "don't use Y, use X"
    - "stop doing X" / "never X"
    - "that's wrong — the right way is..."
    - repeated clarifications of the same thing within a session
    
    **Optional capture hook**: a `UserPromptSubmit` hook can pattern-match the markers above into `~/.claude/learnings-queue.json` as the user types, so `/ia-reflect` processes the queue deterministically instead of re-scanning the full transcript. Not shipped with this skill; document the convention and leave implementation to users who need it.
    
    ### 7. Pattern Detection
    
    If 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.
    
    **Proactive trigger:** When the user corrects you, clarifies the same thing twice, or shows frustration, offer a retrospective when they're ready -- "I'll review what we can improve." Name the invocation the active harness actually supports (`/ia-reflect` in Claude Code, this skill by name elsewhere); never print a slash command on a harness that has none.
    
    ## Self-Check
    
    Before presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).
    
  • SPEC.md 4.2 KB
    # ia-reflect Specification
    
    ## Intent
    
    `ia-reflect` is a `tool`-class skill (a narrow utility scoped to a single capability). Session retrospective and skill audit. Use when asked to reflect, do a retrospective, review lessons learned, audit what went well or wrong, or review session effectiveness.
    
    ## Scope
    
    In scope:
    - Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.
    - Updates to runtime behavior, structure, trigger precision, references, and validation.
    
    Out of scope:
    - Acting as the runtime instructions themselves (those live in `SKILL.md`).
    - Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).
    - <!-- to fill in: domain-specific exclusions when the skill drifts -->
    
    ## Trigger Context
    
    - Class: `tool`
    - Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`
    - Common requests (from fixture should_trigger):
      - "let's do a retrospective on this session"
      - "what went wrong with the last deployment"
      - "retrospective on this debugging session"
    - Should not trigger for (from fixture should_not_trigger):
      - "implement the webhook handler for Stripe events"
      - "update the Docker compose file for local dev"
      - "plan the next feature"
    
    ## Source And Evidence Model
    
    Authoritative sources:
    
    - `SKILL.md` -- runtime instructions and reference routing.
    - `references/*.md` -- bundled supplementary content (0 file(s)).
    - `distillery/tests/fixtures/triggers/ia-reflect.jsonl` -- positive and negative trigger phrasings under regression test.
    - `plugins/whetstone/hooks/skill-patterns.sh` -- regex pattern that fires this skill.
    - `distillery/.eval-data/ia-reflect/` -- harvested session examples (when present).
    
    Data that must not be stored in this skill or its references:
    
    - Secrets, credentials, tokens.
    - Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.
    - Private URLs, customer data, or unredacted personal information.
    
    ### Coverage matrix
    
    | Dimension | Status | Evidence |
    |---|---|---|
    | Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |
    | Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |
    | Reference architecture | n/a | no references; SKILL.md is self-contained |
    | Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |
    
    ## Evaluation
    
    Lightweight (run on every change):
    
    ```bash
    python3 distillery/scripts/distiller.py validate-plugin --component ia-reflect
    python3 distillery/scripts/distiller.py test-triggers --skill ia-reflect
    ```
    
    Deeper (when behavior risk warrants):
    
    ```bash
    python3 distillery/scripts/distiller.py dspy-eval ia-reflect
    python3 distillery/scripts/distiller.py diagnose-negatives ia-reflect
    ```
    
    Acceptance gates:
    - `validate-plugin --component ia-reflect` returns 0 HIGH findings.
    - `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.
    - For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).
    
    ## Known Limitations
    
    <!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives
         surfaces a recurring failure pattern, document it here so future maintainers
         understand the trade-off the current implementation accepts. -->
    
    ## Maintenance Notes
    
    - Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.
    - Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.
    - Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).
    - Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.
    - Run the full release pipeline via `/release` -- never bump versions or update CHANGELOG.md from a per-skill edit.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related