Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions .agents/skills/fastapi-async-sqlalchemy/SKILL.md
Original file line number Diff line number Diff line change
@@ -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 |
```
6 changes: 6 additions & 0 deletions .agents/skills/fastapi-async-sqlalchemy/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -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
272 changes: 272 additions & 0 deletions .claude/ecc-tools.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
}
Loading
Loading