FE-573: Project dashboard workflow state#38
Conversation
FE-573 Project dashboard workflow state
Surface durable workflow state on the project list so users can tell which projects are unstarted, in progress, closed with debt, invalidated, or export-ready without opening each workspace. This replaces the deferred revisit slot with a missing but lower-risk requirement. |
🤖 Augment PR SummarySummary: This PR surfaces per-phase workflow state on the project dashboard and adds reusable fixture scenarios for outer-loop testing. Changes:
Technical Notes: 🤖 Was this summary useful? React with 👍 or 👎 |
| const workflow = getCurrentWorkflowState(db, project.id); | ||
| return { | ||
| ...project, | ||
| workflowSummary: { |
There was a problem hiding this comment.
workflowSummary only includes each phase’s status, so consumers can’t distinguish “normal closed” vs forced/low-readiness closures that are represented elsewhere in WorkflowPhaseState (e.g., closureBasis/readiness). If FE-573 needs “closed with debt”/export readiness differentiation in the list, consider whether this summary needs to carry more than status.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| {phaseLabels.map(({ key, label }) => ( | ||
| <span | ||
| key={key} | ||
| className={`rounded-sm px-1.5 py-0.5 text-xs font-medium ${statusStyles[p.workflowSummary[key]]}`} |
There was a problem hiding this comment.
These badges currently render only the phase label, with the actual status conveyed only via color (statusStyles[...]), which is hard to interpret for color-blind users and not exposed to screen readers. Consider also exposing the status text/semantics (e.g., via an accessible label) derived from p.workflowSummary[key].
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| ]; | ||
|
|
||
| renderProjectList(); | ||
| expect(screen.getByText('Scope')).toBeDefined(); |
There was a problem hiding this comment.
This test asserts that the phase labels render, but those labels are static and don’t verify that different workflowSummary values affect the rendered badge styling/semantics. As written, a regression where the UI ignores workflowSummary could still pass.
Severity: low
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f Co-authored-by: Amp <amp@ampcode.com>
… testing Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019d776b-9a7d-7521-b45c-ee24c4e45fca Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019d776b-9a7d-7521-b45c-ee24c4e45fca Co-authored-by: Amp <amp@ampcode.com>
3044be5 to
a365c15
Compare

feat: project dashboard shows per-phase workflow status badges
Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f
Co-authored-by: Amp amp@ampcode.com
chore: mark 11a done, update coverage counts
Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f
Co-authored-by: Amp amp@ampcode.com
plan: add slice 11b — fixture scenarios + dev seed CLI for outer-loop testing
Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f
Co-authored-by: Amp amp@ampcode.com
feat: fixture scenarios + dev seed cli
Amp-Thread-ID: https://ampcode.com/threads/T-019d776b-9a7d-7521-b45c-ee24c4e45fca
Co-authored-by: Amp amp@ampcode.com
chore: batch scope cards for slices 12 and 13
Amp-Thread-ID: https://ampcode.com/threads/T-019d776b-9a7d-7521-b45c-ee24c4e45fca
Co-authored-by: Amp amp@ampcode.com