Skip to content

Implement Issue 42 feature with strict flag#44

Merged
calvingiles merged 3 commits intomainfrom
claude/implement-issue-42-strict-flag-011CUeKiKaHbRNYtFK5hjLFT
Oct 31, 2025
Merged

Implement Issue 42 feature with strict flag#44
calvingiles merged 3 commits intomainfrom
claude/implement-issue-42-strict-flag-011CUeKiKaHbRNYtFK5hjLFT

Conversation

@calvingiles
Copy link
Collaborator

@calvingiles calvingiles commented Oct 31, 2025

Resolves #41, #42

Implements REQ-004 to enable flexible reference resolution in DSL
validation by supporting documents outside formal type definitions.

Features:
- UnmanagedFile type for documents without type definitions
- Auto-exclusion of VCS directories (.git, .venv, node_modules)
- .gitignore support (enabled by default)
- .specignore support for marking unmanaged files
- --strict flag for warnings on unclassified files
- Option A behavior: auto-classify unmatched files as unmanaged

Changes:
- Added UnmanagedFile dataclass to validator.py
- Updated DSLValidator to support unmanaged files
- Added file classification logic (typed vs unmanaged)
- Enhanced ReferenceResolver to handle unmanaged file references
- Added CLI flags: --strict, --no-gitignore, --specignore-file
- Created REQ-004 specification document
- Added comprehensive test suite for REQ-004

Testing:
- All existing tests pass (287 passed, 1 skipped)
- Fixed cardinality validation loop placement bug
- Verified reference resolution for typed and unmanaged files
- Added test_REQ_004.py with comprehensive coverage

Addresses issue #42: validate-dsl Reference Resolution Failures

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
VCS auto-exclusion now only excludes actual version control system
metadata directories (.git, .hg, .svn, .bzr), not build artifacts.

Build artifacts and dependencies (.venv, node_modules, __pycache__)
should be excluded via .gitignore, not auto-excluded.

Changes:
- Updated _is_vcs_directory() to only check VCS metadata dirs
- Updated REQ-004 spec to clarify the distinction
- Updated AC-01 acceptance criteria
- Updated test to verify VCS metadata exclusion with .gitignore

Rationale: .gitignore is the standard way to exclude build artifacts
and dependencies. Auto-exclusion should only handle VCS metadata that
should never be scanned regardless of .gitignore configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
The Addresses section should reference a Job, not just list issues.
This fixes the validate-dsl check.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@calvingiles calvingiles merged commit cfe3d06 into main Oct 31, 2025
10 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.

check-links treats cross-directory links as "outside repository"

2 participants