AGENTS.md@.github/actions · git:20261028.b7cb304 · 2026-10-28 · sha256 0434f46da97b3b9c

AGENTS.md@.github/actions git:20261028.b7cb304A

Immutable. This exact content never changes and is served at /api/v1/blob/0434f46da97b3b9c.

# `.github/actions/` — technical reference

Repository-local composite actions for the CI pipeline. See
[`README.md`](README.md) for the purpose and conventions.

## Contract

- Each subdirectory is one composite action defined by an `action.yml`
  (`runs.using: composite`).
- Referenced from workflows as `uses: ./.github/actions/<name>`. The caller
  **must** run `actions/checkout` before the reference resolves; a local action
  is read from the checked-out workspace, not fetched.
- Third-party `uses:` inside an action are SHA-pinned with a `# vX.Y.Z` comment,
  identical to the policy in [`../workflows/ci.yml`](../workflows/ci.yml).

## Files

| Path | Role |
| --- | --- |
| [`setup-python-env/action.yml`](setup-python-env/action.yml) | uv + Python provisioning (see its [`AGENTS.md`](setup-python-env/AGENTS.md)). |
| [`setup-docs-lint/action.yml`](setup-docs-lint/action.yml) | Shared Node + Mermaid + Chrome provisioning for both blocking documentation-lint callers. |
| [`setup-actionlint/action.yml`](setup-actionlint/AGENTS.md) | Single `actionlint` pin, installer SHA-256 verification, and run. |
| [`run-public-lint/action.yml`](run-public-lint/AGENTS.md) | Public-scope Ruff/type gates, concurrently, with one aggregated status. |
| [`run-tracked-guards/action.yml`](run-tracked-guards/AGENTS.md) | Sequential tracked-tree guards (resources, secrets, generated artifacts). |
| [`run-safety-scan/action.yml`](run-safety-scan/AGENTS.md) | Bandit MEDIUM+ and no-mocks, shared by both workflows. |
| [`check-browser/action.yml`](check-browser/AGENTS.md) | Installed-Chrome selection for native consumer controls. |
| [`setup-tex-toolchain/action.yml`](setup-tex-toolchain/AGENTS.md) | Cached xelatex/bibtex provisioning for the slow and rehearsal lanes. |
| [`setup-meta-provider/action.yml`](setup-meta-provider/action.yml) | Genuine noneditable Meta wheel for Advanced and literature lifecycle tests. |
| [`setup-ci-execution-user/`](setup-ci-execution-user/README.md) | Fresh unprivileged Linux account, scoped pre-custody handoff and byte-identical readiness transport. |
| [`setup-native-installed-readiness/`](setup-native-installed-readiness/README.md) | Prepare Source-locked native tools and cached inputs before the installed original/reader/handoff operation. |
| [`upload-readiness-shards/`](upload-readiness-shards/README.md) | Check and upload exact bounded native/candidate transport or separately named failed diagnostics. |

## Editing

- Bump a shared action SHA here once; every calling job inherits it.
- After any change, run `actionlint` (CI parity: the `actionlint` job).
- Adding a new action directory requires its own `README.md` + `AGENTS.md`
  (the doc-pair invariant — `infrastructure/validation/docs/doc_pair_lint.py`).

The complete hosted acceptance workflow also uses
[`setup-acceptance-documents`](setup-acceptance-documents/README.md) and
[`setup-acceptance-model`](setup-acceptance-model/README.md) to prepare its
source-declared tools and one owned pinned local model before observations.

[`setup-acceptance-fixtures`](setup-acceptance-fixtures/README.md) materializes
identical pinned source inputs for all complete acceptance and release readers.

[`setup-native-offline-cache`](setup-native-offline-cache/README.md) shares the
Source-locked hash-required cache preparation between functional installed
contracts and complete native readiness.