Model/CLAUDE.md
Khalim Conn-Kowlessar cbffae07b8 Annotate locals assigned from cross-module calls in the historic-EPC stack 🟪
Review ask (dancafc): resolver/repository locals now carry explicit types
(matches: list[ScoredHistoricEpc], records: list[HistoricEpc], df:
pd.DataFrame, ...) so the flow reads without chasing callee signatures.
CLAUDE.md's Type Safety section gains the rule so future sessions enforce it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 14:59:13 +00:00

40 lines
2.2 KiB
Markdown

## Available Skills
Five Claude Code skills are installed in this repo's dev container. Each maps to a phase of the feature lifecycle.
| Skill | Invoke | When to use |
|-------|--------|-------------|
| **grill-me** | `/grill-me` | Before implementing — stress-tests a design through sequential questioning |
| **to-prd** | `/to-prd` | After a planning conversation — formalises context into a GitHub issue PRD |
| **grill-with-docs** | `/grill-with-docs` | When domain terms are drifting or new concepts are landing — challenges plans against `CONTEXT.md`, sharpens terminology inline, and writes ADRs for load-bearing decisions in `docs/adr/`. Replaces the older `ubiquitous-language` skill. |
| **tdd** | `/tdd` | During implementation — enforces vertical-slice TDD (one test → one impl → repeat) |
| **improve-codebase-architecture** | `/improve-codebase-architecture` | During refactoring — surfaces shallow modules and proposes deepening opportunities |
Domain glossary lives at [CONTEXT.md](./CONTEXT.md); load-bearing decisions live at [docs/adr/](./docs/adr/). The legacy [UBIQUITOUS_LANGUAGE.md](./UBIQUITOUS_LANGUAGE.md) is a redirect.
### Typical session chains
**Feature planning:**
`/grill-me``/to-prd``/grill-with-docs`
**Implementation:**
`/tdd` (+ `/grill-me` if a design fork appears mid-session)
**Refactoring:**
`/improve-codebase-architecture``/grill-me``/tdd``/grill-with-docs`
### First time setting up?
Skills are installed automatically when the dev container is built, via the postCreate step that pulls from `Hestia-Homes/agentic-toolkit` (see `.devcontainer/backend/Dockerfile`). If an existing container is missing skills, rebuild the dev container.
## Type Safety
All new code must pass `pyright` with zero errors under `typeCheckingMode = strict`.
Use Optional over | None
Annotate all function return types. Use `dict[str, Any]` for untyped external API
payloads — never bare `dict`. Add `pandas-stubs` when introducing pandas to a module.
Annotate locals assigned from cross-module calls (e.g. `matches: list[ScoredHistoricEpc]
= rank_historic_epc(...)`) — the reader shouldn't need the callee's signature to follow
the flow; inference-only locals are fine within a module's own helpers.