AI Agents SDE Task Viewer
      • Context
      • Plan
      • Prd
  1. Home
  2. AgentSDE
  3. agent-core
  4. gh-246
  5. plan
  6. prd.json
prd.json(1.8 KB)ยท Apr 2, 2026
{
  "issueNumber": 246,
  "branchName": "feat/246-quality-gate-e2e",
  "generatedAt": "2026-04-02T12:00:00Z",
  "stories": [
    {
      "id": "S1",
      "title": "Scaffold quality-gate.e2e-spec.ts with NestJS testing module and mocked dependencies",
      "priority": 1,
      "dependsOn": [],
      "acceptanceCriteria": [
        "File test/quality-gate.e2e-spec.ts exists and compiles",
        "Uses in-memory SQLite with synchronize:true",
        "Provides real TaskStateService, EventService, PhaseRouterService, DirectiveService",
        "Mocks ClaudeInvocationService, WorktreeService, ArtefactsService, GitHubService"
      ],
      "passes": false,
      "completedAt": null
    },
    {
      "id": "S2",
      "title": "Implement four E2E scenarios: gate blocks, skip-quality-gate bypass, normal flow, unauthorized bypass",
      "priority": 2,
      "dependsOn": [
        "S1"
      ],
      "acceptanceCriteria": [
        "Scenario: auto-directive task is gated at deliver phase, invoke() not called",
        "Scenario: skip-quality-gate sets override, approve clears gate, invoke() called with QUALITY_GATE_OVERRIDE=1, override consumed",
        "Scenario: quick-directive task passes through deliver ungated, no QUALITY_GATE_OVERRIDE in env",
        "Scenario: skip-quality-gate from non-author actor is processed (authorization is implicit via webhook layer)",
        "All tests reference #231 in describe block comment"
      ],
      "passes": false,
      "completedAt": null
    },
    {
      "id": "S3",
      "title": "Verify all tests pass and lint is clean",
      "priority": 3,
      "dependsOn": [
        "S2"
      ],
      "acceptanceCriteria": [
        "npm run test -- test/quality-gate.e2e-spec.ts passes",
        "npm run lint passes with zero warnings",
        "npm run test passes (no regressions)"
      ],
      "passes": false,
      "completedAt": null
    }
  ]
}
PlanPr description