design-rationale
Investigate why code is shaped this way. Git and PRs first, then every evidence category that actually exists (tickets, docs, chat, observability, errors, analytics). Every claim is labeled Direct / S
SKILL.mdskills/design-rationale/SKILL.md
GitHubDesign rationale
Leading words: code is not intent, coverage map, Direct Supported Inferred Speculative Unknown.
Companion to subsystem-walkthrough. That skill is runtime. This one is the
forces that produced the shape.
Copy these steps into the todo list verbatim. Skip with skip: <reason>.
- Parse the target and the question. If vague, state your guess and proceed.
- Code-anchor: paths, symbols,
git blame/git log --follow, PR numbers,gh pr viewwhenghexists. - Coverage map of seven categories. Spawn one investigator per category that exists. Document the null; do not skip the search silently.
- Synthesize with references/epistemics.md. Keep confidence language intact.
- Present. If this investigation precedes a change, add Preserve / Change / Avoid / Risk.
Categories
- Source control — git +
gh. Always run. - Issue / ticket tracker
- Long-form docs
- Real-time chat
- Infrastructure observability
- Error / exception tracking
- Product analytics
Discover tools from what this host actually exposes. Do not require a Cursor
mcps/ directory. Inherit the host model. A missing category is a finding:
"Real-time chat skipped. No matching tool available."
Skip a category only when no tool exists or it is provably irrelevant (a build-time script has no Sentry). Write the reason in Sources Consulted.
Output
The Question / The Code in Question / What We Found / What We Can Reasonably Infer / Competing Hypotheses / What We Don't Know / Sources Consulted (one line per category, including nulls) / Confidence Summary.
Sources Consulted is a 7-row list. A missing tool is a row, not an omitted heading. Do not open with "the user is wrong." Put their guess under Competing Hypotheses.
Reply contract
The synthesis above. Confidence language from epistemics is not rewritten.