feat: Integrate Requirements Engineering Agent and fix Issue #59 test failures

## Major Integration

-  Integrated Requirements Engineering Agent into development workflow
-  Enhanced Makefile with requirements validation targets
-  Added pre-commit validation with mock compatibility checking
-  Enhanced TDD workflow to include foundation analysis

## Test Fixes

-  Fixed GiteaPlugin missing _add_comment_async method
-  Fixed LocalPlugin config.yml file not found errors in tests
-  Enhanced mock objects in CLI tests with proper domain model attributes
-  All Issue #59 tests now passing (38/38 tests pass)

## New Capabilities

- `make validate-requirements` - Foundation analysis before development
- `make check-interface-compatibility INTERFACE=Name` - Interface compatibility checking
- `make generate-dev-checklist FEATURE='Name'` - Development checklist generation
- `make validate-mocks` - Mock object compatibility validation
- `make pre-commit-validate` - Complete pre-commit validation workflow

## Problem Prevention

This integration prevents the exact interface compatibility issues and mock object
mismatches that caused hours of debugging in Issue #59. The Requirements Engineering
Agent provides proactive foundation analysis and catches problems before they occur.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-02 00:45:06 +02:00
parent 484d919ffa
commit 3af6fb9935
14 changed files with 2222 additions and 29 deletions

View File

