From 2ec1806e3102b00216bebb0d8830044755d663f4 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:06 +0000 Subject: [PATCH 01/11] feat: add fastapi-async-sqlalchemy ECC bundle (.claude/ecc-tools.json) --- .claude/ecc-tools.json | 272 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 272 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 0000000..51e5d5b --- /dev/null +++ b/.claude/ecc-tools.json @@ -0,0 +1,272 @@ +{ + "version": "1.3", + "schemaVersion": "1.0", + "generatedBy": "ecc-tools", + "generatedAt": "2026-06-14T18:43:45.794Z", + "repo": "https://github.com/h0rn3t/fastapi-async-sqlalchemy", + "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/fastapi-async-sqlalchemy/SKILL.md", + ".agents/skills/fastapi-async-sqlalchemy/SKILL.md", + ".agents/skills/fastapi-async-sqlalchemy/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/fastapi-async-sqlalchemy-instincts.yaml" + ], + "packageFiles": { + "runtime-core": [ + ".claude/skills/fastapi-async-sqlalchemy/SKILL.md", + ".agents/skills/fastapi-async-sqlalchemy/SKILL.md", + ".agents/skills/fastapi-async-sqlalchemy/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/fastapi-async-sqlalchemy-instincts.yaml" + ] + }, + "moduleFiles": { + "runtime-core": [ + ".claude/skills/fastapi-async-sqlalchemy/SKILL.md", + ".agents/skills/fastapi-async-sqlalchemy/SKILL.md", + ".agents/skills/fastapi-async-sqlalchemy/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/fastapi-async-sqlalchemy-instincts.yaml" + ] + }, + "files": [ + { + "moduleId": "runtime-core", + "path": ".claude/skills/fastapi-async-sqlalchemy/SKILL.md", + "description": "Repository-specific Claude Code skill generated from git history." + }, + { + "moduleId": "runtime-core", + "path": ".agents/skills/fastapi-async-sqlalchemy/SKILL.md", + "description": "Codex-facing copy of the generated repository skill." + }, + { + "moduleId": "runtime-core", + "path": ".agents/skills/fastapi-async-sqlalchemy/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/fastapi-async-sqlalchemy-instincts.yaml", + "description": "Continuous-learning instincts derived from repository patterns." + } + ], + "workflows": [], + "adapters": { + "claudeCode": { + "skillPath": ".claude/skills/fastapi-async-sqlalchemy/SKILL.md", + "identityPath": ".claude/identity.json", + "commandPaths": [] + }, + "codex": { + "configPath": ".codex/config.toml", + "agentsGuidePath": ".codex/AGENTS.md", + "skillPath": ".agents/skills/fastapi-async-sqlalchemy/SKILL.md" + } + } +} \ No newline at end of file From c802f79c26d4365f8b78ad2eb3c05bc7e394a7d9 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:07 +0000 Subject: [PATCH 02/11] feat: add fastapi-async-sqlalchemy ECC bundle (.claude/skills/fastapi-async-sqlalchemy/SKILL.md) --- .../skills/fastapi-async-sqlalchemy/SKILL.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .claude/skills/fastapi-async-sqlalchemy/SKILL.md diff --git a/.claude/skills/fastapi-async-sqlalchemy/SKILL.md b/.claude/skills/fastapi-async-sqlalchemy/SKILL.md new file mode 100644 index 0000000..9b67b1a --- /dev/null +++ b/.claude/skills/fastapi-async-sqlalchemy/SKILL.md @@ -0,0 +1,90 @@ +```markdown +# fastapi-async-sqlalchemy Development Patterns + +> Auto-generated skill from repository analysis + +## Overview +This skill covers the development patterns and conventions used in the `fastapi-async-sqlalchemy` repository, a Python codebase focused on integrating asynchronous SQLAlchemy patterns, likely for use with FastAPI or similar frameworks. It details file organization, import/export styles, commit conventions, and test structuring to help contributors write consistent, maintainable code. + +## Coding Conventions + +### File Naming +- Use **snake_case** for all file names. + - Example: `database_utils.py`, `user_model.py` + +### Import Style +- Use **relative imports** within the codebase. + - Example: + ```python + from .models import User + from ..utils import get_db_session + ``` + +### Export Style +- Use **named exports** (explicitly define what is exported from modules). + - Example: + ```python + __all__ = ["User", "get_db_session"] + ``` + +### Commit Patterns +- Commit messages are **freeform** (no enforced prefix or type). +- Average commit message length: ~27 characters. + +## Workflows + +### Adding a New Database Model +**Trigger:** When you need to define a new table/entity. +**Command:** `/add-model` + +1. Create a new file in the models directory using snake_case (e.g., `order_model.py`). +2. Define your SQLAlchemy model class. + ```python + from sqlalchemy import Column, Integer, String + from .base import Base + + class Order(Base): + __tablename__ = "orders" + id = Column(Integer, primary_key=True) + description = Column(String) + ``` +3. Add the model to the module's `__all__` for named export. +4. Use relative imports to access the model elsewhere. + +### Writing Asynchronous Database Operations +**Trigger:** When implementing async CRUD or queries. +**Command:** `/add-async-operation` + +1. Use `async def` for all database operation functions. +2. Use SQLAlchemy's async session patterns. + ```python + async def get_order_by_id(session, order_id: int): + result = await session.execute( + select(Order).where(Order.id == order_id) + ) + return result.scalar_one_or_none() + ``` +3. Import models and utilities using relative imports. + +### Running Tests +**Trigger:** When validating code changes. +**Command:** `/run-tests` + +1. Locate test files matching the `*.test.*` pattern (e.g., `order.test.py`). +2. Use the project's preferred test runner (framework not specified). +3. Run tests and ensure all pass before committing. + +## Testing Patterns + +- Test files are named with the pattern `*.test.*` (e.g., `user.test.py`). +- The specific testing framework is **unknown**; check for test runner configuration or use common Python test runners (pytest, unittest). +- Place test files alongside or within a `tests` directory. +- Write tests that cover async database operations and model behaviors. + +## Commands +| Command | Purpose | +|--------------------|----------------------------------------------| +| /add-model | Scaffold a new database model | +| /add-async-operation | Add a new async database operation | +| /run-tests | Run the test suite | +``` From 3c62833dcdc8be72d1ae08d65d9e1ade36c50478 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:08 +0000 Subject: [PATCH 03/11] feat: add fastapi-async-sqlalchemy ECC bundle (.agents/skills/fastapi-async-sqlalchemy/SKILL.md) --- .../skills/fastapi-async-sqlalchemy/SKILL.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .agents/skills/fastapi-async-sqlalchemy/SKILL.md diff --git a/.agents/skills/fastapi-async-sqlalchemy/SKILL.md b/.agents/skills/fastapi-async-sqlalchemy/SKILL.md new file mode 100644 index 0000000..9b67b1a --- /dev/null +++ b/.agents/skills/fastapi-async-sqlalchemy/SKILL.md @@ -0,0 +1,90 @@ +```markdown +# fastapi-async-sqlalchemy Development Patterns + +> Auto-generated skill from repository analysis + +## Overview +This skill covers the development patterns and conventions used in the `fastapi-async-sqlalchemy` repository, a Python codebase focused on integrating asynchronous SQLAlchemy patterns, likely for use with FastAPI or similar frameworks. It details file organization, import/export styles, commit conventions, and test structuring to help contributors write consistent, maintainable code. + +## Coding Conventions + +### File Naming +- Use **snake_case** for all file names. + - Example: `database_utils.py`, `user_model.py` + +### Import Style +- Use **relative imports** within the codebase. + - Example: + ```python + from .models import User + from ..utils import get_db_session + ``` + +### Export Style +- Use **named exports** (explicitly define what is exported from modules). + - Example: + ```python + __all__ = ["User", "get_db_session"] + ``` + +### Commit Patterns +- Commit messages are **freeform** (no enforced prefix or type). +- Average commit message length: ~27 characters. + +## Workflows + +### Adding a New Database Model +**Trigger:** When you need to define a new table/entity. +**Command:** `/add-model` + +1. Create a new file in the models directory using snake_case (e.g., `order_model.py`). +2. Define your SQLAlchemy model class. + ```python + from sqlalchemy import Column, Integer, String + from .base import Base + + class Order(Base): + __tablename__ = "orders" + id = Column(Integer, primary_key=True) + description = Column(String) + ``` +3. Add the model to the module's `__all__` for named export. +4. Use relative imports to access the model elsewhere. + +### Writing Asynchronous Database Operations +**Trigger:** When implementing async CRUD or queries. +**Command:** `/add-async-operation` + +1. Use `async def` for all database operation functions. +2. Use SQLAlchemy's async session patterns. + ```python + async def get_order_by_id(session, order_id: int): + result = await session.execute( + select(Order).where(Order.id == order_id) + ) + return result.scalar_one_or_none() + ``` +3. Import models and utilities using relative imports. + +### Running Tests +**Trigger:** When validating code changes. +**Command:** `/run-tests` + +1. Locate test files matching the `*.test.*` pattern (e.g., `order.test.py`). +2. Use the project's preferred test runner (framework not specified). +3. Run tests and ensure all pass before committing. + +## Testing Patterns + +- Test files are named with the pattern `*.test.*` (e.g., `user.test.py`). +- The specific testing framework is **unknown**; check for test runner configuration or use common Python test runners (pytest, unittest). +- Place test files alongside or within a `tests` directory. +- Write tests that cover async database operations and model behaviors. + +## Commands +| Command | Purpose | +|--------------------|----------------------------------------------| +| /add-model | Scaffold a new database model | +| /add-async-operation | Add a new async database operation | +| /run-tests | Run the test suite | +``` From cb2c356f4a17105bef0340ec7a9764ce22933efd Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:09 +0000 Subject: [PATCH 04/11] feat: add fastapi-async-sqlalchemy ECC bundle (.agents/skills/fastapi-async-sqlalchemy/agents/openai.yaml) --- .agents/skills/fastapi-async-sqlalchemy/agents/openai.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .agents/skills/fastapi-async-sqlalchemy/agents/openai.yaml diff --git a/.agents/skills/fastapi-async-sqlalchemy/agents/openai.yaml b/.agents/skills/fastapi-async-sqlalchemy/agents/openai.yaml new file mode 100644 index 0000000..f6b6dab --- /dev/null +++ b/.agents/skills/fastapi-async-sqlalchemy/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Fastapi Async Sqlalchemy" + short_description: "Repo-specific patterns and workflows for fastapi-async-sqlalchemy" + default_prompt: "Use the fastapi-async-sqlalchemy repo skill to follow existing architecture, testing, and workflow conventions." +policy: + allow_implicit_invocation: true \ No newline at end of file From 4d23b0d1c06668c51c3a6104b1e9335b276d4656 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:10 +0000 Subject: [PATCH 05/11] feat: add fastapi-async-sqlalchemy 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 0000000..8345b16 --- /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-06-14T18:43:59.770Z" +} \ No newline at end of file From 43c697b0d4547c5edc02a47f322cf4028c9fea4a Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:11 +0000 Subject: [PATCH 06/11] feat: add fastapi-async-sqlalchemy 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 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 From ed23456f00f7763f76c34263e026fc8fb27cdec3 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:12 +0000 Subject: [PATCH 07/11] feat: add fastapi-async-sqlalchemy 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 0000000..8db1fbd --- /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/fastapi-async-sqlalchemy/SKILL.md` +- Claude-facing companion skill: `.claude/skills/fastapi-async-sqlalchemy/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 4b600d09c80df01d0b5d7e09e87cb26f628ede3e Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:13 +0000 Subject: [PATCH 08/11] feat: add fastapi-async-sqlalchemy 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 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 From 8d7873c16767da89e9e7ef95dd91db8388fd6302 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:14 +0000 Subject: [PATCH 09/11] feat: add fastapi-async-sqlalchemy 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 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 From e4b8e57f44c741639c787bf304a70ffcf0b6e1e2 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:15 +0000 Subject: [PATCH 10/11] feat: add fastapi-async-sqlalchemy 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 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 From 0fb9b975825a88c3b29b0ea1b8da69e1eb2f80b5 Mon Sep 17 00:00:00 2001 From: "ecc-tools[bot]" <257055122+ecc-tools[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:44:16 +0000 Subject: [PATCH 11/11] feat: add fastapi-async-sqlalchemy ECC bundle (.claude/homunculus/instincts/inherited/fastapi-async-sqlalchemy-instincts.yaml) --- .../fastapi-async-sqlalchemy-instincts.yaml | 277 ++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 .claude/homunculus/instincts/inherited/fastapi-async-sqlalchemy-instincts.yaml diff --git a/.claude/homunculus/instincts/inherited/fastapi-async-sqlalchemy-instincts.yaml b/.claude/homunculus/instincts/inherited/fastapi-async-sqlalchemy-instincts.yaml new file mode 100644 index 0000000..00c645e --- /dev/null +++ b/.claude/homunculus/instincts/inherited/fastapi-async-sqlalchemy-instincts.yaml @@ -0,0 +1,277 @@ +# Instincts generated from https://github.com/h0rn3t/fastapi-async-sqlalchemy +# Generated: 2026-06-14T18:43:59.770Z +# 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: fastapi-async-sqlalchemy-commit-length +trigger: "when writing a commit message" +confidence: 0.6 +domain: git +source: repo-analysis +source_repo: https://github.com/h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Commit Length + +## Action + +Keep commit messages concise (~27 characters) + +## Evidence + +- Average commit message length: 27 chars +- Based on 2 commits + +--- +id: fastapi-async-sqlalchemy-naming-files +trigger: "when creating a new file" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: https://github.com/h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Naming Files + +## Action + +Use snake_case naming convention + +## Evidence + +- Analyzed file naming patterns in repository +- Dominant pattern: snake_case + +--- +id: fastapi-async-sqlalchemy-import-relative +trigger: "when importing modules" +confidence: 0.75 +domain: code-style +source: repo-analysis +source_repo: https://github.com/h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Import Relative + +## Action + +Use relative imports for project files + +## Evidence + +- Import analysis shows relative import pattern +- Example: import { x } from '../lib/x' + +--- +id: fastapi-async-sqlalchemy-export-style +trigger: "when exporting from a module" +confidence: 0.7 +domain: code-style +source: repo-analysis +source_repo: https://github.com/h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Export Style + +## Action + +Prefer named exports + +## Evidence + +- Export pattern analysis +- Dominant style: named + +--- +id: fastapi-async-sqlalchemy-test-separate +trigger: "when writing tests" +confidence: 0.8 +domain: testing +source: repo-analysis +source_repo: https://github.com/h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy 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: fastapi-async-sqlalchemy-instinct-file-naming +trigger: "When creating a new Python file" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct File Naming + +## Action + +Name the file using snake_case + +## Evidence + +- Pattern in files: all Python files use snake_case + +--- +id: fastapi-async-sqlalchemy-instinct-function-naming +trigger: "When defining a new function" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct Function Naming + +## Action + +Name the function using camelCase + +## Evidence + +- Pattern in files: functions use camelCase + +--- +id: fastapi-async-sqlalchemy-instinct-class-naming +trigger: "When defining a new class" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct Class Naming + +## Action + +Name the class using PascalCase + +## Evidence + +- Pattern in files: classes use PascalCase + +--- +id: fastapi-async-sqlalchemy-instinct-constant-naming +trigger: "When defining a constant" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct Constant Naming + +## Action + +Name the constant using SCREAMING_SNAKE_CASE + +## Evidence + +- Pattern in files: constants use SCREAMING_SNAKE_CASE + +--- +id: fastapi-async-sqlalchemy-instinct-import-style +trigger: "When importing modules within the package" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct Import Style + +## Action + +Use relative imports + +## Evidence + +- Pattern in files: relative imports used + +--- +id: fastapi-async-sqlalchemy-instinct-export-style +trigger: "When exporting functions or classes from a module" +confidence: 0.7 +domain: code-style +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct Export Style + +## Action + +Use named exports (explicitly define __all__ or direct exports) + +## Evidence + +- Pattern in files: named exports observed + +--- +id: fastapi-async-sqlalchemy-instinct-test-location +trigger: "When adding new tests" +confidence: 0.9 +domain: testing +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct Test Location + +## Action + +Place test files in the separate 'tests' folder + +## Evidence + +- Pattern in folder structure: 'tests' folder exists and contains tests + +--- +id: fastapi-async-sqlalchemy-instinct-commit-format +trigger: "When writing a commit message" +confidence: 0.8 +domain: git +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct Commit Format + +## Action + +Write a short, freeform message without a prefix, averaging around 27 characters + +## Evidence + +- Pattern in commits: freeform, short messages, e.g., 'added concurrent operations are not permitted' + +--- +id: fastapi-async-sqlalchemy-instinct-ci-config +trigger: "When configuring CI workflows" +confidence: 0.9 +domain: workflow +source: repo-analysis +source_repo: h0rn3t/fastapi-async-sqlalchemy +--- + +# Fastapi Async Sqlalchemy Instinct Ci Config + +## Action + +Place workflow configuration files in '.github/workflows/' + +## Evidence + +- Pattern in architecture: '.github/workflows/ci.yml' exists +