@amsterdamdatalabs/adl-agent-control-linux-x64 0.1.4
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.
- package/bin/adl +4 -0
- package/bin/cursor-settings +14 -0
- package/bin/default-agent-file +14 -0
- package/bin/git +670 -0
- package/bin/git-ado +425 -0
- package/bin/global-agents +14 -0
- package/bin/global-surface-sweep +14 -0
- package/bin/health-check +38 -0
- package/bin/kimi-hooks +14 -0
- package/bin/lean-ctx-observe-strip +361 -0
- package/bin/lib/bun-compile-build.sh +34 -0
- package/bin/lib/lean-ctx-observe-hooks.sh +634 -0
- package/bin/managed-settings +14 -0
- package/bin/opencode-hooks +14 -0
- package/bin/reconcile +2648 -0
- package/bin/scratch-reap +14 -0
- package/bin/shell-path-policy +64 -0
- package/bin/surface-policy +14 -0
- package/bin/sync-and-reconcile +215 -0
- package/bin/update-azure-agent-pool +29 -0
- package/bin/validate-manifest +171 -0
- package/bin/vscode-settings +14 -0
- package/package.json +44 -0
- package/packages/agent-hooks/README.md +411 -0
- package/packages/agent-hooks/assets/hooks.json +97 -0
- package/packages/agent-hooks/assets/opencode-plugin.template.ts +224 -0
- package/packages/agent-hooks/bunfig.toml +27 -0
- package/packages/agent-hooks/deploy-profile.json +53 -0
- package/packages/agent-hooks/deploy-profile.schema.json +120 -0
- package/packages/agent-hooks/package.json +23 -0
- package/packages/agent-hooks/src/cli/args.ts +99 -0
- package/packages/agent-hooks/src/cli/doctor.ts +241 -0
- package/packages/agent-hooks/src/cli/rules.ts +133 -0
- package/packages/agent-hooks/src/deploy/deploy.ts +181 -0
- package/packages/agent-hooks/src/deploy/doctor.ts +158 -0
- package/packages/agent-hooks/src/deploy/index.ts +17 -0
- package/packages/agent-hooks/src/deploy/json-merge.ts +115 -0
- package/packages/agent-hooks/src/deploy/legacy-lock.ts +213 -0
- package/packages/agent-hooks/src/deploy/list.ts +117 -0
- package/packages/agent-hooks/src/deploy/lock.ts +65 -0
- package/packages/agent-hooks/src/deploy/opencode-template.ts +74 -0
- package/packages/agent-hooks/src/deploy/profile.ts +117 -0
- package/packages/agent-hooks/src/deploy/render.ts +162 -0
- package/packages/agent-hooks/src/deploy/source.ts +84 -0
- package/packages/agent-hooks/src/gating/config.ts +514 -0
- package/packages/agent-hooks/src/gating/root.ts +117 -0
- package/packages/agent-hooks/src/hooks/briefing/handler.ts +22 -0
- package/packages/agent-hooks/src/hooks/briefing/index.ts +320 -0
- package/packages/agent-hooks/src/hooks/contract.ts +112 -0
- package/packages/agent-hooks/src/hooks/crg/handler.ts +22 -0
- package/packages/agent-hooks/src/hooks/crg/index.ts +209 -0
- package/packages/agent-hooks/src/hooks/lean-ctx/handler.ts +22 -0
- package/packages/agent-hooks/src/hooks/lean-ctx/index.ts +173 -0
- package/packages/agent-hooks/src/hooks/lean-ctx/mapping.ts +121 -0
- package/packages/agent-hooks/src/hooks/lean-ctx/scope-rewrite.ts +207 -0
- package/packages/agent-hooks/src/hooks/log.ts +233 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/config.ts +58 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/constants.ts +149 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/handler.ts +72 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/index.ts +203 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/match.ts +212 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/skill-roots.ts +73 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/skills.ts +98 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/tokenizer.ts +115 -0
- package/packages/agent-hooks/src/hooks/user-prompt-submit/vector.ts +174 -0
- package/packages/agent-hooks/src/hosts/impl/claude.ts +47 -0
- package/packages/agent-hooks/src/hosts/impl/codex.ts +47 -0
- package/packages/agent-hooks/src/hosts/impl/cursor.ts +40 -0
- package/packages/agent-hooks/src/hosts/impl/kimi.ts +47 -0
- package/packages/agent-hooks/src/hosts/impl/opencode.ts +54 -0
- package/packages/agent-hooks/src/hosts/registry.ts +29 -0
- package/packages/agent-hooks/src/hosts/spec.ts +113 -0
- package/packages/agent-hooks/src/lean-ctx/env.ts +106 -0
- package/packages/agent-hooks/src/lean-ctx/mcp.ts +140 -0
- package/packages/agent-hooks/src/lib/spawn-with-timeout.ts +120 -0
- package/packages/agent-hooks/src/log/writer.ts +230 -0
- package/packages/agent-hooks/src/main.ts +269 -0
- package/packages/agent-hooks/src/pre-tool-use/handler.ts +549 -0
- package/packages/agent-hooks/src/rules/engine.ts +293 -0
- package/packages/agent-hooks/src/rules/impl/adl-build-run-denied.ts +51 -0
- package/packages/agent-hooks/src/rules/impl/adl-git-credential-bypass.ts +320 -0
- package/packages/agent-hooks/src/rules/impl/adl-git-identity.ts +249 -0
- package/packages/agent-hooks/src/rules/impl/adl-git-push-policy.ts +258 -0
- package/packages/agent-hooks/src/rules/impl/adl-human-azdo-bypass.ts +731 -0
- package/packages/agent-hooks/src/rules/impl/adl-identity.ts +128 -0
- package/packages/agent-hooks/src/rules/impl/adl-mcp-cli.ts +179 -0
- package/packages/agent-hooks/src/rules/impl/adl-pr-complete-pending.ts +65 -0
- package/packages/agent-hooks/src/rules/impl/adl-pr-review-role.ts +156 -0
- package/packages/agent-hooks/src/rules/impl/adl-pr-role.ts +121 -0
- package/packages/agent-hooks/src/rules/impl/adl-session-required.ts +403 -0
- package/packages/agent-hooks/src/rules/impl/adl-token-minting-role.ts +92 -0
- package/packages/agent-hooks/src/rules/impl/adl-workitem-role.ts +74 -0
- package/packages/agent-hooks/src/rules/impl/advisory-coverage.ts +43 -0
- package/packages/agent-hooks/src/rules/impl/advisory-finder.ts +62 -0
- package/packages/agent-hooks/src/rules/impl/agent-secrets-stay-unread.ts +173 -0
- package/packages/agent-hooks/src/rules/impl/agent-tamper-protection.ts +508 -0
- package/packages/agent-hooks/src/rules/impl/fs-canonical-checkout.ts +86 -0
- package/packages/agent-hooks/src/rules/impl/fs-git-internals.ts +75 -0
- package/packages/agent-hooks/src/rules/impl/fs-mv.ts +66 -0
- package/packages/agent-hooks/src/rules/impl/fs-rm.ts +83 -0
- package/packages/agent-hooks/src/rules/impl/fs-trash.ts +140 -0
- package/packages/agent-hooks/src/rules/impl/git-core.ts +101 -0
- package/packages/agent-hooks/src/rules/impl/git-helpers.ts +408 -0
- package/packages/agent-hooks/src/rules/impl/git-history.ts +77 -0
- package/packages/agent-hooks/src/rules/impl/git-paths.ts +139 -0
- package/packages/agent-hooks/src/rules/impl/git-plumbing.ts +167 -0
- package/packages/agent-hooks/src/rules/impl/git-protected-tree.ts +132 -0
- package/packages/agent-hooks/src/rules/impl/git-transitions.ts +292 -0
- package/packages/agent-hooks/src/rules/impl/git-verify.ts +95 -0
- package/packages/agent-hooks/src/rules/impl/git-worktree.ts +265 -0
- package/packages/agent-hooks/src/rules/impl/mcp-tool.ts +76 -0
- package/packages/agent-hooks/src/rules/impl/messages.ts +128 -0
- package/packages/agent-hooks/src/rules/impl/parse-uncertain.ts +143 -0
- package/packages/agent-hooks/src/rules/impl/pr-completion.ts +35 -0
- package/packages/agent-hooks/src/rules/impl/shell-remote-script-exec.ts +63 -0
- package/packages/agent-hooks/src/rules/impl/tool-azure-devops.ts +283 -0
- package/packages/agent-hooks/src/rules/impl/tool-bun-test.ts +81 -0
- package/packages/agent-hooks/src/rules/impl/tool-cargo.ts +66 -0
- package/packages/agent-hooks/src/rules/impl/tool-chmod-hook.ts +42 -0
- package/packages/agent-hooks/src/rules/impl/tool-find.ts +82 -0
- package/packages/agent-hooks/src/rules/impl/tool-frontend.ts +83 -0
- package/packages/agent-hooks/src/rules/impl/tool-grep.ts +93 -0
- package/packages/agent-hooks/src/rules/impl/tool-lean-ctx-global.ts +594 -0
- package/packages/agent-hooks/src/rules/impl/tool-native-search.ts +77 -0
- package/packages/agent-hooks/src/rules/ports.ts +178 -0
- package/packages/agent-hooks/src/rules/registry.ts +233 -0
- package/packages/agent-hooks/src/rules/shell/git-identity.ts +1415 -0
- package/packages/agent-hooks/src/rules/shell/git-internals.ts +186 -0
- package/packages/agent-hooks/src/rules/shell/invocation.ts +1083 -0
- package/packages/agent-hooks/src/rules/shell/piped-script.ts +201 -0
- package/packages/agent-hooks/src/rules/shell/prefixes.ts +214 -0
- package/packages/agent-hooks/src/rules/shell/protected-carrier-writes.ts +108 -0
- package/packages/agent-hooks/src/rules/shell/protected-carriers.ts +149 -0
- package/packages/agent-hooks/src/rules/shell/split.ts +179 -0
- package/packages/agent-hooks/src/rules/shell/substitution.ts +394 -0
- package/packages/agent-hooks/src/rules/shell/token.ts +180 -0
- package/packages/agent-hooks/src/rules/shell/xargs.ts +81 -0
- package/packages/agent-hooks/src/rules/spec.ts +152 -0
- package/packages/agent-hooks/src/surface-policy.ts +37 -0
- package/packages/agent-hooks/tsconfig.json +23 -0
- package/packages/agent-settings/assets/GLOBAL-AGENTS.md +107 -0
- package/packages/agent-settings/assets/agents/architect.toml +30 -0
- package/packages/agent-settings/assets/agents/code-reviewer.toml +27 -0
- package/packages/agent-settings/assets/agents/critic.toml +35 -0
- package/packages/agent-settings/assets/agents/executor.toml +28 -0
- package/packages/agent-settings/assets/agents/explore.toml +25 -0
- package/packages/agent-settings/assets/agents/planner.toml +29 -0
- package/packages/agent-settings/assets/lean-ctx/config.toml +39 -0
- package/packages/agent-settings/assets/lean-ctx/gitignore +6 -0
- package/packages/agent-settings/assets/lean-ctx/layout.toml +5 -0
- package/packages/agent-settings/assets/mcp.json +20 -0
- package/packages/agent-settings/managed/README.md +331 -0
- package/packages/agent-settings/managed/claude-managed-settings.json +150 -0
- package/packages/agent-settings/managed/codex-requirements.toml +105 -0
- package/packages/agent-settings/protected.json +470 -0
- package/packages/agent-settings/src/deploy/agent-render.ts +94 -0
- package/packages/agent-settings/src/deploy/agent-toml.ts +76 -0
- package/packages/agent-settings/src/deploy/agents-deploy.ts +129 -0
- package/packages/agent-settings/src/deploy/doctor.ts +201 -0
- package/packages/agent-settings/src/deploy/index.ts +33 -0
- package/packages/agent-settings/src/deploy/json-pretty.ts +66 -0
- package/packages/agent-settings/src/deploy/lean-ctx-deploy.ts +138 -0
- package/packages/agent-settings/src/deploy/legacy-lock.ts +286 -0
- package/packages/agent-settings/src/deploy/list.ts +135 -0
- package/packages/agent-settings/src/deploy/lock.ts +112 -0
- package/packages/agent-settings/src/deploy/mcp-deploy.ts +175 -0
- package/packages/agent-settings/src/deploy/mcp-inspect.ts +56 -0
- package/packages/agent-settings/src/deploy/mcp-merge.ts +164 -0
- package/packages/agent-settings/src/deploy/mcp-render.ts +80 -0
- package/packages/agent-settings/src/deploy/mcp-source.ts +43 -0
- package/packages/agent-settings/src/deploy/profile.ts +296 -0
- package/packages/agent-settings/src/deploy/settings.ts +65 -0
- package/packages/agent-settings/src/global-agents.ts +230 -0
- package/packages/agent-settings/src/global-surface-sweep.ts +2179 -0
- package/packages/agent-settings/src/kimi-hooks.ts +455 -0
- package/packages/agent-settings/src/opencode-hooks.ts +76 -0
- package/packages/agent-settings/src/surface-policy.ts +441 -0
- package/packages/agent-settings/surface-policy.json +20 -0
- package/packages/agent-skills/assets/code-review/SKILL.md +100 -0
- package/packages/agent-skills/assets/codebase-design/SKILL.md +98 -0
- package/packages/agent-skills/assets/codebase-design/references/DEEPENING.md +37 -0
- package/packages/agent-skills/assets/codebase-design/references/DESIGN-IT-TWICE.md +44 -0
- package/packages/agent-skills/assets/codebase-design/references/TESTABILITY.md +29 -0
- package/packages/agent-skills/assets/debug-issue/SKILL.md +40 -0
- package/packages/agent-skills/assets/diagnosing-bugs/SKILL.md +100 -0
- package/packages/agent-skills/assets/diagnosing-bugs/references/FEEDBACK-LOOP-TACTICS.md +34 -0
- package/packages/agent-skills/assets/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
- package/packages/agent-skills/assets/domain-modeling/SKILL.md +86 -0
- package/packages/agent-skills/assets/domain-modeling/references/ADR-FORMAT.md +47 -0
- package/packages/agent-skills/assets/domain-modeling/references/CONTEXT-FORMAT.md +60 -0
- package/packages/agent-skills/assets/explore-codebase/SKILL.md +41 -0
- package/packages/agent-skills/assets/handoff/SKILL.md +28 -0
- package/packages/agent-skills/assets/implement/SKILL.md +28 -0
- package/packages/agent-skills/assets/refactor-safely/SKILL.md +44 -0
- package/packages/agent-skills/assets/review-changes/SKILL.md +45 -0
- package/packages/agent-skills/assets/tdd/SKILL.md +49 -0
- package/packages/agent-skills/assets/tdd/references/mocking.md +59 -0
- package/packages/agent-skills/assets/tdd/references/tests.md +77 -0
- package/packages/agent-skills/assets/testing/SKILL.md +54 -0
- package/packages/agent-skills/assets/to-feature/SKILL.md +91 -0
- package/packages/agent-skills/assets/to-feature/references/FEATURE-SPEC-TEMPLATE.md +88 -0
- package/packages/agent-skills/assets/to-workitems/SKILL.md +90 -0
- package/packages/agent-skills/assets/to-workitems/references/AZURE-DEVOPS-HIERARCHY.md +118 -0
- package/packages/agent-skills/assets/to-workitems/references/TICKET-TEMPLATES.md +70 -0
- package/packages/agent-skills/assets/wayfinder/SKILL.md +100 -0
- package/packages/agent-skills/assets/wayfinder/references/TEMPLATES.md +35 -0
- package/packages/agent-skills/assets/wayfinder/references/TICKET-TYPES.md +8 -0
- package/packages/agent-skills/deploy-profile.json +9 -0
- package/packages/agent-skills/deploy-profile.schema.json +45 -0
- package/packages/agent-skills/dist/deploy.d.ts +27 -0
- package/packages/agent-skills/dist/deploy.d.ts.map +1 -0
- package/packages/agent-skills/dist/deploy.js +186 -0
- package/packages/agent-skills/dist/deploy.js.map +1 -0
- package/packages/agent-skills/dist/doctor.d.ts +24 -0
- package/packages/agent-skills/dist/doctor.d.ts.map +1 -0
- package/packages/agent-skills/dist/doctor.js +141 -0
- package/packages/agent-skills/dist/doctor.js.map +1 -0
- package/packages/agent-skills/dist/fs-utils.d.ts +8 -0
- package/packages/agent-skills/dist/fs-utils.d.ts.map +1 -0
- package/packages/agent-skills/dist/fs-utils.js +40 -0
- package/packages/agent-skills/dist/fs-utils.js.map +1 -0
- package/packages/agent-skills/dist/index.d.ts +8 -0
- package/packages/agent-skills/dist/index.d.ts.map +1 -0
- package/packages/agent-skills/dist/index.js +8 -0
- package/packages/agent-skills/dist/index.js.map +1 -0
- package/packages/agent-skills/dist/legacy-lock.d.ts +44 -0
- package/packages/agent-skills/dist/legacy-lock.d.ts.map +1 -0
- package/packages/agent-skills/dist/legacy-lock.js +121 -0
- package/packages/agent-skills/dist/legacy-lock.js.map +1 -0
- package/packages/agent-skills/dist/list.d.ts +23 -0
- package/packages/agent-skills/dist/list.d.ts.map +1 -0
- package/packages/agent-skills/dist/list.js +75 -0
- package/packages/agent-skills/dist/list.js.map +1 -0
- package/packages/agent-skills/dist/manifest.d.ts +15 -0
- package/packages/agent-skills/dist/manifest.d.ts.map +1 -0
- package/packages/agent-skills/dist/manifest.js +57 -0
- package/packages/agent-skills/dist/manifest.js.map +1 -0
- package/packages/agent-skills/dist/profile.d.ts +41 -0
- package/packages/agent-skills/dist/profile.d.ts.map +1 -0
- package/packages/agent-skills/dist/profile.js +86 -0
- package/packages/agent-skills/dist/profile.js.map +1 -0
- package/packages/agent-skills/dist/skill-config.d.ts +24 -0
- package/packages/agent-skills/dist/skill-config.d.ts.map +1 -0
- package/packages/agent-skills/dist/skill-config.js +68 -0
- package/packages/agent-skills/dist/skill-config.js.map +1 -0
- package/packages/agent-skills/dist/skill-meta.d.ts +17 -0
- package/packages/agent-skills/dist/skill-meta.d.ts.map +1 -0
- package/packages/agent-skills/dist/skill-meta.js +67 -0
- package/packages/agent-skills/dist/skill-meta.js.map +1 -0
- package/packages/agent-skills/package.json +31 -0
- package/packages/agent-skills/src/deploy.ts +222 -0
- package/packages/agent-skills/src/doctor.ts +178 -0
- package/packages/agent-skills/src/fs-utils.ts +40 -0
- package/packages/agent-skills/src/index.ts +29 -0
- package/packages/agent-skills/src/legacy-lock.ts +152 -0
- package/packages/agent-skills/src/list.ts +94 -0
- package/packages/agent-skills/src/manifest.ts +66 -0
- package/packages/agent-skills/src/profile.ts +128 -0
- package/packages/agent-skills/src/skill-config.ts +75 -0
- package/packages/agent-skills/src/skill-meta.ts +78 -0
- package/packages/agent-skills/tsconfig.build.json +13 -0
- package/packages/agent-skills/tsconfig.json +23 -0
- package/packages/azdo/README.md +111 -0
- package/packages/azdo/package.json +21 -0
- package/packages/azdo/src/azdo-pl.ts +275 -0
- package/packages/azdo/src/azdo-pr-review.ts +160 -0
- package/packages/azdo/src/azdo-pr.ts +289 -0
- package/packages/azdo/src/azdo-repo-doctor.ts +839 -0
- package/packages/azdo/src/azdo-wit.ts +145 -0
- package/packages/azdo/src/cli.ts +251 -0
- package/packages/azdo/src/lib/agent-identity.ts +198 -0
- package/packages/azdo/src/lib/agent-token.ts +167 -0
- package/packages/azdo/src/lib/client.ts +259 -0
- package/packages/azdo/src/lib/graph-identity.ts +153 -0
- package/packages/azdo/src/lib/validate-pr-metadata.ts +57 -0
- package/packages/azdo/src/mcp-server.ts +209 -0
- package/packages/azdo/src/tool-dispatch.ts +204 -0
- package/packages/azdo/tsconfig.json +13 -0
- package/packages/fleet/jobs/git-maintain/src/main.ts +588 -0
- package/packages/fleet/manifest.json +207 -0
- package/packages/fleet/manifest.schema.json +283 -0
- package/packages/fleet/src/default-agent-file.ts +144 -0
- package/packages/fleet/src/install-adl-package.ts +178 -0
- package/packages/fleet/src/install-embedding-model.ts +412 -0
- package/packages/fleet/src/launch-agents.ts +649 -0
- package/packages/fleet/src/managed-settings.ts +278 -0
- package/packages/fleet/src/scratch-reap.ts +601 -0
- package/packages/fleet/src/vscode-settings.ts +705 -0
- package/packages/fleet/systemd/adl-azure-agent-update.service +13 -0
- package/packages/fleet/systemd/adl-azure-agent-update.timer +10 -0
- package/packages/repo-controls/AGENTS.md +96 -0
- package/packages/repo-controls/CLAUDE.md +1 -0
- package/packages/repo-controls/LICENSE +20 -0
- package/packages/repo-controls/README.md +493 -0
- package/packages/repo-controls/assets/enable-integration-auto-complete.mjs +79 -0
- package/packages/repo-controls/assets/promote.ts +371 -0
- package/packages/repo-controls/assets/version-bump.sh +189 -0
- package/packages/repo-controls/azure-pipelines.yml +274 -0
- package/packages/repo-controls/bin/adl-repo-controls.ts +10 -0
- package/packages/repo-controls/bunfig.toml +58 -0
- package/packages/repo-controls/package/adl-compliance/AGENTS.md +163 -0
- package/packages/repo-controls/package/adl-compliance/CLAUDE.md +1 -0
- package/packages/repo-controls/package/adl-compliance/conftest.py +78 -0
- package/packages/repo-controls/package/adl-compliance/pyproject.toml +31 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/__init__.py +50 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/__init__.py +98 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/__init__.py +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/check.py +210 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-bad-status/docs/architecture/overview.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-bad-status/docs/decisions/adr-901-proposed.md +10 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-broken-backlink/docs/decisions/adr-902-dangling.md +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-clean/docs/architecture/overview.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-clean/docs/decisions/adr-900-example.md +10 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-frontmatter-mismatch/.plans/b_committed/26-08-08-lifecycle-fixture.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-frontmatter-mismatch/.specs/demo/lifecycle.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-frontmatter-mismatch/docs/decisions/adr-903-frontmatter-mismatch.md +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-inactive-plan/.plans/c_done/26-08-08-completed-fixture.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-inactive-plan/.specs/demo/lifecycle.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/fixtures/adr-lifecycle-inactive-plan/docs/decisions/adr-904-completed-plan.md +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/adr_lifecycle/test_check.py +127 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/__init__.py +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/check.py +91 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/CLAUDE.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/architecture/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/compliance/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/decisions/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/index.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/operations/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/research/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/stray-root-file.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/totally-made-up/nonsense.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/test_check.py +106 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/english_only/__init__.py +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/english_only/check.py +291 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/english_only/fixtures/clean/backend/clean.rs +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/english_only/fixtures/excluded/frontend/mobile/src/i18n/locales/zh-CN/strings.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/english_only/fixtures/violation/backend/escaped.rs +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/english_only/fixtures/violation/backend/raw.rs +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/english_only/fixtures/violation/backend//346/226/207/344/273/266.rs +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/english_only/test_check.py +193 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/index_updated/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/index_updated/check.py +140 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/index_updated/fixtures/index-updated-clean/docs/architecture/foo.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/index_updated/fixtures/index-updated-clean/docs/architecture/index.md +10 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/index_updated/fixtures/index-updated-violation/docs/architecture/foo.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/index_updated/fixtures/index-updated-violation/docs/architecture/index.md +9 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/index_updated/test_check.py +98 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/check.py +378 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/docs-knowledge-indexes.yaml +192 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-clean/docs/index.md +14 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-clean/docs/one.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-clean/docs/two.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-clean/docs-knowledge-indexes.yaml +20 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-duplicate/docs/index.md +15 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-duplicate/docs/one.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-duplicate/docs/two.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-duplicate/docs-knowledge-indexes.yaml +16 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-missing-entry/docs/index.md +13 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-missing-entry/docs/one.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-missing-entry/docs/two.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/fixtures/knowledge-indexes-missing-entry/docs-knowledge-indexes.yaml +16 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/indexes/test_check.py +102 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/check.py +387 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/fixtures/ledger-bad-date/plans/LEDGER.md +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/fixtures/ledger-clean/plans/LEDGER.md +6 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/fixtures/ledger-empty-table/plans/LEDGER.md +4 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/fixtures/ledger-long-event/plans/LEDGER.md +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/fixtures/ledger-violation/plans/LEDGER.md +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/test_check.py +427 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/markdown_ast/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/markdown_ast/check.py +84 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/markdown_ast/fixtures/markdown-structure-bad-fence/docs/bad-fence.md +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/markdown_ast/fixtures/markdown-structure-bad-fence/docs/valid.md +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/markdown_ast/fixtures/markdown-structure-bad-frontmatter/docs/bad-front-matter.md +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/markdown_ast/fixtures/markdown-structure-bad-frontmatter/docs/valid.md +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/markdown_ast/fixtures/markdown-structure-clean/docs/valid.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/markdown_ast/test_check.py +126 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/check.py +210 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/docs-okf-profiles.yaml +119 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-profile-clean/docs/architecture/demo.md +17 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-profile-clean/docs-okf-profiles.yaml +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-profile-violation/docs/architecture/bad-status.md +17 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-profile-violation/docs-okf-profiles.yaml +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/test_check.py +49 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/register.py +159 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/check.py +578 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-clean/docs/architecture/backend/crate-overview.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-clean/docs/architecture/team/team-overview.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-clean/docs/compliance/controls/control-matrix.md +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-clean/docs/compliance/controls/control-matrix.yaml +10 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-clean/docs/research/benchmarks/note.md +24 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/architecture/backend/crate-overview.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/architecture/product/stable-delivery.md +10 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/architecture/product/stable-recommendation.md +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/architecture/product/target-narration.md +10 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/architecture/team/team-overview.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/compliance/controls/control-matrix.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/compliance/controls/control-matrix.yaml +17 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/research/benchmarks/bad-research.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/test_check.py +461 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/__init__.py +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/check.py +124 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/.workflows/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/.workflows/CLAUDE.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/AGENTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/CLAUDE.md +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/INVARIANTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/bad-pointer/AGENTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/bad-pointer/CLAUDE.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/docs/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/docs/CLAUDE.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/missing-pair/AGENTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/owned/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/fixtures/owned/CLAUDE.md +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/agents_layout/test_check.py +116 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/ci_paths/__init__.py +13 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/ci_paths/check.py +380 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/ci_paths/fixtures/redeclared-workflows-tree/automation/pipelines/pr-validation.yaml +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/ci_paths/test_check.py +274 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/check.py +227 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-clean/frontend/packages/desktop/src/renderer/solo/item.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-clean/grants.yaml +6 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/fresh/fresh.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub1/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub10/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub11/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub2/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub3/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub4/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub5/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub6/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub7/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub8/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/many/sub9/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/services/i18n/locales/de/common.json +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/renderer/solo/item.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/frontend/packages/desktop/src/vendored-crate/Cargo.toml +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-excluded/grants.yaml +6 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/fresh/fresh.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub1/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub10/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub11/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub2/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub3/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub4/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub5/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub6/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub7/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub8/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/many/sub9/only.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/frontend/packages/desktop/src/renderer/solo/item.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unbaselined/grants.yaml +6 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/test_check.py +138 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/markdown_trees/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/markdown_trees/check.py +240 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/markdown_trees/fixtures/markdown-trees-clean/.plans/a_new/plan.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/markdown_trees/fixtures/markdown-trees-clean/backend/AGENTS.md +4 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/markdown_trees/fixtures/markdown-trees-clean/docs/page.md +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/markdown_trees/fixtures/markdown-trees-stray/backend/notes.md +4 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/markdown_trees/fixtures/markdown-trees-stray/docs/page.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/markdown_trees/test_check.py +220 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/open_work_cap/__init__.py +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/open_work_cap/check.py +225 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/open_work_cap/fixtures/open-work-cap-clean/plans/GAPS-AND-FINDINGS.md +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/open_work_cap/fixtures/open-work-cap-clean/plans/features/az601-clean/spec.md +10 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/open_work_cap/test_check.py +330 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/check.py +240 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/agent/crates/enact-providers/src/snapshots/README.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/backend/crates/enact-app/assets/builtin-assistants/avatars/assistant.jpg +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/backend/crates/enact-assets/assets/logos/tools/coding/tool.png +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/backend/crates/enact-session/src/backend/codex_init_prompt.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/frontend/mobile/assets/images/icon.png +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/frontend/packages/desktop/src/renderer/assets/logos/brand/app.png +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/frontend/packages/desktop/src/renderer/assets/themes/default-theme.png +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/frontend/public/pwa/icon-192.png +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/frontend/resources/product.png +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-stray/apps/legacy/file.ts +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-stray/backend/crates/enact-session/src/backend/README.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-stray/frontend/unapproved/screenshot.png +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/test_check.py +230 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plan_metadata.py +53 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/__init__.py +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/check.py +438 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/features/az347-test-coverage/items/az351-restore-entrypoint.md +9 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/features/az347-test-coverage/spec.md +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/templates/feature.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-violation/plans/features/az347-test-coverage/items/az351-restore-entrypoint.md +9 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-violation/plans/features/az347-test-coverage/spec.md +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/test_check.py +461 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/check.py +62 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/NotAMigration.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/0001_long_prefix.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/001_init.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/002_add_index.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/003-dashed-slug.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/004_MixedCase.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/005_trailing space.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/01_short_prefix.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/not-a-migration.sql +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/test_check.py +116 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/check.py +188 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-broken/.plans/c_done/26-07-27-history.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-broken/docs/README.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-broken/docs/architecture/product/links.md +20 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-broken/docs/architecture/product/route-target.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-clean/.plans/c_done/26-07-27-history.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-clean/docs/README.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-clean/docs/architecture/product/links.md +20 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-clean/docs/architecture/product/route-target.md +8 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/test_check.py +166 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/check.py +135 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.agents/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.changeset/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.claude/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.code-review-graph/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.code-review-graph_old/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.codex/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.cursor/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.cursorrules +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.dockerignore +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.docs/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.donors/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.gitattributes +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.kimi-code/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.lfsconfig +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.mcp.json +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.opencode/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.workflows/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/CHANGELOG.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/CLAUDE-INVARIANTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/CLAUDE.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/INDEPENDENT-VERIFICATION.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/INVARIANTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/LICENSE +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/NOTICE +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/README.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/RELEASE.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/VERSION +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/backend/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/compliance/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/dev/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/docker/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/docs/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/frontend/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/infra/declared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/justfile +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/opencode.jsonc +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/rule-tests/undeclared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/rules/undeclared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/unapproved-root/undeclared.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/undeclared-root-file.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/test_check.py +122 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/check.py +290 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/.changeset/some-change.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/.plans/AGENTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/.specs/AGENTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/.workflows/AGENTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/AGENTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/CHANGELOG.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/CLAUDE.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/INDEPENDENT-VERIFICATION.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/INVARIANTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/README.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/RELEASE.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/STRAY.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/docs/AGENTS.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/docs/architecture/note.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/frontend/README.md +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-missing-guide/.workflows/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-missing-guide/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-missing-guide/README.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-missing-guide/docs/overview.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-missing-guide/plans/AGENTS.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/test_check.py +329 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/check.py +127 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/a/b/c/d/at-limit.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/a/b/c/d/e/too-deep.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-01.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-02.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-03.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-04.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-05.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-06.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-07.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-08.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-09.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-10.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-11.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-12.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-13.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-14.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-15.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/fixtures/scripts-layout/.workflows/scripts/direct-16.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/scripts_size_depth/test_check.py +163 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/__init__.py +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/check.py +169 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/attribute-without-conversion/.gitattributes +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/attribute-without-conversion/large file.bin +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/clean/.gitattributes +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/clean/large file.bin +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/clean/small.txt +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/missing-filter/large file.bin +0 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/unmatched-extension/.gitattributes +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/unmatched-extension/payload.dat +0 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/test_check.py +133 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/__init__.py +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/check.py +129 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/fixtures/disjoint/gate-registry.yaml +13 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/fixtures/empty/gate-registry.yaml +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/fixtures/overlapping/gate-registry.yaml +13 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/test_check.py +109 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/__init__.py +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/check.py +149 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/fixtures/clean/docs/readme.md +4 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/fixtures/relevant/VERSION +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/test_check.py +151 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/check.py +202 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/aligned/.workflows/changesets/package.json +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/aligned/.workflows/package.json +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/aligned/CHANGELOG.md +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/aligned/VERSION +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/mismatched/.workflows/changesets/package.json +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/mismatched/.workflows/package.json +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/mismatched/CHANGELOG.md +5 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/mismatched/VERSION +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/test_check.py +162 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/__init__.py +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/check.py +103 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/compliance_py/checks/git-bad.sh +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/compliance_py/checks/git-note.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/compliance_py/checks/good.sh +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/compliance_py/checks/grep-bad.sh +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/compliance_py/checks/grep-note.sh +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/compliance_py/checks/grep-trailing.sh +2 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/compliance_py/checks/notes.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/elsewhere/loose-git.sh +6 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/fixtures/no-banned-commands/elsewhere/loose-grep.sh +4 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/test_check.py +117 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/ignored_paths/__init__.py +13 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/ignored_paths/check.py +265 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/ignored_paths/fixtures/ignored-paths/keep.log +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/ignored_paths/fixtures/ignored-paths/src/main.rs +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/ignored_paths/test_check.py +180 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/license_declared/__init__.py +12 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/license_declared/check.py +84 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/license_declared/fixtures/license-declared-clean/LICENSE +10 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/license_declared/fixtures/license-declared-mismatch/LICENSE +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/license_declared/fixtures/license-declared-missing/README.md +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/license_declared/test_check.py +66 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/check.py +167 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/backend/Cargo.lock +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/backend/Cargo.toml +4 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/backend/rust-toolchain.toml +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/backend/src/main.rs +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/frontend/bun.lock +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/backend/Cargo.lock +7 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/backend/Cargo.toml +4 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/backend/rust-toolchain.toml +3 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/backend/src/main.rs +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/frontend/bun.lock +0 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/test_check.py +109 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/cli.py +483 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/__init__.py +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/ast_grep.py +199 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/batch.py +52 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/check.py +303 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/constants.py +106 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/context.py +99 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/errors.py +32 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/finding.py +65 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/models.py +40 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/receipt.py +63 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/scope.py +82 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/core/verdict.py +161 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/__init__.py +1 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/config.py +131 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/config.toml +30 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/docs_shape.py +65 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/gate-registry.alt.yaml +791 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/gate-registry.schema.yaml +176 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/gate-registry.yaml +791 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/grants-registry.yaml +112 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/grants.py +129 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/registry.py +281 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/root_shape.py +250 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/severity-policy.yaml +114 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/providers/__init__.py +11 -0
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/runner.py +371 -0
- package/packages/repo-controls/package/adl-compliance/uv.lock +199 -0
- package/packages/repo-controls/package.json +33 -0
- package/packages/repo-controls/scripts/hooks/commit-msg +63 -0
- package/packages/repo-controls/scripts/hooks/lib/hook-log.sh +62 -0
- package/packages/repo-controls/scripts/hooks/post-checkout +15 -0
- package/packages/repo-controls/scripts/hooks/post-commit +18 -0
- package/packages/repo-controls/scripts/hooks/pre-commit +82 -0
- package/packages/repo-controls/scripts/hooks/pre-push +144 -0
- package/packages/repo-controls/src/azdo-push.ts +463 -0
- package/packages/repo-controls/src/azure-devops-governance.ts +248 -0
- package/packages/repo-controls/src/azure-devops-remote.ts +61 -0
- package/packages/repo-controls/src/cli.ts +188 -0
- package/packages/repo-controls/src/compliance-config.ts +200 -0
- package/packages/repo-controls/src/config.ts +690 -0
- package/packages/repo-controls/src/constants.ts +97 -0
- package/packages/repo-controls/src/coverage-ratchet.ts +153 -0
- package/packages/repo-controls/src/doc-freshness.ts +172 -0
- package/packages/repo-controls/src/doctor.ts +304 -0
- package/packages/repo-controls/src/findings-ratchet.ts +163 -0
- package/packages/repo-controls/src/gitignore-block.ts +253 -0
- package/packages/repo-controls/src/hook-log.ts +72 -0
- package/packages/repo-controls/src/hook.ts +694 -0
- package/packages/repo-controls/src/install.ts +506 -0
- package/packages/repo-controls/src/integrity.ts +104 -0
- package/packages/repo-controls/src/promote.ts +25 -0
- package/packages/repo-controls/src/runtime.ts +110 -0
- package/packages/repo-controls/src/workflows-drift.ts +106 -0
- package/packages/repo-controls/src/worktree-guard.ts +272 -0
- package/packages/repo-controls/src/worktree-limit.ts +11 -0
- package/packages/repo-controls/tsconfig.json +14 -0
- package/packages/repo-controls/workflows/scripts/release/verify-npm-artifact.ts +119 -0
|
@@ -0,0 +1,791 @@
|
|
|
1
|
+
# Gate profile rows — the single registry.
|
|
2
|
+
#
|
|
3
|
+
# Every gate in the repository is one row here. There is no second profile
|
|
4
|
+
# file: `run.sh` discovers rows with `find "$ADL_PROFILES_DIR" -name '*.yaml'`
|
|
5
|
+
# and concatenates them into one index, so a split across files never had a
|
|
6
|
+
# runtime meaning. Rows are ordered by `id`; the prefix is the domain.
|
|
7
|
+
#
|
|
8
|
+
# A gate is a gate. It has no kind. Every row has an `engine:`, and everything
|
|
9
|
+
# about how the gate runs lives inside it. The row's own attributes are
|
|
10
|
+
# identity and governance only.
|
|
11
|
+
#
|
|
12
|
+
# Row attributes:
|
|
13
|
+
# id domain.slug, lower.kebab. The row's identity everywhere.
|
|
14
|
+
# title one line, what the gate enforces.
|
|
15
|
+
# severity H | M | L. H requires `controls`.
|
|
16
|
+
# controls compliance control ids this gate evidences. Required for H.
|
|
17
|
+
# engine how the gate runs. See below.
|
|
18
|
+
# phases which lifecycle stages admit this row.
|
|
19
|
+
# grants GRANTS. Each entry carries an owner and a reason.
|
|
20
|
+
# remaining = actual - granted; >0 fails, <0 fails (shrink).
|
|
21
|
+
# timeout_ms wall-clock ceiling; exit 124 on breach.
|
|
22
|
+
#
|
|
23
|
+
# engine attributes:
|
|
24
|
+
# rule one ast-grep rule id, or absent -- a row with no rule
|
|
25
|
+
# is dispatched to a Python check by id instead. One
|
|
26
|
+
# gate, at most one rule. Rule ids are
|
|
27
|
+
# unique across every library under `compliance/`, so
|
|
28
|
+
# the id alone resolves the file and no second attribute
|
|
29
|
+
# names the language.
|
|
30
|
+
# scope SCOPE. Ordered list, last match wins, '!' excludes.
|
|
31
|
+
# Not a grant: no signature, nothing to shrink.
|
|
32
|
+
schema: adl.gate-profile/v1
|
|
33
|
+
rows:
|
|
34
|
+
|
|
35
|
+
# ---- coverage ----
|
|
36
|
+
- id: COV-001
|
|
37
|
+
name: backend-crate
|
|
38
|
+
domain: coverage
|
|
39
|
+
title: Run retained backend crate coverage gate
|
|
40
|
+
severity: M
|
|
41
|
+
controls:
|
|
42
|
+
- EC-A.8.29
|
|
43
|
+
engine:
|
|
44
|
+
scope:
|
|
45
|
+
- <rust>/**
|
|
46
|
+
grants: 0
|
|
47
|
+
timeout_ms: 60000
|
|
48
|
+
- id: COV-002
|
|
49
|
+
name: backend-ratchet
|
|
50
|
+
domain: coverage
|
|
51
|
+
title: Reject backend coverage decline below its ratchet
|
|
52
|
+
severity: H
|
|
53
|
+
controls:
|
|
54
|
+
- EC-A.8.28
|
|
55
|
+
engine:
|
|
56
|
+
scope:
|
|
57
|
+
- <rust>/**
|
|
58
|
+
grants: 0
|
|
59
|
+
timeout_ms: 60000
|
|
60
|
+
- id: COV-003
|
|
61
|
+
name: baseline
|
|
62
|
+
domain: coverage
|
|
63
|
+
title: Run retained coverage baseline gate
|
|
64
|
+
severity: M
|
|
65
|
+
controls:
|
|
66
|
+
- EC-A.8.29
|
|
67
|
+
engine:
|
|
68
|
+
scope:
|
|
69
|
+
- <rust>/**
|
|
70
|
+
grants: 0
|
|
71
|
+
timeout_ms: 60000
|
|
72
|
+
- id: COV-004
|
|
73
|
+
name: config-committed
|
|
74
|
+
domain: coverage
|
|
75
|
+
title: Require coverage ratchet data to be committed
|
|
76
|
+
severity: M
|
|
77
|
+
controls:
|
|
78
|
+
- EC-A.8.29
|
|
79
|
+
engine:
|
|
80
|
+
scope:
|
|
81
|
+
- <compliance>/policy/inputs/coverage-baseline.json
|
|
82
|
+
grants: 0
|
|
83
|
+
timeout_ms: 60000
|
|
84
|
+
- id: COV-005
|
|
85
|
+
name: full
|
|
86
|
+
domain: coverage
|
|
87
|
+
title: Run retained coverage gate
|
|
88
|
+
severity: M
|
|
89
|
+
controls:
|
|
90
|
+
- EC-A.8.29
|
|
91
|
+
engine:
|
|
92
|
+
scope:
|
|
93
|
+
- <rust>/**
|
|
94
|
+
- <compliance>/checks/coverage/full/coverage-modules.list
|
|
95
|
+
grants: 0
|
|
96
|
+
timeout_ms: 60000
|
|
97
|
+
|
|
98
|
+
# ---- docs ----
|
|
99
|
+
- id: DOC-001
|
|
100
|
+
name: adr-lifecycle
|
|
101
|
+
domain: docs
|
|
102
|
+
title: Run retained ADR lifecycle gate
|
|
103
|
+
severity: M
|
|
104
|
+
controls:
|
|
105
|
+
- EC-A.5.37
|
|
106
|
+
engine:
|
|
107
|
+
scope:
|
|
108
|
+
- <docs>/decisions/**
|
|
109
|
+
grants: 0
|
|
110
|
+
timeout_ms: 60000
|
|
111
|
+
- id: DOC-002
|
|
112
|
+
name: english-only
|
|
113
|
+
domain: docs
|
|
114
|
+
title: Run retained English-only gate
|
|
115
|
+
severity: M
|
|
116
|
+
controls:
|
|
117
|
+
- EC-A.5.37
|
|
118
|
+
engine:
|
|
119
|
+
scope:
|
|
120
|
+
- '**'
|
|
121
|
+
# This package's OWN test data is not prose it may grade. The
|
|
122
|
+
# english-only fixtures are deliberately Han text -- they exist to prove
|
|
123
|
+
# the check detects it -- so grading them made the gate permanently red
|
|
124
|
+
# against its own repository. Same spelling as the sixteen rows already
|
|
125
|
+
# normalised; do not invent a seventh.
|
|
126
|
+
- '!**/fixtures/**'
|
|
127
|
+
# Colocated test modules, same reason and the same shape as the existing
|
|
128
|
+
# `!**/{*_test.rs,*_tests.rs,...}` exclusion seven other rows carry: this
|
|
129
|
+
# package puts `test_check.py` BESIDE `check.py`, so a `fixtures/` glob
|
|
130
|
+
# cannot reach it. `docs/english_only/test_check.py` holds Han text
|
|
131
|
+
# inline to prove the detector fires.
|
|
132
|
+
# COVERAGE COST, stated not buried: 93 colocated `test_*.py` files stop
|
|
133
|
+
# being graded for english-only. Accepted because a test asserting a
|
|
134
|
+
# non-English string is indistinguishable, to this check, from prose
|
|
135
|
+
# written in the wrong language.
|
|
136
|
+
- '!**/test_*.py'
|
|
137
|
+
# Same reasoning, the TypeScript-shaped colocated test file: this scope
|
|
138
|
+
# excluded `test_*.py` but nothing that names a TypeScript test the way
|
|
139
|
+
# every managed repo's own convention does. Caught live against
|
|
140
|
+
# enact-vps-m5: `global-tools/test/install-embedding-model.test.ts`
|
|
141
|
+
# asserts that `selectVocabulary` DROPS non-Latin-script tokens, and
|
|
142
|
+
# embeds a CJK literal as the negative-test input -- exactly
|
|
143
|
+
# the "test asserting a non-English string" case above, just in `.ts`
|
|
144
|
+
# rather than `.py`. COVERAGE COST, stated not buried: 548 colocated
|
|
145
|
+
# `*.test.ts`/`*.test.tsx` files across the four managed repos
|
|
146
|
+
# (enact-m5 400, enact-vps-m5 134, enact-repo-controls-m5 14,
|
|
147
|
+
# enact-extensions 0) stop being graded for english-only.
|
|
148
|
+
- '!**/*.test.ts'
|
|
149
|
+
- '!**/*.test.tsx'
|
|
150
|
+
# The four exclusions removed here named
|
|
151
|
+
# `<typescript>/packages/desktop/...` and `<typescript>/tests/unit/...`
|
|
152
|
+
# -- one repository's files written into the shared package. Measured
|
|
153
|
+
# before removing: 0 of the 4 exist in ANY of the four managed
|
|
154
|
+
# repositories, so they excluded nothing anywhere. If a consumer ever
|
|
155
|
+
# has legitimately non-English source, it declares that itself.
|
|
156
|
+
grants: 0
|
|
157
|
+
timeout_ms: 60000
|
|
158
|
+
- id: DOC-004
|
|
159
|
+
name: index-updated
|
|
160
|
+
domain: docs
|
|
161
|
+
title: Run retained docs-index gate
|
|
162
|
+
severity: M
|
|
163
|
+
controls:
|
|
164
|
+
- EC-A.5.37
|
|
165
|
+
engine:
|
|
166
|
+
scope:
|
|
167
|
+
- <docs>/**
|
|
168
|
+
grants: 0
|
|
169
|
+
timeout_ms: 60000
|
|
170
|
+
- id: DOC-005
|
|
171
|
+
name: markdown-ast
|
|
172
|
+
domain: docs
|
|
173
|
+
title: Parse Markdown through the retained AST gate
|
|
174
|
+
severity: M
|
|
175
|
+
controls:
|
|
176
|
+
- EC-A.5.37
|
|
177
|
+
engine:
|
|
178
|
+
scope:
|
|
179
|
+
- '<docs>/**'
|
|
180
|
+
- '<plans>/**'
|
|
181
|
+
grants: 0
|
|
182
|
+
timeout_ms: 60000
|
|
183
|
+
- id: DOC-006
|
|
184
|
+
name: okf-profile
|
|
185
|
+
domain: docs
|
|
186
|
+
title: Require documents to satisfy their OKF profile
|
|
187
|
+
severity: M
|
|
188
|
+
controls:
|
|
189
|
+
- EC-A.5.37
|
|
190
|
+
engine:
|
|
191
|
+
# docs/ only. The plans tree is deliberately NOT here: its
|
|
192
|
+
# frontmatter answers to the board -- `status` is a work item state,
|
|
193
|
+
# `work_item` is a link, `type` is pbi or bug -- and forcing it through
|
|
194
|
+
# the OKF register meant bending `common_required` for every other
|
|
195
|
+
# document kind to suit it. LAY-009 owns plans/ frontmatter instead.
|
|
196
|
+
scope:
|
|
197
|
+
- <docs>/**
|
|
198
|
+
# A holding area for work that is not yet a Feature on the board. It has
|
|
199
|
+
# no OKF profile by design: grading it would force a plan to be filed as
|
|
200
|
+
# architecture, which is the misclassification this tree exists to avoid.
|
|
201
|
+
- '!<docs>/proposals/**'
|
|
202
|
+
# DISABLED 2026-09-15, pending a real compliance audit. The Compliance
|
|
203
|
+
# Assessment profile wants control_ids, owner, review_frequency and
|
|
204
|
+
# evidence_retention -- audit metadata a writer cannot infer from the
|
|
205
|
+
# document. The one page here is a running gap register, a chronological
|
|
206
|
+
# log of findings and their evidence, which is no more a compliance
|
|
207
|
+
# assessment than a knowledge index is a document about the system
|
|
208
|
+
# (5e257e0 excluded indexes for that reason). Re-enable with the audit.
|
|
209
|
+
- '!<docs>/compliance/**'
|
|
210
|
+
# Tree guides are not OKF documents. AGENTS.md and CLAUDE.md say what
|
|
211
|
+
# belongs in a directory; they are governed by layout.agents-layout,
|
|
212
|
+
# and no profile here describes them — so grading them only ever
|
|
213
|
+
# reports "no profile matches this path" for files that correctly have
|
|
214
|
+
# none.
|
|
215
|
+
- '!<docs>/**/AGENTS.md'
|
|
216
|
+
- '!<docs>/AGENTS.md'
|
|
217
|
+
- '!<docs>/**/CLAUDE.md'
|
|
218
|
+
- '!<docs>/CLAUDE.md'
|
|
219
|
+
# A knowledge index is a catalog of a tree, not a document about the
|
|
220
|
+
# system. docs.indexes (KNW-001) already declares what frontmatter and
|
|
221
|
+
# sections each index must carry and grades it against the inventory it
|
|
222
|
+
# catalogues; judging it a second time against the profile of the tree
|
|
223
|
+
# it indexes asks it to be an architecture page as well as the list of
|
|
224
|
+
# them.
|
|
225
|
+
- '!<docs>/**/index.md'
|
|
226
|
+
grants: 0
|
|
227
|
+
timeout_ms: 60000
|
|
228
|
+
- id: DOC-007
|
|
229
|
+
name: semantics
|
|
230
|
+
domain: docs
|
|
231
|
+
title: Run retained documentation semantics gate
|
|
232
|
+
severity: M
|
|
233
|
+
controls:
|
|
234
|
+
- EC-A.5.37
|
|
235
|
+
engine:
|
|
236
|
+
scope:
|
|
237
|
+
- <docs>/**
|
|
238
|
+
grants: 0
|
|
239
|
+
timeout_ms: 60000
|
|
240
|
+
|
|
241
|
+
# ---- frontend ----
|
|
242
|
+
- id: DOC-008
|
|
243
|
+
name: indexes
|
|
244
|
+
domain: docs
|
|
245
|
+
title: Run retained knowledge-index gate
|
|
246
|
+
severity: M
|
|
247
|
+
controls:
|
|
248
|
+
- EC-A.5.37
|
|
249
|
+
engine:
|
|
250
|
+
scope:
|
|
251
|
+
- '<docs>/*.md'
|
|
252
|
+
- '<plans>/*.md'
|
|
253
|
+
- '<docs>/**/*.md'
|
|
254
|
+
- '<plans>/**/*.md'
|
|
255
|
+
grants: 0
|
|
256
|
+
timeout_ms: 60000
|
|
257
|
+
- id: DOC-009
|
|
258
|
+
name: ledger
|
|
259
|
+
domain: docs
|
|
260
|
+
title: Run retained knowledge-ledger gate
|
|
261
|
+
severity: M
|
|
262
|
+
controls:
|
|
263
|
+
- EC-A.5.37
|
|
264
|
+
engine:
|
|
265
|
+
# INVERTED 2026-09-17: the artifact this gate validates is
|
|
266
|
+
# `<plans>/LEDGER.md`, not `<plans>/LEDGER.yaml`. The Markdown ledger is
|
|
267
|
+
# already selected by `<plans>/*.md` below, so it needs no entry of its
|
|
268
|
+
# own; the `LEDGER.yaml` entry STAYS so that touching a leftover YAML
|
|
269
|
+
# ledger still runs the gate that now reports it as superseded. A stale
|
|
270
|
+
# scope is a silent pass (K-17).
|
|
271
|
+
#
|
|
272
|
+
# Still not covered: the gate also checks that every ref names an
|
|
273
|
+
# existing path, and those point at arbitrary repository files, not
|
|
274
|
+
# only Markdown. Deleting a non-Markdown ref target does not trigger this
|
|
275
|
+
# row. Widening to `**` would run the gate on every change in the
|
|
276
|
+
# repository, which is a scheduling decision, not a scope correction.
|
|
277
|
+
scope:
|
|
278
|
+
- <plans>/LEDGER.yaml
|
|
279
|
+
- '<docs>/*.md'
|
|
280
|
+
- '<plans>/*.md'
|
|
281
|
+
- '<docs>/**/*.md'
|
|
282
|
+
- '<plans>/**/*.md'
|
|
283
|
+
grants: 0
|
|
284
|
+
timeout_ms: 60000
|
|
285
|
+
- id: DOC-010
|
|
286
|
+
name: closed-set
|
|
287
|
+
domain: docs
|
|
288
|
+
title: Require the declared docs/ folder shape
|
|
289
|
+
severity: M
|
|
290
|
+
controls:
|
|
291
|
+
- EC-A.5.36
|
|
292
|
+
engine:
|
|
293
|
+
# `docs.semantics` (DOC-007) filters to a fixed collection list before it
|
|
294
|
+
# grades a single page, but a path outside that list is never selected —
|
|
295
|
+
# it does not reach a branch that could name it (plans/GAPS-AND-FINDINGS.md,
|
|
296
|
+
# "docs/ has no closed-set check"). This gate reads the docs-root listing
|
|
297
|
+
# directly and reports anything undeclared, the same shape LAY-012 uses
|
|
298
|
+
# for the repository root.
|
|
299
|
+
scope:
|
|
300
|
+
- '<docs>/*'
|
|
301
|
+
- '<docs>/**'
|
|
302
|
+
grants: 0
|
|
303
|
+
timeout_ms: 60000
|
|
304
|
+
|
|
305
|
+
# ---- layout ----
|
|
306
|
+
- id: LAY-001
|
|
307
|
+
name: agents-layout
|
|
308
|
+
domain: layout
|
|
309
|
+
title: Run retained AGENTS layout gate
|
|
310
|
+
severity: M
|
|
311
|
+
controls:
|
|
312
|
+
- EC-A.5.36
|
|
313
|
+
engine:
|
|
314
|
+
# `**/…` needs a slash, so it cannot match the repository-root pair. That
|
|
315
|
+
# was invisible while the gate walked the index itself and filtered by
|
|
316
|
+
# basename; now that the row is the only scope, the root AGENTS.md has to
|
|
317
|
+
# be named or rule 2 stops checking the one guide every other one hangs
|
|
318
|
+
# off. Same shape as framework.recipe-references, which lists `AGENTS.md`
|
|
319
|
+
# and `**/AGENTS.md` for the same reason.
|
|
320
|
+
# Fixtures are excluded, last match winning over the `**/` include above.
|
|
321
|
+
# A fixture corpus under compliance/fixtures/ is a miniature repo tree,
|
|
322
|
+
# so it carries docs/AGENTS.md and friends as TEST INPUT -- with no
|
|
323
|
+
# sibling CLAUDE.md, correctly, because a fixture is not a guide. This
|
|
324
|
+
# row is now the gate's only scope, so the exclusion has to be stated
|
|
325
|
+
# here; while the gate walked the index itself and filtered by basename
|
|
326
|
+
# the omission was invisible. Same pattern, same reason, as
|
|
327
|
+
# layout.markdown-trees below.
|
|
328
|
+
scope:
|
|
329
|
+
- '{AGENTS,CLAUDE}.md'
|
|
330
|
+
- '**/{AGENTS,CLAUDE}.md'
|
|
331
|
+
- <compliance>/checks/layout/agents-layout/check.sh
|
|
332
|
+
- '!**/fixtures/**'
|
|
333
|
+
grants: 0
|
|
334
|
+
timeout_ms: 60000
|
|
335
|
+
- id: LAY-002
|
|
336
|
+
name: ci-paths
|
|
337
|
+
domain: layout
|
|
338
|
+
title: Run retained CI paths gate
|
|
339
|
+
severity: M
|
|
340
|
+
controls:
|
|
341
|
+
- EC-A.5.36
|
|
342
|
+
engine:
|
|
343
|
+
scope:
|
|
344
|
+
- <workflows>/{scripts,pipelines,config}/**
|
|
345
|
+
# The gate reads a path-shaped STRING; it cannot tell one the script will
|
|
346
|
+
# open from one it merely contains. In a test harness that difference is
|
|
347
|
+
# the whole file: `*coverage/command.ts*) exit 0 ;;` is a stub's case
|
|
348
|
+
# pattern, and `printf 'path="infra/.local/foo"' >"$FIXTURE/good.sh"` is
|
|
349
|
+
# the script WRITING its own fixture. Both were reported as CI
|
|
350
|
+
# referencing an invisible path.
|
|
351
|
+
#
|
|
352
|
+
# Same shape as LAY-014's `!<workflows>/scripts/**/fixtures/**`, one
|
|
353
|
+
# level up. COVERAGE COST, stated rather than buried: this drops 19 of
|
|
354
|
+
# enact-m5's 44 `workflows/scripts/` files (43%) from the gate. The risk
|
|
355
|
+
# it trades away is small — a TEST that truly needs a gitignored file
|
|
356
|
+
# fails loudly in CI, whereas a production CI script referencing one can
|
|
357
|
+
# silently skip, and production scripts are all still graded.
|
|
358
|
+
- '!<workflows>/scripts/tests/**'
|
|
359
|
+
grants: 0
|
|
360
|
+
timeout_ms: 60000
|
|
361
|
+
- id: LAY-004
|
|
362
|
+
name: directory-ratchet
|
|
363
|
+
domain: layout
|
|
364
|
+
title: Prevent directory shape growth across every registered tree
|
|
365
|
+
severity: M
|
|
366
|
+
controls:
|
|
367
|
+
- EC-A.5.36
|
|
368
|
+
engine:
|
|
369
|
+
scope:
|
|
370
|
+
- <typescript>/**
|
|
371
|
+
- <rust>/**
|
|
372
|
+
- <infra>/**
|
|
373
|
+
- <dev>/**
|
|
374
|
+
- <workflows>/**
|
|
375
|
+
# A single '*' cannot cross a '/': it is one path segment, not "the rest
|
|
376
|
+
# of the subtree". Confirmed live against this checkout, not just the
|
|
377
|
+
# ported test fixture — locales/de/common.json sits two segments below
|
|
378
|
+
# locales/, and real crate/build/terraform files sit at varying depths
|
|
379
|
+
# below their prefix (`rg`/`find` measured 2 and 4 segments for
|
|
380
|
+
# Cargo.toml, 4 for build.rs, 2 through 5 for main.tf) — every nested
|
|
381
|
+
# occurrence was silently unexcluded until these five became '**'.
|
|
382
|
+
- '!<typescript>/packages/desktop/src/renderer/services/i18n/locales/**'
|
|
383
|
+
- '!<rust>/crates/enact-app/assets/builtin-skills/**'
|
|
384
|
+
- '!<rust>/crates/enact-app/assets/builtin-harnesses/*'
|
|
385
|
+
- '!<dev>/seed/access/*'
|
|
386
|
+
- '!<dev>/seed/infra/*'
|
|
387
|
+
- '!<dev>/seed/tenancy/*'
|
|
388
|
+
- '!<dev>/scripts/*'
|
|
389
|
+
- '!<dev>/ops/*'
|
|
390
|
+
- '!**/Cargo.toml'
|
|
391
|
+
- '!**/build.rs'
|
|
392
|
+
- '!**/main.tf'
|
|
393
|
+
# No named-input entry for the ratchet register: it is package data now
|
|
394
|
+
# (src/adl_compliance/checks/layout/directory_ratchet/grants.yaml,
|
|
395
|
+
# read via `resources`, not a consumer path), so editing it does not
|
|
396
|
+
# select this gate -- the same known gap DOC-006's packaged profile
|
|
397
|
+
# register has (see INVARIANTS.md, "What is not true yet").
|
|
398
|
+
# Tree-scoped only. Every verdict is a directory's DIRECT FILE COUNT, which
|
|
399
|
+
# is only knowable by listing all of that directory's children: on a diff
|
|
400
|
+
# scope DIR-002 can never fire and DIR-001's single-file rule misfires on
|
|
401
|
+
# any directory with exactly one file in the change. The check previously
|
|
402
|
+
# sat on these incremental phases and covered for it by scanning the whole
|
|
403
|
+
# tree anyway and then filtering the report -- the hidden walk this sweep
|
|
404
|
+
# removes. `full` (`selects: all-rows`) picks this row up regardless.
|
|
405
|
+
# Not an exception catalogue: `structural_grant = True` on the check
|
|
406
|
+
# already forces the allowance to 0 regardless of this field. The ratchet
|
|
407
|
+
# register itself is package data, read via `resources` (see check.py).
|
|
408
|
+
grants: 0
|
|
409
|
+
timeout_ms: 60000
|
|
410
|
+
- id: LAY-006
|
|
411
|
+
name: markdown-trees
|
|
412
|
+
domain: layout
|
|
413
|
+
title: Require Markdown in approved documentation trees
|
|
414
|
+
severity: M
|
|
415
|
+
controls:
|
|
416
|
+
- EC-A.5.36
|
|
417
|
+
engine:
|
|
418
|
+
# `.mdx` is here because the gate has always graded it -- its pathspecs
|
|
419
|
+
# named `'*.md' '*.mdx'` -- while the row named only `.md`. That gap cost
|
|
420
|
+
# nothing while the row's scope was inert; once the scope became the
|
|
421
|
+
# authority over the file set it would have silently stopped checking
|
|
422
|
+
# every .mdx page, which is the failure mode a narrower-than-the-gate row
|
|
423
|
+
# produces: no error, just less checked than the row appears to promise.
|
|
424
|
+
# `!**/fixtures/**` last, because last match wins: a corpus is a
|
|
425
|
+
# directory of files in the exact shapes a gate forbids, so a fixture for
|
|
426
|
+
# ANY rule looks like a violation of this one. The same exclusion is
|
|
427
|
+
# already carried by framework.no-silent-degrade for the same reason.
|
|
428
|
+
scope:
|
|
429
|
+
- '*.md'
|
|
430
|
+
- '**/*.md'
|
|
431
|
+
- '*.mdx'
|
|
432
|
+
- '**/*.mdx'
|
|
433
|
+
- '!**/fixtures/**'
|
|
434
|
+
grants: 0
|
|
435
|
+
timeout_ms: 60000
|
|
436
|
+
- id: LAY-008
|
|
437
|
+
name: placement
|
|
438
|
+
domain: layout
|
|
439
|
+
title: Run retained placement gate
|
|
440
|
+
severity: M
|
|
441
|
+
controls:
|
|
442
|
+
- EC-A.5.36
|
|
443
|
+
engine:
|
|
444
|
+
scope:
|
|
445
|
+
- '*'
|
|
446
|
+
- '*.{log,tmp,bak,swp}'
|
|
447
|
+
- '**/*.{log,tmp,bak,swp}'
|
|
448
|
+
- <compliance>/checks/layout/placement/check.sh
|
|
449
|
+
# The corpora under placement-allowed/ and placement-stray/ are the
|
|
450
|
+
# gate's own test input: enumerated asset paths, a screenshot, a
|
|
451
|
+
# markdown file inside a crate src/ tree, and a file under retired
|
|
452
|
+
# apps/. Graded as production content they are exactly the findings
|
|
453
|
+
# the gate exists to raise.
|
|
454
|
+
- '!**/fixtures/**'
|
|
455
|
+
grants: 0
|
|
456
|
+
timeout_ms: 60000
|
|
457
|
+
- id: LAY-009
|
|
458
|
+
name: plans-layout
|
|
459
|
+
domain: layout
|
|
460
|
+
title: Run retained plans-layout gate
|
|
461
|
+
severity: M
|
|
462
|
+
controls:
|
|
463
|
+
- EC-A.5.36
|
|
464
|
+
engine:
|
|
465
|
+
scope:
|
|
466
|
+
- <plans>/**
|
|
467
|
+
grants: 0
|
|
468
|
+
timeout_ms: 60000
|
|
469
|
+
- id: LAY-010
|
|
470
|
+
name: profile-data
|
|
471
|
+
domain: layout
|
|
472
|
+
title: Enforce data-backed layout profile predicates
|
|
473
|
+
severity: M
|
|
474
|
+
controls:
|
|
475
|
+
- EC-A.5.36
|
|
476
|
+
engine:
|
|
477
|
+
# The two `*.md` globs are removed. They are residue from the multi-mode
|
|
478
|
+
# profile-data.sh this engine was split out of: its `layout.markdown-trees`
|
|
479
|
+
# branch read Markdown, and that branch now lives in its own gate
|
|
480
|
+
# (check-markdown-tree-location.sh) with its own row. This engine reads
|
|
481
|
+
# PostgreSQL migrations and nothing else, so the globs only made every
|
|
482
|
+
# documentation change schedule a gate with nothing to say. A stale scope
|
|
483
|
+
# is a silent pass in one direction and dead work in the other (K-17).
|
|
484
|
+
scope:
|
|
485
|
+
- <rust>/crates/**
|
|
486
|
+
grants: 0
|
|
487
|
+
timeout_ms: 60000
|
|
488
|
+
- id: LAY-011
|
|
489
|
+
name: references
|
|
490
|
+
domain: layout
|
|
491
|
+
title: Run retained references gate
|
|
492
|
+
severity: M
|
|
493
|
+
controls:
|
|
494
|
+
- EC-A.5.36
|
|
495
|
+
engine:
|
|
496
|
+
# `.plans/c_done/**` is excluded here because the gate used to exclude it
|
|
497
|
+
# in its own code, and an exclusion belongs in the row rather than in a
|
|
498
|
+
# second surface inside the check. A completed plan is a historical
|
|
499
|
+
# record: it names paths that were real when it was written, and it is
|
|
500
|
+
# not rewritten when they move. Note the exclusion never took effect --
|
|
501
|
+
# it lived in a `git ls-files -z` branch whose reader dropped the whole
|
|
502
|
+
# stream (see the check's header) -- so this states the intent for the
|
|
503
|
+
# first time rather than preserving a measured behaviour.
|
|
504
|
+
scope:
|
|
505
|
+
- '<docs>/**'
|
|
506
|
+
- '<plans>/**'
|
|
507
|
+
- '!<plans>/c_done/**'
|
|
508
|
+
grants: 0
|
|
509
|
+
timeout_ms: 60000
|
|
510
|
+
- id: LAY-012
|
|
511
|
+
name: root-closed-set
|
|
512
|
+
domain: layout
|
|
513
|
+
title: Require the declared repository root shape
|
|
514
|
+
severity: M
|
|
515
|
+
controls:
|
|
516
|
+
- EC-A.5.36
|
|
517
|
+
engine:
|
|
518
|
+
# The negations are gitignored local working state at the repository
|
|
519
|
+
# root. They are not new policy: the gate reached the same answer through
|
|
520
|
+
# `git ls-files`, whose index omits every ignored path, so the tolerance
|
|
521
|
+
# already existed — it just lived inside the mechanism where no reviewer
|
|
522
|
+
# could see it. The gate no longer asks git, so the row has to say it.
|
|
523
|
+
#
|
|
524
|
+
# The patterns carry `/**` because the gate reads FULL PATHS and recovers
|
|
525
|
+
# depth 1 from them, the way the `git ls-files` version did. An interim
|
|
526
|
+
# version listed depth-1 names directly with `find -maxdepth 1` and these
|
|
527
|
+
# were bare (`!.cache`); that traversal is gone, so a bare name would now
|
|
528
|
+
# match nothing and the exclusion would be silently inert (K-17).
|
|
529
|
+
#
|
|
530
|
+
# `.git` is here because set_scope_paths' no-set-given traversal is a
|
|
531
|
+
# plain `find` that would otherwise descend into it; git's index never
|
|
532
|
+
# did. `.code-review-graph` is deliberately NOT excluded: it is untracked
|
|
533
|
+
# but declared in the gate's ALLOWED_DIRS, so it must stay visible or the
|
|
534
|
+
# declared-but-missing arm would report it.
|
|
535
|
+
scope:
|
|
536
|
+
- '**'
|
|
537
|
+
- '!.git/**'
|
|
538
|
+
- '!.DS_Store'
|
|
539
|
+
- '!.cache/**'
|
|
540
|
+
- '!.enactrs/**'
|
|
541
|
+
- '!.pytest_cache/**'
|
|
542
|
+
- '!.ruff_cache/**'
|
|
543
|
+
- '!.scratch/**'
|
|
544
|
+
grants: 0
|
|
545
|
+
timeout_ms: 60000
|
|
546
|
+
- id: LAY-013
|
|
547
|
+
name: root-markdown-allowlist
|
|
548
|
+
domain: layout
|
|
549
|
+
title: Run retained root Markdown allowlist gate
|
|
550
|
+
severity: M
|
|
551
|
+
controls:
|
|
552
|
+
- EC-A.5.36
|
|
553
|
+
engine:
|
|
554
|
+
# `!**/fixtures/**` for the same reason layout.markdown-trees and
|
|
555
|
+
# framework.recipe-references carry it: a gate's fixture corpus is by
|
|
556
|
+
# construction a directory of the exact shapes that gate forbids, so
|
|
557
|
+
# grading it reports every fixture as a violation of itself.
|
|
558
|
+
#
|
|
559
|
+
# This only became visible when the gate stopped calling `git ls-files`,
|
|
560
|
+
# which lists TRACKED files only — a newly added, still-untracked
|
|
561
|
+
# Markdown file was never graded until someone committed it. The runner's
|
|
562
|
+
# set is changed files, untracked ones included, so the exclusion has to
|
|
563
|
+
# be stated rather than fall out of the mechanism.
|
|
564
|
+
scope:
|
|
565
|
+
- '*.md'
|
|
566
|
+
- '**/README.md'
|
|
567
|
+
- '!**/fixtures/**'
|
|
568
|
+
grants: 0
|
|
569
|
+
timeout_ms: 60000
|
|
570
|
+
- id: LAY-014
|
|
571
|
+
name: scripts-size-depth
|
|
572
|
+
domain: layout
|
|
573
|
+
title: Bound workflow script directory size and depth
|
|
574
|
+
severity: M
|
|
575
|
+
controls:
|
|
576
|
+
- EC-A.5.36
|
|
577
|
+
engine:
|
|
578
|
+
# The fixture exclusion is not new policy. The gate applied it in code,
|
|
579
|
+
# switched on by comparing its own resolved root against
|
|
580
|
+
# `git rev-parse --show-toplevel`; eleven of its twelve findings were
|
|
581
|
+
# meta-gate fixtures that mirror a .workflows/scripts tree inside
|
|
582
|
+
# themselves, so the gate measured the mirror instead of the real
|
|
583
|
+
# directory. The exclusion moves here, where it is reviewable, and it
|
|
584
|
+
# applies in every run rather than only when the gate decided it was
|
|
585
|
+
# looking at the real repository.
|
|
586
|
+
scope:
|
|
587
|
+
- <workflows>/scripts/**
|
|
588
|
+
- '!<workflows>/scripts/**/fixtures/**'
|
|
589
|
+
grants: 0
|
|
590
|
+
timeout_ms: 60000
|
|
591
|
+
|
|
592
|
+
- id: LAY-016
|
|
593
|
+
name: open-work-cap
|
|
594
|
+
domain: layout
|
|
595
|
+
title: No open plans or open gaps
|
|
596
|
+
severity: M
|
|
597
|
+
controls:
|
|
598
|
+
- EC-A.5.36
|
|
599
|
+
engine:
|
|
600
|
+
scope:
|
|
601
|
+
- <plans>/**
|
|
602
|
+
grants: 0
|
|
603
|
+
timeout_ms: 60000
|
|
604
|
+
|
|
605
|
+
# ---- lfs ----
|
|
606
|
+
- id: LFS-001
|
|
607
|
+
name: integrity
|
|
608
|
+
domain: lfs
|
|
609
|
+
title: Every blob over 1 MiB enters Git through LFS
|
|
610
|
+
severity: M
|
|
611
|
+
controls:
|
|
612
|
+
- EC-A.8.9
|
|
613
|
+
engine:
|
|
614
|
+
scope:
|
|
615
|
+
- '**'
|
|
616
|
+
# The LFS fixtures are deliberately oversized binaries committed WITHOUT
|
|
617
|
+
# LFS -- that is precisely what they prove the check detects. Grading
|
|
618
|
+
# them means a package that fixture-tests "large blobs must use LFS"
|
|
619
|
+
# can never pass its own gate.
|
|
620
|
+
- '!**/fixtures/**'
|
|
621
|
+
grants: 0
|
|
622
|
+
timeout_ms: 60000
|
|
623
|
+
|
|
624
|
+
- id: PIP-004
|
|
625
|
+
name: phase-disjoint
|
|
626
|
+
domain: pipeline
|
|
627
|
+
title: Enforce phase mutual exclusion across every registry row
|
|
628
|
+
severity: M
|
|
629
|
+
controls:
|
|
630
|
+
- EC-A.5.36
|
|
631
|
+
engine:
|
|
632
|
+
# Scope is SELECTION, not resolution. The check finds the registry
|
|
633
|
+
# structurally, from its own position in the package, and that is why it
|
|
634
|
+
# needs no path here to READ it -- but scope decides whether a changed
|
|
635
|
+
# file makes this row run at all, and an empty scope matches nothing. The
|
|
636
|
+
# gate that enforces phase disjointness across the registry was therefore
|
|
637
|
+
# never selected by a change to the registry: the one edit that can break
|
|
638
|
+
# it was the one edit that did not run it.
|
|
639
|
+
scope:
|
|
640
|
+
- <compliance>/policy/gate-registry.yaml
|
|
641
|
+
grants: 0
|
|
642
|
+
timeout_ms: 60000
|
|
643
|
+
|
|
644
|
+
# ---- repository ----
|
|
645
|
+
- id: REP-001
|
|
646
|
+
name: license-declared
|
|
647
|
+
domain: repository
|
|
648
|
+
title: Repository ships the licence it declares
|
|
649
|
+
severity: M
|
|
650
|
+
controls:
|
|
651
|
+
- EC-A.5.32
|
|
652
|
+
engine:
|
|
653
|
+
scope:
|
|
654
|
+
# Two files, because the gate asks two things: does LICENSE exist, and
|
|
655
|
+
# does it match what `[controls.compliance].license` declares. Both are
|
|
656
|
+
# structural — asserted BY PATH, since LICENSE-MISSING is about a file's
|
|
657
|
+
# ABSENCE and an absent file is in no file set. They are listed so the
|
|
658
|
+
# runner selects this row when either side of the pair changes.
|
|
659
|
+
#
|
|
660
|
+
# What used to be here — NOTICE, three manifests, five root documents,
|
|
661
|
+
# all of `docs/`, a donor-brand exclusion for `.donors/aionui/` — served
|
|
662
|
+
# rules that required the Apache License 2.0 text and scanned prose for
|
|
663
|
+
# another estate's brand names. Removed 2026-09-15 with those rules: the
|
|
664
|
+
# licence is the repository's declaration, not this package's answer.
|
|
665
|
+
- LICENSE
|
|
666
|
+
- adl-config.toml
|
|
667
|
+
grants: 0
|
|
668
|
+
timeout_ms: 60000
|
|
669
|
+
- id: REP-002
|
|
670
|
+
name: lockfile-integrity
|
|
671
|
+
domain: repository
|
|
672
|
+
title: Require present and Cargo-valid lockfiles
|
|
673
|
+
severity: H
|
|
674
|
+
controls:
|
|
675
|
+
- EC-A.5.21
|
|
676
|
+
engine:
|
|
677
|
+
scope:
|
|
678
|
+
- <rust>/Cargo.toml
|
|
679
|
+
- <rust>/Cargo.lock
|
|
680
|
+
- <typescript>/package.json
|
|
681
|
+
- <typescript>/bun.lock
|
|
682
|
+
grants: 0
|
|
683
|
+
timeout_ms: 60000
|
|
684
|
+
- id: REP-004
|
|
685
|
+
name: no-banned-commands
|
|
686
|
+
domain: repository
|
|
687
|
+
title: Forbid banned command invocations in shell scripts and justfiles
|
|
688
|
+
severity: M
|
|
689
|
+
controls:
|
|
690
|
+
- EC-A.5.36
|
|
691
|
+
engine:
|
|
692
|
+
scope:
|
|
693
|
+
# Both GIT-001 (no version-control invocation) and GRP-001 (no
|
|
694
|
+
# standalone grep, use rg) are restricted to the compliance package --
|
|
695
|
+
# a deliberate, explicit decision (both are compliance gates), not an
|
|
696
|
+
# inherited default. Neither rule is about the rest of the repository,
|
|
697
|
+
# so nothing here is expressed as an extension glob any more: the old
|
|
698
|
+
# repository-wide `*.{sh,bash,...}` list existed only because GRP-001
|
|
699
|
+
# used to run everywhere and needed to exclude non-shell files from a
|
|
700
|
+
# much larger candidate set. Restricted to compliance/**, that ceiling
|
|
701
|
+
# is gone -- check.sh's own shell/justfile filter is enough.
|
|
702
|
+
- <compliance>/**
|
|
703
|
+
# The scope contract itself. `discover_files` lists the tree through the
|
|
704
|
+
# version-control plumbing; every other file in this package reaches it
|
|
705
|
+
# through this one, which is why it is exempted here rather than at each
|
|
706
|
+
# caller. Out of scope, not granted: the rule does not apply to the
|
|
707
|
+
# implementation of the mechanism it exists to make optional everywhere
|
|
708
|
+
# else.
|
|
709
|
+
- '!<compliance>/lib/discovery.sh'
|
|
710
|
+
# The same exemption, on the test side. `_corpus-set.sh` is the one
|
|
711
|
+
# place a fixture enumerates its corpus, and it asks the corpus the
|
|
712
|
+
# same question the runner asks the repository, through the same
|
|
713
|
+
# plumbing -- deliberately, so the set a test hands over is the same
|
|
714
|
+
# KIND of set production hands over. Every converted gate test reaches
|
|
715
|
+
# it through this file, which is why it is exempted here rather than at
|
|
716
|
+
# each caller.
|
|
717
|
+
- '!<compliance>/checks/framework/_corpus-set.sh'
|
|
718
|
+
# EVERY gate's fixture corpus, not just this row's. A fixture is
|
|
719
|
+
# deliberate violation material -- both halves of this row's own corpus
|
|
720
|
+
# contain real invocations on purpose -- and graded as production
|
|
721
|
+
# content it fails the gate it exists to prove. Declared here rather
|
|
722
|
+
# than skipped inside the check: path exclusions carry no default in
|
|
723
|
+
# this tree.
|
|
724
|
+
- '!**/fixtures/**'
|
|
725
|
+
grants: 0
|
|
726
|
+
timeout_ms: 60000
|
|
727
|
+
- id: REP-005
|
|
728
|
+
name: ignored-paths
|
|
729
|
+
domain: repository
|
|
730
|
+
title: Never commit a path .gitignore excludes
|
|
731
|
+
severity: M
|
|
732
|
+
controls:
|
|
733
|
+
- EC-A.5.9
|
|
734
|
+
engine:
|
|
735
|
+
scope:
|
|
736
|
+
- '**'
|
|
737
|
+
grants: 0
|
|
738
|
+
timeout_ms: 60000
|
|
739
|
+
- id: REL-001
|
|
740
|
+
name: changeset-plan
|
|
741
|
+
domain: release
|
|
742
|
+
title: Run retained changeset-plan gate
|
|
743
|
+
severity: M
|
|
744
|
+
controls:
|
|
745
|
+
- EC-A.8.32
|
|
746
|
+
engine:
|
|
747
|
+
scope:
|
|
748
|
+
# The gate's own "release-relevant" case list, which is six paths, not
|
|
749
|
+
# one tree. `.changeset/**` alone understated it by five: while the gate
|
|
750
|
+
# resolved its own diff those five were still tested, so the row and the
|
|
751
|
+
# code disagreed and the code won. Now the row is the narrowing, so a
|
|
752
|
+
# missing entry here is a file the gate can no longer see.
|
|
753
|
+
- .changeset/**
|
|
754
|
+
- VERSION
|
|
755
|
+
- CHANGELOG.md
|
|
756
|
+
- <workflows>/package.json
|
|
757
|
+
- <workflows>/changesets/package.json
|
|
758
|
+
- <workflows>/changesets/bun.lock
|
|
759
|
+
grants: 0
|
|
760
|
+
timeout_ms: 60000
|
|
761
|
+
- id: REL-004
|
|
762
|
+
name: version-release
|
|
763
|
+
domain: release
|
|
764
|
+
title: Run retained version-release gate
|
|
765
|
+
severity: M
|
|
766
|
+
controls:
|
|
767
|
+
- EC-A.8.32
|
|
768
|
+
engine:
|
|
769
|
+
scope:
|
|
770
|
+
# The FOUR files check.sh actually reads: VERSION and CHANGELOG.md
|
|
771
|
+
# directly, plus the two entries in its `versioned_files` array. The
|
|
772
|
+
# prior brace-glob form, `{VERSION,CHANGELOG.md,backend/Cargo.toml,
|
|
773
|
+
# frontend/package.json,.changeset}/**`, appended `/**` after each
|
|
774
|
+
# FILE name -- `_glob_bash_pattern` in lib/glob.sh requires a literal
|
|
775
|
+
# "/" then more characters after the alternation, which a bare file
|
|
776
|
+
# never has, so the pattern matched none of VERSION, CHANGELOG.md,
|
|
777
|
+
# backend/Cargo.toml or frontend/package.json and only `.changeset/**`
|
|
778
|
+
# ever selected this row (K-13: a positive glob matching nothing
|
|
779
|
+
# excludes everything). backend/Cargo.toml (0.1.52) and
|
|
780
|
+
# frontend/package.json (2.1.41) carry their own independent
|
|
781
|
+
# versioning, not the release VERSION (0.0.11) -- check.sh does not
|
|
782
|
+
# read either, so they are not restored here; adding them would
|
|
783
|
+
# trigger this gate for two files it has no logic to grade.
|
|
784
|
+
- VERSION
|
|
785
|
+
- CHANGELOG.md
|
|
786
|
+
- <workflows>/package.json
|
|
787
|
+
- <workflows>/changesets/package.json
|
|
788
|
+
grants: 0
|
|
789
|
+
timeout_ms: 60000
|
|
790
|
+
|
|
791
|
+
# ---- rust ----
|