decide
Explores a problem, its context, and possible solutions before someone makes a significant decision. Use when the user invokes /decide, is uncertain about a direction, has not yet evaluated their options, or wants help thinking through a problem. This skill covers the exploration phase. To record a decision that is ready for review, or that the team already adopted, use /log-decision.
- License 许可
- MIT
- 最近更新
- 2026-11-06
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- decide
- description
- Explores a problem, its context, and possible solutions before someone makes a significant decision. Use when the user invokes /decide, is uncertain about a direction, has not yet evaluated their options, or wants help thinking through a problem. This skill covers the exploration phase. To record a decision that is ready for review, or that the team already adopted, use /log-decision.
- allowed-tools
- [ "Read", "Glob", "Grep", "AskUserQuestion" ]
- argument-hint
- [decision topic]
03 SKILL.md 正文
Decide
Help the user think through a significant decision. Refine the problem, surface the forces and the constraints, and explore the alternatives together. This is a conversation between thinking partners, not a form to fill in. Do not rush toward a conclusion, because the goal is rigorous thinking rather than speed.
When the user invokes /decide with an argument, use $ARGUMENTS as the opening topic. With no argument, open with this question: "What decision are you trying to make, and what is prompting it now?"
Phase 1: Frame the problem
Help the user state the problem sharply and honestly. Push back gently when the framing is vague, too broad, too narrow, or already implies a solution. The user sometimes frames the problem as a solution, such as "must I use Postgres or MySQL?". Zoom out first, and ask what the underlying data problem is.
Draw on these probing questions as you need them. Pick the ones that fit, and do not use them all:
- "What happens if you make no decision at all?"
- "Is what you described the root problem, or a symptom of something deeper?"
- "Who is affected by this, and how?"
- "What does success look like? How will you know that you made the right call?"
- "Are you solving this problem, or a problem that you think causes this problem?"
- "Are there relevant code areas, issues, or prior decisions that give context I must look at?"
Once the problem feels well framed, reflect it back in one or two sentences, and confirm it before you move on. If the user reframes it, update your summary.
Phase 2: Forces and constraints
Explore what shapes the decision space. Work through these clusters one at a time, not all at once, and reflect back what you hear after each one:
| Cluster | What to explore |
|---|---|
| Hard constraints | The non-negotiables: regulatory, financial, time, team capability, existing commitments |
| Soft constraints | Preferences or norms that feel fixed, and that the right option can challenge |
| Assumptions | Things taken for granted that can turn out to be false |
| Stakeholders | Whose buy-in the decision needs, and what each of them cares about most |
| Reversibility | What it costs to undo this in 6 months, and in 2 years |
Name a tension between constraints out loud. For example: "You need low cost and high reliability. Those often pull in opposite directions. Which one wins if you have to choose?"
Summarize the forces and the constraints, and confirm them before you move to alternatives.
Phase 3: Generate and evaluate alternatives
Before you evaluate the options that the user already has in mind, push for breadth:
"Before we assess the options you are already considering, let us make sure that we missed nothing. What is the most conservative path? What is the most radical one? What would you do if cost, time, and skill were not constraints?"
Then work through each option, including the ones the user brought, with this structure:
- A brief description.
- What the option serves well.
- What it gives up, or makes harder.
- Which assumptions it depends on.
Play devil's advocate for every option, including the one the user seems to favor. Challenge a weak pro, and surface an underweighted con. When an option is dominated, which means it holds no real advantage over another, say so directly instead of treating every option as equally viable.
Phase 4: Converge
Once the user reaches a clear preference, or enough clarity to decide, summarize the thinking:
- Problem: [one sentence]
- Key constraints: [bullet list]
- Options considered: [names only]
- Leading option: [name plus the core reason]
- Main trade-off accepted: [what the user accepts or sacrifices]
- References: [links to relevant code, issues, prior DRs, or external resources. Omit this line when there are none.]
Confirm the summary with the user, then ask:
"Would you like to log this as a decision record?"
If the user says yes, go straight into the workflow of the log-decision skill. Do not ask the user to type a command. Use the title derived from the decision summary as the DR title. Carry the context of this conversation forward: the problem statement, the forces, the options, the leading option, and the trade-off. Then nobody asks the user again for what this conversation already established.
Principles
- One question at a time. Never present a wall of questions. Ask, listen, reflect, then ask the next thing.
- Produce no document. This skill produces clarity.
/log-decisionproduces the document.
04 同仓库更多 Skills
work-item
Drafts a well-formed work item with testable acceptance criteria, then creates it in whatever tracker is connected, when the user asks for that explicitly. Applies the same standard to tighten an existing work item. Use when the user invokes /work-item, or asks to draft, write up, create, or fix up a ticket, issue, task, story, bug report, or sub-task, for Jira, GitHub, Azure DevOps, Linear, or any other tracker. Use it even when the user names no tracker and never says "ticket", as in "log a bug for...", "file an issue about...", "write up a task for...", "can you create a story for...", and "this ticket has no acceptance criteria, can you add some". Do NOT use it for general prose writing, a PR description, or a commit message, because those follow different conventions.
triage-work-item
Triages a tracker work item, which is a bug, a task, or a story, end-to-end against the codebase. It reads the item with its full comment thread, links, and parent epic, cross-references related items, investigates the codebases behind the affected feature, corroborates with attached evidence and observability data, then posts a verified analysis comment back to the item. That comment gives the root cause for a bug, or the current behavior, the approach, and the effort for a change request. Ships with Jira and GitHub Issues tracker adapters, plus Grafana and CloudWatch observability adapters, and degrades to any reachable platform. Use when the user gives a work-item URL or key, on Jira (`…atlassian.net/browse/KEY`) or GitHub (`github.com/<o>/<r>/issues/<n>`), and asks to triage, investigate, diagnose, or root-cause it, even without the word "triage", as in "look into TICKET-123 and post what you find". Do not use it to read or summarize a work item with no code investigation, or to write new work items.
update-branch
Brings a branch up to date with its base branch, usually main. It rebases onto origin/<base>, or merges when the user agrees, then builds and runs the relevant tests. It pushes on its own when the risk is low, and asks first, with the reason, when it is not. It never uses a plain --force, and it never disturbs uncommitted work: a clone on another branch gets a separate git worktree. This skill is user-only: it runs only when the user invokes /update-branch [branch] [--base <branch>] [merge]. When the user wants to update a branch with main, rebase onto main, or fix "branch is behind main", suggest this command.
standard-first
Guides technical implementation to always prefer the standard, officially-documented solution over custom or AI-generated code. Use when you are about to write new code for a feature, suggest or add a library or package, scaffold a new project, or configure a framework, in any language, including .NET and C#, Node.js and npm, Python, Go, Java, and the rest. Use it above all when the problem sounds like something that a built-in framework feature or a package registry already solves, such as logging enrichment, auth, serialization, retries, health checks, or migrations. Do not skip this skill because the answer feels obvious from training data.
team-topologies
Knowledge base for Team Topologies concepts — the framework for organizing business and technology teams for fast flow. Use this skill whenever the user asks about: team types (stream-aligned, platform, enabling, complicated subsystem), team interaction modes (collaboration, X-as-a-Service, facilitation), cognitive load management, Thinnest Viable Platform (TVP), Conway's Law in relation to org design, or any question about how software delivery teams should be structured, named, or coordinated. Also use when another skill needs Team Topologies vocabulary to reason about org design, team responsibilities, or team dependencies.
pareto
Processes the user's request through the Pareto Principle. It ranks the causes that generate most of the outcome, spends roughly a fifth of the effort on the interventions that address them, and reports what that effort bought. This skill is user-only: it runs only when the user invokes /pareto [request]. When the user wants the highest-leverage slice of a large task, asks "what matters most here", wants to cut scope to what moves the needle, or wants an 80/20 pass over analysis, planning, test coverage, refactoring, or cleanup, suggest this command. Do not use it for work whose value depends on being complete, such as a security fix, a compliance change, a migration, or a specific reported bug.