Skip to content

feat(wedge): PR-WV1-2 Improve workspace migration (amended)#185

Merged
jukka-matti merged 20 commits into
mainfrom
feat/wedge-pr-wv1-2-improve-workspace
May 16, 2026
Merged

feat(wedge): PR-WV1-2 Improve workspace migration (amended)#185
jukka-matti merged 20 commits into
mainfrom
feat/wedge-pr-wv1-2-improve-workspace

Conversation

@jukka-matti
Copy link
Copy Markdown
Owner

Summary

Delivers wedge V1 spec §3.2 + §3.3 with the 2026-05-16 amendment: Improve as a top-level verb tab, Project (singular) noun, 3-stage IP detail (Charter / Approach / Sustainment — Handoff folded into Sustainment closure).

Original PR-WV1-2 scope (Tasks 0-5)

  • canAccess wired at consumer call sites (IPDetailPage + CharterOverview Invite gate)
  • migrateImprovementProjectMetadata helper folds legacy team[] → members[] at .vrs / Dexie hydration (closes PR-WV1-1 deferred item b)
  • <ImproveStage> simple ActionItem tracker built (now in Improve/)
  • Handoff close-logic absorbed into <SustainmentOverview>, HandoffOverview/HandoffSections deleted

Amendment scope (Tasks A-E, after mid-execution brainstorm)

  • StageName trimmed from 4 values to 3 ('improve' retires)
  • <ImproveStage> routing removed from IPDetailPage; component moved to packages/ui/src/components/Improve/
  • <NoActiveProjectGuidance> empty state built (active-IP cascade pattern, mirrors PR-WV1-1's NoAccessRedirect)
  • <ImproveTabRoot> orchestration built — sole content of the top-level Improve tab
  • <ImproveStageAdvanced> skeleton retired in favor of production <ImprovementWorkspaceBase> as the Advanced toggle target (per feedback_reuse_production_primitives)
  • PWA + Azure shells wired through <ImproveTabRoot> in <ImprovementView> body; legacy <ImprovementWorkspaceBase> direct rendering deleted
  • workspace.projects i18n key renamed to workspace.project (singular) across 32 locales

What's deferred (still owed)

  • (a) INVITATION_ACCEPT / INVITATION_REVOKE action kinds → PR-WV1-3 (with Inbox simplification)
  • (c) Per-user persistence key on useProjectMembershipStore → PR-WV1-5 (with auth-wiring refinement)
  • ActionItem CRUD dispatch (ACTION_ITEM_UPDATE / REMOVE) → PR-WV1-3 (action tracker data layer)

Test plan

  • core 3432 / stores 277 / pwa 352 / azure-app 1320 / ui-IPDetail 69 / ui-Improve 283 / ui-projects 9 / ui-Charter 10 / ui-Sustainment 10 — all green
  • pnpm build green (5/5 packages/apps)
  • bash scripts/pr-ready-check.sh green
  • --chrome browser walk per amendment spec §"Acceptance criteria" (10 scenarios)

Canonical artifacts

  • Original spec: docs/superpowers/specs/2026-05-16-wedge-architecture-design.md §3.2-3.3
  • Amendment spec: docs/superpowers/specs/2026-05-16-improve-tab-amendment-design.md
  • Master plan: docs/superpowers/plans/2026-05-16-wedge-implementation.md PR-WV1-2 row
  • Original sub-plan: docs/superpowers/plans/2026-05-16-pr-wv1-2-improve-workspace.md
  • Amendment plan: docs/superpowers/plans/2026-05-16-pr-wv1-2-amendment-improve-tab-restore.md

@vercel
Copy link
Copy Markdown

vercel Bot commented May 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mean-beoynd-lite-pwa Ready Ready Preview, Comment May 16, 2026 8:16pm
variscout_website Ready Ready Preview, Comment May 16, 2026 8:16pm

jukka-matti and others added 20 commits May 16, 2026 23:05
…age to Improve

Introduces migrateImprovementProjectMetadata (TDD, 4 tests) that
idempotently folds legacy team[] → wedge members[] at hydration time.
Exports from the improvementProject barrel.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…paths

Renames StageName / StageStateMap from handoff→improve; stage order is
now charter→approach→improve→sustainment. Updates IPDetailPage body render,
defaultActiveStage, and all affected tests. Wires
migrateImprovementProjectMetadata into Azure (hydrateHub) and PWA
(joinHub) at the lowest Dexie read seam.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implements Task 2 of PR-WV1-2: creates ImproveStage component backed by
ActionItem list with edit-improve ACL gating, empty-state, add form, and
owner/due-date display; routes IPDetailPage 'improve' stage to ImproveStage
replacing the Handoff placeholder; adds onActionAdd/Update/Remove optional
props (no-op defaults) to IPDetailPageProps.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Composes ImprovementContextPanel, IdeaGroupCard (per group), BrainstormModal
(modal-trigger owned by wrapper), PrioritizationMatrix, and WhatIfExplorer
into the Advanced workspace four-region layout.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Progressive disclosure per wedge spec §3.3 — simple action tracker by
default; Advanced button swaps in ImproveStageAdvanced (PDCA workbench).
Toggle visible to all roles; edit gating remains inside each view.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Wedge V1: the Handoff stage is retired; its close-project checklist
(control plan, training, cadence, process-owner acknowledgment + nudge)
is absorbed into SustainmentOverview as an optional closureInputs panel.
SustainmentSections gains a controlHandoff section in its sections view.

HandoffOverview and HandoffSections source files deleted; HandoffOverview
tests ported into SustainmentOverview test suite (4 new closure-panel
assertions). HandoffChecklistInputs type replaced with
SustainmentClosureInputs exported from SustainmentOverview.

IPDetailPage, both ProjectsTabViews (PWA + Azure), and App.tsx / Editor.tsx
callers updated: handoffInputs → closureInputs, onOpenLegacyHandoff removed.
Pre-existing whatIfMode:'basic' tsc error in ImproveStage absorbed and fixed
(fallback 'basic' → 'standard').

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mendment

Removes 'improve' from StageName, StageStateMap, and deriveStageState per the
2026-05-16 wedge amendment (Improve moves to top-level tab; Project detail shows
Charter / Approach / Sustainment only). Adds 'upcoming' to StageState union.
…ment

Drop the 'improve' stage case, its render block, and the three onAction*
props from IPDetailPage — Improve is now a top-level tab, not a project
detail stage. Also remove the dead stages.improve branch from
defaultActiveStage and trim the matching test assertions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ced; reuse ImprovementWorkspaceBase as Advanced view

Advanced toggle now renders ImprovementWorkspaceBase (production PDCA workbench)
instead of the skeleton ImproveStageAdvanced. Test mocks ImprovementWorkspaceBase
to keep the unit hermetic; runtime integration verified via --chrome browser walk.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Routes between NoActiveProjectGuidance empty state and ImproveStage
based on activeIP. Adds Improve/ barrel + re-exports from @variscout/ui.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PWA: ImprovementView gains activeIP + onGoHome props; when activeIP is
threaded from App.tsx, renders ImproveTabRoot (NoActiveProjectGuidance
when null, action tracker when set). Fallback to pre-wedge ideas view
when activeIP prop not provided for backward compatibility.

Azure: Editor.tsx Improve section adds activeIP === null guard that
renders ImproveTabRoot empty state; active-IP case falls through to
existing ImprovementWorkspaceBase ideas workspace unchanged.

Action callbacks are console.warn stubs pending PR-WV1-3 persistence work.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…WA prop contract

Azure Editor was gating <ImproveTabRoot> behind activeIP===null, letting active-IP
users fall through to the legacy <ImprovementWorkspaceBase> ideas view. Removed the
ternary — both branches are now a single unconditional <ImproveTabRoot> that handles
empty and active-IP states internally (mirrors PWA behaviour). Removed now-dead
imports and variables (ImprovementWorkspaceBase, ImprovementContextPanel,
WhatIfExplorerPage, PrioritizationMatrix, TrackView, DEFAULT_PRESETS, matrix axis
state, activeImprovementView/highlightedIdeaId store reads, scopedImprovementQuestions,
and unused orchestration destructure fields).

PWA ImprovementView: made activeIP, actions, onGoHome required (no optional shims);
deleted the pre-wedge fallback branch (ideas workspace + empty-ideas guard). App.tsx
call site updated to pass actions={[]} explicitly, drop the seven props that no longer
exist on the component, and remove the now-unused useImprovementOrchestration hook call.
Per feedback_no_backcompat_clean_architecture.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lar)

