bassclef
Writing

/state-a-problem

Draft a Problem section in plain language — the opener for a PR body, issue, canvas, or spec.

Use this when

You are writing a PR body, an issue, a canvas thesis, or a spec, and you want the Problem section to open cleanly. The reader should grasp the pain in one paragraph.

Skip this when

Your task is a trivial bug fix or typo. Trivial changes do not owe a Problem section. Ship the fix with a one-line commit message.

Two sizes

brief mode (default) — up to 500 characters. Fits inline at the top of a PR body or issue. Uses the Who / What / When / Why-now / Outcome framework implicitly (labels off).

para mode — up to 1200 characters. Fits at the top of a longer canvas or spec. Uses the same 5-block template with labels on so a reviewer can see the shape.

/state-a-problem                       # detects size from context
/state-a-problem brief                 # force brief
/state-a-problem para                  # force para
/state-a-problem brief --no-kiss       # skip inline /kiss words pass

What the skill does

Runs three steps in order:

  1. Reads the current context — the ticket you named, the branch you are on, the diff you have staged.
  2. Drafts the Problem section per the 5-block framework.
  3. Runs /kiss words inline (default) to grade-check the draft.

Returns the draft ready to paste into your PR body or issue.

The 5-block framework

Every Problem section names these five things, even when the labels are implicit:

  • Who — the reader or user affected. Name them specifically.
  • What — the observable symptom or gap.
  • When — the condition or window in which the symptom appears.
  • Why now — what changed that made this worth solving now.
  • Outcome — what should be true after the fix.

Brief mode weaves these into 3-4 sentences. Para mode surfaces them as labeled subsections when the reader needs the shape explicit.

When not to use the framework

Some Problem sections belong outside the framework. Examples: quoting verbatim from a user report, describing a security vulnerability where the Who is deliberately vague, or refactoring where the Who is the code itself. Pass --freeform to skip the framework and just run the /kiss words check.

Composes with

  • /kiss words runs inline by default (via --no-kiss to opt out)
  • /value-prop tweet for the value section that follows Problem
  • /pr-body composes /state-a-problem for the Problem section

Where next

  • /kiss — the vocabulary + heuristics check
  • /value-prop — pair Problem with a value claim
  • /journal — narrative form for the same material

On this page