docs: require impeccable skill for design and frontend
Adds the design-system issue, scaffolds .impeccable/live/config.json against web/index.html, and records the aoe spawn commands for the codex GPT-5.6 models in the driver table. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -42,6 +42,27 @@ request that adds a heavy dependency to either is wrong.
|
||||
- No `unwrap()` in non-test code. The lint is on.
|
||||
- SQL goes through `sqlx` compile-time-checked queries.
|
||||
|
||||
## Design and frontend work
|
||||
|
||||
**Any issue labelled `area/web`, and any work that decides how something looks
|
||||
or behaves on screen, goes through the `impeccable` skill.** That includes the
|
||||
design system itself, component work, layout, visual hierarchy, empty and error
|
||||
states, and any change to the UI described in `DESIGN.md` §9.2 and §9.3. Invoke
|
||||
it before writing markup, not as a review pass afterwards.
|
||||
|
||||
`.impeccable/design.json` is the token system — colours, typography, spacing.
|
||||
It is authored once by that skill and then treated as the source of truth;
|
||||
components consume tokens rather than literal values. `.impeccable/live/config.json`
|
||||
points the skill's live browser iteration at `web/index.html`.
|
||||
|
||||
`~/tea/arcada` has the same setup and is worth reading for the shape of a
|
||||
finished `design.json`.
|
||||
|
||||
This matters more here than in a typical CRUD app because the manual-search
|
||||
view (§9.3) is the whole reason for the project's UI existing — Radarr's is
|
||||
unusable specifically because of a layout decision. Getting it right is a design
|
||||
problem, not a markup problem.
|
||||
|
||||
## Working an issue
|
||||
|
||||
1. Read `DESIGN.md`, then the issue, then the sections the issue cites.
|
||||
@@ -110,19 +131,28 @@ alone. The loop:
|
||||
|
||||
### Model selection
|
||||
|
||||
| Difficulty | Model |
|
||||
|---|---|
|
||||
| `difficulty/hard` | Opus 5 |
|
||||
| `difficulty/moderate` | Sonnet 5 |
|
||||
| `difficulty/easy` | Sonnet 5 |
|
||||
| `difficulty/trivial` | Haiku 4.5 |
|
||||
Sessions are spawned with `aoe`, which can run `claude`, `codex`, `opencode` and
|
||||
`pi`. The GPT-5.6 models are `terra` and `sol`, reached through the `codex` tool.
|
||||
|
||||
| Difficulty | Model | Spawn |
|
||||
|---|---|---|
|
||||
| `difficulty/hard` | Opus 5 | `aoe add <path> --tool claude --model claude-opus-5 -l` |
|
||||
| `difficulty/moderate` | Sonnet 5 or `gpt-5.6-sol` | `aoe add <path> --tool codex --extra-args "-m gpt-5.6-sol" -l` |
|
||||
| `difficulty/easy` | `gpt-5.6-terra` | `aoe add <path> --tool codex --extra-args "-m gpt-5.6-terra" -l` |
|
||||
| `difficulty/trivial` | Haiku 4.5 | `aoe add <path> --tool claude --model claude-haiku-4-5-20251001 -l` |
|
||||
|
||||
Use `-w <branch> -b` to put each session in its own git worktree, which is what
|
||||
makes parallel issues safe.
|
||||
|
||||
`gpt-5.6-terra` is confirmed — it is the default in `~/.codex/config.toml`.
|
||||
`gpt-5.6-sol` is inferred from the sibling naming and should be verified on
|
||||
first use.
|
||||
|
||||
Escalate one tier if a session fails CI twice on the same issue. Never
|
||||
de-escalate mid-issue.
|
||||
|
||||
> The operator mentioned a model named "terra" for the lower tiers. No such
|
||||
> model was identified — confirm what it refers to and correct this table
|
||||
> before relying on it.
|
||||
`area/web` issues ignore this table's lower tiers — see the design section
|
||||
above. They go through the `impeccable` skill regardless of difficulty label.
|
||||
|
||||
### What a driver must not do
|
||||
|
||||
|
||||
Reference in New Issue
Block a user