Project tab is active-IP-centric — shows ONE project's lifecycle (amendment spec §Decision summary #2). Rename key across all 32 locale files + MessageCatalog type + PWA nav consumer; update values to singular form for inflecting languages (en/fi/de/es/fr/it/pt/nl/pl/tr/sv/da/nb/cs/hu/ro/uk/sk/hr/bg/el/hi/ar/he) and native equivalents for non-inflecting languages (ja/ko/zh-Hans/zh-Hant/th/vi/id/ms). TDD: failing tests written first, confirmed red, then green.
Records the Improve-tab-restore amendment under the 2026-05-16 wedge
entry: Improve restored as top-level verb tab, Project singular rename,
StageName trimmed to 3, ImproveTabRoot wired in both apps, deferred
items (b) + (d) from PR-WV1-1 closed, (a) + (c) still owed to
PR-WV1-3 / PR-WV1-5.
@jukka-matti jukka-matti force-pushed the feat/wedge-pr-wv1-2-improve-workspace branch from eb28ad6 to a6bed5c Compare May 16, 2026 20:06
@jukka-matti jukka-matti merged commit 4da07ce into main May 16, 2026
1 of 3 checks passed
jukka-matti added a commit that referenced this pull request May 17, 2026
Yesterday's 2026-05-16 amendment (commit 01e6532, spec
docs/superpowers/specs/2026-05-16-improve-tab-amendment-design.md)
restored Improve as a top-level verb tab + renamed Projects → Project
(singular) + trimmed Project detail to 3 stages. PR-WV1-2 (#185)
shipped the amendment. I missed this when writing the WV1-5 sub-plan
(d7898e7) and the master sequencer wasn't updated post-amendment.

Corrections:
- Master sequencer top notice + PR-WV1-5 target updated to 7-tab amendment
- WV1-5 sub-plan Goal, Architecture, File structure Nav, Task 6
  full rewrite (7 tabs, Project singular, Improve kept), Task 8 PR-body
- MEMORY.md project_wedge_v1 index entry updated (memory body was
  already correct from yesterday)

Target nav (7 tabs):
  Home . Project . Process . Analyze . Investigation . Improve . Report

Rename diff:
  Overview -> Home
  Frame    -> Process
  Analysis -> Analyze
  Projects -> Project (singular)

Improve stays. Project moves to slot 2.

User flagged the drift: "we agreed yesterday that improve tab stays
and projects tab is project". They were right; I was working from a
stale mental model of the wedge spec without checking the amendment.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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