UpsQuad PRD Registry
Canonical index of all product requirements documents. Updated 2026-09-06.
Completeness claim (2026-09-06): every prd-labelled issue in upsquad-ai/upsquad-core is either indexed in a table below or listed under Not indexed with a reason. That is a checkable claim, and it is checked: scripts/check-prd-registry.py enforces the structural half in CI on every PR that touches scripts/**, and --online proves completeness and placement against the live label query. It is the first date on this line that was earned rather than assumed: the index was materially incomplete on every earlier one.
Master PRD
| PRD | Version | Status | Scope |
|---|---|---|---|
| Master PRD: UpsQuad AI Workforce Platform | 2.3 | Active | End-to-end product |
Markdown mirror: docs/UpSquad_Complete_PRD.md (v1.9)
Sub-PRDs (Delivered)
| PRD | Version | Scope |
|---|---|---|
| Context Engine (#2) | 1.1 | Token optimisation, context assembly |
| Client Portal MVP (#79) | 1.0 | app.upsquad.ai portal |
| Agent Runtime Core (#93) | 1.6 | Hybrid Go + Python runtime |
| BYOA & AI Governance (#231) | 1.0 | Governed MCPs, AI Gateway, HTTP proxy |
| SCM Credentials (#348) | 1.7 | Per-member SCM credential vault |
| Agent Runtime Optimisation (#380) | 1.8 | P4.8.1-P4.8.8 waves |
| Onboarding APIs (#425) | 1.0 | 5 backend API bundles |
| Org Model v2.3 — Inline Edit UX (#579) | 1.0 | Inline org-tree editing; target repo upsquad-client, derived from #549 (portal:client) |
| Interactive Configuration Sandbox (ICS) (#759) | 1.3 | [BOOTSTRAP] Both-portal form foundation — B-surface RBAC, SecretWriteService, shared compose base (HLD #763) |
| Self-Hosted Inference as a First-Class Deployment Shape (#996) | 2.2 | BYO OpenAI-compatible endpoint; local-by-default embedding, refuse-to-boot when unset, recall benchmark (milestone 32) |
| Agent Memory Loop on the Context Engine (#2037) | 1.0 | Extraction, consolidation and recall of agent memory on the Context Engine (HLD #2064) |
| Org Model v2.3 (#549) | 1.0 | Flexible hierarchy, RBAC, cascading guardrails, SCIM, tool visibility Delivered 2026-04-17 (pm-signoff); HLD #556; superseded by Org Model v2.4 #1629 |
| Workflow Runtime v2 — Orchestration Intelligence (#2081) | 1.0 | 6 orchestration primitives on the MVP substrate (successor to Workflows MVP #1783) Delivered: PRD closed 2026-08-12; five approved HLDs (#2104, #2118, #2113, #2223, #2224) |
Sub-PRDs (Draft — Awaiting Approval)
| PRD | Version | Scope |
|---|---|---|
| Agent Lifecycle & Upgrade (#550) | 1.0 | Version pinning, upgrade, rollback |
| Workspace Persistence (#551) | 1.0 | Git WIP, build cache, spot node |
| Pricing & Packaging (#552) | 1.0 | Tier model, pricing |
| Dashboard Intelligence (#553) | 1.0 | Dashboard + Quad UX |
| Competency Catalogue (#554) | 1.0 | 12 default profiles |
| Platform AI Model Configuration (#558) | 1.1 | UpsQuad-controlled per-function model selection; upsquad-admin operator portal (not tenant-facing) |
| Sandbox Benchmark Environment (#615) | 1.0 | Isolated registry-pull sandbox for per-component perf + feature-coverage testing (tracker #616 — the #604 org migration it originally cited completed 2026-04-17) |
| Temporal Adoption — Durable Agent Workflows (#623) | 1.0 | Durable execution for approval chains, SCIM syncs, agent sessions, sub-agent delegation (tracker #624; PRD #558 unapproved as of 2026-09-06 — the #604 migration it originally cited completed 2026-04-17) |
| Org Model v2.3 — Admin Import Wizard (#580) | 1.0 | SCIM/CSV import wizard; target repo upsquad-admin, derived from #549 (portal:admin) |
| Hallucination Reduction & Response Grounding (#918) | 0.1 | Grounding and hallucination-reduction measures for agent responses |
| Context Engine as a Public API (#1170) | 1.0 | Layer 4 of the BYOA stack — the Context Engine exposed as a tenant-facing API |
| Team as Capability Container (#1206) | 1.0 | Member-inherited scope, team-owned RAG + MCP, availability-vs-usability. deferred + discuss as of 2026-09-06. Scope-model parent of #2995, which does not amend it |
| External Governance Plane (#1674) | 1.0 | Govern agents on any runtime (BYO-runtime), including the Context Engine |
| Governed Rewind (#1935) | 1.0 | Audited, RBAC'd "undo an agent's work" |
Sub-PRDs (Approved — HLD in progress)
| PRD | Version | HLD | Scope |
|---|---|---|---|
| Live Build Experience (#2235) | 1.0 | HLD #2233 (runtime plane), HLD #2234 (infra plane), ADR-0028 #2236 (preview ingress, approved 2026-07-28) | Live LLM I/O streaming + mid-run user_input elicitation + running-service previews. Wave 1 delivered (A1/A2 streaming, B1 user_input, P1 preview substrate); next waves in progress |
| Team Knowledge Capability (#2995) | 1.4 | HLD #3046 (approved 2026-09-06) | Document registry + byte-faithful GetDocument, team-grain access parity (Drive/GitLab/Wiki.js ACL capture), query-time live fetch, team-scoping enforcement seams + knowledge withhold, Wiki.js/GitLab/YouTrack connectors, Team page capability console, repo awareness (registry + curated repo maps), corpus integrity (five conflict classes + human-adjudicated queue) (F2–F9 / TK-2..TK-9; tracker #2991, media.net SRE Day-0). Markdown mirror: docs/prd/team-knowledge-capability-prd.md |
| Quad — AI Assistant & Chat Infrastructure (#573) | 1.0 | HLD #915 (awaiting approval as of 2026-09-06) | Persistent chat, lazy pagination, pinned proactive messages, cross-device continuity |
| UX Debt Remediation (#1005) | 1.0 | HLD #1018 (Wave U1; awaiting approval as of 2026-09-06) | 5-wave structural UX remediation: guardrails wizard, jargon rename, UUID→picker, ⌘K + tooltips, mobile pass; gates paid-MVP (portal:client, ux) |
| Client Portal Dashboard Data Integration (#824) | 1.0 | HLD #831 (approved) | Real data behind the client-portal dashboard (portal:client) |
| Org Model v2.4 — pure teams, multi-parent relations, per-axis inheritance (#1629) | 2.4 | HLD #1642 (approved) | Uniform units, multi-parent relations, per-axis inheritance, Manager governance (successor to #549) |
| UpsQuad Model Gateway (#2644) | 1.2 | HLD #2649 (approved) · ADR-0034 | Governed LLM access for platform + external agents: endpoint registry, team bindings, cache-aware metering, gate chain, external-agent auth |
| Workflows — governed DAG execution on one engine (#1783) | 1.0 | ADR-0023 #1784 (closed 2026-07-15) · tracker #1786 open as of 2026-09-06 | Governed durable workflow DAG engine: Coordinator sole executor + RunProjector live-DAG contract; Temporal execution substrate; demo.upsquad.ai/workflows (FR-1..14, M1–M9) |
Sub-PRDs (Approved — HLD pending)
| PRD | Version | Status | Scope |
|---|---|---|---|
| Pre-Onboarding E2E + Multi-Role Verification (#950) | 1.0 | Approved | Behavioral E2E verification across all client-portal surfaces for 5 personas; gates UpsQuad pilot cutover (portal:client, qa-e2e) |
| Registry & Gateway (#1681) | 1.1 | Approved | Governed MCP + LLM registries, team-scoped gateways, per-tool guardrails |
Not indexed (accounted for)
Issues carrying the prd label that are deliberately not rows above. Listed so the completeness claim at the top is checkable rather than a matter of trust — an unexplained absence and a considered exclusion are different things, and only one of them is a defect.
| Issue | Why not indexed |
|---|---|
| #578 | A delivery tracker carrying the prd label — its title begins TRACK:. Mislabelled; not a PRD. |
| #725 | CI Cost & Resilience — Runner Pool Migration (on-hold). An engineering-process proposal, not a product requirement; indexing it would silently redefine what this registry is. |
| #738 | CI Cost & Resilience — periodic execution of expensive gates. Same class as #725. |
| #743 | publish-images.yml cron move. Same class as #725, and it carries no **Version** line, which every indexed PRD has. |
| #1624 | Org Model v2.4 generality gap analysis — labelled (PRD input) in its own title, no version line. An input to #1629, not a PRD. |
| #3053 | An amendment proposal against PRD #2644 (its title is [PRD #2644 v1.4] …), not a sub-PRD. Amendments land in the parent PRD's body and changelog. |
#725, #738 and #743 need a ruling, not a row: they are prd-labelled engineering-process proposals (#738 and #743 approved; #725 on-hold, so one of the three would not be indexed today under any reading). Either the registry's scope widens to cover them (and says so), or they lose the prd label. They are excluded here rather than indexed because widening the registry's meaning is not a bookkeeping decision.
Placement
Which table a sub-PRD sits in is mechanical, so that it can be checked rather than remembered:
| Section | Predicate |
|---|---|
| Draft — Awaiting Approval | carries awaiting-approval, or carries neither approved nor a delivery signal (e.g. deferred) |
| Approved — HLD pending | carries approved; no HLD issue exists yet |
| Approved — HLD in progress | carries approved, is open, and a design document exists — an HLD or an ADR. The cell links it and states its state as a dated fact. (#2235 already links [ADR-0028 #2236]; #1783's design is [ADR-0023 #1784]. Requiring an HLD specifically would misfile every PRD whose design landed as an ADR.) |
| Delivered | closed, approved, and no awaiting-approval |
Two conventions the 2026-09-06 pass made explicit because both had already rotted in place:
- State annotations must be falsifiable at a date — either a terminal fact, or a transient state stamped
as of <date>. Write "approved 2026-07-28", or "awaiting approval as of 2026-09-06" — never a bare "sign-off pending". A pending-claim is false the moment the thing happens and nothing forces anyone back to it; a dated fact stays true and merely becomes older. Three annotations in this file had rotted this way (#2236's sign-off, and the blocked-on claims on #615 and #623 — the migration they cited closed 2026-04-17). - A section whose column is a link needs something to link to. That is why HLD pending and HLD in progress are separate, and it is the only difference between them; every HLD in the in-progress table may perfectly well be approved.
Versioning Policy
- Master PRD uses the 2.x track (history: 1.x pre-2026-04-11; 2.0 major rewrite → 2.3 current)
- Each sub-PRD has its own version track starting at 1.0
- Bumps: major = conceptual rewrite; minor = new requirement; patch = typos/clarifications
How to Check Current Versions
Every PRD starts with **Version**: or ## Version in its body. The registry above is the single source of truth. If discrepancy found, GitHub issue body + this registry are authoritative over any standalone markdown file.
Restructure Notes (2026-04-16)
Prior to this date, scope was split between:
docs/UpSquad_Complete_PRD.md(v1.8) — an ~500-item priority-structured PRD- GitHub issue #1 (v2.2) — an org-model-focused PRD with scope creep into P8/P10/P11/pricing/dashboard/competency
The 2026-04-16 restructure:
- Designated GitHub issue #1 as the Master PRD (v2.3). Its body is the canonical master.
- Extracted six component sub-PRDs (#549–#554) carrying detailed requirements that had accumulated in #1.
- Kept existing delivered sub-PRDs (#2, #79, #93, #231, #348, #380, #425) as-is — they already had the right scope.
- Bumped
docs/UpSquad_Complete_PRD.mdto v1.9 with a changelog entry, a top-of-file SUB-PRDs section, and status that points to this registry. The historical priority sections remain as archive context. - Created this registry as the canonical index.
Going forward, any gap or new requirement should be evaluated against sub-PRDs first; new sub-PRDs are created when a coherent new scope emerges.