Skip to content

fix(docs): add a promoted terminal status for owner-confirmed friction hypotheses - #87

Merged
johnteee merged 2 commits into
mainfrom
claude/gracious-wright-p34vu8
Oct 10, 2026
Merged

johnteee merged 2 commits into
mainfrom
claude/gracious-wright-p34vu8

Conversation

@johnteee

Copy link
Copy Markdown
Member

Summary

Closes the last open item from the 2026-10-09 landing record (§7.4 item 3). The friction log's Entry Rules already speak of a "promoted entry" and carry a Promoted to field, but the status vocabulary only had open / closed / rejected, and a hypothesis may never be closed. The three hypotheses the owner confirmed in the 2026-06-22 capture batch and promoted to owner evidence (F2/F3/F7, all closed, regression tests pass today) therefore had no honest state and sat at open with an explanatory note, re-explained in every review and counted as open friction by prepare_g1_evidence.py for any window covering 2026-06-22.

Owner decision 2026-10-10 (in session): add promoted as the terminal state of a confirmed hypothesis.

  • scripts/validate_docs_consistency.py: accepts promoted only on hypothesis entries; requires a non-n/a Promoted to (the owner evidence entry it became) and non-n/a Closure evidence; evidence entries may not use it. Existing open/closed/rejected rules unchanged.
  • scripts/prepare_g1_evidence.py: counts promoted separately; only open drives friction_observed.
  • docs/work-log/operator-friction-log.md: the three entries move to promoted; templates, Entry Rules, and intake status updated (open hypotheses: 0).
  • docs/roadmap-status.md, the 2026-10-09 review (item 3 resolved), docs/backlog-priority.md gate wording; generated inventory, aging dashboard, OKF current bundle, release docs evidence bundle rebuilt via the two-commit protocol.

Action ID

  • Action ID: G-P2-21

Risk Class

  • Risk class: low (docs-gate validator and docs; no teaagent/ code)

Self-Review Checklist

General (all PRs)

  • ruff check + ruff format --check pass on changed files
  • mypy clean on the two changed scripts (no teaagent/ change)
  • python3 scripts/run_test_tier.py --tier smoke passes — CI
  • Coverage at least 75% — CI
  • check_root_module_count.py ≤ 184 (unchanged)
  • check_complexity.py ≤ 99 (unchanged)
  • No circular imports (unchanged)
  • Event-spine wiring passes (unchanged)
  • Docs consistency passes — bash scripts/verify_docs.sh passes end to end
  • PR has Why / What / How / Done sections

Tests

  • 3 new validator tests (promoted accepted; promoted needs both links; promoted refused on evidence entries) and 1 new G1 test (promoted is not open friction); check_test_assertion_regression.py --base origin/main clean

Documentation

  • No contradiction with current-truth docs; roadmap-status states no horizon, milestone, goal, or gate status moved

Why / What / How / Done

Why. Three confirmed hypotheses had no honest status. What. promoted terminal state with validator rules and G1 accounting. How. Two commits: schema + docs, then generated artifacts. Done. When CI is green: merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta


Generated by Claude Code

…ion hypotheses

The friction log's Entry Rules already speak of a "promoted entry" and carry a
`Promoted to` field, but the status vocabulary only had open/closed/rejected and
a hypothesis may never be `closed`. A hypothesis the owner confirmed in the
2026-06-22 capture batch and promoted to owner evidence (F2/F3/F7, all closed
with passing regression tests) therefore had no honest state: `rejected` would
record the opposite of what happened, so the three sat at `open` with a note,
were re-explained in every review, and would count as open friction in
prepare_g1_evidence.py for any window covering 2026-06-22.

Owner decision 2026-10-10 (in session, after reviewing the three entries and
their closure mechanisms): add `promoted` as the terminal state of a confirmed
hypothesis. validate_docs_consistency.py accepts it only on hypothesis entries
and requires both a non-n/a `Promoted to` (the owner evidence entry it became)
and non-n/a `Closure evidence`; evidence entries may not use it.
prepare_g1_evidence.py counts `promoted` separately so only `open` drives the
friction_observed verdict. The three entries move to `promoted`; the log's
templates, Entry Rules, and intake status are updated; roadmap-status and the
2026-10-09 review's open item (3) record the resolution; backlog-priority's
`friction-driven` gate wording names the new status.

Action: G-P2-21
Roadmap-Status: unchanged
Constraint: validator and docs only; no teaagent/ code; no status vocabulary removed; existing open/closed/rejected rules unchanged
Tested: tests/test_docs_consistency.py (57 passed incl. 3 new), tests/test_prepare_g1_evidence.py (incl. 1 new), tests/test_harness_first_signal_policy.py, tests/test_friction_ux_fixes.py; ruff/mypy clean; check_test_assertion_regression.py clean; verify_docs.sh passes except the evidence bundle rebuilt in the next commit
Confidence: high
Agent: Claude Code
Agent-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta
…fter the promoted-status change

Second commit of the two-commit protocol on the clean tree after 683fb04.
`bash scripts/verify_docs.sh` passes end to end on this tree.

Action: G-P2-21
Roadmap-Status: unchanged
Constraint: generated artifacts only; produced by the repo scripts, not edited by hand
Tested: bash scripts/verify_docs.sh — all checks pass ("Docs verification passed.")
Confidence: high
Agent: Claude Code
Agent-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0132tPtPaCjZgUpU2Ezgmrta
@johnteee
johnteee merged commit fa5199d into main Oct 10, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants