Skip to content

feat: business validation checks#33

Merged
amhellmund merged 2 commits into
mainfrom
claude/issue-32-20260228-1022
Feb 28, 2026
Merged

feat: business validation checks#33
amhellmund merged 2 commits into
mainfrom
claude/issue-32-20260228-1022

Conversation

@amhellmund
Copy link
Copy Markdown
Owner

Implements the four business validation checks described in issue #32:

  • Isolated component/system warning (no requires/provides)
  • Connection cycle detection (error)
  • Recursive type definition cycle detection (error)
  • Interface propagation check (error)

Closes #32

Generated with Claude Code

github-actions Bot and others added 2 commits February 28, 2026 10:33
Add four validation checks in the validation package:

1. Isolated entities (warning): components and systems with no
   requires or provides interfaces are flagged as incomplete from
   a business perspective. The architecture remains valid.

2. Connection cycles (error): detects directed cycles in the
   connection graph within each system/component scope using
   DFS with three-colour marking.

3. Type definition cycles (error): detects recursive type or
   interface definitions where NamedTypeRef fields form a cycle,
   including cycles through List<T>, Optional<T>, and Map<K,V>.

4. Interface propagation (error): non-leaf systems and components
   that declare requires/provides must have at least one direct
   member that declares the same interface.

Expose ValidationWarning, ValidationError, ValidationResult, and
validate() through validation/__init__.py.

Add comprehensive tests covering positive and negative cases for
all four checks, including edge cases such as versioned interface
matching, nested scopes, qualified name usage in messages, and
multi-check failures reported together.

Co-authored-by: Andi Hellmund <amhellmund@users.noreply.github.com>
@amhellmund amhellmund merged commit c6e17bd into main Feb 28, 2026
5 checks passed
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.

Business validation

1 participant