Skip to content

feat: warn when the strategic model is shaped against DDD as it is written - #224

Merged
yordis merged 5 commits into
mainfrom
yordis/feat-strategic-validation-findings
Oct 23, 2026
Merged

yordis merged 5 commits into
mainfrom
yordis/feat-strategic-validation-findings

Conversation

@yordis

@yordis yordis commented Oct 21, 2026 •

Copy link
Copy Markdown
Member
  • Agents and people kept modeling one problem space per context namespace, which made Acme Storefront look both Core and Supporting, and nothing on the write path told them the shape was wrong.
  • Strategic findings only surfaced in a separate validation call, so the agent that made the mistake never saw it at the moment it could fix it.
  • The demo manifests taught the same anti-pattern, so they now model one problem space that contexts realize across namespaces.

Stack created with GitHub Stacks CLI • Give Feedback 💬


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@cursor

cursor Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

PR Summary

Medium Risk
Touches gRPC response shapes, merge/delete validation semantics, and large example manifest graphs; strategic rules are advisory but agents and integrators must treat the new issues fields as the source of truth on mutations.

Overview
Introduces non-blocking strategic validation for problem-space and bounded-context modeling (Domain, Subdomain, BoundedContext rules such as dangling realizes, mixed classifications, domains in context namespaces). Those findings now ride on put/delete/batch/merge responses (proto DeleteEntityResponse.validation, merge docs clarified) instead of only showing up in a separate validate call; they never block writes or merges at any severity—only blocking store checks still fail merges.

CLI and MCP surface the same findings: apply always exits 0 when the batch lands (even Error-severity strategic codes), new validate-project scopes namespace/domain/project with a store-level report for strategic issues, merge output includes validation summaries, and mutating MCP tools return structured issues (with op_index/op_entity on batches).

Example Acme manifests are reshaped to match the intended layout: shared acme problem-space (one Project/Domain and all Subdomains), fulfillment moved out of storefront into acme-fulfillment (carrier dispatch, order.fulfilled, tracking), storefront stops at payment, reviews consumes fulfillment’s order.fulfilled with a conformist relationship, and the compose restore-drill seeds the extra namespaces.

Reviewed by Cursor Bugbot for commit b5c60a2. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You'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 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 39379ad0-8575-4304-9f6b-8cb04c89c2e4
📥 Commits

Reviewing files that changed from the base of the PR and between 23506f0 and b5c60a2.

