--- id: LLM-WP-0001 type: workplan title: llm-connect — Foundation & GAAF Baseline domain: custodian status: completed owner: llm-connect created: 2026-04-01 repo: llm-connect planning_priority: high planning_order: 1 state_hub_workstream_id: f7f08327-753f-4175-8591-ffa1c3188ebc --- # LLM-WP-0001 — Foundation & GAAF Baseline **status:** completed **owner:** llm-connect **repo:** llm-connect **created:** 2026-04-01 ## Purpose Establish the structural foundation required before any Core modifications. Covers repo orientation files, GAAF-2026 compliance artifacts, test suite, CI, and state-hub housekeeping. ## Tasks ```task id: T01 title: 'Create SCOPE.md' priority: high status: done state_hub_task_id: "c38c5a79-4ce5-4088-9a21-ac65e09b12ba" ``` ```task id: T02 title: 'Fill .claude/rules/ stubs: architecture.md, stack-and-commands.md, repo-boundary.md' priority: high status: done state_hub_task_id: "6a15c794-d0f7-4d9c-a3ac-850f8c5bd5e9" ``` ```task id: T03 title: 'Create ARCHITECTURE-LAYERS.md with layer map, scorecard stub, next-review date' priority: high status: done state_hub_task_id: "af1c63ac-e4be-495a-9fdb-68eddebfcb75" ``` ```task id: T04 title: 'Create /contracts/ tree (core/, functional/, config/)' priority: high status: done state_hub_task_id: "da5a7986-5c47-4c4c-a8f6-a58956127535" ``` ```task id: T05 title: 'Core contract doc: LLMAdapter interface invariants, RunConfig/LLMResponse field contracts' priority: high status: done state_hub_task_id: "01237203-0582-4bc4-a308-075e991e8e99" ``` ```task id: T06 title: 'Functional contract stubs for all 4 adapters + embedding adapters (maturity: Beta)' priority: medium status: done state_hub_task_id: "2bee5174-d3d7-4267-9cee-6e0e9b5cc731" ``` ```task id: T07 title: 'Create tests/ with conftest.py, wire pytest in pyproject.toml' priority: high status: done state_hub_task_id: "b6dccf3e-8742-486e-a6a7-82577866a3bc" ``` ```task id: T08 title: 'Unit tests: RunConfig, LLMResponse, MockLLMAdapter, full exception hierarchy' priority: high status: done state_hub_task_id: "cc05b67d-f956-458a-908f-2ff58b1d33d3" ``` ```task id: T09 title: 'Unit tests: create_adapter (all providers + unknown provider error), create_embedding_adapter' priority: high status: done state_hub_task_id: "8f9ec054-79ab-411d-8204-9d764bbbed98" ``` ```task id: T10 title: 'Add ruff, mypy to dev deps in pyproject.toml' priority: medium status: done state_hub_task_id: "044ee879-6baa-42fd-a0a4-a43dac0eacbb" ``` ```task id: T11 title: 'CI workflow: pytest + ruff + mypy' priority: medium status: done state_hub_task_id: "699eef00-e9df-4de0-b7e6-61cfaace9617" ``` ```task id: T12 title: 'State hub: register this host path, SBOM refresh' priority: low status: done state_hub_task_id: "c0853a23-52ae-499e-9a49-e7b65749b508" ``` | ID | Title | Priority | Status | |-----|-------|----------|--------| | T01 | Create `SCOPE.md` | high | done | | T02 | Fill `.claude/rules/` stubs: `architecture.md`, `stack-and-commands.md`, `repo-boundary.md` | high | done | | T03 | Create `ARCHITECTURE-LAYERS.md` with layer map, scorecard stub, next-review date | high | done | | T04 | Create `/contracts/` tree (`core/`, `functional/`, `config/`) | high | done | | T05 | Core contract doc: `LLMAdapter` interface invariants, `RunConfig`/`LLMResponse` field contracts | high | done | | T06 | Functional contract stubs for all 4 adapters + embedding adapters (maturity: Beta) | medium | done | | T07 | Create `tests/` with `conftest.py`, wire pytest in `pyproject.toml` | high | done | | T08 | Unit tests: `RunConfig`, `LLMResponse`, `MockLLMAdapter`, full exception hierarchy | high | done | | T09 | Unit tests: `create_adapter` (all providers + unknown provider error), `create_embedding_adapter` | high | done | | T10 | Add `ruff`, `mypy` to dev deps in `pyproject.toml` | medium | done | | T11 | CI workflow: pytest + ruff + mypy | medium | done | | T12 | State hub: register this host path, SBOM refresh | low | done | ## Exit criteria - `ARCHITECTURE-LAYERS.md` and `/contracts/core/` exist and describe the current Core surface - pytest passes with coverage of Core and factory - ruff + mypy clean - CI green on push