diff --git a/.opencode/AGENTS.md b/.opencode/AGENTS.md new file mode 100644 index 0000000..3e60200 --- /dev/null +++ b/.opencode/AGENTS.md @@ -0,0 +1,77 @@ +# OpenCode Configuration + +This project uses [dotnet-claude-kit](https://github.com/codewithmukesh/dotnet-claude-kit) for .NET development intelligence. + +OpenCode reads the root `AGENTS.md` natively. This file is loaded via the `instructions` array in `opencode.json` and surfaces the kit's agents, skills, MCP tools, and rules so OpenCode can route work the same way Claude Code does. + +## MCP Server + +The `cwm-roslyn-navigator` MCP server is registered in `opencode.json` under the `mcp` key. It provides Roslyn-powered, read-only code intelligence: + +| Tool | Purpose | +|------|---------| +| `find_symbol` | Locate where a type, method, or property is defined | +| `find_references` | Find all usages of a symbol across the solution | +| `find_implementations` | Find types implementing an interface or deriving from a base class | +| `find_callers` | Find all methods calling a specific method | +| `find_overrides` | Find overrides of virtual/abstract methods | +| `find_dead_code` | Identify unused types, methods, and properties | +| `get_symbol_detail` | Get full signature, parameters, return type, XML docs | +| `get_public_api` | Get public members of a type without reading the file | +| `get_type_hierarchy` | Get inheritance chain, interfaces, and derived types | +| `get_project_graph` | Get solution dependency tree with frameworks and references | +| `get_dependency_graph` | Get recursive call graph for a method | +| `get_diagnostics` | Get compiler and analyzer diagnostics (errors, warnings) | +| `get_test_coverage_map` | Heuristic test coverage by naming convention | +| `detect_antipatterns` | Find .NET anti-patterns via Roslyn analysis | +| `detect_circular_dependencies` | Find cycles in project or type dependencies | + +Always prefer MCP tools over reading full source files to conserve context window. + +> Install the server first so the `cwm-roslyn-navigator` command resolves on PATH — see the [main README](https://github.com/codewithmukesh/dotnet-claude-kit#installation). + +## Specialist Agents + +Each agent below maps to a focused area of .NET work. The full agent definition (role, skills, boundaries) lives in `agents/.md` and can be loaded directly or adapted into an OpenCode subagent under `.opencode/agents/`. + +| Agent | File | When to Use | +|-------|------|-------------| +| dotnet-architect | `agents/dotnet-architect.md` | Architecture decisions, project structure, module boundaries, feature scaffolding | +| api-designer | `agents/api-designer.md` | Minimal API design, OpenAPI specs, versioning, rate limiting, CORS | +| ef-core-specialist | `agents/ef-core-specialist.md` | Database design, EF Core queries, migrations, DbContext configuration | +| test-engineer | `agents/test-engineer.md` | Test strategy, xUnit v3, WebApplicationFactory, Testcontainers | +| security-auditor | `agents/security-auditor.md` | Auth systems, OWASP compliance, secrets management, vulnerability review | +| performance-analyst | `agents/performance-analyst.md` | Profiling, benchmarks, caching strategy, async pattern optimization | +| devops-engineer | `agents/devops-engineer.md` | Docker, CI/CD pipelines, .NET Aspire orchestration, deployment | +| code-reviewer | `agents/code-reviewer.md` | Multi-dimensional code review, PR review, quality gatekeeper | +| build-error-resolver | `agents/build-error-resolver.md` | Autonomous build error fixing, iterative compilation repair | +| refactor-cleaner | `agents/refactor-cleaner.md` | Dead code removal, systematic cleanup, safe refactoring | + +## Skills + +Skills live in `skills//SKILL.md` and follow the Agent Skills open standard. Reference them by path when you need the opinionated pattern for a topic. + +### .NET Domain Skills +api-versioning, architecture-advisor, aspire, authentication, caching, ci-cd, clean-architecture, configuration, container-publish, ddd, dependency-injection, docker, ef-core, error-handling, httpclient-factory, logging, messaging, minimal-api, modern-csharp, openapi, opentelemetry, project-setup, project-structure, resilience, scalar, serilog, testing, vertical-slice + +### Workflow Skills (each carries its methodology inline) +build-fix, checkpoint, code-review, de-sloppify, dotnet-init, health-check, migrate, plan, scaffold, security-scan, spec, tdd, verify, wrap-up + +### Workflow & Learning Skills +convention-learner, workflow-mastery, instinct-system + +> Workflow skills map naturally onto OpenCode [custom commands](https://opencode.ai/docs/commands/) (`.opencode/commands/.md`). Create thin command wrappers that point at the matching skill's methodology when you want `/verify`, `/scaffold`, `/tdd`, etc. + +## Rules + +Always-applied coding conventions are consolidated for OpenCode in `.cursor/rules/dotnet-rules.md` (loaded via `opencode.json`). The canonical per-topic source lives in `.claude/rules/`: + +- `coding-style.md` — C# 14 style, naming, file organization +- `architecture.md` — Dependency direction, feature folders, data access +- `security.md` — Secrets, input validation, auth, transport security +- `testing.md` — Integration-first, xUnit v3, Testcontainers, AAA +- `performance.md` — CancellationToken, TimeProvider, caching, async +- `error-handling.md` — Result pattern, ProblemDetails, exception boundaries +- `git-workflow.md` — Conventional commits, atomic commits, branch safety +- `agents.md` — MCP-first tools, subagent routing, skill loading +- `hooks.md` — Format hooks, pre-commit, post-test analysis diff --git a/README.md b/README.md index 972acc6..9cdd59b 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,8 @@ dotnet-claude-kit/ ├── .claude-plugin/ # Plugin marketplace manifests ├── .cursor/rules/ # Cursor IDE compatibility ├── .codex/ # Codex CLI compatibility +├── opencode.json # OpenCode config (MCP + rules) +├── .opencode/ # OpenCode compatibility └── .github/workflows/ # CI validation ``` @@ -402,6 +404,7 @@ dotnet-claude-kit works with multiple AI coding tools: | **Claude Code** | `.claude-plugin/plugin.json` | Full integration: skills, agents, commands, rules, hooks, MCP | | **Cursor** | `.cursor/rules/dotnet-rules.md` | Consolidated .NET rules for Cursor IDE | | **Codex CLI** | `.codex/AGENTS.md` | Agent configuration pointing to skills and agents | +| **OpenCode** | `opencode.json` + `.opencode/AGENTS.md` | Roslyn MCP server, consolidated rules, and agent/skill catalog | ## Documentation diff --git a/opencode.json b/opencode.json new file mode 100644 index 0000000..50b0a5e --- /dev/null +++ b/opencode.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://opencode.ai/config.json", + "instructions": [ + ".opencode/AGENTS.md", + ".cursor/rules/dotnet-rules.md" + ], + "mcp": { + "cwm-roslyn-navigator": { + "type": "local", + "command": ["cwm-roslyn-navigator"], + "enabled": true + } + } +}