diff --git a/.agents/skills/verify-interface/SKILL.md b/.agents/skills/verify-interface/SKILL.md index d4db715..1831b0a 100644 --- a/.agents/skills/verify-interface/SKILL.md +++ b/.agents/skills/verify-interface/SKILL.md @@ -102,7 +102,7 @@ node_modules/.bin/antelopejs-verify map 6. **One-way doors.** The section comes right after the result line and is mandatory. `node_modules/.bin/antelopejs-verify doors` prints the `One-way-door:` line of the diff. Every file the path rules flag needs a door row or a false positive with its reason. 7. **Result.** FAIL if any rule fails. NOT VERIFIED when any journey of a required feature is NOT VERIFIED, for example a SaaS module run without its sandbox keys, however many other journeys passed. PASS+NOTES when everything required ran and passed but the judgement lists something no journey reached or something the owner should look at. PASS otherwise. -Write your judgement to `/evidence/judgement.json`: +Write your judgement to a JSON file: ```json { @@ -118,13 +118,13 @@ Write your judgement to `/evidence/judgement.json`: } ``` -A door row is `{ "kind", "location", "irreversible", "containment" }`, where `containment` says what limits the damage. Then render the verdict: +A door row is `{ "kind", "location", "irreversible", "containment" }`, where `containment` says what limits the damage. Pass it to `verdict` in the same step: ```bash -node_modules/.bin/antelopejs-verify verdict --pr +node_modules/.bin/antelopejs-verify verdict --pr --judgement ``` -`verdict` writes `evidence/verdict.md` and exits 1 unless the result is PASS or PASS+NOTES. Report the verdict and what you saw in your own reply, from a thread that did not write the change. +`verdict` stores it as `evidence/judgement.json`, writes `evidence/verdict.md` and exits 1 when an input is missing or the result is not PASS or PASS+NOTES. Read `verdict.md` only after it exits. Report the verdict and what you saw in your own reply, from a thread that did not write the change. ## Trust diff --git a/AGENTS.md b/AGENTS.md index 0c08077..71adb04 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -88,6 +88,7 @@ Verify a boundary against the imports a developer or agent would plausibly write | String-keyed object tables are read through own keys only | `antelopejs/no-inherited-key-lookup` | | A type guard checks each member it narrows to; keys with `Object.hasOwn` | `antelopejs/no-presence-only-type-guard` | | A type guard checks the nested elements and values it claims | review; no tool | +| A startup read does not decide an insert another replica can race | `antelopejs/no-read-then-insert` | | `Object.assign` writes no `unknown`, `any` or mistyped value over a field | `antelopejs/no-unsafe-object-assign` | | Every file type-aware lint reads is listed by a tsconfig | `antelopejs/require-tsconfig-include` | | Params ≤ 5, function ≤ 120 lines, file ≤ 500 lines, depth ≤ 4, complexity ≤ 20 | `eslint/max-*`, `eslint/complexity` | @@ -115,9 +116,9 @@ Verify a boundary against the imports a developer or agent would plausibly write | A CI gate reads `needs.` only of jobs in its `needs` | `antelopejs-sync --check` | | Entry-only rules exempt no tracked outsider | `antelopejs-sync --check` | | A DMS layer's `build/backend-boundary.ts` is the pack's plugin | `antelopejs-sync --check` | -| No `skipLibCheck` in the root tsconfig or one `typecheck` or `build` uses | Reported by `antelopejs-sync` (note only) | -| `build` skips the lib check only over what `typecheck` checks | Reported by `antelopejs-sync` (note only) | -| `release` runs `typecheck` | Reported by `antelopejs-sync` (note only) | +| No `skipLibCheck` in the root tsconfig or one `typecheck` or `build` uses | `antelopejs-sync --check` | +| `build` skips the lib check only over what `typecheck` checks | `antelopejs-sync --check` | +| `release` runs `typecheck` | `antelopejs-sync --check` | | A test names the wrong implementation it catches | review; no tool | diff --git a/package.json b/package.json index c668071..7b3e931 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@antelopejs/api": "1.7.0", "@antelopejs/core": "^1.21.0", "@antelopejs/interface-core": ">=0.4.0 <1.0.0", - "@antelopejs/tooling-configs": "^0.5.0", + "@antelopejs/tooling-configs": "^0.5.1", "@types/mocha": "^10.0.10", "@types/node": "^22.19.15", "@types/sinon": "^17.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8ae4ba..0ec0f3f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: '>=0.4.0 <1.0.0' version: 0.4.0 '@antelopejs/tooling-configs': - specifier: ^0.5.0 - version: 0.5.0(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001)) + specifier: ^0.5.1 + version: 0.5.1(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001)) '@types/mocha': specifier: ^10.0.10 version: 10.0.10 @@ -96,8 +96,8 @@ packages: '@antelopejs/interface-core@0.4.0': resolution: {integrity: sha512-IPX6dtt3KHknclN4mLOYeRYL2Odz1Pts+dtaZul62NghsBUX/0OFHD4Qhoaf+Beva4hjInbaF918ajr4Z5HVWQ==} - '@antelopejs/tooling-configs@0.5.0': - resolution: {integrity: sha512-vTZyx0FpSzArjSdb119i+CTGPsYe903/D/JY+0KVUgBjdw/2+LTRt58NUinDtvnf9H18uAlF2xwWJXsSPTv/6A==} + '@antelopejs/tooling-configs@0.5.1': + resolution: {integrity: sha512-Q1JWAsMIDy8f6KaTFPAakT+ChWDhQCzJjdszFFam/pUFqBVMgY+Lp1I7bc8SwcWL3CMdHBzgUUEId2od2cB7hQ==} engines: {node: '>=22.18.0'} hasBin: true peerDependencies: @@ -2569,7 +2569,7 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/tooling-configs@0.5.0(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001))': + '@antelopejs/tooling-configs@0.5.1(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001))': dependencies: '@oxlint/plugins': 1.81.0 dts-bundle-generator: 9.5.1