A skill your agent uses for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds.

MITAuto-check passedDevOps & Cloud

Install Why

skills CLI
$ npx skills add fmflurry/settings-opencode --skill why -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install fmflurry/settings-opencode why --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/why .claude/skills/why && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
why
GitHub stars
171
Token cost
~2k tokens
SKILL.md length
1,040 words
Files
7 (incl. references)
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds.

  • Works in 5 steps: Understand the Target and the Question → Establish the Code Anchor → Spawn Parallel Investigators (default… → …
  • Why does X work this way
  • SKILL.md covers Operating Posture, Step 1. Understand the Target…, Step 2. Establish the Code… and Step 3. Spawn Parallel…, plus 5 more sections
  • Calls git and gh

What it does

Why is an agent skill from fmflurry/settings-opencode. 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 plus any other connected historical-evidence MCP) in parallel, then returns a cited read on decisions and tradeoffs. Use how for runtime behavior.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/epistemics.md`, `references/investigator-prompt.md` and `references/source-playbook.md`).

It sits in DevOps & Cloud, covering MCP servers and Runbooks and postmortems. It works with Model Context Protocol. The repository describes itself as: Custom OpenCode settings. The licence is MIT.

When your agent uses it

  • Why does X work this way
  • Why we picked Y
  • Design rationale
  • Data-backed thresholds

Example prompts

  • “why does X work this way”
  • “why we picked Y”
  • “/why”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Understand the Target and the Question
  2. Establish the Code Anchor
  3. Spawn Parallel Investigators (default posture)
  4. Synthesize
  5. Present

What it can do on your machine

Read from SKILL.md and the folder at commit 0e6c33c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Why loads about 2k tokens when it runs, and up to ~8.6k if it reads all its reference files. Until then it costs about 88 tokens; SKILL.md has 1,040 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~88
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from fmflurry/settings-opencode at commit 0e6c33c, republished under its MIT licence (© fmflurry). 1,040 words, ~2,033 tokens.

Download SKILL.mdSave it as .claude/skills/why/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
why
description
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 plus any other connected historical-evidence MCP) in parallel, then returns a cited read on decisions and tradeoffs. Use how for runtime behavior.
disable-model-invocation
true

Why

Investigate the motivation and intent behind code.

Companion to the how skill. how answers what the code does and how it works. why answers what forces led to its shape.

Spawn investigators with subagent_type: why-investigator and the synthesizer with subagent_type: why-synthesizer (Claude Code: Agent tool; OpenCode: task tool). Models come from those agent definitions; never pass model. Subagents cannot spawn subagents, so run this skill from the primary agent.

Operating Posture

Operate as a careful, cautious, and precise investigator. Be honest about what you know vs what you're inferring. Read references/epistemics.md for the full confidence framework and phrasing guide. The synthesizer must follow it.

Step 1. Understand the Target and the Question

Parse what the user is asking. The target is usually a chunk of code, a pattern, a feature, or a named design decision. The question is usually a design rationale, a tradeoff, a motivating edge case, an external constraint, dead code, or a broad history sweep.

If the target is vague ("why do we do it this way?" with no clear referent), make your best guess from conversation context (open files, recent edits, selection, what was just discussed). State your interpretation briefly so the user can redirect if you're off, then proceed.

Step 2. Establish the Code Anchor

Before spawning investigators, anchor the investigation in concrete code. You need:

  • The relevant file path(s) and line range(s)
  • The key symbols (function names, class names, constants)
  • An initial commit list. The last few commits touching the target.
  • PR numbers from merge commits (pattern (#1234) in the subject line)

Build this inline. If you cannot run shell commands (e.g. OpenCode conductor has bash denied), spawn one why-investigator for source control first to build the code anchor, then fan out.

bash
# Blame target lines for last-touch commits
git blame -L <start>,<end> <file>

# Full file history, with patches, through renames
git log --follow -p -- <file>

# Last N commits touching the file, PR numbers visible
git log --oneline -20 -- <file>

# Extract PR numbers from a commit message
git log -1 --format=%B <commit>

Pull PR bodies and discussion via gh for any substantive commits:

bash
gh pr view <number> --json title,body,author,createdAt,mergedAt,labels,closingIssuesReferences,comments,reviews

Capture this as seed context (file paths, symbols, commits, PR numbers, linked ticket IDs). Pass it to the investigators.

Step 3. Spawn Parallel Investigators (default posture)

Default to the full parallel investigation.

Discovery

Before spawning investigators, list the MCP tools available in this session.

Map each available MCP to one evidence category:

  1. Source control history

Source control is always available through git and gh. For any other MCP, classify using the MCP name, server instructions, tool names, and resource descriptors. If an MCP could fit more than one category, choose the one matching its primary evidence. Record ambiguous cases in the coverage map. Any other MCP found in the session that holds historical evidence (tickets, docs, telemetry) may still be investigated as its own category.

Aim for a complete coverage map, not a minimal one. Document the null, don't skip the search.

Launch all matching investigators in a single message so they run concurrently. Don't ask one agent to cover multiple MCPs.

Spawn each with subagent_type: why-investigator. Investigators MUST NOT write anything.

Each investigator gets:

  1. The base prompt from references/investigator-prompt.md
  2. The category playbook references/sources/<source>.md for the selected MCP, adapted from the examples in references/source-playbook.md
  3. The cross-cutting references/sources/incident-postmortem.md if the target code looks defensive (null checks, retry logic, timeout handling, rate limiting, feature flags, egress guards, OOM handlers)
  4. The code anchor from Step 2 (file paths, symbols, commit hashes, PR numbers, ticket IDs)
  5. The user's original question
Investigator roster. One per available evidence category

Spawn one investigator per category that has a matching MCP. Each owns exactly one tool or MCP.

Each entry names the category and the kind of "why" it uniquely surfaces. Use it to know what to expect back, how to name a gap when a category returns empty, and (only in the rare provably-irrelevant case) to justify a skip.

  1. Source control investigator. Git history, gh for PRs, code comments, tests. Always spawn. The only guaranteed source. Best at surfacing implementation-time rationale captured during review.
Show full SKILL.md (406 more words)Show less
When to skip an investigator

Only skip with an explicit, written justification that goes in the final "Sources Consulted" section. Two valid reasons:

  • No MCP is available for that category in this environment. Flag this as a gap, not a choice. Example: "Ticket tracker skipped. No matching MCP available, so the ticket history was not searchable."
  • The source is provably irrelevant, not just "probably irrelevant." A high bar. Example: "Error / exception tracking skipped. Target is a build-time script with no runtime code path."

If your scope assessment suggests a single-commit trivial target where the PR description already contains the complete answer, you may answer inline only after confirming the other category searches would be redundant. Say so explicitly. This should be rare.

Step 4. Synthesize

Spawn one synthesizer with subagent_type: why-synthesizer.

The synthesizer gets:

  1. The investigator findings, including any null results and any categories skipped with justification
  2. The code anchor from Step 2 (file paths, symbols, commit hashes, PR numbers, ticket IDs)
  3. The user's original question
  4. The epistemics framework from references/epistemics.md
  5. The synthesizer prompt template from references/synthesizer-prompt.md

Step 5. Present

Take the synthesizer's output and present it to the user. You may lightly edit for clarity or add context from the conversation, but do not rewrite the confidence language.

Output Format

The output structure is the one in references/synthesizer-prompt.md: The Question, The Code in Question, What We Found, What We Can Reasonably Infer, Competing Hypotheses, What We Don't Know, Sources Consulted, Confidence Summary. Adapt as needed, but keep the confidence separation intact, and keep Sources Consulted as one line per investigator, including the ones that returned nothing or were skipped, with the reason.

After the Sources Consulted block, if the user's why question is a prelude to actually changing this code, convert the lineage findings into a Preserve / Change / Avoid / Risk constraint set suitable for planning the change.

Common Failure Modes to Avoid

  • Recency bias. Assuming the most recent commit is authoritative. The current shape is often the accretion of many earlier decisions. Trace back.

Reference Files

  • references/epistemics.md. Confidence tiers and phrasing guide. The synthesizer must follow it.
  • references/investigator-prompt.md. Base prompt template for investigator subagents.
  • references/source-playbook.md. Index pointing at the category playbooks below.
  • references/sources/*.md. One self-contained example playbook per category, plus cross-cutting incident-postmortem.md. Give an investigator the single file that matches its category and adapt it to the available MCP.
  • references/synthesizer-prompt.md. Prompt template for the synthesizer subagent, including the output format.

© fmflurry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (references) in skills/why of fmflurry/settings-opencode.

  • SKILL.md
  • references/epistemics.md
  • references/investigator-prompt.md
  • references/source-playbook.md
  • references/sources/code-archaeology.md
  • references/sources/incident-postmortem.md
  • references/synthesizer-prompt.md

Open the folder on GitHubat commit 0e6c33c

Compare with similar skills

Why next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Why compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Why this skillfmflurry/settings-opencode171—~2kAutomated safety check: PassMIT
UModel Skill Runneralibaba/UnifiedModel412—~1kAutomated safety check: PassCustom licence
Openai Docsaafqaq/codex-lb-enhanced1023 repos~861Automated safety check: PassApache-2.0
K8s Agent Sandbox MCPkubernetes-sigs/agent-sandbox4.2k—~1.3kAutomated safety check: PassApache-2.0
Unraiddinglebear-ai/unraid135—~5.4kAutomated safety check: NotesMIT
Devsydevsy-org/devsy110—~1.7kAutomated safety check: PassMPL-2.0

Similar skills

  • UModel Skill Runner

    alibaba/UnifiedModel

    Loads one entity-linked Skill through UModel, follows its inline SKILL.md and applies attached knowledge items under their apply policies.

    412 GitHub stars~1k tokensUpdated 14 days ago
    Agent WorkflowsAuto-check passed
  • Openai Docs

    aafqaq/codex-lb-enhanced

    A skill your agent uses when the user asks how to build with OpenAI products or APIs and needs up-to-date official documentation with citations (for example: Codex, Responses API, Chat Completions…

    102 GitHub starsUsed in 3 repos~861 tokens
    DevOps & CloudAuto-check passed
  • K8s Agent Sandbox MCP

    kubernetes-sigs/agent-sandbox

    Official

    An MCP server skill for managing Kubernetes sandboxes. An agent skill from kubernetes-sigs/agent-sandbox.

    4.2k GitHub stars~1.3k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Unraid

    dinglebear-ai/unraid

    This skill should be used when the user mentions Unraid, asks to check server health, monitor array or disk status, list or restart Docker containers, start or stop VMs, read system logs, check…

    135 GitHub stars~5.4k tokensUpdated 4 days ago
    DevOps & CloudAuto-check: notes
  • Devsy

    devsy-org/devsy

    Operate Devsy workspaces and providers for end users. An agent skill from devsy-org/devsy.

    110 GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Unifi

    enuno/unifi-mcp-server

    Manage UniFi network infrastructure via the UniFi MCP Server.

    282 GitHub stars~1k tokensUpdated today
    DevOps & CloudAuto-check passed

More from fmflurry/settings-opencode

All 20 skills in this repo
  • Show Your Work

    fmflurry/settings-opencode

    Keep a reviewable decision trail for long-running or unattended work: a TSV log with one row per decision (what, why, evidence, result).

    171 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Playwright E2E Authoring

    fmflurry/settings-opencode

    Scaffold and extend Playwright E2E tests for the gc.platform suite (tests/playwright), wiring every artifact to the real frontend (localhost:4200) + real .NET backend — never mocks.

    171 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Angular Accessibility

    fmflurry/settings-opencode

    Audit and fix common accessibility issues in Angular templates and Angular Material components.

    171 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Angular Clean Architecture

    fmflurry/settings-opencode

    Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module…

    171 GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Angular Cop

    fmflurry/settings-opencode

    Pre-merge code review for Angular + TypeScript pull requests.

    171 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • API Spec Openapi

    fmflurry/settings-opencode

    Generate OpenAPI 3.1 specs that follow the Zalando RESTful API Guidelines (kebab-case naming, cursor pagination, RFC 9457 problem+json errors, URL versioning, idempotency), one YAML file per bounded…

    171 GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Questions about Why

What does Why do?

A skill your agent uses for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Why is an agent skill from fmflurry/settings-opencode. Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds.

When should I use Why?

Why fits situations like: why does X work this way; why we picked Y; design rationale; data-backed thresholds.

How do I install Why in Claude Code?

Run `npx skills add fmflurry/settings-opencode --skill why -a claude-code`. Or copy the skill folder (skills/why in fmflurry/settings-opencode) into .claude/skills/why in your project. Claude Code loads it when a task matches its description.

How do I install Why in Codex?

Run `npx skills add fmflurry/settings-opencode --skill why -a codex`. Or copy the skill folder (skills/why in fmflurry/settings-opencode) into .agents/skills/why in your project. Codex loads it when a task matches its description.

Can I use Why in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fmflurry/settings-opencode --skill why -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/why, .gemini/skills/why, .github/skills/why and .opencode/skills/why in your project.

What does Why need to run?

Going by SKILL.md and its folder, Why needs the command-line tools its instructions call (git and gh).

Does Why access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Why safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Why use?

Why is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Why use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.6k tokens, read only when the agent opens those files.

What are the alternatives to Why?

Skills that share tags, products or a category with Why: UModel Skill Runner (alibaba/UnifiedModel, 412 stars), Openai Docs (aafqaq/codex-lb-enhanced, 102 stars), K8s Agent Sandbox MCP (kubernetes-sigs/agent-sandbox, 4.2k stars) and Unraid (dinglebear-ai/unraid, 135 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Why?

fmflurry (a GitHub user) maintains it in fmflurry/settings-opencode, which has 171 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.

Source: fmflurry/settings-opencode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.