/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 passWhat the skill does
Runs three steps in order:
- Reads the current context — the ticket you named, the branch you are on, the diff you have staged.
- Drafts the Problem section per the 5-block framework.
- Runs
/kiss wordsinline (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 wordsruns inline by default (via--no-kissto opt out)/value-prop tweetfor the value section that follows Problem/pr-bodycomposes /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