mirror of
https://github.com/imputnet/cobalt.git
synced 2026-08-04 14:52:28 +00:00
Merge pull request #2 from Abdullakala/ecc-tools/cobalt-1776432591710
feat: add cobalt ECC bundle
This commit is contained in:
commit
05bd308cca
11 changed files with 759 additions and 0 deletions
74
.agents/skills/cobalt/SKILL.md
Normal file
74
.agents/skills/cobalt/SKILL.md
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
```markdown
|
||||
# cobalt Development Patterns
|
||||
|
||||
> Auto-generated skill from repository analysis
|
||||
|
||||
## Overview
|
||||
This skill teaches the core development patterns and conventions used in the `cobalt` TypeScript codebase. You'll learn about file naming, import/export styles, commit message conventions, and how to write and organize tests. This guide is designed to help you contribute code that matches the project's established standards.
|
||||
|
||||
## Coding Conventions
|
||||
|
||||
### File Naming
|
||||
- Use **PascalCase** for all file names.
|
||||
- **Example:**
|
||||
`MyComponent.ts`
|
||||
|
||||
### Import Style
|
||||
- Use **absolute imports** for all modules.
|
||||
- **Example:**
|
||||
```typescript
|
||||
import MyService from 'services/MyService';
|
||||
```
|
||||
|
||||
### Export Style
|
||||
- Use **default exports** for modules.
|
||||
- **Example:**
|
||||
```typescript
|
||||
const MyUtility = () => { /* ... */ };
|
||||
export default MyUtility;
|
||||
```
|
||||
|
||||
### Commit Messages
|
||||
- Follow **conventional commit** format.
|
||||
- Use the `feat` prefix for new features.
|
||||
- **Example:**
|
||||
```
|
||||
feat: add user authentication middleware
|
||||
```
|
||||
|
||||
## Workflows
|
||||
|
||||
### Adding a New Feature
|
||||
**Trigger:** When implementing a new feature or module
|
||||
**Command:** `/add-feature`
|
||||
|
||||
1. Create a new file using PascalCase (e.g., `NewFeature.ts`).
|
||||
2. Write your module using TypeScript.
|
||||
3. Use absolute imports for dependencies.
|
||||
4. Export your module as default.
|
||||
5. Write corresponding tests in a file named `NewFeature.test.ts`.
|
||||
6. Commit your changes using the `feat` prefix in the commit message.
|
||||
|
||||
### Writing Tests
|
||||
**Trigger:** When adding or updating functionality
|
||||
**Command:** `/write-test`
|
||||
|
||||
1. Create a test file named `YourModule.test.ts` in the same directory as the module.
|
||||
2. Write tests using the project's preferred testing framework (unknown; check existing tests for guidance).
|
||||
3. Ensure all new or changed code is covered by tests.
|
||||
4. Run the test suite to verify correctness.
|
||||
|
||||
## Testing Patterns
|
||||
|
||||
- Test files follow the `*.test.*` pattern (e.g., `MyComponent.test.ts`).
|
||||
- Place test files alongside the modules they test.
|
||||
- The testing framework is not specified; review existing test files for syntax and structure.
|
||||
- Example test file name:
|
||||
`UserService.test.ts`
|
||||
|
||||
## Commands
|
||||
| Command | Purpose |
|
||||
|----------------|----------------------------------------------|
|
||||
| /add-feature | Guide for adding a new feature or module |
|
||||
| /write-test | Steps for writing and organizing tests |
|
||||
```
|
||||
6
.agents/skills/cobalt/agents/openai.yaml
Normal file
6
.agents/skills/cobalt/agents/openai.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
interface:
|
||||
display_name: "Cobalt"
|
||||
short_description: "Repo-specific patterns and workflows for cobalt"
|
||||
default_prompt: "Use the cobalt repo skill to follow existing architecture, testing, and workflow conventions."
|
||||
policy:
|
||||
allow_implicit_invocation: true
|
||||
171
.claude/ecc-tools.json
Normal file
171
.claude/ecc-tools.json
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
{
|
||||
"version": "1.3",
|
||||
"schemaVersion": "1.0",
|
||||
"generatedBy": "ecc-tools",
|
||||
"generatedAt": "2026-04-17T13:29:36.704Z",
|
||||
"repo": "https://github.com/Abdullakala/cobalt",
|
||||
"profiles": {
|
||||
"requested": "core",
|
||||
"recommended": "core",
|
||||
"effective": "core",
|
||||
"requestedAlias": "core",
|
||||
"recommendedAlias": "core",
|
||||
"effectiveAlias": "core"
|
||||
},
|
||||
"requestedProfile": "core",
|
||||
"profile": "core",
|
||||
"recommendedProfile": "core",
|
||||
"effectiveProfile": "core",
|
||||
"tier": "free",
|
||||
"requestedComponents": [
|
||||
"repo-baseline"
|
||||
],
|
||||
"selectedComponents": [
|
||||
"repo-baseline"
|
||||
],
|
||||
"requestedAddComponents": [],
|
||||
"requestedRemoveComponents": [],
|
||||
"blockedRemovalComponents": [],
|
||||
"tierFilteredComponents": [],
|
||||
"requestedRootPackages": [
|
||||
"runtime-core"
|
||||
],
|
||||
"selectedRootPackages": [
|
||||
"runtime-core"
|
||||
],
|
||||
"requestedPackages": [
|
||||
"runtime-core"
|
||||
],
|
||||
"requestedAddPackages": [],
|
||||
"requestedRemovePackages": [],
|
||||
"selectedPackages": [
|
||||
"runtime-core"
|
||||
],
|
||||
"packages": [
|
||||
"runtime-core"
|
||||
],
|
||||
"blockedRemovalPackages": [],
|
||||
"tierFilteredRootPackages": [],
|
||||
"tierFilteredPackages": [],
|
||||
"conflictingPackages": [],
|
||||
"dependencyGraph": {
|
||||
"runtime-core": []
|
||||
},
|
||||
"resolutionOrder": [
|
||||
"runtime-core"
|
||||
],
|
||||
"requestedModules": [
|
||||
"runtime-core"
|
||||
],
|
||||
"selectedModules": [
|
||||
"runtime-core"
|
||||
],
|
||||
"modules": [
|
||||
"runtime-core"
|
||||
],
|
||||
"managedFiles": [
|
||||
".claude/skills/cobalt/SKILL.md",
|
||||
".agents/skills/cobalt/SKILL.md",
|
||||
".agents/skills/cobalt/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/cobalt-instincts.yaml"
|
||||
],
|
||||
"packageFiles": {
|
||||
"runtime-core": [
|
||||
".claude/skills/cobalt/SKILL.md",
|
||||
".agents/skills/cobalt/SKILL.md",
|
||||
".agents/skills/cobalt/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/cobalt-instincts.yaml"
|
||||
]
|
||||
},
|
||||
"moduleFiles": {
|
||||
"runtime-core": [
|
||||
".claude/skills/cobalt/SKILL.md",
|
||||
".agents/skills/cobalt/SKILL.md",
|
||||
".agents/skills/cobalt/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/cobalt-instincts.yaml"
|
||||
]
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"moduleId": "runtime-core",
|
||||
"path": ".claude/skills/cobalt/SKILL.md",
|
||||
"description": "Repository-specific Claude Code skill generated from git history."
|
||||
},
|
||||
{
|
||||
"moduleId": "runtime-core",
|
||||
"path": ".agents/skills/cobalt/SKILL.md",
|
||||
"description": "Codex-facing copy of the generated repository skill."
|
||||
},
|
||||
{
|
||||
"moduleId": "runtime-core",
|
||||
"path": ".agents/skills/cobalt/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/cobalt-instincts.yaml",
|
||||
"description": "Continuous-learning instincts derived from repository patterns."
|
||||
}
|
||||
],
|
||||
"workflows": [],
|
||||
"adapters": {
|
||||
"claudeCode": {
|
||||
"skillPath": ".claude/skills/cobalt/SKILL.md",
|
||||
"identityPath": ".claude/identity.json",
|
||||
"commandPaths": []
|
||||
},
|
||||
"codex": {
|
||||
"configPath": ".codex/config.toml",
|
||||
"agentsGuidePath": ".codex/AGENTS.md",
|
||||
"skillPath": ".agents/skills/cobalt/SKILL.md"
|
||||
}
|
||||
}
|
||||
}
|
||||
319
.claude/homunculus/instincts/inherited/cobalt-instincts.yaml
Normal file
319
.claude/homunculus/instincts/inherited/cobalt-instincts.yaml
Normal file
|
|
@ -0,0 +1,319 @@
|
|||
# Instincts generated from https://github.com/Abdullakala/cobalt
|
||||
# Generated: 2026-04-17T13:29:50.681Z
|
||||
# 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: cobalt-commit-conventional
|
||||
trigger: "when writing a commit message"
|
||||
confidence: 0.85
|
||||
domain: git
|
||||
source: repo-analysis
|
||||
source_repo: https://github.com/Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Commit Conventional
|
||||
|
||||
## Action
|
||||
|
||||
Use conventional commit format with prefixes: feat
|
||||
|
||||
## Evidence
|
||||
|
||||
- 2 commits analyzed
|
||||
- Detected conventional commit pattern
|
||||
- Examples: feat: update branding and redesign UI with cyan/turquoise theme, feat: add systematic diagnostics and summary reports
|
||||
|
||||
---
|
||||
id: cobalt-commit-length
|
||||
trigger: "when writing a commit message"
|
||||
confidence: 0.6
|
||||
domain: git
|
||||
source: repo-analysis
|
||||
source_repo: https://github.com/Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Commit Length
|
||||
|
||||
## Action
|
||||
|
||||
Write moderate-length commit messages (~58 characters)
|
||||
|
||||
## Evidence
|
||||
|
||||
- Average commit message length: 58 chars
|
||||
- Based on 2 commits
|
||||
|
||||
---
|
||||
id: cobalt-naming-files
|
||||
trigger: "when creating a new file"
|
||||
confidence: 0.8
|
||||
domain: code-style
|
||||
source: repo-analysis
|
||||
source_repo: https://github.com/Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Naming Files
|
||||
|
||||
## Action
|
||||
|
||||
Use PascalCase naming convention
|
||||
|
||||
## Evidence
|
||||
|
||||
- Analyzed file naming patterns in repository
|
||||
- Dominant pattern: PascalCase
|
||||
|
||||
---
|
||||
id: cobalt-export-style
|
||||
trigger: "when exporting from a module"
|
||||
confidence: 0.7
|
||||
domain: code-style
|
||||
source: repo-analysis
|
||||
source_repo: https://github.com/Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Export Style
|
||||
|
||||
## Action
|
||||
|
||||
Prefer default exports
|
||||
|
||||
## Evidence
|
||||
|
||||
- Export pattern analysis
|
||||
- Dominant style: default
|
||||
|
||||
---
|
||||
id: cobalt-arch-type-based
|
||||
trigger: "when adding new code"
|
||||
confidence: 0.8
|
||||
domain: architecture
|
||||
source: repo-analysis
|
||||
source_repo: https://github.com/Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Arch Type Based
|
||||
|
||||
## Action
|
||||
|
||||
Place code in the appropriate type folder (components/, services/, utils/, etc.)
|
||||
|
||||
## Evidence
|
||||
|
||||
- Type-based module organization detected
|
||||
- Folders:
|
||||
|
||||
---
|
||||
id: cobalt-test-separate
|
||||
trigger: "when writing tests"
|
||||
confidence: 0.8
|
||||
domain: testing
|
||||
source: repo-analysis
|
||||
source_repo: https://github.com/Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Test Separate
|
||||
|
||||
## Action
|
||||
|
||||
Place tests in the tests/ or __tests__/ directory, mirroring src structure
|
||||
|
||||
## Evidence
|
||||
|
||||
- Separate test directory pattern detected
|
||||
- Tests live in dedicated test folders
|
||||
|
||||
---
|
||||
id: cobalt-instinct-file-naming
|
||||
trigger: "When creating a new file"
|
||||
confidence: 0.8
|
||||
domain: code-style
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct File Naming
|
||||
|
||||
## Action
|
||||
|
||||
Name the file using PascalCase
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in namingConventions.files
|
||||
|
||||
---
|
||||
id: cobalt-instinct-function-naming
|
||||
trigger: "When defining a function"
|
||||
confidence: 0.8
|
||||
domain: code-style
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Function Naming
|
||||
|
||||
## Action
|
||||
|
||||
Name the function using camelCase
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in namingConventions.functions
|
||||
|
||||
---
|
||||
id: cobalt-instinct-class-naming
|
||||
trigger: "When defining a class"
|
||||
confidence: 0.8
|
||||
domain: code-style
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Class Naming
|
||||
|
||||
## Action
|
||||
|
||||
Name the class using PascalCase
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in namingConventions.classes
|
||||
|
||||
---
|
||||
id: cobalt-instinct-constant-naming
|
||||
trigger: "When declaring a constant"
|
||||
confidence: 0.8
|
||||
domain: code-style
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Constant Naming
|
||||
|
||||
## Action
|
||||
|
||||
Name the constant using SCREAMING_SNAKE_CASE
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in namingConventions.constants
|
||||
|
||||
---
|
||||
id: cobalt-instinct-import-style
|
||||
trigger: "When importing modules"
|
||||
confidence: 0.8
|
||||
domain: code-style
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Import Style
|
||||
|
||||
## Action
|
||||
|
||||
Use absolute import paths
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in importStyle
|
||||
|
||||
---
|
||||
id: cobalt-instinct-export-style
|
||||
trigger: "When exporting modules"
|
||||
confidence: 0.8
|
||||
domain: code-style
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Export Style
|
||||
|
||||
## Action
|
||||
|
||||
Use default exports
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in exportStyle
|
||||
|
||||
---
|
||||
id: cobalt-instinct-commit-format
|
||||
trigger: "When writing a commit message for a new feature"
|
||||
confidence: 0.9
|
||||
domain: git
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Commit Format
|
||||
|
||||
## Action
|
||||
|
||||
Start the commit message with 'feat:' followed by a concise description
|
||||
|
||||
## Evidence
|
||||
|
||||
- Seen in commit: feat: update branding and redesign UI with cyan/turquoise theme
|
||||
- Seen in commit: feat: add systematic diagnostics and summary reports
|
||||
- Pattern in commits.prefixes
|
||||
|
||||
---
|
||||
id: cobalt-instinct-commit-length
|
||||
trigger: "When writing a commit message"
|
||||
confidence: 0.7
|
||||
domain: git
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Commit Length
|
||||
|
||||
## Action
|
||||
|
||||
Keep the commit message around 58 characters on average
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in commits.averageLength
|
||||
|
||||
---
|
||||
id: cobalt-instinct-test-location
|
||||
trigger: "When adding new tests"
|
||||
confidence: 0.8
|
||||
domain: testing
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Test Location
|
||||
|
||||
## Action
|
||||
|
||||
Place test files in a separate directory from source files
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in architecture.folderStructure.testLocation
|
||||
|
||||
---
|
||||
id: cobalt-instinct-module-organization
|
||||
trigger: "When organizing code modules"
|
||||
confidence: 0.7
|
||||
domain: architecture
|
||||
source: repo-analysis
|
||||
source_repo: Abdullakala/cobalt
|
||||
---
|
||||
|
||||
# Cobalt Instinct Module Organization
|
||||
|
||||
## Action
|
||||
|
||||
Group modules by type
|
||||
|
||||
## Evidence
|
||||
|
||||
- Pattern in architecture.moduleOrganization
|
||||
|
||||
14
.claude/identity.json
Normal file
14
.claude/identity.json
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"version": "2.0",
|
||||
"technicalLevel": "technical",
|
||||
"preferredStyle": {
|
||||
"verbosity": "detailed",
|
||||
"codeComments": true,
|
||||
"explanations": true
|
||||
},
|
||||
"domains": [
|
||||
"typescript"
|
||||
],
|
||||
"suggestedBy": "ecc-tools-repo-analysis",
|
||||
"createdAt": "2026-04-17T13:29:50.681Z"
|
||||
}
|
||||
74
.claude/skills/cobalt/SKILL.md
Normal file
74
.claude/skills/cobalt/SKILL.md
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
```markdown
|
||||
# cobalt Development Patterns
|
||||
|
||||
> Auto-generated skill from repository analysis
|
||||
|
||||
## Overview
|
||||
This skill teaches the core development patterns and conventions used in the `cobalt` TypeScript codebase. You'll learn about file naming, import/export styles, commit message conventions, and how to write and organize tests. This guide is designed to help you contribute code that matches the project's established standards.
|
||||
|
||||
## Coding Conventions
|
||||
|
||||
### File Naming
|
||||
- Use **PascalCase** for all file names.
|
||||
- **Example:**
|
||||
`MyComponent.ts`
|
||||
|
||||
### Import Style
|
||||
- Use **absolute imports** for all modules.
|
||||
- **Example:**
|
||||
```typescript
|
||||
import MyService from 'services/MyService';
|
||||
```
|
||||
|
||||
### Export Style
|
||||
- Use **default exports** for modules.
|
||||
- **Example:**
|
||||
```typescript
|
||||
const MyUtility = () => { /* ... */ };
|
||||
export default MyUtility;
|
||||
```
|
||||
|
||||
### Commit Messages
|
||||
- Follow **conventional commit** format.
|
||||
- Use the `feat` prefix for new features.
|
||||
- **Example:**
|
||||
```
|
||||
feat: add user authentication middleware
|
||||
```
|
||||
|
||||
## Workflows
|
||||
|
||||
### Adding a New Feature
|
||||
**Trigger:** When implementing a new feature or module
|
||||
**Command:** `/add-feature`
|
||||
|
||||
1. Create a new file using PascalCase (e.g., `NewFeature.ts`).
|
||||
2. Write your module using TypeScript.
|
||||
3. Use absolute imports for dependencies.
|
||||
4. Export your module as default.
|
||||
5. Write corresponding tests in a file named `NewFeature.test.ts`.
|
||||
6. Commit your changes using the `feat` prefix in the commit message.
|
||||
|
||||
### Writing Tests
|
||||
**Trigger:** When adding or updating functionality
|
||||
**Command:** `/write-test`
|
||||
|
||||
1. Create a test file named `YourModule.test.ts` in the same directory as the module.
|
||||
2. Write tests using the project's preferred testing framework (unknown; check existing tests for guidance).
|
||||
3. Ensure all new or changed code is covered by tests.
|
||||
4. Run the test suite to verify correctness.
|
||||
|
||||
## Testing Patterns
|
||||
|
||||
- Test files follow the `*.test.*` pattern (e.g., `MyComponent.test.ts`).
|
||||
- Place test files alongside the modules they test.
|
||||
- The testing framework is not specified; review existing test files for syntax and structure.
|
||||
- Example test file name:
|
||||
`UserService.test.ts`
|
||||
|
||||
## Commands
|
||||
| Command | Purpose |
|
||||
|----------------|----------------------------------------------|
|
||||
| /add-feature | Guide for adding a new feature or module |
|
||||
| /write-test | Steps for writing and organizing tests |
|
||||
```
|
||||
26
.codex/AGENTS.md
Normal file
26
.codex/AGENTS.md
Normal file
|
|
@ -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/cobalt/SKILL.md`
|
||||
- Claude-facing companion skill: `.claude/skills/cobalt/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.
|
||||
9
.codex/agents/docs-researcher.toml
Normal file
9
.codex/agents/docs-researcher.toml
Normal file
|
|
@ -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.
|
||||
"""
|
||||
9
.codex/agents/explorer.toml
Normal file
9
.codex/agents/explorer.toml
Normal file
|
|
@ -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.
|
||||
"""
|
||||
9
.codex/agents/reviewer.toml
Normal file
9
.codex/agents/reviewer.toml
Normal file
|
|
@ -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.
|
||||
"""
|
||||
48
.codex/config.toml
Normal file
48
.codex/config.toml
Normal file
|
|
@ -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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue