pstack/skills/reflect/SKILL.md
Spawn three parallel review subagents over the active transcript, surface learnings, and route each to a concrete edit on an existing skill. Use when the user says reflect.
npx skillsauth add cursor/plugins reflectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Mine the current conversation for durable learnings, then route them into skill edits.
Skip when the conversation is trivial, off-topic, or already covered by an existing skill the parent followed correctly. One-offs are not learnings.
The parent finds its own transcript file before fanning out. The system prompt names the active workspace's agent-transcripts/ directory; use that path. Do not glob across ~/.cursor/projects/*/. That crosses workspace boundaries and reads private chats from unrelated projects.
ls -t <agent-transcripts>/*.jsonl <agent-transcripts>/*/*.jsonl <agent-transcripts>/*/subagents/*.jsonl 2>/dev/null | head -10
Three transcript layouts: legacy flat (<id>.jsonl), current nested (<id>/<id>.jsonl), and subagent (<parent>/subagents/<child>.jsonl).
For each candidate, read the first JSONL line and check that message.content[0].text contains the conversation's opening user prompt. Take the matching path. If no path resolves, write a tight digest of the session and pass that instead.
One message, three Task calls, subagent_type: generalPurpose, explicit model: on each, agent mode (readonly: false). Reviewers need MCP access for context lookups (tickets, chat threads, observability traces referenced in the transcript); readonly strips MCPs. The prompt forbids file writes; the parent applies edits.
| Lens | model | Prompt template |
|---|---|---|
| Judgment | your configured reflect-judgment model (default claude-opus-4-8-thinking-xhigh) | references/judgment-reviewer.md |
| Tooling | your configured reflect-tooling model (default composer-2.5-fast) | references/tooling-reviewer.md |
| Divergent | your configured reflect-judgment model (default claude-opus-4-8-thinking-xhigh) | references/divergent-reviewer.md |
Pass each template verbatim, substituting the transcript path or digest where marked. Reviewers return findings in the Task response body.
One Task call, subagent_type: generalPurpose, using your configured reflect-judgment model (default claude-opus-4-8-thinking-xhigh), agent mode (readonly: false). The synthesizer's quality check includes spot-verifying citations, which can require MCP access; readonly strips MCPs. Use references/synthesizer.md verbatim, with each reviewer's full output inlined where marked. The synthesizer returns a structured Accepted / Rejected / Backlog list.
Sanity-check the synthesizer's Accepted list. For any item that would be enforced more reliably by a lint rule, script, metadata flag, or runtime check, move it from Accepted to Backlog. The synthesizer already applies this criterion; this is a final pass before edits land. See the encode-lessons-in-structure principle skill.
Before applying any Accepted edit, present the synthesizer's full Accepted/Rejected/Backlog output to the user and wait for explicit approval. The user picks which subset to apply and may redirect routings. Skill changes affect every future agent in the org; do not auto-apply.
Backlog items file to whatever devex / backlog tracker your team uses automatically. Those are tracker submissions, not skill edits. Only the Accepted list waits for approval.
For each approved Accepted item, follow the Routing field exactly:
create-skill skill and run its draft / test / iterate loop.tune description: <skill path> (the skill exists but didn't trigger when it should have): hand to create-skill and run its description-optimization loop.new skill via create-skill: <kebab-name>: hand creation to create-skill. Do not invent the shape ad hoc.If your environment ships a SKILL.md validator, run it on every touched skill before declaring done. Skip this step if it doesn't.
Short list, no preamble:
<skill path>. What changed, one line each.<skill path>. One line each (rare).<issue title> (<tags>). One line each.documentation
Configure which models pstack uses per role. Detects your available models and writes an always-applied rule that overrides the skill defaults. Use for /setup-pstack, "configure pstack models", or changing pstack's model choices.
testing
Apply to multi-step work (sweeps, migrations, runs of similar edits) and to how you stack commits and PRs. Break work into small units that each end in a verifiable state, check each before the next, and order delivery so the sequence proves itself to a reviewer.
development
Design an auditable playbook when no narrower one fits: a large migration, an ambitious multi-part change, or work a human reviews after stepping away. Scales rigor to the task, runs a hypothesis loop, and logs decisions via show-me-your-work. Use for /figure-it-out, 'figure it out', a large migration, or when no narrower playbook applies.
tools
Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available MCPs and queries each evidence category (source control, issue tracker, long-form docs, real-time chat, infrastructure observability, error tracking, product analytics warehouse) in parallel, then returns a cited read on decisions and tradeoffs. Use how for runtime behavior.