From 0e1892a538059ee5bb8499ef467e216b3d430a69 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:29:52 +0000 Subject: [PATCH 01/11] feat: add cobalt ECC bundle (.claude/ecc-tools.json) --- .claude/ecc-tools.json | 171 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 .claude/ecc-tools.json diff --git a/.claude/ecc-tools.json b/.claude/ecc-tools.json new file mode 100644 index 00000000..bbad32c7 --- /dev/null +++ b/.claude/ecc-tools.json @@ -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" + } + } +} \ No newline at end of file From b9cf9164b228b85dde51bfdb6fabb1df07be63fe Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:29:53 +0000 Subject: [PATCH 02/11] feat: add cobalt ECC bundle (.claude/skills/cobalt/SKILL.md) --- .claude/skills/cobalt/SKILL.md | 74 ++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .claude/skills/cobalt/SKILL.md diff --git a/.claude/skills/cobalt/SKILL.md b/.claude/skills/cobalt/SKILL.md new file mode 100644 index 00000000..ee6867ed --- /dev/null +++ b/.claude/skills/cobalt/SKILL.md @@ -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 | +``` \ No newline at end of file From 262329ea894c89d17480a724ab1b5793994af1c0 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:29:54 +0000 Subject: [PATCH 03/11] feat: add cobalt ECC bundle (.agents/skills/cobalt/SKILL.md) --- .agents/skills/cobalt/SKILL.md | 74 ++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .agents/skills/cobalt/SKILL.md diff --git a/.agents/skills/cobalt/SKILL.md b/.agents/skills/cobalt/SKILL.md new file mode 100644 index 00000000..ee6867ed --- /dev/null +++ b/.agents/skills/cobalt/SKILL.md @@ -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 | +``` \ No newline at end of file From ab1edfb79dc58bd56a15e185d2efb5ddfc23266f Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:29:56 +0000 Subject: [PATCH 04/11] feat: add cobalt ECC bundle (.agents/skills/cobalt/agents/openai.yaml) --- .agents/skills/cobalt/agents/openai.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .agents/skills/cobalt/agents/openai.yaml diff --git a/.agents/skills/cobalt/agents/openai.yaml b/.agents/skills/cobalt/agents/openai.yaml new file mode 100644 index 00000000..439496b3 --- /dev/null +++ b/.agents/skills/cobalt/agents/openai.yaml @@ -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 \ No newline at end of file From 285739e1b03cb6e41978495d3f4e172ae79b8a19 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:29:57 +0000 Subject: [PATCH 05/11] feat: add cobalt ECC bundle (.claude/identity.json) --- .claude/identity.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .claude/identity.json diff --git a/.claude/identity.json b/.claude/identity.json new file mode 100644 index 00000000..d6d8e8fb --- /dev/null +++ b/.claude/identity.json @@ -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" +} \ No newline at end of file From 48135fa6526815c8efd670e1cb61e990c4de17bd Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:29:58 +0000 Subject: [PATCH 06/11] feat: add cobalt ECC bundle (.codex/config.toml) --- .codex/config.toml | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .codex/config.toml diff --git a/.codex/config.toml b/.codex/config.toml new file mode 100644 index 00000000..bc1ee67f --- /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 From ab41916de07e85503c497c4fcddd22b86eb62bff Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:29:59 +0000 Subject: [PATCH 07/11] feat: add cobalt ECC bundle (.codex/AGENTS.md) --- .codex/AGENTS.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .codex/AGENTS.md diff --git a/.codex/AGENTS.md b/.codex/AGENTS.md new file mode 100644 index 00000000..14641a84 --- /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/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. \ No newline at end of file From 443ea560789ab12543ab527523d170e4990e33b5 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:30:00 +0000 Subject: [PATCH 08/11] feat: add cobalt ECC bundle (.codex/agents/explorer.toml) --- .codex/agents/explorer.toml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .codex/agents/explorer.toml diff --git a/.codex/agents/explorer.toml b/.codex/agents/explorer.toml new file mode 100644 index 00000000..732df7af --- /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 From 52bdaa3abc7e1a224d7317e7a67eb54fd7577d01 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:30:01 +0000 Subject: [PATCH 09/11] feat: add cobalt ECC bundle (.codex/agents/reviewer.toml) --- .codex/agents/reviewer.toml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .codex/agents/reviewer.toml diff --git a/.codex/agents/reviewer.toml b/.codex/agents/reviewer.toml new file mode 100644 index 00000000..b13ed9cf --- /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 From 6128d2054c4f4c82a6aa76f1bd6c8d27432b8a31 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:30:02 +0000 Subject: [PATCH 10/11] feat: add cobalt ECC bundle (.codex/agents/docs-researcher.toml) --- .codex/agents/docs-researcher.toml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .codex/agents/docs-researcher.toml diff --git a/.codex/agents/docs-researcher.toml b/.codex/agents/docs-researcher.toml new file mode 100644 index 00000000..0daae570 --- /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 From 21ece436d4c900ec96b9b8edc622a97cc711653f Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:30:04 +0000 Subject: [PATCH 11/11] feat: add cobalt ECC bundle (.claude/homunculus/instincts/inherited/cobalt-instincts.yaml) --- .../instincts/inherited/cobalt-instincts.yaml | 319 ++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 .claude/homunculus/instincts/inherited/cobalt-instincts.yaml diff --git a/.claude/homunculus/instincts/inherited/cobalt-instincts.yaml b/.claude/homunculus/instincts/inherited/cobalt-instincts.yaml new file mode 100644 index 00000000..946d06b5 --- /dev/null +++ b/.claude/homunculus/instincts/inherited/cobalt-instincts.yaml @@ -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 +