⛔ Files ignored due to path filters: 1
  • rsworkspace/crates/trogon-atlas-proto/src/gen/trogonatlas.api.eventmodel.v1alpha1.rs is excluded by !**/gen/**
📒 Files selected for processing: 74
  • .config/mise/tasks/compose/restore-drill
  • examples/manifests/acme-customer-data-deletion/bounded-context.yaml
  • examples/manifests/acme-customer-data-deletion/domain.yaml
  • examples/manifests/acme-customer-data-deletion/event-model.yaml
  • examples/manifests/acme-customer-data-deletion/project.yaml
  • examples/manifests/acme-customer-data-deletion/subdomain.yaml
  • examples/manifests/acme-fulfillment/automation-slice.yaml
  • examples/manifests/acme-fulfillment/bounded-context.yaml
  • examples/manifests/acme-fulfillment/command-slice.yaml
  • examples/manifests/acme-fulfillment/command.yaml
  • examples/manifests/acme-fulfillment/component.yaml
  • examples/manifests/acme-fulfillment/event-model.yaml
  • examples/manifests/acme-fulfillment/event.yaml
  • examples/manifests/acme-fulfillment/external-system.yaml
  • examples/manifests/acme-fulfillment/persona.yaml
  • examples/manifests/acme-fulfillment/processor.yaml
  • examples/manifests/acme-fulfillment/read-model-slice.yaml
  • examples/manifests/acme-fulfillment/read-model.yaml
  • examples/manifests/acme-fulfillment/storyboard.yaml
  • examples/manifests/acme-fulfillment/swimlane.yaml
  • examples/manifests/acme-fulfillment/tracker.yaml
  • examples/manifests/acme-fulfillment/ui-slice.yaml
  • examples/manifests/acme-fulfillment/ui.yaml
  • examples/manifests/acme-reviews/bounded-context.yaml
  • examples/manifests/acme-reviews/domain.yaml
  • examples/manifests/acme-reviews/event-model.yaml
  • examples/manifests/acme-reviews/project.yaml
  • examples/manifests/acme-reviews/read-model.yaml
  • examples/manifests/acme-reviews/storyboard.yaml
  • examples/manifests/acme-reviews/subdomain.yaml
  • examples/manifests/acme-storefront/automation-slice.yaml
  • examples/manifests/acme-storefront/bounded-context.yaml
  • examples/manifests/acme-storefront/command-slice.yaml
  • examples/manifests/acme-storefront/command.yaml
  • examples/manifests/acme-storefront/component.yaml
  • examples/manifests/acme-storefront/domain.yaml
  • examples/manifests/acme-storefront/event-model.yaml
  • examples/manifests/acme-storefront/event.yaml
  • examples/manifests/acme-storefront/external-system.yaml
  • examples/manifests/acme-storefront/processor.yaml
  • examples/manifests/acme-storefront/project.yaml
  • examples/manifests/acme-storefront/read-model-slice.yaml
  • examples/manifests/acme-storefront/read-model.yaml
  • examples/manifests/acme-storefront/storyboard.yaml
  • examples/manifests/acme-storefront/subdomain.yaml
  • examples/manifests/acme-storefront/swimlane.yaml
  • examples/manifests/acme-storefront/tracker.yaml
  • examples/manifests/acme-storefront/ui.yaml
  • examples/manifests/acme-wishlist/bounded-context.yaml
  • examples/manifests/acme-wishlist/domain.yaml
  • examples/manifests/acme-wishlist/event-model.yaml
  • examples/manifests/acme-wishlist/project.yaml
  • examples/manifests/acme-wishlist/subdomain.yaml
  • examples/manifests/acme/domain.yaml
  • examples/manifests/acme/project.yaml
  • examples/manifests/acme/subdomain.yaml
  • proto/trogonatlas/api/eventmodel/v1alpha1/service.proto
  • rsworkspace/crates/trogon-atlas-cli/README.md
  • rsworkspace/crates/trogon-atlas-cli/src/main.rs
  • rsworkspace/crates/trogon-atlas-cli/tests/branch_cli_integration.rs
  • rsworkspace/crates/trogon-atlas-cli/tests/validate_cli_integration.rs
  • rsworkspace/crates/trogon-atlas-client/src/apply.rs
  • rsworkspace/crates/trogon-atlas-client/src/branch.rs
  • rsworkspace/crates/trogon-atlas-client/src/validate.rs
  • rsworkspace/crates/trogon-atlas-mcp/README.md
  • rsworkspace/crates/trogon-atlas-mcp/src/server.rs
  • rsworkspace/crates/trogon-atlas-mcp/tests/tool_lifecycle_integration.rs
  • rsworkspace/crates/trogon-atlas-server/src/service.rs
  • rsworkspace/crates/trogon-atlas-server/src/validation.rs
  • rsworkspace/crates/trogon-atlas-server/tests/account_deletion_fixture.rs
  • rsworkspace/crates/trogon-atlas-server/tests/branching.rs
  • rsworkspace/crates/trogon-atlas-server/tests/example_manifests_validate.rs
  • rsworkspace/crates/trogon-atlas-server/tests/handler_tests.rs
  • rsworkspace/crates/trogon-atlas-server/tests/strategic_write_validation.rs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@yordis
yordis added this pull request to stack #227 October 21, 2026 11:45

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread rsworkspace/crates/trogon-atlas-server/src/service.rs

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread rsworkspace/crates/trogon-atlas-cli/src/main.rs Outdated
@yordis
yordis force-pushed the yordis/feat-strategic-validation-findings branch 2 times, most recently from bf0032d to c71ac6b Compare October 22, 2026 19:09
@yordis
yordis marked this pull request as ready for review October 22, 2026 19:09

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c71ac6b. Configure here.

Comment thread examples/manifests/acme-fulfillment/read-model.yaml
@yordis
yordis force-pushed the yordis/feat-strategic-validation-findings branch from c71ac6b to 30f8644 Compare October 22, 2026 19:34
…itten

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…dy stored

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis
yordis force-pushed the yordis/feat-strategic-validation-findings branch from 30f8644 to b5c60a2 Compare October 23, 2026 00:58
@yordis
yordis merged commit 55ef11d into main Oct 23, 2026
27 checks passed
@yordis
yordis deleted the yordis/feat-strategic-validation-findings branch October 23, 2026 01:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant