Record Growth Decision
Create an auditable decision event that can be reviewed against later outcomes without rewriting history.
Inputs
Require:
- decision question, selected option, context, and owner;
- hypothesis;
- valid evidence IDs;
- counterevidence;
- at least one alternative;
- an explicit
not_build list and reversibility assessment;
- review date;
- success and stop conditions;
- current causal confidence.
Workflow
- Restate the decision question and selected option in a form a reviewer can accept or reject.
- Link supporting evidence by ID.
- Preserve counterevidence and unresolved unknowns.
- List alternatives, including doing nothing when relevant, and record what will not be built.
- Classify the decision as reversible, partially reversible, or hard to reverse.
- State expected mechanism, success condition, stop condition, and review date.
- Mark causal confidence as unknown, low, medium, or high.
- Keep status at
draft or awaiting_human_review until a person decides in a later user turn.
- Append a scoped
approvals.jsonl record covering the exact decision ID before setting status to approved.
- Append the decision event. Never modify an earlier event to make a later result look expected.
- At review time, compare mature outcomes with the original metric contract and record continue, change, stop, or hold.
- Link a superseding decision instead of rewriting the original, and classify
the new event with
event_type — initial_decision, scope_change,
success_metric_review, outcome_review, or reversal — so the log states
what kind of change it is, not only which record it replaces. Leave
event_type out rather than guessing; an unclassified event is honest,
a wrong one is not.
Introduction-loop decision example
After reviewing the first-five direct-seeding batch, record one explicit
decision instead of assuming that referral is the next action:
- Question: should the team test a draft-only introduction loop for this segment?
- Metric rule: name the
loop coefficient numerator, denominator, cohort, and maturity window from define-growth-metrics.
- HOLD condition: name the observed condition that prevents a request, such as no repeat value, recipient-fit evidence, or support capacity.
- Resume condition: name the new evidence, owner, and review date needed to leave HOLD.
- Reward experiment: choose
not selected, draft for later review, or a separately approved experiment. A reward is never implied by a referral objective and may not be promised, sent, or funded without scoped human approval.
Record the resulting continue, hold, change, or stop as a later append-only
event. Do not retrofit the original first-five decision to make the next loop
look pre-approved.
Boundaries
- Let the model identify missing evidence, alternatives, and counterarguments.
- Use deterministic checks for IDs, required fields, status transitions, and append-only history.
- Require a person to approve the decision and accept risk.
- Do not equate shipped, launched, or deployed with successful.
- Do not increase confidence because a statement appears in multiple model summaries of the same source.
- Do not treat an immature cohort, missing query, or unrelated interview quote as outcome evidence.
- Export an hplan intake only as
draft_for_gate or ready_for_gate_review; never claim the hplan gate decision.
Outputs
Create or append:
decisions.jsonl
approvals.jsonl only after a person approves in a later turn
hplan-intake.json as a pre-gate intake, never as an hplan gate decision
decision-summary.md
review-queue.md
introduction-loop-decision.md
At review time, once a linked action's metric has matured enough to compare,
append to outcomes.jsonl per workflow step 11. It is not a completion
requirement for this skill — a decision can be approved and routed onward
long before its outcome matures — so it stays out of the bullet list above and
the router's completion check, the same way connect-customer-channels stays
out of that check for a different reason.
For an introduction or referral objective, additionally create
introduction-loop-decision.md. It captures the loop-coefficient definition,
HOLD and resume conditions, reward-experiment choice, approval state, owner,
and review date. It is a draft decision until a person approves in a later
turn.
Read references/output-contract.md before writing them.
Add every new record to decisions.jsonl, approvals.jsonl, and, at review
time, outcomes.jsonl, with the append-record command, never by writing or
editing the file:
python3 scripts/stg.py append-record <artifact-directory>/decisions.jsonl '<json-object>'
It takes an exclusive lock and hash-chains each line to the one before it, so a
later reader can tell whether history was rewritten. In a packaged runtime the
same command is signal-to-growth append-record.
Stop conditions
Stop when evidence references are invalid, the owner or review date is absent, alternatives are missing, or approval is implied rather than explicit.
Verification
Keep evidence.jsonl and decisions.jsonl together, then run:
python3 scripts/stg.py validate-artifacts artifacts/
python3 scripts/stg.py export-hplan --artifacts artifacts/
Report draft, approved, executed, and outcome-recorded states separately.
1---2name: record-growth-decision3description: Record evidence-backed growth decisions with alternatives, counterevidence, approval, review dates, and append-only outcomes. Use when deciding what to build, hold, test, stop, or review, including 성장 의사결정·decision log·가설 기록. Do not use for granting the approval itself, claiming an hplan gate result, or rewriting an earlier decision.4---56# Record Growth Decision78Create an auditable decision event that can be reviewed against later outcomes without rewriting history.910## Inputs1112Require:1314- decision question, selected option, context, and owner;15- hypothesis;16- valid evidence IDs;17- counterevidence;18- at least one alternative;19- an explicit `not_build` list and reversibility assessment;20- review date;21- success and stop conditions;22- current causal confidence.2324## Workflow25261. Restate the decision question and selected option in a form a reviewer can accept or reject.272. Link supporting evidence by ID.283. Preserve counterevidence and unresolved unknowns.294. List alternatives, including doing nothing when relevant, and record what will not be built.305. Classify the decision as reversible, partially reversible, or hard to reverse.316. State expected mechanism, success condition, stop condition, and review date.327. Mark causal confidence as unknown, low, medium, or high.338. Keep status at `draft` or `awaiting_human_review` until a person decides in a later user turn.349. Append a scoped `approvals.jsonl` record covering the exact decision ID before setting status to `approved`.3510. Append the decision event. Never modify an earlier event to make a later result look expected.3611. At review time, compare mature outcomes with the original metric contract and record continue, change, stop, or hold.3712. Link a superseding decision instead of rewriting the original, and classify38 the new event with `event_type` — `initial_decision`, `scope_change`,39 `success_metric_review`, `outcome_review`, or `reversal` — so the log states40 what kind of change it is, not only which record it replaces. Leave41 `event_type` out rather than guessing; an unclassified event is honest,42 a wrong one is not.4344## Introduction-loop decision example4546After reviewing the first-five direct-seeding batch, record one explicit47decision instead of assuming that referral is the next action:4849- **Question:** should the team test a draft-only introduction loop for this segment?50- **Metric rule:** name the `loop coefficient` numerator, denominator, cohort, and maturity window from `define-growth-metrics`.51- **HOLD condition:** name the observed condition that prevents a request, such as no repeat value, recipient-fit evidence, or support capacity.52- **Resume condition:** name the new evidence, owner, and review date needed to leave HOLD.53- **Reward experiment:** choose `not selected`, `draft for later review`, or a separately approved experiment. A reward is never implied by a referral objective and may not be promised, sent, or funded without scoped human approval.5455Record the resulting continue, hold, change, or stop as a later append-only56event. Do not retrofit the original first-five decision to make the next loop57look pre-approved.5859## Boundaries6061- Let the model identify missing evidence, alternatives, and counterarguments.62- Use deterministic checks for IDs, required fields, status transitions, and append-only history.63- Require a person to approve the decision and accept risk.64- Do not equate shipped, launched, or deployed with successful.65- Do not increase confidence because a statement appears in multiple model summaries of the same source.66- Do not treat an immature cohort, missing query, or unrelated interview quote as outcome evidence.67- Export an hplan intake only as `draft_for_gate` or `ready_for_gate_review`; never claim the hplan gate decision.6869## Outputs7071Create or append:7273- `decisions.jsonl`74- `approvals.jsonl` only after a person approves in a later turn75- `hplan-intake.json` as a pre-gate intake, never as an hplan gate decision76- `decision-summary.md`77- `review-queue.md`78- `introduction-loop-decision.md`7980At review time, once a linked action's metric has matured enough to compare,81append to `outcomes.jsonl` per workflow step 11. It is not a completion82requirement for this skill — a decision can be `approved` and routed onward83long before its outcome matures — so it stays out of the bullet list above and84the router's completion check, the same way `connect-customer-channels` stays85out of that check for a different reason.8687For an introduction or referral objective, additionally create88`introduction-loop-decision.md`. It captures the loop-coefficient definition,89HOLD and resume conditions, reward-experiment choice, approval state, owner,90and review date. It is a draft decision until a person approves in a later91turn.9293Read [references/output-contract.md](references/output-contract.md) before writing them.9495Add every new record to `decisions.jsonl`, `approvals.jsonl`, and, at review96time, `outcomes.jsonl`, with the `append-record` command, never by writing or97editing the file:9899```bash100python3 scripts/stg.py append-record <artifact-directory>/decisions.jsonl '<json-object>'101```102103It takes an exclusive lock and hash-chains each line to the one before it, so a104later reader can tell whether history was rewritten. In a packaged runtime the105same command is `signal-to-growth append-record`.106107## Stop conditions108109Stop when evidence references are invalid, the owner or review date is absent, alternatives are missing, or approval is implied rather than explicit.110111## Verification112113Keep `evidence.jsonl` and `decisions.jsonl` together, then run:114115```bash116python3 scripts/stg.py validate-artifacts artifacts/117python3 scripts/stg.py export-hplan --artifacts artifacts/118```119120Report draft, approved, executed, and outcome-recorded states separately.