Skip to content

feat(code-context): the Round sets what to return; journeys carry nav_path (0.2.15) - #37

Merged
alphali merged 6 commits into
mainfrom
claude/context-contract
Oct 17, 2026
Merged

alphali merged 6 commits into
mainfrom
claude/context-contract

Conversation

@alphali

@alphali alphali commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on #36 (0.2.14, direct submit). Server side: getdoable/trd#618, whose Change Set is docs/change-sets/code-context-contract.yaml in trd.

Change

What to return comes from the Round.

  • The skill no longer branches on the quick/full tier.
  • The Round's situation, its questions' answer expectations and its journeyMap instructions define what to return and how deep to go.
  • Sweeps run only when a question asks for them.

Helper:

  • Journey fields: unchanged. A journey is sent with the keys every Doable server stores; the navigation path rides in name (labels joined with " › ") and the order in the list. Keys an agent adds from older guidance (navPath, order) are not sent. A first draft of this PR sent nav_path/order; orchestration's pinned test_spec refused such rounds (see getdoable/trd#618).
  • Round file: keeps the journey-map how/maySkip text and the Round's situation, and prints the situation.
  • Tier: no longer stores or prints the tier or a time budget.

Docs: answer-contract.md, TESTING scenarios 26, 27 and 30, and CHANGELOG are updated.

Tests

  • npm test: release verifier doable-code-context@0.2.15, workflow check, node tests 6/6.
  • The node tests cover:
    • a journey carrying navPath/order is sent with the stored keys only, name unchanged;
    • malformed paths rejected;
    • older-style payloads unchanged;
    • the situation printed.
  • E2E backtests with this plugin on a local trd#618 stack:
    • Claude Code rounds (plugin 0.2.16 on top of this) named every journey by its path and submitted directly; plugin 0.2.13 against the same trd submitted through MCP;
    • follow-up rounds answered their questions;
    • see trd#618 for the scores.

Not merged. It waits for #36 and the trd deploy (deploy order: trd, then this release).

🤖 Generated with Claude Code

alphali and others added 6 commits October 18, 2026 00:10
… tier

A journey declaration may carry navPath (1-6 navigation labels, area to
leaf) and order (the leaf's position within its parent). The helper
validates both, checks each label for local provenance, and emits
nav_path / order only when present, so an older-style candidate produces
the same payload as before. validate-submission warns when a journey name
does not end with its navPath leaf.

record-round no longer prints the investigation tier or a time budget,
and the Round file no longer keeps them: the Round's questions and its
journey-map instructions define what to return. The Round file now keeps
the server's journey-map instructions (how, maySkip) so the agent can
read them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ry navPath

Remove the quick/full tier rules from the answer skill. The Round's open
questions (text and answer expectation) and its journey-map instructions
now define what to return and how deep to go; the sibling enumeration,
family sweep, test-state sweep and coverage check run when a question asks
for them, not by tier. Describe navPath / order and the one-journey-per-leaf
shape as the format of what the contract asks for. Direct submission flow
is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Today's Doable server forbids unknown journey keys, so a journey carrying
nav_path or order is rejected with 422 by any server that predates the
contract change. Send them only when the Round's journey-map instructions
mention nav_path; otherwise keep validating them locally, drop them from
the payload, and have validate-submission say so. The journey name is
sent unchanged either way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Doable now says on every Round what it already has and is about to write; the agent judges the scope by it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… name

A first draft sent nav_path/order. Every reader of a stored round
(orchestration's and the platform's pinned test_spec, a rolled-back trd)
refuses extra journey keys, so the path stays in name and the order in
the list. Keys an agent adds from older guidance are not sent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@alphali
alphali changed the base branch from claude/direct-submit to main October 17, 2026 16:10
@alphali
alphali force-pushed the claude/context-contract branch from a08314d to 79dca33 Compare October 17, 2026 16:10
@alphali
alphali merged commit ffc9d6e into main Oct 17, 2026
1 check 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.

1 participant