@amsterdamdatalabs/adl-agent-control-linux-x64 0.1.46 → 0.1.48
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 +1 -1
- package/bin/reconcile +7 -2
- package/package.json +1 -1
- package/packages/agent-hooks/src/rules/impl/git-branch.ts +1 -1
- package/packages/agent-skills/assets/write-feature/SKILL.md +13 -15
- package/bin/lean-ctx-observe-strip +0 -434
- package/bin/lib/lean-ctx-observe-hooks.sh +0 -634
- package/bin/update-azure-agent-pool +0 -29
- package/packages/agent-hooks/src/hooks/lean-ctx/handler.ts +0 -22
- package/packages/agent-hooks/src/hooks/lean-ctx/index.ts +0 -173
- package/packages/agent-hooks/src/hooks/lean-ctx/mapping.ts +0 -121
- package/packages/agent-hooks/src/hooks/lean-ctx/scope-rewrite.ts +0 -207
- package/packages/agent-hooks/src/lean-ctx/env.ts +0 -123
- package/packages/agent-hooks/src/lean-ctx/mcp.ts +0 -142
- package/packages/agent-hooks/src/rules/impl/adl-build-run-denied.ts +0 -51
- package/packages/agent-hooks/src/rules/impl/adl-session-required.ts +0 -403
- package/packages/agent-hooks/src/rules/impl/tool-lean-ctx-global.ts +0 -594
- package/packages/agent-settings/assets/GLOBAL-AGENTS.md +0 -112
- package/packages/agent-settings/assets/lean-ctx/config.toml +0 -42
- package/packages/agent-settings/assets/lean-ctx/gitignore +0 -10
- package/packages/agent-settings/assets/lean-ctx/layout.toml +0 -7
- package/packages/agent-settings/src/deploy/lean-ctx-deploy.ts +0 -230
- package/packages/agent-settings/src/deploy/lean-ctx-merge.ts +0 -580
- package/packages/agent-skills/assets/adl-mechanics/SKILL.md +0 -38
- package/packages/agent-skills/assets/codebase-design/SKILL.md +0 -98
- package/packages/agent-skills/assets/codebase-design/references/DEEPENING.md +0 -37
- package/packages/agent-skills/assets/codebase-design/references/DESIGN-IT-TWICE.md +0 -44
- package/packages/agent-skills/assets/codebase-design/references/TESTABILITY.md +0 -29
- package/packages/agent-skills/assets/debug-issue/SKILL.md +0 -41
- package/packages/agent-skills/assets/domain-modeling/SKILL.md +0 -86
- package/packages/agent-skills/assets/domain-modeling/references/ADR-FORMAT.md +0 -47
- package/packages/agent-skills/assets/domain-modeling/references/CONTEXT-FORMAT.md +0 -60
- package/packages/agent-skills/assets/implement/SKILL.md +0 -28
- package/packages/agent-skills/assets/review-changes/SKILL.md +0 -45
- package/packages/agent-skills/assets/tdd/SKILL.md +0 -49
- package/packages/agent-skills/assets/tdd/references/mocking.md +0 -59
- package/packages/agent-skills/assets/tdd/references/tests.md +0 -77
- package/packages/agent-skills/assets/testing/SKILL.md +0 -54
- package/packages/agent-skills/assets/testing/references/e2e.md +0 -37
- package/packages/agent-skills/assets/testing/references/integration.md +0 -37
- package/packages/agent-skills/assets/testing/references/unit.md +0 -32
- package/packages/agent-skills/assets/to-feature/SKILL.md +0 -91
- package/packages/agent-skills/assets/to-feature/references/FEATURE-SPEC-TEMPLATE.md +0 -88
- package/packages/agent-skills/assets/to-workitems/SKILL.md +0 -90
- package/packages/agent-skills/assets/to-workitems/references/AZURE-DEVOPS-HIERARCHY.md +0 -121
- package/packages/agent-skills/assets/to-workitems/references/TICKET-TEMPLATES.md +0 -70
- package/packages/azdo/src/workflow-rules-matrix.csv +0 -85
- package/packages/fleet/src/launch-agents.ts +0 -649
- package/packages/repo-controls/assets/GLOBAL-INVARIANTS.md +0 -21
- package/packages/repo-controls/assets/enable-integration-auto-complete.mjs +0 -79
- package/packages/repo-controls/assets/scaffold/docs/notes.md +0 -20
- package/packages/repo-controls/assets/scaffold/plans/GAPS-AND-FINDINGS.md +0 -12
- package/packages/repo-controls/azure-pipelines.yml +0 -274
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/fixtures/docs/notes.md +0 -1
- 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 +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-ledger-clean/docs/notes.md +0 -17
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-ledger-no-lines/docs/notes.md +0 -13
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/architecture/product/stable-delivery.md +0 -10
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/architecture/product/stable-recommendation.md +0 -12
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/semantics/fixtures/semantics-violations/docs/architecture/product/target-narration.md +0 -10
- 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 +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-empty-register/frontend/packages/desktop/src/a.ts +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-empty-register/frontend/packages/desktop/src/b.ts +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -2
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-missing-tree/frontend/packages/desktop/src/renderer/solo/item.ts +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-no-ceilings/frontend/packages/desktop/src/a.ts +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-no-ceilings/frontend/packages/desktop/src/b.ts +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-no-ceilings/frontend/packages/desktop/src/c.ts +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-stale-entry/frontend/packages/desktop/src/renderer/solo/item.ts +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/directory_ratchet/fixtures/directory-ratchet-unusable-register/frontend/packages/desktop/src/renderer/solo/item.ts +0 -1
- 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 +0 -5
- 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 +0 -10
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/agent/crates/enact-providers/src/snapshots/README.md +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/frontend/mobile/assets/images/icon.png +0 -1
- 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 +0 -1
- 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 +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/frontend/public/pwa/icon-192.png +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-allowed/frontend/resources/product.png +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/placement/fixtures/placement-stray/backend/crates/enact-session/src/backend/README.md +0 -1
- 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 +0 -12
- 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 +0 -12
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/__init__.py +0 -11
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/check.py +0 -62
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/NotAMigration.sql +0 -1
- 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 +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/001_init.sql +0 -1
- 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 +0 -1
- 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 +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/fixtures/migration-filenames/backend/crates/demo/migrations/004_MixedCase.sql +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/profile_data/test_check.py +0 -116
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-broken/docs/architecture/product/links.md +0 -20
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-broken/docs/architecture/product/route-target.md +0 -8
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-clean/docs/architecture/product/links.md +0 -20
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/references/fixtures/link-targets-clean/docs/architecture/product/route-target.md +0 -8
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_closed_set/fixtures/.changeset/declared.txt +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/root_markdown_allowlist/fixtures/root-markdown-clean/INDEPENDENT-VERIFICATION.md +0 -3
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/attribute-without-conversion/.gitattributes +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/attribute-without-conversion/large file.bin +0 -3
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/clean/.gitattributes +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/clean/large file.bin +0 -3
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/lfs/integrity/fixtures/clean/small.txt +0 -1
- 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 +0 -1
- 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/pipeline/__init__.py +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/__init__.py +0 -12
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/check.py +0 -129
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/fixtures/disjoint/gate-registry.yaml +0 -13
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/fixtures/empty/gate-registry.yaml +0 -7
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/fixtures/overlapping/gate-registry.yaml +0 -13
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/pipeline/phase_disjoint/test_check.py +0 -109
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/__init__.py +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/__init__.py +0 -11
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/check.py +0 -149
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/fixtures/clean/docs/readme.md +0 -4
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/fixtures/relevant/VERSION +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/changeset_plan/test_check.py +0 -151
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/__init__.py +0 -11
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/check.py +0 -202
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/aligned/.workflows/changesets/package.json +0 -5
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/aligned/.workflows/package.json +0 -5
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/aligned/CHANGELOG.md +0 -5
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/aligned/VERSION +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/mismatched/.workflows/changesets/package.json +0 -5
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/mismatched/.workflows/package.json +0 -5
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/mismatched/CHANGELOG.md +0 -5
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/fixtures/mismatched/VERSION +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/release/version_release/test_check.py +0 -162
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/banned_commands/check.py +0 -103
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/backend/Cargo.lock +0 -7
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/backend/Cargo.toml +0 -4
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/backend/rust-toolchain.toml +0 -3
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/backend/src/main.rs +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/clean/frontend/bun.lock +0 -1
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/backend/Cargo.lock +0 -7
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/backend/Cargo.toml +0 -4
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/backend/rust-toolchain.toml +0 -3
- package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/repository/lockfile_integrity/fixtures/empty-bun-lock/backend/src/main.rs +0 -1
- 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/policy/grants-registry.yaml +0 -112
- package/packages/repo-controls/workflows/scripts/release/verify-npm-artifact.ts +0 -119
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
// Managed by adl-repo-controls — do not edit installed copies.
|
|
2
|
-
// Regenerate with: adl-repo-controls install --repo .
|
|
3
|
-
import { pathToFileURL } from 'node:url'
|
|
4
|
-
|
|
5
|
-
export const REQUIRED_ENVIRONMENT_NAMES = Object.freeze([
|
|
6
|
-
'AZURE_DEVOPS_TOKEN',
|
|
7
|
-
'AZURE_DEVOPS_COLLECTION_URI',
|
|
8
|
-
'AZURE_DEVOPS_PROJECT_ID',
|
|
9
|
-
'AZURE_DEVOPS_REPOSITORY_ID',
|
|
10
|
-
'AZURE_DEVOPS_PULL_REQUEST_ID',
|
|
11
|
-
])
|
|
12
|
-
|
|
13
|
-
function requireEnvironment(env) {
|
|
14
|
-
const values = {}
|
|
15
|
-
for (const name of REQUIRED_ENVIRONMENT_NAMES) {
|
|
16
|
-
const value = env[name]?.trim()
|
|
17
|
-
if (!value) throw new Error(`missing required environment: ${name}`)
|
|
18
|
-
values[name] = value
|
|
19
|
-
}
|
|
20
|
-
if (!/^[1-9]\d*$/.test(values.AZURE_DEVOPS_PULL_REQUEST_ID)) {
|
|
21
|
-
throw new Error('AZURE_DEVOPS_PULL_REQUEST_ID must be a positive integer')
|
|
22
|
-
}
|
|
23
|
-
return values
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
async function readResponse(response, action) {
|
|
27
|
-
const text = await response.text()
|
|
28
|
-
if (!response.ok) throw new Error(`${action} failed (${response.status}): ${text || response.statusText}`)
|
|
29
|
-
if (!text) return {}
|
|
30
|
-
try {
|
|
31
|
-
return JSON.parse(text)
|
|
32
|
-
} catch {
|
|
33
|
-
throw new Error(`${action} returned invalid JSON`)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export async function enableIntegrationAutoComplete(env = process.env, fetchImpl = fetch) {
|
|
38
|
-
const {
|
|
39
|
-
AZURE_DEVOPS_TOKEN: token,
|
|
40
|
-
AZURE_DEVOPS_COLLECTION_URI: collectionUri,
|
|
41
|
-
AZURE_DEVOPS_PROJECT_ID: projectId,
|
|
42
|
-
AZURE_DEVOPS_REPOSITORY_ID: repositoryId,
|
|
43
|
-
AZURE_DEVOPS_PULL_REQUEST_ID: pullRequestId,
|
|
44
|
-
} = requireEnvironment(env)
|
|
45
|
-
const baseUrl = collectionUri.endsWith('/') ? collectionUri : `${collectionUri}/`
|
|
46
|
-
const headers = { Authorization: `Bearer ${token}`, Accept: 'application/json' }
|
|
47
|
-
|
|
48
|
-
const identityUrl = new URL('_apis/connectionData?connectOptions=1&lastChangeId=-1&lastChangeId64=-1', baseUrl)
|
|
49
|
-
const identityResponse = await fetchImpl(identityUrl, { headers })
|
|
50
|
-
const connectionData = await readResponse(identityResponse, 'identity lookup')
|
|
51
|
-
const authenticatedUserId = connectionData.authenticatedUser?.id
|
|
52
|
-
if (typeof authenticatedUserId !== 'string' || !authenticatedUserId.trim()) {
|
|
53
|
-
throw new Error('identity lookup returned no authenticated user id')
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const pullRequestUrl = new URL(
|
|
57
|
-
`${encodeURIComponent(projectId)}/_apis/git/repositories/${encodeURIComponent(repositoryId)}/pullRequests/${pullRequestId}?api-version=7.1`,
|
|
58
|
-
baseUrl,
|
|
59
|
-
)
|
|
60
|
-
const updateResponse = await fetchImpl(pullRequestUrl, {
|
|
61
|
-
method: 'PATCH',
|
|
62
|
-
headers: { ...headers, 'Content-Type': 'application/json' },
|
|
63
|
-
body: JSON.stringify({
|
|
64
|
-
autoCompleteSetBy: { id: authenticatedUserId },
|
|
65
|
-
completionOptions: { deleteSourceBranch: true, mergeStrategy: 'squash', transitionWorkItems: false },
|
|
66
|
-
}),
|
|
67
|
-
})
|
|
68
|
-
await readResponse(updateResponse, 'pull request update')
|
|
69
|
-
return { pullRequestId: Number(pullRequestId), authenticatedUserId }
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (process.argv[1] && pathToFileURL(process.argv[1]).href === import.meta.url) {
|
|
73
|
-
enableIntegrationAutoComplete()
|
|
74
|
-
.then(({ pullRequestId }) => console.log(`Enabled auto-complete for PR ${pullRequestId}`))
|
|
75
|
-
.catch((error) => {
|
|
76
|
-
console.error(error instanceof Error ? error.message : error)
|
|
77
|
-
process.exitCode = 1
|
|
78
|
-
})
|
|
79
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
last_update: '2026-10-08T00:00:00Z'
|
|
3
|
-
title: Agent notes ledger
|
|
4
|
-
description: One append-only ledger per repository for every agent, one line when you start a task and one when you finish it.
|
|
5
|
-
type: Operations
|
|
6
|
-
status: stable
|
|
7
|
-
sources: the repository's agent rules (task ledger convention)
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Agent notes ledger
|
|
11
|
-
|
|
12
|
-
A short, append-only log so anyone landing in the repository can see at a glance
|
|
13
|
-
what every agent is doing. Every line is at most 100 characters, format
|
|
14
|
-
`YYYY-MM-DD HH:MM <surface> <note>` (for example
|
|
15
|
-
`2026-10-08 13:30 claude start: add retry to the uploader`). Agents append one
|
|
16
|
-
line when they start a task and one when they finish it. The ledger is never
|
|
17
|
-
edited or sorted; earlier lines are never rewritten, only appended to, newest
|
|
18
|
-
at the bottom.
|
|
19
|
-
|
|
20
|
-
## Lines
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Gaps and findings
|
|
2
|
-
|
|
3
|
-
Anything found while planning or building that is not the work in hand. Each row
|
|
4
|
-
becomes an item file with `item_type: bug`, parented under the same Feature as
|
|
5
|
-
the plan it was found from, so the fix stays attached to the effort that
|
|
6
|
-
surfaced it.
|
|
7
|
-
|
|
8
|
-
Each row states how it was verified, because a finding nobody can re-check is a
|
|
9
|
-
rumour. A row is deleted, not marked done, once it stops being a gap.
|
|
10
|
-
|
|
11
|
-
| Found | Finding | From plan | Item file | Work item |
|
|
12
|
-
| --- | --- | --- | --- | --- |
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
trigger:
|
|
2
|
-
branches:
|
|
3
|
-
include:
|
|
4
|
-
- integration
|
|
5
|
-
- main
|
|
6
|
-
|
|
7
|
-
pr:
|
|
8
|
-
branches:
|
|
9
|
-
include:
|
|
10
|
-
- integration
|
|
11
|
-
|
|
12
|
-
variables:
|
|
13
|
-
- group: enact-dev-secrets
|
|
14
|
-
- name: NODE_VERSION
|
|
15
|
-
value: '22.x'
|
|
16
|
-
|
|
17
|
-
stages:
|
|
18
|
-
# PR validation is intentionally separate from post-merge delivery. A merge
|
|
19
|
-
# into integration must not run the test matrix a second time.
|
|
20
|
-
- stage: Validate
|
|
21
|
-
displayName: Validate pull request
|
|
22
|
-
condition: eq(variables['Build.Reason'], 'PullRequest')
|
|
23
|
-
jobs:
|
|
24
|
-
- job: Build
|
|
25
|
-
displayName: bun install, typecheck, test, and pack
|
|
26
|
-
pool:
|
|
27
|
-
name: Default
|
|
28
|
-
demands:
|
|
29
|
-
- Agent.OS -equals Linux
|
|
30
|
-
strategy:
|
|
31
|
-
maxParallel: 3
|
|
32
|
-
matrix:
|
|
33
|
-
Node22:
|
|
34
|
-
NODE_VERSION: '22.x'
|
|
35
|
-
Node24:
|
|
36
|
-
NODE_VERSION: '24.x'
|
|
37
|
-
Node26:
|
|
38
|
-
NODE_VERSION: '26.x'
|
|
39
|
-
steps:
|
|
40
|
-
- checkout: self
|
|
41
|
-
persistCredentials: true
|
|
42
|
-
path: enact-repo-controls
|
|
43
|
-
- task: UseNode@1
|
|
44
|
-
displayName: Use Node.js $(NODE_VERSION)
|
|
45
|
-
inputs:
|
|
46
|
-
version: $(NODE_VERSION)
|
|
47
|
-
- script: |
|
|
48
|
-
set -euo pipefail
|
|
49
|
-
curl -fsSL https://bun.sh/install | bash -s "bun-v1.4.2"
|
|
50
|
-
echo "##vso[task.prependpath]$HOME/.bun/bin"
|
|
51
|
-
displayName: Install bun 1.4.2
|
|
52
|
-
- script: |
|
|
53
|
-
set -euo pipefail
|
|
54
|
-
cd $(Pipeline.Workspace)/enact-repo-controls
|
|
55
|
-
bun install --frozen-lockfile
|
|
56
|
-
# Scripts run through bun, the repository's runtime, and through the
|
|
57
|
-
# package's own scripts, which carry --coverage and --timeout (locally:
|
|
58
|
-
# `just test repo-controls`). npm stays below only where npm itself is
|
|
59
|
-
# under test -- pack, global install, publish -- because that is how
|
|
60
|
-
# the package reaches its users.
|
|
61
|
-
bun run typecheck
|
|
62
|
-
bun run test
|
|
63
|
-
# The coverage gate. bunfig's flat 100% threshold used to live here by
|
|
64
|
-
# implication -- `npm test` enforced it -- and removing that threshold
|
|
65
|
-
# took CI's only coverage check with it. This is its replacement, and it
|
|
66
|
-
# is deliberate that it runs in CI and not only in the pre-push hook: a
|
|
67
|
-
# hook can be uninstalled, bypassed with --no-verify, or never installed
|
|
68
|
-
# by a fresh clone.
|
|
69
|
-
git fetch --no-tags --depth=50 origin "$(Build.SourceBranchName)" || true
|
|
70
|
-
bun run coverage:ratchet
|
|
71
|
-
tarball=$(npm pack --ignore-scripts --silent)
|
|
72
|
-
isolated=$(mktemp -d)
|
|
73
|
-
npm install -g --prefix "$isolated" --no-audit --no-fund \
|
|
74
|
-
"$(pwd)/$tarball"
|
|
75
|
-
"$isolated/bin/adl-repo-controls" --version
|
|
76
|
-
rm -f "$tarball"
|
|
77
|
-
rm -rf "$isolated"
|
|
78
|
-
displayName: Validate global install on Node $(NODE_VERSION)
|
|
79
|
-
- script: |
|
|
80
|
-
set -euo pipefail
|
|
81
|
-
if [ "$(NODE_VERSION)" != "26.x" ]; then exit 0; fi
|
|
82
|
-
cd $(Pipeline.Workspace)/enact-repo-controls
|
|
83
|
-
target=$(mktemp -d)
|
|
84
|
-
bindir=$(mktemp -d)
|
|
85
|
-
ln -s "$(pwd)/bin/adl-repo-controls.ts" "$bindir/adl-repo-controls"
|
|
86
|
-
git init -q "$target"
|
|
87
|
-
printf 'version = 1\n' > "$target/adl-config.toml"
|
|
88
|
-
git -C "$target" add adl-config.toml
|
|
89
|
-
git -C "$target" -c user.name='CI smoke' -c user.email='ci-smoke@example.invalid' commit -qm 'chore: enroll smoke target'
|
|
90
|
-
bun bin/adl-repo-controls.ts install --repo "$target"
|
|
91
|
-
PATH="$bindir:$PATH" bun bin/adl-repo-controls.ts doctor --repo "$target" --json
|
|
92
|
-
rm -rf "$target" "$bindir"
|
|
93
|
-
displayName: End-to-end install and doctor smoke test on latest stable Node
|
|
94
|
-
- script: |
|
|
95
|
-
set -euo pipefail
|
|
96
|
-
if [ "$(NODE_VERSION)" != "26.x" ]; then exit 0; fi
|
|
97
|
-
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
98
|
-
echo "##vso[task.prependpath]$HOME/.local/bin"
|
|
99
|
-
displayName: Install uv
|
|
100
|
-
- script: |
|
|
101
|
-
set -euo pipefail
|
|
102
|
-
if [ "$(NODE_VERSION)" != "26.x" ]; then exit 0; fi
|
|
103
|
-
cd $(Pipeline.Workspace)/enact-repo-controls/package/adl-compliance
|
|
104
|
-
uv run pytest
|
|
105
|
-
displayName: adl-compliance test suite (Python side)
|
|
106
|
-
# Delivery is independent of Validate: the integration trigger follows a
|
|
107
|
-
# green PR merge, so repeating the full matrix here is redundant.
|
|
108
|
-
- stage: BumpPackageVersion
|
|
109
|
-
displayName: Bump patch version on integration
|
|
110
|
-
dependsOn: []
|
|
111
|
-
condition: eq(variables['Build.SourceBranch'], 'refs/heads/integration')
|
|
112
|
-
jobs:
|
|
113
|
-
# Build.SourceVersionMessage is populated only after checkout, so decide
|
|
114
|
-
# release eligibility in a job step and publish it to downstream jobs.
|
|
115
|
-
- job: DetermineReleaseEligibility
|
|
116
|
-
displayName: Determine integration release eligibility
|
|
117
|
-
pool:
|
|
118
|
-
name: Default
|
|
119
|
-
demands:
|
|
120
|
-
- Agent.OS -equals Linux
|
|
121
|
-
steps:
|
|
122
|
-
- checkout: self
|
|
123
|
-
- bash: |
|
|
124
|
-
set -euo pipefail
|
|
125
|
-
if [[ "${BUILD_SOURCEVERSIONMESSAGE:-}" == *'***NO_CI***'* ]]; then
|
|
126
|
-
echo 'Skipping integration delivery for a ***NO_CI*** commit.'
|
|
127
|
-
echo '##vso[task.setvariable variable=shouldRelease;isOutput=true]false'
|
|
128
|
-
else
|
|
129
|
-
echo 'Integration delivery is eligible.'
|
|
130
|
-
echo '##vso[task.setvariable variable=shouldRelease;isOutput=true]true'
|
|
131
|
-
fi
|
|
132
|
-
name: SetReleaseEligibility
|
|
133
|
-
displayName: Read integration release marker
|
|
134
|
-
- job: BumpPatchVersion
|
|
135
|
-
displayName: Bump patch version on integration
|
|
136
|
-
dependsOn: DetermineReleaseEligibility
|
|
137
|
-
condition: and(succeeded(), eq(dependencies.DetermineReleaseEligibility.outputs['SetReleaseEligibility.shouldRelease'], 'true'))
|
|
138
|
-
pool:
|
|
139
|
-
name: Default
|
|
140
|
-
demands:
|
|
141
|
-
- Agent.OS -equals Linux
|
|
142
|
-
steps:
|
|
143
|
-
- checkout: self
|
|
144
|
-
persistCredentials: true
|
|
145
|
-
- bash: |
|
|
146
|
-
set -euo pipefail
|
|
147
|
-
cd "$(Build.SourcesDirectory)"
|
|
148
|
-
git config user.email "pipeline@build.com"
|
|
149
|
-
git config user.name "Azure Pipelines"
|
|
150
|
-
git remote set-url origin \
|
|
151
|
-
"https://x-token:$(System.AccessToken)@dev.azure.com/amsterdamdatalabs/Enact/_git/enact-repo-controls"
|
|
152
|
-
git checkout -B integration
|
|
153
|
-
bash .workflows/version-bump.sh \
|
|
154
|
-
--file package.json \
|
|
155
|
-
--branch integration \
|
|
156
|
-
--integration \
|
|
157
|
-
--repository enact-repo-controls \
|
|
158
|
-
--organization https://dev.azure.com/amsterdamdatalabs \
|
|
159
|
-
--project Enact \
|
|
160
|
-
--open-pr
|
|
161
|
-
displayName: Bump patch version (on integration)
|
|
162
|
-
name: AllocateVersion
|
|
163
|
-
env:
|
|
164
|
-
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
|
|
165
|
-
# Open or refresh integration -> main only after the integration bump
|
|
166
|
-
# succeeds. Main remains protected by its owner-approval branch policy.
|
|
167
|
-
# Auto-complete remains owner-gated by the main branch policies.
|
|
168
|
-
- stage: PromoteMainPr
|
|
169
|
-
displayName: Ensure integration to main PR
|
|
170
|
-
dependsOn: BumpPackageVersion
|
|
171
|
-
condition: and(
|
|
172
|
-
succeeded(),
|
|
173
|
-
eq(dependencies.BumpPackageVersion.outputs['DetermineReleaseEligibility.SetReleaseEligibility.shouldRelease'], 'true'),
|
|
174
|
-
eq(dependencies.BumpPackageVersion.outputs['BumpPatchVersion.AllocateVersion.VERSION_READY'], 'true')
|
|
175
|
-
)
|
|
176
|
-
jobs:
|
|
177
|
-
- job: EnsurePromotionPr
|
|
178
|
-
displayName: Create or update integration to main PR
|
|
179
|
-
pool:
|
|
180
|
-
name: Default
|
|
181
|
-
demands:
|
|
182
|
-
- Agent.OS -equals Linux
|
|
183
|
-
- Agent.OSArchitecture -equals X64
|
|
184
|
-
steps:
|
|
185
|
-
- checkout: none
|
|
186
|
-
|
|
187
|
-
- bash: |
|
|
188
|
-
set -euo pipefail
|
|
189
|
-
az extension add --name azure-devops --only-show-errors
|
|
190
|
-
az devops configure --defaults organization=https://dev.azure.com/amsterdamdatalabs project=Enact
|
|
191
|
-
title="release: promote integration to main"
|
|
192
|
-
description="Auto-created or updated after successful integration CI for enact-repo-controls build $(Build.BuildNumber). Completes automatically after required owner approval and main branch policies."
|
|
193
|
-
pr_id=$(az repos pr list --repository enact-repo-controls --source-branch integration --target-branch main --status active --query "[0].pullRequestId" -o tsv)
|
|
194
|
-
if [ -n "$pr_id" ]; then
|
|
195
|
-
az repos pr update --id "$pr_id" --title "$title" --description "$description" --auto-complete true --squash false --output none
|
|
196
|
-
echo "Updated promotion PR $pr_id (auto-complete on; owner approval still required)"
|
|
197
|
-
exit 0
|
|
198
|
-
fi
|
|
199
|
-
output=$(az repos pr create --repository enact-repo-controls --source-branch integration --target-branch main --title "$title" --description "$description" --auto-complete true --squash false --output none 2>&1) || {
|
|
200
|
-
if echo "$output" | grep -qiE "no commits|no changes|nothing to compare"; then
|
|
201
|
-
echo "No promotion PR needed: integration and main are aligned."
|
|
202
|
-
exit 0
|
|
203
|
-
fi
|
|
204
|
-
echo "$output"
|
|
205
|
-
exit 1
|
|
206
|
-
}
|
|
207
|
-
echo "Created promotion PR (auto-complete on; owner approval still required)"
|
|
208
|
-
displayName: Create or update integration to main PR
|
|
209
|
-
env:
|
|
210
|
-
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
|
|
211
|
-
- stage: Publish
|
|
212
|
-
displayName: Publish to npm
|
|
213
|
-
dependsOn: []
|
|
214
|
-
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
|
|
215
|
-
jobs:
|
|
216
|
-
- job: PublishNpm
|
|
217
|
-
displayName: Publish @amsterdamdatalabs/enact-repo-controls
|
|
218
|
-
pool:
|
|
219
|
-
name: Default
|
|
220
|
-
demands:
|
|
221
|
-
- Agent.OS -equals Linux
|
|
222
|
-
workspace:
|
|
223
|
-
clean: all
|
|
224
|
-
steps:
|
|
225
|
-
- checkout: self
|
|
226
|
-
- task: UseNode@1
|
|
227
|
-
displayName: Use Node.js $(NODE_VERSION)
|
|
228
|
-
inputs:
|
|
229
|
-
version: $(NODE_VERSION)
|
|
230
|
-
- script: |
|
|
231
|
-
set -euo pipefail
|
|
232
|
-
curl -fsSL https://bun.sh/install | bash -s "bun-v1.4.2"
|
|
233
|
-
echo "##vso[task.prependpath]$HOME/.bun/bin"
|
|
234
|
-
displayName: Install bun 1.4.2 for release verification
|
|
235
|
-
- script: |
|
|
236
|
-
set -euo pipefail
|
|
237
|
-
PACKAGE=@amsterdamdatalabs/enact-repo-controls
|
|
238
|
-
LOCAL=$(node -p "require('./package.json').version")
|
|
239
|
-
VERSIONS=$(npm view "$PACKAGE" versions --json)
|
|
240
|
-
PUBLISHED=$(node -e 'const versions = JSON.parse(process.argv[1]); const local = process.argv[2]; process.stdout.write((Array.isArray(versions) ? versions : [versions]).includes(local) ? "true" : "false")' "$VERSIONS" "$LOCAL")
|
|
241
|
-
echo "Local: $LOCAL | exact version already published: $PUBLISHED"
|
|
242
|
-
if [ "$PUBLISHED" = "true" ]; then
|
|
243
|
-
if ! bun workflows/scripts/release/verify-npm-artifact.ts --package "$PACKAGE" --version "$LOCAL" --git-head "$(Build.SourceVersion)" --source src/doctor.ts; then
|
|
244
|
-
echo "##vso[task.logissue type=error]Published version $LOCAL does not match this main commit. Bump package.json to an unpublished version; npm versions are immutable."
|
|
245
|
-
echo "refusing to skip publication because release provenance is invalid"
|
|
246
|
-
exit 1
|
|
247
|
-
fi
|
|
248
|
-
echo "Version $LOCAL is already published with verified provenance and packed bytes — skipping."
|
|
249
|
-
echo "##vso[task.setvariable variable=SKIP_PUBLISH]true"
|
|
250
|
-
else
|
|
251
|
-
echo "##vso[task.setvariable variable=SKIP_PUBLISH]false"
|
|
252
|
-
fi
|
|
253
|
-
displayName: Check published version
|
|
254
|
-
- script: |
|
|
255
|
-
set -euo pipefail
|
|
256
|
-
echo "//registry.npmjs.org/:_authToken=$(NPM_TOKEN)" > .npmrc
|
|
257
|
-
npm publish --access public
|
|
258
|
-
displayName: Publish npm package
|
|
259
|
-
condition: ne(variables['SKIP_PUBLISH'], 'true')
|
|
260
|
-
- script: |
|
|
261
|
-
set -euo pipefail
|
|
262
|
-
PACKAGE=@amsterdamdatalabs/enact-repo-controls
|
|
263
|
-
LOCAL=$(node -p "require('./package.json').version")
|
|
264
|
-
for attempt in $(seq 1 30); do
|
|
265
|
-
if bun workflows/scripts/release/verify-npm-artifact.ts --package "$PACKAGE" --version "$LOCAL" --git-head "$(Build.SourceVersion)" --source src/doctor.ts; then
|
|
266
|
-
exit 0
|
|
267
|
-
fi
|
|
268
|
-
echo "Published artifact is not verifiable yet (attempt $attempt/30); waiting 10 seconds."
|
|
269
|
-
sleep 10
|
|
270
|
-
done
|
|
271
|
-
echo "##vso[task.logissue type=error]npm publication completed but the registry artifact never matched this main commit."
|
|
272
|
-
exit 1
|
|
273
|
-
displayName: Verify published npm artifact
|
|
274
|
-
condition: ne(variables['SKIP_PUBLISH'], 'true')
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# notes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const strings = { greeting: "你好" };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
last_update: 2026-09-28T15:10:00Z
|
|
3
|
-
title: Agent notes ledger
|
|
4
|
-
description: Fixture task ledger, one append-only line per task start and finish.
|
|
5
|
-
type: Operations
|
|
6
|
-
status: stable
|
|
7
|
-
sources: packages/agent-settings/assets/GLOBAL-AGENTS.md
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Agent notes ledger
|
|
11
|
-
|
|
12
|
-
An append-only log; one line when an agent starts a task and one when it finishes.
|
|
13
|
-
|
|
14
|
-
## Lines
|
|
15
|
-
|
|
16
|
-
2026-09-28 05:31 claude start: fixture task
|
|
17
|
-
2026-09-28 05:40 claude finish: fixture task
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
last_update: 2026-09-28T15:10:00Z
|
|
3
|
-
title: Agent notes ledger
|
|
4
|
-
description: Fixture task ledger, one append-only line per task start and finish.
|
|
5
|
-
type: Operations
|
|
6
|
-
status: stable
|
|
7
|
-
sources: packages/agent-settings/assets/GLOBAL-AGENTS.md
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Agent notes ledger
|
|
11
|
-
|
|
12
|
-
An append-only log; one line when an agent starts a task and one when it finishes.
|
|
13
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const item = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const fresh = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"a":1}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const item = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const item = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const item = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const fresh = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const v = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const item = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const item = 1;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
placement corpus: an enumerated product path that must stay allowed.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
placement corpus: an enumerated product path that must stay allowed.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
placement corpus: an enumerated product path that must stay allowed.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
placement corpus: an enumerated product path that must stay allowed.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
placement corpus: an enumerated product path that must stay allowed.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
placement corpus: an enumerated product path that must stay allowed.
|