AI Agents SDE Task Viewer
      • Context
      • Plan
      • Prd
  1. Home
  2. AgentSDE
  3. agent-core
  4. gh-348
  5. plan
  6. prd.json
prd.json(1.8 KB)ยท Apr 8, 2026
{
  "issueNumber": 348,
  "branchName": "rc/multi-tenant",
  "generatedAt": "2026-04-08T12:00:00Z",
  "stories": [
    {
      "id": "S1",
      "title": "Create TenantConfig and RepoConfig interfaces in tenant-config.interface.ts",
      "priority": 1,
      "dependsOn": [],
      "acceptanceCriteria": [
        "TenantConfig interface has all fields from issue spec: tenantId, org, platform, platformCredentialPath, botUsername, defaultBaseBranch, branchPrefix, labels, projectId, projectNumber, llmProvider, llmCredentialPath, llmModel, llmTimeoutSecs, defaultDirective",
        "RepoConfig extends Partial<TenantConfig> with repo and excludeFromAgent fields",
        "tsc --noEmit passes"
      ],
      "passes": false,
      "completedAt": null
    },
    {
      "id": "S2",
      "title": "Create TenantConfigService with getConfig() method and constructor validation",
      "priority": 2,
      "dependsOn": [
        "S1"
      ],
      "acceptanceCriteria": [
        "getConfig() returns TenantConfig with correct defaults matching current runtime behavior",
        "Reads GITHUB_OWNER, AGENT_USERNAME, PROJECT_ID, PROJECT_NUMBER, CLAUDE_TIMEOUT_SECS from ConfigService",
        "Throws on construction if GITHUB_OWNER or AGENT_USERNAME is missing/empty",
        "Label defaults match: in-refinement, refined, in-review, agent-blocked, backlog"
      ],
      "passes": false,
      "completedAt": null
    },
    {
      "id": "S3",
      "title": "Create TenantModule and unit tests",
      "priority": 3,
      "dependsOn": [
        "S2"
      ],
      "acceptanceCriteria": [
        "TenantModule provides and exports TenantConfigService",
        "Unit tests verify correct defaults, ConfigService reads, label values, and missing required var throws",
        "npm run test passes",
        "npm run lint passes"
      ],
      "passes": false,
      "completedAt": null
    }
  ]
}
PlanPr description