Skip to content

sdk: round-5 CLI follow-ups — close last two producer↔recognizer drift guards (#0434)#245

Merged
trevormil merged 1 commit into
mainfrom
feat/0434-cli-followups-r5
May 15, 2026
Merged

sdk: round-5 CLI follow-ups — close last two producer↔recognizer drift guards (#0434)#245
trevormil merged 1 commit into
mainfrom
feat/0434-cli-followups-r5

Conversation

@trevormil
Copy link
Copy Markdown
Collaborator

Summary

Stacked on #244 (base feat/0431-cli-followups-r4). Final round of the rolling CLI audit. Round-4's sweep converged: doc/code drift, numeric/units correctness, untested helpers, integration tautologies, zero-coverage commands, and CLI-DRY all came back CLEAN. The only genuine remaining finding is the last two instances of the #0425/#0407 producer↔recognizer-drift class:

  • #0434 buildQuests output is now round-tripped through normalizeForReview and asserted to satisfy isQuestApproval + doesCollectionFollowQuestProtocol; buildPredictionMarket output asserted against validatePredictionMarketCollection + isPredictionMarketValid. Both recognizers were previously tested only against hand-rolled all-bigint fixtures, never the builders' own wire output — a field rename or added recognizer constraint could make every CLI-built quest/PM unrecognizable on the frontend with a fully green suite. Mirrors the closed subscription #0425 guard. Both guards pass (no actual drift today — they lock it in).

Test-only; no source or docs change.

Validation

  • Build clean — tsc ×2, no circular dependencies.
  • Unit: 143 suites / 3110 tests green (+2 drift-guard tests).
  • Integration: 20 suites / 186 tests green.

Test plan

  • bun run build / test:unit / test:integration green
  • Confirm the new #0434 quests + prediction-market drift-guard tests fail if a builder field is renamed

🤖 Generated with Claude Code

Stack: main ← #242#243#244this. Audit converged — this is the final stacked round.

…drift guards (#0434)

Round-4 audit converged: doc/code drift, numeric/units, untested
helpers, tautologies, zero-coverage commands, CLI DRY all CLEAN. Only
genuine remaining finding = the last two instances of the #0425/#0407
producer↔recognizer-drift class:

- buildQuests output → isQuestApproval + doesCollectionFollowQuestProtocol
- buildPredictionMarket output → isPredictionMarketValid +
  validatePredictionMarketCollection

Both run through normalizeForReview (the indexer's bigint
normalization) then asserted against their own recognizer — mirrors
the closed subscription #0425 guard. Both pass (no actual drift; the
guards now lock it in against future field renames / added recognizer
constraints that would otherwise make CLI-built quests/PMs
unrecognizable on the FE with a green suite). Test-only, no source
change.

Build clean (no circular deps); unit 143 suites / 3110 tests;
integration 20 suites / 186 tests.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Base automatically changed from feat/0431-cli-followups-r4 to main May 15, 2026 19:26
@trevormil trevormil merged commit 9cdb8a4 into main May 15, 2026
1 check passed
@trevormil trevormil deleted the feat/0434-cli-followups-r5 branch May 15, 2026 19:26
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