Phase 14 — Two-tier provenance for inception items#279
Open
leeovery wants to merge 14 commits into
Open
Conversation
…tion arguments Direct-entry items currently land on the discovery map with routing + source only — no descriptive context. Phase 14 extends the reference signature so callers that have material to derive from (the user's opening response to "what topic?") can back-fill summary and description at creation time. Both parameters are optional and only written when supplied and non-empty, so the existing call sites that don't supply them stay unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…n initial-session topics Initial-session topics now carry a description field in addition to summary. Both are derived from the same conversation in the same Claude turn; the working list keeps its compact form and description is generated only at persist time. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…dit Description operation Section D. Add now writes description alongside summary on refinement-added topics. New section I. Edit Description mirrors Edit Summary: batched STOP gate, single `set ... description` per topic, session-log entry, single commit. Done renumbered to J. Operations matrix gains the Edit Description row; lifecycle table records `any` (non-destructive, no gate). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… items Each new inception item surfaced by research-analysis now carries a description field — a richer extract from the analysis cache than the one-line summary. Entry skills load it as opening context when the user later picks the topic up for discussion. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eption items Gap-analysis-surfaced topics now carry description alongside summary, extracted from the analysis output. Loaded by discussion-entry as opening context. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A research split creates a new inception item; the same turn that generates the summary now also generates a description from the extracted thread content. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…n item Topic elevation now writes description alongside summary on the new inception item, derived from the elevation context. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ption from direct-entry opening response On the no-topic path, the entry skill now silently derives summary and description from the user's opening response in the same Claude turn that kebab-cases the response, then passes both to ensure-inception-item. The topic-resolved path is unchanged — when the caller already named the topic, no derivation runs and ensure-inception-item creates the item with routing + source only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…n into session handoff Every source branch except continue now reads description from the inception item and appends a Description block to the handoff when non-empty. Legacy items with null description fall through silently — the block is omitted, no header with empty body, no regression. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per-item map shape gains a description field — refinement's Edit Description op reads it from discovery_map[].description to surface the current value when proposing edits. Legacy/migration-seeded items default to null. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add description as a peer bullet under per-item fields — Phase 14 promotes description to a first-class field alongside summary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…work_type and exists probe The original handoff-load instruction told Claude to bare-get the description for every non-continue source, which would have failed on two real-world paths: (1) non-epic work units have no inception phase at all, so the path resolves nowhere and the CLI errors out; (2) epic items created before Phase 14, or via paths that didn't supply description, have no description subkey on the item — same error. Both cases now gate cleanly: work_type must be epic, and exists must return true on the description subkey. Either failing → omit the Description block, no error surfaced. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…or migration-seeded items continue-epic Step 6 already handles legacy/migration-seeded items missing summary by drafting one from the source files (research/discussion). Phase 14 added the description field but left this backfill flow summary-only, so migrated epics would never populate description without the user manually triggering refinement's Edit Description op for each topic. The fix: - Step 6 filter now catches items missing summary OR description (was summary only). This brings in both freshly-migrated items and items that were backfilled before Phase 14 (summary present, description null) — the latter get one re-entry through the flow to populate description, then drop out. - summary-backfill.md derives description in section A alongside summary (when null), tracks needs_summary / needs_description per item, and writes only the newly-drafted fields in section D. - The batch review (section B) keeps showing summaries only — description is paragraphs and would bloat the view. The user can refine via Edit Description in refinement later if the auto-draft falls short. - continue-epic discovery.cjs exposes description per item so Step 6's filter can read it. - Test for the legacy-recovery filter contract is expanded to cover the Phase 14 fixture shapes: migrated-summary-no-description (new — re-enters the flow for description) and migrated-fully-populated (excluded). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
descriptionfield (paragraph or two) to every inception item alongsidesummary. Every write surface — initial inception, refinement Add, research-analysis, gap-analysis, topic split, discussion elevation, and direct-entry — now populates both fields from the same source material in the same Claude turn.ensure-inception-itemaccepts both as optional parameters;workflow-discussion-entryandworkflow-research-entryderive them silently before invoking the reference.descriptionfrom the manifest and append a Description block to the handoff for every non-continuesource branch, so research/discussion sessions open grounded rather than blank. Legacy items with null description fall through silently — block omitted, no header with empty body.set ... descriptionper topic, session-log entry, single commit).discovery.cjsnow exposesdescriptionon each map item so the new Edit Description op can show the current value.design.mddata-model bullets gaindescriptionas a peer field. No migration to back-fill — legacy items staynulluntil the user edits via refinement.Test plan
node --test tests/scripts/test-*.cjs— 639 passing/continue-epicon a topic withresearch-analysissource has description setd/discussandr/researchpopulate summary and description, opening session is grounded🤖 Generated with Claude Code