Status: Accepted
Date: 2026-07-06
Context
.context/ entries carried status, date, effort (plans), and severity
(known-issues), but no signal for benefit of action. So the recurring question
“which item is the highest value to do next?” was re-derived by ad-hoc agent
judgement every time it was asked, with no stored, auditable answer. The finding
prioritisation-signal-gap-2026-07-06.md documented the gap; the plan
context-prioritisation-signal-2026-07-06.md closes it. The design was settled
through a 3-reviewer plan-review and a guided-interview on four contentious forks.
Decision
Add a top-level
valueenum (high/medium/low) to the frontmatter of
the three action-candidate types —plan,finding, andknown-issue. It is
the benefit-of-action axis.analysis,instruction, andauditare reference
material and do not carry it.Keep
effort,severity, andvalueas three distinct axes; do not unify
them into one number. They measure different things:severityis
risk-of-inaction,effortis cost-of-action,valueis benefit-of-action.
Cross-type comparability comes from all three being visible in the index, not
from collapsing them.valueis an authoritative sort key, not an advisory label. The read
protocol: filter todraft/activeaction-candidates, sort byvalue
descending, theneffortascending where present, and act on the top item
without re-forming an independent judgement. The index generator exposes the
fields only; the consumer sorts (no materialised hint or composite rank).The rubric is canonical and lives at
.context/instructions/value-rubric.md— grading criteria (leverage,
consumers unblocked, reversibility), worked examples, and the read protocol.
ways-of-working.mdandAGENTS.mdlink to it rather than restating it, so
there is one source of truth.valueis required whilestatusisdraftoractive;doneand
supersededare exempt. The operational sort only ever reads active/draft.
Historical entries are graded once as a learning corpus, never for the live
sort. Enforcement lives invalidate-context-frontmatter.sh.
Why an ADR now, when effort never got one
The earlier effort field was added without an ADR. That was an omission, not a
precedent. value changes the frontmatter contract for three types, introduces
an authoritative read protocol, and codifies the three-axes model — decisions
that future work must not silently re-litigate. We are correcting practice going
forward: contract-level .context/ conventions get an ADR.
Consequences
- Easier: “What’s next” becomes a deterministic query over
.context/index.yaml
instead of a judgement call. The signal is auditable and re-gradeable. - Easier: A future “what’s next” skill has a stable field and protocol to
consume, plus a historical learning corpus (Phase 5) to calibrate against. - Harder / ongoing cost: grades can go stale, so they must be re-graded on
status transitions and material scope changes (documented in
ways-of-working.md). Grade trust depends on the rubric, the backfill
calibration pass, and the re-grade discipline — these are load-bearing. - Migration: the field shipped optional-first (schema + validator accept it),
the active/draft population was backfilled in one serialised pass, and only then
did the validator flip to required — so the tree stayed green throughout. - Accepted redundancy: a
known-issuenow carries bothseverityandvalue.
They are distinct axes; the overlap is the cost of one unified sort across types.