Repository navigation
docs(spec): status citations point at the specs that hold the requirements - #3919
Merged
Merged
Conversation
Decision 224. The case type delete check, drc-004 and drc-007 let a request through when their lookup failed. They now refuse with 503 check-not-completed, name the rule, and log the rule and the object. drc-003 gives the same answer instead of claiming a duplicate, and the controller's relation check before a document delete (drc-008a) follows. Two sites leave the catch-return-null list, ceiling 263 to 261.
… facades method-decomposition slice 8h. The engine couples to 18 classes against 13 and takes 14 constructor arguments. The design gives it one facade over what a case declares and one over what a move writes; the engine keeps the order of the checks.
Characterisation before the StatusTransitionService split (method-decomposition slice 8h), green on the single class: the order of the five refusals, the conflict check, the one save of a closing move with the version it read, the timer after the save, the record that cannot be written back, the free-form refusals and the shape of the available transitions. Seven mutations of the engine turn it red.
…fourteen collaborators method-decomposition slice 8h. StatusTransitionService coupled to 18 classes against 13 and took 14 constructor arguments. Transitions/CaseDeclarations reads what a case declares about its status and its moves, and Transitions/CaseMoveLedger holds what a move writes. The engine keeps the decision and the order of the checks, takes nine arguments and couples to 12 classes. Both suppressions are gone; phpmd.suppressWarnings 183 to 181. The public methods and their answers are unchanged. The characterisation test and the five existing engine tests are green with only their constructor call changed.
…ceiling 256 to 254
…26; phpmd.suppressWarnings 182 to 180
…ments The change what-a-status-declares was archived on 7 October. 206 @SPEC lines in 42 files still cited its path under openspec/changes/, which no longer exists. They now cite openspec/specs/status-transition-engine/spec.md (REQ-SDC-01 to 05) and openspec/specs/doorlooptijd-dashboard/spec.md (REQ-SDW-01), where the requirements live. Two lines that became a repeat of the line above them are removed.
rubenvdlinde
requested review from
Rem-Dam,
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48 and
rjzondervan
as code owners
October 14, 2026 21:17
This was referenced Oct 14, 2026
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.
The change
what-a-status-declareswas archived on 7 October. 206@speclines in 42 files (lib, src, tests) still cited it underopenspec/changes/what-a-status-declares/specs/..., a path that no longer exists. They now cite the specs that hold the requirements:openspec/specs/status-transition-engine/spec.md(REQ-SDC-01 to 05), 177 linesopenspec/specs/doorlooptijd-dashboard/spec.md(REQ-SDW-01), 29 linesTwo lines became a repeat of the line above them and were removed (
SchemaAnnotationReconciler,caseLifecycleHelpers.js). Comments only: no code, schema or l10n change.Stacked on #3858 (which touches
StatusTransitionService): land after it, before the Q-dossiq-L11-3 PR.Verified
@speclines only (checked by reducing every changed line to its shape), andphp -lpasses on the 33 PHP files.check_spec_anchors.py) on every file this stack touches: no finding. Control: a made-up change path and a made-up anchor are both reported. Note that gate 46 already resolved the old paths through its archive index, so development was not red on them. The repoint is for the reader, who otherwise follows a path that is not there.Verified (once, on the stack top 3bfc0b4, which holds #3858 and the four PRs above it)
Every
composer check:strictstage once, one at a time in the lane's check worktree (exit codes indq-l11-logs/r7/s31.rc):BooleanArgumentFlagfindings inlib/Service/Termijn/TermLetters.php(401, 425) that development carries since fix(letters): every date in a letter to the applicant reads the same way #3884/fix(portal): the Woo request form reads Dutch dates and names refused fields in Dutch #3895. Inherited.--no-coverage: 8,676 tests, exit 0 (7 skipped, 1 warning). A first run found 3 reds of this stack (BrcCrossRegisterSyncTeststill read the old warning lines), fixed in 28e4ad6, then the run above.ZgwBusinessRulesService, the throw infindBySchemaKey, the throw infieldPairExists, the not-found branch, the not-allowed branch and the null check inhandleDestroyeach turn their tests red.@covers/@usesof every touched test were checked by hand (each class a test can now execute is listed). CI is the check for that.src/manifest.json, which this stack does not touch; 23, 43, 51, 55, 104, 107). Gates 5, 13, 16, 25 and 46 pass.openspec validate guards-refuse-when-unsureandmethod-decomposition: valid.phpmd.suppressWarnings187 measured against 182) andeslint.inlineDisables15 against 14.No register change, so no
info.versionbump.