Generate immutable Discord models and differential oracle tests #7

Open
opened 2026-08-03 07:47:34 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-08-03 07:47:34 +00:00 (Migrated from github.com)

Depends on

Goal

Port the supported semantic model without mechanically reproducing the Python inheritance tree.

Scope

  • export a neutral JSON type inventory from the pinned upstream checkout
  • generate immutable Lisp structures, parser tables, presence masks, and extension maps
  • hand-write semantic parsers for users, members, guilds, channels, threads, messages, references, attachments, embeds, reactions, roles, stickers, and polls
  • retain raw-event references and unknown fields
  • implement the pinned Python oracle runner
  • compare canonical expected and actual records
  • check generated code and generation manifest into the repository

Constraints

  • generated output is deterministic and digest-addressed
  • snowflakes remain strings at JSON and public document boundaries
  • partial updates preserve absent/null/value states
  • Python object repr, memory addresses, tokens, cookies, and private cache state are excluded
  • unexplained semantic differences fail the compatibility check

Exit gate

  • every supported Profile A fixture has zero unexplained semantic differences
  • regeneration under Nix produces the committed digests
  • unknown fields survive parsing
  • raw dispatch digests and stable identifiers survive replay
## Depends on - #2 - #4 - #5 - #6 ## Goal Port the supported semantic model without mechanically reproducing the Python inheritance tree. ## Scope - export a neutral JSON type inventory from the pinned upstream checkout - generate immutable Lisp structures, parser tables, presence masks, and extension maps - hand-write semantic parsers for users, members, guilds, channels, threads, messages, references, attachments, embeds, reactions, roles, stickers, and polls - retain raw-event references and unknown fields - implement the pinned Python oracle runner - compare canonical expected and actual records - check generated code and generation manifest into the repository ## Constraints - generated output is deterministic and digest-addressed - snowflakes remain strings at JSON and public document boundaries - partial updates preserve absent/null/value states - Python object repr, memory addresses, tokens, cookies, and private cache state are excluded - unexplained semantic differences fail the compatibility check ## Exit gate - every supported Profile A fixture has zero unexplained semantic differences - regeneration under Nix produces the committed digests - unknown fields survive parsing - raw dispatch digests and stable identifiers survive replay
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/cl-discord-self#7
No description provided.