From e1c77511c881bf3fc4c31514871e9169cb76f3f3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 05:49:29 +0000 Subject: [PATCH] docs: add compiler-smoke-e2e to architecture trees in AGENTS.md and docs/ado-script.md The test-only compiler smoke orchestrator in scripts/ado-script/src/compiler-smoke-e2e/ was missing from both the AGENTS.md architecture tree and the docs/ado-script.md file tree, even though its sibling test harnesses (executor-e2e/, trigger-e2e/) were already documented. This gap meant agents reading the architecture would not know the directory existed or how it related to the ADO pipeline definition in tests/compiler-smoke-e2e/. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- AGENTS.md | 1 + docs/ado-script.md | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 556717cd..ef6e63bf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -270,6 +270,7 @@ fail-closed and only pauses when the agent actually proposed a reviewed output. │ ├── executor-e2e/ # Stage 3 safe-output E2E test harness (not a bundle; runs deterministic scenarios against a real ADO project and files a GitHub issue on failure) │ ├── prepare-pr-base/ # create-pull-request preparer (bundled to prepare-pr-base.js): Agent mode uses ADO diff metadata + bounded dual-ref fallback to make the merge-base reachable; SafeOutputs mode fetches only the target worktree tip │ ├── trigger-e2e/ # Test-only gate-spec / trigger-evaluation harness (not a bundle): mirrors Rust `Fact::ALL` in `gate-spec.ts`; `fact-catalog.gen.json` is generated by `export-fact-catalog` and drift-guarded by CI +│ ├── compiler-smoke-e2e/ # Test-only compiler smoke orchestrator (not a bundle): stages the current compiler candidate as a `supply-chain.pipeline-artifact` across the five lock-file fixtures, pushes to a mirror branch, queues the registered definitions, and asserts they all go green; ADO pipeline definition lives in `tests/compiler-smoke-e2e/` │ └── shared/ # Shared modules across bundles (auth, ado-client, env-facts, types.gen.ts) ├── tests/ # Integration tests and fixtures ├── docs/ # Per-concept reference documentation (see index below) diff --git a/docs/ado-script.md b/docs/ado-script.md index dbcb9021..7c9aadb6 100644 --- a/docs/ado-script.md +++ b/docs/ado-script.md @@ -112,6 +112,18 @@ pipeline** as runtime helpers. Today it produces thirteen bundles: > so the `gate-spec.test.ts` test can deep-compare `FACT_META` against the > Rust-side `Fact::ALL` registry, catching drift at CI time. +> **Test-only, not shipped: `compiler-smoke-e2e`.** The workspace also contains a +> `src/compiler-smoke-e2e/` orchestrator that stages the compiler candidate built by +> the current PR or nightly `main` run as a pinned `supply-chain.pipeline-artifact` +> across the five lock-file fixtures (canary, azure-cli, noop-target, janitor, +> smoke-failure-reporter), pushes the staged candidate to a short-lived mirror +> branch, queues the registered "candidate lane" pipeline definitions, and asserts +> they all go green. It is **not** a runtime bundle: it is not part of the main +> `build` chain, is listed in `NON_BUNDLE_DIRS` in +> `src/__tests__/bundle-coverage.test.ts`, and the compiler never references it. +> The corresponding ADO pipeline definition (that invokes this harness) lives in +> [`tests/compiler-smoke-e2e/`](../tests/compiler-smoke-e2e/). + ## What `gate.js` does `gate.js` is a single-shot Node program that runs as a step in the @@ -565,6 +577,7 @@ scripts/ado-script/ │ │ ├── fact-catalog.gen.json # generated by `cargo run -- export-fact-catalog`; deep-compared by gate-spec.test.ts │ │ └── __tests__/ # gate-spec drift tests and trigger-evaluation scenario tests │ └── executor-e2e/ # test-only: Stage 3 safe-output E2E harness (not a bundle; built to test-bin/executor-e2e.js) +│ └── compiler-smoke-e2e/ # test-only: compiler smoke orchestrator (not a bundle); ADO pipeline definition in tests/compiler-smoke-e2e/ ├── test/ # End-to-end smoke tests (gate, import, exec-context-pr) ├── gate.js # ncc bundle output (gitignored) ├── import.js # ncc bundle output (gitignored)