feat: Acceptance & Value model — Surfaces Part 2 (value pyramid & acceptance-aware rollups)#277
Merged
Merged
Conversation
Rollup seam, value Pyramid page, delivery acceptance toggle, and Overview parity + pyramid cards. Nine tasks, TDD, goldens hand-derived from the three seeded acceptances. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ances Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… registry Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…eflect covering acceptances
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
Completes the Acceptance & Value model surfaces (spec §3.4, §9.2, §9.3) on top of Part 1's
/acceptancesparity matrix. Every place that reads a view/flow's per-platform status now derives it from the acceptances covering it, and the value Pyramid ships.lib/utils/platform-status.ts):getEffectivePlatformStatuses(node, nodes, edges)— a view's per-platform status = the weakest (least-advanced) resolved status among its covering acceptances, falling back to the view's storedplatformStatuseswhen uncovered. PlusaddEffectiveNodeToRollupandcomputeFlowPlatformRollup(flow playlist rollup with effective views + acceptances covering the flow directly).computePlaylistRollupgained optionalnodes/edges(default[]= unchanged stored behaviour).computeProductRollup), Journey graph, System map, Library cards, and the flow detail panel ("Computed Platform Statuses"). Delivery deliberately stays stored —acceptanceis added as its own board species instead (additive, no double-count).computePyramidAggregationutil + a new/project/[id]/pyramidelement-gauge grid (4 Bain tiers, per-platform gauges, platform chip filter, element →/acceptances?value=<id>) + sidebar entry + route wiring./acceptances?parity_gap=1) and a Value Pyramid mini-card (per-tier coverage gauges →/pyramid)./pyramiddocumented ingraph-model.md; CI wired for the two new suites; wobble registry regenerated for the newPyramidIcon(drift gate clean).Behaviour/goldens: only one existing golden moves —
test:coverageseed android 17→18, traced entirely to the single covered viewV-pebble-detailnow contributing its acceptance-deriveddevelopmentstatus. Newtest:effective-status(seam) andtest:pyramid(aggregation) pin the new logic;test:journey-graphstays green (it pins structure, not rollup values).Process: built task-by-task (subagent-driven), each with spec + code-quality review; a final whole-diff review (SHIP WITH NITS) surfaced two cross-surface inconsistencies (detail panel + system map still stored) which are fixed in the last commit.
Lab Note
Test Plan
test:effective-status(new) — seam: weakest-link, uncovered fallback, flow direct-cover, seed goldenstest:pyramid(new) — value aggregation, tier order, unserved elements, platform filtertest:coverage— seed product rollup updated (android 17→18) and re-pinnedtest:delivery— acceptance species expands one item/platform; existing assertions unaffectedtest:journey-graph/test:maps/test:spotlight— structure goldens still greentest:acceptance/test:acceptance-matrix/test:value-icons/test:schema— greennpx tsc --noEmit+npm run lintclean;npm run generatedrift gate clean/pyramid(tiers, platform chips, element links), the Overview Parity + Pyramid cards, and a covered flow's detail panel vs its library card (gauges should now match)🤖 Generated with Claude Code