Add scoping to ProjectStatus; exploring rollup picks it up - #17
Merged
Conversation
Mirrors the 2026-07-24 amendment to ADR 0001 in ui-insight/AISPEG: the ladder jumped from `idea` (no committed owner/sponsor) straight to `approved` (a go decision made), with no honest rung for a project that has named humans engaged and feasibility work underway but no formal approval. That is the state the portfolio owner declined to call `approved` for the Financial Planning Suite, and the state the Unified Technology Request process names explicitly as Track C's "Feasibility & scoping" stage. `scoping` takes Display_Order 2, between idea and approved; the following entries renumber. It rolls up to the existing `Exploring` public stage — the stakeholder-facing signal "not yet being built" is unchanged — so PublicStage gains no new value, only a corrected rollup rule. Also sharpens `idea` now that scoping is first-class. Its rule read "no committed operationalOwner OR no committed iidsSponsor", which with scoping in place would let a project with one of the two engaged satisfy both codes. The verifier (lib/portfolio-verification.ts) treats having neither as idea and either one as scoping; the vocabulary now says the same. Verification rules transcribed from the verifier, not paraphrased. Version 2.1.0 → 2.2.0. Follows the `paused` precedent in #15. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ProfessorPolymorphic
added a commit
to ui-insight/AISPEG
that referenced
this pull request
Jul 27, 2026
… decided (#318) * Bump data-governance: `scoping` lands in the ProjectStatus vocabulary Closes the follow-up ADR 0001's 2026-07-24 amendment named and never did: the vendored iids-portfolio ProjectStatus vocabulary did not list `scoping`, while lib/portfolio.ts has used it since July and one project currently claims it. Nothing would have caught this. The governance drift workflow does not run on lib/portfolio.ts changes, so the typed union and the vendored registry can diverge in silence — which is the failure mode the catalog exists to prevent. Upstream ui-insight/data-governance#17 adds `scoping` at Display_Order 2 between idea and approved, corrects the Exploring rollup to include it, and sharpens `idea` (which read "no owner OR no sponsor" and would now overlap scoping — the verifier means neither). This bumps the submodule pointer and regenerates the typed catalog from it. Regenerated, not hand-edited, per Agent Rule 13. npm run build, npm run lint, and npm run verify:portfolio all pass (29 projects, 0 errors, 2 pre-existing stale-commit-date warnings). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * Scope ADR 0005's status to what was actually decided The header read `Proposed` / `Deciders: Pending` three days after Phase 1 shipped, so the index was telling readers that a decision embodied in live tables, live code, and a public surface had not been made yet. The fix is not a flat flip to Accepted. This ADR does two different things: it designs a registry this repo owns and can build alone, and it proposes a division of institutional labour that binds other offices — TDX as the workflow system of record, a shared prioritization model, OIT's ownership of the approved-tools list. The first was decided and built. The second is still a proposal, and nothing in this repo can accept it on the working group's behalf. Marking the whole ADR Accepted would assert a ratification that hasn't happened, in the audit trail itself. So the status is split, with a dated amendment recording the split (append-only, per this directory's own lifecycle rules) and an inventory of what exists: Phase 1's five tables plus lib/utr.ts, lib/requests.ts, Migration 019's survey candidates, and /portfolio/pipeline are Accepted; the TDX boundary, prioritization model, and approved-tools ownership stay Proposed; Phases 2-4 are unbuilt, and the amendment names the specific tables and modules that don't exist so the gap is checkable rather than implied. Deciders now names Barrie Robison for the part that was decided, rather than "Pending". The format section of docs/adr/README.md gains a line permitting a scoped status for this case, since ADR 0005 is now the precedent — with the constraint that a header must never imply a ratification that hasn't happened. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mirrors the 2026-07-24 amendment to ADR 0001 in
ui-insight/AISPEG. That amendment named this exact follow-up — "addscopingto the vendorediids-portfolioProjectStatus vocabulary upstream" — and it was never done. A documentation audit of the AISPEG repo surfaced it: one portfolio project currently claimsscoping, a code this registry doesn't know about.Worth noting it would not have been caught automatically. The governance drift CI doesn't run on
lib/portfolio.tschanges, so the typed union and this vocabulary can diverge silently.The gap being closed
The ladder jumped from
idea(no committed owner/sponsor) straight toapproved(a go decision made). Nothing sat between them for a project with named humans engaged and feasibility work underway but no formal approval — the state the portfolio owner declined to callapprovedfor the Financial Planning Suite (Axiom replacement), and the state the Unified Technology Request process names explicitly as Track C's "Feasibility & scoping" stage.Changes
scopingat Display_Order 2, betweenideaandapproved; following entries renumber 3→12.Exploringrollup rule now readsidea, scoping, approved. No new PublicStage value — the stakeholder-facing signal "not yet being built" is unchanged.ideasharpened. Its rule read "No committed operationalOwner OR no committed iidsSponsor", which withscopingin place would let a project with exactly one of the two satisfy both codes.lib/portfolio-verification.tstreats neither asideaand either asscoping; the vocabulary now says the same.Verification rules were transcribed from the verifier rather than paraphrased, so the registry and the enforcing code read identically.
Version 2.1.0 → 2.2.0. Follows the
pausedprecedent in #15.After this merges
ui-insight/AISPEGneeds a submodule pointer bump plus regeneratedlib/governance/vocabularies.ts. That PR is prepared and waiting on this one.🤖 Generated with Claude Code