{"id":"5258c885-facc-442a-9631-46dacf9970c8","entityType":"agent","slug":"clawhub-iliaal-compound-eng-reflect","name":"ia-reflect","canonicalUrl":"https://www.xpersona.co/agent/clawhub-iliaal-compound-eng-reflect","canonicalPath":"/agent/clawhub-iliaal-compound-eng-reflect","generatedAt":"2026-10-09T23:53:31.035Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T20:13:45.108Z","emptyReason":null},"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. Skill: ia-reflect Owner: iliaal Summary: 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. Tags: latest:5.0.1 Version history: v5.0.1 | 2026-10-03T17:07:20.799Z | user v5.0.1 v5.0.0 | 2026-09-26T23:20:14.844Z | user v5.0.0 v4.5.2 | 2026-09-08T01:46:04.549Z | user v4.5.2 v4.5.0 | 2026-08-29T22:22","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17bcar8wq0xhegs0ny6f57ypd8484bw:compound-eng-reflect","sourceUrl":"https://clawhub.ai/iliaal/compound-eng-reflect","homepage":"https://clawhub.ai/iliaal/skills/compound-eng-reflect","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/iliaal/compound-eng-reflect","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/iliaal/skills/compound-eng-reflect","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":41,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"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 e"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T20:13:45.108Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T20:13:45.108Z","emptyReason":null},"stars":null,"forks":null,"downloads":2037,"packageName":null,"latestVersion":"5.0.1","tractionLabel":"2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T20:13:45.107Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T20:13:45.108Z","lastCrawledAt":"2026-10-09T20:13:45.107Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T20:13:45.107Z","lastVerifiedAt":null,"highlights":[{"version":"5.0.1","createdAt":"2026-10-03T17:07:20.799Z","changelog":"v5.0.1","fileCount":4,"zipByteSize":7764},{"version":"5.0.0","createdAt":"2026-09-26T23:20:14.844Z","changelog":"v5.0.0","fileCount":4,"zipByteSize":7281},{"version":"4.5.2","createdAt":"2026-09-08T01:46:04.549Z","changelog":"v4.5.2","fileCount":4,"zipByteSize":7317},{"version":"4.5.0","createdAt":"2026-08-29T22:22:50.352Z","changelog":"v4.5.0","fileCount":4,"zipByteSize":7363},{"version":"4.4.3","createdAt":"2026-08-29T12:34:33.202Z","changelog":"v4.4.3","fileCount":4,"zipByteSize":7323},{"version":"4.3.2","createdAt":"2026-07-27T20:52:31.464Z","changelog":"v4.3.2","fileCount":4,"zipByteSize":7275},{"version":"4.2.1","createdAt":"2026-07-11T11:15:34.864Z","changelog":"v4.2.1","fileCount":4,"zipByteSize":6610},{"version":"3.0.5","createdAt":"2026-04-30T00:03:49.636Z","changelog":"v3.0.5","fileCount":4,"zipByteSize":6165}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17bcar8wq0xhegs0ny6f57ypd8484bw:compound-eng-reflect","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T23:53:31.029Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iliaal-compound-eng-reflect/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T20:13:45.108Z","emptyReason":null},"readme":"Skill: ia-reflect\n\nOwner: iliaal\n\nSummary: 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.\n\nTags: latest:5.0.1\n\nVersion history:\n\nv5.0.1 | 2026-10-03T17:07:20.799Z | user\n\nv5.0.1\n\nv5.0.0 | 2026-09-26T23:20:14.844Z | user\n\nv5.0.0\n\nv4.5.2 | 2026-09-08T01:46:04.549Z | user\n\nv4.5.2\n\nv4.5.0 | 2026-08-29T22:22:50.352Z | user\n\nv4.5.0\n\nv4.4.3 | 2026-08-29T12:34:33.202Z | user\n\nv4.4.3\n\nv4.3.2 | 2026-07-27T20:52:31.464Z | user\n\nv4.3.2\n\nv4.2.1 | 2026-07-11T11:15:34.864Z | user\n\nv4.2.1\n\nv3.0.5 | 2026-04-30T00:03:49.636Z | user\n\nv3.0.5\n\nv3.0.4 | 2026-04-27T14:39:45.524Z | user\n\nv3.0.4\n\nv3.0.3 | 2026-04-24T12:35:22.617Z | user\n\nv3.0.3\n\nv3.0.2 | 2026-04-24T11:50:40.026Z | user\n\nv3.0.2\n\nv3.0.1 | 2026-04-24T11:31:21.248Z | user\n\nv3.0.1\n\nv3.0.0 | 2026-04-23T19:28:39.784Z | user\n\nv3.0.0\n\nv2.56.1 | 2026-04-18T13:30:36.925Z | user\n\nv2.56.1\n\nv2.56.0 | 2026-04-14T12:40:45.472Z | user\n\nv2.56.0\n\nv2.55.1 | 2026-04-12T14:30:58.288Z | user\n\nv2.55.1\n\nv2.55.0 | 2026-04-11T01:01:39.684Z | user\n\nv2.55.0\n\nv2.53.2 | 2026-04-08T14:21:31.608Z | user\n\nv2.53.2\n\nv2.53.0 | 2026-04-07T00:55:26.065Z | user\n\nv2.53.0\n\nArchive index:\n\nArchive v5.0.1: 4 files, 7764 bytes\n\nFiles: skill-card.md (1463b), SKILL.md (9786b), SPEC.md (4307b), _meta.json (139b)\n\nFile v5.0.1:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Findings state the reviewed evidence's limits; missing observations do not establish success or complete coverage\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- Memory persistence follows existing authorization, or the user selects concrete proposed items before any write\n- If review activity occurred, review-trap candidates are reported; persist only with authorization, or explicitly report no candidates\n\n## Process\n\n### 1. Session Review\n\nScan the available conversation and relevant artifacts. State any missing or truncated evidence and the scope actually reviewed. For each finding, cite the specific exchange or artifact (quote or paraphrase) and its impact. Do not infer a clean session from gaps in the record.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nCollect 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.\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- 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.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture; good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome; say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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.\n\nLabel a command as working only when the reviewed record contains its execution and relevant successful result. Preserve the revision and environment conditions needed to reproduce that result. Treat an asserted success without output as unverified.\n\nExclude 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.\n\nAlso 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 worth more than a prompt tweak.\n\nFor a recurring repository mistake, inspect the relevant check commands and configuration before proposing memory or a new check. Distinguish an existing check that was not run, a broken check, a missing deterministic check, and a rule requiring judgment. Propose the smallest remedy supported by that evidence: run or wire the existing check, repair the check, add a targeted check, or preserve a judgment rule. A retrospective proposal does not authorize implementing unrequested tooling.\n\n### 4. Improvements\n\nNumbered 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.\n\nFor 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.\n\nSave 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.\n\nKeep each memory item to an independently correctable claim in the configured format. Include the date and source when a claim's validity depends on them. When retaining an older claim for historical context, mark the superseded claim and exclude it from active guidance. Use the existing memory convention; do not introduce an archive or index solely for the retrospective.\n\nBefore 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.\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate**: If the skill lacks success criteria + verification loop:\n- Propose `## Success Criteria` at top (3-5 measurable checks)\n- Propose `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency**: Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other**: Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\n**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:\n- the **verbatim excerpt** from SKILL.md or its reference that produced the wrong behavior\n- the **project context** that made it not apply (language, runner, framework version, house convention)\n- **what happened** when it was followed\n- **what was done instead**\n\nA 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.\n\nPresent 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.\n\n### 6. Capture Markers\n\n**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`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**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.\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v5.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"5.0.1\",\n  \"publishedAt\": 1791047240799\n}\n\nFile v5.0.1:skill-card.md\n\n## Description:\n\nReviews session evidence to identify lessons, prioritize improvements, and audit skills.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iliaal](https://clawhub.ai/user/iliaal)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and other agent users use this skill to review a session for evidence-backed mistakes, friction, and wins, then propose prioritized improvements and skill changes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Persisted lessons could introduce unwanted or misleading guidance into future sessions.\n\nMitigation: Review proposed memory items and authorize only the specific changes future sessions should use.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/iliaal/skills/compound-eng-reflect)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Markdown, Guidance]\n\n**Output Format:** [Markdown retrospective and skill-audit recommendations]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Findings cite reviewed evidence and identify gaps; memory changes require authorization.]\n\n## Skill Version(s):\n\n5.0.1 (source: ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v5.0.1:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md`: runtime instructions and reference routing.\n- `references/*.md`: bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl`: positive and negative trigger phrasings under regression test.\n- `plugins/whetstone/hooks/skill-patterns.sh`: regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/`: harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release`; never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v5.0.0: 4 files, 7281 bytes\n\nFiles: skill-card.md (1642b), SKILL.md (8384b), SPEC.md (4307b), _meta.json (139b)\n\nFile v5.0.0:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- Memory persistence follows existing authorization, or the user selects concrete proposed items before any write\n- If review activity occurred, review-trap candidates are reported; persist only with authorization, or explicitly report no candidates\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nCollect 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.\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- 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.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture; good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome; say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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.\n\nExclude 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.\n\nAlso 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 worth more than a prompt tweak.\n\n### 4. Improvements\n\nNumbered 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.\n\nFor 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.\n\nSave 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.\n\nBefore 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.\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate**: If the skill lacks success criteria + verification loop:\n- Propose `## Success Criteria` at top (3-5 measurable checks)\n- Propose `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency**: Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other**: Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\n**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:\n- the **verbatim excerpt** from SKILL.md or its reference that produced the wrong behavior\n- the **project context** that made it not apply (language, runner, framework version, house convention)\n- **what happened** when it was followed\n- **what was done instead**\n\nA 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.\n\nPresent 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.\n\n### 6. Capture Markers\n\n**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`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**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.\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v5.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"5.0.0\",\n  \"publishedAt\": 1790464814844\n}\n\nFile v5.0.0:skill-card.md\n\n## Description:\n\nGuides an agent through a session retrospective and skill audit to identify lessons and actionable improvements.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iliaal](https://clawhub.ai/user/iliaal)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and other agent users use this skill to review a session, identify mistakes and wins, and propose prioritized improvements or skill updates.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The retrospective may review sensitive conversation content and existing project memory.\n\nMitigation: Use it only where review of that context is appropriate, and check summaries before sharing them.\n\nRisk: Saved learnings or skill edits can persist unwanted or inaccurate guidance.\n\nMitigation: Approve specific memory writes and skill edits before they are applied; review proposed changes for accuracy.\n\n## Reference(s):\n\n- [ia-reflect on ClawHub](https://clawhub.ai/iliaal/skills/compound-eng-reflect)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Guidance, Text]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Cites session moments and prioritizes concrete improvements; approved learnings or skill edits may be saved.]\n\n## Skill Version(s):\n\n5.0.0 (source: ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v5.0.0:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md`: runtime instructions and reference routing.\n- `references/*.md`: bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl`: positive and negative trigger phrasings under regression test.\n- `plugins/whetstone/hooks/skill-patterns.sh`: regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/`: harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release`; never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v4.5.2: 4 files, 7317 bytes\n\nFiles: skill-card.md (1662b), SKILL.md (8413b), SPEC.md (4319b), _meta.json (139b)\n\nFile v4.5.2:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- Memory persistence follows existing authorization, or the user selects concrete proposed items before any write\n- If review activity occurred, review-trap candidates are reported; persist only with authorization, or explicitly report no candidates\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nCollect 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.\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- 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.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture -- good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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.\n\nExclude 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.\n\nAlso 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.\n\n### 4. Improvements\n\nNumbered 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.\n\nFor 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.\n\nSave 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.\n\nBefore 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.\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate** -- If the skill lacks success criteria + verification loop:\n- Propose `## Success Criteria` at top (3-5 measurable checks)\n- Propose `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\n**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:\n- the **verbatim excerpt** from SKILL.md or its reference that produced the wrong behavior\n- the **project context** that made it not apply (language, runner, framework version, house convention)\n- **what happened** when it was followed\n- **what was done instead**\n\nA 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.\n\nPresent 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.\n\n### 6. Capture Markers\n\n**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`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**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.\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v4.5.2:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"4.5.2\",\n  \"publishedAt\": 1788831964549\n}\n\nFile v4.5.2:skill-card.md\n\n## Description:\n\nSession 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.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iliaal](https://clawhub.ai/user/iliaal)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent users use this skill to review a completed session, identify mistakes, friction, reusable wins, review-trap patterns, operational learnings, and concrete follow-up improvements.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Persistent notes could accidentally capture secrets, credentials, customer data, or private personal details.\n\nMitigation: Confirm what will be stored, avoid sensitive data, and only write memory after existing authorization or explicit user selection.\n\n## Reference(s):\n\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with numbered lists, tables, proposed diffs, and inline shell commands when applicable]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May propose persistent memory entries or skill edits, but memory writes require existing authorization or explicit user selection.]\n\n## Skill Version(s):\n\n4.5.2 (source: ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.5.2:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md` -- runtime instructions and reference routing.\n- `references/*.md` -- bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl` -- positive and negative trigger phrasings under regression test.\n- `plugins/whetstone/hooks/skill-patterns.sh` -- regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/` -- harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release` -- never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v4.5.0: 4 files, 7363 bytes\n\nFiles: skill-card.md (1903b), SKILL.md (8121b), SPEC.md (4319b), _meta.json (139b)\n\nFile v4.5.0:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- User is asked which items to persist to memory\n- If review activity occurred, review-trap patterns are captured to persistent memory, or explicitly marked as \"none\"\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Capture the one-liner to persistent memory.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture -- good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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.\n\nExclude 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.\n\nAlso 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.\n\n### 4. Improvements\n\nNumbered 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.\n\nAsk via AskUserQuestion (Claude Code; load with ToolSearch `select:AskUserQuestion` if not loaded) or request_user_input (Codex); fall back to numbered options in chat: *\"Which of these should I remember for future chats?\"*\n\nSave approved items to memory files at `~/.claude/projects/<project-slug>/memory/` (replace `<project-slug>` with the slug matching the current working directory, e.g., `-home-ilia-ai-whetstone`) using the Write tool with proper frontmatter (see MEMORY.md index).\n\nBefore 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.\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate** -- If the skill lacks success criteria + verification loop:\n- Add `## Success Criteria` at top (3-5 measurable checks)\n- Add `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\n**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:\n- the **verbatim excerpt** from SKILL.md or its reference that produced the wrong behavior\n- the **project context** that made it not apply (language, runner, framework version, house convention)\n- **what happened** when it was followed\n- **what was done instead**\n\nA 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.\n\nPresent proposed changes as diffs. Ask via AskUserQuestion (Claude Code; load with ToolSearch `select:AskUserQuestion` if not loaded) or request_user_input (Codex); fall back to numbered options in chat: *\"Apply these? (all / pick / skip)\"*\n\n### 6. Capture Markers\n\n**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`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**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.\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v4.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"4.5.0\",\n  \"publishedAt\": 1788042170352\n}\n\nFile v4.5.0:skill-card.md\n\n## Description:\n\nSession retrospective and skill audit for reviewing lessons learned, session effectiveness, and what went well or wrong.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iliaal](https://clawhub.ai/user/iliaal)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineering teams use this skill to run structured retrospectives, identify actionable improvements, audit invoked skills, and decide which lessons should be preserved for future sessions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Approved retrospectives can persist session lessons or explicit remember: items into project memory, which could preserve sensitive data or temporary preferences.\n\nMitigation: Avoid approving secrets, private customer details, personal data, or short-lived preferences for persistence.\n\nRisk: Skill audit diffs could introduce incorrect or misleading guidance into future skill behavior.\n\nMitigation: Review proposed skill diffs and scan the skill before applying or releasing changes.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/iliaal/skills/compound-eng-reflect)\n- [SPEC.md](artifact/SPEC.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance, code, shell commands, configuration]\n\n**Output Format:** [Markdown guidance with proposed diffs, numbered improvement lists, and optional commands or configuration paths]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May propose persistent memory updates only after user approval.]\n\n## Skill Version(s):\n\n4.5.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.5.0:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md` -- runtime instructions and reference routing.\n- `references/*.md` -- bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl` -- positive and negative trigger phrasings under regression test.\n- `plugins/whetstone/hooks/skill-patterns.sh` -- regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/` -- harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release` -- never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v4.4.3: 4 files, 7323 bytes\n\nFiles: skill-card.md (2054b), SKILL.md (7793b), SPEC.md (4319b), _meta.json (139b)\n\nFile v4.4.3:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- User is asked which items to persist to memory\n- If review activity occurred, review-trap patterns are captured to persistent memory, or explicitly marked as \"none\"\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Capture the one-liner to persistent memory.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture -- good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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.\n\nExclude 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.\n\nAlso 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.\n\n### 4. Improvements\n\nNumbered 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.\n\nAsk: *\"Which of these should I remember for future chats?\"*\n\nSave approved items to memory files at `~/.claude/projects/<project-slug>/memory/` (replace `<project-slug>` with the slug matching the current working directory, e.g., `-home-ilia-ai-whetstone`) using the Write tool with proper frontmatter (see MEMORY.md index).\n\nBefore 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.\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate** -- If the skill lacks success criteria + verification loop:\n- Add `## Success Criteria` at top (3-5 measurable checks)\n- Add `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\n**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:\n- the **verbatim excerpt** from SKILL.md or its reference that produced the wrong behavior\n- the **project context** that made it not apply (language, runner, framework version, house convention)\n- **what happened** when it was followed\n- **what was done instead**\n\nA 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.\n\nPresent proposed changes as diffs. Ask: *\"Apply these? (all / pick / skip)\"*\n\n### 6. Capture Markers\n\n**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`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**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.\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v4.4.3:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"4.4.3\",\n  \"publishedAt\": 1788006873202\n}\n\nFile v4.4.3:skill-card.md\n\n## Description:\n\nSession retrospective and skill audit for reflecting on conversations, reviewing lessons learned, auditing what went well or wrong, and improving session effectiveness.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iliaal](https://clawhub.ai/user/iliaal)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use ia-reflect to conduct structured retrospectives after a session, identify mistakes, friction, wins, and operational learnings, and decide which lessons should be persisted for future work.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can persist approved retrospective lessons into local agent memory.\n\nMitigation: Review each proposed memory item before approving persistence, and avoid storing secrets, credentials, customer data, or sensitive personal/project information.\n\nRisk: A retrospective or skill audit can produce incorrect or overly broad recommendations that affect future agent behavior.\n\nMitigation: Treat recommendations and proposed diffs as reviewable guidance, apply only concrete changes with clear evidence, and run the documented validation gates for skill edits.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/iliaal/skills/compound-eng-reflect)\n- [SKILL.md](SKILL.md)\n- [SPEC.md](SPEC.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance, Code, Configuration]\n\n**Output Format:** [Markdown with numbered recommendations, audit findings, proposed diffs, and memory-capture prompts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May propose local memory updates and skill edits only after user review or approval.]\n\n## Skill Version(s):\n\n4.4.3 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.4.3:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md` -- runtime instructions and reference routing.\n- `references/*.md` -- bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl` -- positive and negative trigger phrasings under regression test.\n- `plugins/whetstone/hooks/skill-patterns.sh` -- regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/` -- harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release` -- never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v4.3.2: 4 files, 7275 bytes\n\nFiles: skill-card.md (2553b), SKILL.md (7221b), SPEC.md (4319b), _meta.json (139b)\n\nFile v4.3.2:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- User is asked which items to persist to memory\n- If review activity occurred, review-trap patterns are captured to persistent memory, or explicitly marked as \"none\"\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Capture the one-liner to persistent memory.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture -- good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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.\n\nExclude 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.\n\n### 4. Improvements\n\nNumbered 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.\n\nAsk: *\"Which of these should I remember for future chats?\"*\n\nSave approved items to memory files at `~/.claude/projects/<project-slug>/memory/` (replace `<project-slug>` with the slug matching the current working directory, e.g., `-home-ilia-ai-whetstone`) using the Write tool with proper frontmatter (see MEMORY.md index).\n\nBefore 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.\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate** -- If the skill lacks success criteria + verification loop:\n- Add `## Success Criteria` at top (3-5 measurable checks)\n- Add `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\n**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:\n- the **verbatim excerpt** from SKILL.md or its reference that produced the wrong behavior\n- the **project context** that made it not apply (language, runner, framework version, house convention)\n- **what happened** when it was followed\n- **what was done instead**\n\nA 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.\n\nPresent proposed changes as diffs. Ask: *\"Apply these? (all / pick / skip)\"*\n\n### 6. Capture Markers\n\n**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`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**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.\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v4.3.2:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"4.3.2\",\n  \"publishedAt\": 1785185551464\n}\n\nFile v4.3.2:skill-card.md\n\n## Description: <br>\nSession 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. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[iliaal](https://clawhub.ai/user/iliaal) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent operators use this tool-class skill to review a session, identify mistakes, friction, wasted effort, wins, and operational learnings, and decide which lessons should be preserved. It also audits invoked skills and proposes measurable changes when skill guidance was missing, inefficient, or mismatched to the session. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Conversation-derived lessons, including exact user phrasing, may contain secrets, personal data, customer information, or sensitive project context. <br>\nMitigation: Review and sanitize every proposed memory entry before approving writes, and avoid approving entries that include sensitive content. <br>\nRisk: Persistent memory entries can become duplicated or contradictory over time. <br>\nMitigation: Search existing memory for key terms before writing, update near-duplicates, and surface contradictions for an explicit merge, replace, or keep-both decision. <br>\nRisk: Skill-audit diffs may introduce incorrect or overbroad guidance if accepted without review. <br>\nMitigation: Review proposed diffs before applying them and run the skill's validation or trigger tests when behavior changes. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/iliaal/skills/compound-eng-reflect) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with numbered findings, review scans, prioritized improvements, proposed diffs, and approval prompts for memory writes] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Caps improvement recommendations at 10 and asks for user approval before writing selected lessons to persistent memory.] <br>\n\n## Skill Version(s): <br>\n4.3.2 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v4.3.2:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md` -- runtime instructions and reference routing.\n- `references/*.md` -- bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl` -- positive and negative trigger phrasings under regression test.\n- `plugins/whetstone/hooks/skill-patterns.sh` -- regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/` -- harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release` -- never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v4.2.1: 4 files, 6610 bytes\n\nFiles: skill-card.md (2078b), SKILL.md (6257b), SPEC.md (4319b), _meta.json (139b)\n\nFile v4.2.1:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- User is asked which items to persist to memory\n- If review activity occurred, review-trap patterns are captured to persistent memory, or explicitly marked as \"none\"\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Capture the one-liner to persistent memory.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture -- good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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.\n\nExclude 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.\n\n### 4. Improvements\n\nNumbered 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.\n\nAsk: *\"Which of these should I remember for future chats?\"*\n\nSave approved items to memory files at `~/.claude/projects/<project-slug>/memory/` (replace `<project-slug>` with the slug matching the current working directory, e.g., `-home-ilia-ai-whetstone`) using the Write tool with proper frontmatter (see MEMORY.md index).\n\nBefore 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.\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate** -- If the skill lacks success criteria + verification loop:\n- Add `## Success Criteria` at top (3-5 measurable checks)\n- Add `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\nPresent proposed changes as diffs. Ask: *\"Apply these? (all / pick / skip)\"*\n\n### 6. Capture Markers\n\n**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`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**Proactive trigger:** When the user corrects you, clarifies the same thing twice, or shows frustration, append: \"Tip: Type `/ia-reflect` when you're ready -- I'll review what we can improve.\"\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v4.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"4.2.1\",\n  \"publishedAt\": 1783768534864\n}\n\nFile v4.2.1:skill-card.md\n\n## Description: <br>\nSession retrospective and skill audit for reflecting on sessions, reviewing lessons learned, and auditing what went well or wrong. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[iliaal](https://clawhub.ai/user/iliaal) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent users use this skill to review a completed session, identify mistakes, friction, wasted effort, and wins, and decide which lessons should be preserved. It also audits invoked skills and proposes concrete improvements or diffs when skill changes are warranted. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Saved memories or skill edits can influence future agent behavior if approved without review. <br>\nMitigation: Review each proposed memory entry or skill diff before approving persistence. <br>\nRisk: Session retrospectives may quote or summarize sensitive conversation content. <br>\nMitigation: Do not persist secrets, credentials, private URLs, customer data, unredacted personal information, or machine-specific paths. <br>\n\n\n## Reference(s): <br>\n- [ia-reflect on ClawHub](https://clawhub.ai/iliaal/skills/compound-eng-reflect) <br>\n- [Skill specification](artifact/SPEC.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, guidance] <br>\n**Output Format:** [Markdown with findings, prioritized improvements, review prompts, and proposed diffs when skill audits are requested.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May propose memory entries or skill edits for user approval; review proposed changes before they are persisted.] <br>\n\n## Skill Version(s): <br>\n4.2.1 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v4.2.1:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md` -- runtime instructions and reference routing.\n- `references/*.md` -- bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl` -- positive and negative trigger phrasings under regression test.\n- `plugins/whetstone/hooks/skill-patterns.sh` -- regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/` -- harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release` -- never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v3.0.5: 4 files, 6165 bytes\n\nFiles: skill-card.md (2043b), SKILL.md (5352b), SPEC.md (4352b), _meta.json (139b)\n\nFile v3.0.5:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- User is asked which items to persist to memory\n- If review activity occurred, review-trap patterns are captured to persistent memory, or explicitly marked as \"none\"\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Capture the one-liner to persistent memory.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture -- good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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 command that failed unexpectedly, an approach that worked better than expected.\n\n### 4. Improvements\n\nNumbered 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.\n\nAsk: *\"Which of these should I remember for future chats?\"*\n\nSave approved items to memory files at `~/.claude/projects/<project-slug>/memory/` (replace `<project-slug>` with the slug matching the current working directory, e.g., `-home-ilia-ai-compound-engineering-plugin`) using the Write tool with proper frontmatter (see MEMORY.md index).\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate** -- If the skill lacks success criteria + verification loop:\n- Add `## Success Criteria` at top (3-5 measurable checks)\n- Add `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\nPresent proposed changes as diffs. Ask: *\"Apply these? (all / pick / skip)\"*\n\n### 6. Capture Markers\n\n**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. Example: `remember: we never use Pest, always PHPUnit` → save to `feedback_phpunit_over_pest.md`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**Proactive trigger:** When the user corrects you, clarifies the same thing twice, or shows frustration, append: \"Tip: Type `/ia-reflect` when you're ready -- I'll review what we can improve.\"\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v3.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"3.0.5\",\n  \"publishedAt\": 1777507429636\n}\n\nFile v3.0.5:skill-card.md\n\n## Description: <br>\nSession 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. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[iliaal](https://clawhub.ai/user/iliaal) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent maintainers use this skill to review a completed session, identify mistakes, friction, useful lessons, and skill improvements, and decide which lessons should be persisted for future chats. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can save selected retrospective lessons to memory, which could accidentally capture secrets, customer data, private URLs, or sensitive personal information. <br>\nMitigation: Review the exact content before approving any memory write, and exclude secrets, credentials, customer data, private URLs, and sensitive personal information. <br>\nRisk: Retrospective findings or skill audit proposals could introduce incorrect or misleading guidance if accepted without review. <br>\nMitigation: Review proposed findings, memory entries, and skill changes before applying them, then scan the skill before deployment. <br>\n\n\n## Reference(s): <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, guidance] <br>\n**Output Format:** [Markdown guidance with review findings, prioritized improvements, proposed diffs, and memory-capture prompts] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May propose memory entries or skill changes for user approval.] <br>\n\n## Skill Version(s): <br>\n3.0.5 (source: release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v3.0.5:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/compound-engineering/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md` -- runtime instructions and reference routing.\n- `references/*.md` -- bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl` -- positive and negative trigger phrasings under regression test.\n- `plugins/compound-engineering/hooks/skill-patterns.sh` -- regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/` -- harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/compound-engineering/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release` -- never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v3.0.4: 3 files, 5090 bytes\n\nFiles: SKILL.md (5352b), SPEC.md (4352b), _meta.json (139b)\n\nFile v3.0.4:SKILL.md\n\n---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- User is asked which items to persist to memory\n- If review activity occurred, review-trap patterns are captured to persistent memory, or explicitly marked as \"none\"\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Capture the one-liner to persistent memory.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture -- good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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 command that failed unexpectedly, an approach that worked better than expected.\n\n### 4. Improvements\n\nNumbered 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.\n\nAsk: *\"Which of these should I remember for future chats?\"*\n\nSave approved items to memory files at `~/.claude/projects/<project-slug>/memory/` (replace `<project-slug>` with the slug matching the current working directory, e.g., `-home-ilia-ai-compound-engineering-plugin`) using the Write tool with proper frontmatter (see MEMORY.md index).\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate** -- If the skill lacks success criteria + verification loop:\n- Add `## Success Criteria` at top (3-5 measurable checks)\n- Add `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\nPresent proposed changes as diffs. Ask: *\"Apply these? (all / pick / skip)\"*\n\n### 6. Capture Markers\n\n**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. Example: `remember: we never use Pest, always PHPUnit` → save to `feedback_phpunit_over_pest.md`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**Proactive trigger:** When the user corrects you, clarifies the same thing twice, or shows frustration, append: \"Tip: Type `/ia-reflect` when you're ready -- I'll review what we can improve.\"\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v3.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"3.0.4\",\n  \"publishedAt\": 1777300785524\n}\n\nFile v3.0.4:SPEC.md\n\n# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/compound-engineering/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md` -- runtime instructions and reference routing.\n- `references/*.md` -- bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl` -- positive and negative trigger phrasings under regression test.\n- `plugins/compound-engineering/hooks/skill-patterns.sh` -- regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/` -- harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/compound-engineering/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect\n```\n\nAcceptance gates:\n- `validate-plugin --component ia-reflect` returns 0 HIGH findings.\n- `test-triggers --skill ia-reflect` returns F1 = 1.0 with floors of 5 should_trigger and 5 should_not_trigger.\n- For dspy-eval, the composite score does not regress against the most recent saved baseline (see `distillery/.eval-data/ia-reflect/history.json`).\n\n## Known Limitations\n\n<!-- to fill in over time as drift surfaces. Default rule: any time diagnose-negatives\n     surfaces a recurring failure pattern, document it here so future maintainers\n     understand the trade-off the current implementation accepts. -->\n\n## Maintenance Notes\n\n- Update `SKILL.md` when the runtime workflow, branch conditions, or output contract changes.\n- Update this `SPEC.md` when intent, scope, evidence model, evaluation gates, or maintenance expectations change.\n- Update the trigger fixture when adding new positive phrasings, removing stale ones, or expanding scope (the 5/5 floor is a hard validator gate).\n- Update the hook regex in `skill-patterns.sh` whenever fixture positives expose a missed phrasing; verify F1 = 1.0 with `eval-triggers` before committing.\n- Run the full release pipeline via `/release` -- never bump versions or update CHANGELOG.md from a per-skill edit.\n\nArchive v3.0.3: 2 files, 3008 bytes\n\nFiles: SKILL.md (5232b), _meta.json (139b)\n\nFile v3.0.3:SKILL.md\n\n---\nname: ia-reflect\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Improvements are actionable, prioritized, and <= 10 items\n- Each skill audit proposes measurable changes (not vague suggestions)\n- User is asked which items to persist to memory\n- If review activity occurred, review-trap patterns are captured to persistent memory, or explicitly marked as \"none\"\n\n## Process\n\n### 1. Session Review\n\nScan the full conversation. For each finding, cite the specific exchange (quote or paraphrase) and its impact.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- Did I accept it? If yes, what pattern did the reviewer catch that I missed? Is it a recurring blind spot? Capture the one-liner to persistent memory.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture -- good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome -- say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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 command that failed unexpectedly, an approach that worked better than expected.\n\n### 4. Improvements\n\nNumbered list of **concrete improvements**, ranked by impact. Each item: one sentence, imperative, actionable. Cap at 10.\n\nAsk: *\"Which of these should I remember for future chats?\"*\n\nSave approved items to memory files at `~/.claude/projects/<project-slug>/memory/` (replace `<project-slug>` with the slug matching the current working directory, e.g., `-home-ilia-ai-compound-engineering-plugin`) using the Write tool with proper frontmatter (see MEMORY.md index).\n\n### 5. Skill Audit (if skills were used)\n\nFor each skill invoked during the session:\n\n**A. Self-check gate** -- If the skill lacks success criteria + verification loop:\n- Add `## Success Criteria` at top (3-5 measurable checks)\n- Add `## Self-Check` at bottom: \"Verify all success criteria are met before presenting output. If not, iterate (max 5 times).\"\n\n**B. Token efficiency** -- Flag: redundant phrasing, mergeable sections, oversized examples, \"Claude already knows this\" content, inert frontmatter metadata.\n\n**C. Other** -- Missing edge cases, vague directives (rewrite as measurable criteria or remove), naked negations (add \"do Y instead\" or remove).\n\nPresent proposed changes as diffs. Ask: *\"Apply these? (all / pick / skip)\"*\n\n### 6. Capture Markers\n\n**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. Example: `remember: we never use Pest, always PHPUnit` → save to `feedback_phpunit_over_pest.md`.\n\n**Correction patterns to watch for** (lower-confidence, batch these for review at `/ia-reflect` time):\n- \"no, use X\" / \"actually, X\" / \"don't use Y, use X\"\n- \"stop doing X\" / \"never X\"\n- \"that's wrong — the right way is...\"\n- repeated clarifications of the same thing within a session\n\n**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.\n\n### 7. Pattern Detection\n\nIf 2+ similar tasks appear that no existing skill covers, suggest a new skill (1-2 sentence description). Create only after confirmation.\n\n**Proactive trigger:** When the user corrects you, clarifies the same thing twice, or shows frustration, append: \"Tip: Type `/ia-reflect` when you're ready -- I'll review what we can improve.\"\n\n## Self-Check\n\nBefore presenting output, verify all success criteria are met. If any fail, revise (max 5 iterations).\n\nFile v3.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"3.0.3\",\n  \"publishedAt\": 1777034122617\n}","readmeExcerpt":"Skill: ia-reflect Owner: iliaal Summary: 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. Tags: latest:5.0.1 Version history: v5.0.1 | 2026-10-03T17:07:20.799Z | user v5.0.1 v5.0.0 | 2026-09-26T23:20:14.844Z | user v5.0.0 v4.5.2 | 2026-09-08T01:46:04.549Z | user v4.5.2 v4.5.0 | 2026-08-29T22:22","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect"},{"language":"bash","snippet":"python3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect"},{"language":"bash","snippet":"python3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect"},{"language":"bash","snippet":"python3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect"},{"language":"bash","snippet":"python3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect"},{"language":"bash","snippet":"python3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scripts/distiller.py diagnose-negatives ia-reflect"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: ia-reflect\nclass: tool\ndescription: >-\n  Session retrospective and skill audit. Use when asked to reflect, do a\n  retrospective, review lessons learned, audit what went well or wrong, or\n  review session effectiveness.\n---\n\n# Reflect\n\n## Success Criteria\n\n- Every mistake/friction point cites the specific moment and its impact\n- Findings state the reviewed evidence's limits; missing observations do not establish success or complete coverage\n- Improvements are actionable and prioritized (cap defined in step 4)\n- Each skill audit proposes measurable changes (not vague suggestions)\n- Memory persistence follows existing authorization, or the user selects concrete proposed items before any write\n- If review activity occurred, review-trap candidates are reported; persist only with authorization, or explicitly report no candidates\n\n## Process\n\n### 1. Session Review\n\nScan the available conversation and relevant artifacts. State any missing or truncated evidence and the scope actually reviewed. For each finding, cite the specific exchange or artifact (quote or paraphrase) and its impact. Do not infer a clean session from gaps in the record.\n\n| Category | Signal |\n|----------|--------|\n| **Mistakes** | Wrong outputs, incorrect assumptions, hallucinated facts |\n| **Friction** | Repeated clarifications, verbose responses, misread intent |\n| **Wasted effort** | Work discarded, wrong approaches tried first |\n| **Wins** | Approaches worth repeating, smooth interactions |\n\nSkip one-time typos, external tool failures, and issues outside agent control.\n\n### 2. Review Activity Scan (if applicable)\n\nCollect 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.\n\nIf the session included PR or MR review activity in either direction, run this scan before moving on. Skip only if no reviews happened.\n\n**Inbound (my code was reviewed):** For each review comment received:\n- 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.\n- 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.\n\n**Outbound (I reviewed someone else's code):** For each comment I authored:\n- Was it accepted? Nothing to capture; good call.\n- 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?\n\n\"No harvestable items\" is a valid outcome; say so explicitly. Don't let the step quietly drop off.\n\n### 3. Operational Learnings\n\nBefore 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 r"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn715jrbbh71q9zncr0bqdkr8n848q1a\",\n  \"slug\": \"compound-eng-reflect\",\n  \"version\": \"5.0.1\",\n  \"publishedAt\": 1791047240799\n}"},{"path":"skill-card.md","content":"## Description:\n\nReviews session evidence to identify lessons, prioritize improvements, and audit skills.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iliaal](https://clawhub.ai/user/iliaal)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and other agent users use this skill to review a session for evidence-backed mistakes, friction, and wins, then propose prioritized improvements and skill changes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Persisted lessons could introduce unwanted or misleading guidance into future sessions.\n\nMitigation: Review proposed memory items and authorize only the specific changes future sessions should use.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/iliaal/skills/compound-eng-reflect)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Markdown, Guidance]\n\n**Output Format:** [Markdown retrospective and skill-audit recommendations]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Findings cite reviewed evidence and identify gaps; memory changes require authorization.]\n\n## Skill Version(s):\n\n5.0.1 (source: ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"SPEC.md","content":"# ia-reflect Specification\n\n## Intent\n\n`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.\n\n## Scope\n\nIn scope:\n- Behaviors described in `SKILL.md` and routed via the should_trigger phrasings in `distillery/tests/fixtures/triggers/ia-reflect.jsonl`.\n- Updates to runtime behavior, structure, trigger precision, references, and validation.\n\nOut of scope:\n- Acting as the runtime instructions themselves (those live in `SKILL.md`).\n- Trigger phrasings already covered by adjacent `ia-*` skills (`validate-plugin` flags >70% description overlap as DUPLICATE_TRIGGER).\n- <!-- to fill in: domain-specific exclusions when the skill drifts -->\n\n## Trigger Context\n\n- Class: `tool`\n- Hook regex: `plugins/whetstone/hooks/skill-patterns.sh` -> `SKILL_PATTERNS[ia-reflect]`\n- Common requests (from fixture should_trigger):\n  - \"let's do a retrospective on this session\"\n  - \"what went wrong with the last deployment\"\n  - \"retrospective on this debugging session\"\n- Should not trigger for (from fixture should_not_trigger):\n  - \"implement the webhook handler for Stripe events\"\n  - \"update the Docker compose file for local dev\"\n  - \"plan the next feature\"\n\n## Source And Evidence Model\n\nAuthoritative sources:\n\n- `SKILL.md`: runtime instructions and reference routing.\n- `references/*.md`: bundled supplementary content (0 file(s)).\n- `distillery/tests/fixtures/triggers/ia-reflect.jsonl`: positive and negative trigger phrasings under regression test.\n- `plugins/whetstone/hooks/skill-patterns.sh`: regex pattern that fires this skill.\n- `distillery/.eval-data/ia-reflect/`: harvested session examples (when present).\n\nData that must not be stored in this skill or its references:\n\n- Secrets, credentials, tokens.\n- Machine-specific filesystem paths (`/home/...`, `/Users/...`, `~/ai/...`). The validator (`MACHINE_PATH_LEAK`) flags these as HIGH.\n- Private URLs, customer data, or unredacted personal information.\n\n### Coverage matrix\n\n| Dimension | Status | Evidence |\n|---|---|---|\n| Trigger fixtures | complete | distillery/tests/fixtures/triggers/ia-reflect.jsonl (>=5 should_trigger, >=5 should_not_trigger) |\n| Hook regex pattern | complete | plugins/whetstone/hooks/skill-patterns.sh (`SKILL_PATTERNS[ia-reflect]`) |\n| Reference architecture | n/a | no references; SKILL.md is self-contained |\n| Real-usage signal | <!-- populated by harvest-sessions when sessions exist --> | distillery/.eval-data/ia-reflect/ (created by harvest-sessions) |\n\n## Evaluation\n\nLightweight (run on every change):\n\n```bash\npython3 distillery/scripts/distiller.py validate-plugin --component ia-reflect\npython3 distillery/scripts/distiller.py test-triggers --skill ia-reflect\n```\n\nDeeper (when behavior risk warrants):\n\n```bash\npython3 distillery/scripts/distiller.py dspy-eval ia-reflect\npython3 distillery/scrip"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"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. Skill: ia-reflect Owner: iliaal Summary: 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. Tags: latest:5.0.1 Version history: v5.0.1 | 2026-10-03T17:07:20.799Z | user v5.0.1 v5.0.0 | 2026-09-26T23:20:14.844Z | user v5.0.0 v4.5.2 | 2026-09-08T01:46:04.549Z | user v4.5.2 v4.5.0 | 2026-08-29T22:22","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1364,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T20:13:45.108Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T20:13:45.108Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:53:31.035Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}