Behind jackin❯ — crates

jackin-xtask

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

  • 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

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

ModuleOwnsTests
main.rscargo xtask dispatcher
ci.rs · ci/CI orchestrationtests.rs
lint.rs · lint/file-size lint gate (adapter; budgets also in ratchet.toml)tests.rs
ratchet.rs · ratchet/unified shrink-only ratchet engine (lint ratchet)tests.rs
test_layout.rstest-layout presence family (adapter over ratchet semantics)
suppressions.rsbare-allow/expect reason-gate (adapter)
agent_files.rs · agent_files/agent-file symlink gate (--format human|json|github)tests.rs
report.rs · report/shared gate reporter (human/json/github)tests.rs
agent_links.rs · agent_links/no-cross-ref gate (README/AGENTS)tests.rs
container_paths_gate.rs · container_paths_gate/residual /jackin literal shrink-only gatetests.rs
suppressions.rs · suppressions/bare-allow / per-lint expect shrink-only reason-gatetests.rs
headers.rs · headers/ownership-header contract gatetests.rs
arch.rs · arch/tier-graph dependency-direction gate (TIERS table; prod edges must descend; dev-cycle allowlist)tests.rs
readme_freshness.rs · readme_freshness/structural src change ⇒ README same-PR gatetests.rs
test_layout.rs · test_layout/test-layout gatetests.rs
schema.rs · schema/schema checktests.rs
docs.rs · docs/docs repo-links / brand / specs / roadmap / researchtests.rs, brand/specs unit tests
pr.rs · pr/PR toolingtests.rs
profile_matrix.rsfeature-profile matrix
pty_fixture.rs · pty_fixture/PTY fixture extractiontests.rs
construct.rs · construct/construct image helperstests.rs
release_verify.rs · release_verify/release verificationtests.rs
health.rs · health/report-only code-health dashboard (Phase 0)tests.rs

Public API

The cargo xtask <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

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

On this page