Skip to content
cccskills
FreePublished on GitHub

kd

Deep-dive a SINGLE key decision. Frame the question, weigh the candidate options honestly, and land a defensible answer in a local draft. Once the user decides it, append one entry to docs/design/decisions.md, or update the entry it re-answers. Use when you need to rigorously decide one thing, such as "which X should we use", "should we do A or B", "evaluate the tradeoffs of ...", or "make the call on ...".

The English summary is being prepared. Showing the original description.

strands-agents/box475 stars(GitHub 475 + cccskills 0)

Run score Not tested

See how to install

Files included (1)

  • SKILL.md5.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Key Decision (KD) Skill

Take one decision and analyze it to the bottom. Frame the real question, enumerate the candidate options, weigh each honestly, and recommend an answer with its cost stated.

The work has two outputs, and they live in different places:

OutputWhereCommitted?
The analysis: options, criteria, measurements, recommendation.agents/drafts/kd/{YYYY-MM-DD}-{slug}.mdNo. .gitignore holds /.agents/drafts/.
The decided entryone entry in docs/design/decisions.mdYes, and only after the user decides.

Skill Invocation

/kd <the decision>

Examples:

  • /kd which isolation primitive should back the box on Linux
  • /kd should the egress gateway do static or semantic outbound control
  • /kd how is temporal history stored

Process

  1. Check whether decisions.md already owns this question. Search it by topic, not by wording. If an entry answers it, this run re-answers that entry. See Re-answering an entry.
  2. Frame the question. State what must be decided and why it is hard. A question with an obvious answer is not a key decision. Say so and stop.
  3. Find the real options. Three to six, each one a thing someone would actually build. Include the status quo. Reject a straw man rather than listing it.
  4. Weigh them. Name the criteria that decide it, and say which option wins each. Where a claim needs evidence, measure it or read the source. Do not assert.
  5. Write the draft to .agents/drafts/kd/{YYYY-MM-DD}-{slug}.md, in the draft shape. Status is Proposed.
  6. Report in chat: the one-line recommendation, its cost, and the draft's path. Then stop and wait.
  7. Append the entry only when the user says it is decided. Set the draft's status to Decided, write the entry in the entry shape, and report the anchor.

An agent never decides on the user's behalf. A recommendation is not a decision, and the user's silence is not approval.

The draft

The draft is where the argument lives, so it can be as long as the analysis needs.

# {The question}

**Status:** Proposed | Decided {YYYY-MM-DD}
**Owns or re-answers:** {new | decisions.md#{anchor}}

## Why this is hard
## Options
## Criteria, and which option wins each
## Evidence
## Recommendation, and its cost

The entry

An entry states the decision, not the argument. Read three neighbouring entries in decisions.md before you write one, and match their shape.

<a id="{slug}"></a>
### {The answer, stated as a claim. Never a question.}

{Two to six sentences. What is now true, in the present tense, and what it lands in: the type,
the module, or the mechanism. The obvious alternative, and why it lost, in one sentence. What the
decision costs the reader: a limitation, a residual risk, or a thing they must not do.}
  • Put it in the section that owns the area: Premises, The box, Policy, Containment, Interpreters, Egress, Credentials, or Telemetry.
  • The slug is the claim, in kebab-case. It is a permanent identifier, so pick it once. Code cites an entry by this anchor, as docs/design/decisions.md#{slug}.
  • Name a test that pins the claim, when one exists. Verify the name with git grep -n 'fn {name}' first. An invented test name is worse than none.

Re-answering an entry

Rewrite the entry to state what is now true. Do not append a second entry beside it. A reader who must assemble one decision from a stale entry plus its correction reads the design wrong.

  • Keep the <a id="…"> anchor unchanged, even when the title changes. Code links to it.
  • Rewrite the title, the answer, and every cost the change makes false. A title that names a deleted mechanism is the first thing a reader trusts and the first thing that misleads.
  • Open a new entry only for a new question.

Rules

  • One entry, one decision. Two decisions are two entries.
  • The entry never links the draft. .agents/drafts/ is gitignored, so the link is dead for every other reader and every clone. State the answer and its cost well enough that no reader needs the draft.
  • State the answer, not the argument. The argument stays in the draft.
  • Never cite a file.rs:LINE. Name the symbol, the type, or the test. A line number rots on the next edit above it.
  • Never restate a fact the code owns. The code owns behaviour. The entry owns why.
  • No status line, no date, no "Updated" banner, and no "Proposed" in the entry. An entry in decisions.md is decided by being there. The page is a historical record, and the code is the authority where the two disagree.
  • Write in ASD-STE100 Simplified Technical English, with no em-dashes and no en-dashes.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Author or edit a Strands Box policy (`policy.dw`) — turn an operator's natural-language allow/deny intent into a validated Dogwood policy over the box's fixed action vocabulary, including `when temporal { … }` history rules. Use when writing, editing, reviewing, or converting an intent into a box policy. This skill CREATES or EDITS a policy against the box's built-in schema — you never author a Dogwood schema, because the box ships a fixed one.

The English summary is being prepared. Showing the original description.

strands-agents/box475Updated Oct 26, 2026

Debug a CI failure on an OS you are not on (you are on Linux, it fails on macos-latest, or the reverse) without opening a pull request per attempt. Use when a test is green on your machine and red on a GitHub runner, or when you need to run one test or one shell probe on a runner and read the result fast. The core move is a dispatchable, scoped workflow on your own fork: pick one OS, skip lint, filter to one test, and for environment questions run a no-build probe that returns in seconds instead of a ten-minute build. Iterate by pushing to the fork branch and re-dispatching, never by editing a PR.

The English summary is being prepared. Showing the original description.

strands-agents/box475Updated Oct 26, 2026

Assess an existing Box documentation page (docs/user/, docs/design/, or a crate README.md) for accuracy against the code and its tests, placement, and voice, and recommend what to fix. Use before a rewrite, when a page may have drifted from the code, or when asked to "audit this page", "is this page still true", or "what is wrong with this doc".

The English summary is being prepared. Showing the original description.

strands-agents/box475Updated Oct 26, 2026

Find the gaps in the Box documentation and produce a prioritized backlog for docs/user/ and docs/design/. Use when planning documentation work, after a feature or a binary ships without a page, for a periodic health check of the docs, or when asked "what docs need writing", "plan the docs work", "prioritize the docs backlog", or "what should we document next".

The English summary is being prepared. Showing the original description.

strands-agents/box475Updated Oct 26, 2026

Review a Box documentation draft in docs/user/ or docs/design/ for placement, structure, altitude, readability, terminology, and claim scope, and give a verdict (Ship it, Tighten, or Rethink). Use after docs-writer produces a draft, before a docs pull request, or when asked to "review this draft", "check my docs", or "is this page ready to ship". Read-only.

The English summary is being prepared. Showing the original description.

strands-agents/box475Updated Oct 26, 2026

Draft or rewrite a Box documentation page in docs/user/ (tutorial, how-to, or reference for an operator) or docs/design/ (explanation for a security evaluator or a contributor), or a crate README.md that serves a consumer. Use when asked to write a doc, draft a page, rewrite a page that failed audit, document a feature or a component, or write an architecture or security page. Not for docs/design/decisions.md (use kd), local specs (use spec), or research notes (use explore).

The English summary is being prepared. Showing the original description.

strands-agents/box475Updated Oct 26, 2026

See all skills by strands-agents

Report a problem with this skill