Skip to content

feat(skills): add the verify-interface verification skill - #91

Draft
Upd4ting wants to merge 6 commits into
campaign/integrationfrom
feat/verify-interface-skill
Draft

Upd4ting wants to merge 6 commits into
campaign/integrationfrom
feat/verify-interface-skill

Conversation

@Upd4ting

@Upd4ting Upd4ting commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Why

Antony wants every Clean AntelopeJS repo to carry its verification skill, so a change to interface-data-api is proven by driving the routes it generates, not only by its unit tests. This draft adds the verify-interface skill, built like the other V5 interface repos, to campaign/integration.

What changed

  • The pack's synced layer (antelopejs-sync --verify interface, pack 0.2.17, no bump): SKILL.md, package.json, tsconfig.json, the .claude/skills link and one line in AGENTS.md. sync --check is clean.
  • The repo-owned layer in .agents/skills/verify-interface/:
    • features/: 13 features (12 plus smoke), each with covers:, docs: and journeys, and a "Not driven" table with an honest reason per documented behaviour no journey reaches.
    • verify.config.ts, journeys-*.ts, harness.ts, seeds.ts: the journeys. Each compiles fixture/shop.ts.txt (a consumer module written from the docs) against the packed declarations, starts ajs project dev with @antelopejs/api and @antelopejs/mongodb against a Docker MongoDB (mongo:7), drives the routes with curl and reads every write back with mongosh.
    • seeded-breaks/ (13) and seeded-doors/ (5).
  • Nothing else in the repository changed: no source, no package, no lockfile, no ratchet or suppression file.

Known issues, driven on purpose

Three journeys fail on head and cite their issue, so a verdict that runs their feature is FAIL until the issue is fixed: issue-90-edit-index (#90), issue-92-getter-mode (#92) and issue-93-multi-foreign (#93). A diff that touches no mapped feature, like this one, runs only smoke and passes.

Proof

Counts are copied from the bins' output (logs in ~/.cache/campaign2/v5/interface-data-api/tmp/proof/). The full set ran at the head named in the last row of this section; earlier heads ran the breaks listed under each round.

Gate Result
antelopejs-verify map clean
doctor exit 0
Journeys (48 across 13 features) all pass except the three deliberate issue journeys
seeded 13 of 13 CAUGHT in the last full run, except one control flake (see Attention)
seeded-doors 5 of 5 FLAGGED
containments 2 of 2 CONTAINED (crud/crud-lifecycle, validation/mandatory-and-validators)
End to end (new, doctor, every journey, verdict, clean) evidence kept after clean (2889 files)
agent-skills eval, --min-catch 1.0 --min-door-catch 1.0 --jobs 3 see the table below
pnpm run checks with GITHUB_BASE_REF=campaign/integration see Attention
api-diff no source change in this PR
Suppressions unchanged: no source or config file changed

Extra breaks (not in the seeded set)

Round Breaks Result
Owner sort direction, filter colon, async validator await, partial edit, default limit, FilterValuesOf, mandatory skipped on edit validators, edit response foreign, bigint row, modifier lock CAUGHT (the bigint row, M3, was MISSED until the unstorable-body journey set a function instead)
Verifier r1 N1 to N7 (guard false, guard this, new _id, indexed filters, filter this, class defaults, setters) CAUGHT
Verifier r2 NB1 (per-action overrides), NB2 (noForeign: "false"), NB3 to NB5 CAUGHT
Verifier r3 NB6 to NB14, NB7 to NB12 (derived model, targetMeta, declaration throws, option precedence, no model 500) CAUGHT
Verifier r4 NB15, NB16, NB21 CAUGHT; NB17 to NB20 are covered in round 5 see the next update

Attention

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant