singularity-forge/web/components/gsd
Ethan Hurst f70a912d59 feat: add parallel quality gate evaluation with evaluating-gates phase
Introduce infrastructure to spawn parallel sub-agents for independent
quality gate questions (Q3: Threat Surface, Q4: Requirement Impact)
during slice planning, reducing wall-clock time per milestone.

- quality_gates DB table (schema v12) with CRUD functions
- evaluating-gates phase in state machine between planning and executing
- gate-evaluate dispatch rule (opt-in via gate_evaluation preference)
- gsd_save_gate_result tool for sub-agents to persist findings
- Gate seeding inside plan-slice transaction (atomic with plan + tasks)
- Markdown renderer injects gate findings into plan.md and task-plan.md
- Recovery, rogue detection, dashboard, and scope-badge wired for new phase
- 15 new tests (9 storage + 6 dispatch/state)

  plan-slice tool
    └─ transaction: upsertSlicePlanning + insertTask(s) + insertGateRow(s)
    └─ renderPlanFromDb

  deriveState() → phase: "evaluating-gates"  (pending slice gates)

  auto-dispatch: "evaluating-gates → gate-evaluate"
    ├─ if !prefs.gate_evaluation.enabled → markAllGatesOmitted → skip
    └─ dispatch gate-evaluate unit
         └─ parent agent spawns sub-agents in parallel:
              ├─ Q3 agent → gsd_save_gate_result(verdict, findings)
              └─ Q4 agent → gsd_save_gate_result(verdict, findings)

  deriveState() → phase: "executing"  (no pending slice gates)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:51:38 +10:00
..
onboarding feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
activity-view.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
app-shell.tsx feat(web): make web UI mobile responsive (#2354) 2026-03-25 00:07:39 -06:00
chat-mode.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
code-editor.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
command-surface.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
dashboard.tsx feat(web): make web UI mobile responsive (#2354) 2026-03-25 00:07:39 -06:00
diagnostics-panels.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
dual-terminal.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
file-content-viewer.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
files-view.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
focused-panel.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
guided-dialog.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
knowledge-captures-panel.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
loading-skeletons.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
main-session-terminal.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
onboarding-gate.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
project-welcome.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
projects-view.tsx feat(web): add "Change project root" button to web UI (#2355) 2026-03-24 07:18:05 -06:00
remaining-command-panels.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
roadmap.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
scope-badge.tsx feat: add parallel quality gate evaluation with evaluating-gates phase 2026-03-26 14:51:38 +10:00
settings-panels.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
shell-terminal.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
sidebar.tsx feat(web): make web UI mobile responsive (#2354) 2026-03-25 00:07:39 -06:00
status-bar.tsx feat(web): make web UI mobile responsive (#2354) 2026-03-25 00:07:39 -06:00
terminal.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
update-banner.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
visualizer-view.tsx feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00