@@ -76,11 +76,19 @@ help:
@echo " test-from-issue NUM=X - Generate test skeleton from issue (requires Claude Code)"
@echo ""
@echo "TDD Workspace:"
@echo " tdd-start NUM=X - Start working on issue (creates workspace)"
@echo " tdd-start NUM=X - Start working on issue (with requirements validation)"
@echo " tdd-add-test - Add test to current issue workspace"
@echo " tdd-status - Show current workspace state"
@echo " tdd-finish - Complete issue work (moves tests to main)"
@echo ""
@echo "Requirements Engineering:"
@echo " validate-requirements - Analyze foundations before development"
@echo " check-interface-compatibility INTERFACE=Name - Check interface compatibility"
@echo " generate-dev-checklist FEATURE='Name' - Generate development checklist"
@echo " validate-mocks - Validate mock object compatibility"
@echo " pre-commit-validate - Complete pre-commit validation"
@echo " view-requirements-examples - Show usage examples"
@echo ""
@echo "MarkiTect CLI Usage:"
@echo " cli-help - Show detailed CLI usage targets and examples"
@echo " cli-ingest [FILE=doc.md] - Process and store markdown files"
@@ -352,12 +360,13 @@ test-from-issue:
@echo "📋 Fetching issue #$(NUM) details..."
@curl -s "$(ISSUES_API)/$(NUM)" | jq -r 'if .title then "✅ Issue #$(NUM): " + .title + "\n\n🧪 Generating test skeleton...\n Please ask Claude Code to generate a test for this issue:\n\n Command: '"'"'Generate a test skeleton for issue #$(NUM)'"'"'\n\n📋 Issue Details:\n Title: " + .title + "\n Description: " + .body + "\n\n📝 Test Requirements:\n - Follow TDD principles (test first, then implementation)\n - Use pytest framework (existing project convention)\n - Place test in tests/ directory\n - Name test file: test_issue_$(NUM)_*.py\n - Include docstring referencing issue #$(NUM)\n - Test should initially fail (red state)\n\n💡 After generation, run '"'"'make test'"'"' to verify test fails initially" else "❌ Issue #$(NUM) not found or API error\n Use '"'"'make list-open-issues'"'"' to see available issues" end' 2>/dev/null || echo "❌ Issue #$(NUM) not found or API error"
# Start working on an issue (creates workspace)
tdd-start: $(VENV)/bin/activate
# Start working on an issue (creates workspace with requirements validation)
tdd-start: validate-requirements $(VENV)/bin/activate
@if [ -z "$(NUM)" ]; then \
echo "❌ Please specify issue number: make tdd-start NUM=1"; \
exit 1; \
fi
@echo "🚀 Starting TDD workflow with requirements validation..."
@PYTHONPATH=. $(VENV_PYTHON) tddai_cli.py start-issue $(NUM)
# Add test to current issue workspace
@@ -954,3 +963,85 @@ cli-help:
# Update .PHONY for CLI targets
.PHONY: cli-ingest cli-status cli-list cli-get cli-schema-generate cli-schema-ingest cli-schema-list cli-schema-get cli-validate cli-validate-detailed cli-ast-show cli-ast-stats cli-ast-query cli-metadata cli-query cli-schema-db cli-cache-info cli-cache-clean cli-cache-invalidate cli-visualize-schema cli-visualize-schema-ascii cli-workflow-basic cli-workflow-schema cli-help
# ============================================================================
# Requirements Engineering Integration
# ============================================================================
# Validate project requirements and foundations before development
validate-requirements: $(VENV)/bin/activate
@echo "🔍 Validating project requirements and foundations..."
@PYTHONPATH=. $(VENV_PYTHON) tools/requirements_engineering_toolkit.py analyze
# Check interface compatibility for specific interface
check-interface-compatibility: $(VENV)/bin/activate
@if [ -z "$(INTERFACE)" ]; then \
echo "❌ Please specify interface: make check-interface-compatibility INTERFACE=IssueBackend"; \
exit 1; \
fi
@echo "🔌 Checking interface compatibility for $(INTERFACE)..."
@PYTHONPATH=. $(VENV_PYTHON) tools/requirements_engineering_toolkit.py plan-interface --interface $(INTERFACE)
# Generate development checklist for specific feature
generate-dev-checklist: $(VENV)/bin/activate
@if [ -z "$(FEATURE)" ]; then \
echo "❌ Please specify feature: make generate-dev-checklist FEATURE='Your Feature Name'"; \
exit 1; \
fi
@echo "📋 Generating development checklist for $(FEATURE)..."
@PYTHONPATH=. $(VENV_PYTHON) tools/requirements_engineering_toolkit.py checklist --feature "$(FEATURE)"
# Validate mock object compatibility
validate-mocks: $(VENV)/bin/activate
@echo "🧪 Validating mock object compatibility..."
@if [ -f "tests/test_mock_compatibility.py" ]; then \
PYTHONPATH=. $(VENV_PYTHON) -m pytest tests/test_mock_compatibility.py -xvs; \
else \
echo "⚠️ Mock compatibility tests not found"; \
echo " Run 'make setup-mock-validation' to create them"; \
fi
# Pre-commit validation including requirements
pre-commit-validate: validate-requirements validate-mocks
@echo "✅ Pre-commit validation complete"
# Setup mock validation test file
setup-mock-validation: $(VENV)/bin/activate
@echo "🔧 Setting up mock validation tests..."
@if [ ! -f "tests/test_mock_compatibility.py" ]; then \
cp docs/integration/requirements_engineering_integration.md tests/temp_integration_guide.md; \
echo "💡 Mock compatibility test template available in integration guide"; \
echo " Create tests/test_mock_compatibility.py based on the guide"; \
echo " See docs/integration/requirements_engineering_integration.md"; \
else \
echo "✅ Mock validation tests already exist"; \
fi
# View requirements engineering usage examples
view-requirements-examples: $(VENV)/bin/activate
@echo "📖 Requirements Engineering Usage Examples"
@echo "========================================="
@echo ""
@echo "Foundation Analysis:"
@echo " make validate-requirements"
@echo ""
@echo "Interface Planning:"
@echo " make check-interface-compatibility INTERFACE=IssueBackend"
@echo " make check-interface-compatibility INTERFACE=PluginManager"
@echo ""
@echo "Feature Development:"
@echo " make generate-dev-checklist FEATURE='New Plugin System'"
@echo " make generate-dev-checklist FEATURE='CLI Enhancement'"
@echo ""
@echo "Mock Validation:"
@echo " make validate-mocks"
@echo " make setup-mock-validation"
@echo ""
@echo "Complete Workflow:"
@echo " make pre-commit-validate"
@echo ""
@echo "📋 Prevention Demo:"
@echo " PYTHONPATH=. $(VENV_PYTHON) examples/issue_59_prevention_demo.py"
# Update .PHONY for requirements engineering targets
.PHONY: validate-requirements check-interface-compatibility generate-dev-checklist validate-mocks pre-commit-validate setup-mock-validation view-requirements-examples