# Outcome

> Generates and updates .claude/OUTCOME.md interactively. When the file is absent or empty (Behavior blank or TBD only), collects content via AskUserQuestion and writes the stub; when present, shows the current state and applies updates.

- Skill: `thkt/outcome` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add thkt/outcome`
- Raw SKILL.md: https://api.skillmd.com/api/skills/thkt/outcome/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: thkt (https://skillmd.com/u/thkt)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/thkt/outcome

---


# /outcome - OUTCOME.md generation and update

The landing point when another skill detects a missing OUTCOME.md. Returning a hard stop or a warning leaves the outcome empty, so collect it interactively and generate.

## Branch

Run ${CLAUDE_SKILL_DIR}/scripts/validate-outcome.ts .claude/OUTCOME.md and enter the flow its JSON `flow` names. The script owns the criteria.

| state  | Condition                   | flow     |
| ------ | --------------------------- | -------- |
| absent | File absent                 | generate |
| empty  | Behavior blank, or TBD only | generate |
| ok     | Behavior carries content    | update   |

## Generate

1. Read ${CLAUDE_SKILL_DIR}/templates/outcome.md
2. Collect Behavior, Non-goals, Constraints in one AskUserQuestion call, one question per item. Behavior needs 1 or more entries with the subject named
3. Run each Behavior through the Outcome test; rewrite failures and re-present to the user
4. Fill the template and Write `.claude/OUTCOME.md`. Neither the opening prose nor Indicators is collected, so skip the prose and drop Indicators with its heading
5. Re-run validate-outcome.ts and fix until `errors` is empty. `placeholder_left` is a surviving placeholder, `missing_section` a dropped heading

## Update

1. Read `.claude/OUTCOME.md` and present each section as it stands. Show the opening prose and Indicators as unwritten when the generate flow dropped them
2. Confirm which sections change and what they become via AskUserQuestion. This flow is the only one that can add the opening prose and Indicators
3. Run each changed Behavior through the Outcome test, then Edit
4. Re-run validate-outcome.ts and confirm `errors` is empty
5. When `warnings` carries `missing_indicator`, ask the user whether to add that indicator. It names an Indicators section missing one of Time, Error rate, or Value

