Triage a GitHub issue or a reported problem — check it is real and not by design (code, git history, PRs, Hindsight memory), find the code and patterns to reuse, build a proof-of-concept fix and prove it solves the problem, then explain the problem and the fix in behaviours before doing the full fix. Use when asked to "triage
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Input: a GitHub issue (number or URL) or a problem described in words. Goal: the user knows whether the problem is real, what it does, and what a fix would change — backed by a working POC — and decides before you do the full fix.
Don't do the full fix in this skill. It ends at step 5, with the user's answer.
Read the issue fully (gh issue view <N> --comments): what the reporter saw, what they expected,
version, config. Then check both sides:
git log -S '<key string>' --oneline / git log -L / git blame on the lines involved, then
read those commits.gh pr list --state all --search "<keywords>", gh pr view <N> --comments.gh issue list --state all --search "<keywords>".hindsight_* tools are available): search the
knowledge pages and, when you need the why, run a reflect. Treat what it says as a past
record — check it against the code.If it's not real, already fixed, a duplicate, by design, a local setup problem, or not worth changing: tell the user plainly why, with the evidence (commit, PR, issue, line of code). Propose closing it with a short, kind comment, written out ready to post, e.g.:
This is by design: (see #). <What to do instead, if anything.> Closing — feel free to reopen if I missed something.
Ask before posting or closing — never do it on your own.
Before writing anything, find what is already there:
.claude/skills/code-review/SKILL.md so the POC already follows the repo's rules.Work on a new branch off origin/main (triage/<issue-number-or-short-slug>), so the POC never
mixes with other work and can become the full fix later.
No workarounds. The POC — and the plan built on it — must be the long-term fix: the one you'd want in the codebase in a year. Not a retry around a race, a special case for the reporter's input, a bigger timeout, a swallowed error, a flag to turn the problem off, or a guard at one call site when the cause sits underneath. Think it through first: why does the code allow this at all, what's the right place and design to fix it, and does the fix still hold when the data grows or a new caller shows up? If the right fix is big, the POC can cover the core of it — but it must be that fix, not a stand-in. If you see a quick patch too, you may mention it, but only as "not recommended", and say why.
Then prove it:
Performance issue: recreate the reporter's situation at the same or a smaller scale (same data
shape, same operation, same config), measure it before the change, then after, the same way, a few
runs each. Use the repo's perf tools when they fit (./scripts/benchmarks/,
hindsight-dev/benchmarks/), otherwise a small script. Show numbers side by side (before / after /
change). No numbers, no plan.
UI change: start the API and the control plane so the user can see it. Use free ports (check
with lsof -nP -iTCP:<port> -sTCP:LISTEN — other worktrees often hold 8888/9999) and a new,
unique pg0 instance (HINDSIGHT_API_DATABASE_URL=pg0://triage-<issue-number-or-short-slug>).
Write down each PID and the pg0 instance. Seed the data needed to show the change, open it in the browser if browser tools are
available, and give the user the link.
Services you start: stop only your own — kill your PIDs (never pkill -f hindsight/pytest),
and pg0 drop --name <name> -f only on instances you created; never touch a shared one. Leave the
UI running while the user looks; stop everything once they are done or the triage ends.
Tell the user, in plain words and in behaviours (what a user or agent sees and does, not function names):
Then ask whether to go ahead with the full fix (AskUserQuestion). Don't start it before they answer.
vectorize-io/hindsight
b4a0da1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.