feat: Node corpus generator pipeline skeleton (#40) #413

Merged
manlycucumber merged 1 commit from feature/40-generator-skeleton into develop 2026-07-02 12:14:50 +00:00
manlycucumber commented 2026-07-02 12:00:19 +00:00 (Migrated from github.com)

Build-time Node generator that turns cited YAML facts into the engine's committed, byte-stable CC0 NDJSON corpus, proven on the sanctoral shapes (Epic #38).

  • Canonical serializer (code-unit key sort, compact NDJSON, LF + trailing newline, integers only, no clock/random) — reproducible by construction.
  • Pipeline: load facts → transform → validate against the frozen #39 schemas (ajv draft 2020-12, fail-closed) → serialize → MANIFEST with SHA-256.
  • npm run verify = determinism (build-twice byte-diff) + freshness (committed matches a fresh build); wired as a CI corpus-verify job.
  • No PHP touched; runtime stays PHP, Node is build-time only.

Reviewed adversarially; serializer hardened against integer-key reordering, validator set to strict (keyword-typo detection) with the over-strict sub-checks relaxed for the frozen schemas.

Closes #40.

Build-time Node generator that turns cited YAML facts into the engine's committed, byte-stable CC0 NDJSON corpus, proven on the sanctoral shapes (Epic #38). - Canonical serializer (code-unit key sort, compact NDJSON, LF + trailing newline, integers only, no clock/random) — reproducible by construction. - Pipeline: load facts → transform → validate against the frozen #39 schemas (ajv draft 2020-12, fail-closed) → serialize → MANIFEST with SHA-256. - `npm run verify` = determinism (build-twice byte-diff) + freshness (committed matches a fresh build); wired as a CI `corpus-verify` job. - No PHP touched; runtime stays PHP, Node is build-time only. Reviewed adversarially; serializer hardened against integer-key reordering, validator set to strict (keyword-typo detection) with the over-strict sub-checks relaxed for the frozen schemas. Closes #40.
github-advanced-security[bot] (Migrated from github.com) reviewed 2026-07-02 12:00:57 +00:00
@ -41,0 +53,4 @@
working-directory: tools/generator
- name: Verify corpus is reproducible and the committed copy is fresh
run: npm run verify
working-directory: tools/generator
github-advanced-security[bot] (Migrated from github.com) commented 2026-07-02 12:00:57 +00:00

CodeQL / Workflow does not contain permissions

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {{contents: read}}

Show more details

## CodeQL / Workflow does not contain permissions Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {{contents: read}} [Show more details](https://github.com/Introibo-App/Core/security/code-scanning/3)
Sign in to join this conversation.
No reviewers
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
Directorium/Core!413
No description provided.