From 49ca9b35651e7c5920a9c48b12a1dbe15dacf002 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 7 Nov 2026 12:24:45 +0000 Subject: [PATCH 1/2] perf(verify): drop the scaffold-lint journey that scaffold-checks already covers --- .agents/skills/verify-template/features/README.md | 2 +- .agents/skills/verify-template/features/tooling.md | 4 +--- .agents/skills/verify-template/verify.config.ts | 11 ----------- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/.agents/skills/verify-template/features/README.md b/.agents/skills/verify-template/features/README.md index 67c045d..473af33 100644 --- a/.agents/skills/verify-template/features/README.md +++ b/.agents/skills/verify-template/features/README.md @@ -7,7 +7,7 @@ One file per feature. `covers:` lists the source globs it owns, `docs:` the page | [module](module.md) | Creates a module and builds it. | scaffold-shape, module-build | | [playground](playground.md) | Runs the playground that calls the module's `Log`. | playground-dev | | [tests](tests.md) | Runs `pnpm test`. | module-test, module-test-fails | -| [tooling](tooling.md) | Runs typecheck, lint, knip and `pnpm run checks`. | scaffold-lint, scaffold-lint-rejects, scaffold-checks | +| [tooling](tooling.md) | Runs typecheck, lint, knip and `pnpm run checks`. | scaffold-lint-rejects, scaffold-checks | | [docs](docs.md) | Reads the README, CONTRIBUTING and the license. | scaffold-docs | | [git](git.md) | Commits in a module whose `.gitignore` the template wrote. | scaffold-gitignore | | [smoke](smoke.md) | The fixed journey every verdict runs: create, install, build. | module-build | diff --git a/.agents/skills/verify-template/features/tooling.md b/.agents/skills/verify-template/features/tooling.md index 1d81a5d..cbb389f 100644 --- a/.agents/skills/verify-template/features/tooling.md +++ b/.agents/skills/verify-template/features/tooling.md @@ -13,7 +13,6 @@ docs: - CONTRIBUTING.md - AGENTS.md journeys: - - scaffold-lint - scaffold-lint-rejects - scaffold-checks --- @@ -24,9 +23,8 @@ The guardrail configuration the user inherits: TypeScript, lint, format, knip, t ## Sub-features -- `scaffold-lint`: `typecheck`, `lint` and `knip` pass in the new module. - `scaffold-lint-rejects`: an unused local fails the typecheck and a `debugger` statement fails lint, so the configs are live. -- `scaffold-checks`: `pnpm run checks` passes after the first commit, whose hook formats the `package.json` that `ajs module init` rewrites (AGENTS.md documents the step). +- `scaffold-checks`: `pnpm run checks`, which runs typecheck, lint and knip among its checks, passes after the first commit, whose hook formats the `package.json` that `ajs module init` rewrites (AGENTS.md documents the step). ## How to get to it (user POV) diff --git a/.agents/skills/verify-template/verify.config.ts b/.agents/skills/verify-template/verify.config.ts index 15435c7..79d701f 100644 --- a/.agents/skills/verify-template/verify.config.ts +++ b/.agents/skills/verify-template/verify.config.ts @@ -139,17 +139,6 @@ const config: VerifyConfig = { context.expect(test.folder, [equal("the run failed", test.exitCode !== 0, true), has("output", test.stdout + test.stderr, /verify-broken/), has("output", test.stdout, /1 failing/)]); }, }, - "scaffold-lint": { - title: "the created module passes its typecheck, lint and knip", - entryPoint: "`pnpm run typecheck`, `pnpm run lint` and `pnpm run knip`", - async run(context) { - const module = await scaffolded(context); - for (const script of ["typecheck", "lint", "knip"]) { - const done = await context.command(`pnpm run ${script}`, "pnpm", ["run", script], { cwd: module }); - context.expect(done.folder, [exitIs(done, 0)]); - } - }, - }, "scaffold-lint-rejects": { title: "typecheck rejects an unused local, and lint rejects a debugger statement, so the configs are live", entryPoint: "`pnpm run typecheck` and `pnpm run lint` after editing `src/`", From 433d7ad40f1175a26f8d7e3a8873c995703cb159 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 7 Nov 2026 16:02:51 +0000 Subject: [PATCH 2/2] test(verify): fail scaffold-checks when a check step is skipped or typecheck, lint or knip fails --- .agents/skills/verify-template/features/tooling.md | 2 +- .agents/skills/verify-template/verify.config.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.agents/skills/verify-template/features/tooling.md b/.agents/skills/verify-template/features/tooling.md index cbb389f..eb89add 100644 --- a/.agents/skills/verify-template/features/tooling.md +++ b/.agents/skills/verify-template/features/tooling.md @@ -24,7 +24,7 @@ The guardrail configuration the user inherits: TypeScript, lint, format, knip, t ## Sub-features - `scaffold-lint-rejects`: an unused local fails the typecheck and a `debugger` statement fails lint, so the configs are live. -- `scaffold-checks`: `pnpm run checks`, which runs typecheck, lint and knip among its checks, passes after the first commit, whose hook formats the `package.json` that `ajs module init` rewrites (AGENTS.md documents the step). +- `scaffold-checks`: `pnpm run checks` passes after the first commit, whose hook formats the `package.json` that `ajs module init` rewrites (AGENTS.md documents the step). Its summary skips no step, and no `typecheck`, `lint` or `knip` failure appears in its output, so those three ran and passed. ## How to get to it (user POV) diff --git a/.agents/skills/verify-template/verify.config.ts b/.agents/skills/verify-template/verify.config.ts index 79d701f..10451ec 100644 --- a/.agents/skills/verify-template/verify.config.ts +++ b/.agents/skills/verify-template/verify.config.ts @@ -9,6 +9,7 @@ import { has, interrupted, type JourneyContext, + lacks, type VerifyConfig, } from "@antelopejs/tooling-configs/verify"; @@ -153,7 +154,7 @@ const config: VerifyConfig = { }, }, "scaffold-checks": { - title: "the created module passes `pnpm run checks` after its first commit, as AGENTS.md tells the user to do before changing anything", + title: "the created module passes `pnpm run checks`, typecheck, lint and knip included, after its first commit, as AGENTS.md tells the user to do before changing anything", entryPoint: "the first `git commit`, whose hook formats the `package.json` the CLI rewrote, then `pnpm run checks`", async run(context) { const module = await scaffolded(context); @@ -162,7 +163,11 @@ const config: VerifyConfig = { const commit = await context.command("first commit", "git", ["-c", "user.name=verify", "-c", "user.email=verify@example.com", "commit", "-m", "chore: initial commit"], { cwd: module }); context.expect(commit.folder, [exitIs(commit, 0)], { critical: true }); const checks = await context.command("pnpm run checks", "pnpm", ["run", "checks"], { cwd: module }); - context.expect(checks.folder, [exitIs(checks, 0)]); + context.expect(checks.folder, [ + exitIs(checks, 0), + has("no step was skipped", checks.stdout, /Checks: \d+ passed, \d+ failed\.\n/), + ...["typecheck", "lint", "knip"].map((step) => lacks(`no ${step} failure`, checks.stdout, new RegExp(`^\\[${step}\\]`, "m"))), + ]); }, }, "scaffold-docs": {