Repository navigation
BAD CODE™: preserve directive definitions in schema IR #772
Copy link
Copy link
Open
Labels
legend:SOURCESource/schema/docs truth workSource/schema/docs truth worklegend:SPECSpecification/design workSpecification/design workpkg:wesley-corestatus: non-blockingThis issue is not a blocker for a release.This issue is not a blocker for a release.triage:bad-codeDebt intake that still needs scheduling, closure, or a repo moveDebt intake that still needs scheduling, closure, or a repo movev0.3.0Scheduled work for the v0.3.0 release.Scheduled work for the v0.3.0 release.work:enablerCreates capability needed for a later product sliceCreates capability needed for a later product slicework:integrityRemoves lies, drift, flake, or trust debtRemoves lies, drift, flake, or trust debt
Description
Activity
- addedstatus: non-blockingThis issue is not a blocker for a release.This issue is not a blocker for a release.work:integrityRemoves lies, drift, flake, or trust debtRemoves lies, drift, flake, or trust debttriage:bad-codeDebt intake that still needs scheduling, closure, or a repo moveDebt intake that still needs scheduling, closure, or a repo movelegend:SOURCESource/schema/docs truth workSource/schema/docs truth work
on Jul 28, 2026 coderabbitai commented
on Jul 28, 2026 coderabbitaiboton Jul 28, 2026 – with coderabbitaiMore actions🔗 Related PRs
#513 - expand parity fixture coverage [merged]
#686 - docs: add plain Wesley onboarding path [merged]
#687 - docs: publish assurance capability matrix [merged]
#693 - fix(core): reject duplicate nonrepeatable directives [merged]
#769 - Remove Weslaw from Wesley [open]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.- Create Plan
🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:issue_enrichment: auto_enrich: enabled: false
💬 Have feedback or questions? Drop into our discord!
- addedlegend:SPECSpecification/design workSpecification/design workv0.3.0Scheduled work for the v0.3.0 release.Scheduled work for the v0.3.0 release.work:enablerCreates capability needed for a later product sliceCreates capability needed for a later product slice
on Jul 28, 2026
Metadata
Metadata
Assignees
Labels
legend:SOURCESource/schema/docs truth workSource/schema/docs truth worklegend:SPECSpecification/design workSpecification/design workpkg:wesley-corestatus: non-blockingThis issue is not a blocker for a release.This issue is not a blocker for a release.triage:bad-codeDebt intake that still needs scheduling, closure, or a repo moveDebt intake that still needs scheduling, closure, or a repo movev0.3.0Scheduled work for the v0.3.0 release.Scheduled work for the v0.3.0 release.work:enablerCreates capability needed for a later product sliceCreates capability needed for a later product slicework:integrityRemoves lies, drift, flake, or trust debtRemoves lies, drift, flake, or trust debt
Evidence
The Profunctor Page block-contract integration in flyingrobots/profunctor-optics-website#53 lowers a directive-authored GraphQL schema through
wesley-core0.3.0-alpha.1. Wesley L1 preserves directive usages but omits the directive definitions that declare argument types, defaults, locations, and repeatability. The consumer therefore has to run a second reference GraphQL schema-validation pass before it can trust the digest-bound Wesley evidence.Risk
A Wesley IR consumer can observe directive values without being able to prove from that IR that the directives were declared or used lawfully. This splits schema integrity across two parsers and invites validator/lowerer drift.
Acceptance
This is valid integrity debt, not on the current website critical path; leave it unscheduled until Wesley roadmap triage.