Repository navigation
feat: count only behavior-linked oracles for success-indicator-separation (Story 1.104) - #183
Conversation
…tion (Story 1.104) The rule read every declared oracle, so an oracle no behavior lists could satisfy it in both the structured-response and scalar CLI branches. Both now credit an oracle only when a behavior lists its identifier.
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 19 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configuration
⛔ Files ignored due to path filters (3)
📒 Files selected for processing (2)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
⛔ Files ignored due to path filters (2)
📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughRule 1 now requires a behavior to list an oracle before that oracle can witness success-indicator separation. The scalar-command witness check applies the same filter. Failure reasons identify when no behavior-linked oracle provides the required evidence. Tests cover unlinked, weaker, undeclared, and linked oracle references, including contracts with multiple behaviors. Other satisfaction predicates continue to use oracle views without this linkage filter. Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to No actionable issue remains from this review; the change is mergeable after normal checks. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 2 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What changes for an adopter
success-indicator-separationused to read every oracle the contract declares. An oracle that no behavior lists could satisfy it, so a contract could report the rule satisfied while no behavior had the evidence.Both branches had the gap: the structured-response branch and the scalar CLI branch (exit code
0plus exact whole stdout).Both branches now credit an oracle only when at least one behavior lists its identifier in
oracles. A behavior that cites an undeclared identifier links nothing.compilestill accepts a contract with an unlisted oracle. Coverage evaluation now reportssuccess-indicator-separationas a gap for it until a behavior lists the oracle.The structured unsatisfied reason now reads
no behavior-linked oracle addresses operation <id>'s success indicator ....No shipped example or corpus contract changed outcome: every witnessing oracle in them is already behavior-linked.
The relevance predicate and the other six rules are untouched. No version bump; the CHANGELOG entry sits under
[Unreleased].Mutation proof
Each mutant applied in a scratch copy of the repo, then
vitest run tests/coverage:Validation
npm run validate: green (5146 tests, includes docs counts, doc-claims, ad5 registry, AD-31 table, corpus, coverage)npm run format: clean