klappy.dev

The StylebookEncoding Types

Encoding Type: Decision (D)

SummaryThe Highest-Stakes Artifact Type

Decisions are the encoding type most likely to affect future work. A missed observation can be recovered from the transcript. A missed decision may not surface again. Decisions create direction, close options, and bind future behavior. They deserve the most rigorous quality criteria of any encoding type.


Type Identity

FieldValue
LetterD
NameDecision
PriorityHighest — decisions constrain all subsequent work

Field Schema

When encoding a Decision, the model outputs a row with the following fields (serialization format governed by odd/encoding-types/serialization-format.md):

D	{title}	{body}	{rationale}	{alternatives}	{reversibility}
FieldRecommendedDescription
typeyesAlways D
titleyesShort summary of the decision (≤12 words)
bodyyesThe decision statement — what was chosen and why it matters
rationaleyesWhy this was chosen. Starts with the reasoning, not "because"
alternativesnoWhat else was considered. Empty string if none discussed
reversibilityno"reversible", "permanent", "reversible until {condition}", or empty

Example:

D	TSV as encode input format	Governance defines strict TSV output contract for encode input. Model outputs typed rows, server parses mechanically.	TSV is pure string splitting — no regex, no NLP. Model is already restructuring content. Adding column structure is trivial.	Free-form prose with regex classification; JSON structured output; model-labeled paragraphs	reversible

Trigger Words (Fallback Classification)

When encode input is unstructured (not TSV), these trigger words classify a paragraph as Decision:

decided, decision, chose, choosing, selected, committed to, going with, will use, adopted, settled on, picked, determined, resolved to

These words are used by the server to build dynamic regex for fallback classification only. On the primary TSV path, the type letter D is the classifier.


Quality Criteria

Each criterion adds 1 to the quality score (max 5):

CriterionCheckGap message if missing
SubstanceBody is ≥10 words"Decision body is too brief — expand what was chosen"
RationaleRationale column is non-empty and ≥3 words"No rationale — add why this was chosen"
AlternativesAlternatives column is non-empty"No alternatives considered — what else was an option?"
ReversibilityReversibility column is non-empty"Note whether this is reversible or permanent"
ConstraintsBody or rationale mentions what this decision constrains or binds"What constraints does this decision create?"

Quality levels:

ScoreLevelStatus
5strongrecorded
3–4adequaterecorded
2weakdraft
0–1insufficientdraft

What Makes a Good Decision Encoding

A strong Decision encoding answers five questions: What was chosen? Why? What else was considered? Is it reversible? What does it constrain? The model doesn't need to answer all five — but quality scoring rewards completeness.

The most common gap is missing rationale. Models often encode the what without the why. The quality feedback loop teaches the model to include rationale in future calls.

The second most common gap is missing alternatives. A decision without alternatives is an assertion, not a choice. Even "no alternatives were discussed" is better than silence — it's honest about the decision's context.


See Also

  • DOLCHE Vocabulary — the six-dimension framework this type belongs to
  • Prompt Over Code — why this governance doc exists instead of server code
  • Encode Does Not Persist — the caller must save encoded artifacts

Markdown · RSS · built from klappy/klappy.dev@b750d7d