self-verify never compares a trigger's schema default or prose to route-table.json #135
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
external-review
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
security
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence-archived#135
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: strict re-review C-20
Verdict: AGREE - medium
Claim as reviewed
Current semantic contradictions and current bug paths coexist with green CI, self-verify and typecheck; test and self-audit coverage has demonstrated blind spots.
At HEAD
f354864(v3.3.0)Structural cause located:
cadence-core/bin/self-verify.mjs:1059-1079cross-checksroute-table.jsonagainst the schema's gatevalues(the vocabulary) and againststakes.values, but never compares a trigger's schemadefault, or itspurposeprose, to the table's stakes row.Consequence: no CI run can catch the
config getdivergence, thephase_diffschema sentence, or theconfig-catalog.mdmenu drift. All three are live at HEAD with every group green.Note
This is the assertion that would have caught three separate issues in this batch, so it is worth more than any one of them.
Sequencing within v3.4.1 — land this one first
This milestone is three views of one defect (#129, #134, #135). Order is not free, and it matters here because Cadence plans and executes this milestone itself.
#135 goes first. Reasons, in order:
self-verify.mjs:1059-1079currently compares gate vocabulary to the table and nothing else, so nothing in CI notices.defaultorpurposeprose disagrees withroute-table.json. That list is the work item for #129 and #134 - derived, not hand-transcribed from a review document.Planning consequence: #135 and the other two should not be one plan with parallel tasks. #129/#134 consume #135's output, so the file leases overlap in effect even where they do not overlap on paper. Sequential, or two phases.
One thing to check while implementing #135 - it has no issue of its own and should not be lost:
cadence-core/references/config-catalog.md:61is the/cad-configmenu's source of gate defaults and printsadjudicatedfor plan,advisoryfor diff/phase_diff. Percadence-core/workflows/config.md:48-49a knob absent from the repo file is shown "at its effective/default value unlabelled", so the interactive walk shows three gates that resolveoff. That is the same drift as #129 on the surface a user actually touches. If the assertion can cover the catalog table as well as the schema, cover it here rather than filing a fourth issue.Shipped in v3.4.1 (#177). https://git.jcrenshaw.dev/crenshawdev/cadence/releases/tag/v3.4.1