2.5: Update CLAUDE.md with skills.py and skill format docs

- Add cheddahbot/skills.py to Key Files table
- Update skills/ description to mention YAML frontmatter
- Add skills format to Conventions section
- Fix ctx type annotation in docs (dict -> dict | None)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cora-start
PeninsulaInd 2026-02-17 10:04:54 -06:00
parent b18855f068
commit d05b589651
1 changed files with 4 additions and 2 deletions

View File

@ -77,18 +77,20 @@ uv add --group test <package>
| `cheddahbot/memory.py` | 4-layer memory with semantic search | | `cheddahbot/memory.py` | 4-layer memory with semantic search |
| `cheddahbot/router.py` | System prompt builder | | `cheddahbot/router.py` | System prompt builder |
| `cheddahbot/ui.py` | Gradio web interface | | `cheddahbot/ui.py` | Gradio web interface |
| `cheddahbot/skills.py` | Markdown skill registry (discovers skills/*.md) |
| `cheddahbot/tools/` | Tool modules (auto-discovered) | | `cheddahbot/tools/` | Tool modules (auto-discovered) |
| `config.yaml` | Runtime configuration | | `config.yaml` | Runtime configuration |
| `identity/SOUL.md` | Agent personality | | `identity/SOUL.md` | Agent personality |
| `identity/USER.md` | User profile | | `identity/USER.md` | User profile |
| `skills/` | Prompt templates for tools (press releases, etc.) | | `skills/` | Markdown skill files with YAML frontmatter |
## Conventions ## Conventions
- **Config precedence**: env vars > config.yaml > dataclass defaults - **Config precedence**: env vars > config.yaml > dataclass defaults
- **ClickUp env vars**: `CLICKUP_API_TOKEN`, `CLICKUP_WORKSPACE_ID`, `CLICKUP_SPACE_ID` - **ClickUp env vars**: `CLICKUP_API_TOKEN`, `CLICKUP_WORKSPACE_ID`, `CLICKUP_SPACE_ID`
- **Tool registration**: Use the `@tool("name", "description", category="cat")` decorator in any file under `cheddahbot/tools/` — auto-discovered on startup - **Tool registration**: Use the `@tool("name", "description", category="cat")` decorator in any file under `cheddahbot/tools/` — auto-discovered on startup
- **Tool context**: Tools can accept `ctx: dict = None` to get `config`, `db`, `agent`, `memory` injected - **Tool context**: Tools can accept `ctx: dict | None = None` to get `config`, `db`, `agent`, `memory` injected
- **Skills**: `.md` files in `skills/` with YAML frontmatter (`name`, `description`, `tools`, `agents`). Files without frontmatter are data files (skipped by registry)
- **Database**: SQLite with WAL mode, thread-local connections via `threading.local()` - **Database**: SQLite with WAL mode, thread-local connections via `threading.local()`
- **KV store**: Task state stored as JSON at `clickup:task:{id}:state` keys - **KV store**: Task state stored as JSON at `clickup:task:{id}:state` keys
- **ClickUp field mapping**: `Work Category` field (not `Task Type`) identifies task types like "Press Release", "Link Building". The `Client` field (not `Company`) holds the client name. - **ClickUp field mapping**: `Work Category` field (not `Task Type`) identifies task types like "Press Release", "Link Building". The `Client` field (not `Company`) holds the client name.