arckit-cli 6.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- arckit_cli/__init__.py +1120 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/memory/sessions.md +293 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/_partials/RENDERING.md +22 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/_partials/document-control-uae.md +20 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/_partials/document-control-uk.md +16 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/adm-preliminary-template.md +135 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/adr-template.md +588 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/agent-design-template.md +390 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/agent-governance-template.md +90 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/agent-integration-template.md +159 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/agent-inventory-template.md +108 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/agent-maturity-template.md +388 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/agent-security-template.md +213 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/analysis-report-template.md +323 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/application-inventory-template.md +221 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/architecture-board-template.md +194 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/architecture-change-template.md +205 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/architecture-diagram-template.md +610 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/architecture-principles-template.md +632 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/architecture-repository-template.md +107 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/architecture-strategy-template.md +666 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/at-bvergg-template.md +252 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/at-dsgvo-template.md +354 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/at-nisg-template.md +236 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-aescsf-template.md +189 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-ai-assurance-template.md +243 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-disp-attestation-template.md +297 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-dss-template.md +302 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-e8-posture-template.md +377 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-energy-compliance-template.md +189 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-ism-controls-template.md +462 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-ndb-playbook-template.md +288 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-ot-security-template.md +204 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-pia-template.md +394 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-pspf-template.md +380 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/au-soci-cirmp-template.md +206 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/aws-research-template.md +605 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/azure-research-template.md +559 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/backlog-template.md +465 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-aia-template.md +206 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-atip-template.md +192 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-charter-template.md +190 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-cloud-residency-template.md +173 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-fitaa-template.md +156 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-gc-digital-standards-template.md +208 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-itsg-33-template.md +228 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-ocap-template.md +205 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-ola-template.md +171 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-pia-template.md +193 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-pspc-template.md +214 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ca-soia-template.md +219 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/capability-map-template.md +125 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/competitors-template.md +113 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/conformance-assessment-template.md +507 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/data-mesh-contract-template.md +851 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/data-model-template.md +1043 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/data-source-profile-template.md +80 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/datascout-template.md +546 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/devops-template.md +961 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/dfd-template.md +161 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/dld-review-template.md +427 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/dos-requirements-template.md +506 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/dpia-template.md +1200 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/eu-ai-act-template.md +227 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/eu-cra-template.md +176 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/eu-data-act-template.md +175 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/eu-dora-template.md +197 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/eu-dsa-template.md +183 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/eu-nis2-template.md +196 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/eu-rgpd-template.md +198 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/evaluation-criteria-template.md +719 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/finops-template.md +662 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-algorithme-public-template.md +162 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-anssi-carto-template.md +196 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-anssi-template.md +190 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-code-reuse-template.md +190 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-dinum-template.md +195 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-dr-template.md +187 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-ebios-template.md +209 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-irn-template.md +311 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-marche-public-template.md +178 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-pssi-template.md +270 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-rgpd-template.md +195 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/fr-secnumcloud-template.md +188 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/framework-overview-template.md +247 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/gap-analysis-template.md +198 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/gcloud-clarify-template.md +340 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/gcloud-requirements-template.md +370 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/gcp-research-template.md +585 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/glossary-template.md +117 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/gov-code-search-template.md +213 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/gov-landscape-template.md +271 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/gov-reuse-template.md +214 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/grants-template.md +131 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/hld-review-template.md +760 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/jsp-936-template.md +1394 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/maturity-model-template.md +297 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/mlops-template.md +720 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/mod-secure-by-design-template.md +784 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/operationalize-template.md +1016 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/pages-template.html +5121 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/platform-design-template.md +1610 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/presentation-template.md +270 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/principles-compliance-assessment-template.md +389 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/project-plan-template.md +421 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/rationalization-template.md +208 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/requirements-template.md +1026 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/research-findings-template.md +939 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/risk-register-template.md +883 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/roadmap-template.md +787 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/service-assessment-prep-template.md +448 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/servicenow-design-template.md +273 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/sobc-template.md +1127 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/sow-template.md +785 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/stakeholder-drivers-template.md +493 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/story-template.md +889 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/tcop-review-template.md +593 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/tech-note-template.md +59 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/tenders-template.md +124 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/traceability-matrix-template.md +360 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/transition-architecture-template.md +286 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-ai-autonomy-tier-template.md +97 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-ai-charter-template.md +81 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-classification-template.md +86 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-cloud-residency-template.md +136 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-data-sharing-template.md +105 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-digital-records-template.md +97 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-ias-template.md +109 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-pdpl-template.md +105 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-priorities-alignment-template.md +99 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-procurement-template.md +115 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-uaepass-template.md +129 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uae-zero-bureaucracy-template.md +85 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-fs-consumer-duty-board-report-template.md +49 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-fs-consumer-duty-template.md +362 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-fs-ctp-dependency-register-template.md +24 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-fs-ctp-dependency-template.md +321 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-fs-safeguarding-reconciliation-template.md +77 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-fs-safeguarding-template.md +348 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-fs-sca-rts-exemption-matrix-template.md +47 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-fs-sca-rts-template.md +273 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-gov-ai-playbook-template.md +942 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-gov-atrs-template.md +1087 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-mdr-classification-template.md +307 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dcb0129-case-template.md +214 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dcb0129-hazard-template.md +217 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dcb0129-safety-template.md +78 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dcb0129-template.md +13 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dcb0160-deployment-case-template.md +207 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dcb0160-deployment-hazard-template.md +290 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dcb0160-deployment-safety-template.md +81 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dcb0160-template.md +13 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/uk-nhs-dtac-template.md +341 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/ukgov-secure-by-design-template.md +1031 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-ai-impact-template.md +212 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-ai-rmf-template.md +232 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-fedramp-readiness-template.md +209 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-fedramp-ssp-template.md +352 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-fisma-categorization-template.md +145 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-icam-template.md +216 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-nist-800-53-template.md +222 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-privacy-pia-template.md +191 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-sbom-eo-14028-template.md +253 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/us-zero-trust-template.md +234 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/vendor-profile-template.md +88 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/vendor-scoring-template.md +332 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/wardley-climate-template.md +269 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/wardley-doctrine-template.md +299 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/wardley-gameplay-template.md +346 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/wardley-map-template.md +587 -0
- arckit_cli-6.1.1.data/data/share/arckit/.arckit/templates/wardley-value-chain-template.md +256 -0
- arckit_cli-6.1.1.data/data/share/arckit/CHANGELOG.md +3554 -0
- arckit_cli-6.1.1.data/data/share/arckit/VERSION +1 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/DEPENDENCY-MATRIX.md +929 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/README.md +322 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/WORKFLOW-DIAGRAMS.md +1088 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/adm-preliminary.md +72 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/adr.md +60 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/agent-design.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/agent-governance.md +61 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/agent-integration.md +59 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/agent-inventory.md +60 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/agent-maturity.md +84 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/agent-security.md +63 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ai-playbook.md +103 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/analyze.md +57 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/application-inventory.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/application-rationalization.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/architecture-board.md +60 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/architecture-change.md +73 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/architecture-repository.md +62 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/artifact-health.md +228 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/at-bvergg.md +86 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/at-dsgvo.md +75 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/at-nisg.md +94 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/atrs.md +98 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-aescsf.md +45 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-ai-assurance.md +84 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-disp-attestation.md +90 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-dss.md +76 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-e8-posture.md +73 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-energy-compliance.md +47 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-federal-overlay.md +199 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-ism-controls.md +78 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-ndb-playbook.md +80 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-ot-security.md +39 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-pia.md +72 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-pspf.md +81 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/au-soci-cirmp.md +40 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/autoresearch.md +334 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/aws-research.md +160 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/azure-research.md +157 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/backlog.md +58 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/build.md +132 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/business-capability-map.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/business-case.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/c4-layout-science.md +280 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-aia.md +81 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-atip.md +79 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-charter.md +81 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-cloud-residency.md +91 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-fitaa.md +81 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-gc-digital-standards.md +93 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-itsg-33.md +80 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-ocap.md +91 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-ola.md +80 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-pia.md +83 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-pspc.md +96 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/ca-soia.md +87 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/codes-of-practice.md +154 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/competitors.md +202 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/conformance.md +153 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/create.md +61 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/custom-commands.md +236 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/customize.md +108 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/data-mesh-contract.md +239 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/data-model.md +69 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/data-quality-framework.md +118 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/datascout.md +162 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/declaration.md +59 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/design-review.md +66 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/devops.md +96 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/dfd.md +187 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/diagram.md +118 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/dld-review.md +102 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/dos.md +109 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/dpia.md +80 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/enterprise-scale.md +260 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/eu-ai-act.md +82 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/eu-cra.md +90 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/eu-data-act.md +85 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/eu-dora.md +83 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/eu-dsa.md +85 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/eu-nis2.md +82 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/eu-rgpd.md +76 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/evaluate.md +115 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/export-okf.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/finops.md +117 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-algorithme-public.md +86 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-anssi-carto.md +69 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-anssi.md +79 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-code-reuse.md +86 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-dinum.md +83 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-dr.md +88 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-ebios.md +84 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-irn.md +103 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-marche-public.md +94 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-pssi.md +87 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-rgpd.md +75 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/fr-secnumcloud.md +80 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/framework.md +234 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/gap-analysis.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/gcloud-clarify.md +108 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/gcloud-competitors.md +61 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/gcloud-search.md +106 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/gcp-research.md +169 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/glossary.md +190 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/gov-code-search.md +119 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/gov-landscape.md +114 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/gov-reuse.md +112 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/govs-007-security.md +93 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/grants.md +106 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/graph-report.md +77 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/health.md +234 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/hld-review.md +110 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/hooks.md +121 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/impact.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/import-okf.md +67 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/init.md +159 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/jsp-936.md +60 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/knowledge-compounding.md +140 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/maturity-model.md +186 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/mcp-servers.md +329 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/migration.md +333 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/mlops.md +126 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/mod-secure.md +124 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/national-data-strategy.md +115 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/navigator.md +86 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/operationalize.md +143 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/pages.md +227 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/pinecone-mcp.md +128 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/plan.md +66 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/platform-design.md +600 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/presentation.md +137 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/pricing.md +62 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/principles-compliance.md +63 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/principles.md +55 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/procurement.md +57 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/productivity.md +217 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/remote-control.md +151 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/requirements.md +61 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/research.md +65 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/review.md +61 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/risk-management.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/risk.md +132 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roadmap.md +58 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/README.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/business-analyst.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/business-architect.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/cdo.md +59 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/ciso.md +61 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/cto-cdio.md +59 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/data-architect.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/data-governance-manager.md +59 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/delivery-manager.md +63 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/devops-engineer.md +55 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/enterprise-architect.md +84 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/it-service-manager.md +55 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/network-architect.md +58 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/performance-analyst.md +67 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/product-manager.md +62 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/security-architect.md +78 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/service-owner.md +58 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/solution-architect.md +75 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/roles/technical-architect.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/score.md +91 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/sdd-lot1.md +61 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/sdd-lot2.md +62 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/sdd-lot3.md +62 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/search.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/secure.md +181 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/security-hooks.md +200 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/security.md +62 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/service-assessment.md +47 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/service-design.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/servicenow.md +152 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/session-memory.md +100 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/sobc.md +129 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/sow.md +125 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/stakeholder-analysis.md +51 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/stakeholders.md +138 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/start.md +276 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/story.md +61 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/strategy.md +211 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/submission-pack.md +72 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/supplier-profile.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/tcop.md +124 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/template-builder.md +125 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/tenders.md +193 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/testing-plugin-branches.md +79 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/traceability.md +58 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/transition-architecture.md +69 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/trello.md +139 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-ai-autonomy-tier.md +84 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-ai-charter.md +89 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-classification.md +73 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-cloud-residency.md +84 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-data-sharing.md +84 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-digital-records.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-ias.md +93 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-overlay-maintenance.md +154 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-overlay.md +208 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-pdpl.md +73 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-priorities-alignment.md +82 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-procurement.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-uaepass.md +83 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uae-zero-bureaucracy.md +80 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-fs-consumer-duty.md +178 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-fs-ctp-dependency.md +181 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-fs-payments-overlay.md +216 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-fs-safeguarding.md +176 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-fs-sca-rts.md +164 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-government/ai-playbook.md +56 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-government/algorithmic-transparency.md +44 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-government/digital-marketplace.md +55 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-government/secure-by-design.md +51 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-government/standards-map.md +108 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-government/technology-code-of-practice.md +63 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-mdr-classification.md +59 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-mod/secure-by-design.md +54 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-nhs-clinical-safety-overlay.md +214 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-nhs-dcb0129.md +64 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-nhs-dcb0160.md +62 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/uk-nhs-dtac.md +55 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/upgrading.md +130 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-ai-impact.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-ai-rmf.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-federal-overlay.md +111 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-fedramp-readiness.md +69 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-fedramp-ssp.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-fisma-categorization.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-icam.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-nist-800-53.md +70 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-privacy-pia.md +74 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-sbom-eo-14028.md +71 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/us-zero-trust.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/wardley-climate.md +122 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/wardley-doctrine.md +120 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/wardley-gameplay.md +123 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/wardley-value-chain.md +130 -0
- arckit_cli-6.1.1.data/data/share/arckit/docs/guides/wardley.md +173 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/.agents/plugins/marketplace.json +20 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/README.md +325 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/VERSION +1 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/docs/DEPENDENCY-MATRIX.md +616 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/arckit-codex-hook.mjs +1270 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/graph-inject.mjs +1497 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/graph-rollups.mjs +247 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/graph-utils.mjs +363 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/hook-utils.mjs +383 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/hooks.json +80 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/okf-frontmatter.mjs +279 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/project-context-builder.mjs +168 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-codex/hooks/sync-guides.mjs +1120 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-copilot/README.md +68 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-copilot/VERSION +1 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-copilot/docs/DEPENDENCY-MATRIX.md +616 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-opencode/LICENSE +21 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-opencode/README.md +65 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-opencode/VERSION +1 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-opencode/docs/DEPENDENCY-MATRIX.md +616 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-opencode/opencode.json +25 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-vibe/.mcp.json +63 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-vibe/LICENSE +26 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-vibe/README.md +407 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-vibe/VERSION +1 -0
- arckit_cli-6.1.1.data/data/share/arckit/extensions/arckit-vibe/vibe-config.toml +62 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/README.md +680 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/autoresearch/fixtures/000-global/ARC-000-PRIN-v1.0.md +120 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/autoresearch/fixtures/001-test-project/ARC-001-STKE-v1.0.md +100 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/autoresearch/fixtures/001-test-project/README.md +15 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/autoresearch/program-selfharness.md +748 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/autoresearch/program.md +269 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/bash/check-prerequisites.sh +250 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/bash/common.sh +359 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/bash/create-project.sh +408 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/bash/generate-document-id.sh +146 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/bash/list-projects.sh +359 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/bash/migrate-filenames.sh +553 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/bump-version.sh +293 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/check_doctype_collisions.py +30 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/check_recipes.py +94 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/check_references.py +144 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/convert_vibe_agents.py +198 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/convert_vibe_skills.py +499 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/converter.py +2002 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/create-sdg-repo.py +820 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/generate-arckit-architecture-hero.py +317 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/generate-arckit-hero.py +278 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/generate-release-notes.sh +112 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/managed-agents/README.md +105 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/managed-agents/arckit-agent.py +418 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/push-extensions.sh +424 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/python/apply_doc_control_marker.py +50 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/python/common.py +288 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/python/create-project.py +373 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/python/generate-document-id.py +96 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/python/list-projects.py +238 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/python/migrate_classification.py +94 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/render-brand-pngs.py +72 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/standardise-colon.py +128 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/sync-claude-plugin-layout.py +159 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/sync-shared-assets.py +132 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/tag-plugins.sh +65 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/tests/test-doc-types-dual-registration.mjs +57 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/tests/test-fde-templates.mjs +100 -0
- arckit_cli-6.1.1.data/data/share/arckit/scripts/tests/test-regime-registration.mjs +65 -0
- arckit_cli-6.1.1.dist-info/METADATA +1966 -0
- arckit_cli-6.1.1.dist-info/RECORD +482 -0
- arckit_cli-6.1.1.dist-info/WHEEL +4 -0
- arckit_cli-6.1.1.dist-info/entry_points.txt +2 -0
- arckit_cli-6.1.1.dist-info/licenses/LICENSE +26 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Mirror Claude overlay plugins into the local standalone repo layout."""
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import argparse
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
import shutil
|
|
9
|
+
import sys
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
13
|
+
CORE_PLUGIN_DIR = REPO_ROOT / "plugins" / "arckit-claude"
|
|
14
|
+
PLUGIN_LAYOUT = (
|
|
15
|
+
("plugins/arckit-uae", "plugins/uae"),
|
|
16
|
+
("plugins/arckit-fr", "plugins/fr"),
|
|
17
|
+
("plugins/arckit-ca", "plugins/ca"),
|
|
18
|
+
("plugins/arckit-eu", "plugins/eu"),
|
|
19
|
+
("plugins/arckit-at", "plugins/at"),
|
|
20
|
+
("plugins/arckit-au", "plugins/au"),
|
|
21
|
+
("plugins/arckit-au-energy", "plugins/au/energy"),
|
|
22
|
+
("plugins/arckit-us", "plugins/us"),
|
|
23
|
+
("plugins/arckit-uk-finance", "plugins/uk/finance"),
|
|
24
|
+
("plugins/arckit-uk-nhs", "plugins/uk/nhs"),
|
|
25
|
+
("plugins/arckit-fde", "plugins/fde"),
|
|
26
|
+
("plugins/arckit-uk-gcloud", "plugins/uk/gcloud"),
|
|
27
|
+
("plugins/arckit-togaf-adm", "plugins/togaf/adm"),
|
|
28
|
+
("plugins/arckit-agent-architecture", "plugins/agent/architecture"),
|
|
29
|
+
)
|
|
30
|
+
IGNORED_NAMES = {
|
|
31
|
+
".git",
|
|
32
|
+
"node_modules",
|
|
33
|
+
".npm",
|
|
34
|
+
".pnpm-store",
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def ignore_generated(_directory: str, names: list[str]) -> set[str]:
|
|
39
|
+
return {name for name in names if name in IGNORED_NAMES}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def copy_tree(source: Path, destination: Path) -> None:
|
|
43
|
+
if destination.exists():
|
|
44
|
+
shutil.rmtree(destination)
|
|
45
|
+
destination.parent.mkdir(parents=True, exist_ok=True)
|
|
46
|
+
shutil.copytree(source, destination, ignore=ignore_generated)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def expected_files() -> dict[Path, Path]:
|
|
50
|
+
expected: dict[Path, Path] = {}
|
|
51
|
+
|
|
52
|
+
for source_rel, destination_rel in PLUGIN_LAYOUT:
|
|
53
|
+
source = REPO_ROOT / source_rel
|
|
54
|
+
destination = CORE_PLUGIN_DIR / destination_rel
|
|
55
|
+
if not source.is_dir():
|
|
56
|
+
raise FileNotFoundError(f"Source plugin directory not found: {source_rel}")
|
|
57
|
+
|
|
58
|
+
for path in source.rglob("*"):
|
|
59
|
+
if not path.is_file() or any(part in IGNORED_NAMES for part in path.parts):
|
|
60
|
+
continue
|
|
61
|
+
relative = path.relative_to(source)
|
|
62
|
+
target = destination / relative
|
|
63
|
+
if target in expected:
|
|
64
|
+
previous = expected[target].relative_to(REPO_ROOT)
|
|
65
|
+
raise RuntimeError(
|
|
66
|
+
f"Duplicate Claude standalone target {target.relative_to(REPO_ROOT)} "
|
|
67
|
+
f"from {previous} and {path.relative_to(REPO_ROOT)}"
|
|
68
|
+
)
|
|
69
|
+
expected[target] = path
|
|
70
|
+
|
|
71
|
+
return expected
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def actual_files() -> set[Path]:
|
|
75
|
+
plugin_root = CORE_PLUGIN_DIR / "plugins"
|
|
76
|
+
if not plugin_root.exists():
|
|
77
|
+
return set()
|
|
78
|
+
return {
|
|
79
|
+
path
|
|
80
|
+
for path in plugin_root.rglob("*")
|
|
81
|
+
if path.is_file() and not any(part in IGNORED_NAMES for part in path.parts)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def check_layout() -> list[str]:
|
|
86
|
+
expected = expected_files()
|
|
87
|
+
actual = actual_files()
|
|
88
|
+
failures: list[str] = []
|
|
89
|
+
|
|
90
|
+
for missing in sorted(set(expected) - actual):
|
|
91
|
+
failures.append(f"missing: {missing.relative_to(REPO_ROOT)}")
|
|
92
|
+
|
|
93
|
+
for extra in sorted(actual - set(expected)):
|
|
94
|
+
failures.append(f"extra: {extra.relative_to(REPO_ROOT)}")
|
|
95
|
+
|
|
96
|
+
for target, source in sorted(expected.items()):
|
|
97
|
+
if target not in actual:
|
|
98
|
+
continue
|
|
99
|
+
if target.read_bytes() != source.read_bytes():
|
|
100
|
+
failures.append(
|
|
101
|
+
"changed: "
|
|
102
|
+
f"{target.relative_to(REPO_ROOT)} differs from {source.relative_to(REPO_ROOT)}"
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
return failures
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def sync_layout() -> int:
|
|
109
|
+
plugin_root = CORE_PLUGIN_DIR / "plugins"
|
|
110
|
+
if plugin_root.exists():
|
|
111
|
+
shutil.rmtree(plugin_root)
|
|
112
|
+
|
|
113
|
+
for source_rel, destination_rel in PLUGIN_LAYOUT:
|
|
114
|
+
source = REPO_ROOT / source_rel
|
|
115
|
+
destination = CORE_PLUGIN_DIR / destination_rel
|
|
116
|
+
if not source.is_dir():
|
|
117
|
+
print(f"Source plugin directory not found: {source_rel}", file=sys.stderr)
|
|
118
|
+
return 1
|
|
119
|
+
copy_tree(source, destination)
|
|
120
|
+
|
|
121
|
+
synced_count = len(expected_files())
|
|
122
|
+
print(
|
|
123
|
+
"Synced "
|
|
124
|
+
f"{synced_count} files into {plugin_root.relative_to(REPO_ROOT)}/"
|
|
125
|
+
)
|
|
126
|
+
return 0
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def main() -> int:
|
|
130
|
+
parser = argparse.ArgumentParser(
|
|
131
|
+
description=(
|
|
132
|
+
"Synchronize plugins/arckit-claude/plugins/... with the published "
|
|
133
|
+
"tractorjuice/arckit-claude standalone repository layout."
|
|
134
|
+
)
|
|
135
|
+
)
|
|
136
|
+
parser.add_argument(
|
|
137
|
+
"--check",
|
|
138
|
+
action="store_true",
|
|
139
|
+
help="verify the local standalone layout without modifying files",
|
|
140
|
+
)
|
|
141
|
+
args = parser.parse_args()
|
|
142
|
+
|
|
143
|
+
if args.check:
|
|
144
|
+
failures = check_layout()
|
|
145
|
+
if failures:
|
|
146
|
+
print("Claude standalone plugin layout is out of sync:", file=sys.stderr)
|
|
147
|
+
for failure in failures[:50]:
|
|
148
|
+
print(f" {failure}", file=sys.stderr)
|
|
149
|
+
if len(failures) > 50:
|
|
150
|
+
print(f" ... {len(failures) - 50} more", file=sys.stderr)
|
|
151
|
+
return 1
|
|
152
|
+
print("Claude standalone plugin layout is in sync")
|
|
153
|
+
return 0
|
|
154
|
+
|
|
155
|
+
return sync_layout()
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
if __name__ == "__main__":
|
|
159
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Sync shared template partials and references from plugins/arckit-claude/ (core) into
|
|
3
|
+
every community plugin tree.
|
|
4
|
+
|
|
5
|
+
Background: community-overlay commands reference partials and references via
|
|
6
|
+
`${CLAUDE_PLUGIN_ROOT}/templates/_partials/...` and `${CLAUDE_PLUGIN_ROOT}/
|
|
7
|
+
references/...`. `${CLAUDE_PLUGIN_ROOT}` resolves to each plugin's own root, so
|
|
8
|
+
those files must exist inside each community plugin tree — not just in core.
|
|
9
|
+
Closes #520.
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
|
|
13
|
+
scripts/sync-shared-assets.py # write copies
|
|
14
|
+
scripts/sync-shared-assets.py --check # exit 1 if any drift (CI guard)
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
import argparse
|
|
20
|
+
import filecmp
|
|
21
|
+
import shutil
|
|
22
|
+
import sys
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
26
|
+
CORE_PLUGIN = REPO_ROOT / "plugins" / "arckit-claude"
|
|
27
|
+
SHARED_DIRS = ("templates/_partials", "references")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# Plugins exempt from the shared-asset sync: the core plugin itself (the source
|
|
31
|
+
# of truth), and `arckit-fde` — a Claude-only tooling plugin (white-label FDE
|
|
32
|
+
# site generator) that has no governance commands and references none of the
|
|
33
|
+
# shared partials/references, so it must not carry them.
|
|
34
|
+
SYNC_EXEMPT_PLUGINS = {"arckit-claude", "arckit-fde"}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def discover_community_plugins() -> list[Path]:
|
|
38
|
+
"""Return every arckit-*/ directory with a Claude Code plugin manifest,
|
|
39
|
+
excluding the core arckit-claude plugin and any other sync-exempt plugin."""
|
|
40
|
+
return sorted(
|
|
41
|
+
p.parent.parent
|
|
42
|
+
for p in REPO_ROOT.glob("plugins/arckit-*/.claude-plugin/plugin.json")
|
|
43
|
+
if p.parent.parent.name not in SYNC_EXEMPT_PLUGINS
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def iter_shared_files() -> list[Path]:
|
|
48
|
+
"""Return every shared-asset file under the core plugin tree."""
|
|
49
|
+
files: list[Path] = []
|
|
50
|
+
for rel in SHARED_DIRS:
|
|
51
|
+
src_dir = CORE_PLUGIN / rel
|
|
52
|
+
if not src_dir.exists():
|
|
53
|
+
continue
|
|
54
|
+
files.extend(sorted(p for p in src_dir.rglob("*") if p.is_file()))
|
|
55
|
+
return files
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def relative_to_core(path: Path) -> Path:
|
|
59
|
+
return path.relative_to(CORE_PLUGIN)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def check(community_plugins: list[Path], shared: list[Path]) -> int:
|
|
63
|
+
drift: list[tuple[Path, str]] = [] # (path, reason)
|
|
64
|
+
for plugin in community_plugins:
|
|
65
|
+
for src in shared:
|
|
66
|
+
dst = plugin / relative_to_core(src)
|
|
67
|
+
if not dst.exists():
|
|
68
|
+
drift.append((dst, "missing"))
|
|
69
|
+
elif not filecmp.cmp(src, dst, shallow=False):
|
|
70
|
+
drift.append((dst, "drifted from core"))
|
|
71
|
+
if drift:
|
|
72
|
+
print("Shared-asset drift detected:", file=sys.stderr)
|
|
73
|
+
for path, reason in drift:
|
|
74
|
+
print(f" {path.relative_to(REPO_ROOT)} — {reason}", file=sys.stderr)
|
|
75
|
+
print(
|
|
76
|
+
"\nRun `scripts/sync-shared-assets.py` to regenerate.",
|
|
77
|
+
file=sys.stderr,
|
|
78
|
+
)
|
|
79
|
+
return 1
|
|
80
|
+
print(
|
|
81
|
+
f"All {len(shared)} shared assets present in "
|
|
82
|
+
f"{len(community_plugins)} community plugins."
|
|
83
|
+
)
|
|
84
|
+
return 0
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def write(community_plugins: list[Path], shared: list[Path]) -> int:
|
|
88
|
+
written = 0
|
|
89
|
+
for plugin in community_plugins:
|
|
90
|
+
for src in shared:
|
|
91
|
+
dst = plugin / relative_to_core(src)
|
|
92
|
+
dst.parent.mkdir(parents=True, exist_ok=True)
|
|
93
|
+
if dst.exists() and filecmp.cmp(src, dst, shallow=False):
|
|
94
|
+
continue
|
|
95
|
+
shutil.copy2(src, dst)
|
|
96
|
+
written += 1
|
|
97
|
+
print(f" {dst.relative_to(REPO_ROOT)}")
|
|
98
|
+
print(
|
|
99
|
+
f"\nSynced {written} file(s) into {len(community_plugins)} community plugin(s)."
|
|
100
|
+
)
|
|
101
|
+
return 0
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def main() -> int:
|
|
105
|
+
parser = argparse.ArgumentParser(description=__doc__)
|
|
106
|
+
parser.add_argument(
|
|
107
|
+
"--check",
|
|
108
|
+
action="store_true",
|
|
109
|
+
help="Exit non-zero on drift; do not write.",
|
|
110
|
+
)
|
|
111
|
+
args = parser.parse_args()
|
|
112
|
+
|
|
113
|
+
community_plugins = discover_community_plugins()
|
|
114
|
+
shared = iter_shared_files()
|
|
115
|
+
|
|
116
|
+
if not community_plugins:
|
|
117
|
+
print("No community plugins discovered.", file=sys.stderr)
|
|
118
|
+
return 1
|
|
119
|
+
if not shared:
|
|
120
|
+
print(
|
|
121
|
+
f"No shared assets discovered under {CORE_PLUGIN}/{{{','.join(SHARED_DIRS)}}}",
|
|
122
|
+
file=sys.stderr,
|
|
123
|
+
)
|
|
124
|
+
return 1
|
|
125
|
+
|
|
126
|
+
if args.check:
|
|
127
|
+
return check(community_plugins, shared)
|
|
128
|
+
return write(community_plugins, shared)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
if __name__ == "__main__":
|
|
132
|
+
sys.exit(main())
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# tag-plugins.sh — Create per-plugin Claude Code native tags after the umbrella tag.
|
|
5
|
+
#
|
|
6
|
+
# The umbrella tag `vX.Y.Z` triggers `.github/workflows/release.yml`. Each
|
|
7
|
+
# individual plugin also gets a native tag `<plugin-name>--vX.Y.Z` for the
|
|
8
|
+
# Claude Code plugin system's bookkeeping (resolving exact versions from
|
|
9
|
+
# marketplace history, etc.).
|
|
10
|
+
#
|
|
11
|
+
# Usage: ./scripts/tag-plugins.sh <version>
|
|
12
|
+
# Example: ./scripts/tag-plugins.sh 5.0.0
|
|
13
|
+
|
|
14
|
+
VERSION="${1:-}"
|
|
15
|
+
if [[ -z "$VERSION" ]]; then
|
|
16
|
+
echo "Usage: $0 <version>" >&2
|
|
17
|
+
echo "Example: $0 5.0.0" >&2
|
|
18
|
+
exit 1
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
22
|
+
echo "Error: version must be semver (X.Y.Z), got: $VERSION" >&2
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
# Auto-discover plugin directories: anything containing a Claude Code manifest.
|
|
27
|
+
# Avoids the manual-edit gotcha caught mid-v5.4.0 release where a new plugin
|
|
28
|
+
# (arckit-uk-nhs) shipped without its tag because the array wasn't updated.
|
|
29
|
+
mapfile -t PLUGINS < <(
|
|
30
|
+
find . -maxdepth 4 -path '*/.claude-plugin/plugin.json' -not -path '*/node_modules/*' \
|
|
31
|
+
| sed -E 's|^\./||; s|/\.claude-plugin/plugin\.json$||' \
|
|
32
|
+
| sort
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
if [[ ${#PLUGINS[@]} -eq 0 ]]; then
|
|
36
|
+
echo "Error: no plugins discovered (no */.claude-plugin/plugin.json files found)" >&2
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
CREATED=0
|
|
41
|
+
SKIPPED=0
|
|
42
|
+
|
|
43
|
+
for plugin_dir in "${PLUGINS[@]}"; do
|
|
44
|
+
manifest="$plugin_dir/.claude-plugin/plugin.json"
|
|
45
|
+
if [[ ! -f "$manifest" ]]; then
|
|
46
|
+
echo "Skipping $plugin_dir (no manifest)" >&2
|
|
47
|
+
continue
|
|
48
|
+
fi
|
|
49
|
+
plugin_name=$(python3 -c "import json; print(json.load(open('$manifest'))['name'])")
|
|
50
|
+
tag="${plugin_name}--v${VERSION}"
|
|
51
|
+
|
|
52
|
+
if git rev-parse "$tag" >/dev/null 2>&1; then
|
|
53
|
+
echo "Tag $tag already exists, skipping"
|
|
54
|
+
SKIPPED=$((SKIPPED + 1))
|
|
55
|
+
continue
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
echo "Creating tag $tag"
|
|
59
|
+
git tag -a "$tag" -m "$plugin_name $VERSION"
|
|
60
|
+
git push origin "$tag"
|
|
61
|
+
CREATED=$((CREATED + 1))
|
|
62
|
+
done
|
|
63
|
+
|
|
64
|
+
echo ""
|
|
65
|
+
echo "Done — created $CREATED native plugin tag(s), skipped $SKIPPED already-existing tag(s)."
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Dual-registration test for ArcKit doc-type codes.
|
|
4
|
+
*
|
|
5
|
+
* Asserts that every code in `plugins/arckit-claude/config/doc-types.mjs` also appears
|
|
6
|
+
* in the document-types allow-list table inside `plugins/arckit-claude/commands/pages.md`,
|
|
7
|
+
* and vice versa. The two registries must stay in sync; without this test the
|
|
8
|
+
* silent-omission failure mode (PR #317) recurs whenever a new overlay lands.
|
|
9
|
+
*
|
|
10
|
+
* Exit 0 = sync. Exit 1 = mismatch (prints the diff).
|
|
11
|
+
*
|
|
12
|
+
* Note on regex: pages.md uses the table format `| | CODE | \`ARC-*-CODE-*.md\` | Name |`
|
|
13
|
+
* (empty first column for grouping). We extract CODE from the second cell when the
|
|
14
|
+
* first cell is empty AND the third cell looks like an `ARC-*-CODE-*.md` glob, which
|
|
15
|
+
* uniquely identifies type-code rows and excludes section headers / unrelated tables.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { readFile } from 'node:fs/promises';
|
|
19
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
20
|
+
import { dirname, resolve } from 'node:path';
|
|
21
|
+
|
|
22
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
23
|
+
const repoRoot = resolve(__dirname, '..', '..');
|
|
24
|
+
|
|
25
|
+
const docTypesPath = resolve(repoRoot, 'plugins/arckit-claude/config/doc-types.mjs');
|
|
26
|
+
const pagesPath = resolve(repoRoot, 'plugins/arckit-claude/commands/pages.md');
|
|
27
|
+
|
|
28
|
+
const { DOC_TYPES } = await import(pathToFileURL(docTypesPath).href);
|
|
29
|
+
const docTypesCodes = new Set(Object.keys(DOC_TYPES));
|
|
30
|
+
|
|
31
|
+
const pagesContent = await readFile(pagesPath, 'utf8');
|
|
32
|
+
// Match `| | CODE | `ARC-*-CODE-*.{md,html}` | ... |` rows in the document-types allow-list table.
|
|
33
|
+
// CODE may include hyphens (e.g. PRIN-COMP, SECD-MOD).
|
|
34
|
+
const codeRowRe = /^\|\s*\|\s*([A-Z][A-Z0-9]*(?:-[A-Z][A-Z0-9]*)*)\s*\|\s*`ARC-\*-\1-\*\.(?:md|html)`\s*\|/gm;
|
|
35
|
+
const pagesCodes = new Set();
|
|
36
|
+
for (const m of pagesContent.matchAll(codeRowRe)) pagesCodes.add(m[1]);
|
|
37
|
+
|
|
38
|
+
const inDocTypesNotPages = [...docTypesCodes].filter((c) => !pagesCodes.has(c)).sort();
|
|
39
|
+
const inPagesNotDocTypes = [...pagesCodes].filter((c) => !docTypesCodes.has(c)).sort();
|
|
40
|
+
|
|
41
|
+
let ok = true;
|
|
42
|
+
if (inDocTypesNotPages.length > 0) {
|
|
43
|
+
ok = false;
|
|
44
|
+
console.error('[FAIL] Codes in doc-types.mjs but missing from pages.md table:');
|
|
45
|
+
for (const c of inDocTypesNotPages) console.error(' -', c);
|
|
46
|
+
}
|
|
47
|
+
if (inPagesNotDocTypes.length > 0) {
|
|
48
|
+
ok = false;
|
|
49
|
+
console.error('[FAIL] Codes in pages.md table but missing from doc-types.mjs:');
|
|
50
|
+
for (const c of inPagesNotDocTypes) console.error(' -', c);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (ok) {
|
|
54
|
+
console.log(`[PASS] ${docTypesCodes.size} codes registered consistently across both registries.`);
|
|
55
|
+
process.exit(0);
|
|
56
|
+
}
|
|
57
|
+
process.exit(1);
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Consistency guard for the arckit-fde site-generator templates.
|
|
4
|
+
*
|
|
5
|
+
* 1. Every scalar {{TOKEN}} used in templates/ is documented in the fenced
|
|
6
|
+
* ```tokens block of references/config-schema.md, and vice versa.
|
|
7
|
+
* Item-scoped tokens ({{ITEM_*}}) are excluded.
|
|
8
|
+
* 2. Every <!-- BEGIN: x --> (or # BEGIN: x) has a matching END per file.
|
|
9
|
+
* 3. Both presets carry every required top-level key, with no leftover
|
|
10
|
+
* <verbatim>/<from source> placeholders.
|
|
11
|
+
*
|
|
12
|
+
* Exit 0 = consistent. Exit 1 = drift. No external dependencies.
|
|
13
|
+
*/
|
|
14
|
+
import { fileURLToPath } from 'node:url';
|
|
15
|
+
import { dirname, resolve } from 'node:path';
|
|
16
|
+
import { readFileSync, readdirSync, statSync } from 'node:fs';
|
|
17
|
+
|
|
18
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
19
|
+
const repoRoot = resolve(__dirname, '..', '..');
|
|
20
|
+
const plugin = resolve(repoRoot, 'plugins/arckit-fde');
|
|
21
|
+
const templatesDir = resolve(plugin, 'templates');
|
|
22
|
+
const schemaPath = resolve(plugin, 'references/config-schema.md');
|
|
23
|
+
|
|
24
|
+
function walk(dir) {
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const name of readdirSync(dir)) {
|
|
27
|
+
const p = resolve(dir, name);
|
|
28
|
+
if (statSync(p).isDirectory()) out.push(...walk(p));
|
|
29
|
+
else out.push(p);
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const templateFiles = walk(templatesDir);
|
|
35
|
+
const templateText = templateFiles
|
|
36
|
+
.filter((p) => /\.(html|css|txt|xml)$/.test(p) || p.endsWith('nojekyll'))
|
|
37
|
+
.map((p) => readFileSync(p, 'utf8'))
|
|
38
|
+
.join('\n');
|
|
39
|
+
|
|
40
|
+
const usedTokens = new Set(
|
|
41
|
+
[...templateText.matchAll(/\{\{([A-Z0-9_]+)\}\}/g)]
|
|
42
|
+
.map((m) => m[1])
|
|
43
|
+
.filter((t) => !t.startsWith('ITEM_')),
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
const schema = readFileSync(schemaPath, 'utf8');
|
|
47
|
+
const tokensBlock = schema.match(/```tokens\n([\s\S]*?)```/);
|
|
48
|
+
if (!tokensBlock) {
|
|
49
|
+
console.error('[FAIL] no ```tokens block in config-schema.md');
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
const documented = new Set(
|
|
53
|
+
[...tokensBlock[1].matchAll(/\{\{([A-Z0-9_]+)\}\}/g)].map((m) => m[1]),
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
let ok = true;
|
|
57
|
+
const usedNotDocumented = [...usedTokens].filter((t) => !documented.has(t)).sort();
|
|
58
|
+
const documentedNotUsed = [...documented].filter((t) => !usedTokens.has(t)).sort();
|
|
59
|
+
if (usedNotDocumented.length) {
|
|
60
|
+
ok = false;
|
|
61
|
+
console.error('[FAIL] tokens used in templates but not documented:', usedNotDocumented);
|
|
62
|
+
}
|
|
63
|
+
if (documentedNotUsed.length) {
|
|
64
|
+
ok = false;
|
|
65
|
+
console.error('[FAIL] tokens documented but never used in templates:', documentedNotUsed);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
for (const file of templateFiles) {
|
|
69
|
+
if (!/\.(html|txt)$/.test(file)) continue;
|
|
70
|
+
const t = readFileSync(file, 'utf8');
|
|
71
|
+
const begins = [...t.matchAll(/BEGIN:\s*([a-z-]+)/g)].map((m) => m[1]).sort();
|
|
72
|
+
const ends = [...t.matchAll(/END:\s*([a-z-]+)/g)].map((m) => m[1]).sort();
|
|
73
|
+
if (JSON.stringify(begins) !== JSON.stringify(ends)) {
|
|
74
|
+
ok = false;
|
|
75
|
+
console.error(`[FAIL] BEGIN/END mismatch in ${file}:`, { begins, ends });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const requiredKeys = [
|
|
80
|
+
'market_preset', 'area_served', 'eyebrow', 'page_title_suffix', 'meta_description',
|
|
81
|
+
'hero_alt', 'footer_tagline', 'cta_eyebrow', 'cta_headline', 'examples_heading',
|
|
82
|
+
'powered_by_arckit', 'tagline', 'cta_primary', 'pricing', 'signal_band', 'value_props',
|
|
83
|
+
'offer_pack', 'public_sector_benefits', 'follow_on_areas', 'policy_frameworks',
|
|
84
|
+
'worked_examples', 'bootstrap_cadence',
|
|
85
|
+
];
|
|
86
|
+
for (const preset of ['uk-public-sector.yaml', 'generic.yaml']) {
|
|
87
|
+
const text = readFileSync(resolve(plugin, 'presets', preset), 'utf8');
|
|
88
|
+
const missing = requiredKeys.filter((k) => !new RegExp(`^${k}:`, 'm').test(text));
|
|
89
|
+
if (missing.length) {
|
|
90
|
+
ok = false;
|
|
91
|
+
console.error(`[FAIL] ${preset} missing keys:`, missing);
|
|
92
|
+
}
|
|
93
|
+
if (/<verbatim|<from source/.test(text)) {
|
|
94
|
+
ok = false;
|
|
95
|
+
console.error(`[FAIL] ${preset} still contains placeholder markers`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (ok) console.log('[OK] arckit-fde templates, schema and presets are consistent');
|
|
100
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Regime-registration test for ArcKit doc-type regimes.
|
|
4
|
+
*
|
|
5
|
+
* Every `regime:` value declared on an entry in
|
|
6
|
+
* `plugins/arckit-claude/config/doc-types.mjs` MUST also be registered in the exported
|
|
7
|
+
* `REGIMES` array AND have a label in `REGIME_LABELS`. Consumers that iterate
|
|
8
|
+
* `REGIMES` (e.g. `hooks/graph-inject.mjs`: compliance-presence listing and
|
|
9
|
+
* readiness scorecard) silently skip any jurisdiction whose regime code is
|
|
10
|
+
* declared on doc-types but absent from `REGIMES` — the artefacts validate on
|
|
11
|
+
* disk but never surface in the injected governance context.
|
|
12
|
+
*
|
|
13
|
+
* This invariant is invisible to the dual-registration test (which checks
|
|
14
|
+
* code ↔ pages.md), and the gap has recurred twice: `CA` (12 doc-types shipped
|
|
15
|
+
* before `'CA'` was added to `REGIMES`, fixed in #441) and `US` (10 doc-types,
|
|
16
|
+
* fixed in #545). This guard exists so it cannot recur silently again.
|
|
17
|
+
*
|
|
18
|
+
* Exit 0 = every declared regime is registered + labelled. Exit 1 = mismatch.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { fileURLToPath } from 'node:url';
|
|
22
|
+
import { dirname, resolve } from 'node:path';
|
|
23
|
+
|
|
24
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
25
|
+
const repoRoot = resolve(__dirname, '..', '..');
|
|
26
|
+
const docTypesPath = resolve(repoRoot, 'plugins/arckit-claude/config/doc-types.mjs');
|
|
27
|
+
|
|
28
|
+
const { DOC_TYPES, REGIMES, REGIME_LABELS } = await import(docTypesPath);
|
|
29
|
+
|
|
30
|
+
const declaredRegimes = new Set(
|
|
31
|
+
Object.values(DOC_TYPES)
|
|
32
|
+
.map((info) => info.regime)
|
|
33
|
+
.filter(Boolean),
|
|
34
|
+
);
|
|
35
|
+
const registered = new Set(REGIMES);
|
|
36
|
+
const labelled = new Set(Object.keys(REGIME_LABELS));
|
|
37
|
+
|
|
38
|
+
const declaredNotRegistered = [...declaredRegimes].filter((r) => !registered.has(r)).sort();
|
|
39
|
+
const registeredNotLabelled = [...registered].filter((r) => !labelled.has(r)).sort();
|
|
40
|
+
const labelledNotRegistered = [...labelled].filter((r) => !registered.has(r)).sort();
|
|
41
|
+
|
|
42
|
+
let ok = true;
|
|
43
|
+
if (declaredNotRegistered.length > 0) {
|
|
44
|
+
ok = false;
|
|
45
|
+
console.error('[FAIL] regime codes declared on doc-types but missing from REGIMES:');
|
|
46
|
+
for (const r of declaredNotRegistered) console.error(' -', r);
|
|
47
|
+
}
|
|
48
|
+
if (registeredNotLabelled.length > 0) {
|
|
49
|
+
ok = false;
|
|
50
|
+
console.error('[FAIL] regimes in REGIMES but missing a REGIME_LABELS entry:');
|
|
51
|
+
for (const r of registeredNotLabelled) console.error(' -', r);
|
|
52
|
+
}
|
|
53
|
+
if (labelledNotRegistered.length > 0) {
|
|
54
|
+
ok = false;
|
|
55
|
+
console.error('[FAIL] regimes in REGIME_LABELS but missing from REGIMES:');
|
|
56
|
+
for (const r of labelledNotRegistered) console.error(' -', r);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (ok) {
|
|
60
|
+
console.log(
|
|
61
|
+
`[PASS] ${declaredRegimes.size} declared regime(s) all registered in REGIMES (${REGIMES.length}) and labelled.`,
|
|
62
|
+
);
|
|
63
|
+
process.exit(0);
|
|
64
|
+
}
|
|
65
|
+
process.exit(1);
|