Remove Weslaw from Wesley - #769
flyingrobots wants to merge 4 commits into
Conversation
|
Warning Review limit reachedNext included review available in 46 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughWeslaw support is removed from the CLI, core contracts, Rust emission, Holmes workspace integration, schemas, fixtures, workflows, release checks, and current documentation. Extension-generation contracts and fixtures move from v1 to v2 without embedded semantic-law data. ChangesExtension-generation v2
Repository cleanup
Estimated code review effort: 4 (Complex) | ~60 minutes Merge Risk: ⚪ Minimal · up to The PR removes the deprecated Weslaw surfaces and updates the retained extension-generation contract; no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Linked Issues checkExplanation The changes align with issue Full details: Out of Scope Changes checkExplanation The reviewed changes are related to issue Full details: Docstring CoverageExplanation Docstring coverage is 65.22% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 46 functions across 4 files. (3 skipped: 3 unsupported.) Full details: Description checkExplanation The description states the main change, rationale, linked issue, and validation commands, but it omits most required template sections, including focused changes, method evidence checkboxes, risk, backout, tracker hygiene, and checklist status. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
🔍 The Case of Pull Request #769Schema Sets
Schema Set
|
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/ARCHITECTURE.md (1)
67-68: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winRemove dangling
RustHolmesedges from the diagram.After deleting the
RustHolmesnode, the edges at Lines 99 and 104 still reference it. Remove or rewire those edges so the Mermaid diagram accurately reflects the remaining architecture.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/ARCHITECTURE.md` around lines 67 - 68, Update the Mermaid architecture diagram to remove or rewire the dangling edges at the RustHolmes references near the wesley-emit-typescript and wesley-cli nodes, ensuring no remaining diagram edges reference the deleted RustHolmes node.
🧹 Nitpick comments (1)
crates/wesley-core/tests/extension_generation.rs (1)
115-166: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winMissing digest class:
projectionRoles.The test enumerates shape, operations, owner declarations, and settings, but
projection_rolesis also part of the canonical input and is copied into the review projection. Adding the case keeps this "every input class" claim true.♻️ Proposed additional case
let settings_change = input_with( shape_ir, operations, vec![owner], b"settings-v2", vec!["target-artifact"], ); assert_ne!(base_digest, settings_change.digest().unwrap());Add before the final block (cloning
shape_ir/operations/owneraccordingly):let roles_change = input_with( shape_ir.clone(), operations.clone(), vec![owner.clone()], b"settings-v1", vec!["target-artifact", "profile"], ); assert_ne!(base_digest, roles_change.digest().unwrap());🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@crates/wesley-core/tests/extension_generation.rs` around lines 115 - 166, Add a projection_roles variation to every_generation_input_class_moves_the_generation_digest using the existing input_with helper, preserving the other inputs and adding a distinct role such as "profile" to the target roles. Assert its digest differs from base_digest, alongside the existing shape, operations, owner, and settings cases.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/design/TEMPLATE.md`:
- Around line 328-329: Replace the undocumented “wesley schema validate” example
with a currently supported schema command, preferably “wesley schema lower”
using the same schema and JSON arguments, or remove that command example while
preserving the valid cargo test command.
In `@docs/ENTRYPOINTS.md`:
- Around line 86-89: Update the LE-binary command entries in ENTRYPOINTS.md to
remove the retired --law options and any remaining metadata claims about
optional law-bundle hashes, matching the current CLI behavior and the
documentation in cli.md. Preserve the supported schema, output, codec-import,
and metadata options.
In `@docs/GUIDE.md`:
- Around line 93-95: Remove the documented Weslaw command entries immediately
above this section, including init-law, the law command family, and emit ...
--law; retain only currently supported command documentation and the existing
Holmes-family guidance.
---
Outside diff comments:
In `@docs/ARCHITECTURE.md`:
- Around line 67-68: Update the Mermaid architecture diagram to remove or rewire
the dangling edges at the RustHolmes references near the wesley-emit-typescript
and wesley-cli nodes, ensuring no remaining diagram edges reference the deleted
RustHolmes node.
---
Nitpick comments:
In `@crates/wesley-core/tests/extension_generation.rs`:
- Around line 115-166: Add a projection_roles variation to
every_generation_input_class_moves_the_generation_digest using the existing
input_with helper, preserving the other inputs and adding a distinct role such
as "profile" to the target roles. Assert its digest differs from base_digest,
alongside the existing shape, operations, owner, and settings cases.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 30f44f6a-3886-414d-91ea-57458903aed1
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (138)
.continuum/release.yml.github/workflows/rust-native.ymlCHANGELOG.mdCargo.tomlREADME.mdcrates/wesley-cli/src/main.rscrates/wesley-cli/tests/cli.rscrates/wesley-core/README.mdcrates/wesley-core/src/domain/extension_generation.rscrates/wesley-core/src/domain/law.rscrates/wesley-core/src/domain/mod.rscrates/wesley-core/src/lib.rscrates/wesley-core/tests/extension_generation.rscrates/wesley-core/tests/generated_json_artifacts.rscrates/wesley-core/tests/law_ir.rscrates/wesley-emit-rust/src/lib.rscrates/wesley-holmes/Cargo.tomlcrates/wesley-holmes/README.mdcrates/wesley-holmes/src/adapters/mod.rscrates/wesley-holmes/src/application/artifact_locator.rscrates/wesley-holmes/src/application/contract_manifest_ingest.rscrates/wesley-holmes/src/application/evidence_validation.rscrates/wesley-holmes/src/application/law_capability_ingest.rscrates/wesley-holmes/src/application/law_coverage_ingest.rscrates/wesley-holmes/src/application/law_diff_ingest.rscrates/wesley-holmes/src/application/mod.rscrates/wesley-holmes/src/domain/assessment.rscrates/wesley-holmes/src/domain/contract_manifest.rscrates/wesley-holmes/src/domain/diagnostic.rscrates/wesley-holmes/src/domain/evidence.rscrates/wesley-holmes/src/domain/finding.rscrates/wesley-holmes/src/domain/law_capability.rscrates/wesley-holmes/src/domain/law_coverage.rscrates/wesley-holmes/src/domain/law_coverage_gate.rscrates/wesley-holmes/src/domain/law_diff.rscrates/wesley-holmes/src/domain/mod.rscrates/wesley-holmes/src/domain/policy.rscrates/wesley-holmes/src/domain/versioning.rscrates/wesley-holmes/src/lib.rscrates/wesley-holmes/src/ports/mod.rscrates/wesley-holmes/src/reporting/mod.rscrates/wesley-holmes/tests/architecture.rscrates/wesley-holmes/tests/assessment_core.rscrates/wesley-holmes/tests/contract_manifest_ingest.rscrates/wesley-holmes/tests/foundation.rscrates/wesley-holmes/tests/law_capability_ingest.rscrates/wesley-holmes/tests/law_coverage_gate.rscrates/wesley-holmes/tests/law_coverage_ingest.rscrates/wesley-holmes/tests/law_diff_ingest.rscrates/wesley-holmes/tests/policy_core.rscrates/wesley-holmes/tests/semantic_findings.rscrates/wesley-holmes/tests/suppression_abuse.rsdocs/ARCHITECTURE.mddocs/BEARING.mddocs/END_TO_END.mddocs/ENTRYPOINTS.mddocs/GUIDE.mddocs/JEDIT_CAPABILITY_EVIDENCE.mddocs/NORTHSTAR.mddocs/README.mddocs/SDL.mddocs/TECHNICAL_TEARDOWN.mddocs/architecture/holmes-integration.mddocs/design/0019-weslaw-semantic-law-ir/weslaw-semantic-law-ir.mddocs/design/0020-holmes-weslaw-assurance-prd-test-plan/holmes-weslaw-assurance-prd-test-plan.mddocs/design/0022-justification-graph-assurance-kernel/justification-graph-assurance-kernel.mddocs/design/0023-remove-weslaw/SOURCE_remove-weslaw.mddocs/design/README.mddocs/design/TEMPLATE.mddocs/governance/RELEASE_POLICY.mddocs/reference/assurance-capability-matrix.mddocs/reference/cli.mddocs/reference/extension-generation.mddocs/topics/README.mddocs/topics/assurance-evidence.mddocs/topics/native-cli.mddocs/topics/weslaw.mddocs/truth-manifest.jsonschemas/README.mdschemas/weslaw-v1.schema.jsonschemas/wesley-contract-bundle-manifest-v1.schema.jsonschemas/wesley-extension-generation-input-v1.schema.jsonschemas/wesley-extension-generation-input-v2.schema.jsonschemas/wesley-generation-provenance-manifest-v2.schema.jsonschemas/wesley-generation-review-v2.schema.jsonschemas/wesley-law-diff-v1.schema.jsonschemas/wesley-law-ir-v1.schema.jsontest/ci-workflows.batstest/fixtures/extension-generation/input.jsontest/fixtures/extension-generation/provenance.jsontest/fixtures/extension-generation/review.jsontest/fixtures/weslaw/README.mdtest/fixtures/weslaw/accepted/channel-ttd-protocol-from-directive.weslaw.yamltest/fixtures/weslaw/accepted/channel-ttd-protocol.weslaw.yamltest/fixtures/weslaw/accepted/footprint-replace-range.weslaw.yamltest/fixtures/weslaw/accepted/invariant-translated-evidence.weslaw.yamltest/fixtures/weslaw/accepted/rust-validator-payoff.weslaw.yamltest/fixtures/weslaw/accepted/scalar-semantics.weslaw.yamltest/fixtures/weslaw/accepted/variant-playback-mode.weslaw.yamltest/fixtures/weslaw/contract-bundle-shape.graphqltest/fixtures/weslaw/diff/binding-broken.weslaw.yamltest/fixtures/weslaw/diff/ci-semantic-diff.jsontest/fixtures/weslaw/diff/ci-semantic-diff.mdtest/fixtures/weslaw/diff/holmes-blade-binding-broken.jsontest/fixtures/weslaw/diff/new.weslaw.yamltest/fixtures/weslaw/diff/old.weslaw.yamltest/fixtures/weslaw/rejected/duplicate-id.expected.txttest/fixtures/weslaw/rejected/duplicate-id.weslaw.yamltest/fixtures/weslaw/rejected/external-extra-predicate-field.expected.txttest/fixtures/weslaw/rejected/external-extra-predicate-field.weslaw.yamltest/fixtures/weslaw/rejected/field-equals-extra-predicate-field.expected.txttest/fixtures/weslaw/rejected/field-equals-extra-predicate-field.weslaw.yamltest/fixtures/weslaw/rejected/footprint-unknown-cardinality.expected.txttest/fixtures/weslaw/rejected/footprint-unknown-cardinality.weslaw.yamltest/fixtures/weslaw/rejected/raw-expression-invariant.expected.txttest/fixtures/weslaw/rejected/raw-expression-invariant.weslaw.yamltest/fixtures/weslaw/rejected/scalar-forbid-non-integer.expected.txttest/fixtures/weslaw/rejected/scalar-forbid-non-integer.weslaw.yamltest/fixtures/weslaw/rejected/scalar-min-greater-than-max.expected.txttest/fixtures/weslaw/rejected/scalar-min-greater-than-max.weslaw.yamltest/fixtures/weslaw/rejected/scalar-range-on-non-integer.expected.txttest/fixtures/weslaw/rejected/scalar-range-on-non-integer.weslaw.yamltest/fixtures/weslaw/rejected/scalar-unknown-ordering.expected.txttest/fixtures/weslaw/rejected/scalar-unknown-ordering.weslaw.yamltest/fixtures/weslaw/rejected/schema-hash-mismatch.expected.txttest/fixtures/weslaw/rejected/schema-hash-mismatch.weslaw.yamltest/fixtures/weslaw/rejected/unknown-field.expected.txttest/fixtures/weslaw/rejected/unknown-field.weslaw.yamltest/fixtures/weslaw/rejected/unknown-kind.expected.txttest/fixtures/weslaw/rejected/unknown-kind.weslaw.yamltest/fixtures/weslaw/rejected/unresolved-subject.expected.txttest/fixtures/weslaw/rejected/unresolved-subject.weslaw.yamltest/fixtures/weslaw/rejected/wrong-type-optional-sequence.expected.txttest/fixtures/weslaw/rejected/wrong-type-optional-sequence.weslaw.yamltest/release-governance.batstest/weslaw-fixtures.batswesley.config.jsonxtask/src/main.rs
💤 Files with no reviewable changes (100)
- test/fixtures/weslaw/rejected/duplicate-id.expected.txt
- test/fixtures/weslaw/rejected/scalar-forbid-non-integer.expected.txt
- test/fixtures/weslaw/diff/binding-broken.weslaw.yaml
- test/fixtures/weslaw/rejected/scalar-unknown-ordering.expected.txt
- crates/wesley-holmes/Cargo.toml
- crates/wesley-holmes/README.md
- test/fixtures/weslaw/rejected/schema-hash-mismatch.weslaw.yaml
- test/fixtures/weslaw/rejected/wrong-type-optional-sequence.expected.txt
- test/fixtures/weslaw/diff/old.weslaw.yaml
- crates/wesley-holmes/src/reporting/mod.rs
- docs/topics/native-cli.md
- test/fixtures/weslaw/rejected/duplicate-id.weslaw.yaml
- test/fixtures/weslaw/rejected/scalar-forbid-non-integer.weslaw.yaml
- test/fixtures/weslaw/README.md
- docs/topics/weslaw.md
- crates/wesley-core/src/lib.rs
- test/fixtures/weslaw/rejected/field-equals-extra-predicate-field.expected.txt
- test/fixtures/weslaw/accepted/channel-ttd-protocol.weslaw.yaml
- test/fixtures/weslaw/rejected/unknown-kind.expected.txt
- test/fixtures/weslaw/rejected/scalar-min-greater-than-max.expected.txt
- test/fixtures/weslaw/accepted/scalar-semantics.weslaw.yaml
- crates/wesley-holmes/tests/architecture.rs
- test/fixtures/weslaw/rejected/scalar-range-on-non-integer.expected.txt
- test/fixtures/weslaw/rejected/scalar-unknown-ordering.weslaw.yaml
- test/fixtures/weslaw/accepted/invariant-translated-evidence.weslaw.yaml
- test/fixtures/weslaw/rejected/schema-hash-mismatch.expected.txt
- test/fixtures/weslaw/accepted/rust-validator-payoff.weslaw.yaml
- test/fixtures/weslaw/rejected/scalar-min-greater-than-max.weslaw.yaml
- test/fixtures/weslaw/rejected/raw-expression-invariant.weslaw.yaml
- schemas/wesley-law-diff-v1.schema.json
- test/fixtures/weslaw/diff/ci-semantic-diff.md
- crates/wesley-holmes/tests/contract_manifest_ingest.rs
- test/fixtures/weslaw/rejected/unknown-field.expected.txt
- crates/wesley-holmes/src/adapters/mod.rs
- crates/wesley-holmes/tests/law_coverage_ingest.rs
- test/fixtures/weslaw/rejected/footprint-unknown-cardinality.weslaw.yaml
- test/fixtures/weslaw/rejected/external-extra-predicate-field.expected.txt
- schemas/wesley-contract-bundle-manifest-v1.schema.json
- test/fixtures/weslaw/rejected/unknown-field.weslaw.yaml
- test/fixtures/weslaw/diff/holmes-blade-binding-broken.json
- test/fixtures/weslaw/rejected/unresolved-subject.expected.txt
- crates/wesley-holmes/tests/semantic_findings.rs
- test/fixtures/weslaw/diff/ci-semantic-diff.json
- crates/wesley-holmes/tests/law_coverage_gate.rs
- docs/truth-manifest.json
- test/fixtures/weslaw/diff/new.weslaw.yaml
- test/fixtures/weslaw/rejected/scalar-range-on-non-integer.weslaw.yaml
- crates/wesley-holmes/tests/suppression_abuse.rs
- test/fixtures/weslaw/accepted/variant-playback-mode.weslaw.yaml
- test/fixtures/weslaw/rejected/field-equals-extra-predicate-field.weslaw.yaml
- crates/wesley-holmes/tests/law_capability_ingest.rs
- crates/wesley-holmes/tests/law_diff_ingest.rs
- crates/wesley-holmes/tests/policy_core.rs
- crates/wesley-holmes/src/application/law_capability_ingest.rs
- crates/wesley-holmes/tests/assessment_core.rs
- test/fixtures/weslaw/rejected/external-extra-predicate-field.weslaw.yaml
- test/fixtures/weslaw/accepted/footprint-replace-range.weslaw.yaml
- docs/topics/README.md
- test/fixtures/weslaw/rejected/unresolved-subject.weslaw.yaml
- test/fixtures/weslaw/rejected/unknown-kind.weslaw.yaml
- crates/wesley-core/tests/law_ir.rs
- docs/NORTHSTAR.md
- test/fixtures/weslaw/accepted/channel-ttd-protocol-from-directive.weslaw.yaml
- test/fixtures/weslaw/rejected/wrong-type-optional-sequence.weslaw.yaml
- test/fixtures/weslaw/rejected/footprint-unknown-cardinality.expected.txt
- crates/wesley-holmes/tests/foundation.rs
- crates/wesley-holmes/src/domain/law_coverage.rs
- crates/wesley-holmes/src/lib.rs
- schemas/weslaw-v1.schema.json
- crates/wesley-core/src/domain/mod.rs
- crates/wesley-holmes/src/application/contract_manifest_ingest.rs
- crates/wesley-holmes/src/application/evidence_validation.rs
- .github/workflows/rust-native.yml
- test/weslaw-fixtures.bats
- wesley.config.json
- crates/wesley-holmes/src/application/law_coverage_ingest.rs
- crates/wesley-holmes/src/application/artifact_locator.rs
- test/fixtures/weslaw/rejected/raw-expression-invariant.expected.txt
- crates/wesley-holmes/src/domain/contract_manifest.rs
- schemas/wesley-extension-generation-input-v1.schema.json
- Cargo.toml
- crates/wesley-holmes/src/application/mod.rs
- test/release-governance.bats
- crates/wesley-holmes/src/domain/law_capability.rs
- .continuum/release.yml
- crates/wesley-holmes/src/domain/diagnostic.rs
- crates/wesley-holmes/src/domain/finding.rs
- test/ci-workflows.bats
- schemas/wesley-law-ir-v1.schema.json
- crates/wesley-holmes/src/application/law_diff_ingest.rs
- crates/wesley-holmes/src/domain/evidence.rs
- crates/wesley-holmes/src/ports/mod.rs
- crates/wesley-holmes/src/domain/law_diff.rs
- crates/wesley-holmes/src/domain/law_coverage_gate.rs
- crates/wesley-holmes/src/domain/assessment.rs
- test/fixtures/weslaw/contract-bundle-shape.graphql
- crates/wesley-holmes/src/domain/versioning.rs
- crates/wesley-holmes/src/domain/mod.rs
- crates/wesley-holmes/src/domain/policy.rs
- xtask/src/main.rs
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 03271f54f6
ℹ️ 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".
|
@coderabbitai review @codex review |
|
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 747cf26796
ℹ️ 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".
What does this PR do?
Removes Weslaw, Law IR, the Weslaw-specific Rust Holmes crate, and their CLI, emitter, schema, fixture, workflow, and release surfaces. The retained extension-generation contract is now a v2 structural provenance seam with no embedded semantic-law input.
Why this approach?
Wesley remains a GraphQL structural compiler. Edict owns executable application semantics, while runtimes and target adapters own their capabilities and target-specific semantics.
Validation
cargo xtask preflightCloses #768
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Refactor