# jackin-xtask (https://jackin.tailrocks.com/reference/crates/jackin-xtask/)



{/* GENERATED from crates/jackin-xtask/README.md — edit the README, not this file */}

The workspace's `cargo xtask` automation — CI lanes, lint gates, docs checks, release/construct helpers, schema checks, and PR tooling. The single entry point for "run the project's checks locally": `cargo xtask ci`, `cargo xtask ci --fast`, `cargo xtask ci --e2e`.

## What this crate owns [#what-this-crate-owns]

* CI orchestration (`ci`) and the lint gates (`lint` — file-size budget, and the lanes planned under it).
* Docs checks (`docs` — repo-links, brand prose, spec↔test citations), schema checks (`schema`), profile/feature matrix (`profile_matrix`), and the agent-file symlink gate (`agent_files`, including per-crate README presence).
* Architecture/structure tooling (`arch`), test-layout gate (`test_layout`), PTY fixture extraction (`pty_fixture`), construct helpers (`construct`), release verification (`release_verify`), and PR tooling (`pr`).

## Architecture tier and allowed dependencies [#architecture-tier-and-allowed-dependencies]

**Build/CI tooling (xtask).** No workspace dependencies — it inspects the workspace from the outside (files, `cargo metadata`, running cargo) and must not link against runtime crates. Runs on the host toolchain only.

## Structure [#structure]

