feat(rip): add R5.3 (vervroegde) Ingebruikname / Oplevering — the ladder is complete - #72
Merged
Conversation
…tate R5_3 (vervroegde) Ingebruikname / Oplevering, dated 3-9-2026, is the design that was missing when the rest of the ladder was modelled. R5.3 was the one phase left unmodelled for want of it. The sheet closes the gap exactly where the surrounding phases said it would: it enters from R5.2 "Werk gereed?" and leaves either to R5.4 Oplevering en onderhoudsperiode when the oplevering is agreed, or back to R5.2 "Start werk buiten" when restpunten remain. Three lanes, seven activities, and an early split on oplevering versus (vervroegde) ingebruikname that runs two near-mirror schouw paths — internal schouw, then one with the aannemer and toezichthouder, then a vaststellen step whose outcome decides the exit. Only the reference PDF is added here. No bundle is generated from it yet. Also ignores .semgrep/, which Semgrep Guardian writes wherever it is invoked — so a guardian.yml and lock appeared both at the repo root and under examples/organizations/flevoland/. Local tooling state, not project config, and ignoring the bare directory name catches it at any depth.
…r Flevoland
Models R5_3 (vervroegde) Ingebruikname / Oplevering (sheet dated 3-9-2026) as
RipR53Process: 15 nodes, 14 flows, 3 lanes, 7 forms, 6 documents. This closes
the last gap in the Flevoland ladder — R5.3 was the one phase left unmodelled
for want of a design, so R5.2 and R5.4 were built to step over it. The sheet
lands exactly where those two said it would.
The shape is a single early choice, oplevering or (vervroegde) ingebruikname,
opening two near-mirror paths that never rejoin:
interne schouw -> schouw met aannemer en tzh -> vaststellen -> exit
They differ only in what they are called, which sjabloon they use, and where
they leave to. There is no loop anywhere in the phase: a rejected schouw sends
its restpunten back to R5.2 rather than round again here.
FOUR END EVENTS, THREE RETURNING TO R5.2, deliberately not merged — the opposite
of the call made in R6.1, and the difference is the point. R6.1's two "Einde
proces" markers meant the same completion, so collapsing them lost nothing. Here
the three R5.2 returns mean three different things: oplevering rejected with
restpunten to execute; vervroegde ingebruikname agreed, so part of the areaal
goes into use while the work carries on; and ingebruikname rejected, with the
restpunten to be executed by the ON. Same destination, different reasons, and
the reason is what the Faseladder has to show — merged, the phase would report
only "back to R5.2".
No new roles. All three lanes are covered by slugs already in the ladder, so it
stays at 34 distinct candidate groups and nothing changes for the RollenSection
question still with the business owners.
Faseladder contract holds: key RipR53Process, formRefBinding="deployment" on all
seven user tasks with no "latest", no businessKey, no municipality variable, no
external-task topics, no boardOwner in the bundle, and no start event carrying a
form.
Verified on the local engine after deployment: RipR53Process v1, tenant
flevoland, 14 of 14 resources matching disk file-for-file, boardOwner=infra-board
and ronl:organization=flevoland injected at deploy. All twelve phases now
deployed and contract-clean. Both validators pass on every bundle in the ladder.
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.
R5.3 was the last gap in the Flevoland RIP ladder. It had no design when the rest was modelled, so R5.2 and R5.4 were deliberately built to step over it. The sheet arrived dated 3-9-2026, and it lands exactly where those two said it would.
Two commits: the reference sheet (plus a
.gitignoreentry), then the bundle.Shape
A single early choice — oplevering, or (vervroegde) ingebruikname — opening two near-mirror paths that never rejoin:
They differ only in what they're called, which sjabloon they use, and where they leave to. No loop anywhere in the phase: a rejected schouw sends its restpunten back to R5.2 rather than round again here.
Four end events, three returning to R5.2 — deliberately not merged
This is the opposite of the call made in R6.1, and the difference is the point. R6.1's two "Einde proces" markers meant the same completion, so collapsing them lost nothing. Here the three R5.2 returns mean three different things:
Same destination, different reasons — and the reason is what the Faseladder has to show. Merged, the phase would report only "back to R5.2".
Also in here
.semgrep/is gitignored. Semgrep Guardian writes aguardian.ymland lock wherever it's invoked, so copies appeared at the repo root and underexamples/organizations/flevoland/. Local tooling state, not project config; the bare directory name catches it at any depth.Verification
Faseladder contract holds — key
RipR53Process,formRefBinding="deployment"on all seven user tasks with no"latest", nobusinessKey, nomunicipalityvariable, no external-task topics, noboardOwnerin the bundle, no start event carrying a form.Both validators pass on every bundle in the ladder. No duplicate form or document ids across all twelve phases.
Already deployed and verified on the local engine:
RipR53Processv1, tenantflevoland, 14 of 14 resources matching disk file-for-file,boardOwner=infra-boardandronl:organization=flevolandinjected at deploy. All twelve phases now deployed and contract-clean.Note for the Faseladder side
RBA's
skippedPhasesBeforecurrently surfaces R5.3 as handled outside the tool, and R5.4's precondition resolves its predecessor to R5.2. Both were correct until now; both need revisiting once R5.3 is adoptable. That session is being briefed separately.🤖 Generated with Claude Code