Skip to content

ADR-0029: Planning interaction contract and phase legibility - #54

Merged
4lgn merged 1 commit into
masterfrom
claude/launchrail-refactor-ux-l5x6z2
Aug 20, 2026
Merged

ADR-0029: Planning interaction contract and phase legibility#54
4lgn merged 1 commit into
masterfrom
claude/launchrail-refactor-ux-l5x6z2

Conversation

@4lgn

@4lgn 4lgn commented Aug 20, 2026

Copy link
Copy Markdown
Member

Implements ADR-0029, a comprehensive refinement of the planning workflow based on field experience. This change introduces an interaction contract that budgets user decisions, establishes build-safety as the stopping rule (not frontier exhaustion), and adds a legibility layer presenting the thirteen internal stages as six user-facing phases.

Summary

The first full run of the Launchrail rail revealed that planning could become exhausting and procedural rather than decision-focused. This change addresses that by:

  1. Splitting decision ownership: Users own product promises, priorities, and irreversible tradeoffs; the agent owns reversible implementation details (marked Provisional).
  2. Labeling every uncertainty: Each question is tagged decide-now, agent-default, research, prototype, or defer — only decide-now questions become user interviews.
  3. Budgeting user attention: Sessions target ~6 user decisions with rounds capped at 3 questions; checkpoints every 2 rounds let users steer the process.
  4. Stopping at build-safety: Grills end when the next slice can be built safely, not when every question is answered. Foundation grills open with a "risk cut" of ~5 kill-or-reshape assumptions.
  5. Legibility layer: The thirteen stages are presented as six phases (Intent, Exploration, Decisions, Blueprint, Build, Ship) with an explicit rail banner at every transition.

Key Changes

  • New ADR-0029 (docs/adr/0029-planning-interaction-contract.md): Documents the interaction contract, decision labeling, session budgets, and the phase view.
  • Updated workflow.md (both locations): Adds the phase view section, rail banner format, and session summary structure; clarifies that the document now carries four contracts (phase view, stage table, interaction contract, conductor rules).
  • Updated launch-grill/SKILL.md: Reframes the grill's purpose from "relentless" to "budgeted"; emphasizes build-safety over exhaustion; adds the risk cut for foundation grills; introduces the triage table (decide-now / agent-default / research / prototype / defer); documents approved prototypes' authority.
  • Updated launch-wayfinder/SKILL.md: Strengthens "planning only" — execution is removed from the map; tickets must name the decision they unblock; maps don't nest; inherited grills use a tight budget.
  • Updated launch-spec/SKILL.md: Synthesis preserves grill labels (Locked / Provisional / Deferred).
  • Updated launch-tickets/SKILL.md: Adds rail banner close-out.
  • Updated launch-ralph/SKILL.md: Introduces output budget — two reports per run (pre-launch echo and close-out recap), everything else silent.
  • Updated launch/SKILL.md and conductor: Reports position as phases with explicit rail banner at transitions.
  • Updated launch-project-alignment/SKILL.md: Minor clarifications.
  • Updated issue-tracker.md: Documents spec milestone as a rollup view.
  • Version bump: .launchrail-lock.json updated to v1.12.0; all managed skill checksums updated.

Implementation Details

  • The phase view is a presentation layer only — stages remain the normative contract for ownership, artifacts, and gates.
  • The rail banner is a fixed fenced block rendered at every transition, never loose prose, ensuring consistent legibility.
  • Session summaries contain exactly four blocks: Locked, Provisional, Deferred, Next command — no other prose.
  • The risk cut for foundation grills focuses on ~5 assumptions that could kill or reshape the product; the long tail defaults or defers.
  • Approved prototypes and handoff packages are treated as decision records with authority — proposed cuts require concrete safety or cost reasons.

https://claude.ai/code/session_011aDBhRGtVGr8GcbJbfRHoE


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…rail (ADR-0029)

Field feedback from the first rigorous outside run of the full rail showed
planning optimizing for exhaustive decision closure: ~146 human decisions
before running software, oversized rounds, recursive grills, and progress
legible only to the agent.

- launch-grill: triage labels (decide-now / agent-default / research /
  prototype / defer) with only decide-now reaching the user, max three
  questions per round (a consequential one rides alone), ~six decisions
  per session, a checkpoint every two rounds, and a build-safe stopping
  rule replacing the empty-frontier rule; foundation grills open with a
  risk cut; artifacts record Locked / Provisional / Deferred / Ruled out.
- launch-wayfinder: decisions only (the execution override is removed;
  Task tickets must name the decision they unblock), one layer of map,
  and a runnable-or-visual checkpoint at least every two planning
  tickets; ticket grills inherit settled decisions under a tight budget.
- workflow.md + launch conductor: a six-phase view over the stages
  (Intent -> Exploration -> Decisions -> Blueprint -> Build -> Ship) and
  the rail banner rendered at every orientation, routing, and transition;
  session summaries carry exactly Locked / Provisional / Deferred / Next
  command.
- Approved prototypes gain authority across grill, spec, and
  design-handoff: shown behavior is presumed in scope, and a cut needs a
  concrete safety, infrastructure, or measured-cost reason.
- Docs aligned (README, getting-started, generated instructions, ADR
  registry) and the hello-launchrail example regenerated per its README.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011aDBhRGtVGr8GcbJbfRHoE
@4lgn
4lgn merged commit f49d1c9 into master Aug 20, 2026
2 checks passed
@4lgn
4lgn deleted the claude/launchrail-refactor-ux-l5x6z2 branch August 20, 2026 19:06
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