| Module                                                                                                                                                                                                      | Owns                                                                                               | Tests                                                                                                |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| <RepoFile path="crates/jackin-xtask/src/main.rs">`main.rs`</RepoFile>                                                                                                                                       | `cargo xtask` dispatcher                                                                           | —                                                                                                    |
| <RepoFile path="crates/jackin-xtask/src/ci.rs">`ci.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/ci.rs">`ci/`</RepoFile>                                                                         | CI orchestration                                                                                   | <RepoFile path="crates/jackin-xtask/src/ci/tests.rs">`tests.rs`</RepoFile>                           |
| <RepoFile path="crates/jackin-xtask/src/lint.rs">`lint.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/lint.rs">`lint/`</RepoFile>                                                                 | file-size lint gate (adapter; budgets also in `ratchet.toml`)                                      | <RepoFile path="crates/jackin-xtask/src/lint/tests.rs">`tests.rs`</RepoFile>                         |
| <RepoFile path="crates/jackin-xtask/src/ratchet.rs">`ratchet.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/ratchet.rs">`ratchet/`</RepoFile>                                                     | unified shrink-only ratchet engine (`lint ratchet`)                                                | <RepoFile path="crates/jackin-xtask/src/ratchet/tests.rs">`tests.rs`</RepoFile>                      |
| <RepoFile path="crates/jackin-xtask/src/test_layout.rs">`test_layout.rs`</RepoFile>                                                                                                                         | test-layout presence family (adapter over ratchet semantics)                                       | —                                                                                                    |
| <RepoFile path="crates/jackin-xtask/src/suppressions.rs">`suppressions.rs`</RepoFile>                                                                                                                       | bare-allow/expect reason-gate (adapter)                                                            | —                                                                                                    |
| <RepoFile path="crates/jackin-xtask/src/agent_files.rs">`agent_files.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/agent_files.rs">`agent_files/`</RepoFile>                                     | agent-file symlink gate (`--format human\|json\|github`)                                           | <RepoFile path="crates/jackin-xtask/src/agent_files/tests.rs">`tests.rs`</RepoFile>                  |
| <RepoFile path="crates/jackin-xtask/src/report.rs">`report.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/report.rs">`report/`</RepoFile>                                                         | shared gate reporter (human/json/github)                                                           | <RepoFile path="crates/jackin-xtask/src/report/tests.rs">`tests.rs`</RepoFile>                       |
| <RepoFile path="crates/jackin-xtask/src/agent_links.rs">`agent_links.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/agent_links.rs">`agent_links/`</RepoFile>                                     | no-cross-ref gate (README/AGENTS)                                                                  | <RepoFile path="crates/jackin-xtask/src/agent_links/tests.rs">`tests.rs`</RepoFile>                  |
| <RepoFile path="crates/jackin-xtask/src/container_paths_gate.rs">`container_paths_gate.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/container_paths_gate.rs">`container_paths_gate/`</RepoFile> | residual `/jackin` literal shrink-only gate                                                        | <RepoFile path="crates/jackin-xtask/src/container_paths_gate/tests.rs">`tests.rs`</RepoFile>         |
| <RepoFile path="crates/jackin-xtask/src/suppressions.rs">`suppressions.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/suppressions.rs">`suppressions/`</RepoFile>                                 | bare-allow / per-lint expect shrink-only reason-gate                                               | <RepoFile path="crates/jackin-xtask/src/suppressions/tests.rs">`tests.rs`</RepoFile>                 |
| <RepoFile path="crates/jackin-xtask/src/headers.rs">`headers.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/headers.rs">`headers/`</RepoFile>                                                     | ownership-header contract gate                                                                     | <RepoFile path="crates/jackin-xtask/src/headers/tests.rs">`tests.rs`</RepoFile>                      |
| <RepoFile path="crates/jackin-xtask/src/arch.rs">`arch.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/arch.rs">`arch/`</RepoFile>                                                                 | tier-graph dependency-direction gate (`TIERS` table; prod edges must descend; dev-cycle allowlist) | <RepoFile path="crates/jackin-xtask/src/arch/tests.rs">`tests.rs`</RepoFile>                         |
| <RepoFile path="crates/jackin-xtask/src/readme_freshness.rs">`readme_freshness.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/readme_freshness.rs">`readme_freshness/`</RepoFile>                 | structural src change ⇒ README same-PR gate                                                        | <RepoFile path="crates/jackin-xtask/src/readme_freshness/tests.rs">`tests.rs`</RepoFile>             |
| <RepoFile path="crates/jackin-xtask/src/test_layout.rs">`test_layout.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/test_layout.rs">`test_layout/`</RepoFile>                                     | test-layout gate                                                                                   | <RepoFile path="crates/jackin-xtask/src/test_layout/tests.rs">`tests.rs`</RepoFile>                  |
| <RepoFile path="crates/jackin-xtask/src/schema.rs">`schema.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/schema.rs">`schema/`</RepoFile>                                                         | schema check                                                                                       | <RepoFile path="crates/jackin-xtask/src/schema/tests.rs">`tests.rs`</RepoFile>                       |
| <RepoFile path="crates/jackin-xtask/src/docs.rs">`docs.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/docs.rs">`docs/`</RepoFile>                                                                 | docs repo-links / brand / specs / roadmap / research                                               | <RepoFile path="crates/jackin-xtask/src/docs/tests.rs">`tests.rs`</RepoFile>, brand/specs unit tests |
| <RepoFile path="crates/jackin-xtask/src/pr.rs">`pr.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/pr.rs">`pr/`</RepoFile>                                                                         | PR tooling                                                                                         | <RepoFile path="crates/jackin-xtask/src/pr/tests.rs">`tests.rs`</RepoFile>                           |
| <RepoFile path="crates/jackin-xtask/src/profile_matrix.rs">`profile_matrix.rs`</RepoFile>                                                                                                                   | feature-profile matrix                                                                             | —                                                                                                    |
| <RepoFile path="crates/jackin-xtask/src/pty_fixture.rs">`pty_fixture.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/pty_fixture.rs">`pty_fixture/`</RepoFile>                                     | PTY fixture extraction                                                                             | <RepoFile path="crates/jackin-xtask/src/pty_fixture/tests.rs">`tests.rs`</RepoFile>                  |
| <RepoFile path="crates/jackin-xtask/src/construct.rs">`construct.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/construct.rs">`construct/`</RepoFile>                                             | construct image helpers                                                                            | <RepoFile path="crates/jackin-xtask/src/construct/tests.rs">`tests.rs`</RepoFile>                    |
| <RepoFile path="crates/jackin-xtask/src/release_verify.rs">`release_verify.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/release_verify.rs">`release_verify/`</RepoFile>                         | release verification                                                                               | <RepoFile path="crates/jackin-xtask/src/release_verify/tests.rs">`tests.rs`</RepoFile>               |
| <RepoFile path="crates/jackin-xtask/src/health.rs">`health.rs`</RepoFile> · <RepoFile path="crates/jackin-xtask/src/health.rs">`health/`</RepoFile>                                                         | report-only code-health dashboard (Phase 0)                                                        | <RepoFile path="crates/jackin-xtask/src/health/tests.rs">`tests.rs`</RepoFile>                       |

## Public API [#public-api]

The `cargo xtask &lt;lane>` CLI. Merge-readiness is `cargo xtask ci` (or `--fast` / `--e2e`). New checks are added as lanes here so they are discoverable from one command.

## How to verify [#how-to-verify]

```sh
cargo nextest run -p jackin-xtask
cargo clippy -p jackin-xtask --all-targets -- -D warnings
cargo xtask docs brand
cargo xtask docs specs
cargo xtask lint agents
cargo xtask lint agents --format json
cargo xtask lint files --format json
cargo xtask ci --fast
```
