Skip to content

feat: planning modes + the Trace model (Tasks replaced by Traces) - #2

Open
xiduzo wants to merge 11 commits into
mainfrom
feat/planning-mode-and-trace-model
Open

feat: planning modes + the Trace model (Tasks replaced by Traces)#2
xiduzo wants to merge 11 commits into
mainfrom
feat/planning-mode-and-trace-model

Conversation

@xiduzo

@xiduzo xiduzo commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Summary

Two connected changes: planning modes for feature authoring, and the Trace model — a full replacement of the Task layer.

Planning modes (guided / flow)

  • New skills/references/planning-mode.md: guided asks step by step; flow derives everything it can and presents one consolidated review. Config key planning in .wtf/config.json, per-invocation argument override, mid-run switches both ways.
  • wtf.write-feature and wtf.epic-to-features resolve the mode; flow mode fans drafting out to sub-agents and reviews once (two user gates total: confirm the list, approve the tree). All quality gates run in both modes.

The Trace model (Tasks removed)

Per docs/adr/0001-traces-replace-tasks.md — inspired by the tracer-bullet method (aihero.dev, The Pragmatic Programmer). Vocabulary pinned in CONTEXT.md.

  • Trace = one pass over a Feature's Spine: claims exactly one story + a declared subset of its Gherkin scenarios (Scenario Claim). A story is delivered by 1..n Traces whose claims partition its scenarios. The Skeleton is the first Trace; Deepening Traces harden it. Every Trace leaves the system releasable.
  • Scenarios are canonical on the Feature (PM-editable); Traces carry claim names + a synced courtesy copy. wtf.verify-trace executes claimed scenarios via ephemeral .feature projection when a Gherkin runner exists, interpretive fallback otherwise.
  • Re-aim: the Trace Plan is a living aim. wtf.refine is the single re-aim mechanism — interactive, or headless from wtf.loop after every merged Trace. Headless re-aim is grow-only: it may reorder, re-batch, and add scenarios; every shrinkage needs human approval.
  • Sequencing: Traces run sequentially per Feature (spine-first); Features are the parallel unit in wtf.loop.
  • Delivery config: staged (trace PRs → feature branch → main) or trunk (trace PRs → main), plus feature_scope (single-story | grouped) — both asked once in wtf.setup, both overridable.
  • Classification: kinds are Epic / Feature / ☄️ Trace / Bug; read paths keep recognizing legacy Task issues; write paths never create Tasks again.
  • Renames, no aliases: write-taskwrite-trace, feature-to-tasksfeature-to-traces, implement-taskimplement-trace, verify-taskverify-trace, design-taskdesign-trace.

All 16 shared references, 26 skills, issue templates, and 30+ eval fixtures migrated. README/CLAUDE.md speak the model in the present tense. WTF now expands to Workflow Trace Framework.

Test plan

  • All eval JSON validates (json.load over every evals.json + fixture)
  • Repo-wide sweep: every surviving task token is a deliberate legacy read
  • Seam checks: loop ↔ refine Headless mode, verify ↔ conflict-graph sequencing, label-description consistency
  • Run the eval harness (/skill-creator test) over migrated skills
  • Dogfood /wtf.setup + /wtf.write-feature/wtf.feature-to-traces/wtf.loop in a consuming repo
  • Validate verify-trace's per-runner binding mechanics against a real playwright-bdd project

🤖 Generated with Claude Code

xiduzo and others added 11 commits August 13, 2026 11:24
Add skills/references/planning-mode.md (resolve block, flow deltas,
escalation rules). wtf.write-feature and wtf.epic-to-features resolve
the mode from an argument or .wtf/config.json; flow mode batches
questions, fans drafting out to subagents, and reviews once.
wtf.setup asks the mode and records the planning config key.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Design doc for the tracer-bullet work model: Epic (horizon) ->
Feature (step, 1..n co-related stories) -> Trace (one story,
end-to-end, spine-first sequencing). Records the four decisions,
skill impact, phased rollout, and open questions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A grilling session on 2026-08-11 resolved all four open questions.
A Trace now claims one story plus a Scenario Claim that partitions
the story's scenarios. Re-aim runs through wtf.refine (interactive
or headless, grow-only). Scenarios stay canonical in the Feature
body with ephemeral .feature projection at verify time. Delivery is
staged or trunk via .wtf/config.json. CONTEXT.md adds the glossary.
ADR 0001 records the replacement decision.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Document guided/flow planning modes (config key, per-invocation
override, flow behavior of epic-to-features) and add a clearly
marked not-yet-implemented section pointing at ADR 0001, the
trace-model plan, and the CONTEXT.md glossary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The acronym stays; the name now leads the trace-model direction
recorded in ADR 0001.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Shared references speak the Trace model: Epic/Feature/Trace/Bug kinds
with legacy Task reads, spine-first sequencing in the conflict graph,
depth-not-layers scope gates, trace/* branches with staged|trunk
delivery modes. wtf.setup provisions the Trace type, installs the new
TRACE.md template, and asks feature_scope + delivery config. Five
skill dirs renamed task->trace (content migration follows).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…im them

write-feature derives per-story ACs + canonical Gherkin (count set by
feature_scope) and proposes a Trace Plan with Skeleton first.
epic-to-features shapes its list by scope and passes both modes down.
write-trace (was write-task) selects a Scenario Claim from the Feature
instead of deriving Gherkin; feature-to-traces (was feature-to-tasks)
validates or derives the Trace Plan and executes it in spine order,
refusing layer slices. Evals migrated to the trace model.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
implement-trace drives TDD over the Scenario Claim with a Skeleton
anti-slop directive and emits Revealed learnings. verify-trace runs
claimed scenarios via ephemeral .feature projection with interpretive
fallback and a drift gate against the Feature's canonical text.
wtf.loop dispatches Traces sequentially per Feature, Features in
parallel, delivery-mode aware, and re-aims after every merge through
wtf.refine's new Headless mode (grow-only; shrinkage needs a human).
create-pr derives bodies from story + claim and delegates PR bases to
the delivery-aware branch policy. Loop/refine/create-pr evals migrated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
health gains partition-gap and missing-Skeleton signals; retro counts
re-aims from refine's audit trail; changelog attributes shipped
behavior via verified Scenario Claims; report-bug links failing
scenarios to their claiming Trace; pr-review reviews Skeletons for
lean-but-complete and treats outside-the-claim work as scope creep.
README and CLAUDE.md speak the Trace model in the present tense.
Own-repo issue templates refreshed (TASK.md kept as legacy); vendored
shared references regenerated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The ADR stays as the decision record; CONTEXT.md pins the vocabulary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@xiduzo
xiduzo force-pushed the feat/planning-mode-and-trace-model branch from 3ae4717 to d199d75 Compare August 13, 2026 09:30
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.

1 participant