fix(examples): make shop.speq pass speq check#4
Conversation
The flagship v0.3 example failed validation on four content errors:
- contract subject 'checkout.total' -> 'cart.total' ('checkout' is not an ENTITY)
- STORAGE 'CALLS DATABASE' -> 'CALLS none' (no DATABASE layer is declared)
- AUTH_SECRET / CACHE_URL scoped to undeclared layer SERVICE -> BACKEND / CACHE
Verified clean against speq-tools v0.3 (check passes, state file generates).
There was a problem hiding this comment.
Code Review
This pull request updates the examples/shop.speq file by modifying secret mappings, changing the STORAGE layer's calls, and updating a contract from checkout.total to cart.total. A review comment points out that declaring CALLS none in the STORAGE layer violates SpeQ validation rules because none is not a declared layer; the CALLS statement should be omitted entirely if a layer does not call any other layers.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| OWNS persistence, migrations | ||
| CALLS DATABASE | ||
| CALLS none |
There was a problem hiding this comment.
According to Rule 11 of the SpeQ validation rules, CALLS lists may only reference layer names declared in the same LAYERS block. Since none is not a declared layer, declaring CALLS none is a validation violation. If a layer does not call any other layers, the CALLS statement should be omitted entirely (similar to the PAYMENT and CACHE layers).
OWNS persistence, migrations
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3ecad6bef2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| STORAGE | ||
| OWNS persistence, migrations | ||
| CALLS DATABASE | ||
| CALLS none |
There was a problem hiding this comment.
Omit CALLS when there are no callees
This example now declares none as a call target, but the published SpeQ rules say CALLS lists may only reference layer names declared in the same LAYERS block, and the other examples represent layers with no outbound calls by omitting CALLS entirely. In contexts where readers or tools follow SPEC.md rather than the v0.3 checker's apparent sentinel handling, STORAGE now references an undeclared/lowercase layer and the flagship example is no longer spec-conformant; removing this line preserves the intended “no outbound calls” behavior without inventing a target.
Useful? React with 👍 / 👎.
Summary
The flagship v0.3 example failed
speq checkon four content errors.Changes
checkout.total->cart.total(checkoutis not an ENTITY)CALLS DATABASE->CALLS none(no DATABASE layer is declared)AUTH_SECRET/CACHE_URLscoped to undeclared layerSERVICE->BACKEND/CACHETest plan
Verified clean against speq-tools v0.3 (
✓ Spec is clean, state file generates). AUDIT/TESTING content already valid.Risks / rollback
None — example-only content fix.