diff --git a/.agents/skills/GraphRAG/SKILL.md b/.agents/skills/GraphRAG/SKILL.md new file mode 100644 index 0000000..f847871 --- /dev/null +++ b/.agents/skills/GraphRAG/SKILL.md @@ -0,0 +1,91 @@ +```markdown +# GraphRAG Development Patterns + +> Auto-generated skill from repository analysis + +## Overview +This skill teaches the core development patterns and conventions used in the GraphRAG Python codebase. You'll learn how to structure files, write imports and exports, follow commit conventions, and understand the project's approach to testing. This guide is designed to help you quickly become productive and consistent when contributing to GraphRAG. + +## Coding Conventions + +### File Naming +- Use **snake_case** for all file and module names. + - Example: `graph_utils.py`, `data_loader.py` + +### Import Style +- Prefer **relative imports** within the package. + - Example: + ```python + from .utils import process_data + from ..models import GraphNode + ``` + +### Export Style +- Use **named exports** (explicitly list exported functions, classes, etc.). + - Example: + ```python + __all__ = ["GraphBuilder", "parse_graph"] + ``` + +### Commit Messages +- Follow **conventional commit** format. +- Use the `feat` prefix for new features. + - Example: + ``` + feat: add support for multi-edge graphs + ``` + +## Workflows + +### Adding a New Feature +**Trigger:** When implementing a new capability or module +**Command:** `/add-feature` + +1. Create a new Python file using snake_case naming. +2. Use relative imports to reference internal modules. +3. Implement your feature, exporting key classes/functions via `__all__`. +4. Write or update relevant tests (see Testing Patterns). +5. Commit using the conventional format: + ``` + feat: short description of the feature + ``` +6. Push your branch and open a pull request. + +### Refactoring Code +**Trigger:** When improving code structure or readability +**Command:** `/refactor` + +1. Identify the code to refactor. +2. Apply changes, ensuring file naming and import conventions are maintained. +3. Update `__all__` exports if necessary. +4. Run all relevant tests. +5. Commit with a descriptive message (e.g., `refactor: improve graph traversal logic`). +6. Push changes and open a pull request. + +### Writing Tests +**Trigger:** When adding or updating tests +**Command:** `/write-test` + +1. Create or update test files (see Testing Patterns). +2. Ensure tests cover new or changed functionality. +3. Run tests locally to verify correctness. +4. Commit with a message like `test: add tests for graph merging`. + +## Testing Patterns + +- Test files follow the `*.test.ts` pattern (TypeScript), though the main codebase is Python. +- The specific testing framework is **unknown**; check existing test files for patterns. +- Place test files alongside the code they test, or in a dedicated `tests/` directory if present. + +Example test file name: +``` +graph_builder.test.ts +``` + +## Commands +| Command | Purpose | +|----------------|-------------------------------------------| +| /add-feature | Start the workflow for adding a new feature| +| /refactor | Begin a code refactoring workflow | +| /write-test | Guide for writing or updating tests | +``` diff --git a/.agents/skills/GraphRAG/agents/openai.yaml b/.agents/skills/GraphRAG/agents/openai.yaml new file mode 100644 index 0000000..f425560 --- /dev/null +++ b/.agents/skills/GraphRAG/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "GraphRAG" + short_description: "Repo-specific patterns and workflows for GraphRAG" + default_prompt: "Use the GraphRAG repo skill to follow existing architecture, testing, and workflow conventions." +policy: + allow_implicit_invocation: true \ No newline at end of file diff --git a/.claude/ecc-tools.json b/.claude/ecc-tools.json new file mode 100644 index 0000000..0cd0742 --- /dev/null +++ b/.claude/ecc-tools.json @@ -0,0 +1,272 @@ +{ + "version": "1.3", + "schemaVersion": "1.0", + "generatedBy": "ecc-tools", + "generatedAt": "2026-07-28T14:21:21.262Z", + "repo": "https://github.com/Rookiecoder-jsjs/GraphRAG", + "referenceSetReadiness": { + "score": 0, + "present": 0, + "total": 7, + "items": [ + { + "id": "deep-analyzer-corpus", + "label": "Deep analyzer corpus", + "status": "missing", + "evidence": [], + "recommendation": "Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions." + }, + { + "id": "rag-evaluator", + "label": "RAG/evaluator comparison", + "status": "missing", + "evidence": [], + "recommendation": "Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior." + }, + { + "id": "pr-salvage", + "label": "PR salvage/review corpus", + "status": "missing", + "evidence": [], + "recommendation": "Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation." + }, + { + "id": "discussion-triage", + "label": "Discussion triage corpus", + "status": "missing", + "evidence": [], + "recommendation": "Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications." + }, + { + "id": "harness-compatibility", + "label": "Harness compatibility", + "status": "missing", + "evidence": [], + "recommendation": "Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces." + }, + { + "id": "security-evidence", + "label": "Security evidence", + "status": "missing", + "evidence": [], + "recommendation": "Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs." + }, + { + "id": "ci-failure-mode", + "label": "CI failure-mode evidence", + "status": "missing", + "evidence": [], + "recommendation": "Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes." + } + ] + }, + "profiles": { + "requested": "full", + "recommended": "full", + "effective": "developer", + "requestedAlias": "full", + "recommendedAlias": "full", + "effectiveAlias": "developer" + }, + "requestedProfile": "full", + "profile": "developer", + "recommendedProfile": "full", + "effectiveProfile": "developer", + "tier": "free", + "requestedComponents": [ + "repo-baseline", + "workflow-automation", + "security-audits", + "research-tooling", + "team-rollout", + "governance-controls" + ], + "selectedComponents": [ + "repo-baseline", + "workflow-automation" + ], + "requestedAddComponents": [], + "requestedRemoveComponents": [], + "blockedRemovalComponents": [], + "tierFilteredComponents": [ + "security-audits", + "research-tooling", + "team-rollout", + "governance-controls" + ], + "requestedRootPackages": [ + "runtime-core", + "workflow-pack", + "agentshield-pack", + "research-pack", + "team-config-sync", + "enterprise-controls" + ], + "selectedRootPackages": [ + "runtime-core", + "workflow-pack" + ], + "requestedPackages": [ + "runtime-core", + "workflow-pack", + "agentshield-pack", + "research-pack", + "team-config-sync", + "enterprise-controls" + ], + "requestedAddPackages": [], + "requestedRemovePackages": [], + "selectedPackages": [ + "runtime-core", + "workflow-pack" + ], + "packages": [ + "runtime-core", + "workflow-pack" + ], + "blockedRemovalPackages": [], + "tierFilteredRootPackages": [ + "agentshield-pack", + "research-pack", + "team-config-sync", + "enterprise-controls" + ], + "tierFilteredPackages": [ + "agentshield-pack", + "research-pack", + "team-config-sync", + "enterprise-controls" + ], + "conflictingPackages": [], + "dependencyGraph": { + "runtime-core": [], + "workflow-pack": [ + "runtime-core" + ] + }, + "resolutionOrder": [ + "runtime-core", + "workflow-pack" + ], + "requestedModules": [ + "runtime-core", + "workflow-pack", + "agentshield-pack", + "research-pack", + "team-config-sync", + "enterprise-controls" + ], + "selectedModules": [ + "runtime-core", + "workflow-pack" + ], + "modules": [ + "runtime-core", + "workflow-pack" + ], + "managedFiles": [ + ".claude/skills/GraphRAG/SKILL.md", + ".agents/skills/GraphRAG/SKILL.md", + ".agents/skills/GraphRAG/agents/openai.yaml", + ".claude/identity.json", + ".codex/config.toml", + ".codex/AGENTS.md", + ".codex/agents/explorer.toml", + ".codex/agents/reviewer.toml", + ".codex/agents/docs-researcher.toml", + ".claude/homunculus/instincts/inherited/GraphRAG-instincts.yaml" + ], + "packageFiles": { + "runtime-core": [ + ".claude/skills/GraphRAG/SKILL.md", + ".agents/skills/GraphRAG/SKILL.md", + ".agents/skills/GraphRAG/agents/openai.yaml", + ".claude/identity.json", + ".codex/config.toml", + ".codex/AGENTS.md", + ".codex/agents/explorer.toml", + ".codex/agents/reviewer.toml", + ".codex/agents/docs-researcher.toml", + ".claude/homunculus/instincts/inherited/GraphRAG-instincts.yaml" + ] + }, + "moduleFiles": { + "runtime-core": [ + ".claude/skills/GraphRAG/SKILL.md", + ".agents/skills/GraphRAG/SKILL.md", + ".agents/skills/GraphRAG/agents/openai.yaml", + ".claude/identity.json", + ".codex/config.toml", + ".codex/AGENTS.md", + ".codex/agents/explorer.toml", + ".codex/agents/reviewer.toml", + ".codex/agents/docs-researcher.toml", + ".claude/homunculus/instincts/inherited/GraphRAG-instincts.yaml" + ] + }, + "files": [ + { + "moduleId": "runtime-core", + "path": ".claude/skills/GraphRAG/SKILL.md", + "description": "Repository-specific Claude Code skill generated from git history." + }, + { + "moduleId": "runtime-core", + "path": ".agents/skills/GraphRAG/SKILL.md", + "description": "Codex-facing copy of the generated repository skill." + }, + { + "moduleId": "runtime-core", + "path": ".agents/skills/GraphRAG/agents/openai.yaml", + "description": "Codex skill metadata so the repo skill appears cleanly in the skill interface." + }, + { + "moduleId": "runtime-core", + "path": ".claude/identity.json", + "description": "Suggested identity.json baseline derived from repository conventions." + }, + { + "moduleId": "runtime-core", + "path": ".codex/config.toml", + "description": "Repo-local Codex MCP and multi-agent baseline aligned with ECC defaults." + }, + { + "moduleId": "runtime-core", + "path": ".codex/AGENTS.md", + "description": "Codex usage guide that points at the generated repo skill and workflow bundle." + }, + { + "moduleId": "runtime-core", + "path": ".codex/agents/explorer.toml", + "description": "Read-only explorer role config for Codex multi-agent work." + }, + { + "moduleId": "runtime-core", + "path": ".codex/agents/reviewer.toml", + "description": "Read-only reviewer role config focused on correctness and security." + }, + { + "moduleId": "runtime-core", + "path": ".codex/agents/docs-researcher.toml", + "description": "Read-only docs researcher role config for API verification." + }, + { + "moduleId": "runtime-core", + "path": ".claude/homunculus/instincts/inherited/GraphRAG-instincts.yaml", + "description": "Continuous-learning instincts derived from repository patterns." + } + ], + "workflows": [], + "adapters": { + "claudeCode": { + "skillPath": ".claude/skills/GraphRAG/SKILL.md", + "identityPath": ".claude/identity.json", + "commandPaths": [] + }, + "codex": { + "configPath": ".codex/config.toml", + "agentsGuidePath": ".codex/AGENTS.md", + "skillPath": ".agents/skills/GraphRAG/SKILL.md" + } + } +} \ No newline at end of file diff --git a/.claude/homunculus/instincts/inherited/GraphRAG-instincts.yaml b/.claude/homunculus/instincts/inherited/GraphRAG-instincts.yaml new file mode 100644 index 0000000..734da44 --- /dev/null +++ b/.claude/homunculus/instincts/inherited/GraphRAG-instincts.yaml @@ -0,0 +1,357 @@ +# Instincts generated from https://github.com/Rookiecoder-jsjs/GraphRAG +# Generated: 2026-07-28T14:21:39.897Z +# Version: 2.0 +# NOTE: This file supplements (does not replace) any existing curated instincts. +# High-confidence manually curated instincts should be preserved alongside these. + +--- +id: GraphRAG-commit-conventional +trigger: "when writing a commit message" +confidence: 0.85 +domain: git +source: repo-analysis +source_repo: https://github.com/Rookiecoder-jsjs/GraphRAG +--- + +# GraphRAG Commit Conventional + +## Action + +Use conventional commit format with prefixes: feat + +## Evidence + +- 1 commits analyzed +- Detected conventional commit pattern +- Examples: feat: deep-think toggle, i18n, followup removal, storage hardening + +--- +id: GraphRAG-commit-length +trigger: "when writing a commit message" +confidence: 0.6 +domain: git +source: repo-analysis +source_repo: https://github.com/Rookiecoder-jsjs/GraphRAG +--- + +# GraphRAG Commit Length + +## Action + +Write moderate-length commit messages (~66 characters) + +## Evidence + +- Average commit message length: 66 chars +- Based on 1 commits + +--- +id: GraphRAG-naming-files +trigger: "when creating a new file" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: https://github.com/Rookiecoder-jsjs/GraphRAG +--- + +# GraphRAG Naming Files + +## Action + +Use snake_case naming convention + +## Evidence + +- Analyzed file naming patterns in repository +- Dominant pattern: snake_case + +--- +id: GraphRAG-import-relative +trigger: "when importing modules" +confidence: 0.75 +domain: code-style +source: repo-analysis +source_repo: https://github.com/Rookiecoder-jsjs/GraphRAG +--- + +# GraphRAG Import Relative + +## Action + +Use relative imports for project files + +## Evidence + +- Import analysis shows relative import pattern +- Example: import { x } from '../lib/x' + +--- +id: GraphRAG-export-style +trigger: "when exporting from a module" +confidence: 0.7 +domain: code-style +source: repo-analysis +source_repo: https://github.com/Rookiecoder-jsjs/GraphRAG +--- + +# GraphRAG Export Style + +## Action + +Prefer named exports + +## Evidence + +- Export pattern analysis +- Dominant style: named + +--- +id: GraphRAG-arch-type-based +trigger: "when adding new code" +confidence: 0.8 +domain: architecture +source: repo-analysis +source_repo: https://github.com/Rookiecoder-jsjs/GraphRAG +--- + +# GraphRAG Arch Type Based + +## Action + +Place code in the appropriate type folder (components/, services/, utils/, etc.) + +## Evidence + +- Type-based module organization detected +- Folders: + +--- +id: GraphRAG-test-naming +trigger: "when creating a test file" +confidence: 0.85 +domain: testing +source: repo-analysis +source_repo: https://github.com/Rookiecoder-jsjs/GraphRAG +--- + +# GraphRAG Test Naming + +## Action + +Name test files using the pattern: *.test.ts + +## Evidence + +- File pattern: *.test.ts +- Consistent across test files + +--- +id: graphrag-instinct-file-naming +trigger: "When creating a new Python file" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct File Naming + +## Action + +Name the file using snake_case + +## Evidence + +- Pattern in files: namingConventions.files = snake_case + +--- +id: graphrag-instinct-function-naming +trigger: "When defining a new function in Python" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Function Naming + +## Action + +Use camelCase for the function name + +## Evidence + +- Pattern in files: namingConventions.functions = camelCase + +--- +id: graphrag-instinct-class-naming +trigger: "When defining a new class in Python" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Class Naming + +## Action + +Use PascalCase for the class name + +## Evidence + +- Pattern in files: namingConventions.classes = PascalCase + +--- +id: graphrag-instinct-constant-naming +trigger: "When defining a constant in Python" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Constant Naming + +## Action + +Use SCREAMING_SNAKE_CASE for the constant name + +## Evidence + +- Pattern in files: namingConventions.constants = SCREAMING_SNAKE_CASE + +--- +id: graphrag-instinct-import-style +trigger: "When importing modules in Python" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Import Style + +## Action + +Use relative imports + +## Evidence + +- Pattern in files: importStyle = relative + +--- +id: graphrag-instinct-export-style +trigger: "When exporting modules or functions" +confidence: 0.7 +domain: code-style +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Export Style + +## Action + +Use named exports + +## Evidence + +- Pattern in files: exportStyle = named + +--- +id: graphrag-instinct-test-file-pattern +trigger: "When creating a new test file for TypeScript code" +confidence: 0.9 +domain: testing +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Test File Pattern + +## Action + +Name the file with the pattern *.test.ts + +## Evidence + +- Pattern in files: test filePattern = *.test.ts + +--- +id: graphrag-instinct-test-type +trigger: "When writing tests" +confidence: 0.8 +domain: testing +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Test Type + +## Action + +Write unit tests + +## Evidence + +- Pattern in files: testTypes = unit + +--- +id: graphrag-instinct-commit-format +trigger: "When writing a git commit message" +confidence: 0.9 +domain: git +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Commit Format + +## Action + +Use the conventional commit format with 'feat' prefix for features + +## Evidence + +- Seen in commit: 'feat: deep-think toggle, i18n, followup removal, storage hardening' +- Pattern in commits: prefixes = ['feat'] + +--- +id: graphrag-instinct-commit-length +trigger: "When writing a git commit message" +confidence: 0.7 +domain: git +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Commit Length + +## Action + +Keep the commit message concise, around 66 characters on average + +## Evidence + +- Pattern in commits: averageLength = 66 + +--- +id: graphrag-instinct-error-handling +trigger: "When handling errors in code" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: Rookiecoder-jsjs/GraphRAG +--- + +# Graphrag Instinct Error Handling + +## Action + +Use try-catch blocks for error handling + +## Evidence + +- Pattern in files: errorHandling.style = try-catch + diff --git a/.claude/identity.json b/.claude/identity.json new file mode 100644 index 0000000..2109dce --- /dev/null +++ b/.claude/identity.json @@ -0,0 +1,14 @@ +{ + "version": "2.0", + "technicalLevel": "technical", + "preferredStyle": { + "verbosity": "detailed", + "codeComments": true, + "explanations": true + }, + "domains": [ + "python" + ], + "suggestedBy": "ecc-tools-repo-analysis", + "createdAt": "2026-07-28T14:21:39.897Z" +} \ No newline at end of file diff --git a/.claude/skills/GraphRAG/SKILL.md b/.claude/skills/GraphRAG/SKILL.md new file mode 100644 index 0000000..f847871 --- /dev/null +++ b/.claude/skills/GraphRAG/SKILL.md @@ -0,0 +1,91 @@ +```markdown +# GraphRAG Development Patterns + +> Auto-generated skill from repository analysis + +## Overview +This skill teaches the core development patterns and conventions used in the GraphRAG Python codebase. You'll learn how to structure files, write imports and exports, follow commit conventions, and understand the project's approach to testing. This guide is designed to help you quickly become productive and consistent when contributing to GraphRAG. + +## Coding Conventions + +### File Naming +- Use **snake_case** for all file and module names. + - Example: `graph_utils.py`, `data_loader.py` + +### Import Style +- Prefer **relative imports** within the package. + - Example: + ```python + from .utils import process_data + from ..models import GraphNode + ``` + +### Export Style +- Use **named exports** (explicitly list exported functions, classes, etc.). + - Example: + ```python + __all__ = ["GraphBuilder", "parse_graph"] + ``` + +### Commit Messages +- Follow **conventional commit** format. +- Use the `feat` prefix for new features. + - Example: + ``` + feat: add support for multi-edge graphs + ``` + +## Workflows + +### Adding a New Feature +**Trigger:** When implementing a new capability or module +**Command:** `/add-feature` + +1. Create a new Python file using snake_case naming. +2. Use relative imports to reference internal modules. +3. Implement your feature, exporting key classes/functions via `__all__`. +4. Write or update relevant tests (see Testing Patterns). +5. Commit using the conventional format: + ``` + feat: short description of the feature + ``` +6. Push your branch and open a pull request. + +### Refactoring Code +**Trigger:** When improving code structure or readability +**Command:** `/refactor` + +1. Identify the code to refactor. +2. Apply changes, ensuring file naming and import conventions are maintained. +3. Update `__all__` exports if necessary. +4. Run all relevant tests. +5. Commit with a descriptive message (e.g., `refactor: improve graph traversal logic`). +6. Push changes and open a pull request. + +### Writing Tests +**Trigger:** When adding or updating tests +**Command:** `/write-test` + +1. Create or update test files (see Testing Patterns). +2. Ensure tests cover new or changed functionality. +3. Run tests locally to verify correctness. +4. Commit with a message like `test: add tests for graph merging`. + +## Testing Patterns + +- Test files follow the `*.test.ts` pattern (TypeScript), though the main codebase is Python. +- The specific testing framework is **unknown**; check existing test files for patterns. +- Place test files alongside the code they test, or in a dedicated `tests/` directory if present. + +Example test file name: +``` +graph_builder.test.ts +``` + +## Commands +| Command | Purpose | +|----------------|-------------------------------------------| +| /add-feature | Start the workflow for adding a new feature| +| /refactor | Begin a code refactoring workflow | +| /write-test | Guide for writing or updating tests | +``` diff --git a/.codex/AGENTS.md b/.codex/AGENTS.md new file mode 100644 index 0000000..5586043 --- /dev/null +++ b/.codex/AGENTS.md @@ -0,0 +1,26 @@ +# ECC for Codex CLI + +This supplements the root `AGENTS.md` with a repo-local ECC baseline. + +## Repo Skill + +- Repo-generated Codex skill: `.agents/skills/GraphRAG/SKILL.md` +- Claude-facing companion skill: `.claude/skills/GraphRAG/SKILL.md` +- Keep user-specific credentials and private MCPs in `~/.codex/config.toml`, not in this repo. + +## MCP Baseline + +Treat `.codex/config.toml` as the default ECC-safe baseline for work in this repository. +The generated baseline enables GitHub, Context7, Exa, Memory, Playwright, and Sequential Thinking. + +## Multi-Agent Support + +- Explorer: read-only evidence gathering +- Reviewer: correctness, security, and regression review +- Docs researcher: API and release-note verification + +## Workflow Files + +- No dedicated workflow command files were generated for this repo. + +Use these workflow files as reusable task scaffolds when the detected repository workflows recur. \ No newline at end of file diff --git a/.codex/agents/docs-researcher.toml b/.codex/agents/docs-researcher.toml new file mode 100644 index 0000000..0daae57 --- /dev/null +++ b/.codex/agents/docs-researcher.toml @@ -0,0 +1,9 @@ +model = "gpt-5.4" +model_reasoning_effort = "medium" +sandbox_mode = "read-only" + +developer_instructions = """ +Verify APIs, framework behavior, and release-note claims against primary documentation before changes land. +Cite the exact docs or file paths that support each claim. +Do not invent undocumented behavior. +""" \ No newline at end of file diff --git a/.codex/agents/explorer.toml b/.codex/agents/explorer.toml new file mode 100644 index 0000000..732df7a --- /dev/null +++ b/.codex/agents/explorer.toml @@ -0,0 +1,9 @@ +model = "gpt-5.4" +model_reasoning_effort = "medium" +sandbox_mode = "read-only" + +developer_instructions = """ +Stay in exploration mode. +Trace the real execution path, cite files and symbols, and avoid proposing fixes unless the parent agent asks for them. +Prefer targeted search and file reads over broad scans. +""" \ No newline at end of file diff --git a/.codex/agents/reviewer.toml b/.codex/agents/reviewer.toml new file mode 100644 index 0000000..b13ed9c --- /dev/null +++ b/.codex/agents/reviewer.toml @@ -0,0 +1,9 @@ +model = "gpt-5.4" +model_reasoning_effort = "high" +sandbox_mode = "read-only" + +developer_instructions = """ +Review like an owner. +Prioritize correctness, security, behavioral regressions, and missing tests. +Lead with concrete findings and avoid style-only feedback unless it hides a real bug. +""" \ No newline at end of file diff --git a/.codex/config.toml b/.codex/config.toml new file mode 100644 index 0000000..bc1ee67 --- /dev/null +++ b/.codex/config.toml @@ -0,0 +1,48 @@ +#:schema https://developers.openai.com/codex/config-schema.json + +# ECC Tools generated Codex baseline +approval_policy = "on-request" +sandbox_mode = "workspace-write" +web_search = "live" + +[mcp_servers.github] +command = "npx" +args = ["-y", "@modelcontextprotocol/server-github"] + +[mcp_servers.context7] +command = "npx" +args = ["-y", "@upstash/context7-mcp@latest"] + +[mcp_servers.exa] +url = "https://mcp.exa.ai/mcp" + +[mcp_servers.memory] +command = "npx" +args = ["-y", "@modelcontextprotocol/server-memory"] + +[mcp_servers.playwright] +command = "npx" +args = ["-y", "@playwright/mcp@latest", "--extension"] + +[mcp_servers.sequential-thinking] +command = "npx" +args = ["-y", "@modelcontextprotocol/server-sequential-thinking"] + +[features] +multi_agent = true + +[agents] +max_threads = 6 +max_depth = 1 + +[agents.explorer] +description = "Read-only codebase explorer for gathering evidence before changes are proposed." +config_file = "agents/explorer.toml" + +[agents.reviewer] +description = "PR reviewer focused on correctness, security, and missing tests." +config_file = "agents/reviewer.toml" + +[agents.docs_researcher] +description = "Documentation specialist that verifies APIs, framework behavior, and release notes." +config_file = "agents/docs-researcher.toml" \ No newline at end of file