Repository navigation
fix(arckit-ca): name SOIA correctly and run the business case before ca-pspc (#949) - #967
Merged
Merged
Conversation
…ca-pspc (#949) SOIA. The ca-itsg-33 guide called the SOIA input a "Statement of Initial Authority". The registered SOIA artefact is the Security of Information Act handling plan (R.S.C. 1985, c. O-5; s.8 defines special operational information), as the ca-soia command, template and the doc-type registry already say. The guide now names it that way. Source: https://laws-lois.justice.gc.ca/eng/acts/O-5/ ca-pspc ordering. The command both read the SOBC and handed off to it; the guide said run it after the business case; the recipe ran the business case after it. One order now: business case first. The TBS Directive on the Management of Projects and Programmes requires every project to be supported by a business case (D.1), and the project brief reports the business case's comparison of options (E.2.4), the baseline of the recommended option (E.2.5) and then the procurement strategy (E.2.7); the business case is revalidated at each gate (4.2.19). - command: the sobc handoff is removed; the SOBC input says the strategy is written for the option the business case recommends - guide: the sobc handoff bullet is removed; "When to run" cites the Directive and says to revisit the business case at the next gate - recipe: SOBC deps [REQ, STKE, RISK]; CA_PSPC deps add SOBC - DEPENDENCY-MATRIX handoff row and Canada chains, WORKFLOW-DIAGRAMS 7a/7b updated to the recipe's new order Source: https://www.tbs-sct.canada.ca/pol/doc-eng.aspx?id=32594 REQ alongside STKE. The recipe ran requirements in the same wave as stakeholders, but /arckit:requirements lists the stakeholder analysis as MANDATORY. REQ now depends on STKE (waves: STKE 2, REQ 3). Guide/command contradictions found in the overlay read-through: - ca-itsg-33 and ca-cloud-residency guides listed DR-* requirements as the per-element sensitivity source; both commands read the DATA artefact (data model) for it. Guides now list the data model, and the cloud-residency guide adds the PIA input the command reads. - ca-soia guide listed a PIA input the command never reads (nor the recipe or the matrix); the row is removed. - DEPENDENCY-MATRIX (both copies) and commands.html listed fr-dr (France's Diffusion Restreinte) as a ca-itsg-33 input; the command reads the data model. ca-itsg-33 and ca-cloud-residency rows now show data-model at R. - recipe header described ca-pspc as "ICV" (the UAE In-Country Value programme); it now says Indigenous procurement. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 18, 2026
MarkkuPekkarinen
pushed a commit
to MarkkuPekkarinen/arc-kit
that referenced
this pull request
Oct 18, 2026
/arckit:requirements reads the stakeholder analysis and warns when it is missing, but all four core recipes (uk-saas, uk-mod-sovereign, uk-nhs-clinical-safety, uk-fs-payments) and most overlay recipes ran REQ and STKE in the same wave off PRIN, so a bulk build always wrote the requirements without the stakeholder analysis. - REQ now depends on STKE in the four core recipes and in the au-energy, us-federal, uae-agentic-transformation and uae-federal-ai recipes. Canada was fixed in tractorjuice#967; agent-architecture, au-federal, oaa-full, togaf-adm-full and togaf-agent-full are being fixed in their own tractorjuice#949 overlay PRs. - check_recipes.py gains ORDER_RULES (STKE before REQ, transitive deps count) and fails a recipe that breaks it. The five recipes whose fix is in flight sit in ORDER_RULES_PENDING and only warn; empty that set once those PRs merge. - tests/plugin/test_recipe_order_rules.py probes the rule end to end: same wave fails, a direct or transitive dependency passes. - sobc: "Before: /arckit:requirements" contradicted every recipe, which build SOBC after REQ and RISK. It is now "Usually before", and says existing requirements are read as the OPTIONAL input they already are. Co-Authored-By: Claude Opus 5.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.
Part of #949.
This is the Canada (
arckit-ca) part of #949. Each disputed fact was checked against the primary source. The command, guide, recipe and dependency docs now agree.Decisions
ca-itsg-33guide called it a "Statement of Initial Authority".ca-soiacommand, its template anddoc-types.mjsalready say. Only the guide was wrong; no other file used the "Initial Authority" name.sobchandoff is removed from the command and the guide. The command's SOBC input now says the strategy is written for the option the business case recommends. The guide's "When to run" cites the Directive and says to revisit the business case at the next gate if the strategy moves the cost or the route. In the recipe,SOBCdeps are[REQ, STKE, RISK]andCA_PSPCdeps are[REQ, SOBC, CA_ITSG, CA_CRES]./arckit:requirementslists STKE as MANDATORY ("warn if missing"), while/arckit:stakeholdersreads REQ only as context.plugins/arckit-claude/commands/requirements.mdstep 2Other guide/command contradictions fixed (clear-cut)
ca-itsg-33andca-cloud-residencyguides. Both guides named theDR-*requirements as the source of per-element sensitivity. Both commands read the data model (DATA) for it. fix: overlay commands, templates and guides name registered doc-type codes (#949) #964 changed the commands to DATA and the guides toDR-*, so the two drifted apart. The guides now list the data model. Theca-cloud-residencyguide also gains the PIA input that its command reads.ca-soiaguide. It listed a PIA input that the command never reads. The recipe and the dependency matrix leave it out too, so the row is removed.docs/and plugin copies) anddocs/commands.html. These listedfr-dr(France's Diffusion Restreinte command) as a recommended input toca-itsg-33, which contradicted the matrix's own note that DR is not shown. The rows forca-itsg-33andca-cloud-residencynow showdata-modelat R, matching the commands' unmarked DATA read.ca-pspcas "ICV", which is the UAE In-Country Value programme. It now says Indigenous procurement.Docs updated to match the new recipe order
docs/WORKFLOW-DIAGRAMS.md7a and 7b addstakeholdersbetween principles and requirements, and runsobcbeforeca-pspc. These diagrams state that they show the recipe's run order.docs/DEPENDENCY-MATRIX.md: in the 2026-05-04 Canada entry, theca-pspc → sobchandoff row is removed and both canonical chains are re-ordered.Files changed
plugins/arckit-ca/commands/ca-pspc.mdplugins/arckit-ca/recipes/ca-federal-fitaa.yamldocs/guides/ca-itsg-33.md,ca-pspc.md,ca-soia.md,ca-cloud-residency.md. Their plugin copies were regenerated bycheck-guide-parity.py --sync.docs/DEPENDENCY-MATRIX.md,plugins/arckit-claude/docs/DEPENDENCY-MATRIX.md,docs/commands.html,docs/WORKFLOW-DIAGRAMS.mdplugins/arckit-claude/plugins/ca/, regenerated bysync-claude-plugin-layout.pyNo template changes were needed. The
ca-pspctemplate already reads the SOBC affordability envelope, which fits the business-case-first order.Judgement calls left open
skills/arckit-build/recipes/and the au, us, uae, togaf, oaa, agent-architecture and au-energy recipes. This PR changes only the Canada recipe. Coresobc.mdalso says to run it "Before:/arckit:requirements", which does not match the core recipes, where SOBC runs after REQ. Both belong in a core follow-up.ca-soia → ca-itsg-33,ca-cloud-residency → ca-itsg-33, andca-atip/ca-aia/ca-ocap → ca-pia. Each one hands off to a command it also reads as a prerequisite, so it works as a "revisit" cross-reference. None of them contradicts its guide or the recipe the wayca-pspc → sobcdid.ca-chartervsca-fitaaordering. Theca-charterguide says Charter §2 analysis is "unconditional after/arckit:ca-fitaa" and "typically after the PIA". The recipe deliberately runsca-charterfirst, because it informs the FITAA, PIA and AIA designs, andca-fitaahands off toca-charter. The guide's wording can be read as "mandatory once FITAA applies", so it was not changed. A Canadian domain reviewer should choose.ca-soiaguide's line that the Act "itself is comparatively stable" may be out of date. That line was not changed.Checks
scripts/check_recipes.py: OK, 15 recipes validatedscripts/check-doc-type-registry.py: OK, 408 recipe targets agree with their command's declared doc-typepytest: 2420 passed, 228 skippednode --test tests/plugin/*.test.mjs tests/plugin/test_*.mjs tests/certification/*.test.mjs: 653 passed, 0 failedmarkdownlint-cli2@0.18.1 "**/*.md": 0 errorscheck-guide-parity.py --sync→sync-shared-assets.py(0 files) →sync-claude-plugin-layout.py→converter.py🤖 Generated with Claude Code