This repository was archived by the owner on May 29, 2026. It is now read-only.
feat(openspec): split quorum-declarative-migration into 3-spec chain (ADR-032)#150
Merged
Merged
Conversation
…(ADR-032) Replaces the original quorum-declarative-migration spec (PR #146, issue #148) which was kind:mixed and burned the full 200-turn Hydra budget on 2026-05-07 without producing a PR. ADR-032 mandates the chain pattern. Chain shape: 1. quorum-schema-declaration (kind: config, depends_on: []) — declare 2 aggregations + 2 calculations on Meeting + integration test + cross-schema engine spike. Lands first; no consumer changes; existing QuorumService keeps working. 2. quorum-guard-rewrite (kind: code, depends_on: [#1]) — MeetingTransitionGuard reads meeting.quorumMet. Drop QuorumService dep from guard ctor. Update tests. ~30 LOC change. 3. quorum-service-deletion (kind: code, depends_on: [#2]) — Delete QuorumService.php + DI line + its test. Verify zero callers remain. ~10 LOC removed. Hydra's existing supervisor `depends_on` mechanism enforces ordering automatically — each spec only builds after its predecessor's issue is closed (merged). This is the empirical test for ADR-032. Spec 1 (config-only, default budget) is the canonical Hydra-friendly shape; if it lands cleanly, ADR-032 is empirically validated. Specs 2+3 follow as small kind:code specs each well within the 200-turn budget. Original quorum-declarative-migration change directory left in place for now (will close issue #148 as superseded once these chain specs merge).
Contributor
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ❌ | ||||
| stylelint | ❌ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ❌ | ❌ | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-07 19:37 UTC
Download the full PDF report from the workflow artifacts.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Replaces the original quorum-declarative-migration spec which was
kind: mixedper ADR-032 and burned the full 200-turn Hydra builder budget on 2026-05-07 without producing a PR.ADR-032 (hydra PR #230) mandates the chain pattern.
Chain shape
quorum-schema-declaration—kind: config, nodepends_on. Declare 2 aggregations + 2 calculations on Meeting + integration test + cross-schema engine spike. Lands first.quorum-guard-rewrite—kind: code(small),depends_on: [quorum-schema-declaration].MeetingTransitionGuardreadsmeeting.quorumMet. Drop QuorumService dep from guard ctor. Update tests. ~30 LOC change.quorum-service-deletion—kind: code(small),depends_on: [quorum-guard-rewrite]. DeleteQuorumService.php+ DI line + its test. Verify zero callers remain. ~10 LOC removed.Hydra's existing
hydra.json.depends_onmechanism enforces ordering automatically — each spec only builds after its predecessor's issue is closed (merged).Empirical test framing
Spec 1 (config-only, default builder budget) is the canonical Hydra-friendly shape per ADR-032. If it lands cleanly through the pipeline in <80 turns and produces a tight PR, ADR-032 is empirically validated. Specs 2 + 3 follow as small
kind: codespecs each well within the 200-turn budget.This makes spec 1 the actual Stage A retest target — same intent as the original mixed quorum spec, but right-sized.
Followups
quorum-declarative-migration) gets closed as superseded once chain spec 3 merges (or sooner if it's clear the original is being abandoned for the chain).openspec/changes/quorum-declarative-migration/directory stays in tree for now; archived viaopsx-archiveafter the chain completes.Hydra dependencies
This PR depends on hydra PR #230 merging + container rebuild — the new
opsx-ffrules and ADR-032 itself need to be in the builder + reviewer images for the chain semantics to be fully recognised. For the bare empirical test (running spec 1 through default Hydra) the new ADR isn't strictly required (default budget + simple shape is what we're testing); the new opsx-ff prompts only kick in when we generate NEW specs.Notes
Markdown only, no code paths affected (one set of new test fixtures will land when spec 1 actually runs through Hydra).