Skip to content

feat: architecture compliance, E2E tests, and comprehensive improvements#523

Open
kazukinakai wants to merge 16 commits intoSuperClaude-Org:masterfrom
kazukinakai:feat/architecture-compliance-and-tests
Open

feat: architecture compliance, E2E tests, and comprehensive improvements#523
kazukinakai wants to merge 16 commits intoSuperClaude-Org:masterfrom
kazukinakai:feat/architecture-compliance-and-tests

Conversation

@kazukinakai
Copy link
Copy Markdown
Collaborator

Summary

  • Add Architecture Boundaries section to CLAUDE.md (superclaude = client, airis-agent = core)
  • Refactor pm_agent modules to thin wrapper + local fallback pattern
  • Add comprehensive E2E tests for CLI and pytest plugin
  • Fix Docker mount issue Docker mount error when installing airis-mcp-gateway via superclaude mcp #518 (mcp-config.json creation)
  • Add extensive unit tests (coverage 73%)
  • Update AIRIS MCP Gateway documentation

Test plan

  • All unit tests pass (297 passed)
  • All E2E tests pass (18 passed)
  • Test coverage at 73%
  • CLI commands verified (superclaude --version, doctor, install, mcp)
  • pytest plugin fixtures verified

Breaking changes

None. Local fallback preserves backward compatibility.

🤖 Generated with Claude Code

kazuki and others added 13 commits February 2, 2026 11:09
Adds airis-mcp-gateway as an alternative MCP setup method that provides:
- Single SSE endpoint for all MCP servers
- HOT/COLD server management for token optimization
- Lazy loading (servers start on-demand)
- Unified tool discovery
- Web UI for management

This addresses the complexity of managing multiple MCP servers and
provides token-efficient operation through selective tool advertising.

Repository: github.com/agiletec-inc/airis-mcp-gateway

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace outdated docker-compose.dist.yml method with quick-install.sh
- Fix Claude Code registration command: use --transport sse instead of npx mcp-remote
- Update feature list: 27+ tools, 75-90% token reduction, 120s idle timeout
- Add verification commands (health check, tools count)
- Update HOT/COLD server examples with actual server names
- Add AIRIS Suite reference (airis-agent, mindbase, airis-workspace)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update mcp-servers.md: remove quick-install.sh, use git clone + docker compose
- Update MCP_Airis-Agent.md: recommend gateway, list current tools
- Update MCP_Mindbase.md: recommend gateway, list current tools
- Add deprecation notice to airis-agent.json and mindbase.json configs
- Change airis-agent config from Docker to uvx

All airis components (airis-agent, mindbase) are now included in airis-mcp-gateway.
Individual installation is deprecated in favor of the unified gateway.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix version: 0.4.0 → 4.1.9
- Add MCP server commands to Essential Commands section
- Update MCP section to recommend airis-mcp-gateway as default
- Consolidate v5.0 plugin warnings (3 locations → 1)
- Remove unused plugins/superclaude/ structure from docs
- Reduce file size: 312 → 284 lines

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
High Priority Fixes:
- Fix package.json version mismatch (4.1.7 -> 4.1.9)
- Remove broken bin/ directory references from package.json
- Add pytest-cov to dev dependencies
- Add test-generated files to .gitignore (docs/mistakes/, docs/memory/*.jsonl)

Feature Implementations:
- Implement confidence.py placeholder methods (_no_duplicates, _architecture_compliant, _has_oss_reference, _root_cause_identified)
- Add Mindbase integration with graceful degradation in reflexion.py
- Add CLI commands: `superclaude init` and `superclaude check`

Documentation:
- Add UV installation instructions to README.md and CLAUDE.md
- Add fallback commands for users without UV

Code Cleanup:
- Remove unused methods (_has_existing_patterns, _has_clear_path) from confidence.py
- Delete tracked test-generated mistake files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ogic

Add 22 new tests covering the real codebase search and validation logic:
- TestCodebaseSearchImplementation: _find_project_root, _search_codebase, _no_duplicates
- TestTechStackDetection: _read_tech_stack, _check_architecture_anti_patterns
- TestRootCauseAnalysis: uncertainty language detection, solution validation
- TestOSSReferenceCheck: multiple ways to provide OSS references

Previous tests only covered flag-based paths. Now actual implementation is tested.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Placeholder implementations in confidence.py: DONE
- .gitignore contradictions: previously fixed
- UV installation docs: previously added
- Test suite: 308 passed, 76% coverage

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add tests/e2e/ directory with 18 E2E tests
- Test CLI commands: version, doctor, install, mcp, help
- Test pytest plugin: fixtures, markers, test execution
- Test confidence checker workflow end-to-end
- Add __main__.py to support python -m superclaude
- Fix .gitignore that was ignoring tests/ on macOS
- Add previously ignored unit tests

All 326 tests pass.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fixes SuperClaude-Org#518

Docker creates a directory instead of a file when mounting a
non-existent file. This caused airis-mcp-gateway to fail with:
"error mounting mcp-config.json: not a directory"

Changes:
- Download mcp-config.json.example from upstream before docker compose up
- Fallback to minimal config if download fails
- Auto-fix if mcp-config.json was incorrectly created as directory
- Create profiles directory for runtime data

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document critical architecture separation:
- superclaude = client only (CLI/UX, MCP wrappers)
- airis-agent = core logic (confidence, reflexion, search)

Explains why separation matters and provides good/bad examples.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Architecture compliance: superclaude = client only

- confidence.py: ConfidenceChecker delegates to _LocalConfidenceChecker
- reflexion.py: ReflexionPattern delegates to _LocalReflexionPattern
- Both try airis-agent import first, fallback to local implementation
- All tests pass (68 passed)

This maintains backward compatibility while preparing for full
airis-agent integration. Local fallback ensures offline/testing works.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Architecture compliance refactoring completed
- Docker mount issue SuperClaude-Org#518 fixed
- Mindbase integration partial (airis-agent ready)
- Test coverage at 73%

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@mithun50 mithun50 left a comment

Choose a reason for hiding this comment

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

Possible to pass all the test cases

- Remove unused imports (pytest, patch, MagicMock, os) from test files
- Fix import block sorting with isort
- Add noqa: F401 for airis-agent availability check imports
- Remove unused tmpdir variable assignments
- Apply ruff format to all source and test files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@kazukinakai kazukinakai force-pushed the feat/architecture-compliance-and-tests branch from c06b742 to f94ab82 Compare February 3, 2026 09:26
kazukinakai and others added 2 commits March 2, 2026 02:14
The airis-mcp-gateway docker-compose.yml mounts both mcp-config.json
and config/gateway-config.yaml. PR SuperClaude-Org#520 only fixed mcp-config.json,
leaving gateway-config.yaml to be created as a directory by Docker,
causing "no configuration file provided: not found" error.

This fix:
- Creates config/ directory before docker compose up
- Downloads gateway-config.yaml from upstream
- Falls back to minimal config if download fails
- Fixes existing directory-instead-of-file issues

Fixes: SuperClaude-Org#518 (additional fix)

Co-Authored-By: Claude <noreply@anthropic.com>
Merged upstream changes with gateway-config.yaml fix:
- Keep upstream's mcp_config_url and server disable logic
- Add directory-to-file fix for both mcp-config.json and gateway-config.yaml
- Add gateway-config.yaml download logic
- Keep upstream's .env file creation

Co-Authored-By: Claude <noreply@anthropic.com>
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.

2 participants