Skip to content
Merged
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
25 changes: 25 additions & 0 deletions docs/plans/2026-10-27-repo-declares-its-scopes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
canonical: github:fredericrous/aval/docs/plans/2026-10-27-repo-declares-its-scopes.md
phases: [4]
status: done
branch: docs/scope-membership
---
# A repository declares the scopes it is in

Pointer. The plan lives in aval (aval#46, 1.11.0); the ADR is decisions
ADR-0046 (decisions#102). This repository carries the dotfiles part of
Phase 4: the interface, layout, writing, accessibility and interface-review
skills, worktree-task step 2b and the interface-review agent now say that
`aval resolve <key>` answers at the repository's declared `in_scopes`, with no
hand-typed `--scope`.

## Verification record

- The two phrasings ("resolved at its applicable scope", "at the diff's
scope") → replaced in all 7 files → 7 replacements in the source, 7 in the
live `~/.claude` copies; each source file is byte-identical to its live copy
(the laptop is the source).
- The behaviour the text now names → a scratch UI change in customer-vision
(declared `[effect-stack, duro-stack]`) → `amont-agent review-brief` carried
`ui.design-system` (ADR-0006 at duro-stack), `ui.measures`,
`stack.web-framework`.
5 changes: 3 additions & 2 deletions dot_claude/agents/interface-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ anything, and never approve on the author's behalf.

Your prompt carries the brief the session built: the base sha, the scope
block, the `aval traits` output, the `aval resolve` output for the ui and
design-system keys at the diff's scope (with the exemption list of
`design-system.every-measure-is-a-token`), the full diff and the removed
design-system keys (it answers at the repository's declared `in_scopes`,
decisions ADR-0046; no hand-typed `--scope`), with the exemption list of
`design-system.every-measure-is-a-token`, the full diff and the removed
lines of `git diff -U0`. Read `~/.claude/skills/interface-review/SKILL.md`
and follow it on that diff, loading the domain skills it names from
`~/.claude/skills/<x>/`, the repository's `.claude/skills/<x>/` or
Expand Down
2 changes: 1 addition & 1 deletion dot_claude/skills/accessibility/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Reviewing means two walks. Keyboard-only, where every flow completes without a m

Contrast measurement and color fixes belong to `colors`; where `colors` is absent, compute the declared pair's ratio against the table below and mark pairs over a rendered background `Not verified`. Text sizing, iOS input zoom and language metadata belong to `typography`. Spacing between targets and spatial RTL belong to `layout`. Label, error and alt-text wording belong to `writing`. Animation recipes, hover styling and scroll containment belong to `ui`.

A decision of this repository (resolved at its applicable scope with `aval resolve`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.
A decision of this repository (resolved with `aval resolve <key>`, which answers at the repository's declared `in_scopes`, decisions ADR-0046; no hand-typed `--scope`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.

## Criteria, not conventions

Expand Down
2 changes: 1 addition & 1 deletion dot_claude/skills/interface-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ It owns the scope, the classification and the change-scoped report. Domain rules

Correctness, tests, security and performance belong to the project's general code review. Name such a concern once, point at that review and drop it.

A decision of this repository (resolved at its applicable scope with `aval resolve`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.
A decision of this repository (resolved with `aval resolve <key>`, which answers at the repository's declared `in_scopes`, decisions ADR-0046; no hand-typed `--scope`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.

## The change, not the codebase

Expand Down
2 changes: 1 addition & 1 deletion dot_claude/skills/interface/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Orchestration is all it owns. Accessibility rules belong to `accessibility`, str

Change-scoped review of uncommitted work, branches and pull requests belongs to `interface-review`.

A decision of this repository (resolved at its applicable scope with `aval resolve`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.
A decision of this repository (resolved with `aval resolve <key>`, which answers at the repository's declared `in_scopes`, decisions ADR-0046; no hand-typed `--scope`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.

## Evidence, not taste

Expand Down
2 changes: 1 addition & 1 deletion dot_claude/skills/layout/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Write every fix in the project's styling system. The numbers below apply only wh

Hit areas and focus behavior belong to `accessibility`. Radius, shadows and animation belong to `ui`. Line length, text spacing and truncation mechanics belong to `typography`. The words themselves belong to `writing`.

A decision of this repository (resolved at its applicable scope with `aval resolve`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.
A decision of this repository (resolved with `aval resolve <key>`, which answers at the repository's declared `in_scopes`, decisions ADR-0046; no hand-typed `--scope`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.

## Group with space, not lines

Expand Down
6 changes: 4 additions & 2 deletions dot_claude/skills/worktree-task/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,10 @@ below names one of them.
against `git diff --name-only <base>..HEAD`; no match, no step. Build
one brief for the `interface-review` agent: the base sha, the scope
block, the `aval traits` output, the `aval resolve` output for the ui
and design-system keys at the diff's scope (with the exemption list of
`design-system.every-measure-is-a-token`), the full diff (no 60 KB cut)
and design-system keys (it answers at the repository's declared
`in_scopes`, decisions ADR-0046; no hand-typed `--scope`), with the
exemption list of `design-system.every-measure-is-a-token`, the full
diff (no 60 KB cut)
and the removed lines of `git diff -U0 <base>..HEAD`. Launch it in
the same message as step 3's `implementation-review` launch, so the
two run in parallel. Findings are advisory:
Expand Down
2 changes: 1 addition & 1 deletion dot_claude/skills/writing/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ A deliberate brand voice is not a defect. Raise a departure from plain language

How copy renders, including `text-transform`, truncation and smart punctuation, belongs to `typography`. Error markup, announcements and the attributes that carry accessible names belong to `accessibility`. Room for translated strings belongs to `layout`.

A decision of this repository (resolved at its applicable scope with `aval resolve`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.
A decision of this repository (resolved with `aval resolve <key>`, which answers at the repository's declared `in_scopes`, decisions ADR-0046; no hand-typed `--scope`) outranks a value in this skill. Apply token requirements and gap routing only where the repository's decisions require them, keeping their named exemptions. On `duro-stack`, a non-exempt measure without a token is a design-system gap under ADR-0006/0027, never a local literal.

## Inventory the existing strings first

Expand Down
Loading