Skip to main content

why

Explain why a piece of code exists by correlating it to the AI coding sessions behind it. Use when the user asks "why does this exist", "why did we write it this way", "what was the reasoning behind this line/file/commit", "who changed this and why", or points at a file, line, or commit and wants the rationale that git alone does not carry. Use PROACTIVELY before rewriting or removing code whose purpose is unclear — the deciding conversation may still be recoverable.

Aller à l'installation

Informations de source

Dépôt
nicknisi/sessions
Dernière activité de la source
24 août 2026 à 22:07
Langue détectée de SKILL.md
anglais
Étoiles
30
Forks
6

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
why
description
Explain why a piece of code exists by correlating it to the AI coding sessions behind it. Use when the user asks "why does this exist", "why did we write it this way", "what was the reasoning behind this line/file/commit", "who changed this and why", or points at a file, line, or commit and wants the rationale that git alone does not carry. Use PROACTIVELY before rewriting or removing code whose purpose is unclear — the deciding conversation may still be recoverable.
argument-hint
a file path, path:line, commit-ish, or topic
Explain why code exists by finding the session that produced it. ## Steps 1. **Call `why_did_this_change`** with the user's target as `target`: - A file → `src/cache.ts` - A specific line → `src/cache.ts:142` (pins the commit via git blame) - A commit → a sha, tag, or `HEAD~2` - A topic → free text (searches sessions in this repo, no git) The tool is read-only: it never writes to the repository. 2. **Read the evidence.** The result carries the resolved `commit` (subject, author time, files, trailers; `null` for the free-text form) and ranked `sessions`. Trust `confidence`: `files+time` (the session edited the committed files inside its window) is stronger than `time-only` (same repo and window, no file overlap). Two flags change how you read the commit: `commit.merge: true` means this is the merge that landed the change, not the commit that wrote it — the reasoning lives in the sessions, not the merge subject. A non-empty `unlandedAttempts` (file form only) means sessions touched this file but no commit ever landed from them — a possible abandoned attempt. 3. **Synthesize a short answer** from each session's `excerpts` and `headline`. Explain the reasoning and any abandoned approaches — the part git does not record. Do not invent rationale the excerpts do not support. 4. **Cite each session** you used: its tool, date (`startedAt`), and headline. Distinguish `files+time` matches from `time-only` matches so the user can weigh them. 5. **Check closed PRs before concluding "fixed".** When the question is "was this fixed" or "does this bug still exist", git history alone is not proof: a fix may have been tried and rejected without leaving a commit. If the repo has a GitHub remote and `gh` is available, run `gh search prs --state closed -- <terms>` (or `gh pr list --search "<file>" --state closed`) and report a closed-unmerged attempt alongside any merged fix. Skip silently when `gh` or a GitHub remote is absent. 6. **Offer a deep-dive.** If the user wants more, call `get_session_messages` with a session's `filePath` (use an `excerpts[].msgIndex` as the offset) to read the full exchange. ## Guidelines - Empty `sessions` is a real answer: say no session correlates, rather than guessing. - A `time-only` match is a weak signal — present it as "around the same time", not as cause. - Surface commit `trailers` (e.g. Co-Authored-By) when present; they annotate authorship. - Lead with the why, then the citations. Keep it to a few sentences unless asked for more.
Voir sur GitHub