From c53f4c5cf01496006b5748ac031b882084b6ac4f Mon Sep 17 00:00:00 2001 From: Chheng64 Date: Fri, 21 Aug 2026 06:11:34 +0700 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20v1.5.0=20=E2=80=94=20Project=20Reso?= =?UTF-8?q?urce=20Binding=20+=20hard=20project=20boundary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every project explicitly binds its external resources at onboarding; after that the toolkit touches only what the registry holds — no workspace search, no Figma browsing, no repo listing, no guessing. - Toolkit Registry (~/.toolkit/registry.yaml): user-global layer owning the BRD DB identity and projects parent page; removes the registration/binding bootstrap circularity. - Project Resource Registry (manifest_version 2): stable-ID binding records per slot, binding disposition split from runtime health, Resource Decision primitive (connect / create / confirm-absence), per-slot absence behavior. - Manifest Gate pipeline at session entry: registry → manifest → v1→v2 migration → staleness → C_MANIFEST; migration is seeded and resumable. - State machine: typed Blocked Reason taxonomy, missing-resource transition, new C_RESOURCES guard at Dev Planning exit. - Onboarding reworked around the Resource Binding stage; CI scaffold, push, and branch protection moved into step 9. - Ecosystem map: concept bridge to paul / gsd-* / carl (informational). - Telegram plugin: strip quotes from manifest values (chat_id and project name), drop dead pipeline notification key. Co-Authored-By: Claude Opus 5 (1M context) --- .gitignore | 1 + AI/mcp-setup.md | 6 +- AI/orchestrator.md | 13 +- Architecture/context-package.md | 4 +- Architecture/ecosystem-map.md | 49 ++++++ Architecture/integration-map.md | 44 ++++-- Architecture/project-manifest.md | 200 +++++++++++++++++++----- Architecture/screen-contract.md | 9 +- Architecture/toolkit-registry.md | 53 +++++++ Architecture/workflow-state-machine.md | 17 +- Checklists/screen-contract.md | 2 +- Documentation/CHANGELOG.md | 37 +++++ Documentation/module-index.md | 6 +- Documentation/notion-setup.md | 4 + Documentation/onboarding.md | 52 ++++-- README.md | 54 ++++--- Templates/project-configuration.md | 58 ++++--- Workflows/integration-validation.md | 23 +-- Workflows/project-onboarding.md | 128 ++++++++++++--- extensions/telegram/README.md | 2 +- extensions/telegram/telegram-plugin.mjs | 9 +- 21 files changed, 609 insertions(+), 162 deletions(-) create mode 100644 Architecture/ecosystem-map.md create mode 100644 Architecture/toolkit-registry.md diff --git a/.gitignore b/.gitignore index e43b0f9..cc3314d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +.playwright-mcp/ diff --git a/AI/mcp-setup.md b/AI/mcp-setup.md index 7c32cf6..bcaf721 100644 --- a/AI/mcp-setup.md +++ b/AI/mcp-setup.md @@ -8,9 +8,9 @@ | Integration | Provides | Required by | |-------------|----------|-------------| -| **Notion MCP** | BRD read/write: `notion-search`, `notion-fetch`, `notion-update-page`, `notion-query-data-sources`, `notion-create-pages` | orchestrator + every stage (hard requirement) | -| **GitHub (`gh` CLI)** | branch/PR/CI/merge: `gh pr create/view/checks/merge` | git, code-review, release stages | -| **Figma MCP** | design context, screenshots, design-system reads | ui-workflow, design-system-workflow — only when the BRD references Figma | +| **Notion MCP** | BRD read/write: `notion-fetch`, `notion-update-page`, `notion-query-data-sources`, `notion-create-pages` — registered databases/pages only, no workspace search ([integration-map](../Architecture/integration-map.md) §2b) | orchestrator + every stage (hard requirement) | +| **GitHub (`gh` CLI)** | branch/PR/CI/merge: `gh pr create/view/checks/merge` — bound repositories only | git, code-review, release stages | +| **Figma MCP** | design context, screenshots, design-system reads — bound file keys only | ui-workflow, design-system-workflow — only when `resources.figma.product_design_file` (or the design-system library) is bound in the Project Resource Registry | | **Local shell/files** | build, test, serve prototype | implementation, qa, debug, prototype Run Local | ## 2. Setup Checks (per machine, once) diff --git a/AI/orchestrator.md b/AI/orchestrator.md index 32ec3cf..c8d744e 100644 --- a/AI/orchestrator.md +++ b/AI/orchestrator.md @@ -7,7 +7,14 @@ ## 1. Responsibilities -0. **Manifest gate** — before ANY project work: `C_MANIFEST` ([../Architecture/project-manifest.md](../Architecture/project-manifest.md)). Missing/incomplete manifest → refuse BRD work, offer [project-onboarding](../Workflows/project-onboarding.md). Stale `last_validated` → run [integration-validation](../Workflows/integration-validation.md) first. Project facts come from the manifest — never re-ask the user for manifest-held values. +0. **Manifest Gate** — at session entry, before ANY project work (pickup **and** resume alike). A fixed pipeline; each step's failure action is the only permitted next move: + 1. Load the **Toolkit Registry** (`~/.toolkit/registry.yaml`, [../Architecture/toolkit-registry.md](../Architecture/toolkit-registry.md)). Missing → offer one-time setup (README); nothing else runs. + 2. Load `project-manifest.yaml`. Missing / `onboarding.status: incomplete` → refuse BRD work, offer [project-onboarding](../Workflows/project-onboarding.md). + 3. `manifest_version` older than current → run **Migration** ([project-onboarding §Migration](../Workflows/project-onboarding.md)) — automatic offer, seeded from the old fields, resumable; runs **before** staleness/validation (those need registry ids the old manifest lacks). In-flight BRDs resume normally once it completes. + 4. `last_validated` stale (>30 days) → run [integration-validation](../Workflows/integration-validation.md). + 5. `C_MANIFEST` full check ([../Architecture/workflow-state-machine.md](../Architecture/workflow-state-machine.md) §4) → fail: report exactly what unblocks. + Project facts come from the manifest — never re-ask the user for manifest-held values. +0b. **Resource boundary** (v1.5 — [Project Boundary Rule](../Architecture/integration-map.md) §2b). All external access resolves through the Project Resource Registry by **stable identifier**. Never workspace-search Notion, browse Figma, or list repositories; never guess a resource. A stage requiring a slot that is missing, skipped, or `health: unreachable` → raise a **Resource Decision** ([project-manifest §3](../Architecture/project-manifest.md)): *connect existing / create new / confirm absence*. While it is pending, set `Status: Blocked`, `Blocked Reason: resource: ` — this makes the stop resumable at session entry (§2) and fires the Telegram failure trigger (responsibility 9). Log the decision S16; clear `Blocked` on resolution. 1. **Pickup** — select next BRD from `Ready` (priority order) when a slot is free (<3 in-flight) and `C_MANIFEST` holds for its project. 2. **Stage routing** — map `Status` → workflow module → skill → model tier per [model-routing.md](model-routing.md); load only what the stage needs; log the model in the Stage-Enter S16 entry. 3. **Input verification** — before running a stage, check `C_SECTIONS(required)`: required BRD sections exist and are non-empty. Missing input → back-transition to the producing stage, never improvise the input. @@ -26,7 +33,8 @@ On any session start (or `resume ` request): -1. Query the BRD DB: in-flight pages (Status ∈ Analysis…Human Review) + `Ready` pages, filtered to this project unless told otherwise. +0. Run the **Manifest Gate** (responsibility 0, all five steps). Only after it passes may any external system be touched. +1. Query the BRD DB — via the registry binding (`resources.notion.brd_database.id`): in-flight pages (Status ∈ Analysis…Human Review) + `Ready` pages, filtered to this project unless told otherwise. 2. If a specific BRD named → load it. Else: continue oldest in-flight first; pick up new `Ready` BRDs only when slots free and user confirms pickup. 3. Read BRD properties + S16 tail (last 10 entries) → determine exact machine position, pending gates, open loops. 4. Announce: BRD, stage, pending gates/blockers, planned action. Then run the stage. @@ -82,3 +90,4 @@ Multiple pending gates across parallel BRDs → batch, oldest first. - Never advances Status without the exit check passing. - Never carries approvals across content changes. - Never holds state only in conversation. If it isn't in Notion, it didn't happen. +- Never touches a resource outside the Project Resource Registry — no workspace searches, no repo listing, no unregistered files. Missing resource → connect/create offer, never a guess (responsibility 0b). diff --git a/Architecture/context-package.md b/Architecture/context-package.md index a3e413b..04d1a28 100644 --- a/Architecture/context-package.md +++ b/Architecture/context-package.md @@ -1,6 +1,6 @@ # AI Context Package -> **Module:** Architecture / Foundation (v1.3) +> **Module:** Architecture / Foundation (v1.5) > **Status:** Stable > **Purpose:** `context/` — small generated summaries a session reads at bootstrap for consistent AI behavior, without loading the full toolkit. **Generated, never hand-edited.** The manifest and toolkit stay authoritative; `context/` is a derived cache. @@ -10,7 +10,7 @@ | File | Summarizes | Source of truth | |------|-----------|-----------------| -| `design.md` | Design config: Figma refs (or prototype-only mode), component library, token source, icon/typography, DS state + where the DS lives | manifest `design.*` + DS docs | +| `design.md` | Design config: Figma bindings (or prototype-only mode), component library, token source, icon/typography, DS state + where the DS lives | manifest `design.*` + `resources.figma.*` + DS docs | | `stack.md` | Stack + resolved profile + the exact list of applicable Standards/ files + declared gaps | manifest `stack.*` + [stack-profiles](stack-profiles.md) | | `integrations.md` | Last validation results per integration + per-stage degradation consequences of anything unavailable | manifest `integrations.*` + [../Workflows/integration-validation.md](../Workflows/integration-validation.md) | | `conventions.md` | Naming/branch/commit/PR contracts resolved for this project + pointer to `project-overrides.md` entries | manifest `git.*` + [integration-map](integration-map.md) §3 + overrides | diff --git a/Architecture/ecosystem-map.md b/Architecture/ecosystem-map.md new file mode 100644 index 0000000..6850ee8 --- /dev/null +++ b/Architecture/ecosystem-map.md @@ -0,0 +1,49 @@ +# Ecosystem Map — Dev-toolkit ↔ paul ↔ gsd-core ↔ carl + +> **Module:** Architecture / Foundation +> **Status:** Informational (not executed by the orchestrator; no runtime dependency) +> **Purpose:** Concept-level bridge between this toolkit and three unrelated Claude Code systems the user also runs (`paul:*` plugin, `gsd-*` plugin family, `carl-mcp`). Answers "what's the equivalent of X" when moving between them. Does not wire them together — see §4. + +## 1. The Four Systems + +| System | What it is | State lives in | Unit of work | +|--------|-----------|-----------------|--------------| +| **Dev-toolkit** (this repo) | Versioned, submoduled process toolkit + Notion-backed state machine | Notion (Living BRD, properties) + `project-manifest.yaml` + `~/.toolkit/registry.yaml` | BRD, through 13 gated stages ([workflow-state-machine](workflow-state-machine.md)) | +| **paul** | Claude Code plugin: milestone → phase planning/execution workflow | Local files in the project repo (manifest via `paul:register`, phase/handoff docs) | Phase, driven by discuss → plan → apply → verify | +| **gsd-core** (`gsd-*`) | Claude Code plugin family: much larger phase-lifecycle system with specialized sub-agents per concern (UI, security, eval, AI integration, memory, knowledge graph) | Local `.planning/` files in the project repo (`ROADMAP.md`, `PLAN.md`, `SPEC.md`, etc.) | Phase, driven by discuss-phase → plan-phase → execute-phase → verify-work, with optional sub-phase contracts | +| **carl** (`carl-mcp`) | MCP server: persistent, cross-project rules + decision memory, auto-injected at session start via hook | Domain files outside any project repo (global, per-machine); a `` block is pushed into every session | No lifecycle unit — it's a standing rules/decision layer, not a workflow | + +Dev-toolkit and gsd-core both model a **gated feature lifecycle** with human checkpoints. paul is a lighter version of the same idea. carl is orthogonal — it never advances a feature through stages; it just remembers rules and decisions and reminds every session of them. + +## 2. Concept Mapping + +| Dev-toolkit concept | paul equivalent | gsd-core equivalent | carl equivalent | +|---|---|---|---| +| Living BRD (Notion page, S01–S16) | phase doc produced by `paul:discuss` / `paul:plan` | `SPEC.md` / `PLAN.md` per phase (`gsd-spec-phase`, `gsd-plan-phase`) | — (no per-feature document) | +| `project-manifest.yaml` ([project-manifest](project-manifest.md)) | `paul.toml` (`paul:register`) | `PROJECT.md` + `.planning/` config | `carl_get_manifest` — global, not per-project | +| Toolkit Registry (`~/.toolkit/registry.yaml`, [toolkit-registry](toolkit-registry.md)) | — (no user-global registry found) | global config via `gsd-config` / `gsd-settings` (model profile, workflow toggles) | the `always_on` global rule domain — loaded into every session regardless of project | +| S16 Decision Log | `paul:handoff` session handoff | `gsd-extract-learnings`; decisions recorded in `PLAN.md`/`ROADMAP.md` | `carl_log_decision` → per-domain decision log (`carl_get_decisions`, `carl_search_decisions`) | +| Standards/ (17 tech-rule files, always loaded by relevance) | — (no standards layer found) | implicit in specialized auditors (`gsd-security-auditor`, `gsd-code-reviewer`) rather than a standalone rules set | domain rules (`carl_get_domain_rules`), keyword-triggered per session — e.g. this repo's `BILLING` / `DESIGN` / `ONBOARDING` domains | +| Workflow Orchestrator ([orchestrator](../AI/orchestrator.md)) | `paul:progress` (routes to next action) | `gsd-next` / `gsd-progress` (routes to next action) | none — carl never routes, only injects context | +| 13-stage BRD state machine | discuss → plan → apply → verify, milestone/phase CRUD (`paul:milestone`, `paul:add-phase`) | discuss-phase → plan-phase → execute-phase → verify-work, plus optional `spec-phase`, `ui-phase`, `ai-integration-phase`, `secure-phase`, `eval-review` contracts | — | +| Screen Contract ([screen-contract](screen-contract.md), `C_CONTRACT`) | — (no design-traceability concept found) | `UI-SPEC.md` (`gsd-ui-phase`, `gsd-ui-checker`, `gsd-ui-review`) | — | +| Skills/ (16 roles, [permission-matrix](permission-matrix.md)) | — (no per-role permission model found) | specialized sub-agents per concern (`gsd-planner`, `gsd-executor`, `gsd-verifier`, `gsd-security-auditor`, …) — closest analog, but agent-scoped, not rights-matrix-scoped | — | +| Session resume (Notion state only, no session memory) | `paul:pause` / `paul:resume` (handoff file) | `gsd-pause-work` / `gsd-resume-work`, `gsd-thread` | session-start rule re-injection (`` block) — re-establishes rule context every session, not a work-resume mechanism | +| Codebase mapping at onboarding ([project-onboarding](../Workflows/project-onboarding.md)) | `paul:map-codebase` | `gsd-map-codebase`, `gsd-onboard`, `gsd-ingest-docs` | — | +| Cross-project reuse unit | none observed — paul is per-repo, no pinned shared dependency | none observed — same | domains are global and live across every project on the machine, unversioned | + +## 3. What's Genuinely Different (not just naming) + +- **Where state lives.** Dev-toolkit externalizes all feature state to Notion — human-readable, human-editable, survives outside any repo. paul and gsd-core keep state as files inside the project repo. carl keeps state outside every repo, machine-global. +- **Gate mechanics.** Dev-toolkit gates are typed tokens in Notion properties (`Approvals` contains `direction`/`design`/`final`), checked programmatically, invalidated on stale content (§6 of [workflow-state-machine](workflow-state-machine.md)). paul/gsd-core gates are conversational checkpoints (`AskUserQuestion`, review prompts) — no persisted approval token to go stale. +- **Distribution model.** Dev-toolkit is a semver-tagged git submodule — a project pins a version and upgrades deliberately ([versioning](versioning.md)). paul and gsd-core are Claude Code plugins installed at the tool level, not pinned per-project; upgrading the plugin upgrades every project at once. +- **carl has no lifecycle.** It doesn't compete with the other three's phase machines — it's a standing rules-injection + decision-log layer that runs underneath whatever workflow is active. It's closer in spirit to Dev-toolkit's Standards/ + S16 Decision Log combined, but scoped globally instead of per-toolkit-version and per-BRD. + +## 4. Boundary (why this is a map, not a wire) + +These four systems are **not connected**. Running paul or gsd-core commands inside a Dev-toolkit-managed project would create a second, competing source of truth (local `.planning/`/`.paul/` files vs. the Notion BRD) — the Project Boundary Rule ([integration-map](integration-map.md) §2b) and `C_MANIFEST` guard don't know about either. This document is descriptive only: it exists so a session or a human can translate a request between vocabularies ("do the paul equivalent of a Direction Gate") without guessing. It creates no dependency, changes no gate, and nothing here is read by [orchestrator](../AI/orchestrator.md). + +If real integration is ever wanted, the two lowest-risk seams are: +- **carl → S16**: mirror BRD Decision Log entries into a carl domain via `carl_log_decision`, since carl's decision log is additive and doesn't own a lifecycle it could conflict with. +- **gsd-core sub-agents as optional executors** inside a single Dev-toolkit stage (e.g. `gsd-security-auditor` invoked *from* the Tech Review stage) — additive, doesn't touch the state machine. +Both are deliberately out of scope here. diff --git a/Architecture/integration-map.md b/Architecture/integration-map.md index fe7e5c7..25f650b 100644 --- a/Architecture/integration-map.md +++ b/Architecture/integration-map.md @@ -10,14 +10,15 @@ |--------|-------|-------------| | **Notion** (one DB, all projects) | All feature knowledge: Living BRDs (S01–S16), workflow state (properties), approvals, decision history | Code, build artifacts, global standards | | **Toolkit repo** (this repo, submoduled) | All global knowledge: workflows, skills, standards, templates, checklists, prompts | Project business logic, feature knowledge, secrets | -| **Project repo** | Code, prototypes, tests, thin `CLAUDE.md`, project overrides, toolkit submodule pin | Copies of toolkit content, feature knowledge that belongs in the BRD | +| **Toolkit Registry** (`~/.toolkit/registry.yaml`, per user/machine — [toolkit-registry](toolkit-registry.md)) | User-global config: BRD DB identity, projects parent page, bot presence | Secrets, project configuration, feature knowledge | +| **Project repo** | Code, prototypes, tests, thin `CLAUDE.md`, project overrides, toolkit submodule pin | Copies of toolkit content, feature knowledge that belongs in the BRD, user-global facts (inherited from the registry) | **Knowledge separation rule (hard):** feature knowledge → Notion BRD. Global process knowledge → toolkit. Project-specific technical knowledge (stack quirks, env setup, project conventions that override standards) → project repo `CLAUDE.md` + `project-overrides.md`. Anything written in the wrong layer gets moved, not duplicated. **Three sources of truth (v1.2):** | Artifact | Truth for | Lives in | |----------|-----------|----------| -| [`project-manifest.yaml`](project-manifest.md) | project configuration | project repo root | +| [`project-manifest.yaml`](project-manifest.md) | project configuration + **resource registry** | project repo root | | Living BRD | feature requirements + decisions | Notion | | [Screen Contract](screen-contract.md) (`screens/`) | design→development traceability | project repo | @@ -47,6 +48,25 @@ Workflows consume these; they never re-collect or duplicate their content. Confi └───────────────────────────────────────────┘ ``` +## 2b. Project Boundary Rule (v1.5 — hard) + +Every project explicitly **owns and binds** its external resources at onboarding ([Project Resource Binding](../Workflows/project-onboarding.md) step 3). The Project Resource Registry — the manifest's `resources:` block plus the `communication:` section ([project-manifest](project-manifest.md) §3) — is the complete, closed list: Notion databases/pages, Figma files/libraries, GitHub repositories, documentation targets, communication channels, each stored by **stable identifier** (database id, file key, repo id, chat id — never display names). + +After onboarding, the Workflow Orchestrator and every workflow operate **only inside that registry**. Forbidden, always: + +- browsing or searching the user's full Notion workspace (`notion-search` beyond registered databases/pages) +- browsing the user's Figma teams/projects or opening unregistered files +- listing or reaching into GitHub repositories other than the bound ones +- reading documents, chats, or MCP resources not registered to the project + +A stage that needs a resource the registry doesn't hold — or holds skipped or `health: unreachable` — does exactly this, nothing else: **stop**, set the BRD `Blocked (resource: )` (resumable; fires the Telegram failure trigger), and raise a **Resource Decision** ([project-manifest](project-manifest.md) §3): + +1. **connect an existing resource**, or +2. **create a new one** (either = targeted Resource Binding re-run for that slot), or +3. **confirm absence** — the slot stays/becomes `skipped` and its absence behavior applies. + +**Never guess, never workspace-search, never substitute a look-alike.** Boundary violations are process defects; report them like any other broken rule. Enforcement lives in the orchestrator's Manifest Gate + anti-rules ([../AI/orchestrator.md](../AI/orchestrator.md)). + ## 3. Naming Contracts | Thing | Format | Example | @@ -60,6 +80,8 @@ Workflows consume these; they never re-collect or duplicate their content. Confi Bidirectional links: BRD `Branch` + `PR` properties point at Git; PR body + commits point at BRD. Either side reachable from the other in one hop. +**Multi-repo BRDs** (backend/infra repos bound beyond the primary): the same branch name is used in every affected repo; one PR per affected repo; the BRD `PR` property holds the primary repo's PR, whose body links the sibling PRs (and S16 lists them). The Final Gate reviews **all** PRs of the set — merge is atomic in intent: none merge until the gate approves the set. + ## 4. Lifecycle Loop (end to end) 1. **Intake** — you create/refine a BRD page, set `Project`, `Priority`, tick `Ready`. @@ -74,17 +96,17 @@ Bidirectional links: BRD `Branch` + `PR` properties point at Git; PR body + comm ## 5. Project Onboarding (new project, ~10 min) 1. `git submodule add toolkit && cd toolkit && git checkout ` -2. Copy `toolkit/AI/CLAUDE-global.md` reference block into project `CLAUDE.md` (points at submodule; adds project code, stack notes, overrides file path). -3. Create `project-overrides.md` (empty scaffold) — the only place project rules may differ from Standards/. -4. In Notion: add project to the DB `Project` select. Done — BRDs immediately pickable. +2. Run [../Workflows/project-onboarding.md](../Workflows/project-onboarding.md): register → collect/detect stack → **bind every resource** (Connect Existing / Create New / Skip per slot; stable IDs into the registry) → validate integrations + bindings → generate manifest → seed Screen Contract + context/. BRDs pickable only after `onboarding.status: complete` + `resources.status: bound`. +3. Scaffolds land automatically: project `CLAUDE.md` block (from `toolkit/AI/CLAUDE-global.md`), `project-overrides.md` — the only place project rules may differ from Standards/. +4. From here the Project Boundary Rule (§2b) holds: sessions touch registry resources only. ## 6. MCP / Tool Requirements per Layer -| Integration | Tool | Used by | -|-------------|------|---------| -| Notion | Notion MCP (`notion-fetch`, `notion-update-page`, `notion-search`, `notion-query-data-sources`) | orchestrator, every workflow | -| GitHub | `gh` CLI | Workflows/git, release, code-review | -| Figma | Figma MCP | ui-workflow, design-system-workflow (when Figma refs exist) | -| Local | Bash, file tools | implementation, qa, debug | +| Integration | Tool | Used by | Boundary scope (§2b) | +|-------------|------|---------|----------------------| +| Notion | Notion MCP (`notion-fetch`, `notion-update-page`, `notion-query-data-sources`) | orchestrator, every workflow | registered databases/pages only; no workspace search | +| GitHub | `gh` CLI | Workflows/git, release, code-review | bound repositories only | +| Figma | Figma MCP | ui-workflow, design-system-workflow (when Figma bound) | bound file keys only; no team browsing | +| Local | Bash, file tools | implementation, qa, debug | project repo(s) | Details in [../AI/mcp-setup.md](../AI/mcp-setup.md). diff --git a/Architecture/project-manifest.md b/Architecture/project-manifest.md index 1fb1536..df6776a 100644 --- a/Architecture/project-manifest.md +++ b/Architecture/project-manifest.md @@ -1,22 +1,23 @@ # Project Manifest -> **Module:** Architecture / Foundation (v1.2) +> **Module:** Architecture / Foundation (v1.5) > **Status:** Stable -> **Purpose:** Single source of truth for **project configuration**. Generated by [../Workflows/project-onboarding.md](../Workflows/project-onboarding.md); consumed by every workflow module. Workflows read the manifest — they never re-ask the user for project information it contains. -> **Rule of three sources:** Manifest = project config · Living BRD = feature requirements · Screen Contract = design-to-development traceability. Nothing duplicated across them; changes update the owning source. +> **Purpose:** Single source of truth for **project configuration** and the **Project Resource Registry**. Generated by [../Workflows/project-onboarding.md](../Workflows/project-onboarding.md); consumed by every workflow module. Workflows read the manifest — they never re-ask the user for project information it contains, and they never touch an external resource it doesn't register (§3 Project Boundary Rule). +> **Rule of three sources:** Manifest = project config + resource registry · Living BRD = feature requirements · Screen Contract = design-to-development traceability. Nothing duplicated across them; changes update the owning source. ## 1. Location & Lifecycle -- File: `project-manifest.yaml` at project repo root. Versioned with the code. -- Created once by onboarding; **no BRD, workflow, or skill executes for a project without `onboarding.status: complete`** (orchestrator guard `C_MANIFEST`, [workflow-state-machine.md](workflow-state-machine.md)). -- Updates: project evolves (new stack element, Figma file added, DB moved) → re-run the affected onboarding section; manifest edited + `last_validated` stamped + change noted in the next BRD's S16 or a dedicated maintenance note. Manual hand-edits allowed but must pass integration re-validation before the next BRD pickup. -- Staleness: `last_validated` older than 30 days → orchestrator re-runs [integration-validation](../Workflows/integration-validation.md) at next pickup (cheap re-check, not full onboarding). +- File: `project-manifest.yaml` at project repo root (the `git.primary_repository` repo). Versioned with the code. +- Created once by onboarding; **no BRD, workflow, or skill executes for a project without `onboarding.status: complete`** (orchestrator guard `C_MANIFEST`, [workflow-state-machine.md](workflow-state-machine.md)) — which since v1.5 includes `resources.status: bound`. +- Updates: project evolves (new stack element, new resource, DB moved) → re-run the affected onboarding section; manifest edited + `last_validated` stamped + change noted in the next BRD's S16 or a dedicated maintenance note. Manual hand-edits allowed but must pass integration re-validation before the next BRD pickup. +- Staleness: `last_validated` older than 30 days → the Manifest Gate re-runs [integration-validation](../Workflows/integration-validation.md) before project work (cheap re-check, not full onboarding). +- **Migration (manifest_version 1 → 2):** owned by the **Manifest Gate** ([../AI/orchestrator.md](../AI/orchestrator.md) responsibility 0) — it detects `manifest_version: 1` at session entry (pickup and resume alike, **before** any staleness check or validation, which need registry ids a v1 manifest lacks) and runs the Migration procedure ([../Workflows/project-onboarding.md](../Workflows/project-onboarding.md) §Migration): automatic offer, v1 fields seed the bindings, only genuinely new slots are asked, resumable and idempotent. `manifest_version: 2` is stamped only when the migration checklist passes in full. In-flight BRDs are untouched — machine state lives in Notion; they resume normally the moment migration completes. A v1 manifest is **not** pickable except through this path. ## 2. Schema (normative) ```yaml -manifest_version: 1 # manifest schema version (this file's contract) -toolkit_version: v1.2.0 # toolkit the project is pinned to +manifest_version: 2 # v1.5 — Project Resource Binding (resources: registry) +toolkit_version: v1.5.0 # toolkit the project is pinned to onboarding: status: complete # incomplete | complete — the master gate completed: 2026-07-26 @@ -38,33 +39,84 @@ stack: package_manager: npm # pnpm | npm | yarn | bun profile: nextjs-tailwind # resolved via Architecture/stack-profiles.md → which Standards apply -design: - figma_file: null # URL or null (null = prototype-only design flow) - figma_pages: [] - design_system_file: null # Figma library URL or null +design: # code-side design config ONLY — Figma resource identity lives in resources.figma component_library: shadcn/ui # code-side component base token_source: src/styles/globals.css # where @theme / tokens live icon_library: lucide-react typography_source: next/font - validated: true # all non-null resources fetch-checked at onboarding - -notion: - workspace: - brd_database: # required - brd_data_source: - project_database: null # optional registry - sprint_database: null # optional - decision_log_database: null # optional — default is in-BRD S16 - -git: - repository: # required - default_branch: main + +resources: # v1.5 — PROJECT RESOURCE REGISTRY (§3) — sole home of external + # resource identity (plus communication: below, at its own path) + status: bound # unbound | bound — every slot below explicitly resolved + bound: 2026-07-26 # date the registry was completed + + notion: + workspace: + brd_database: # REQUIRED — inherited from the Toolkit Registry + id: <32-hex database id> # ([toolkit-registry](toolkit-registry.md)); confirmed, never re-asked + data_source: + url: # convenience pointer; id is authoritative + binding: connected # connected | created + bound: 2026-07-26 + validated: 2026-07-26 # last access check + project_page: # optional — project identity page (v1.3 registration target) + id: <32-hex page id> + binding: created + bound: 2026-07-26 + validated: 2026-07-26 + sprint_database: null # optional — null with binding: skipped recorded below when declined + decision_log_database: null # optional — default is in-BRD S16 + skipped: [sprint_database, decision_log_database] # explicit declines — never re-asked, never guessed + + figma: + product_design_file: # optional — absent/skipped = prototype-only design flow + key: # stable key from figma.com/design//… — never the file name + pages: [] + binding: connected + bound: 2026-07-26 + validated: 2026-07-26 + design_system_library: null # Figma library; same shape when bound + skipped: [design_system_library] + + github: + frontend_repository: # ≥1 repository REQUIRED across the three slots + id: # gh api repos/{owner}/{repo} --jq .id — survives renames/transfers + url: + default_branch: main + binding: connected + bound: 2026-07-26 + validated: 2026-07-26 + backend_repository: null # monorepo → bind the same repo (same id) to both roles + infrastructure_repository: null # optional + skipped: [backend_repository, infrastructure_repository] + + documentation: # optional slots; each type: notion-page | repo-path | url + api_documentation: + type: repo-path + identifier: docs/api/ # notion-page → page id · repo-path → : · url → URL + binding: created + bound: 2026-07-26 + validated: 2026-07-26 + architecture_documentation: null + product_documentation: null + skipped: [architecture_documentation, product_documentation] + + other: [] # additional MCP-backed resources, same binding record shape + # - name: analytics-dashboard + # mcp: + # identifier: + # binding: connected + # bound: 2026-07-26 + # validated: 2026-07-26 + +git: # behavior config — repository IDENTITY lives in resources.github + primary_repository: frontend # which resources.github slot hosts manifest, toolkit pin, screens/ branch_convention: feat/- # toolkit default unless overridden pr_strategy: squash # squash | merge | rebase release_strategy: none # tag | vercel | manual-deploy | none -integrations: # written by integration-validation, per run - notion_mcp: validated # validated | unavailable | error: +integrations: # written by integration-validation, per run — TOOL availability, + notion_mcp: validated # not resource identity. validated | unavailable | error: github_cli: validated figma_mcp: unavailable browser_automation: unavailable # browser/playwright MCP @@ -78,36 +130,102 @@ context_package: # v1.3 — generated AI context summaries path: context/ generated: 2026-07-26 # regenerate when older than onboarding.last_validated -communication: # v1.4 — optional integrations; asked ONCE at onboarding - telegram: +communication: # COMMUNICATION section of the resource registry (§3). Physical + telegram: # path kept stable — the plugin's YAML reader depends on it enabled: false # false = never ask again (re-open only via # "toolkit configure communication" / "toolkit onboard --update") + # deferred: true # set when the answer was "configure later" (vs "no") — + # the onboarding report prints the re-open phrase once # when enabled: # mode: topic # private | group | topic (recommended) - # chat_id: "-1001234567890" + # chat_id: "-1001234567890" # stable chat identifier # topic_id: 42 # topic mode only + # binding: connected # connected (existing bot/chat) | created (new chat/topic) + # bound: 2026-07-26 + # validated: 2026-07-26 # last test-send # notifications: # approvals: true # direction/design gates + PR-ready # failures: true # pipeline failed - # pipeline: true # daily_summary: false # v2 — declared, not implemented # slack / discord / email: future — same shape, sibling adapters ``` **Secrets rule:** bot tokens NEVER enter the manifest or repo — `TELEGRAM_BOT_TOKEN` env var only ([extensions/telegram/README.md](../extensions/telegram/README.md); [Standards/security.md](../Standards/security.md) rule 5). Manifest holds routing (chat/topic ids) — non-secret. -## 3. Consumption Rules +## 3. Project Resource Registry & Boundary (v1.5) -1. Workflows resolve project facts from the manifest first — asking the user for a manifest-held value is a process bug. -2. `stack.profile` decides which Standards/ apply ([stack-profiles.md](stack-profiles.md)); stages load only the applicable set. -3. `design.figma_file: null` switches design workflows to prototype-only mode (screen-contract design mapping adapts — see [screen-contract.md](screen-contract.md) §4). -4. `integrations.*: unavailable` triggers the degradation rules of [../AI/mcp-setup.md](../AI/mcp-setup.md) — loudly, per stage. -5. `project.stage` tunes rigor defaults: `idea/discovery` may run [design-only playbook](../Playbooks/design-only.md); `production/maintenance` raises review dimensions to full always. -6. Manifest vs `project-overrides.md`: manifest = **facts** (what the project is/uses); overrides = **rule deviations** (how standards bend). Never mix. +The **Project Resource Registry** = the `resources:` block **plus** the `communication:` section (kept at its own top-level path — the Telegram plugin's YAML reader depends on it, v1.4 contract). Together they are the complete, closed list of external resources this project owns. Established by the onboarding **Project Resource Binding** stage ([../Workflows/project-onboarding.md](../Workflows/project-onboarding.md) step 3); every supported slot is resolved there as **Connect Existing** / **Create New** / **Skip**. + +**Binding record (uniform):** + +| Field | Meaning | +|-------|---------| +| `id` / `key` / `identifier` | **Stable identifier** — the only authoritative reference | +| `url` | Convenience pointer for humans; never used for resolution | +| `binding` | `connected` (pre-existing, linked) · `created` (made by onboarding) · `skipped` (explicitly declined; recorded in the section's `skipped:` list) | +| `bound` | Date the binding decision was made | +| `validated` | Date of last successful access check | +| `health` | `ok` (default, omitted) · `unreachable: ` — written by [integration-validation](../Workflows/integration-validation.md) when the stable id stops resolving. Unreachable ≠ unbound: the decision record stays; only a Resource Decision changes it | + +**Resource lifecycle — disposition vs health.** `binding` records *the decision* (immutable except through a Resource Decision); `health` records *runtime reality* (restamped on every validation). The two never conflate: a deleted Figma file is `binding: connected, health: unreachable`, not silently unbound. + +**Resource Decision (the one runtime primitive).** When a stage concretely requires a slot that is (a) skipped, (b) unbound with no free slot, or (c) bound but unreachable, the orchestrator raises exactly one decision — never guesses, never searches: + +> **connect existing** / **create new** / **confirm absence** + +- *connect/create* → targeted Resource Binding re-run for that slot (Re-Onboarding rule); work resumes. +- *confirm absence* → slot is (or becomes) `skipped` — an unbind, recorded in the `skipped:` list + S16 — and the slot's **absence behavior** (below) applies; if that behavior is `blocks`, the BRD stays `Blocked (resource: )`. +- While the decision is pending, the BRD is `Blocked`, reason `resource: ` — resumable, surfaced at session entry, and the Telegram failure trigger fires ([../AI/orchestrator.md](../AI/orchestrator.md) 0b). +- This scopes the skip promise precisely: **skipped slots are never re-asked proactively**; only a stage that cannot proceed without the slot may raise one Resource Decision, and a confirmed absence is honored again until the next such stage. + +**Absence behavior per optional slot** (what "proceed without it" means — the generalization of the Figma rule): + +| Slot | Absent / skipped / confirmed-absent behavior | +|------|----------------------------------------------| +| `figma.product_design_file` | prototype-only design flow ([screen-contract](screen-contract.md) §4) | +| `figma.design_system_library` | DS truth = code tokens + component library only | +| `notion.project_page` / `sprint_database` / `decision_log_database` | feature off (S16-in-BRD remains the decision log) | +| `documentation.*` | doc-sync duties skip that target; technical-writer logs the gap once | +| `github.backend_repository` / `infrastructure_repository` | **blocks** any stage whose plan requires it (Resource Decision fires at Dev Planning exit — guard `C_RESOURCES`) | +| `communication.telegram` | no notifications; terminal gates only | -## 4. Validation (manifest itself) +**Rebind fallout (hard):** any registry mutation on a slot that existing Screen Contract mappings or granted approvals reference → the affected mappings are marked invalid, the owning screens' status regresses (logged), and the stale-approval rule fires on the owning BRDs ([screen-contract](screen-contract.md) §5). Replacing a design file is a design change, never a silent swap. -- Required non-null: `project.{name,code,product_type,stage}`, `stack.package_manager` + at least one of frontend/backend, `notion.brd_database`, `git.repository`, `screen_contract.path`. +**Rebind logging & persistence:** mid-BRD rebind → that BRD's S16; rebind outside any BRD → the next pickup's S16. The manifest edit commits to the primary repo's default branch as `chore: rebind `; in-flight sessions re-read the manifest at next stage entry. + +**Stable identifiers only — never display names:** + +| Provider | Store | Never store | +|----------|-------|-------------| +| Notion | database/page ID (32-hex) + `collection://` data source | page titles, DB names | +| Figma | file key (`figma.com/design//…`) | file names | +| GitHub | numeric repo id (`gh api repos/{owner}/{repo} --jq .id`) + canonical URL | repo display names alone | +| Telegram | `chat_id` (+ `topic_id`) | chat titles | +| Documentation | page id / repo path / URL per `type` | document titles | + +Names get renamed; IDs don't. A binding that breaks on rename is a defect. + +**Required vs optional slots:** required — `resources.notion.brd_database` (inherited from the [Toolkit Registry](toolkit-registry.md)), ≥1 `resources.github` repository. Everything else optional, but **every slot is explicitly resolved**: bound or `skipped`, never silently absent, never guessed at runtime. Re-open via "toolkit onboard --update" — or a Resource Decision when a stage concretely requires the slot (above). + +**Registry status:** `resources.status: bound` only when all required slots are `connected`/`created` **and** validated, and every optional slot has an explicit disposition. For the communication section, `enabled: true | false` **is** the disposition — set once at onboarding, never silently absent. `C_MANIFEST` fails otherwise. + +**Project Boundary Rule (hard):** after onboarding, the Workflow Orchestrator and every workflow may access **only** resources in this registry. Concretely forbidden: workspace-wide `notion-search`, browsing Figma projects/teams, listing all GitHub repositories, reading documents not registered here. A stage that needs a resource the registry doesn't hold (or holds unhealthily) **stops** and raises a Resource Decision (above) — *connect existing / create new / confirm absence* — with the BRD `Blocked (resource: )` until resolved, then continues. **Never guess, never search the workspace, never substitute a look-alike.** Full rule: [integration-map.md](integration-map.md) §2b; enforcement: [../AI/orchestrator.md](../AI/orchestrator.md). + +## 4. Consumption Rules + +1. Workflows resolve project facts from the manifest first — asking the user for a manifest-held value is a process bug. +2. Workflows resolve external resources from the registry **only** (§3 Project Boundary Rule) — reaching outside it is a boundary violation, reported as such. +3. `stack.profile` decides which Standards/ apply ([stack-profiles.md](stack-profiles.md)); stages load only the applicable set. +4. `resources.figma.product_design_file` absent/skipped switches design workflows to prototype-only mode (screen-contract design mapping adapts — see [screen-contract.md](screen-contract.md) §4). +5. `integrations.*: unavailable` triggers the degradation rules of [../AI/mcp-setup.md](../AI/mcp-setup.md) — loudly, per stage — **for bound slots only**. A deliberately skipped slot records `integrations.: n/a (skipped)` and degrades nothing: skip is a chosen mode, not a failure. `integrations` = tool availability; `resources` = what the tools may touch. Both must hold. +6. `project.stage` tunes rigor defaults: `idea/discovery` may run [design-only playbook](../Playbooks/design-only.md); `production/maintenance` raises review dimensions to full always. +7. Manifest vs `project-overrides.md`: manifest = **facts** (what the project is/uses/owns); overrides = **rule deviations** (how standards bend). Never mix. + +## 5. Validation (manifest itself) + +- Required non-null: `project.{name,code,product_type,stage}`, `stack.package_manager` + at least one of frontend/backend, `resources.notion.brd_database.id`, at least one `resources.github.*_repository.id`, `git.primary_repository` (must name a bound github slot), `screen_contract.path`. +- `resources.status: bound` per §3 — all required slots validated, all optional slots explicitly resolved. +- Every bound resource carries a stable identifier of its provider's type (§3 table) — a binding holding only a display name or only a URL where an id is available is invalid. - `project.code` unique across the user's projects (checked against Notion Project select options at onboarding). - `stack.profile` must resolve in stack-profiles. - Any `other:` stack entry → warning: standards coverage gap, noted in manifest and at every Dev Planning until a profile exists. diff --git a/Architecture/screen-contract.md b/Architecture/screen-contract.md index 5f15cd5..e169a2e 100644 --- a/Architecture/screen-contract.md +++ b/Architecture/screen-contract.md @@ -1,6 +1,6 @@ # Screen Contract -> **Module:** Architecture / Foundation (v1.2) +> **Module:** Architecture / Foundation (v1.5) > **Status:** Stable > **Purpose:** Single source of truth for **design-to-development traceability**. Canonical mapping per screen: BRD requirements ↔ user flows ↔ Figma ↔ prototype ↔ frontend ↔ API ↔ QA. **Implementation may not begin while the contract is incomplete** — enforced by guard `C_CONTRACT` at Dev Planning entry ([workflow-state-machine.md](workflow-state-machine.md); validator: [../Checklists/screen-contract.md](../Checklists/screen-contract.md)). @@ -28,7 +28,7 @@ BRD sections reference screens by ID only (S07 flows name them, S08/S11/S13 cite | Owner | current stage owner role | Registry rows are created two ways (v1.3): -- **At onboarding** — known top-level screens seeded with real SCR-IDs, status `planned`, owner `unassigned`, parent flow empty. IDs exist before design/development begin. +- **At onboarding** — known top-level screens seeded with real SCR-IDs, owner `unassigned`, parent flow empty. Greenfield screens seed as `planned`; screens that already exist in a shipped app seed as **`implemented (pre-toolkit)`** — an honest state, not a false `planned`. When a BRD first claims a pre-toolkit screen, `C_CONTRACT` requires mappings only for the parts that BRD touches (backfill, not retro-design). - **At UI planning** — flow-implied screens registered per BRD (UX names them, UI planning registers them). UI planning **claims** seeded rows when a BRD's flows cover them (owner ← BRD-ID, parent flow filled) rather than creating duplicates — one screen, one ID, forever. One screen serving multiple flows lists all parent flows. `C_CONTRACT` validation only evaluates rows owned by the BRD under validation; `unassigned` rows are inert until claimed. @@ -49,13 +49,16 @@ Screens with no API dependencies state `api: none` explicitly — absence is dec ## 4. Figma-Optional Rule -`manifest.design.figma_file: null` → Design block maps to **prototype + DS components only**; Figma fields marked `n/a (no figma in manifest)`. Contract validation adapts: the "exists in Figma" check becomes "exists in served prototype". When Figma exists, both prototype and Figma mappings are required and must agree — divergence is a design-qa finding. +**No healthy Figma binding** — `manifest.resources.figma.product_design_file` skipped, null, or `health: unreachable` ([project-manifest](project-manifest.md) §3) — → Design block maps to **prototype + DS components only**; Figma fields marked `n/a (no figma in manifest)`. Contract validation adapts: the "exists in Figma" check becomes "exists in served prototype". When a healthy binding exists, both prototype and Figma mappings are required and must agree — divergence is a design-qa finding. + +Binding added or restored later: existing `n/a` Design blocks on `verified` screens stay valid as-is; screens not yet past Design Review acquire Figma mappings at their next design touch. ## 5. Ownership & Edit Rules - Contract files follow the same role discipline as BRD sections: each block edited by its owning role (table §3); cross-block findings route via owning BRD's S16 `Affects:`. - Registry Status advanced only by the stage that completed the work (UI → `designed`/`prototyped`, Implementation → `implemented`, QA → `verified`). - Contract changes after Design Gate approval = design change → stale-approval rule fires on the owning BRD. +- **Rebind fallout:** a registry mutation replacing or unbinding a resource that Design/API blocks reference ([project-manifest](project-manifest.md) §3) marks those mappings invalid, regresses the affected screens' status (logged in the owning BRD's S16), and fires the stale-approval rule — a swapped design file is a design change, never silent. ## 6. Validation (the six checks — guard `C_CONTRACT`) diff --git a/Architecture/toolkit-registry.md b/Architecture/toolkit-registry.md new file mode 100644 index 0000000..f6131df --- /dev/null +++ b/Architecture/toolkit-registry.md @@ -0,0 +1,53 @@ +# Toolkit Registry + +> **Module:** Architecture / Foundation (v1.5) +> **Status:** Stable +> **Purpose:** Single source of truth for **user-global toolkit configuration** — facts shared by every project on this machine. Created once at one-time setup ([../Documentation/notion-setup.md](../Documentation/notion-setup.md)); read by project registration and Resource Binding. Kills the bootstrap circularity: project onboarding never has to discover global resources, and never searches the workspace to find them. + +## 1. Ownership Boundary (the rule this file exists for) + +| Layer | File | Owns | Never holds | +|-------|------|------|-------------| +| **Toolkit Registry** (user-global) | `~/.toolkit/registry.yaml` | BRD database identity, Notion workspace, projects parent page, communication bot presence | secrets, project configuration, feature knowledge | +| **Project Manifest** (per project) | `project-manifest.yaml` at primary repo root | project config + Project Resource Registry ([project-manifest](project-manifest.md)) | user-global facts (inherits them), secrets | + +One direction only: projects **inherit** from the Toolkit Registry; the registry never references individual projects. The BRD database is a *toolkit-level* resource (one DB, all projects — [notion-setup](../Documentation/notion-setup.md) §4 invariant): its identity lives here, and each project manifest **copies** the binding at onboarding for local validation stamps. On mismatch, the Toolkit Registry wins — re-run the affected binding. + +## 2. Location & Lifecycle + +- File: `~/.toolkit/registry.yaml` — user home, machine-local, never inside any repo, never committed. +- Created by one-time setup, immediately after the BRD database is created or first connected. +- Missing registry → project registration and onboarding **stop with the remedy** ("run one-time setup per README") — they never search the workspace and never guess. +- Multi-machine: recreate per machine (one-time setup connects the existing DB — `Connect Existing`, not `Create New`). + +## 3. Schema (normative) + +```yaml +registry_version: 1 +created: 2026-07-26 + +notion: + workspace: + brd_database: # THE one DB for all projects — inherited by every manifest + id: <32-hex database id> # stable identifier — never the display name + data_source: + url: # convenience; id is authoritative + validated: 2026-07-26 # last access check at this level + projects_parent_page: null # optional page id — project identity pages are created + # under it at registration (durable pre-repo home for + # registration fields); null = identity lives in the + # manifest only once the repo exists + +communication: + telegram_bot: none # configured | none — presence flag only; + # the token itself stays in TELEGRAM_BOT_TOKEN env, always +``` + +**Secrets rule:** same as everywhere — tokens never enter this file. + +## 4. Consumption + +1. **Registration** ([../Workflows/project-onboarding.md](../Workflows/project-onboarding.md) step 0) reads `notion.brd_database` to reserve the project code and `projects_parent_page` to create the identity page — no asking, no searching. +2. **Resource Binding** (step 3) inherits the BRD DB binding into `manifest.resources.notion.brd_database` (`binding: connected`, confirmed not re-asked). `Create New` for a BRD DB is legal only when the registry has none — first project ever; the created DB is written here first, then inherited. +3. **Manifest Gate** ([../AI/orchestrator.md](../AI/orchestrator.md) responsibility 0) loads this file before anything else; missing → one-time setup is the only offered action. +4. Onboarding's Telegram question consults `communication.telegram_bot` — `none` → the yes-path first routes through bot creation ([../extensions/telegram/README.md](../extensions/telegram/README.md) Setup 1). diff --git a/Architecture/workflow-state-machine.md b/Architecture/workflow-state-machine.md index d59765b..c715529 100644 --- a/Architecture/workflow-state-machine.md +++ b/Architecture/workflow-state-machine.md @@ -24,11 +24,15 @@ The 13-stage lifecycle every BRD moves through. Machine state lives in Notion pr BRD stages run per-BRD; these run **once per project** (re-run on evolution) and gate the whole pipeline: ``` +TOOLKIT_SETUP (once ever: BRD DB + Toolkit Registry) + ↓ PROJECT_ONBOARDING → INTEGRATION_VALIDATION → MANIFEST_GENERATED + ↑ +MANIFEST_V1 ──(Manifest Gate detects old version)──→ MIGRATION ──→ MANIFEST_GENERATED (v2) ``` -- Executed by [../Workflows/project-onboarding.md](../Workflows/project-onboarding.md) + [../Workflows/integration-validation.md](../Workflows/integration-validation.md); state lives in `project-manifest.yaml` (`onboarding.status`), not in Notion Status values. -- Guard **`C_MANIFEST`** (see §4) blocks BRD pickup for any project without a complete, validated manifest. No BRD, workflow, or skill executes before it. +- Executed by [../Workflows/project-onboarding.md](../Workflows/project-onboarding.md) (+ its §Migration) + [../Workflows/integration-validation.md](../Workflows/integration-validation.md); state lives in `project-manifest.yaml` (`onboarding.status`, `manifest_version`) and `~/.toolkit/registry.yaml` ([toolkit-registry](toolkit-registry.md)), not in Notion Status values. +- Guard **`C_MANIFEST`** (see §4) blocks all project work without a complete, validated, current-version manifest. No BRD, workflow, or skill executes before it. Version migration is a *gate outcome*, not a user chore — the Manifest Gate runs it automatically ([../AI/orchestrator.md](../AI/orchestrator.md) responsibility 0). ## 2. State Catalog @@ -52,6 +56,8 @@ Each state maps to one Workflow module (Phase 1 build). Format per state: primar **Off-path states:** `Blocked` (resumable; `Blocked Reason` set), `Stopped` (deliberate terminal, rationale in S16), `Backlog` (pre-Ready). +**`Blocked Reason` taxonomy (typed, machine-readable prefix):** `resource: ` (Resource Decision pending — [project-manifest](project-manifest.md) §3) · `paused-by-user` · `ceiling: ` · `ambiguity: ` · `error: `. Session entry surfaces every Blocked BRD with its typed reason and unblock action; the Telegram failure trigger fires on every entry into `Blocked`. + ## 3. Transition Table | From | Trigger | To | @@ -68,7 +74,8 @@ Each state maps to one Workflow module (Phase 1 build). Format per state: primar | Design Review | approval `design` ∧ `C_CONTRACT` fail | owning stage per validator report (Design / Dev Planning owners), S16 logged | | Design Review | change requests | Design (design machine REVISION routing) | | Design Review | reject (direction wrong) | Analysis | -| Dev Planning | plan validated | Implementation | +| Dev Planning | plan validated ∧ `C_RESOURCES` pass | Implementation | +| Dev Planning | `C_RESOURCES` fail | Blocked (`resource: `) until Resource Decision resolves | | Dev Planning | plan exposes design gap | Design | | Implementation | complete claim + S12 current | QA | | QA | all ACs verified, zero open blockers | Tech Review | @@ -80,6 +87,7 @@ Each state maps to one Workflow module (Phase 1 build). Format per state: primar | Human Review | change requests | Implementation (loop `L_HUMAN`) | | Human Review | reject | Analysis | | Merged | release steps done | Released | +| any in-flight | required resource missing / skipped-but-required / unreachable → Resource Decision raised | Blocked (`resource: `) — cleared by the decision, stage resumes where it stopped | | any | unrecoverable error / ceiling breach | Blocked | ## 4. Guards @@ -91,8 +99,9 @@ Each state maps to one Workflow module (Phase 1 build). Format per state: primar | `C_LOOP_OK(loop)` | `Loop Count` < ceiling for that loop. | | `C_SLOT_FREE` | In-flight BRDs (Status between Analysis and Human Review) < 3. | | `C_SECTIONS(ids)` | Required BRD sections exist and are non-empty. | -| `C_MANIFEST` | Project's `project-manifest.yaml` exists, schema-valid, `onboarding.status: complete`, required integrations `validated`, `last_validated` ≤ 30 days (else re-validate first). Checked at every BRD pickup. | +| `C_MANIFEST` | Toolkit Registry present ([toolkit-registry](toolkit-registry.md)); `project-manifest.yaml` exists, `manifest_version` current (older → Manifest Gate runs Migration first, automatically), schema-valid, `onboarding.status: complete`, `resources.status: bound` with required bindings validated and `health: ok` ([project-manifest](project-manifest.md) §3), required integrations `validated`, `last_validated` ≤ 30 days (else re-validate first). Checked at **session entry for any project work — pickup and resume alike**. | | `C_CONTRACT` | Screen-contract validation passes for the BRD's owned screens ([../Checklists/screen-contract.md](../Checklists/screen-contract.md) — all six checks). Checked at Dev Planning entry. Fail → stop + missing-mappings report + route to owning stage. | +| `C_RESOURCES` | Every registry slot the plan implies is bound and healthy: repos named by S10/S11, design file behind Design blocks, APIs' backing repo, doc targets the plan writes to. Checked at **Dev Planning exit** — moves resource gaps to the cheapest stop point instead of mid-Implementation. Fail → Resource Decision ([project-manifest](project-manifest.md) §3). | A forward transition fires only when its guard conjunction holds; otherwise the stage's failure path runs (retry → escalate → Blocked). diff --git a/Checklists/screen-contract.md b/Checklists/screen-contract.md index e948781..4ef6604 100644 --- a/Checklists/screen-contract.md +++ b/Checklists/screen-contract.md @@ -9,7 +9,7 @@ ## Design mapping (per owned screen) - [ ] Design block complete: DS components + tokens listed; states designed listed -- [ ] Figma mapping present when `manifest.design.figma_file` non-null (frame + component refs); prototype mapping otherwise (§4 Figma-optional rule) +- [ ] Figma mapping present when `manifest.resources.figma.product_design_file` bound (frame + component refs); prototype mapping otherwise ([screen-contract](../Architecture/screen-contract.md) §4 Figma-optional rule) - [ ] Figma and prototype agree where both exist (divergence = design-qa finding, not a tick) ## Frontend mapping (per approved screen) diff --git a/Documentation/CHANGELOG.md b/Documentation/CHANGELOG.md index 7f559bc..61f0b6a 100644 --- a/Documentation/CHANGELOG.md +++ b/Documentation/CHANGELOG.md @@ -4,6 +4,43 @@ All notable toolkit changes. Format: [Keep a Changelog](https://keepachangelog.c ## [Unreleased] +## [1.5.0] — 2026-08-21 + +**Project Resource Binding** — every project explicitly owns and binds its external resources; the toolkit never searches the user's workspace once a project is onboarded. + +### Added — architecture (flow-review hardening) +- `Architecture/ecosystem-map.md` — **Ecosystem Map**: concept-level bridge between this toolkit and the `paul` / `gsd-*` / `carl-mcp` systems the user also runs (equivalence table, state-ownership boundaries). Informational — no runtime dependency, not executed by the orchestrator. +- `Architecture/toolkit-registry.md` — **Toolkit Registry** (`~/.toolkit/registry.yaml`): user-global config layer owning the BRD DB identity (one DB, all projects = toolkit-level resource), projects parent page, bot presence. Written at one-time setup; inherited by every manifest. Kills the registration↔binding bootstrap circularity — step 0 reads it, never searches. +- **Resource lifecycle model** (`project-manifest.md` §3): `binding` (disposition — immutable decision) split from `health` (`ok`/`unreachable` — runtime, restamped by validation). One **Resource Decision** primitive (connect / create / confirm-absence) covers missing, skipped-but-required, and unreachable slots; per-slot **absence behavior** table generalizes the Figma prototype-only rule; rebind-fallout + rebind-logging rules. +- **Manifest Gate pipeline** (`orchestrator.md` responsibility 0): fixed order — Toolkit Registry → manifest → **version migration** → staleness → C_MANIFEST — at session entry, pickup and resume alike. `Migration (v1→v2)` is now an orchestrator-triggered, seeded, resumable procedure (`project-onboarding.md` §Migration, with per-field seeding table); the "v1 remains pickable" contradiction removed. +- **State machine**: `Blocked Reason` taxonomy (typed: `resource:` / `paused-by-user` / `ceiling:` / `ambiguity:` / `error:`); missing-resource transition (any in-flight → Blocked, resumable, fires Telegram trigger); new guard **`C_RESOURCES`** at Dev Planning exit (plan-implied slots must be bound + healthy — gaps stop at the cheap point, not mid-Implementation). +- **Onboarding end-to-end fixes**: step 0 reads the registry + creates the identity page (circularity gone); GitHub create-new pushes so the default branch exists for validation; step 6 writes `incomplete`, step 9 scaffolds CI + pushes + applies branch protection (`gh api`, actor defined) + stamps complete; unified rebind rule (any mutation = step 3+4+5 for the slot); re-open phrases defined as say-to-Claude routes; Telegram yes-path made executable (user creates chat, `getUpdates` discovery, test-send after manifest write, failure → `deferred` without consuming ask-once). +- Screen contract: pre-existing screens seed as `implemented (pre-toolkit)` (backfill-on-claim rule); §4 keys off "no **healthy** Figma binding"; multi-repo BRD branch/PR contract (`integration-map.md` §3). + +### Added +- `Architecture/project-manifest.md` §3 — **Project Resource Registry**: `resources:` block (manifest_version 2) as the sole home of external resource identity. Slots per provider — Notion (BRD DB **required**, project page, sprint/decision-log DBs), Figma (product design file, design-system library), GitHub (frontend/backend — ≥1 **required** — + optional infrastructure repo), documentation (API/architecture/product), communication (Telegram, stable `communication.*` path kept for the plugin), other MCP-backed resources. Uniform binding record: **stable identifier** (database id / file key / numeric repo id / chat id — never display names) + `binding: connected | created | skipped` + `bound`/`validated` stamps. Explicit-skip rule: optional slots are resolved or skipped, never silently absent, never re-asked, never guessed. +- `Architecture/integration-map.md` §2b — **Project Boundary Rule (hard)**: after onboarding, orchestrator + workflows access only registry resources; workspace-wide Notion search, Figma browsing, and repo listing are forbidden. Missing resource → stop + *connect existing / create new* offer (targeted rebind). §6 gains a per-integration boundary-scope column. +- `Workflows/project-onboarding.md` step 3 — **Project Resource Binding stage**: per-slot Connect Existing / Create New / Skip table with per-provider stable-ID resolution; step 5 binding validation with verbatim `✓ / ○ Skipped` checklist; "After Onboarding — the Boundary Holds" section. Communication step (v1.4 7b) folded into the binding stage; asked-once rule unchanged. +- `AI/orchestrator.md` responsibility 0b + anti-rule — resource-boundary enforcement: registry-scoped access, connect/create escalation, S16 logging. +- Manifest v1→v2 migration path (`project-manifest.md` §1): first pickup offers a binding re-run seeded from existing `notion.*`/`design.*`/`git.repository` values. + +### Changed +- `Architecture/project-manifest.md` — `design:` reduced to code-side config (figma resource identity → `resources.figma`); `notion:` block dissolved into `resources.notion`; `git:` keeps behavior only (`primary_repository` names the manifest-hosting repo slot; identity → `resources.github`); consumption rule 2 (registry-only access) + validation §5 require `resources.status: bound` and stable ids. +- `Architecture/workflow-state-machine.md` — `C_MANIFEST` now also requires `resources.status: bound` with required bindings validated. +- `Workflows/integration-validation.md` — checks resolve via registry ids; new registry re-check row (staleness re-validates bindings, restamps `resources.*.validated`); validation never becomes workspace discovery. +- `Templates/project-configuration.md` — Design/Notion/Git resource questions replaced by a Project Resource Binding section (connect/create/skip per slot); Git Behavior section retains strategy-only fields. +- `Architecture/screen-contract.md` §4 + `Checklists/screen-contract.md` — Figma-optional rule keys off `resources.figma.product_design_file` binding. +- `AI/mcp-setup.md` — Notion toolset drops `notion-search` (boundary); Figma MCP applicability keyed to the registry binding, not BRD mentions; all rows note registry scope. +- `Architecture/context-package.md` — `design.md` source of truth includes `resources.figma.*`. +- `extensions/telegram/README.md` — setup points at the Resource Binding stage; re-open phrases limited to the sanctioned two. +- `Documentation/onboarding.md`, `README.md` — Resource Binding + boundary as first-class architecture concepts; v1.5.0 pins. + +### Fixed +- `extensions/telegram/telegram-plugin.mjs` — manifest reader now strips surrounding quotes from values; previously `chat_id: "-100…"` (as the schema shows) yielded literal quote characters — every send targeted an invalid chat and the allow-list never matched. +- Manifest schema — undefined `notifications.pipeline` flag removed (no event type maps to it; `failures` already covers pipeline-failed). +- `extensions/telegram/telegram-plugin.mjs` — project-name reader now strips inline comments and surrounding quotes; `name: "My Project"` previously reached every notification with literal quote characters. +- `extensions/telegram/telegram-plugin.mjs` — dead `pipeline: true` key dropped from the notifications default (only `approvals` and `failures` are read). + ## [1.4.1] — 2026-07-26 ### Changed diff --git a/Documentation/module-index.md b/Documentation/module-index.md index 4b881b3..6e5db69 100644 --- a/Documentation/module-index.md +++ b/Documentation/module-index.md @@ -7,12 +7,14 @@ Every module, one line. Load only what the task needs — this index is the map, - [permission-matrix](../Architecture/permission-matrix.md) — 16 roles × 16 sections rights; cross-domain `Affects:` protocol - [workflow-state-machine](../Architecture/workflow-state-machine.md) — 13-stage lifecycle: transitions, guards, loops, gates, parallelism - [design-state-machine](../Architecture/design-state-machine.md) — design sub-machine (states 01–11), artifacts→BRD remapping -- [integration-map](../Architecture/integration-map.md) — Notion↔Claude↔Git wiring, naming contracts, knowledge layers, onboarding +- [integration-map](../Architecture/integration-map.md) — Notion↔Claude↔Git wiring, naming contracts, knowledge layers, Project Boundary Rule (§2b), onboarding - [versioning](../Architecture/versioning.md) — semver, submodule pin/upgrade, compatibility promise -- [project-manifest](../Architecture/project-manifest.md) — per-project config contract; `C_MANIFEST` gates all BRD work +- [project-manifest](../Architecture/project-manifest.md) — per-project config contract + Project Resource Registry (stable-ID bindings, health, Resource Decision, §3); `C_MANIFEST` gates all BRD work +- [toolkit-registry](../Architecture/toolkit-registry.md) — user-global config (`~/.toolkit/registry.yaml`): BRD DB identity, projects parent page; inherited by every manifest - [screen-contract](../Architecture/screen-contract.md) — SCR registry + 5 mapping blocks; `C_CONTRACT` gates Dev Planning - [stack-profiles](../Architecture/stack-profiles.md) — manifest stack → applicable Standards + honest gaps - [context-package](../Architecture/context-package.md) — generated `context/` session-bootstrap summaries (derived cache, never edited) +- [ecosystem-map](../Architecture/ecosystem-map.md) — concept bridge to paul/gsd-core/carl (informational only, no runtime dependency) ## AI/ (runtime) - [CLAUDE-global](../AI/CLAUDE-global.md) — per-project entry contract + CLAUDE.md stub diff --git a/Documentation/notion-setup.md b/Documentation/notion-setup.md index af5bbaf..447a274 100644 --- a/Documentation/notion-setup.md +++ b/Documentation/notion-setup.md @@ -70,6 +70,10 @@ and report what you built with links. Verify against §1 before first real use (option spelling matters — the orchestrator matches values exactly). +## 3b. Write the Toolkit Registry (required — closes the setup) + +Immediately after the DB exists (created or connected), record its identity in the **Toolkit Registry** — `~/.toolkit/registry.yaml` per [toolkit-registry](../Architecture/toolkit-registry.md): database id, data source, workspace; optionally a projects parent page (durable home for project identity pages — recommended if you register projects before their repos exist). Project registration and Resource Binding read this file; **without it, onboarding stops at step 0 by design** — the toolkit never searches your workspace to find the DB. On a new machine, re-run this section against the existing DB (connect, not create). + ## 4. Invariants (re-stated from schema) - Status values are machine states — never rename casually (rename = toolkit major version). diff --git a/Documentation/onboarding.md b/Documentation/onboarding.md index 1635e1f..4d1d12c 100644 --- a/Documentation/onboarding.md +++ b/Documentation/onboarding.md @@ -1,6 +1,7 @@ # Onboarding — New Project in ~10 Minutes -> Prereqs (once ever): BRD database exists ([notion-setup](notion-setup.md)); toolkit repo has a remote; `gh auth status` ✅; Notion MCP connected ([mcp-setup](../AI/mcp-setup.md)). +> Estimate covers steps 1–3 below; the first BRD (§4) is its own, longer exercise — it proves the loop, not the clock. +> Prereqs (once ever): BRD database exists **and the Toolkit Registry is written** (`~/.toolkit/registry.yaml` — both per [notion-setup](notion-setup.md); onboarding stops without the registry, by design); toolkit repo has a remote; `gh auth status` ✅; Notion MCP connected ([mcp-setup](../AI/mcp-setup.md)). ## 1. Pin the toolkit @@ -11,22 +12,41 @@ cd toolkit && git fetch --tags && git checkout && cd .. git add .gitmodules toolkit && git commit -m "chore: pin toolkit " ``` -## 2. Wire Claude +## 2. Run the onboarding workflow (mandatory — nothing runs without it) -- Copy the stub block from [AI/CLAUDE-global.md](../AI/CLAUDE-global.md) into the project's `CLAUDE.md`; fill: project name, project code (`` for BRD IDs), Notion DB name + Project select value, stack one-liners. -- Create empty `project-overrides.md` at repo root with the header: *"Sanctioned deviations from toolkit Standards/. Every entry: rule overridden → replacement → why."* +```text +Run toolkit/Workflows/project-onboarding.md for this project. +``` + +The workflow interviews once, detect-first, and produces the manifest. It opens with **registration** (step 0 — project name, code, identity; reads the BRD DB from the Toolkit Registry; if you already registered via the README's pre-repo Step 0, it just confirms). Its core stage is **Project Resource Binding**: for every supported resource — Notion (BRD database, project page, optional sprint / decision-log databases), Figma (product design file, design-system library), GitHub (frontend / backend / optional infrastructure repos), documentation (API / architecture / product), Telegram, other MCP-backed resources — you choose: + +- **Connect Existing** — point at what you already have; the toolkit resolves and stores the **stable identifier** (database ID, file key, repo ID, chat ID — never a display name), or +- **Create New** — the toolkit creates it for you (BRD DB per [notion-setup](notion-setup.md), `gh repo create`, Figma file, doc scaffold), or +- **Skip** — optional slots only; recorded explicitly and never re-asked proactively. (If work later genuinely needs a skipped resource, you get exactly one connect / create / confirm-absence decision — never a guess.) -## 3. Wire Notion +Everything bound is access-validated before onboarding can finish: + +``` +✓ Notion BRD Database accessible +✓ Figma Product Design File accessible +✓ GitHub frontend repository accessible +✓ Telegram connected +○ Skipped: infrastructure repo, sprint DB +``` -- Add the project to the DB's `Project` select options. -- That's all — pages created from the DB template are born conformant. +Required bindings (BRD database, ≥1 GitHub repo) failing → onboarding stays incomplete and tells you what unblocks it. -## 4. Wire Git +**Why binding matters:** the resulting registry is a hard boundary. After onboarding, the toolkit only ever touches what's registered — it never searches your Notion workspace, browses your Figma teams, or lists your GitHub repos ([Project Boundary Rule](../Architecture/integration-map.md) §2b). If a stage ever needs something unregistered, it stops and asks you to connect or create it — it never guesses. -- Protect `main`: PR-only + required CI ([git-strategy](../Standards/git-strategy.md) rule 11). Solo repos too. -- CI runs minimum: typecheck, lint, test, build. +The workflow also scaffolds for you: project `CLAUDE.md` block, `project-overrides.md` (*"Sanctioned deviations from toolkit Standards/. Every entry: rule overridden → replacement → why."*), `screens/registry.md` with optional seeded screens, and `context/` summaries. Its closing step (9) **pushes created repos, scaffolds CI** (minimum: typecheck, lint, test, build) where none exists, **applies branch protection** (PR-only + required CI, per [git-strategy](../Standards/git-strategy.md) rule 11 — the orchestrator does this via `gh api`, solo repos too), commits the lot, and only then stamps onboarding complete. -## 5. First BRD (the real onboarding test) +If you enabled Telegram: **start the daemon** ([extension README](../extensions/telegram/README.md) Setup 4) — without it, notifications spool but never send. + +## 3. Verify Git wiring + +Onboarding applied protection for you — verify: PRs required on `main`, CI checks listed as required. Adjust in repo settings only via `project-overrides.md`-sanctioned deviations. + +## 4. First BRD (the real onboarding test) 1. New page from DB template → fill [feature-request](../Templates/feature-request.md) seed → `Ready` ✓. 2. Start a Claude session in the project: @@ -36,12 +56,18 @@ git add .gitmodules toolkit && git commit -m "chore: pin toolkit " ``` 3. Follow the machine: it will run stages, stop at your three gates (Direction → Design → Final), and close with S15. First run, pick something small — the point is proving the loop, not shipping big. -## 6. Health signs (first BRD retro-lite) +## 5. Health signs (first BRD retro-lite) - ✅ Every stage exit wrote S16; you can reconstruct the run from the BRD alone. - ✅ Gates presented decision packages (not "approve?" blobs). - ✅ No content written outside matrix rights; findings landed at discovery time. +- ✅ Every external touch (Notion page, Figma file, repo) was a registry resource — nothing outside the binding. - ⚠️ Claude improvised a missing input instead of bouncing → that's an orchestrator-contract violation; note it, tighten with [prompt-improvement](../Prompts/prompt-improvement.md). +- ⚠️ Claude searched the workspace for an unbound resource instead of asking connect-or-create → boundary violation; same treatment. + +## Project evolves — rebind, don't re-onboard + +New Figma file, moved database, extra repo → targeted re-run of the Resource Binding slot (`toolkit onboard --update`). Un-skipping a slot works the same way. Full re-onboarding only when the manifest is untrusted. ## Upgrading a project later @@ -49,7 +75,7 @@ git add .gitmodules toolkit && git commit -m "chore: pin toolkit " cd /toolkit && git fetch --tags && git checkout && cd .. git add toolkit && git commit -m "chore: upgrade toolkit -> " ``` -Major bumps: read the CHANGELOG migration notes first ([versioning](../Architecture/versioning.md)). In-flight BRDs finish under their pinned version unless you decide otherwise (log in S16). +Major bumps: read the CHANGELOG migration notes first ([versioning](../Architecture/versioning.md)). Projects on manifest v1 (pre-v1.5): first pickup offers the Resource Binding migration — existing manifest URLs seed the registry, stable IDs get resolved and validated ([project-manifest](../Architecture/project-manifest.md) §1). In-flight BRDs finish under their pinned version unless you decide otherwise (log in S16). ## Removing / resetting diff --git a/README.md b/README.md index d55e14b..8508243 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A reusable AI product-development operating system for solo builders working with Claude, Notion, and Git. It turns feature development into a deterministic 13-stage state machine with living documents, hard quality gates, and full resumability — any session can die at any moment and the next one picks up exactly where it left off. -**Version: v1.4.1** · consumed by projects as a version-pinned git submodule · improve a rule once here, every project inherits it at its next pin bump. +**Version: v1.5.0** · consumed by projects as a version-pinned git submodule · improve a rule once here, every project inherits it at its next pin bump. --- @@ -24,21 +24,24 @@ A reusable AI product-development operating system for solo builders working wit │ reads config │ reads/writes state │ loads process ┌───────▼────────────┐ ┌───────▼────────────┐ ┌───────▼─────────────────────┐ │ PROJECT MANIFEST │ │ LIVING BRD │ │ Workflows/ (15 stages) │ -│ project repo │ │ Notion, per feature│ │ Skills/ (16 roles) │ -│ │ │ properties = state │ │ Standards/ Templates/ │ +│ + RESOURCE REGISTRY│ │ Notion, per feature│ │ Skills/ (16 roles) │ +│ project repo │ │ properties = state │ │ Standards/ Templates/ │ │ SCREEN CONTRACT │ │ S01–S16 = content │ │ Checklists/ Prompts/ │ │ project repo │ │ │ │ Playbooks/ │ └────────────────────┘ └─────────▲──────────┘ └─────────────────────────────┘ - │ MCP + │ MCP (registry-scoped) External services: Notion (MCP) · GitHub (gh) · - browser (prototype review) · your project repo + browser (prototype review) · your project repo(s) + — only resources BOUND in the registry, never the + whole workspace (Project Boundary Rule) ``` -The orchestrator is the only component that advances state. Everything it needs to resume lives in the three sources of truth — never in the session. Full wiring: [Architecture/integration-map.md](Architecture/integration-map.md). +The orchestrator is the only component that advances state. Everything it needs to resume lives in the three sources of truth — never in the session. External access is scoped to the Project Resource Registry — the toolkit never searches your workspace once a project is onboarded. Full wiring: [Architecture/integration-map.md](Architecture/integration-map.md). ## Design Philosophy - **Single source of truth** — every fact has exactly one home (manifest, BRD, or Screen Contract). Workflows consume, never re-ask, never duplicate. +- **Explicit resource ownership** — every project **binds** its external resources (Notion DBs, Figma files, repos, docs, chats) at onboarding, by stable identifier. The registry is a hard boundary: the toolkit touches only what's bound, and asks connect-or-create when something's missing — it never searches your workspace, never guesses. ([Architecture/project-manifest.md](Architecture/project-manifest.md) §3) - **AI executes, human directs** — Claude runs all 13 stages; you decide at three gates. See [Decision Boundaries](#decision-boundaries). - **Stage-based development** — features move through a gated state machine with checklisted exits, not freeform prompting. - **Resume from state, not session** — machine position is reconstructed from Notion properties + the S16 Decision Log. Kill any session, nothing is lost. @@ -53,7 +56,7 @@ The orchestrator is the only component that advances state. Everything it needs | Artifact | Truth for | Lives in | |----------|-----------|----------| -| `project-manifest.yaml` | project configuration (stack, design, integrations, git) | project repo | +| `project-manifest.yaml` | project configuration + **Resource Registry** (every bound external resource, by stable ID) | project repo | | **Living BRD** (one Notion page per feature) | requirements, decisions, progress, history | Notion database | | **Screen Contract** (`screens/`) | design → development traceability per screen | project repo | @@ -79,7 +82,8 @@ What actually happens when you say "pick up the ready BRD" — every stage, ever User request ↓ Workflow Orchestrator (AI/orchestrator.md) - ↓ manifest gate: load + validate project-manifest.yaml + ↓ manifest gate: load + validate project-manifest.yaml (incl. bound Resource Registry) + ↓ boundary: all external access resolves through the registry — nothing outside it ↓ load Living BRD — properties give exact machine position ↓ check Screen Contract (blocks Dev Planning if mappings incomplete) ↓ load the stage's Workflow + Skill + referenced Standards, at routed model tier @@ -101,8 +105,9 @@ The orchestrator loads only what the current stage needs; nothing global sits in Layer 1 · CORE ENGINE orchestrator, state machines, model routing fires transitions, enforces gates — the only writer of machine state ↓ -Layer 2 · PROJECT CONFIGURATION project-manifest.yaml, project-overrides.md - tells the engine what this project is; validated before any work +Layer 2 · PROJECT CONFIGURATION project-manifest.yaml (config + Resource + Registry), project-overrides.md — tells the engine what this project + is and which external resources it OWNS; validated before any work ↓ Layer 3 · DEVELOPMENT SYSTEM Living BRD, Screen Contract, Workflows, Skills, Standards — what each stage does and to what quality bar @@ -111,7 +116,8 @@ Layer 4 · COMMUNICATION extensions/ — Telegram v1 (Slack/Discord possible later); adapters that relay gates, never advance state ↓ Layer 5 · EXTERNAL SERVICES Notion (MCP), GitHub (gh), browser - where state, code, and review surfaces physically live + where state, code, and review surfaces physically live — reached + only through Layer-2 registry bindings (Project Boundary Rule) ``` Lower layers never depend on higher ones; extensions and services are replaceable without touching the engine. @@ -121,25 +127,29 @@ Lower layers never depend on higher ones; extensions and services are replaceabl ## One-Time Setup (once ever, ~15 min) 1. **Requirements:** Claude Code (or Claude with MCP), Node 18+, `gh` CLI authenticated, Notion MCP connected. -2. **Create the BRD database** — one database for all projects. Say to Claude: +2. **Create the BRD database + Toolkit Registry** — one database for all projects. Say to Claude: ```text - Create the BRD database per toolkit Documentation/notion-setup.md. + Create the BRD database per toolkit Documentation/notion-setup.md, + then write the Toolkit Registry (§3b). ``` - (Exact properties, views, and page scaffold: [Documentation/notion-setup.md](Documentation/notion-setup.md).) + The registry (`~/.toolkit/registry.yaml`) records the DB's identity so no project ever searches for it. (Exact properties, views, scaffold: [Documentation/notion-setup.md](Documentation/notion-setup.md); registry contract: [Architecture/toolkit-registry.md](Architecture/toolkit-registry.md).) 3. **Optional — Telegram gate approvals on your phone:** create a bot via @BotFather, `export TELEGRAM_BOT_TOKEN=…` in your shell profile. Wiring happens per-project at onboarding. ([extensions/telegram/README.md](extensions/telegram/README.md)) --- ## Start a Project -### Step 0 — Register (repo optional at this point) +### Step 0 — Register (optional here; repo not needed yet) + +In any session that has the toolkit on disk (your Dev-toolkit clone works): ```text Register a new project per toolkit project-onboarding step 0: -name , code , , stage , stack . +name , code , "", , +stage , stack . ``` -Identity + BRD-ID code reserved in Notion. A registered project with no repo yet is a valid resting state. +Identity + BRD-ID code reserved in Notion (via the Toolkit Registry). A registered project with no repo yet is a valid resting state. Skipping this is fine — onboarding (Step 2) runs registration as its own step 0. ### Step 1 — Repo + pin @@ -149,8 +159,8 @@ npx create-next-app@latest --typescript --tailwind --eslint --app --sr cd git submodule add https://github.com/Chheng64/Dev-toolkit.git toolkit -cd toolkit && git fetch --tags && git checkout v1.4.1 && cd .. -git add -A && git commit -m "chore: pin toolkit v1.4.1" +cd toolkit && git fetch --tags && git checkout v1.5.0 && cd .. +git add -A && git commit -m "chore: pin toolkit v1.5.0" ``` ### Step 2 — Onboard (mandatory; nothing runs without it) @@ -159,7 +169,7 @@ git add -A && git commit -m "chore: pin toolkit v1.4.1" Run toolkit/Workflows/project-onboarding.md for this project. ``` -~5 minutes: detects your stack (asks only what it can't detect) → validates every integration and URL → seeds known screens with stable Screen IDs → generates `project-manifest.yaml` + `context/` (AI session-bootstrap summaries) → asks about Telegram **once** (yes / no / later — "later" is never re-asked) → commits. Then push and protect `main` (PR-only + CI). +~5–10 minutes: detects your stack (asks only what it can't detect) → **Project Resource Binding**: for every supported resource — Notion BRD DB (required, inherited from the Toolkit Registry) + project page (+ optional sprint / decision-log DBs), Figma design file + DS library, GitHub repos (frontend/backend — at least one required — + optional infra), API/architecture/product docs, Telegram (asked **once**: yes / no / later — "later" is never re-asked), and any other MCP-backed resources — you **connect an existing** one, have the toolkit **create a new** one, or **skip** (optional slots; recorded, never re-asked); stable IDs (never display names) land in the Resource Registry → validates every integration and binding (`✓ Notion BRD Database accessible`, `✓ GitHub repository accessible`, …) → generates `project-manifest.yaml` → seeds known screens with stable Screen IDs → generates `context/` (AI session-bootstrap summaries) → **pushes, scaffolds CI if absent, protects `main` (PR-only + required CI), commits, and stamps complete**. From then on the toolkit touches **only registry resources** — it never searches your workspace. ### Step 3 — First BRD @@ -185,6 +195,7 @@ The machine runs. You'll be stopped at the Direction Gate first: a summary of th | Something's broken | `Run toolkit/Workflows/debug.md on: ` | | Production emergency | `Run the hotfix playbook: ` | | Project config changed | `toolkit onboard --update` (targeted re-onboarding) | +| New/moved external resource (DB, Figma file, repo, doc) | `toolkit onboard --update` — rebind that slot (connect existing / create new) | | Enable/change Telegram | `toolkit configure communication` | Up to **3 BRDs run in parallel** (one branch + one PR each); the orchestrator serializes anything whose planned code areas overlap. @@ -219,6 +230,7 @@ Approvals are scoped to what you saw — if gated content changes afterward, the - Silent deviation from plan is forbidden — deviate and log, or route back. - Reviews cover 7 dimensions (correctness, standards, security, performance, accessibility, DS conformance, plan conformance) on every diff. - Screens carry stable **SCR-IDs** from onboarding through QA (`C_CONTRACT` blocks implementation on incomplete mappings). +- External access stays inside the **Project Resource Registry** — a missing resource stops the stage with a connect-or-create ask; workspace searching and guessing are defects. - Approvals are scoped to what you saw — content changes revoke them automatically. - Model routing: heavyweight reasoning (Opus-tier) only where wrong judgment cascades — Planning, UX, Dev Planning, Review; mechanical work rides cheap tiers. ([AI/model-routing.md](AI/model-routing.md)) @@ -240,7 +252,7 @@ Dependencies point **down toward `Architecture/`** — it depends on nothing; `P | Dir | Purpose | Depends on | Edit when | Claude loads | |-----|---------|-----------|-----------|--------------| -| [Architecture/](Architecture/) | Contracts: BRD schema (S01–S16), permission matrix, state machines, manifest, screen contract, stack profiles, versioning | nothing (foundation) | contract changes — semver-gated | always (via orchestrator) | +| [Architecture/](Architecture/) | Contracts: BRD schema (S01–S16), permission matrix, state machines, manifest + Resource Registry, toolkit registry, screen contract, stack profiles, versioning | nothing (foundation) | contract changes — semver-gated | always (via orchestrator) | | [AI/](AI/) | Runtime: orchestrator, entry contract, BRD update protocol, model routing, MCP setup | Architecture | runtime behavior changes | every session entry | | [Workflows/](Workflows/) | 15 stage procedures (analysis → release, debug, onboarding) | Architecture | a stage's procedure improves | per stage | | [Skills/](Skills/) | 16 roles with decision boundaries | Architecture | a role's judgment improves | per stage | diff --git a/Templates/project-configuration.md b/Templates/project-configuration.md index 1537542..3c0343b 100644 --- a/Templates/project-configuration.md +++ b/Templates/project-configuration.md @@ -1,6 +1,6 @@ # Template — Project Configuration (Onboarding Interview) -> **Use:** [project-onboarding workflow](../Workflows/project-onboarding.md) step 1. Detect-first: fields marked ⚙ are auto-detected from the repo and only confirmed. Answers land in [project-manifest.yaml](../Architecture/project-manifest.md) — this template never becomes a standalone document. +> **Use:** [project-onboarding workflow](../Workflows/project-onboarding.md) steps 0–3 + 7 (Registration · Collect · Resource Binding · Screens seed). Detect-first: fields marked ⚙ are auto-detected from the repo and only confirmed. Answers land in [project-manifest.yaml](../Architecture/project-manifest.md) — this template never becomes a standalone document. ```markdown ## Project Registration (step 0 — may run BEFORE the repo exists; recorded in Notion immediately) @@ -16,34 +16,50 @@ ## Technology Stack ⚙ detect from package.json / lockfile / config files first - Frontend: nextjs | react | vue | angular | flutter | react-native | android | ios | none | other: - Backend: nestjs | laravel | aspnet | go | spring-boot | firebase | supabase | none | other: -- Database: postgresql | mysql | mongodb | firebase | supabase | sqlite | none +- Database: postgresql | mysql | mongodb | firebase | supabase | sqlite | none | other: - Styling: tailwind | material-ui | chakra | custom-ds | other: - Package manager: pnpm | npm | yarn | bun ⚙ lockfile -## Design Configuration (null = prototype-only design flow) -- Figma file URL: -- Figma page(s): -- Design-system file URL: +## Design Configuration (code-side) ⚙ all detectable - Component library (code): ⚙ e.g. shadcn/ui from deps - Design token source: ⚙ e.g. src/styles/globals.css @theme - Icon library: ⚙ from deps - Typography source: ⚙ e.g. next/font -## Notion Configuration -- Workspace: -- BRD database URL (required): -- Project database URL (optional): -- Sprint database URL (optional): -- Decision-log database URL (optional — default: in-BRD S16): +## Project Resource Binding (step 3 — every slot: [connect] existing / [create] new / [skip] if optional) +### Notion +- BRD Database (REQUIRED): connect | create per notion-setup +- Project Page: connect | create | skip +- Sprint Database: connect | create | skip +- Decision-log Database: connect | create | skip (default: in-BRD S16) +### Figma (skip both = prototype-only design flow) +- Product Design File: connect | create | skip + - Pages in scope (if bound): +- Design System Library: connect | create | skip +### GitHub (≥1 of frontend/backend REQUIRED; monorepo → same repo both slots) ⚙ git remote +- Frontend Repository: connect | create | skip +- Backend Repository: connect | create | skip +- Infrastructure Repository: connect | create | skip +- Primary repository (hosts manifest, toolkit pin, screens/): frontend | backend | infrastructure +### Documentation (each: notion-page | repo-path | url) +- API Documentation: connect | create | skip +- Architecture Documentation: connect | create | skip +- Product Documentation: connect | create | skip +### Communication (asked ONCE — "skip" is never re-asked) +- Telegram: yes (connect chat / create chat) | no | configure later + - Mode: private | group | topic (recommended) + - chat_id / topic_id: (resolved at bind time; token stays in TELEGRAM_BOT_TOKEN env) +### Other +- Additional MCP-backed resources (name + MCP server + stable id each): + - … -## Git Configuration ⚙ detect from git remote / repo settings -- Repository URL: -- Default branch: +## Git Behavior (step 1) ⚙ detect from repo settings - Branch naming: (toolkit default feat/- unless overridden) - PR strategy: squash | merge | rebase - Release strategy: tag | vercel | manual-deploy | none +- (Per-repo default branch is confirmed at step 3 as each repo is bound — not asked here) -## Initial Screens (optional seed — Screen Contract init, step 6) +## Initial Screens (optional seed — Screen Contract init, step 7) - Known top-level screens to register now (name + route each; product-type defaults offered, e.g. website → Home /, Settings /settings): - — / @@ -52,7 +68,9 @@ ## Rules -- Every URL answer gets access-validated before entering the manifest (onboarding step 4) — no unchecked links. -- `other:` anywhere → stack-profile gap warning surfaced immediately, not at Dev Planning. -- Optional Notion databases left null cost nothing — S16-in-BRD is the default decision log; don't create ceremony databases without need. -- Re-onboarding uses only the affected section(s) of this template. +- Every **connect** answer resolves to a **stable identifier** before entering the manifest — Notion database/page id, Figma file key, GitHub numeric repo id, Telegram chat id. URLs are convenience pointers; display names are never stored ([project-manifest](../Architecture/project-manifest.md) §3). +- Every binding gets access-validated before entering the registry (onboarding step 5) — no unchecked links, no dead ids. +- Every **skip** is recorded in the registry's `skipped:` list — explicit, never re-asked, never guessed at runtime. +- `other:` anywhere in Stack → stack-profile gap warning surfaced immediately, not at Dev Planning. +- Optional Notion databases skipped cost nothing — S16-in-BRD is the default decision log; don't create ceremony databases without need. +- Re-onboarding uses only the affected section(s)/slot(s) of this template. diff --git a/Workflows/integration-validation.md b/Workflows/integration-validation.md index 958f43f..c10ed4a 100644 --- a/Workflows/integration-validation.md +++ b/Workflows/integration-validation.md @@ -1,29 +1,33 @@ # Workflow — Integration Validation -> **Module:** Workflows (v1.2) -> **Stage:** Per-project utility — runs inside [project-onboarding](project-onboarding.md) step 3, on manifest staleness (>30 days at pickup), after environment changes, or on demand. -> **Executor:** orchestrator. Writes only `manifest.integrations.*` + `last_validated`. +> **Module:** Workflows (v1.5) +> **Stage:** Per-project utility — runs inside [project-onboarding](project-onboarding.md) step 4, on manifest staleness (>30 days at pickup), after environment changes, or on demand. +> **Executor:** orchestrator. Writes only `manifest.integrations.*`, `manifest.resources.*.validated` + `manifest.communication.*.validated` stamps + `last_validated`. ## Purpose -Detect and validate every integration the toolkit relies on for this project; record results in the manifest; warn loudly about gaps. Stages then trust `manifest.integrations` instead of discovering failures mid-work. +Detect and validate every integration the toolkit relies on for this project; record results in the manifest; warn loudly about gaps. Stages then trust `manifest.integrations` instead of discovering failures mid-work. Two layers, both checked: **integrations** = tools available (this file's table); **resource bindings** = what those tools may touch ([Project Resource Registry](../Architecture/project-manifest.md) §3) — re-validated on the same staleness triggers. All checks stay inside the registry ([integration-map](../Architecture/integration-map.md) §2b) — validation never becomes workspace discovery. ## Checks | Integration | Required? | Check | On pass | On fail | |-------------|-----------|-------|---------|---------| -| Notion MCP | **yes** | fetch BRD DB; verify schema (property names + option values vs [brd-schema](../Architecture/brd-schema.md) §1) | `validated` | **block** — no BRD work possible; report exact schema drift if any | -| Git access (`gh` CLI) | **yes** | `gh auth status`; repo reachable; default branch exists | `validated` | **block** for pipeline; local-only work may continue with warning | +| Notion MCP | **yes** | fetch BRD DB **by registry id** (`resources.notion.brd_database.id`); verify schema (property names + option values vs [brd-schema](../Architecture/brd-schema.md) §1) | `validated` | **block** — no BRD work possible; report exact schema drift if any | +| Git access (`gh` CLI) | **yes** | `gh auth status`; every bound repo (`resources.github.*`) reachable by id; default branch exists | `validated` | **block** for pipeline; local-only work may continue with warning | | Filesystem/shell | **yes** | build tooling runs (` --version`, project builds or scaffold intact) | `validated` | **block** implementation stages | -| Figma MCP | if `design.figma_file` non-null | fetch declared file + pages | `validated` | warning — design stages run prototype-only ([screen-contract](../Architecture/screen-contract.md) §4); user told which mappings degrade | +| Figma MCP | if `resources.figma.product_design_file` bound | fetch bound file key + pages (+ design-system library if bound) | `validated` | warning — design stages run prototype-only ([screen-contract](../Architecture/screen-contract.md) §4); user told which mappings degrade | | Browser automation (browser/playwright MCP) | no | tool responds | `validated` | warning — QA loses automated browser walks; manual walk rules still apply | -| Other MCP declared in project CLAUDE.md | per declaration | tool responds | `validated` | warning + degradation note | +| Other MCP with registry entries (`resources.other[]`) | per binding | tool responds; bound identifier resolves | `validated` | warning + degradation note | +| **Resource bindings** (registry re-check) | required slots **yes** | each bound resource resolves via its stable identifier; `resources.*.validated` restamped | registry stays `bound`, `health: ok` | binding marked `health: unreachable` + **Resource Decision** raised ([project-manifest §3](../Architecture/project-manifest.md)): required slot → **block** (`C_MANIFEST` fails) until resolved; optional slot → decision may be deferred to first use (warning now, `Blocked (resource)` then) | +| Telegram binding | if `communication.telegram.enabled` | `telegram-plugin.mjs --test` send via stored `chat_id`/`topic_id`; `communication.telegram.validated` restamped | `validated` | `health: unreachable` + Resource Decision — gate notifications are silently lost until rebind or confirmed absence | + +**Skipped slots:** a deliberately skipped slot's tool check does not run; record `integrations.: n/a (skipped)`. Degradation rules apply to bound slots only — skip is a chosen mode, never reported as a failure. ## Procedure 1. Read manifest (or candidate config during onboarding). 2. Run each applicable check; **never fake a pass** — timeouts/errors record as `error:`. -3. Write results to `manifest.integrations.*`; stamp `onboarding.last_validated`. +3. Write results to `manifest.integrations.*`; restamp `manifest.resources.*.validated` for re-checked bindings; stamp `onboarding.last_validated`. 4. Report: table of results + consequences of each warning (which stage degrades how, per [mcp-setup](../AI/mcp-setup.md) degradation rules). 5. Any **required** check failed → project is not pickable (`C_MANIFEST` fails); say what unblocks it. @@ -40,3 +44,4 @@ Detect and validate every integration the toolkit relies on for this project; re - Warning fatigue by vagueness — a warning that doesn't name the degraded stage + behavior teaches nothing. - Treating optional-integration failure as blocking (or required as optional) — the table is the contract. - Validating the connection but not the *content* (Notion reachable ≠ BRD DB schema intact — schema drift is the dangerous one). +- "Fixing" a dead binding by searching the workspace for a similar-looking resource — that's a boundary violation; the fix is a connect/create re-bind, decided by the user. diff --git a/Workflows/project-onboarding.md b/Workflows/project-onboarding.md index 1f25a1f..e4f1d43 100644 --- a/Workflows/project-onboarding.md +++ b/Workflows/project-onboarding.md @@ -1,24 +1,26 @@ # Workflow — Project Onboarding -> **Module:** Workflows (v1.2) +> **Module:** Workflows (v1.5) > **Stage:** Per-**project** pre-pipeline — runs once before any BRD work; re-run per section when the project evolves. Not a BRD stage; no BRD Status involved. > **Executor:** orchestrator + user (interview) — no skill role; output is the manifest, not BRD content. -> **Hard rule:** `C_MANIFEST` — no BRD, workflow, or AI skill executes for a project until `onboarding.status: complete` in a validated [project-manifest](../Architecture/project-manifest.md). +> **Hard rule:** `C_MANIFEST` — no BRD, workflow, or AI skill executes for a project until `onboarding.status: complete` **and** `resources.status: bound` in a validated [project-manifest](../Architecture/project-manifest.md). ## Purpose -Establish all project metadata, validate every required integration, and generate the Project Manifest every workflow module consumes. One interview instead of fifty mid-stage questions. +Establish all project metadata, **bind every external resource the project owns** (Project Resource Binding), validate every required integration and binding, and generate the Project Manifest every workflow module consumes. One interview instead of fifty mid-stage questions — and after it, the toolkit never searches the user's workspace again ([Project Boundary Rule](../Architecture/project-manifest.md) §3). ## Inputs +- **Toolkit Registry** (`~/.toolkit/registry.yaml`, [toolkit-registry](../Architecture/toolkit-registry.md)) — hard prerequisite; missing → stop, point at one-time setup - Project repo (existing or empty) - User answers per [../Templates/project-configuration.md](../Templates/project-configuration.md) -- Access to: Notion MCP, `gh` CLI, Figma MCP (if design resources declared) +- Access to: Notion MCP, `gh` CLI, Figma MCP (if Figma resources will be bound) ## Outputs -- **Registration record** (Notion): code + name reserved in `Project` select; identity page in Project Database when declared -- `project-manifest.yaml` at repo root, complete + validated (`project.registered` stamped) +- **Registration record** (Notion): code + name reserved in `Project` select; identity page under the registry's projects parent page when configured +- **Project Resource Registry** (`manifest.resources`) — every supported resource slot explicitly `connected` / `created` / `skipped`, stable identifiers stored, all bindings access-validated +- `project-manifest.yaml` at primary repo root, complete + validated (`project.registered` stamped, `resources.status: bound`) - `screens/registry.md` — initialized registry; seeded screens (if any) as `planned`/`unassigned` with allocated SCR-IDs - `context/` — 5 generated summaries per [context-package](../Architecture/context-package.md) - `project-overrides.md` scaffold (if absent) @@ -27,48 +29,122 @@ Establish all project metadata, validate every required integration, and generat ## Procedure -0. **Project Registration** (v1.3 — runs BEFORE repository initialization; repo may not exist yet). Establish stable identity: Project Name, Code (2–4 uppercase, uniqueness-checked), Short Description, Product Type, Development Stage, intended Tech Stack. Record it durably in Notion immediately: reserve the code + name in the BRD DB `Project` select; write an identity page in the Project Database when the manifest declares one. Registration output seeds steps 1–5; the identity fields copy into `manifest.project.*` with `registered: ` at generation. A registered-but-not-yet-initialized project is a valid resting state — the repo can come days later; the identity and code allocations don't move. -1. **Collect** — walk the [project-configuration template](../Templates/project-configuration.md) sections: Project Info (pre-filled from registration) → Stack → Design → Notion → Git. Ask only for what can't be detected; **detect first** (package.json → stack + package manager; git remote → repository; existing tokens file → token source). Confirm detections, don't re-ask them. +0. **Project Registration** (v1.3; v1.5 — reads the [Toolkit Registry](../Architecture/toolkit-registry.md), runs BEFORE repository initialization; repo may not exist yet). Load `~/.toolkit/registry.yaml` — **missing → stop with the remedy** ("run one-time setup per README"); never search the workspace for the BRD DB. Establish stable identity: Project Name, Code (2–4 uppercase, uniqueness-checked against the registry-named BRD DB's `Project` select), Short Description, Product Type, Development Stage, intended Tech Stack. Record it durably in Notion immediately: reserve the code + name in the BRD DB `Project` select; when `registry.notion.projects_parent_page` is set, create the **identity page** there now (all six identity fields — the durable pre-repo home; its id becomes the `resources.notion.project_page` binding at step 3, `binding: created`). No parent page configured → identity lives in the select (code+name) until the manifest exists; recommend configuring one for register-now-repo-later projects. Registration output seeds steps 1–5; the identity fields copy into `manifest.project.*` with `registered: ` at generation. A registered-but-not-yet-initialized project is a valid resting state — the repo can come days later; the identity and code allocations don't move. + +1. **Collect** — walk the [project-configuration template](../Templates/project-configuration.md) Project Info (pre-filled from registration), Stack, Design Configuration (code-side), and Git Behavior sections. Ask only for what can't be detected; **detect first** (package.json → stack + package manager; git remote → candidate repository binding; existing tokens file → token source). Confirm detections, don't re-ask them. Resource questions belong to step 3, not here. + 2. **Resolve stack profile** — per [stack-profiles](../Architecture/stack-profiles.md); surface coverage gaps immediately (user should know what the toolkit won't cover before work starts). -3. **Validate integrations** — run [integration-validation](integration-validation.md) full pass. Failures on *required* integrations (Notion MCP, git access) block completion; optional ones (Figma, browser automation) record warnings. -4. **Validate resources** — every declared design resource fetch-checked (Figma file opens, DS file accessible); Notion databases exist and match expected schema (BRD DB checked against [brd-schema](../Architecture/brd-schema.md) §1 — property names + option values); git repository reachable + default branch exists. -5. **Generate manifest** — write `project-manifest.yaml` per schema; `onboarding.status: complete` only when §Completion passes. -6. **Initialize Screen Contract** (v1.3 — first-class step, not just a scaffold). Create `screens/registry.md`; set `manifest.screen_contract.next_id`. Then offer to **seed known screens now**: obvious top-level screens the product type implies (e.g. website → Home, Settings) plus any the user already knows. Each seeded screen gets a real `SCR-` row, status `planned`, owner `unassigned` — Screen IDs exist before any design or development begins; UI planning later *claims* rows (owner ← BRD) instead of creating them from zero. Seeding is optional and small — register what's known, never speculate a sitemap. -7. **Generate AI Context Package** (v1.3) — `context/` per [context-package](../Architecture/context-package.md): `design.md`, `stack.md`, `integrations.md`, `conventions.md`, `model-routing.md`. Generated summaries with source pointers; stamped with toolkit version + date. -7b. **Communication integrations** (v1.4 — asked ONCE, then never again). "Enable Telegram notifications for this project?" → Yes / No / Configure later. - - **Yes:** token via `TELEGRAM_BOT_TOKEN` env (global bot reused if already set — never stored in repo/manifest); mode private | group | **topic (recommended)**; collect `chat_id` (+ `topic_id` for topic mode); test-send "✅ has been successfully connected to the Dev Toolkit." (`telegram-plugin.mjs --test`) — test must succeed before `enabled: true`; save `communication.telegram` block to the manifest. - - **No / Configure later:** write `communication.telegram.enabled: false`. The toolkit never asks again — re-open only when the user explicitly says "toolkit configure communication" or "toolkit onboard --update" (targeted re-run of this step). - - Slack/Discord/email: future siblings, same shape; do not ask about them in v1. -8. **Scaffold & commit** — `project-overrides.md`, CLAUDE.md block. Commit: `chore: project onboarding — toolkit `. + +3. **Project Resource Binding** (v1.5 — mandatory stage). Walk every supported resource slot; for each, the user chooses **Connect Existing** or **Create New** (or **Skip** for optional slots — recorded explicitly, never re-asked proactively; only a stage that can't proceed without the slot may later raise one Resource Decision, [project-manifest §3](../Architecture/project-manifest.md)). Store **stable identifiers only** — database IDs, file keys, repo IDs, chat IDs; never display names ([project-manifest](../Architecture/project-manifest.md) §3 identifier table). + + | Provider | Slots | Required? | Connect Existing | Create New | + |----------|-------|-----------|------------------|------------| + | Notion | BRD Database | **yes** | **inherited from the [Toolkit Registry](../Architecture/toolkit-registry.md)** — confirmed, never re-asked | only if the registry has none (first project ever): create per [notion-setup](../Documentation/notion-setup.md), write to the registry first, then inherit | + | Notion | Project Page | optional | identity page from step 0 binds automatically; or resolve URL → page id | create identity page (if step 0 didn't) | + | Notion | Sprint DB · Decision-log DB | optional | resolve URL → database id | create (only on explicit need — no ceremony DBs) | + | Figma | Product Design File | optional¹ | file key from URL, verify access | create file via Figma MCP | + | Figma | Design System Library | optional | library file key, verify access | create library file | + | GitHub | Frontend / Backend repo | **≥1 of the two** | step-1 detected remote(s) presented as pre-filled candidates (id resolved from remote URL; prefer `origin`) — user confirms slot assignment, never re-types owner/repo; undetected: `gh api repos/{owner}/{repo}` → numeric id | `gh repo create --private --source . --push` — push included so the default branch exists for step 5 | + | GitHub | Infrastructure repo | optional | same | same | + | Docs | API / Architecture / Product documentation | optional | bind notion-page / repo-path / url | scaffold in the bound repo or create Notion page | + | Communication | Telegram | optional² | existing chat/topic → `chat_id` (+`topic_id`) | user creates group/topic in Telegram and adds the bot (bots cannot create groups); then discovery below | + | Other | additional MCP-backed resources | optional | stable id per provider | per provider | + + ¹ Skipped Figma → prototype-only design flow ([screen-contract](../Architecture/screen-contract.md) §4). + ² Communication asked **ONCE** (v1.4 rule): Yes / No / Configure later. Yes → token via `TELEGRAM_BOT_TOKEN` env (never stored in repo/manifest; registry `telegram_bot: none` → route through bot creation first, [extension README](../extensions/telegram/README.md) Setup 1); mode private | group | **topic (recommended)**; **chat_id discovery:** user sends any message in the target chat, then the plugin/`getUpdates` reports `chat_id` (+`topic_id`) back — never typed from memory. The test-send "✅ has been successfully connected to the Dev Toolkit." (`telegram-plugin.mjs --test`) runs at step 6 **after the manifest is written** (the plugin reads it) and must succeed before `enabled: true` stands — failure reverts to `enabled: false, deferred: true` without consuming the ask-once. No → `enabled: false`. Later → `enabled: false, deferred: true`; the completion report prints the re-open phrase. Neither is ever re-asked except via the Re-Onboarding phrases. Slack/Discord/email: future siblings, same shape; do not ask in v1. + Monorepo: bind the same repo (same id) to frontend + backend slots. Set `git.primary_repository` — the slot hosting manifest, toolkit pin, `screens/`; confirm each repo's default branch as it is bound (⚙ via `gh`). Each binding records `binding: connected|created`, `bound: `. + +4. **Validate integrations** — run [integration-validation](integration-validation.md), **tool checks only on this first run** (the binding rows of its table belong to re-validation; step 5 owns first-run binding validation). Failures on *required* integrations (Notion MCP, git access) block completion; optional ones (Figma, browser automation) record warnings. During onboarding, all results accumulate in the candidate config and are written into the manifest at step 6. + +5. **Validate resource bindings** — every bound resource access-checked via its **stable identifier** (not its URL): BRD DB fetches and matches [brd-schema](../Architecture/brd-schema.md) §1 (property names + option values); Figma file/library opens; each repo reachable + default branch exists; documentation targets resolve; Telegram test-send succeeded. Report the checklist verbatim: + + ``` + ✓ Notion BRD Database accessible (id …f112, connected) + ✓ Figma Product Design File accessible (key AbC…, created) + ✓ GitHub frontend repository accessible (id 8123…, connected) + ✓ Telegram connected (chat -100…, topic 42) + ○ Skipped: infrastructure repo, sprint DB, architecture/product docs + ○ Telegram: configure later — say "toolkit configure communication" (when deferred) + ``` + + Any required binding failing → onboarding stays `incomplete`; report what unblocks it. `resources.status: bound` only when this step passes. + +6. **Generate manifest** — write `project-manifest.yaml` per schema (`manifest_version: 2`) with `onboarding.status: incomplete` — the completion stamp belongs to step 9, after every output exists. If Telegram was accepted at step 3, run the test-send now (the plugin reads the manifest just written); failure → `enabled: false, deferred: true` + report line. + +7. **Initialize Screen Contract** (v1.3 — first-class step, not just a scaffold). Create `screens/registry.md`; set `manifest.screen_contract.next_id`. Then offer to **seed known screens now**: obvious top-level screens the product type implies (e.g. website → Home, Settings) plus any the user already knows. Each seeded screen gets a real `SCR-` row, status `planned`, owner `unassigned` — Screen IDs exist before any design or development begins; UI planning later *claims* rows (owner ← BRD) instead of creating them from zero. Seeding is optional and small — register what's known, never speculate a sitemap. + +8. **Generate AI Context Package** (v1.3) — `context/` per [context-package](../Architecture/context-package.md): `design.md`, `stack.md`, `integrations.md`, `conventions.md`, `model-routing.md`. Generated summaries with source pointers; stamped with toolkit version + date. + +9. **Scaffold, wire & complete** — the closing step owns everything that makes the project runnable and stamps completion: + - Scaffold `project-overrides.md`, CLAUDE.md block. + - **CI**: no workflow file in a bound repo → scaffold one from the stack profile (minimum: typecheck, lint, test, build) — the PR → Human Review transition requires CI green, so a repo without CI can never pass the pipeline. + - Commit `chore: project onboarding — toolkit `; **push** every `created` repo (connect-existing repos push per their own flow). + - **Branch protection** (actor: orchestrator, via `gh api`, per [git-strategy](../Standards/git-strategy.md) rule 11): PR-only + required CI on every bound repo's default branch. Solo repos too. + - Run **§Completion Criteria**; on full pass stamp `onboarding.status: complete` + dates and commit the stamp. Fail → report the exact unmet items; the manifest stays `incomplete` (C_MANIFEST holds the gate). + - Report: validation checklist (step 5 format), stack-profile gaps, and — if Telegram is `deferred` — the re-open phrase. + +## After Onboarding — the Boundary Holds + +From this point the Workflow Orchestrator accesses **only** registry resources — no workspace-wide Notion search, no Figma browsing, no repo listing ([integration-map](../Architecture/integration-map.md) §2b). A stage that needs a missing, skipped-but-required, or unreachable resource goes `Blocked (resource)` and raises one **Resource Decision** — connect existing / create new / confirm absence ([project-manifest §3](../Architecture/project-manifest.md)); connect/create routes through the Re-Onboarding rebind rule below. Never guess. ## Re-Onboarding (project evolves) -Targeted, not full: stack change → steps 1–2 (affected fields) + 3; new design resource → step 4 (that resource); Notion/Git move → step 4 + manifest update. Always: `last_validated` stamped, change noted in the next BRD's S16. Full re-run only when the manifest is untrusted. +**One rebind rule, every case:** any registry mutation — new resource, moved resource, un-skip, rebind after `unreachable`, Resource Decision outcome — runs **step 3 (that slot) + step 4 (that provider's tool check) + step 5 (that binding)**, restamping `validated`, the provider's `integrations.*`, and `last_validated`. No mutation path skips validation. Stack change → steps 1–2 (affected fields) + 4. Logging per [project-manifest §3](../Architecture/project-manifest.md): mid-BRD → that BRD's S16; otherwise → next pickup's S16; manifest commit `chore: rebind ` on the primary repo's default branch. Full re-run only when the manifest is untrusted. + +**Re-open phrases (said to Claude — this toolkit has no CLI binary; these route here):** +- **"toolkit onboard --update"** → present the slot/section menu; run the rebind rule for what the user picks. +- **"toolkit configure communication"** → run the rebind rule for the communication slot (the only sanctioned re-open of a `no`/`later` answer). + +## Migration (manifest v1 → v2) + +Triggered **only** by the Manifest Gate ([../AI/orchestrator.md](../AI/orchestrator.md) responsibility 0, step 3) when it finds `manifest_version: 1` — at session entry, pickup and resume alike, before staleness checks (which need registry ids v1 lacks). Automatic offer; resumable and idempotent (re-running continues where it stopped — connect-existing resolves to the same ids). In-flight BRDs are untouched and resume normally after. + +1. **Seed** the registry from v1 fields — no re-asking for what v1 already knows: + + | v1 field | → slot | Mechanism | Fallback | + |----------|--------|-----------|----------| + | `notion.brd_database` (URL) | `resources.notion.brd_database` | inherit from Toolkit Registry; else URL → id via `notion-fetch` (+ data source) | ask for the URL | + | `notion.project_database` etc. | matching `resources.notion.*` | URL → id | ask | + | `design.figma_file` / `design_system_file` | `resources.figma.*` | URL → file key | not a URL → ask for the file URL (never browse Figma) | + | `git.repository` | a `resources.github.*` slot — **user confirms which** (also sets `git.primary_repository`) | URL → `gh api` numeric id | ask | +2. **Walk NEW slots only** (docs, sprint/decision-log DBs, communication once, other) — connect / create / skip, exactly like step 3. +3. **Initialize missing v1.3+ artifacts** if absent: `screens/registry.md` (step 7), `context/` (step 8). +4. **Validate** every seeded + new binding (step 5) and stamp. +5. Stamp `manifest_version: 2`, `resources.status: bound`, `last_validated`; commit `chore: manifest migration v1→v2 — toolkit `. Stamp only on full checklist pass — a half-migrated manifest stays v1 and re-enters here next session. ## Completion Criteria -- [ ] Manifest schema-valid: all required fields non-null ([project-manifest](../Architecture/project-manifest.md) §4) +- [ ] Manifest schema-valid: all required fields non-null ([project-manifest](../Architecture/project-manifest.md) §5), `manifest_version: 2` - [ ] Project code unique; registered in Notion `Project` select - [ ] Stack profile resolved; gaps (if any) recorded in manifest and acknowledged by user +- [ ] **Every supported resource slot explicitly resolved** — `connected` / `created` / `skipped`; no silent absences +- [ ] **Every binding stores a stable identifier** (id/key/repo-id/chat-id) — no display names, no unresolved URLs +- [ ] Required bindings (`resources.notion.brd_database`, ≥1 GitHub repo) validated; `resources.status: bound` + `bound` date stamped - [ ] Required integrations `validated`; optional failures recorded as warnings, not silently -- [ ] All declared design/Notion/git resources access-checked (no dead URLs in the manifest) -- [ ] Registration durable in Notion (code reserved; identity page if Project DB declared); `project.registered` stamped +- [ ] All bound resources access-checked this run via stable id (no dead bindings in the registry) +- [ ] Validation checklist (step 5 format) shown to the user, skips listed +- [ ] Registration durable in Notion (code reserved; identity page if bound); `project.registered` stamped - [ ] `screens/registry.md` initialized; seeded screens (if any) have valid SCR-IDs, `planned`/`unassigned`; `next_id` consistent - [ ] `context/` generated: all 5 files present, stamped with toolkit version + date, headers marked GENERATED - [ ] `screens/registry.md` + `project-overrides.md` + CLAUDE.md block exist -- [ ] Manifest + scaffolds committed -- [ ] `onboarding.status: complete` + dates stamped +- [ ] CI workflow present in every bound repo (scaffolded if absent); branch protection (PR-only + required CI) applied to every bound repo's default branch +- [ ] Manifest + scaffolds committed; created repos pushed +- [ ] `onboarding.status: complete` + dates stamped (step 9, after all of the above) ## Common Mistakes - Interviewing for what `package.json` already says — detect, confirm, move on. -- Accepting dead URLs into the manifest ("will fix later") — validation is the point; a manifest with unchecked resources is a config rumor. -- Marking complete with required integrations missing — that's `incomplete` + a blocking report, however inconvenient. +- Storing a URL or display name where a stable id exists — names rename, bindings break; resolve the id at bind time. +- Accepting dead bindings into the registry ("will fix later") — validation is the point; an unchecked binding is a config rumor. +- Leaving an optional slot silently absent instead of recording `skipped` — silence re-opens the question forever and invites runtime guessing. +- Marking complete with required bindings or integrations missing — that's `incomplete` + a blocking report, however inconvenient. +- Searching the workspace after onboarding "just to find that one doc" — boundary violation; bind it or leave it. - Skipping onboarding for "quick" projects — the gate exists precisely because every project feels like an exception at minute one. - Treating the manifest as write-once — stale manifests rot into lies; re-onboard on evolution. ## Best Practices - Run onboarding in the project repo with the toolkit already pinned — detections get sharper. +- Prefer **Connect Existing** when a resource already exists; **Create New** is for genuinely new projects — never create a duplicate beside a connectable original. - Keep answers terse in the manifest; prose belongs in CLAUDE.md/README, config in YAML. - Surface the stack-profile gap list at the end even when empty — "full coverage" is worth saying out loud once. diff --git a/extensions/telegram/README.md b/extensions/telegram/README.md index ad6f738..de32350 100644 --- a/extensions/telegram/README.md +++ b/extensions/telegram/README.md @@ -69,7 +69,7 @@ Orchestrator duty (when `telegram.enabled`): write outbox events at the four tri ## Setup 1. @BotFather → create bot → token. `export TELEGRAM_BOT_TOKEN=…` (shell profile / `.env.local`). **Token never enters manifest or repo.** -2. Onboarding communication step (or re-run: "run onboarding communication section") fills `manifest.communication.telegram` — mode `private` | `group` | `topic` (recommended), `chat_id`, `topic_id`. +2. Onboarding **Resource Binding** stage ([project-onboarding](../../Workflows/project-onboarding.md) step 3; re-open only via "toolkit configure communication" / "toolkit onboard --update") fills `manifest.communication.telegram` — mode `private` | `group` | `topic` (recommended), `chat_id`, `topic_id`. 3. Test: `node toolkit/extensions/telegram/telegram-plugin.mjs --test` → "✅ has been successfully connected to the Dev Toolkit." 4. Run daemon: `node toolkit/extensions/telegram/telegram-plugin.mjs` (keep alive via launchd/pm2/tmux as preferred). `--once` flushes outbox without the daemon. diff --git a/extensions/telegram/telegram-plugin.mjs b/extensions/telegram/telegram-plugin.mjs index 94a961a..f4027dc 100644 --- a/extensions/telegram/telegram-plugin.mjs +++ b/extensions/telegram/telegram-plugin.mjs @@ -44,7 +44,7 @@ function readTelegramConfig() { if (!line.trim()) continue; const indent = line.length - line.trimStart().length; const [key, ...rest] = line.trim().split(":"); - const val = rest.join(":").trim(); + const val = rest.join(":").trim().replace(/^(["'])(.*)\1$/, "$2"); if (indent === 0) { inComm = key === "communication"; inTg = inNotif = false; continue; } if (inComm && indent === 2) { inTg = key === "telegram"; inNotif = false; continue; } if (inTg && indent === 4) { @@ -60,7 +60,7 @@ function readTelegramConfig() { return { chatId: cfg.chat_id, topicId: cfg.mode === "topic" && cfg.topic_id ? Number(cfg.topic_id) : undefined, - notifications: cfg.notifications ?? { approvals: true, failures: true, pipeline: true }, + notifications: cfg.notifications ?? { approvals: true, failures: true }, projectName: readProjectName(lines), }; } @@ -71,7 +71,10 @@ function readProjectName(lines) { const indent = raw.length - raw.trimStart().length; const t = raw.trim(); if (indent === 0) inProject = t.startsWith("project:"); - else if (inProject && indent === 2 && t.startsWith("name:")) return t.slice(5).trim(); + else if (inProject && indent === 2 && t.startsWith("name:")) { + const v = t.slice(5).replace(/#.*$/, "").trim().replace(/^(["'])(.*)\1$/, "$2"); + return v || "Project"; + } } return "Project"; } From c1893d657bf38d1b3e9dadf0b46714652deccf34 Mon Sep 17 00:00:00 2001 From: Chheng64 Date: Mon, 24 Aug 2026 08:30:56 +0700 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20v1.6.0=20=E2=80=94=20Telegram=20rem?= =?UTF-8?q?ote=20execution=20(opt-in=20executor=20daemon)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds an optional executor daemon to the Telegram extension: a message in the bound chat can run Claude Code headless on the host machine. - executor.mjs: consumes `type: "command"` spool events, runs them via `claude -p --output-format stream-json` in the project root, streams exec_started/exec_progress/exec_result/exec_error back through the outbox. Separate process from the adapter — the filesystem spool stays the whole contract, so the executor is optional and removable. - config.mjs: shared `communication.telegram` manifest reader, now the single parser for both processes. Adds the `exec` block. - telegram-plugin.mjs: free text spools as a command event instead of being dropped; outbox sends chunked to Telegram's 4096-char limit; formatEvent handles exec_* cases; module entry guarded for tests. - 81 node --test cases across parsing, routing, authorization, session lifecycle, single-flight locking, timeout, and cancellation. Security: remote execution is default-closed on two independent switches — `exec.enabled: true` and a non-empty `exec.allowed_user_ids`. Chat identity and sender identity are enforced separately. permission_mode defaults to acceptEdits; --dangerously-skip-permissions is never passed. Prompts go as a single argv entry to a shell-less spawn with cwd pinned to the project root. The executor never consumes approval events — gate decisions remain the orchestrator's. Co-Authored-By: Claude Opus 5 (1M context) --- Architecture/project-manifest.md | 11 +- Documentation/CHANGELOG.md | 20 ++ Documentation/module-index.md | 2 +- README.md | 10 +- extensions/telegram/README.md | 106 +++++- extensions/telegram/config.mjs | 98 ++++++ extensions/telegram/config.test.mjs | 109 ++++++ extensions/telegram/executor.mjs | 304 +++++++++++++++++ extensions/telegram/executor.test.mjs | 422 ++++++++++++++++++++++++ extensions/telegram/plugin.test.mjs | 88 +++++ extensions/telegram/telegram-plugin.mjs | 162 ++++----- 11 files changed, 1232 insertions(+), 100 deletions(-) create mode 100644 extensions/telegram/config.mjs create mode 100644 extensions/telegram/config.test.mjs create mode 100644 extensions/telegram/executor.mjs create mode 100644 extensions/telegram/executor.test.mjs create mode 100644 extensions/telegram/plugin.test.mjs diff --git a/Architecture/project-manifest.md b/Architecture/project-manifest.md index df6776a..d411f1a 100644 --- a/Architecture/project-manifest.md +++ b/Architecture/project-manifest.md @@ -17,7 +17,7 @@ ```yaml manifest_version: 2 # v1.5 — Project Resource Binding (resources: registry) -toolkit_version: v1.5.0 # toolkit the project is pinned to +toolkit_version: v1.6.0 # toolkit the project is pinned to onboarding: status: complete # incomplete | complete — the master gate completed: 2026-07-26 @@ -147,9 +147,18 @@ communication: # COMMUNICATION section of the resource regis # approvals: true # direction/design gates + PR-ready # failures: true # pipeline failed # daily_summary: false # v2 — declared, not implemented + # exec_progress: true # relay per-step progress of a remote run + # exec: # remote execution — OFF unless every field below is set + # enabled: false # master switch; false = free-text messages are refused + # allowed_user_ids: [111] # Telegram user ids permitted to run commands; empty = nobody + # permission_mode: acceptEdits # acceptEdits (default) | plan | dontAsk | bypassPermissions + # allowed_tools: ["Read", "Edit", "Bash(git *)"] # omit to allow the mode's defaults + # timeout_minutes: 10 # run is SIGTERMed past this # slack / discord / email: future — same shape, sibling adapters ``` +**Remote execution rule (v1.6):** `communication.telegram.exec` turns a chat message into a `claude -p` run on the machine hosting the executor. It is default-closed on two independent switches — `exec.enabled` and a non-empty `exec.allowed_user_ids` — and both must be set deliberately. `permission_mode: bypassPermissions` grants unrestricted tool and shell access to anyone who can post in the bound chat; treat enabling it as equivalent to handing that chat a terminal on the host. Run the executor only on a machine you control, and only for a chat whose membership you control ([extensions/telegram/README.md](../extensions/telegram/README.md)). + **Secrets rule:** bot tokens NEVER enter the manifest or repo — `TELEGRAM_BOT_TOKEN` env var only ([extensions/telegram/README.md](../extensions/telegram/README.md); [Standards/security.md](../Standards/security.md) rule 5). Manifest holds routing (chat/topic ids) — non-secret. ## 3. Project Resource Registry & Boundary (v1.5) diff --git a/Documentation/CHANGELOG.md b/Documentation/CHANGELOG.md index 61f0b6a..b4aef86 100644 --- a/Documentation/CHANGELOG.md +++ b/Documentation/CHANGELOG.md @@ -4,6 +4,26 @@ All notable toolkit changes. Format: [Keep a Changelog](https://keepachangelog.c ## [Unreleased] +## [1.6.0] — 2026-08-24 + +**Telegram remote execution** — the chat adapter gains an opt-in executor daemon: a message in the bound chat can run Claude Code headless on the host, default-closed behind two independent switches. + +### Added — Telegram remote execution (extension v2, opt-in) +- `extensions/telegram/executor.mjs` — **inbox executor daemon**: consumes `type: "command"` spool events and runs them through Claude Code headless (`claude -p --output-format stream-json`) in the project root, streaming `exec_started` / `exec_progress` / `exec_result` / `exec_error` back through the outbox. Separate process from the adapter — the filesystem spool stays the whole contract, so the executor is optional and removable. +- `extensions/telegram/config.mjs` — shared `communication.telegram` manifest reader, now the single parser for both processes (the adapter's inline copy is gone). Adds the `exec` block: `enabled`, `allowed_user_ids`, `permission_mode`, `allowed_tools`, `timeout_minutes`. +- Chat surface: free text → queued command, `/new ` → fresh Claude session, `/cancel` → SIGTERM the running command. `/status` unchanged. One Claude session is reused per project (`.toolkit/telegram/.session`) so follow-ups keep context. +- `extensions/telegram/*.test.mjs` — 81 `node --test` cases covering parsing, message routing, authorization, session lifecycle, single-flight locking, timeout, and cancellation. + +### Security +- Remote execution is **default-closed on two independent switches** — `exec.enabled: true` and a non-empty `exec.allowed_user_ids`; an empty allow-list authorizes nobody and a missing block refuses all free text. Chat identity (adapter, `chat_id`) and sender identity (executor, `allowed_user_ids`) are enforced separately. +- `permission_mode` defaults to `acceptEdits`; the executor never passes `--dangerously-skip-permissions`. `bypassPermissions` remains available but is documented as granting unrestricted execution to anyone who can post in the bound chat. +- Prompts are passed as a single argv entry to a shell-less spawn; `cwd` is pinned to the project root with no `--add-dir`. Runs are bounded by a single-flight lock (reclaimed if the holder dies) and a `timeout_minutes` SIGTERM. +- The executor never consumes `approval` events — gate decisions remain the orchestrator's, under its stale-approval and scope rules. + +### Changed +- `extensions/telegram/telegram-plugin.mjs` — free-text messages are now spooled as `command` events instead of being silently dropped; outbox sends are chunked to Telegram's 4096-character limit; `formatEvent` takes notifications explicitly and gained the `exec_*` cases; module entry is guarded so the file can be imported by tests without connecting. +- `Architecture/project-manifest.md` §2 — documents `communication.telegram.exec` and the remote-execution rule. + ## [1.5.0] — 2026-08-21 **Project Resource Binding** — every project explicitly owns and binds its external resources; the toolkit never searches the user's workspace once a project is onboarded. diff --git a/Documentation/module-index.md b/Documentation/module-index.md index 6e5db69..2e948fe 100644 --- a/Documentation/module-index.md +++ b/Documentation/module-index.md @@ -58,7 +58,7 @@ Every module, one line. Load only what the task needs — this index is the map, - [full-feature](../Playbooks/full-feature.md) · [parallel-brds](../Playbooks/parallel-brds.md) · [hotfix](../Playbooks/hotfix.md) · [design-only](../Playbooks/design-only.md) ## extensions/ (opt-in, not core) -- [telegram](../extensions/telegram/README.md) — mobile gate approvals + notifications via file-spool adapter; `telegram-plugin.mjs` +- [telegram](../extensions/telegram/README.md) — mobile gate approvals + notifications via file-spool adapter, plus opt-in remote execution; `telegram-plugin.mjs` (adapter), `executor.mjs` (runner daemon), `config.mjs` (shared manifest reader) ## Documentation/ (meta) - [onboarding](onboarding.md) — add the toolkit to a project + run the first BRD diff --git a/README.md b/README.md index 8508243..e151521 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A reusable AI product-development operating system for solo builders working with Claude, Notion, and Git. It turns feature development into a deterministic 13-stage state machine with living documents, hard quality gates, and full resumability — any session can die at any moment and the next one picks up exactly where it left off. -**Version: v1.5.0** · consumed by projects as a version-pinned git submodule · improve a rule once here, every project inherits it at its next pin bump. +**Version: v1.6.0** · consumed by projects as a version-pinned git submodule · improve a rule once here, every project inherits it at its next pin bump. --- @@ -112,7 +112,7 @@ Layer 2 · PROJECT CONFIGURATION project-manifest.yaml (config + Resource Layer 3 · DEVELOPMENT SYSTEM Living BRD, Screen Contract, Workflows, Skills, Standards — what each stage does and to what quality bar ↓ -Layer 4 · COMMUNICATION extensions/ — Telegram v1 (Slack/Discord +Layer 4 · COMMUNICATION extensions/ — Telegram v2 (Slack/Discord possible later); adapters that relay gates, never advance state ↓ Layer 5 · EXTERNAL SERVICES Notion (MCP), GitHub (gh), browser @@ -159,8 +159,8 @@ npx create-next-app@latest --typescript --tailwind --eslint --app --sr cd git submodule add https://github.com/Chheng64/Dev-toolkit.git toolkit -cd toolkit && git fetch --tags && git checkout v1.5.0 && cd .. -git add -A && git commit -m "chore: pin toolkit v1.5.0" +cd toolkit && git fetch --tags && git checkout v1.6.0 && cd .. +git add -A && git commit -m "chore: pin toolkit v1.6.0" ``` ### Step 2 — Onboard (mandatory; nothing runs without it) @@ -261,7 +261,7 @@ Dependencies point **down toward `Architecture/`** — it depends on nothing; `P | [Checklists/](Checklists/) | 12 machine-checkable gates | Architecture | an exit criterion changes | at stage exit | | [Prompts/](Prompts/) | 11 invocation patterns | Architecture | an invocation improves | when you invoke one | | [Playbooks/](Playbooks/) | full-feature · parallel-brds · hotfix · design-only | everything (composition layer) | a composed flow changes | when a playbook is invoked | -| [extensions/](extensions/telegram/README.md) | Opt-in adapters (Telegram v1) | orchestrator contract only | adding/changing an adapter | only if enabled in manifest | +| [extensions/](extensions/telegram/README.md) | Opt-in adapters (Telegram v2) | orchestrator contract only | adding/changing an adapter | only if enabled in manifest | | [Documentation/](Documentation/) | [Module index](Documentation/module-index.md) · [Onboarding](Documentation/onboarding.md) · [Notion setup](Documentation/notion-setup.md) · [Changelog](Documentation/CHANGELOG.md) | — | docs drift | on demand | New functionality goes where its single responsibility says: process → `Workflows/`, judgment → `Skills/`, quality bar → `Standards/`, contract → `Architecture/`, adapter → `extensions/`. diff --git a/extensions/telegram/README.md b/extensions/telegram/README.md index de32350..b6f770a 100644 --- a/extensions/telegram/README.md +++ b/extensions/telegram/README.md @@ -1,20 +1,41 @@ -# Extension — Telegram Plugin (v1) +# Extension — Telegram Plugin (v2) > **Module:** extensions/ — NOT core toolkit. Opt-in per project via `manifest.communication.telegram`. -> **Purpose:** monitor workflow progress and answer approval gates away from the computer. -> **Identity:** communication **adapter only**. All business logic stays in the Workflow Orchestrator. +> **Purpose:** monitor workflow progress, answer approval gates, and (opt-in) drive Claude Code remotely. +> **Identity:** two processes over one filesystem spool — a communication **adapter** and an optional **executor**. + +## Processes + +| File | Role | +|------|------| +| `telegram-plugin.mjs` | Adapter. Talks to Telegram, reads/writes the spool. Executes nothing. | +| `executor.mjs` | Executor. Reads `command` events from the spool and runs them through `claude -p`. Never talks to Telegram. | +| `config.mjs` | Shared `communication.telegram` manifest reader (one parser, both processes). | + +Neither process calls the other. The spool is the whole contract, so the executor stays optional and removable. ## Boundaries (hard) +**Adapter — `telegram-plugin.mjs`:** + | Does | Never | |------|-------| -| Receive workflow events (file spool) | Execute workflows | +| Receive workflow events (file spool) | Execute anything | | Send Telegram notifications | Update BRDs directly | | Capture approvals via inline buttons | Modify Git | | Answer `/status` | Modify Figma | -| | Replace or bypass the orchestrator | +| Spool free text as a `command` event | Spawn a process | + +**Executor — `executor.mjs`:** + +| Does | Never | +|------|-------| +| Consume `command` events | Touch `approval` events (those are the orchestrator's) | +| Run `claude -p` in the project root | Talk to the Telegram API | +| Emit `exec_*` progress to the outbox | Run for an unlisted sender | +| Hold a single-flight lock | Run two commands at once | -An approval tapped in Telegram is **recorded, not applied** — the orchestrator reads it, applies gate rules (stale-approval, scope checks), and logs S16 with `source: telegram`. The plugin cannot advance a stage. +An approval tapped in Telegram is still **recorded, not applied** — the orchestrator reads it, applies gate rules (stale-approval, scope checks), and logs S16 with `source: telegram`. Neither process can advance a stage. ## Architecture @@ -23,16 +44,16 @@ Workflow Orchestrator (Claude session) │ writes reads │ ▼ │ .toolkit/telegram/outbox/*.json .toolkit/telegram/inbox/*.json -.toolkit/telegram/status.json ▲ - │ │ writes - ▼ │ -telegram-plugin.mjs (daemon: flush outbox + long-poll getUpdates) - │ ▲ - ▼ │ +.toolkit/telegram/status.json ▲ │ + │ │ │ reads type:"command" + ▼ │ ▼ +telegram-plugin.mjs (daemon: flush outbox + long-poll getUpdates) executor.mjs + │ ▲ │ (daemon: claim → claude -p) + ▼ │ │ writes exec_* ──▶ outbox Telegram Bot API ──── messages / inline buttons / /status ──── ``` -Filesystem spool = the whole contract. Orchestrator never talks to Telegram; plugin never touches BRD/Git/Figma/Notion. +Filesystem spool = the whole contract. Orchestrator never talks to Telegram; adapter never spawns; executor never touches the network. ## Event Contract @@ -56,12 +77,27 @@ Only these four notification triggers exist in v1: Direction gate, Design gate, "pending_gate": "direction", "updated": "2026-07-26T08:00:00Z" } ``` -**Inbox** (plugin → orchestrator), written on button taps: +**Inbox** (adapter → orchestrator / executor): ```json { "type": "approval", "action": "approve" | "reject" | "pause" | "resume", "gate": "direction" | "design" | "final", "brd": "BRD-TP-001", "ts": "…", "source": "telegram" } +{ "type": "command", "text": "run the test suite", "from_id": 111, "ts": "…", "source": "telegram" } +{ "type": "cancel", "from_id": 111, "ts": "…", "source": "telegram" } +``` + +`approval` belongs to the orchestrator; `command` and `cancel` belong to the executor. Each consumer ignores the other's events — the executor explicitly leaves approval files in place. + +**Exec events** (executor → outbox → Telegram): + +```json +{ "type": "exec_started", "request": "run the test suite" } +{ "type": "exec_progress", "detail": "Edit b.ts" } // gated by notifications.exec_progress +{ "type": "exec_result", "detail": "2 files changed" } +{ "type": "exec_error", "detail": "Run timed out after 10 min and was terminated." } +{ "type": "exec_denied", "detail": "sender is not authorized" } +{ "type": "exec_busy", "detail": "another command is still running…" } ``` Orchestrator duty (when `telegram.enabled`): write outbox events at the four triggers; refresh `status.json` each transition; **read inbox at session entry and before every gate check** — apply as the human's gate decision, log S16 (`source: telegram`), then delete the event file. `pause` → `Blocked (paused-by-user)`; `resume` → clear it. @@ -73,12 +109,48 @@ Orchestrator duty (when `telegram.enabled`): write outbox events at the four tri 3. Test: `node toolkit/extensions/telegram/telegram-plugin.mjs --test` → "✅ has been successfully connected to the Dev Toolkit." 4. Run daemon: `node toolkit/extensions/telegram/telegram-plugin.mjs` (keep alive via launchd/pm2/tmux as preferred). `--once` flushes outbox without the daemon. +### Remote execution (opt-in) + +5. Add the `exec` block to `manifest.communication.telegram` — see [Architecture/project-manifest.md](../../Architecture/project-manifest.md) §2. Get your Telegram user id from `@userinfobot`; it is **not** the `chat_id`. +6. Run the second daemon alongside the first: `node toolkit/extensions/telegram/executor.mjs`. `--once` drains the inbox and exits (useful for verification). + +Chat commands once both daemons run: + +| Message | Effect | +|---------|--------| +| `/status` | Orchestrator status from `status.json` (no execution) | +| any free text | Queued as a `command` event → `claude -p`, replies stream back | +| `/new ` | Same, but starts a fresh Claude session first | +| `/cancel` | SIGTERM the running command | + +One Claude session is reused per project (id in `.toolkit/telegram/.session`) so follow-up messages keep context. + ## Security -- Token: env only. Chat allow-list: plugin ignores every chat except the configured `chat_id` (commands and callbacks both). +- Token: env only. Chat allow-list: the adapter ignores every chat except the configured `chat_id` (messages and callbacks both). - Inline-button approvals are **recorded intents**, applied by the orchestrator under its gate rules — a stray tap cannot ship anything (stale-approval + scope checks still run). -- Messages contain no secrets: BRD titles, stages, links only. +- Notification messages contain no secrets: BRD titles, stages, links only. + +### Remote execution — read before enabling + +Enabling `exec` means a chat message runs code on the machine hosting the executor. Understand these properties before turning it on: + +- **Default-closed on two switches.** `exec.enabled: true` *and* a non-empty `exec.allowed_user_ids`. An empty allow-list authorizes nobody; a missing `exec` block refuses all free text with a message. +- **Sender identity is checked twice** — the chat must match `chat_id` (adapter) and the sender must appear in `allowed_user_ids` (executor). Both layers are enforced independently. +- **`permission_mode` defaults to `acceptEdits`** — file edits proceed unattended, other tools still gate. `--allowedTools` comes from `exec.allowed_tools`. The executor never passes `--dangerously-skip-permissions`. +- **`permission_mode: bypassPermissions` is unrestricted.** Anyone who can post in the bound chat gets arbitrary command execution as your user. Only choose it for a machine and a chat you fully control. +- **Prompts are never shell-interpolated** — the message is one argv entry to `claude`, spawned without a shell. +- **Bounded runs.** One command at a time (`.exec.lock`, reclaimed if the holder dies), `timeout_minutes` SIGTERM (default 10), `/cancel` to stop early. `cwd` is pinned to the project root; no `--add-dir`. +- **Residual risk:** whoever holds the bot token or joins the bound chat inherits this capability. Rotate the token via @BotFather if it leaks, and prefer a private chat over a group. + +## Tests + +``` +node --test extensions/telegram/*.test.mjs +``` + +Pure logic only (parsing, routing, authorization, locking, session lifecycle) — no network, no real child process. End-to-end behaviour is verified by running `executor.mjs --once` against a scratch project. -## v2+ Hooks (designed-for, not built) +## v3+ Hooks (designed-for, not built) Adapter seams already in place: `formatEvent()` switch → new event types (daily summary); `handleUpdate()` → new commands (`/note`, voice messages routed to inbox as `type: note`); outbox is producer-agnostic → AI chat replies later write outbox events themselves. Slack/Discord/email = sibling adapters over the same spool contract (`communication.slack` etc.) — the spool format is the stable API, adapters are disposable. diff --git a/extensions/telegram/config.mjs b/extensions/telegram/config.mjs new file mode 100644 index 0000000..f9716f0 --- /dev/null +++ b/extensions/telegram/config.mjs @@ -0,0 +1,98 @@ +/** + * Dev-toolkit Telegram extension — manifest config reader. + * + * Shared by the adapter (telegram-plugin.mjs) and the executor (executor.mjs) so + * `communication.telegram` has exactly one parser. Indentation-scoped reader for + * the known block — not a general YAML implementation. + */ + +import { readFileSync, existsSync } from "node:fs"; + +const LIST_KEYS = new Set(["allowed_user_ids", "allowed_tools"]); +const NUMBER_KEYS = new Set(["timeout_minutes"]); + +const unquote = (v) => v.replace(/^(["'])(.*)\1$/, "$2"); + +function stripComment(line) { + // Only strip a comment that follows whitespace, so "#" inside a quoted value survives. + return line.replace(/(^|\s)#.*$/, "$1").trimEnd(); +} + +function parseInlineList(raw) { + const inner = raw.slice(1, -1).trim(); + if (!inner) return []; + return inner.split(",").map((v) => unquote(v.trim())).filter(Boolean); +} + +export function readTelegramConfig(manifestPath) { + if (!existsSync(manifestPath)) { + throw new Error(`project-manifest.yaml not found at ${manifestPath} — run from the project root.`); + } + const lines = readFileSync(manifestPath, "utf8").split("\n"); + + const cfg = {}; + const exec = {}; + let inComm = false, inTg = false, sub = null, listKey = null; + + for (const raw of lines) { + const line = stripComment(raw); + if (!line.trim()) continue; + const indent = line.length - line.trimStart().length; + const trimmed = line.trim(); + + // Continuation of a block list: "- 111" + if (listKey && trimmed.startsWith("- ")) { + (sub === "exec" ? exec : cfg)[listKey].push(unquote(trimmed.slice(2).trim())); + continue; + } + listKey = null; + + const [key, ...rest] = trimmed.split(":"); + const value = unquote(rest.join(":").trim()); + + if (indent === 0) { inComm = key === "communication"; inTg = false; sub = null; continue; } + if (inComm && indent === 2) { inTg = key === "telegram"; sub = null; continue; } + if (!inTg) continue; + + if (indent === 4) { + sub = value === "" && (key === "notifications" || key === "exec") ? key : null; + if (sub === "notifications") cfg.notifications ??= {}; + if (sub) continue; + cfg[key] = value; + continue; + } + if (indent === 6 && sub === "notifications") { cfg.notifications[key] = value === "true"; continue; } + if (indent === 6 && sub === "exec") { + if (LIST_KEYS.has(key)) { + exec[key] = value.startsWith("[") ? parseInlineList(value) : []; + if (!value.startsWith("[")) listKey = key; + continue; + } + exec[key] = NUMBER_KEYS.has(key) ? Number(value) : value === "true" ? true : value === "false" ? false : value; + } + } + + if (cfg.enabled !== "true") throw new Error("communication.telegram.enabled is not true — nothing to do."); + if (!cfg.chat_id) throw new Error("communication.telegram.chat_id missing."); + + return { + projectName: readProjectName(lines), + chatId: cfg.chat_id, + topicId: cfg.mode === "topic" && cfg.topic_id ? Number(cfg.topic_id) : undefined, + notifications: cfg.notifications ?? { approvals: true, failures: true }, + exec: { ...exec, enabled: exec.enabled === true }, + }; +} + +function readProjectName(lines) { + let inProject = false; + for (const raw of lines) { + const indent = raw.length - raw.trimStart().length; + const t = raw.trim(); + if (indent === 0) inProject = t.startsWith("project:"); + else if (inProject && indent === 2 && t.startsWith("name:")) { + return unquote(stripComment(t.slice(5)).trim()) || "Project"; + } + } + return "Project"; +} diff --git a/extensions/telegram/config.test.mjs b/extensions/telegram/config.test.mjs new file mode 100644 index 0000000..0b9cf5a --- /dev/null +++ b/extensions/telegram/config.test.mjs @@ -0,0 +1,109 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { mkdtempSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; +import { readTelegramConfig } from "./config.mjs"; + +function manifest(body) { + const file = join(mkdtempSync(join(tmpdir(), "tg-cfg-")), "project-manifest.yaml"); + writeFileSync(file, body); + return file; +} + +const BASE = `project: + name: Toolkit Pilot +communication: + telegram: + enabled: true + mode: topic + chat_id: "-1001234567890" + topic_id: 42 +`; + +test("readTelegramConfig reads routing and project name", () => { + const cfg = readTelegramConfig(manifest(BASE)); + assert.equal(cfg.projectName, "Toolkit Pilot"); + assert.equal(cfg.chatId, "-1001234567890"); + assert.equal(cfg.topicId, 42); +}); + +test("readTelegramConfig ignores topic_id unless mode is topic", () => { + const cfg = readTelegramConfig(manifest(BASE.replace("mode: topic", "mode: group"))); + assert.equal(cfg.topicId, undefined); +}); + +test("readTelegramConfig reads notification flags", () => { + const cfg = readTelegramConfig(manifest(BASE + ` notifications: + approvals: true + failures: false +`)); + assert.deepEqual(cfg.notifications, { approvals: true, failures: false }); +}); + +test("readTelegramConfig throws when telegram is not enabled", () => { + assert.throws(() => readTelegramConfig(manifest(BASE.replace("enabled: true", "enabled: false"))), /not true/i); +}); + +test("readTelegramConfig throws when the manifest is missing", () => { + assert.throws(() => readTelegramConfig(join(tmpdir(), "nope-does-not-exist.yaml")), /not found/i); +}); + +test("readTelegramConfig throws when chat_id is absent", () => { + assert.throws(() => readTelegramConfig(manifest(BASE.replace(/ chat_id:.*\n/, ""))), /chat_id/i); +}); + +// ---------- exec block ---------- + +test("readTelegramConfig reports exec disabled when the block is absent", () => { + assert.deepEqual(readTelegramConfig(manifest(BASE)).exec, { enabled: false }); +}); + +test("readTelegramConfig reads the exec block", () => { + const cfg = readTelegramConfig(manifest(BASE + ` exec: + enabled: true + permission_mode: acceptEdits + timeout_minutes: 5 +`)); + assert.equal(cfg.exec.enabled, true); + assert.equal(cfg.exec.permission_mode, "acceptEdits"); + assert.equal(cfg.exec.timeout_minutes, 5); +}); + +test("readTelegramConfig parses an inline allow-list", () => { + const cfg = readTelegramConfig(manifest(BASE + ` exec: + enabled: true + allowed_user_ids: [111, 222] +`)); + assert.deepEqual(cfg.exec.allowed_user_ids, ["111", "222"]); +}); + +test("readTelegramConfig parses a block allow-list", () => { + const cfg = readTelegramConfig(manifest(BASE + ` exec: + enabled: true + allowed_user_ids: + - 111 + - 222 +`)); + assert.deepEqual(cfg.exec.allowed_user_ids, ["111", "222"]); +}); + +test("readTelegramConfig parses a quoted allowed_tools list", () => { + const cfg = readTelegramConfig(manifest(BASE + ` exec: + enabled: true + allowed_tools: ["Read", "Bash(git *)"] +`)); + assert.deepEqual(cfg.exec.allowed_tools, ["Read", "Bash(git *)"]); +}); + +test("readTelegramConfig defaults exec.enabled to false when unset inside the block", () => { + const cfg = readTelegramConfig(manifest(BASE + ` exec: + permission_mode: plan +`)); + assert.equal(cfg.exec.enabled, false); +}); + +test("readTelegramConfig ignores a trailing comment on a value", () => { + const cfg = readTelegramConfig(manifest(BASE.replace('chat_id: "-1001234567890"', 'chat_id: "-100123" # the group'))); + assert.equal(cfg.chatId, "-100123"); +}); diff --git a/extensions/telegram/executor.mjs b/extensions/telegram/executor.mjs new file mode 100644 index 0000000..1e288fb --- /dev/null +++ b/extensions/telegram/executor.mjs @@ -0,0 +1,304 @@ +#!/usr/bin/env node +/** + * Dev-toolkit Telegram extension — inbox executor + * + * Consumes `.toolkit/telegram/inbox/*.json` command events and runs them through + * Claude Code headless (`claude -p`), streaming progress back as outbox events. + * It never talks to Telegram: the filesystem spool remains the whole contract. + * + * inbox/*.json {type:"command"} ──▶ claude -p ──▶ outbox/*.json {type:"exec_*"} + * + * Disabled unless `communication.telegram.exec.enabled: true` in project-manifest.yaml. + */ + +import { basename, join } from "node:path"; +import { pathToFileURL } from "node:url"; +import { readTelegramConfig } from "./config.mjs"; +import { readFileSync, writeFileSync, rmSync, readdirSync, mkdirSync } from "node:fs"; +import { randomUUID } from "node:crypto"; +import { spawn } from "node:child_process"; +import { createInterface } from "node:readline"; + +// ---------- telegram formatting ---------- + +/** Split text into Telegram-sendable chunks, preferring newline boundaries. */ +export function chunkForTelegram(text, limit = 4096) { + const body = String(text ?? "").trim(); + if (!body) return []; + const chunks = []; + let rest = body; + while (rest.length > limit) { + const window = rest.slice(0, limit); + const nl = window.lastIndexOf("\n"); + const cut = nl > limit * 0.5 ? nl : limit; + chunks.push(rest.slice(0, cut).trimEnd()); + rest = rest.slice(nl > limit * 0.5 ? cut + 1 : cut); + } + if (rest.length) chunks.push(rest); + return chunks; +} + +// ---------- stream-json parsing ---------- + +/** Reduce one `--output-format stream-json` line to the progress we relay, or null. */ +export function parseStreamLine(line) { + let ev; + try { ev = JSON.parse(line); } catch { return null; } + if (ev?.type === "system" && ev.subtype === "init" && ev.session_id) { + return { kind: "session", text: ev.session_id }; + } + if (ev?.type === "result") { + return { kind: "result", text: String(ev.result ?? ""), isError: Boolean(ev.is_error) }; + } + if (ev?.type === "assistant") { + for (const block of ev.message?.content ?? []) { + if (block.type === "text" && block.text?.trim()) return { kind: "text", text: block.text }; + if (block.type === "tool_use") return { kind: "tool", text: describeTool(block) }; + } + } + return null; +} + +function describeTool(block) { + const target = block.input?.file_path ?? block.input?.path ?? block.input?.command ?? block.input?.pattern; + if (!target) return block.name; + const short = String(target).includes("/") ? basename(String(target)) : String(target); + return `${block.name} ${short}`; +} + +// ---------- authorization ---------- + +/** + * Default-closed gate for command events. Exec must be turned on explicitly and + * the sender must appear in `exec.allowed_user_ids`; an empty list allows nobody. + */ +export function isExecAuthorized(event, execCfg = {}) { + if (!execCfg.enabled) return { ok: false, reason: "exec is disabled for this project" }; + const allowed = (execCfg.allowed_user_ids ?? []).map(String); + if (!allowed.length) return { ok: false, reason: "exec allow-list is empty" }; + const from = event?.from_id; + if (from === undefined || from === null || from === "") return { ok: false, reason: "sender is not authorized" }; + if (!allowed.includes(String(from))) return { ok: false, reason: "sender is not authorized" }; + return { ok: true }; +} + +// ---------- claude invocation ---------- + +const DEFAULT_PERMISSION_MODE = "acceptEdits"; + +/** argv for `claude`. The prompt is one argv entry — never interpolated into a shell. */ +export function buildClaudeArgs({ prompt, sessionId, isNew, permissionMode, allowedTools }) { + const args = [ + "-p", String(prompt), + "--output-format", "stream-json", + "--verbose", + "--permission-mode", permissionMode || DEFAULT_PERMISSION_MODE, + ]; + args.push(isNew ? "--session-id" : "--resume", sessionId); + if (allowedTools?.length) args.push("--allowedTools", allowedTools.join(",")); + return args; +} + +// ---------- session continuity ---------- + +/** + * One Claude session per project so Telegram follow-ups keep context. + * A missing or unreadable file means "start fresh". + */ +export function loadSession(file) { + try { + const id = readFileSync(file, "utf8").trim(); + if (id) return { sessionId: id, isNew: false }; + } catch { /* fall through to a new session */ } + return { sessionId: randomUUID(), isNew: true }; +} + +export function saveSession(file, sessionId) { + writeFileSync(file, sessionId); +} + +export function resetSession(file) { + try { rmSync(file); } catch { /* already gone */ } +} + +// ---------- single-flight lock ---------- + +const isProcessAlive = (pid) => { + try { process.kill(pid, 0); return true; } catch { return false; } +}; + +/** Take the exec lock, reclaiming it if the recorded holder is corrupt or gone. */ +export function acquireLock(file, { pid = process.pid, isAlive = isProcessAlive } = {}) { + try { + const held = JSON.parse(readFileSync(file, "utf8")); + if (Number.isInteger(held?.pid) && isAlive(held.pid)) return false; + } catch { /* no lock, or an unreadable one we may reclaim */ } + writeFileSync(file, JSON.stringify({ pid, since: new Date().toISOString() })); + return true; +} + +export function releaseLock(file) { + try { rmSync(file); } catch { /* already gone */ } +} + +// ---------- inbox scanning ---------- + +/** + * Command events only. Approval events stay untouched — they belong to the + * orchestrator's gate rules, which the executor must never pre-empt. + */ +export function readInboxEvents(inboxDir, type) { + let names; + try { names = readdirSync(inboxDir); } catch { return []; } + const out = []; + for (const name of names.filter((n) => n.endsWith(".json")).sort()) { + const file = join(inboxDir, name); + try { + const event = JSON.parse(readFileSync(file, "utf8")); + if (event?.type === type) out.push({ file, event }); + } catch { /* malformed event — leave it for a human to inspect */ } + } + return out; +} + +export const readCommandEvents = (inboxDir) => readInboxEvents(inboxDir, "command"); + +// ---------- running one command ---------- + +const DEFAULT_TIMEOUT_MINUTES = 10; + +/** + * Run one command event through Claude Code headless. + * + * `spawnFn` and `emit` are injected so the whole path is testable without a real + * child process or a real Telegram round-trip. Every exit path releases the lock. + */ +export async function runCommand({ event, paths, execCfg = {}, spawnFn = spawn, emit, signal }) { + const auth = isExecAuthorized(event, execCfg); + if (!auth.ok) { + emit({ type: "exec_denied", detail: auth.reason, request: event.text }); + return; + } + if (!acquireLock(paths.lockFile)) { + emit({ type: "exec_busy", detail: "another command is still running — try again when it finishes.", request: event.text }); + return; + } + + const fresh = /^\/new\b/.test(String(event.text ?? "")); + const prompt = String(event.text ?? "").replace(/^\/new\b\s*/, "").trim(); + if (fresh) resetSession(paths.sessionFile); + const { sessionId, isNew } = loadSession(paths.sessionFile); + + const args = buildClaudeArgs({ + prompt, + sessionId, + isNew, + permissionMode: execCfg.permission_mode, + allowedTools: execCfg.allowed_tools, + }); + + emit({ type: "exec_started", request: prompt }); + + const timeoutMs = (execCfg.timeout_minutes || DEFAULT_TIMEOUT_MINUTES) * 60_000; + const child = spawnFn("claude", args, { cwd: paths.root, stdio: ["ignore", "pipe", "pipe"] }); + + let ending = null; + const timer = setTimeout(() => { ending ??= "timeout"; child.kill("SIGTERM"); }, timeoutMs); + const onAbort = () => { ending ??= "cancelled"; child.kill("SIGTERM"); }; + signal?.addEventListener("abort", onAbort, { once: true }); + if (signal?.aborted) onAbort(); + + let finished = false; + const stderr = []; + child.stderr?.on("data", (d) => stderr.push(String(d))); + + try { + const rl = createInterface({ input: child.stdout }); + const closed = new Promise((resolve) => child.on("close", resolve)); + + for await (const line of rl) { + const ev = parseStreamLine(line); + if (!ev) continue; + if (ev.kind === "session") { saveSession(paths.sessionFile, ev.text); continue; } + if (ev.kind === "result") { + finished = true; + emit({ type: ev.isError ? "exec_error" : "exec_result", detail: ev.text, request: prompt }); + continue; + } + emit({ type: "exec_progress", detail: ev.text, request: prompt }); + } + await closed; + + if (!finished) { + const detail = + ending === "cancelled" ? "Run cancelled — the Claude process was terminated." + : ending === "timeout" ? `Run timed out after ${execCfg.timeout_minutes || DEFAULT_TIMEOUT_MINUTES} min and was terminated.` + : `Claude exited without a result. ${stderr.join("").trim() || "No stderr output."}`; + emit({ type: "exec_error", detail, request: prompt }); + } + } finally { + clearTimeout(timer); + signal?.removeEventListener("abort", onAbort); + releaseLock(paths.lockFile); + } +} + + +// ---------- daemon ---------- + +const POLL_MS = 1500; + +function emitToOutbox(outboxDir, event) { + mkdirSync(outboxDir, { recursive: true }); + const name = `${Date.now()}-${event.type}-${randomUUID().slice(0, 8)}.json`; + writeFileSync(join(outboxDir, name), JSON.stringify({ ...event, ts: new Date().toISOString() }, null, 2)); +} + +async function daemon({ once = false } = {}) { + const root = process.cwd(); + const cfg = readTelegramConfig(join(root, "project-manifest.yaml")); + if (!cfg.exec.enabled) { + throw new Error("communication.telegram.exec.enabled is not true — the executor stays off."); + } + if (!(cfg.exec.allowed_user_ids ?? []).length) { + throw new Error("communication.telegram.exec.allowed_user_ids is empty — nobody may run commands."); + } + + const spool = join(root, ".toolkit", "telegram"); + const paths = { root, sessionFile: join(spool, ".session"), lockFile: join(spool, ".exec.lock") }; + const inbox = join(spool, "inbox"); + const outbox = join(spool, "outbox"); + const emit = (event) => emitToOutbox(outbox, event); + + releaseLock(paths.lockFile); // a lock left by a crashed run is ours to clear at startup + console.log(`[telegram-executor] up — root ${root}, ${cfg.exec.allowed_user_ids.length} authorized user(s), mode ${cfg.exec.permission_mode || "acceptEdits"}`); + + for (;;) { + for (const { file, event } of readCommandEvents(inbox)) { + rmSync(file, { force: true }); // claim it before running so a crash cannot loop + const ac = new AbortController(); + const watcher = setInterval(() => { + for (const c of readInboxEvents(inbox, "cancel")) { rmSync(c.file, { force: true }); ac.abort(); } + }, POLL_MS); + try { + await runCommand({ event, paths, execCfg: cfg.exec, emit, signal: ac.signal }); + } catch (err) { + emit({ type: "exec_error", detail: `Executor failure: ${err.message}`, request: event.text }); + } finally { + clearInterval(watcher); + } + } + // Drain stray cancels so they cannot abort the next command. + for (const c of readInboxEvents(inbox, "cancel")) rmSync(c.file, { force: true }); + if (once) return; + await new Promise((r) => setTimeout(r, POLL_MS)); + } +} + +if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { + if (process.argv[2] === "--help") { + console.log("telegram-executor: (no args) daemon · --once drain the inbox and exit"); + process.exit(0); + } + daemon({ once: process.argv[2] === "--once" }).catch((err) => { console.error(`[telegram-executor] ${err.message}`); process.exit(1); }); +} \ No newline at end of file diff --git a/extensions/telegram/executor.test.mjs b/extensions/telegram/executor.test.mjs new file mode 100644 index 0000000..9e0db96 --- /dev/null +++ b/extensions/telegram/executor.test.mjs @@ -0,0 +1,422 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { mkdtempSync, writeFileSync, existsSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; +import { EventEmitter } from "node:events"; +import { Readable } from "node:stream"; +import { + chunkForTelegram, + parseStreamLine, + isExecAuthorized, + buildClaudeArgs, + loadSession, + saveSession, + resetSession, + acquireLock, + releaseLock, + readCommandEvents, + runCommand, +} from "./executor.mjs"; + +// ---------- chunkForTelegram ---------- + +test("chunkForTelegram returns a single chunk when text fits", () => { + assert.deepEqual(chunkForTelegram("hello", 100), ["hello"]); +}); + +test("chunkForTelegram splits oversized text into limit-sized chunks", () => { + const chunks = chunkForTelegram("a".repeat(250), 100); + assert.equal(chunks.length, 3); + assert.deepEqual(chunks.map((c) => c.length), [100, 100, 50]); +}); + +test("chunkForTelegram prefers splitting on a newline near the limit", () => { + const text = "x".repeat(90) + "\n" + "y".repeat(90); + const chunks = chunkForTelegram(text, 100); + assert.equal(chunks[0], "x".repeat(90)); + assert.equal(chunks[1], "y".repeat(90)); +}); + +test("chunkForTelegram drops empty input", () => { + assert.deepEqual(chunkForTelegram(" ", 100), []); +}); + +// ---------- parseStreamLine ---------- + +test("parseStreamLine extracts assistant text", () => { + const line = JSON.stringify({ + type: "assistant", + message: { content: [{ type: "text", text: "working on it" }] }, + }); + assert.deepEqual(parseStreamLine(line), { kind: "text", text: "working on it" }); +}); + +test("parseStreamLine reports tool use by name", () => { + const line = JSON.stringify({ + type: "assistant", + message: { content: [{ type: "tool_use", name: "Edit", input: { file_path: "/a/b.ts" } }] }, + }); + assert.deepEqual(parseStreamLine(line), { kind: "tool", text: "Edit b.ts" }); +}); + +test("parseStreamLine captures the session id from the init event", () => { + const line = JSON.stringify({ type: "system", subtype: "init", session_id: "abc-123" }); + assert.deepEqual(parseStreamLine(line), { kind: "session", text: "abc-123" }); +}); + +test("parseStreamLine returns the final result", () => { + const line = JSON.stringify({ type: "result", subtype: "success", result: "all done", is_error: false }); + assert.deepEqual(parseStreamLine(line), { kind: "result", text: "all done", isError: false }); +}); + +test("parseStreamLine flags an error result", () => { + const line = JSON.stringify({ type: "result", subtype: "error_during_execution", result: "boom", is_error: true }); + assert.deepEqual(parseStreamLine(line), { kind: "result", text: "boom", isError: true }); +}); + +test("parseStreamLine ignores malformed json instead of throwing", () => { + assert.equal(parseStreamLine("{not json"), null); +}); + +test("parseStreamLine ignores unrecognised event types", () => { + assert.equal(parseStreamLine(JSON.stringify({ type: "user", message: {} })), null); +}); + +// ---------- isExecAuthorized ---------- + +const EXEC_ON = { enabled: true, allowed_user_ids: [42, 7] }; + +test("isExecAuthorized rejects when exec is disabled", () => { + const v = isExecAuthorized({ from_id: 42 }, { enabled: false, allowed_user_ids: [42] }); + assert.equal(v.ok, false); + assert.match(v.reason, /disabled/i); +}); + +test("isExecAuthorized rejects when no user ids are allow-listed", () => { + const v = isExecAuthorized({ from_id: 42 }, { enabled: true, allowed_user_ids: [] }); + assert.equal(v.ok, false); + assert.match(v.reason, /allow.?list/i); +}); + +test("isExecAuthorized rejects a sender outside the allow-list", () => { + const v = isExecAuthorized({ from_id: 99 }, EXEC_ON); + assert.equal(v.ok, false); + assert.match(v.reason, /not authorized/i); +}); + +test("isExecAuthorized rejects an event carrying no sender id", () => { + assert.equal(isExecAuthorized({}, EXEC_ON).ok, false); +}); + +test("isExecAuthorized accepts an allow-listed sender", () => { + assert.deepEqual(isExecAuthorized({ from_id: 7 }, EXEC_ON), { ok: true }); +}); + +test("isExecAuthorized compares ids as strings so yaml scalars match", () => { + assert.equal(isExecAuthorized({ from_id: "42" }, EXEC_ON).ok, true); +}); + +// ---------- buildClaudeArgs ---------- + +test("buildClaudeArgs starts a fresh session with an explicit session id", () => { + const args = buildClaudeArgs({ prompt: "hi", sessionId: "u-1", isNew: true, permissionMode: "acceptEdits" }); + assert.deepEqual(args.slice(0, 2), ["-p", "hi"]); + assert.ok(args.includes("--session-id")); + assert.equal(args[args.indexOf("--session-id") + 1], "u-1"); + assert.ok(!args.includes("--resume")); +}); + +test("buildClaudeArgs resumes an existing session", () => { + const args = buildClaudeArgs({ prompt: "hi", sessionId: "u-1", isNew: false, permissionMode: "acceptEdits" }); + assert.ok(args.includes("--resume")); + assert.equal(args[args.indexOf("--resume") + 1], "u-1"); + assert.ok(!args.includes("--session-id")); +}); + +test("buildClaudeArgs always requests parseable streaming output", () => { + const args = buildClaudeArgs({ prompt: "hi", sessionId: "u-1", isNew: true, permissionMode: "acceptEdits" }); + assert.equal(args[args.indexOf("--output-format") + 1], "stream-json"); + assert.ok(args.includes("--verbose")); +}); + +test("buildClaudeArgs passes the configured permission mode through", () => { + const args = buildClaudeArgs({ prompt: "hi", sessionId: "u-1", isNew: true, permissionMode: "plan" }); + assert.equal(args[args.indexOf("--permission-mode") + 1], "plan"); +}); + +test("buildClaudeArgs defaults to acceptEdits when no mode is configured", () => { + const args = buildClaudeArgs({ prompt: "hi", sessionId: "u-1", isNew: true }); + assert.equal(args[args.indexOf("--permission-mode") + 1], "acceptEdits"); +}); + +test("buildClaudeArgs never emits a permission-bypass flag", () => { + const args = buildClaudeArgs({ prompt: "hi", sessionId: "u-1", isNew: true, permissionMode: "bypassPermissions" }); + assert.ok(!args.some((a) => a.startsWith("--dangerously"))); + assert.ok(!args.some((a) => a.startsWith("--allow-dangerously"))); +}); + +test("buildClaudeArgs adds an allowed-tools allow-list when configured", () => { + const args = buildClaudeArgs({ prompt: "hi", sessionId: "u-1", isNew: true, allowedTools: ["Read", "Bash(git *)"] }); + assert.equal(args[args.indexOf("--allowedTools") + 1], "Read,Bash(git *)"); +}); + +test("buildClaudeArgs omits allowed-tools when the list is empty", () => { + const args = buildClaudeArgs({ prompt: "hi", sessionId: "u-1", isNew: true, allowedTools: [] }); + assert.ok(!args.includes("--allowedTools")); +}); + +test("buildClaudeArgs passes the prompt as one argv entry, never a shell string", () => { + const args = buildClaudeArgs({ prompt: "rm -rf / ; echo $HOME", sessionId: "u-1", isNew: true }); + assert.equal(args[1], "rm -rf / ; echo $HOME"); +}); + +// ---------- session file ---------- + +function tmp() { + return mkdtempSync(join(tmpdir(), "tg-exec-")); +} + +test("loadSession mints a new uuid session when no file exists", () => { + const s = loadSession(join(tmp(), ".session")); + assert.equal(s.isNew, true); + assert.match(s.sessionId, /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/); +}); + +test("loadSession resumes the saved session on the next call", () => { + const file = join(tmp(), ".session"); + const first = loadSession(file); + saveSession(file, first.sessionId); + const second = loadSession(file); + assert.deepEqual(second, { sessionId: first.sessionId, isNew: false }); +}); + +test("loadSession treats an unreadable session file as a new session", () => { + const file = join(tmp(), ".session"); + writeFileSync(file, ""); + assert.equal(loadSession(file).isNew, true); +}); + +test("resetSession forces the next load to start fresh", () => { + const file = join(tmp(), ".session"); + saveSession(file, "11111111-1111-4111-8111-111111111111"); + resetSession(file); + const after = loadSession(file); + assert.equal(after.isNew, true); + assert.notEqual(after.sessionId, "11111111-1111-4111-8111-111111111111"); +}); + +test("resetSession on a missing file is a no-op", () => { + assert.doesNotThrow(() => resetSession(join(tmp(), ".session"))); +}); + +// ---------- single-flight lock ---------- + +const ALIVE = () => true; +const DEAD = () => false; + +test("acquireLock succeeds when no lock is held", () => { + assert.equal(acquireLock(join(tmp(), ".lock"), { pid: 100, isAlive: ALIVE }), true); +}); + +test("acquireLock refuses while a live holder owns the lock", () => { + const file = join(tmp(), ".lock"); + acquireLock(file, { pid: 100, isAlive: ALIVE }); + assert.equal(acquireLock(file, { pid: 200, isAlive: ALIVE }), false); +}); + +test("acquireLock reclaims a lock whose holder is gone", () => { + const file = join(tmp(), ".lock"); + acquireLock(file, { pid: 100, isAlive: ALIVE }); + assert.equal(acquireLock(file, { pid: 200, isAlive: DEAD }), true); +}); + +test("acquireLock reclaims a corrupt lock file", () => { + const file = join(tmp(), ".lock"); + writeFileSync(file, "garbage"); + assert.equal(acquireLock(file, { pid: 200, isAlive: ALIVE }), true); +}); + +test("releaseLock frees the lock for the next caller", () => { + const file = join(tmp(), ".lock"); + acquireLock(file, { pid: 100, isAlive: ALIVE }); + releaseLock(file); + assert.equal(acquireLock(file, { pid: 200, isAlive: ALIVE }), true); +}); + +test("releaseLock on a missing lock is a no-op", () => { + assert.doesNotThrow(() => releaseLock(join(tmp(), ".lock"))); +}); + +// ---------- inbox scanning ---------- + +function inboxWith(files) { + const dir = tmp(); + for (const [name, body] of Object.entries(files)) { + writeFileSync(join(dir, name), typeof body === "string" ? body : JSON.stringify(body)); + } + return dir; +} + +test("readCommandEvents returns nothing when the inbox does not exist", () => { + assert.deepEqual(readCommandEvents(join(tmp(), "absent")), []); +}); + +test("readCommandEvents leaves approval events for the orchestrator", () => { + const dir = inboxWith({ + "1-approval.json": { type: "approval", action: "approve", brd: "BRD-1" }, + "2-command.json": { type: "command", text: "run tests", from_id: 42 }, + }); + const events = readCommandEvents(dir); + assert.equal(events.length, 1); + assert.equal(events[0].event.text, "run tests"); + assert.ok(existsSync(join(dir, "1-approval.json")), "approval file must stay in the inbox"); +}); + +test("readCommandEvents returns commands oldest first", () => { + const dir = inboxWith({ + "20-command.json": { type: "command", text: "second", from_id: 42 }, + "10-command.json": { type: "command", text: "first", from_id: 42 }, + }); + assert.deepEqual(readCommandEvents(dir).map((e) => e.event.text), ["first", "second"]); +}); + +test("readCommandEvents skips unparseable files without throwing", () => { + const dir = inboxWith({ + "1-command.json": "{broken", + "2-command.json": { type: "command", text: "ok", from_id: 42 }, + }); + assert.deepEqual(readCommandEvents(dir).map((e) => e.event.text), ["ok"]); +}); + +test("readCommandEvents ignores non-json files", () => { + const dir = inboxWith({ "notes.txt": "hello", "1-command.json": { type: "command", text: "ok", from_id: 42 } }); + assert.equal(readCommandEvents(dir).length, 1); +}); + +// ---------- runCommand ---------- + +function fakeSpawn(lines, { code = 0, hang = false } = {}) { + const calls = []; + const fn = (cmd, args, opts) => { + calls.push({ cmd, args, opts }); + const child = new EventEmitter(); + child.stdout = Readable.from(hang ? [] : lines.map((l) => JSON.stringify(l) + "\n")); + child.stderr = Readable.from([]); + child.killed = false; + child.kill = () => { child.killed = true; child.emit("close", 143); }; + if (!hang) child.stdout.on("end", () => setImmediate(() => child.emit("close", code))); + return child; + }; + fn.calls = calls; + return fn; +} + +function paths() { + const dir = tmp(); + return { root: dir, sessionFile: join(dir, ".session"), lockFile: join(dir, ".lock") }; +} + +const OK_EXEC = { enabled: true, allowed_user_ids: [42] }; +const collect = () => { const out = []; return Object.assign((ev) => out.push(ev), { out }); }; + +test("runCommand refuses an unauthorized sender and never spawns", async () => { + const emit = collect(); + const spawnFn = fakeSpawn([]); + await runCommand({ event: { text: "hi", from_id: 99 }, paths: paths(), execCfg: OK_EXEC, spawnFn, emit }); + assert.equal(spawnFn.calls.length, 0); + assert.deepEqual(emit.out.map((e) => e.type), ["exec_denied"]); +}); + +test("runCommand runs claude in the project root with the prompt as argv", async () => { + const emit = collect(); + const p = paths(); + const spawnFn = fakeSpawn([{ type: "result", subtype: "success", result: "done", is_error: false }]); + await runCommand({ event: { text: "run tests", from_id: 42 }, paths: p, execCfg: OK_EXEC, spawnFn, emit }); + assert.equal(spawnFn.calls[0].cmd, "claude"); + assert.equal(spawnFn.calls[0].args[1], "run tests"); + assert.equal(spawnFn.calls[0].opts.cwd, p.root); + assert.equal(spawnFn.calls[0].opts.shell, undefined); +}); + +test("runCommand relays progress then the final result", async () => { + const emit = collect(); + const spawnFn = fakeSpawn([ + { type: "system", subtype: "init", session_id: "sess-9" }, + { type: "assistant", message: { content: [{ type: "tool_use", name: "Edit", input: { file_path: "/a/b.ts" } }] } }, + { type: "result", subtype: "success", result: "2 files changed", is_error: false }, + ]); + await runCommand({ event: { text: "go", from_id: 42 }, paths: paths(), execCfg: OK_EXEC, spawnFn, emit }); + assert.deepEqual(emit.out.map((e) => e.type), ["exec_started", "exec_progress", "exec_result"]); + assert.equal(emit.out.at(-1).detail, "2 files changed"); +}); + +test("runCommand persists the session id so the next command resumes it", async () => { + const p = paths(); + const spawnFn = fakeSpawn([ + { type: "system", subtype: "init", session_id: "sess-9" }, + { type: "result", subtype: "success", result: "ok", is_error: false }, + ]); + await runCommand({ event: { text: "go", from_id: 42 }, paths: p, execCfg: OK_EXEC, spawnFn, emit: collect() }); + assert.deepEqual(loadSession(p.sessionFile), { sessionId: "sess-9", isNew: false }); +}); + +test("runCommand reports an error result as exec_error", async () => { + const emit = collect(); + const spawnFn = fakeSpawn([{ type: "result", subtype: "error_during_execution", result: "boom", is_error: true }]); + await runCommand({ event: { text: "go", from_id: 42 }, paths: paths(), execCfg: OK_EXEC, spawnFn, emit }); + assert.equal(emit.out.at(-1).type, "exec_error"); +}); + +test("runCommand refuses to start while another run holds the lock", async () => { + const p = paths(); + acquireLock(p.lockFile, { pid: process.pid }); + const emit = collect(); + const spawnFn = fakeSpawn([]); + await runCommand({ event: { text: "go", from_id: 42 }, paths: p, execCfg: OK_EXEC, spawnFn, emit }); + assert.equal(spawnFn.calls.length, 0); + assert.equal(emit.out.at(-1).type, "exec_busy"); +}); + +test("runCommand releases the lock when the run finishes", async () => { + const p = paths(); + const spawnFn = fakeSpawn([{ type: "result", subtype: "success", result: "ok", is_error: false }]); + await runCommand({ event: { text: "go", from_id: 42 }, paths: p, execCfg: OK_EXEC, spawnFn, emit: collect() }); + assert.equal(acquireLock(p.lockFile, { pid: process.pid }), true); +}); + +test("runCommand kills a run that exceeds its timeout", async () => { + const emit = collect(); + const spawnFn = fakeSpawn([], { hang: true }); + await runCommand({ + event: { text: "go", from_id: 42 }, paths: paths(), + execCfg: { ...OK_EXEC, timeout_minutes: 0.001 }, spawnFn, emit, + }); + assert.equal(emit.out.at(-1).type, "exec_error"); + assert.match(emit.out.at(-1).detail, /timed out/i); +}); + +test("runCommand starts a fresh session for /new and drops the marker from the prompt", async () => { + const p = paths(); + saveSession(p.sessionFile, "old-session"); + const spawnFn = fakeSpawn([{ type: "result", subtype: "success", result: "ok", is_error: false }]); + await runCommand({ event: { text: "/new refactor the parser", from_id: 42 }, paths: p, execCfg: OK_EXEC, spawnFn, emit: collect() }); + const args = spawnFn.calls[0].args; + assert.ok(args.includes("--session-id"), "a /new command must not resume the old session"); + assert.equal(args[1], "refactor the parser"); +}); + +test("runCommand terminates the child, reports cancellation, and frees the lock when aborted", async () => { + const emit = collect(); + const p = paths(); + const spawnFn = fakeSpawn([], { hang: true }); + const ac = new AbortController(); + setTimeout(() => ac.abort(), 20); + await runCommand({ + event: { text: "go", from_id: 42 }, paths: p, + execCfg: { ...OK_EXEC, timeout_minutes: 0.05 }, spawnFn, emit, signal: ac.signal, + }); + assert.equal(emit.out.at(-1).type, "exec_error"); + assert.match(emit.out.at(-1).detail, /cancelled/i); + assert.equal(acquireLock(p.lockFile, { pid: process.pid }), true); +}); diff --git a/extensions/telegram/plugin.test.mjs b/extensions/telegram/plugin.test.mjs new file mode 100644 index 0000000..7561f3a --- /dev/null +++ b/extensions/telegram/plugin.test.mjs @@ -0,0 +1,88 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { classifyMessage, formatEvent } from "./telegram-plugin.mjs"; + +// ---------- classifyMessage ---------- + +test("classifyMessage routes /status to the status reply", () => { + assert.deepEqual(classifyMessage("/status"), { kind: "status" }); +}); + +test("classifyMessage routes /status with a bot suffix", () => { + assert.deepEqual(classifyMessage("/status@my_bot"), { kind: "status" }); +}); + +test("classifyMessage routes /cancel to a cancel event", () => { + assert.deepEqual(classifyMessage("/cancel"), { kind: "cancel" }); +}); + +test("classifyMessage treats free text as a command", () => { + assert.deepEqual(classifyMessage("run the test suite"), { kind: "command", text: "run the test suite" }); +}); + +test("classifyMessage keeps /new as part of the command text", () => { + assert.deepEqual(classifyMessage("/new refactor the parser"), { kind: "command", text: "/new refactor the parser" }); +}); + +test("classifyMessage ignores empty or whitespace-only messages", () => { + assert.equal(classifyMessage(" ").kind, "ignore"); + assert.equal(classifyMessage(undefined).kind, "ignore"); +}); + +// ---------- formatEvent: exec events ---------- + +const NOTIF = { approvals: true, failures: true }; + +test("formatEvent announces the start of a run", () => { + const out = formatEvent({ type: "exec_started", request: "run tests" }, NOTIF); + assert.equal(out.wanted, true); + assert.match(out.text, /run tests/); +}); + +test("formatEvent relays a successful result", () => { + const out = formatEvent({ type: "exec_result", detail: "2 files changed" }, NOTIF); + assert.equal(out.wanted, true); + assert.match(out.text, /2 files changed/); +}); + +test("formatEvent relays an error", () => { + const out = formatEvent({ type: "exec_error", detail: "boom" }, NOTIF); + assert.equal(out.wanted, true); + assert.match(out.text, /boom/); +}); + +test("formatEvent relays a denial so a blocked sender is never silently ignored", () => { + const out = formatEvent({ type: "exec_denied", detail: "sender is not authorized" }, NOTIF); + assert.equal(out.wanted, true); + assert.match(out.text, /not authorized/); +}); + +test("formatEvent sends progress by default", () => { + assert.equal(formatEvent({ type: "exec_progress", detail: "Edit b.ts" }, NOTIF).wanted, true); +}); + +test("formatEvent suppresses progress when exec_progress is disabled", () => { + const out = formatEvent({ type: "exec_progress", detail: "Edit b.ts" }, { ...NOTIF, exec_progress: false }); + assert.equal(out.wanted, false); +}); + +test("formatEvent never suppresses a result even when progress is off", () => { + const out = formatEvent({ type: "exec_result", detail: "done" }, { ...NOTIF, exec_progress: false }); + assert.equal(out.wanted, true); +}); + +test("formatEvent escapes html in executor output", () => { + const out = formatEvent({ type: "exec_result", detail: "" }, NOTIF); + assert.ok(!out.text.includes(" + + + diff --git a/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/run-local.sh b/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/run-local.sh new file mode 100755 index 0000000..2a6ecfd --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/run-local.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# Run Local — default USER_REVIEW step (docs/workflow.md STATE 09, skills/09 G1). +# Copied into artifacts/prototype/ by STATE 07; run it from there. +# Serves prototype/ over HTTP (serve.py — live reload: any file change in +# prototype/ auto-refreshes the browser, but ONLY while the workflow is in +# USER_REVIEW per state/machine_state.yaml) and opens the player (play.html). +# Idempotent: re-run = "Refresh run local" — reuses a live server, just reopens player. +# A plain server (no live reload) already on the port gets replaced. +set -euo pipefail + +PORT="${1:-8765}" +DIR="$(cd "$(dirname "$0")" && pwd)" +URL="http://localhost:${PORT}/play.html" + +up() { lsof -nP -iTCP:"${PORT}" -sTCP:LISTEN >/dev/null 2>&1; } +live_reload() { curl -sf "http://localhost:${PORT}/__watch" >/dev/null 2>&1; } + +if up && live_reload; then + echo "refresh: live-reload server already on :${PORT} — reusing" +else + if up; then + echo "upgrade: plain server on :${PORT} — replacing with live-reload server" + lsof -nP -tiTCP:"${PORT}" -sTCP:LISTEN | xargs kill 2>/dev/null || true + sleep 0.3 + fi + echo "start: serving ${DIR} on :${PORT} (live reload)" + (cd "${DIR}" && nohup python3 serve.py "${PORT}" >/dev/null 2>&1 &) + # wait until up (max ~3s) + for _ in $(seq 1 30); do + curl -s -o /dev/null "${URL}" && break + sleep 0.1 + done +fi + +echo "player: ${URL}" +if command -v open >/dev/null 2>&1; then open "${URL}"; fi diff --git a/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/serve.py b/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/serve.py new file mode 100644 index 0000000..4c03a36 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/serve.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +"""Run Local dev server — static serve + live reload (docs/workflow.md STATE 09). + +Lives in artifacts/prototype/ (copied from templates/prototype/ by STATE 07). + +Serves this directory and injects a tiny poller into every .html response; +any file change in the tree reloads the browser automatically. +Endpoint /__watch returns the newest mtime in the tree (also used by +run-local.sh to detect a live-reload-capable server vs a plain one). + +Live reload is active ONLY while the workflow is in the USER_REVIEW state +(state/machine_state.yaml top-level current_state). Outside review the +server still serves pages, but /__watch answers "off" and no poller is +injected — checked per request, so a state transition applies without +restart. Missing/unreadable state file = reload ON (standalone use). +""" +import os +import re +import sys +from http.server import ThreadingHTTPServer, SimpleHTTPRequestHandler + +DIR = os.path.dirname(os.path.abspath(__file__)) +PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8765 +STATE_FILE = os.environ.get('TOOLKIT_STATE_FILE') or os.path.abspath( + os.path.join(DIR, '..', '..', 'state', 'machine_state.yaml')) + + +def in_review(): + try: + with open(STATE_FILE, encoding='utf-8') as f: + for line in f: + m = re.match(r'^ current_state:\s*(\S+)', line) + if m: # first 2-space-indented hit = machine_state's own field (parked flows nest deeper) + return m.group(1) == 'USER_REVIEW' + except OSError: + pass + return True + +SNIPPET = (b"") + + +def latest_mtime(): + mx = 0 + for root, _dirs, files in os.walk(DIR): + for f in files: + try: + mx = max(mx, os.stat(os.path.join(root, f)).st_mtime_ns) + except OSError: + pass + return str(mx) + + +class Handler(SimpleHTTPRequestHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, directory=DIR, **kwargs) + + def log_message(self, *args): + pass + + def _send(self, body, ctype): + self.send_response(200) + self.send_header('Content-Type', ctype) + self.send_header('Cache-Control', 'no-store') + self.send_header('Content-Length', str(len(body))) + self.end_headers() + self.wfile.write(body) + + def do_GET(self): + live = in_review() + if self.path.startswith('/__watch'): + self._send(latest_mtime().encode() if live else b'off', 'text/plain') + return + if not live: + super().do_GET() + return + path = self.translate_path(self.path.split('?', 1)[0].split('#', 1)[0]) + if os.path.isdir(path): + path = os.path.join(path, 'index.html') + if path.endswith('.html') and os.path.isfile(path): + with open(path, 'rb') as f: + body = f.read() + if b'' in body: + body = body.replace(b'', SNIPPET + b'\n', 1) + else: + body += SNIPPET + self._send(body, 'text/html; charset=utf-8') + return + super().do_GET() + + +if __name__ == '__main__': + print(f'serve.py: {DIR} on :{PORT} (live reload on)') + ThreadingHTTPServer(('', PORT), Handler).serve_forever() diff --git a/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/signin.html b/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/signin.html new file mode 100644 index 0000000..f6fb89a --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/deliverable-signin/prototype/signin.html @@ -0,0 +1,373 @@ + + + + + +Sign In — proto-signin-02 + + + + + +
+ proto-signin-02 + S-SIGN-01 + + + + + + + + + + + +
+ +
+
+ + +
+

Sign in

+

Use the email and password for your account.

+ + + + + +
+ + +
+ +
+ + +
+ + + +
+ + +
+
+ +
+

Reset password

+

We will email you a link to set a new one.

+ + + +
+ + +

We send the same reply whether or not the address has an account.

+
+ + +
+ + + +
+

Check your email

+

If that address has an account, a reset link is on its way to

+ sam@example.com + +
+

Sent again. Give it a minute before checking.

+
+ + + + +
+ +
+
+ + + + diff --git a/design-toolkit/examples/signin/artifacts/flow-visualization-signin.md b/design-toolkit/examples/signin/artifacts/flow-visualization-signin.md new file mode 100644 index 0000000..d4a235c --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/flow-visualization-signin.md @@ -0,0 +1,113 @@ +--- +artifact: flow-visualization +version: navmap-signin-01 +produced_by: flow-visualization +reads_versions: + screen-registry.csv: "3 rows · S-SIGN-01, S-SIGN-02, S-SIGN-03" + flows-signin.md: flow-signin-01 + prototype: proto-signin-03 + state-machines.json: "3 machines · 11 states · 17 transitions" + edge-annotations.json: "4 edges · 3 frames" +scope: "signin only — S-SIGN-01, S-SIGN-02, S-SIGN-03. This map covers one flow and makes no claim about any other." +figma: { file: null, pages: [] } +gate: { developer_handoff: granted, date: "2026-08-07", granted_by: user } +--- + +# Navigation Map — signin + +**Status: READY FOR DEVELOPMENT**, scoped to the flows named in `scope` — never a bare "handoff ready". + +## What was produced, and what was not + +The **derivations** are the product of this state: `navgraph.json`, `stategraph.json`, `stateprobe.json` and `annotations.json`, each with a report and an exit code. **No Figma layer was generated.** That is recorded as a scope statement, not omitted: a design file is a *rendering* of `navgraph.json`, and in a Design file a connector is a vector that does not reflow — a stale arrow is indistinguishable from a fresh one. The derivations are what a build team can re-check; the picture is what would go stale. + +## Sections built + +| Section | Journey | Screens | Edges | Figma node | +|---|---|---|---|---| +| `FLOW-001 • Sign In and Password Reset` | credential entry → recovery → reset request → acknowledgement | 3 | 4 | — (no design file this run) | + +One Section, because there is one journey. A Section named after a *feature* becomes a bucket, and a bucket answers no question. + +## Findings at gate + +| Severity | Code | Subject | Status | +|---|---|---|---| +| — | — | — | **none outstanding** | + +Four validators, four clean exits. The gate passed on **this report and these exit codes**, not on a picture. + +``` +navgraph 3 screens · 4 edges · 0 cross-feature + 0 blocking / 0 major / 0 advisory exit 0 +stategraph 3 machines · 11 states · 17 transitions · 11 hooked + 0 blocking / 0 major / 0 advisory exit 0 +stateprobe 11 urls · 11 painted · 0 failed · 0 id-drift exit 0 +annotate 4 edges · 3 frames · 0 network call sites + 0 blocking / 0 major / 0 advisory exit 0 +``` + +### Findings that were raised and closed during this state + +Recorded because a report showing only the final state hides the work. + +| Code | What it caught | Resolution | +|---|---|---| +| `S7-dead-end` (advisory) | `locked{rate-limited}` had no outbound transition and was not marked terminal. | **Correct finding.** The way out of that state leaves the screen — the reset route goes to `S-SIGN-02`, which is `navgraph`'s edge to draw, not this machine's. Marked `terminal: true` with the reason written down. Flagged rather than left to re-report every run: a suppressed advisory teaches a reader to skim. | +| `E11-api-claim` (**blocking**) | 4 edges claimed `none (simulated)` while the sweep found a network call site at `signin.html:262`. | **Confirmed at source: the "call site" was the comment claiming there were no network calls.** The sweep is deliberately broad and matched `XMLHttpRequest` in prose. Fixed in the prototype — the disclaimer no longer names the APIs it disclaims. **A rule fell out of it: do not write the name of the thing you are claiming not to use, inside the file being swept for it.** | + +The `E11` fix moved bytes after the Primary gate, which reverted it to `pending`, which is the stale-approval rule doing its job. The delta was classified **bug-fix-only** with byte-level evidence and ratified by a scope confirm. See `review-signin-01`. + +## Boundary status (W8) + +| Port | Owning flow | Status | Checked on | +|---|---|---|---| +| `⟂HOME-01` | the authenticated area — not in this run's scope | **mocked** — the absence of a destination | 2026-08-07 | + +**A boundary is a dated claim.** `⟂HOME-01` is correct as a mock today and becomes silently wrong the moment the authenticated area ships. Re-derive this table whenever any other feature reaches `FINAL_OUTPUT`. A status with no date is not a status. + +## Sync record (W7) + +| Date | Trigger | Edge-set delta | Actions taken | +|---|---|---|---| +| 2026-08-07 | first derivation | 4 edges, from 0 | Derived from the registry, reconciled against `flow-signin-01`, annotated, probed. | +| 2026-08-07 | `proto-signin-02` → `proto-signin-03` | **0** — no edge changed | Re-ran all four validators. The prototype delta was a comment; the navigation model was unaffected, and *the derivation proving that* is the sync record. | + +*"We updated the file"* is not a sync record. A diff of the edge set is. + +## Extensions + +| Ext | Status | Evidence | +|---|---|---| +| **E1** swimlanes | **3 / 3 screens laned** — all `customer`; `admin`, `system`, `api` declared and empty | `reference/nav-lanes.json`. The **honest degenerate case** for a single-actor product: three empty lanes say *checked, nothing here*; a missing file says nothing at all. `navgraph` reports `N8` for any unlaned screen and never guesses a lane. | +| **E2** cross-feature map | **0 cross-feature edges** | `navgraph.json.crossFlow`. Every edge is intra-flow because this run is one flow. Expect ~half the edge set to cross a boundary once a second flow exists — that is the half no single flow document owns. | +| **E3** heatmap | derived, **measured not assigned** | `navgraph.json.heat`. `S-SIGN-01` is the hub: **in-degree 2** from 1 source flow. On a one-flow product a heatmap is nearly trivial; it earns its place at the scale where hubs are not obvious by eye. | +| **E4** deep links | **1 / 1 flows addressable · 11 / 11 states** | Hooks read **out of the implementation**, not out of a doc claiming them. `?view` and `?state` both confirmed read by the page. `stateprobe` then drove all 11 and asserted each paints — because proving a hook is *read* is not proving the state is *shown*. | +| **E5** state machines | **3 / 3 screens · 11 states · 17 transitions · 0 findings** | Node set derived from the registry; edge set authored with `file:line` evidence, every citation resolved against the frozen bytes. **0 states declared-but-unbuilt**, 1 terminal, 0 entry-only. | +| **E6** annotations | **4 / 4 edges · 3 / 3 frames · 0 blank · 0 UNKNOWN** | `nav` and `guard` authored with evidence; `anim` and `api` derived and re-swept every run. Every `api` value reads `none (simulated)` — **and that column is only worth reading because the tool re-greps for request APIs itself and fails if the claim and the sweep disagree. It did exactly that.** | +| **E7** overview page | **not built** | No design file this run. The counts, coverage, heatmap, QA paths, findings and legend all exist in the reports above; the **provenance block** is this document's frontmatter. | + +## What a first derivation found here, and why that is not the general case + +`navgraph` opened at **0 blocking / 0 major / 0 advisory**. That is unusual and worth stating plainly rather than presenting as typical: this registry is **3 rows, authored in one sitting directly from a ratified flow graph, never hand-edited**. The extraction run's first derivation opened at **2 blocking · 8 major · 52 advisory across 48 screens**, and every finding was a real registry defect. + +Finding count scales with registry size and with how many hands have edited it. **A clean first derivation on 3 rows is evidence about the registry's age, not about the tool's usefulness.** The layer that found real problems here was `stategraph`/`annotate` — the two that check authored claims against the frozen bytes. + +## Developer Handoff Gate + +| Requirement | Held by | +|---|---| +| navigation visualization complete (V1, V2, V6, V7) | every registry entry in the Section; every derived path annotated; entry screen marked; `FLOW-001 • Sign In and Password Reset` | +| screen contract synchronized (V13) | `navgraph.json` re-derives identically from the current registry — verified by re-running after the prototype delta | +| connectors validated (V4, V8) | derived, not drawn; direction matches the derived edge direction by construction | +| Sections organized (V3, V5) | 0 orphans; every branch terminates or is a declared boundary | +| no broken navigation | all four validators **exit 0** at `--fail-on major` | +| flow diagrams up to date (W7) | sync record above, dated, with the edge-set delta | + +**Granted** by the user, 2026-08-07, on the report and the exit codes. + +**Versions the gate saw:** registry `reference/screen-registry.csv` (3 rows) · derivation `navgraph.json`, this run · prototype `proto-signin-03`. A gate that cannot name its bytes is the defect one real gate record shipped — it dropped `reads_versions` entirely, which is the exact field delivery is checked against. + +## Exit + +Developer Handoff Gate `granted` → **`FINAL_OUTPUT`**. diff --git a/design-toolkit/examples/signin/artifacts/flows-signin.md b/design-toolkit/examples/signin/artifacts/flows-signin.md new file mode 100644 index 0000000..429e023 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/flows-signin.md @@ -0,0 +1,160 @@ +--- +artifact: flows +version: flow-signin-01 +produced_by: flow-generation +reads_versions: + ux-plan-signin.md: ux-signin-01 + requirements-signin.md: req-signin-01 +feature: signin +folds_in: [] +--- + +# Flows — signin + +Node ids = prototype views. `⟂` = flow boundary (another flow's screen, mocked). + +Node contents below are **triggers, guards and routes**. Naming a node after a screen id is the toolkit convention; it does not make this a screen document. + +## Canon entry paths + +These are the paths a reviewer checks the prototype against. + +1. **Straight in** — cold start → credentials entered → submit → authenticated area. +2. **Mistyped and corrected** — cold start → submit → rejected → correct the secret → submit → authenticated area. +3. **Locked out, then reset** — cold start → submit rejected ×5 → locked → reset route → request → acknowledged. +4. **Forgot from the start** — cold start → reset route → request → acknowledged → back to credentials. + +## F1 — Credential entry and recovery (TASK-A, TASK-B) + +``` +app launch ──▶ S-SIGN-01 (happy) + +S-SIGN-01 ──submit──▶ [D1 both fields non-empty?] + D1 no ──▶ (unreachable — submit is inert; guarded, not branched) + D1 yes ──▶ S-SIGN-01 (loading) ──▶ [D2 reachable?] + +D2 no ──▶ S-SIGN-01 (offline) recovery: retry edge → loading +D2 yes ──▶ [D3 credentials accepted?] + + D3 yes ──▶ ⟂HOME-01 + D3 no, attempts < N ──▶ S-SIGN-01 (error{invalid-credentials}) + D3 no, attempts >= N ──▶ S-SIGN-01 (locked{rate-limited}) + +S-SIGN-01 (error{invalid-credentials}) ──correct + submit──▶ S-SIGN-01 (loading) +S-SIGN-01 (offline) ──retry──▶ S-SIGN-01 (loading) +S-SIGN-01 (locked{rate-limited}) ──reset route──▶ S-SIGN-02 (happy) +S-SIGN-01 (any state) ──reset route──▶ S-SIGN-02 (happy) +``` + +**D1:** `identifier.length > 0 && secret.length > 0` — enforced as a **guard on the affordance**, not as a branch. The false arm is unreachable by construction, which is why it is not drawn as a route. Stating it here rather than omitting it is the difference between a guarded edge and a missing one. + +**D2:** `navigator.onLine` at submit time. Exhaustive over `{true, false}`. + +**D3:** `accepted ∈ {true, false}` × `attempts ∈ {< N, ≥ N}`. Three arms, and the pair is exhaustive: accepted-and-locked cannot occur because a successful attempt resets the counter. `N` is `o-s1`, assumed 5 — **carried, not chosen here**. The branch exists regardless of the number; only the copy depends on it. + +**Not drawn, and why:** `interrupted` from `ux-signin-01` is not a node. Leaving and re-entering the area produces a fresh `S-SIGN-01 (happy)` — it is the *absence* of retained state, not a state of its own. Recorded so its absence reads as a decision. + +## F2 — Reset request (TASK-C) + +``` +S-SIGN-01 (any) ──reset route──▶ S-SIGN-02 (happy) [identifier carried in] + +S-SIGN-02 ──submit──▶ [D4 identifier well-formed?] + D4 no ──▶ S-SIGN-02 (error{invalid-email}) recovery: correct + submit → loading + D4 yes ──▶ S-SIGN-02 (loading) ──▶ [D5 reachable?] + +D5 no ──▶ S-SIGN-02 (error{invalid-email}, offline variant) + recovery: retry edge → loading +D5 yes ──▶ S-SIGN-03 (happy) ← REPLACE, not push + +S-SIGN-02 ──back──▶ S-SIGN-01 (happy) [identifier preserved] + +S-SIGN-03 ──resend──▶ [D6 within throttle window?] + D6 yes ──▶ S-SIGN-03 (error{resend-throttled}) recovery: wait, then resend + D6 no ──▶ S-SIGN-03 (success{resent}) + +S-SIGN-03 ──back to sign in──▶ S-SIGN-01 (happy) +``` + +**D4:** `wellFormed(identifier)` — exhaustive over `{true, false}`. **There is deliberately no `account exists?` decision anywhere in F2.** A well-formed identifier always reaches `S-SIGN-03`, whether or not it belongs to an account. Adding that branch would satisfy a helpfulness instinct and build an account-enumeration oracle (AC4.3, research T2). + +**D5:** `navigator.onLine`. Exhaustive. + +**D6:** `now - lastSend < window`. Exhaustive over `{true, false}`. `window` is copy, not a branch. + +`S-SIGN-02 → S-SIGN-03` is a **replace**, not a push: back into a request already submitted invites a duplicate. That is why `S-SIGN-03` carries its own explicit route back rather than relying on browser back. + +## Decision log + +| ID | Decision | Ruled by | Date | +|---|---|---|---| +| D-s4 | Password paste is not blocked — blocking it removes the mechanism SC 3.3.8 relies on | product-review (D-s4) | 2026-08-07 | +| D-f1 | `D1` is a **guard on the affordance**, not a branch. The empty-submit arm is unreachable by construction and is documented rather than drawn | this state | 2026-08-07 | +| D-f2 | **No `account exists?` decision in F2.** A well-formed identifier always reaches acknowledgement | requirements AC4.3 + research T2 | 2026-08-07 | +| D-f3 | `S-SIGN-02 → S-SIGN-03` is a **replace**; `S-SIGN-01 → S-SIGN-02` is a **push** | ux-signin-01 navigation model | 2026-08-07 | +| D-f4 | `interrupted` is not a node — it is the absence of retained state | this state | 2026-08-07 | +| D-f5 | Attempt threshold `N` is carried as `o-s1`, not chosen here. The branch is drawn; the number is not | this state | 2026-08-07 | + +## Reachability report + +| Node | Reachable from | Terminal? | Justification if terminal | +|---|---|---|---| +| `S-SIGN-01 (happy)` | app launch, S-SIGN-02 back, S-SIGN-03 back to sign in | no | — | +| `S-SIGN-01 (loading)` | S-SIGN-01 happy, error, offline retry | no | — | +| `S-SIGN-01 (error{invalid-credentials})` | D3 no, attempts < N | no | recovery: correct + submit | +| `S-SIGN-01 (locked{rate-limited})` | D3 no, attempts ≥ N | no | recovery: reset route | +| `S-SIGN-01 (offline)` | D2 no | no | recovery: retry | +| `S-SIGN-02 (happy)` | S-SIGN-01 reset route (from any state) | no | — | +| `S-SIGN-02 (loading)` | D4 yes | no | — | +| `S-SIGN-02 (error{invalid-email})` | D4 no, D5 no | no | recovery: correct + submit / retry | +| `S-SIGN-03 (happy)` | D5 yes | no | routes: resend, back to sign in | +| `S-SIGN-03 (success{resent})` | D6 no | no | routes: resend again, back to sign in | +| `S-SIGN-03 (error{resend-throttled})` | D6 yes | no | recovery: wait, then resend | +| `⟂HOME-01` | D3 yes | **boundary** | leaves this flow; owned by the authenticated area | + +**Unreachable nodes: 0.** **Dead ends without justification: 0.** + +Every non-happy node has at least one outbound edge that leads somewhere the user can act (AC6.2). None is terminal. + +## Recovery coverage + +| Non-happy state (ux-plan) | Recovery transition | +|---|---| +| TASK-A / loading | resolves to one of `⟂HOME-01`, `error{invalid-credentials}`, `locked{rate-limited}`, `offline` — never hangs | +| TASK-A / offline | retry edge → `S-SIGN-01 (loading)` | +| TASK-A / interrupted | re-entry produces `S-SIGN-01 (happy)` — see D-f4 | +| TASK-B / error (credential rejected) | correct + submit → `S-SIGN-01 (loading)` | +| TASK-B / locked (attempts exhausted) | reset route → `S-SIGN-02 (happy)` — the strongest reason to want the reset branch | +| TASK-B / offline | retry edge → `S-SIGN-01 (loading)` | +| TASK-C / loading | resolves to `S-SIGN-03 (happy)` or `S-SIGN-02 (error{invalid-email})` | +| TASK-C / error (malformed) | correct + submit → `S-SIGN-02 (loading)` | +| TASK-C / error (repeat throttled) | wait, then resend → `S-SIGN-03 (success{resent})` | +| TASK-C / offline | retry edge → `S-SIGN-02 (loading)` | + +All 10 non-happy states from `ux-signin-01` have a recovery transition (V3). + +## Flow boundaries + +| Boundary node | Owning flow | Status | Checked on | +|---|---|---|---| +| `⟂HOME-01` | authenticated area (not in this run's scope) | **mocked** | 2026-08-07 | + +**A boundary status is a dated claim.** `⟂HOME-01` is correct as a mock *today*, and becomes silently wrong the moment the authenticated area ships. Re-check this table whenever any other feature reaches `FINAL_OUTPUT`. + +**Scope of this clearance claim:** *this flow* has exactly one boundary mock, and it is the one above. The claim is about `flows-signin.md`, not about any other flow. + +## Open decisions + +- **`o-s1`:** attempt threshold `N` — the `D3` branch exists; the number does not. Ruled by: auth service owner. +- **`o-s2`:** reveal-the-secret affordance — would add no node and no edge, only an in-state control. Ruled by: product, at STATE 06. +- **`o-s3`:** copy ownership. Ruled by: content design. +- **`o-s5`:** announcement-versus-focus ordering on `error{invalid-credentials}`. Not a branch — a within-state behaviour. Ruled by: STATE 06. Verified by: STATE 08. + +## Validation self-check + +- **V1** ✅ — 0 unreachable nodes; every node's inbound source is named in the reachability report. +- **V2** ✅ — 0 dead ends without justification. The only terminal is `⟂HOME-01`, which is a boundary, and it is declared as one. +- **V3** ✅ — all 10 non-happy states from `ux-signin-01` map to a recovery transition. +- **V4** ✅ — D1–D6 each state a guard and cover its whole domain, including the `D1` arm that is unreachable by construction and the `account exists?` branch that is **deliberately absent** rather than forgotten. + +**Exit:** validation passes → `UI_PLANNING`. diff --git a/design-toolkit/examples/signin/artifacts/navgraph.json b/design-toolkit/examples/signin/artifacts/navgraph.json new file mode 100644 index 0000000..4ba29a6 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/navgraph.json @@ -0,0 +1,204 @@ +{ + "meta": { + "root": ".", + "registry": "reference/screen-registry.csv", + "screens": 3, + "edges": 4, + "crossFlowEdges": 0, + "flows": [ + "01 Sign In" + ], + "entryPoints": [ + "S-SIGN-01" + ], + "lanesFile": true + }, + "nodes": [ + { + "id": "S-SIGN-01", + "name": "Sign in", + "flow": "01 Sign In", + "prefix": "SIGN", + "status": "designed", + "states": [ + "happy", + "loading", + "error{invalid-credentials}", + "locked{rate-limited}", + "offline" + ], + "lane": "customer", + "purpose": "Credential entry and in-place recovery from a rejected attempt", + "out": [ + "S-SIGN-02" + ], + "in": [ + "S-SIGN-02", + "S-SIGN-03" + ] + }, + { + "id": "S-SIGN-02", + "name": "Reset password", + "flow": "01 Sign In", + "prefix": "SIGN", + "status": "designed", + "states": [ + "happy", + "loading", + "error{invalid-email}" + ], + "lane": "customer", + "purpose": "Request a reset link for an identifier", + "out": [ + "S-SIGN-01", + "S-SIGN-03" + ], + "in": [ + "S-SIGN-01" + ] + }, + { + "id": "S-SIGN-03", + "name": "Check your email", + "flow": "01 Sign In", + "prefix": "SIGN", + "status": "designed", + "states": [ + "happy", + "success{resent}", + "error{resend-throttled}" + ], + "lane": "customer", + "purpose": "Acknowledge the request and offer a throttled repeat", + "out": [ + "S-SIGN-01" + ], + "in": [ + "S-SIGN-02" + ] + } + ], + "edges": [ + { + "from": "S-SIGN-01", + "to": "S-SIGN-02", + "label": "forgot password", + "source": "navigates_to", + "labels": [ + "forgot password" + ], + "crossFlow": false + }, + { + "from": "S-SIGN-02", + "to": "S-SIGN-01", + "label": "back", + "source": "navigates_to", + "labels": [ + "back" + ], + "crossFlow": false + }, + { + "from": "S-SIGN-02", + "to": "S-SIGN-03", + "label": "request accepted", + "source": "navigates_to", + "labels": [ + "request accepted" + ], + "crossFlow": false + }, + { + "from": "S-SIGN-03", + "to": "S-SIGN-01", + "label": "back to sign in", + "source": "navigates_to", + "labels": [ + "back to sign in" + ], + "crossFlow": false + } + ], + "crossFlow": [], + "heat": [ + { + "id": "S-SIGN-01", + "name": "Sign in", + "flow": "01 Sign In", + "inDegree": 2, + "outDegree": 1, + "sourceFlows": 1 + }, + { + "id": "S-SIGN-02", + "name": "Reset password", + "flow": "01 Sign In", + "inDegree": 1, + "outDegree": 2, + "sourceFlows": 1 + }, + { + "id": "S-SIGN-03", + "name": "Check your email", + "flow": "01 Sign In", + "inDegree": 1, + "outDegree": 1, + "sourceFlows": 1 + } + ], + "states": { + "perScreen": [ + { + "id": "S-SIGN-01", + "states": [ + "happy", + "loading", + "error{invalid-credentials}", + "locked{rate-limited}", + "offline" + ], + "count": 5 + }, + { + "id": "S-SIGN-02", + "states": [ + "happy", + "loading", + "error{invalid-email}" + ], + "count": 3 + }, + { + "id": "S-SIGN-03", + "states": [ + "happy", + "success{resent}", + "error{resend-throttled}" + ], + "count": 3 + } + ], + "histogram": { + "happy": 3, + "loading": 2, + "error{invalid-credentials}": 1, + "locked{rate-limited}": 1, + "offline": 1, + "error{invalid-email}": 1, + "success{resent}": 1, + "error{resend-throttled}": 1 + } + }, + "deepLinks": { + "SIGN": { + "page": "signin.html", + "params": [ + "state", + "view" + ] + } + }, + "findings": [] +} \ No newline at end of file diff --git a/design-toolkit/examples/signin/artifacts/navmap-report.md b/design-toolkit/examples/signin/artifacts/navmap-report.md new file mode 100644 index 0000000..263da12 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/navmap-report.md @@ -0,0 +1,50 @@ +# Navigation Graph Report + +_Derived from `reference/screen-registry.csv` by `tools/navgraph.mjs`. Every edge below +traces to a registry cell — this file is evidence, not authoring._ + +| Metric | Value | +|---|---| +| Screens | 3 | +| Flows | 1 | +| Navigation edges | 4 | +| Cross-feature edges | 0 | +| Entry points | S-SIGN-01 | +| Blocking findings | 0 | +| Major findings | 0 | +| Advisory findings | 0 | + +## Findings + +None. + +## Navigation heatmap (E3) + +| Screen | Name | Flow | In | Out | Source flows | +|---|---|---|---|---|---| +| `S-SIGN-01` | Sign in | 01 Sign In | **2** | 1 | 1 | +| `S-SIGN-02` | Reset password | 01 Sign In | **1** | 2 | 1 | +| `S-SIGN-03` | Check your email | 01 Sign In | **1** | 1 | 1 | + +## Cross-feature edges (E2) + +None. + +## State inventory (E5) + +| State | Screens | +|---|---| +| happy | 3 | +| loading | 2 | +| error{invalid-credentials} | 1 | +| locked{rate-limited} | 1 | +| offline | 1 | +| error{invalid-email} | 1 | +| success{resent} | 1 | +| error{resend-throttled} | 1 | + +## Deep-link hooks (E4) + +| Flow prefix | Page | Query hooks | +|---|---|---| +| SIGN | `signin.html` | `?state` `?view` | diff --git a/design-toolkit/examples/signin/artifacts/product-review-signin.md b/design-toolkit/examples/signin/artifacts/product-review-signin.md new file mode 100644 index 0000000..5c65d67 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/product-review-signin.md @@ -0,0 +1,97 @@ +--- +artifact: product-review +version: pr-signin-01 +produced_by: product-review +reads_versions: + requirements-signin.md: req-signin-01 + research-signin.md: res-signin-01 +feature: signin +recommendation: proceed +gate: direction-approval +gate_state: approved +gate_granted_by: user +gate_date: "2026-08-07" +gate_rulings: + o-s4: "hold 44px — audit.tapTargetFloorPx stays 44" +--- + +# Product Review — signin + +## Recommendation + +**proceed** — with one scope cut and one contradiction going to the gate unresolved. + +Three findings drove it: + +1. **The evidence supports every `must` item, and none of them is speculative.** Autofill declaration (T1), non-enumerating errors (T2) and preserve-and-refocus recovery (T3) are all cited, all cheap, and all in the same three screens. There is no requirement here whose value rests on an assumption. +2. **The one genuinely contested number is the product's own, not an external one.** C1 — the 44px floor against WCAG 2.2 AA's 24px — is a decision this product already made and wrote into `toolkit.config.json`. It is presented at the gate as unresolved because it is a **product** ruling, and STATE 08 will enforce whichever answer the gate gives. +3. **The cut is real and it removes the only high-effort item.** R5's resend throttle wants a countdown primitive the design system does not have (`o-s2`'s neighbour). Cutting the live countdown to a static message keeps the requirement and removes the extension. + +The scope is three screens and eleven flow states. Nothing below was introduced here; every id resolves in `req-signin-01`. + +## Prioritized requirements + +| ID | Requirement | Value | Effort | Risk | Band | Evidence | +|---|---|---|---|---|---|---| +| R1 | Credential entry is correct on a phone | H | L | L | **must** | [T1, T5] | +| R2 | A failed sign-in is recoverable in place | H | L | L | **must** | [T2, T3] | +| R3 | Work in flight is visible and cannot be double-submitted | M | L | L | **must** | [T3] | +| R4 | A forgotten password has a self-service route | H | M | M | **must** | [T2] | +| R6 | Every non-happy path is reachable and leads somewhere | H | M | L | **must** | [T3, T6] | +| R7 | The accessibility floor is met, not approximated | H | M | **M** | **must** | [T4, T5] | +| R5 | The reset confirmation is actionable, not a dead end | M | M | L | **should** | [T2, T6] | +| — | *(no `could` items)* | | | | | | +| R5.2 | Live countdown on the resend throttle | L | **H** | M | **cut** | [T6] — see cut list | + +Seven of seven requirements retained. One **sub-clause** cut, named explicitly rather than folded silently into its parent. + +## Risk register + +| ID | Risk | Sev | Mitigation **or** accept-risk | Owner | +|---|---|---|---|---| +| K1 | The 44px floor is stricter than the AA standard the team may believe it is conforming to. An element can pass an external audit and fail this one. | **high** | Present C1 at this gate for an explicit ruling. Whichever way it goes, the number lives in exactly one place — `audit.tapTargetFloorPx` — and STATE 08 enforces it mechanically. | product · this gate | +| K2 | The reset confirmation could be made to differ by account existence during build, reintroducing an enumeration oracle. | **high** | AC4.3 is a falsifiable criterion, and the single confirmation screen is the design that makes the failure hard to build. STATE 08 marks it met or unmet with evidence. | design + build | +| K3 | The lockout threshold (A3, `o-s1`) is an assumed number that will appear in shipped copy. | med | Carried as an open decision, not defaulted at build time. It occupies one string; changing it is a copy change, not a design change. | auth service owner | +| K4 | Every string in this flow is placeholder and unreviewed (`o-s3`). | med | **ACCEPTED** — this is a reference run, not a shipping product. Accepted by: the person granting this gate. It ships inside the deliverable's Known limitations at full strength. | product | +| K5 | The prototype simulates all responses (A2), so nothing here proves the real service behaves as designed. | med | **ACCEPTED** — explicit non-goal. STATE 08's source sweep confirms no network call exists, so the claim "simulated" is measured rather than asserted. Accepted by: the person granting this gate. | product | + +Both `high`-severity risks carry a mitigation. Both `med` acceptances name who accepts them. + +## Scope contradictions + +- **X1 — the target-size floor.** `req-signin-01` AC7.1 requires **44 × 44** hit area. Research theme **T4** shows WCAG 2.2 **AA** requires **24 × 24** (S7) and that 44 × 44 is the **AAA** criterion (S8). Both are correct; they answer different questions. This is a product ruling, not a research finding, and it **goes to the gate unresolved**. Recorded as **`o-s4`**. + + The consequence of each answer, stated so the ruling is informed: + - **Hold 44px** — the design system's own primitives are already 48px, so nothing in this flow is at risk. The cost is that a future screen conforming to AA can still fail this audit. + - **Relax to 24px** — matches the external standard, and immediately makes the `ds-link` hit-area expansion (`::after{inset:-14px}`) unnecessary. + + **Ships as, if unruled:** 44px, because it is the reversible reading — lowering a floor later is a config change, raising one restyles approved screens. + + > **RULED at this gate, 2026-08-07 — hold 44px.** Grantor: user. `audit.tapTargetFloorPx` stays `44`. STATE 08 enforces 44, not 24, and an element conforming to WCAG 2.2 AA can still fail this audit. That is the intended behaviour, not a defect. `o-s4` is closed. + +- **X2 — announce versus refocus.** Research contradiction **C2**. `role="alert"` announces without moving focus (S5); SC 3.3.1 wants the item in error identified (S6). AC2.2 asks for focus on the password field and AC2.3 asks for the announcement. Doing both naively can make a screen reader interrupt itself. + + **Not a direction question** — the ordering is a STATE 06 decision and STATE 08 verifies it. Deferred, not resolved here, and recorded so it is not discovered during assembly. + +## Decision record + +- **D-s1: Proceed at three screens, eleven flow states.** — trigger that would reverse it: a ruling that the reset link target is in scope, which changes this from a three-screen flow to a five-screen one and re-opens this gate. +- **D-s2: The live resend countdown is cut; the throttle ships as static copy.** — trigger: the design system gaining a countdown primitive, at which point it returns as a `should` at no extra cost. +- **D-s3: The design system is `toolkit-ref-ds-0.1`, and its own assumptions were checked against this product's** — mobile, 393 × 852, light, Latin, LTR — and match. — trigger: any of those diverging. This check exists because a plan built on the wrong design system validates perfectly against it. +- **D-s4: Password paste is not blocked.** — trigger: none foreseen; blocking it would break the mechanism SC 3.3.8 relies on (T5). + +**Deferred to later states, with ids:** + +| Open | Question | Owning state | +|---|---|---| +| `o-s1` | Lockout threshold and window (assumed 5 / 15 min) | copy, at STATE 06 | +| `o-s2` | Password-visibility toggle in scope? DS has no primitive → Extension Note | STATE 06 | +| `o-s3` | Copy ownership — every string is placeholder | ships as a known limitation | +| `o-s4` | **44px versus AA's 24px** — X1 above | **this gate** | +| `o-s5` | Announce-versus-refocus ordering — X2 above | STATE 06, verified at STATE 08 | + +## Cut list + +- **R5.2 — live countdown on the resend throttle.** Out for this cycle. The design system has no countdown primitive, so building it is a new component with a justification, a timer, a reduced-motion equivalent and an announcement policy — high effort against low value on a screen the user sees once. **What brings it back:** the design system gaining the primitive, or evidence that users retry the resend before the window expires often enough to matter. + + R5 itself is retained. AC5.2 is satisfied by static copy stating the wait, which is also what T6 recommends: a control that silently stops working reads as broken; one that says why does not. diff --git a/design-toolkit/examples/signin/artifacts/prototype/play.html b/design-toolkit/examples/signin/artifacts/prototype/play.html new file mode 100644 index 0000000..949adea --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/prototype/play.html @@ -0,0 +1,175 @@ + + + + + +Prototype Player + + + + +
+ Product prototypes + Features Prototyping +
    + open standalone ↗ +
    + + + + + + + diff --git a/design-toolkit/examples/signin/artifacts/prototype/run-local.sh b/design-toolkit/examples/signin/artifacts/prototype/run-local.sh new file mode 100755 index 0000000..2a6ecfd --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/prototype/run-local.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# Run Local — default USER_REVIEW step (docs/workflow.md STATE 09, skills/09 G1). +# Copied into artifacts/prototype/ by STATE 07; run it from there. +# Serves prototype/ over HTTP (serve.py — live reload: any file change in +# prototype/ auto-refreshes the browser, but ONLY while the workflow is in +# USER_REVIEW per state/machine_state.yaml) and opens the player (play.html). +# Idempotent: re-run = "Refresh run local" — reuses a live server, just reopens player. +# A plain server (no live reload) already on the port gets replaced. +set -euo pipefail + +PORT="${1:-8765}" +DIR="$(cd "$(dirname "$0")" && pwd)" +URL="http://localhost:${PORT}/play.html" + +up() { lsof -nP -iTCP:"${PORT}" -sTCP:LISTEN >/dev/null 2>&1; } +live_reload() { curl -sf "http://localhost:${PORT}/__watch" >/dev/null 2>&1; } + +if up && live_reload; then + echo "refresh: live-reload server already on :${PORT} — reusing" +else + if up; then + echo "upgrade: plain server on :${PORT} — replacing with live-reload server" + lsof -nP -tiTCP:"${PORT}" -sTCP:LISTEN | xargs kill 2>/dev/null || true + sleep 0.3 + fi + echo "start: serving ${DIR} on :${PORT} (live reload)" + (cd "${DIR}" && nohup python3 serve.py "${PORT}" >/dev/null 2>&1 &) + # wait until up (max ~3s) + for _ in $(seq 1 30); do + curl -s -o /dev/null "${URL}" && break + sleep 0.1 + done +fi + +echo "player: ${URL}" +if command -v open >/dev/null 2>&1; then open "${URL}"; fi diff --git a/design-toolkit/examples/signin/artifacts/prototype/serve.py b/design-toolkit/examples/signin/artifacts/prototype/serve.py new file mode 100644 index 0000000..4c03a36 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/prototype/serve.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +"""Run Local dev server — static serve + live reload (docs/workflow.md STATE 09). + +Lives in artifacts/prototype/ (copied from templates/prototype/ by STATE 07). + +Serves this directory and injects a tiny poller into every .html response; +any file change in the tree reloads the browser automatically. +Endpoint /__watch returns the newest mtime in the tree (also used by +run-local.sh to detect a live-reload-capable server vs a plain one). + +Live reload is active ONLY while the workflow is in the USER_REVIEW state +(state/machine_state.yaml top-level current_state). Outside review the +server still serves pages, but /__watch answers "off" and no poller is +injected — checked per request, so a state transition applies without +restart. Missing/unreadable state file = reload ON (standalone use). +""" +import os +import re +import sys +from http.server import ThreadingHTTPServer, SimpleHTTPRequestHandler + +DIR = os.path.dirname(os.path.abspath(__file__)) +PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8765 +STATE_FILE = os.environ.get('TOOLKIT_STATE_FILE') or os.path.abspath( + os.path.join(DIR, '..', '..', 'state', 'machine_state.yaml')) + + +def in_review(): + try: + with open(STATE_FILE, encoding='utf-8') as f: + for line in f: + m = re.match(r'^ current_state:\s*(\S+)', line) + if m: # first 2-space-indented hit = machine_state's own field (parked flows nest deeper) + return m.group(1) == 'USER_REVIEW' + except OSError: + pass + return True + +SNIPPET = (b"") + + +def latest_mtime(): + mx = 0 + for root, _dirs, files in os.walk(DIR): + for f in files: + try: + mx = max(mx, os.stat(os.path.join(root, f)).st_mtime_ns) + except OSError: + pass + return str(mx) + + +class Handler(SimpleHTTPRequestHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, directory=DIR, **kwargs) + + def log_message(self, *args): + pass + + def _send(self, body, ctype): + self.send_response(200) + self.send_header('Content-Type', ctype) + self.send_header('Cache-Control', 'no-store') + self.send_header('Content-Length', str(len(body))) + self.end_headers() + self.wfile.write(body) + + def do_GET(self): + live = in_review() + if self.path.startswith('/__watch'): + self._send(latest_mtime().encode() if live else b'off', 'text/plain') + return + if not live: + super().do_GET() + return + path = self.translate_path(self.path.split('?', 1)[0].split('#', 1)[0]) + if os.path.isdir(path): + path = os.path.join(path, 'index.html') + if path.endswith('.html') and os.path.isfile(path): + with open(path, 'rb') as f: + body = f.read() + if b'' in body: + body = body.replace(b'', SNIPPET + b'\n', 1) + else: + body += SNIPPET + self._send(body, 'text/html; charset=utf-8') + return + super().do_GET() + + +if __name__ == '__main__': + print(f'serve.py: {DIR} on :{PORT} (live reload on)') + ThreadingHTTPServer(('', PORT), Handler).serve_forever() diff --git a/design-toolkit/examples/signin/artifacts/prototype/signin.html b/design-toolkit/examples/signin/artifacts/prototype/signin.html new file mode 100644 index 0000000..f6fb89a --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/prototype/signin.html @@ -0,0 +1,373 @@ + + + + + +Sign In — proto-signin-02 + + + + + +
    + proto-signin-02 + S-SIGN-01 + + + + + + + + + + + +
    + +
    +
    + + +
    +

    Sign in

    +

    Use the email and password for your account.

    + + + + + +
    + + +
    + +
    + + +
    + + + +
    + + +
    +
    + +
    +

    Reset password

    +

    We will email you a link to set a new one.

    + + + +
    + + +

    We send the same reply whether or not the address has an account.

    +
    + + +
    + + + +
    +

    Check your email

    +

    If that address has an account, a reset link is on its way to

    + sam@example.com + +
    +

    Sent again. Give it a minute before checking.

    +
    + + + + +
    + +
    +
    + + + + diff --git a/design-toolkit/examples/signin/artifacts/requirements-signin.md b/design-toolkit/examples/signin/artifacts/requirements-signin.md new file mode 100644 index 0000000..d47bf6e --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/requirements-signin.md @@ -0,0 +1,97 @@ +--- +artifact: requirements +version: req-signin-01 +produced_by: requirement-analysis +scope_class: small +effort_tier: 1 flow · 3 screens · 11 flow states +feature: signin +--- + +## Problem statement + +A returning user on a phone has no reliable way back into the product: a mistyped +credential currently costs them everything they typed, and a forgotten password +has no self-service route at all. This feature covers credential entry, in-place +recovery from a failed attempt, and a request for a password-reset link — mobile +first, on a 393 × 852 viewport. + +## Goals + +- **G1:** A returning user with correct credentials reaches the authenticated area from a cold start on a phone. +- **G2:** A user who mistypes a credential can correct and retry **without re-entering what was already right**. +- **G3:** A user who has forgotten their password can request a reset link without contacting support. +- **G4:** The whole flow is operable one-handed at 393 × 852 and meets the product's own accessibility floor. + +## Actors + +- **Returning user** — primary. Knows they have an account; may or may not remember the password. +- **Support agent** — secondary and indirect. Every self-service reset is a ticket that does not arrive. + +## Constraints + +- Mobile-first. 393 × 852 is the review and capture viewport. +- Single locale (`en`), Latin script only, light theme only — matching the design system's own stated assumptions. +- **No live backend.** Every response in the prototype is simulated; no network call exists anywhere in it. +- **Account enumeration must not be possible from the reset flow** — the confirmation cannot differ by whether the address is registered. +- Design system: `toolkit-ref-ds-0.1`, named by source id in `toolkit.config.json`. + +## Non-goals + +- Sign-up and account creation. +- Social login, SSO, or any third-party identity provider. +- The reset **link target** — the set-a-new-password screen. Out of scope for this run. +- Biometric authentication, remembered devices, and multi-factor. +- Server-side rate-limiting policy. The design shows the user-facing state; the threshold is the server's. + +## Requirements & acceptance criteria + +- **R1: Credential entry is correct on a phone.** + - **AC1.1:** The email field carries `type="email"`, `inputmode="email"` and `autocomplete="username"`; the password field carries `type="password"` and `autocomplete="current-password"`. + - **AC1.2:** Field text renders at ≥ 16px, so mobile Safari does not zoom the viewport on focus. + - **AC1.3:** The submit control is disabled while either field is empty, and its disabled state is conveyed by more than colour alone. + +- **R2: A failed sign-in is recoverable in place.** + - **AC2.1:** After an invalid-credentials response, the entered email is **still present** in the email field. + - **AC2.2:** After an invalid-credentials response, focus moves to the password field. + - **AC2.3:** The error is announced to assistive technology (`role="alert"`) and **does not state which of the two credentials was wrong**. + +- **R3: Work in flight is visible and cannot be double-submitted.** + - **AC3.1:** While a submit is in flight the control shows a busy state, sets `aria-busy`, and a second submit is impossible. + - **AC3.2:** The busy state is reachable by a deep-link hook and paints. + +- **R4: A forgotten password has a self-service route.** + - **AC4.1:** A control on the sign-in screen reaches the reset-request screen in **one tap**. + - **AC4.2:** The reset screen pre-fills the email already typed on the sign-in screen, when one was typed. + - **AC4.3:** Submitting a reset request shows the **same** confirmation regardless of whether the address is registered. + +- **R5: The reset confirmation is actionable, not a dead end.** + - **AC5.1:** The confirmation names the address the link was sent to. + - **AC5.2:** A resend control exists, is throttled after first use, and the throttle is stated in visible copy rather than implied by a disabled control. + - **AC5.3:** A route back to sign-in exists from the confirmation. + +- **R6: Every non-happy path is reachable and leads somewhere.** + - **AC6.1:** Each of `loading`, `error{invalid-credentials}`, `locked{rate-limited}`, `offline`, `error{invalid-email}` and `error{resend-throttled}` is reachable by a deep-link hook and paints. + - **AC6.2:** Each of those states offers at least one control that leads somewhere the user can act — none is terminal. + +- **R7: The accessibility floor is met, not approximated.** + - **AC7.1:** Every interactive element measures **≥ 44 × 44 CSS px of hit area** at 393 × 852. Hit area, not box — an expanded `::after` target counts. + - **AC7.2:** Every text/background pair carrying load-bearing copy measures ≥ 4.5:1, or ≥ 3:1 at ≥ 18.66px. + - **AC7.3:** Every motion has a static equivalent under `prefers-reduced-motion`, and no state is signalled by motion alone. + - **AC7.4:** No page produces console errors, and no page scrolls horizontally at 393px. + +## Assumptions + +- **A1 [assumed]:** Single locale `en`, Latin script, LTR, light theme only. `product.scripts` is therefore empty and the per-glyph font check is off — correct here, and wrong for any product that renders a second script. +- **A2 [assumed]:** The prototype simulates every response. No `fetch`, `XMLHttpRequest`, `WebSocket`, `sendBeacon` or `EventSource` exists in it. STATE 08's source sweep is expected to confirm this rather than take it on trust. +- **A3 [assumed]:** The lockout the user sees is **5 failed attempts, 15-minute window**. The real threshold is server policy and is not this design's to set. Accepted explicitly here rather than left as a blocking question; carried forward as `o-s1` and reversible before build. +- **A4 [assumed]:** The reset **link target** is a separate flow, per non-goals. The confirmation screen is where this feature ends. +- **A5 [confirmed]:** 393 × 852 viewport and a 44px interactive floor — both set in `toolkit.config.json` (`product.viewport`, `audit.tapTargetFloorPx`) and checked by STATE 08. +- **A6 [confirmed]:** Design system `toolkit-ref-ds-0.1`, whose own assumptions (mobile, 393 × 852, light, Latin, LTR) were checked against this product's and match. + +## Open questions + +_No `blocking` question remains. Each item below is `non-blocking` and carried forward as an open decision rather than defaulted silently at build time._ + +- **Q1 [non-blocking] `o-s1`:** Exact lockout threshold and window. Assumed 5 / 15 min per **A3**. Blocks nothing; the number appears in one string. Ruled by: whoever owns the auth service. +- **Q2 [non-blocking] `o-s2`:** Is a password-visibility toggle in scope? The design system has **no primitive** for it, so adding one is an Extension Note at STATE 06, not a free addition. Ruled by: product. +- **Q3 [non-blocking] `o-s3`:** Copy ownership. Every string here is placeholder and unreviewed. Ships as a known limitation unless someone claims it. Ruled by: content design. diff --git a/design-toolkit/examples/signin/artifacts/research-signin.md b/design-toolkit/examples/signin/artifacts/research-signin.md new file mode 100644 index 0000000..c19128e --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/research-signin.md @@ -0,0 +1,95 @@ +--- +artifact: research +version: res-signin-01 +produced_by: research +reads_versions: + requirements-signin.md: req-signin-01 +coverage: 4/4 goals mapped-or-waived (100%) +feature: signin +--- + +# Research — signin + +## Themes + +- **T1: Autofill only works if the fields are declared for it.** Browser and password-manager autofill keys off `autocomplete` tokens and input types. `username` + `current-password` is the pair a sign-in form is expected to expose; getting it wrong silently disables the single largest reduction in typing on a phone. + - sources: [S1, S2] + - relevance: AC1.1, AC1.2 — and, indirectly, G2, because the cheapest way not to lose what the user typed is not to make them type it + - maps_to: [G1, G2] + +- **T2: An authentication error must not identify which credential was wrong.** Distinguishing "no such account" from "wrong password" turns the sign-in form into an account-enumeration oracle. The same rule drives the reset flow: the response must be identical whether or not the address is registered. + - sources: [S3, S4] + - relevance: AC2.3, AC4.3 + - maps_to: [G2, G3] + +- **T3: Error recovery is a focus-management problem, not a copy problem.** An error that is visible but not announced is invisible to a screen-reader user; an error that clears the form costs the user everything they typed. The pattern is: preserve input, move focus to the field to correct, announce the message in a live region. + - sources: [S5, S6] + - relevance: AC2.1, AC2.2, AC2.3 + - maps_to: [G2, G4] + +- **T4: The 44px target floor is a product decision above the external standard, not a restatement of it.** WCAG 2.2 SC 2.5.8 sets a **24 × 24** minimum; SC 2.5.5 sets **44 × 44** at AAA. This product's own acceptance criterion is 44px, which is stricter than the AA conformance target — so an element can conform to AA and still fail this product's audit. + - sources: [S7, S8] + - relevance: AC7.1 + - maps_to: [G4] + +- **T5: Requiring the user to reproduce a memorised secret is itself an accessibility concern.** WCAG 2.2 SC 3.3.8 requires that a cognitive function test not be the only way through authentication unless an alternative exists — and it names password-manager paste support as a qualifying mechanism. Blocking paste on a password field breaks it. + - sources: [S9] + - relevance: AC1.1, AC7.2, and the decision **not** to block paste + - maps_to: [G1, G4] + +- **T6: Rate-limiting is server policy; the design owns only the state the user sees.** Guidance is consistent that throttling belongs at the service, and that the user-facing message should not leak how close the account is to a limit. + - sources: [S4, S10] + - relevance: AC6.1 `locked{rate-limited}`, and assumption A3 + - maps_to: [G2] + +## Evidence & citations + +- **S1 [resolvable]:** The `autocomplete` attribute's token list, including `username`, `current-password` and `new-password`, and the behaviour user agents key off — MDN, *HTML attribute: autocomplete*: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete +- **S2 [resolvable]:** `inputmode` and input-type behaviour on touch keyboards — MDN, *inputmode*: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode +- **S3 [resolvable]:** Authentication responses must be generic and must not permit username enumeration — OWASP *Authentication Cheat Sheet*: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html +- **S4 [resolvable]:** The reset flow must return an identical response regardless of account existence, and reset requests should be throttled — OWASP *Forgot Password Cheat Sheet*: https://cheatsheetseries.owasp.org/cheatsheets/Forgot_Password_Cheat_Sheet.html +- **S5 [resolvable]:** `role="alert"` is an assertive live region; content added to it is announced without moving focus — WAI-ARIA Authoring Practices, *Alert pattern*: https://www.w3.org/WAI/ARIA/apg/patterns/alert/ +- **S6 [resolvable]:** SC 3.3.1 Error Identification — the item in error must be identified and described in text — WCAG 2.2: https://www.w3.org/TR/WCAG22/#error-identification +- **S7 [resolvable]:** SC 2.5.8 Target Size (Minimum), AA, 24 × 24 CSS px — WCAG 2.2: https://www.w3.org/TR/WCAG22/#target-size-minimum +- **S8 [resolvable]:** SC 2.5.5 Target Size (Enhanced), AAA, 44 × 44 CSS px — WCAG 2.2: https://www.w3.org/TR/WCAG22/#target-size-enhanced +- **S9 [resolvable]:** SC 3.3.8 Accessible Authentication (Minimum), AA — a cognitive function test must not be required unless an alternative or a mechanism to assist exists; password-manager support qualifies — WCAG 2.2: https://www.w3.org/TR/WCAG22/#accessible-authentication-minimum +- **S10 [resolvable]:** Guidance on throttling authentication attempts and on not disclosing lockout proximity — NIST SP 800-63B, *Digital Identity Guidelines: Authentication and Lifecycle Management*: https://pages.nist.gov/800-63-3/sp800-63b.html +- **S11 [resolvable]:** SC 1.4.3 Contrast (Minimum), AA, 4.5:1 and 3:1 for large text — WCAG 2.2: https://www.w3.org/TR/WCAG22/#contrast-minimum +- **S12 [resolvable]:** SC 2.3.3 Animation from Interactions and the `prefers-reduced-motion` media query — WCAG 2.2: https://www.w3.org/TR/WCAG22/#animation-from-interactions · MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion + +## Competitor notes + +**None gathered.** See `GAP1`. No competitor product was inspected during this run, so nothing is recorded here rather than a plausible-sounding summary. **V4 forbids a fabricated citation, and an unsourced competitor observation is the same defect wearing different clothes.** + +## Pattern catalog + +- **P1: Preserve-and-refocus on credential error.** Keep the identifier, clear or keep the secret, move focus to the field to correct, announce in a live region. (sources: [S5, S6]) +- **P2: Identical confirmation for every reset request.** One confirmation screen, naming the address the user typed, shown whether or not the account exists. (sources: [S3, S4]) +- **P3: Throttle the resend, and say so.** A resend control that silently stops working reads as broken. State the wait in copy. (sources: [S4, S10]) +- **P4: Declare the field, do not fight the browser.** Correct `autocomplete` and `type` tokens, 16px minimum text, paste permitted. (sources: [S1, S2, S9]) + +## Constraints + +- Reset-flow responses must not vary by account existence. (sources: [S3, S4]) +- Password paste must not be blocked — blocking it removes the mechanism SC 3.3.8 relies on. (sources: [S9]) +- Field text ≥ 16px on iOS, or the viewport zooms on focus. (sources: [S2]) +- Load-bearing text ≥ 4.5:1, or ≥ 3:1 at ≥ 18.66px. (sources: [S11]) +- Every motion needs a static equivalent under `prefers-reduced-motion`. (sources: [S12]) + +## Contradictions + +_Listed, not resolved. Each is carried to STATE 03 as-is._ + +- **C1: The product's own target floor is stricter than the standard it cites.** This product's AC7.1 requires 44 × 44 (S8, AAA); WCAG 2.2 AA requires 24 × 24 (S7). An element measuring 32px conforms to AA and **fails this product's audit**. Both sources are correct; they are answering different questions. Left unresolved here — it is a product decision, and STATE 03 owns it. +- **C2: "Announce the error" and "move focus to the field" can conflict.** `role="alert"` announces without moving focus (S5); SC 3.3.1 requires the item in error be identified (S6). Doing both naively can cause a screen reader to interrupt itself. Left unresolved: the ordering is a STATE 06 decision, and STATE 08 is where it is verified. + +## Goal coverage + +- **G1** → [T1, T5] · **G2** → [T1, T2, T3, T6] · **G3** → [T2] · **G4** → [T3, T4, T5] + +4 of 4 goals mapped. **0 waived.** Coverage threshold met at 100%. + +## Gaps + +- **GAP1 [competitor scan not performed]:** No live competitor inspection was carried out in this run, so the **Competitor notes** section is empty rather than populated. This is recorded as a gap, not filled with a plausible summary — a fabricated observation is a V4 failure and is more expensive than an empty section, because it looks like evidence. **What would close it:** inspect three comparable mobile sign-in flows and record what each does at the invalid-credentials and reset-confirmation moments. +- **GAP2 [server policy unavailable]:** The real lockout threshold and window are the auth service's, and were not available during this run. Assumption A3 (5 / 15 min) stands in, carried as `o-s1`. **What would close it:** one line from whoever owns the auth service. diff --git a/design-toolkit/examples/signin/artifacts/review-record-signin.md b/design-toolkit/examples/signin/artifacts/review-record-signin.md new file mode 100644 index 0000000..7ffd881 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/review-record-signin.md @@ -0,0 +1,128 @@ +--- +artifact: review-record +version: review-signin-01 +produced_by: user-review +reads_versions: + prototype: proto-signin-02 # the bytes REVIEWED + audit-report-signin.md: audit-signin-03 + traceability-signin.md: trace-signin-02 + revision-log-signin.md: rev-signin-01 +scoped_to: proto-signin-03 # the bytes the approval COVERS, after one ratified bug-fix delta +feature: signin +date: "2026-08-07" +gate: PrimaryUserApprovalGate +verdict: APPROVED +player_url: http://localhost:8765/play.html#signin +--- + +# Gate record — signin + +## Decision + +**APPROVED** on the **1st presentation**, 2026-08-07. + +User instruction, verbatim: *"Approve"* — with the accompanying ruling *"Run STATE 12 too"*, setting `handoff_required: true`. + +| Field | Value | +|---|---| +| Flow | `signin` — `S-SIGN-01`, `S-SIGN-02`, `S-SIGN-03` | +| Prototype at decision | `proto-signin-02` | +| Approval **scoped to** | `proto-signin-03` — one bug-fix-only delta, ratified below | +| Audit of record | `audit-signin-03` — **PASS 26 / 26 ACs**, re-run on `proto-signin-03` | +| Reviewed at | `http://localhost:8765/play.html#signin` (Run Local, V4) | +| Passes to approval | **1** — `pass N = 1 + revision rounds delivered`; one revision cycle was consumed **before** first presentation, so nothing had been shown before this | + +The prototype was served through `run-local.sh` / `serve.py` and reviewed through the player, not as file previews. Live reload was confirmed active, which is itself evidence the machine record was current: `serve.py` gates it on the top-level `current_state` being `USER_REVIEW`, and it was. + +## What was approved + +- **Credential entry** with correct autofill declaration, 16px field text, and a submit control inert until both fields carry content. +- **In-place recovery**: a rejected attempt preserves the entered identifier, moves focus to the secret field, and announces a message that names neither credential. +- **A self-service reset route** reachable in one tap, carrying the typed identifier forward, with **no account-exists branch anywhere in the flow** — the same acknowledgement is shown whether or not the address is registered. +- **A throttled resend** whose control is disabled while the throttle holds, with the wait stated in visible copy. +- **Eleven flow states**, each reachable by a deep-link hook and each proven to paint. +- **A 44px interactive floor**, ruled at the Direction Gate over WCAG 2.2 AA's 24px, and enforced by the audit at that number. +- **`handoff_required: true`** — STATE 12 runs before delivery. + +This is what `REVISION` and `FINAL_OUTPUT` treat as settled. + +## Verification at approval + +| Check | Result | +|---|---| +| Audit | `audit-signin-03` — **PASS 26 / 26 ACs**, 0 unmet, 0 waived, re-run on the scoped bytes | +| Assertions (rendering-class) | **138 / 138**, stable over two consecutive full runs | +| Runs | 22 — 11 flow states × 2 passes (`base`, `reduced-motion`) | +| Console | **0 errors** (`favicon.ico` filtered by name, not wholesale) | +| Screenshots | **22 captured and read.** The re-read after the rebuild is what found AF-5 | +| Source sweeps | off-palette **0** · duplicate keys **0** · network call sites **0** | +| Revision loop | `L_REVISION` **1 / 3** | + +## Change requests + +**None.** The verdict was `approve`, so no change request was raised (V2 is inapplicable, V3 is vacuously satisfied — there was nothing to drop). + +## Deltas ratified by this decision + +| # | Delta | Class | Evidence | +|---|---|---|---| +| 1 | Reworded one source comment. It recited the request-API names, so `annotate`'s network sweep matched the **disclaimer claiming there were no network calls** (`E11`, blocking). Plus a third stale version string the AF-5 sweep missed. | **bug-fix only** | hex/token inventory **identical** (12 tokens) · diff confined to **one named region**, a source comment · the pre-fix file **reconstructed from the inverse delta hashes back to `04f2c92…c0512`**, the approved sha — exact match · full audit re-run on the new bytes: **138/138** | + +**Classified before it was asked about** (G4). The class earned a **one-line scope confirm**, not a ruling. + +User instruction, verbatim: *"Extend previous approval. Only bug fixes were made. Reuse the previous approval for this revision."* + +The gate reverted to `pending` the moment the bytes moved — that reversion is automatic, and it is the rule that stops a deliverable and a prototype disagreeing about what shipped. It re-scoped to `proto-signin-03` on the confirm above. + +No user-visible surface changed: the screenshots taken against `proto-signin-03` are indistinguishable from the ones reviewed against `proto-signin-02`. + +## Known limitations presented + +Verbatim from `audit-signin-03`, carried rather than laundered. The approval is **scoped to a deliverable that carries all six**. + +1. **The lockout window is an assumed number rendered as fact** — *"Try again in 15 minutes"* (`o-s1`, AF-4). **Rides on debt #1.** Closes when the auth service owner states the real window. +2. **Every string is placeholder and unreviewed** (`o-s3`). Nobody has claimed copy ownership for this flow. +3. **Every response is simulated** (A2). The network sweep **measures** this — 0 call sites — but nothing here proves the real service behaves as designed. +4. **No competitor scan was performed** (`res-signin-01` GAP1). The design rests on standards and pattern evidence, not on what comparable products do. +5. **`ds-banner` has no `offline` variant** (Extension Note 1). *"Could not reach"* and *"was refused"* are held apart by **copy**, not by structure — one revision away from being lost. +6. **`o-s2` (reveal-the-secret) was ruled out of scope**, not built and rejected. The design system has no primitive. + +**This is an acceptance with qualifications, and it is recorded with its qualifications.** A clean-looking record of a qualified acceptance is a false record, and it is the artifact delivery is checked against. + +## Opens carried forward + +| ID | Question | Ships as | +|---|---|---| +| `o-s1` | Lockout threshold and window — assumed 5 attempts / 15 minutes | The assumed value in one string, plus **debt #1** and Known limitation 1 | +| `o-s3` | Copy ownership | Placeholder strings, plus Known limitation 2 | + +`o-s2`, `o-s4` and `o-s5` are **closed** — at STATE 06, at the Direction Gate, and at STATE 06-verified-by-STATE-08 respectively. + +## Validations waived + +| Rule | Why | Granted by | Rides on | +|---|---|---|---| +| — | **none** | — | — | + +No validation was waived at this gate. The audit of record ran on the bytes being approved (V6 satisfied without a rider), and the traceability matrix exists and is current (`trace-signin-02`). + +Recorded as an empty table rather than omitted: an absent waiver section and a table stating *none* are different claims. + +## Freeze hashes + +Recorded at the moment of approval, **re-recorded after the ratified delta**. An approval is scoped to the bytes it saw — these are those bytes, as re-scoped. + +The reviewed sha for `signin.html` was `04f2c9288d2c6e180a238247ca91a8c30e8636c89ef2fabc72a7f862463c0512` (`proto-signin-02`). Both are named, because a record that quietly re-freezes under a new hash is the **silent re-freeze** that G4 exists to prevent — the shape to copy is one that says out loud when the bytes moved between review and approval. + +| Deliverable file | sha256 | +|---|---| +| `prototype/signin.html` | `ac31e27100c8c729a1173ee6252ada8f8663ecd46e6a4e15c2c130aa163eb56f` | +| `prototype/play.html` | `3277901ea9f3365ca6a068e6a60588683254b4e940f04c46f0c852f462828462` | +| `prototype/serve.py` | `11c6df40390bbd05ec88d0051d6a78ccc7e2b5a34f3756f3da418ed69d0c8d15` | +| `prototype/run-local.sh` | `02173bbd3c1a9fa1c7401fe4f5a316e02c2e970070389f05d3d42e047d50eabb` | + +`FINAL_OUTPUT` compares these against the bytes it freezes. If they differ, the gate reverts to `pending` and the delta is classified before anything is packaged. + +## Exit + +`approve` **+** `C_HANDOFF_REQUIRED` → **`FLOW_VISUALIZATION`**, then `FINAL_OUTPUT`. diff --git a/design-toolkit/examples/signin/artifacts/revision-log-signin.md b/design-toolkit/examples/signin/artifacts/revision-log-signin.md new file mode 100644 index 0000000..08611a4 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/revision-log-signin.md @@ -0,0 +1,102 @@ +--- +artifact: revision-log +version: rev-signin-01 +produced_by: revision +reads_versions: + audit-report-signin.md: audit-signin-01 +iteration: 1 +loop: L_REVISION (1/3) +feature: signin +--- + +# Iteration 1 — source: audit verdict `fail`, 2026-08-07 + +No `review-record` exists yet — this loop was entered from `SELF_AUDIT`, not from the gate. The user has not seen the prototype. + +## Change set + +| # | Change item | Raised by | Class + sweep | Root cause | Target state | Status | +|---|---|---|---|---|---|---| +| **CR1** | *"`error{invalid-credentials}` renders with an empty email field, so AC2.1 cannot be demonstrated"* | self-audit AF-1 | **Class: a hook that seeds a VIEW state does not seed the DATA the criterion is about.** Swept all 11 hooks: **4 instances** — `signin&state=invalid`, `signin&state=locked`, `signin&state=offline`, `reset&state=bademail`. A fifth, `?view=sent`, showed the *placeholder* address rather than a submitted one — same class, different symptom. **5 fixed, not 1.** | `PROTOTYPE` — the spec was right; the assembly seeded the view and not the data | `PROTOTYPE` | **resolved** | +| **CR2** | *"`error{resend-throttled}` shows 'ask again in 60 seconds' above a live resend button"* | self-audit AF-2 | **Class: rendered copy contradicting the state it describes.** Swept every state that makes a claim about a control: 3 candidates (`throttled`, `loading` ×2). `loading` already enforced it via `aria-busy` + `disabled`; **`throttled` was the only unenforced one.** 1 instance, sweep recorded. | `PROTOTYPE` — AC5.2 says the control *is* throttled; the build said so and did not do so | `PROTOTYPE` | **resolved** | +| **CR3** | *"`S-SIGN-03` carries a toolbar Back that `ux-signin-01` explicitly rules out"* | self-audit AF-3 | **Class: a downstream plan contradicting the plan above it.** Swept `ui-signin-01`'s inventory against `ux-signin-01`'s navigation model row by row: **1 instance** — the `ds-toolbar + back` assignment to the acknowledgement screen. `S-SIGN-02`'s toolbar is correct (that screen is reached by **push**). | **`UI_PLANNING`** — *not* `PROTOTYPE`. The build faithfully implemented its spec; the spec was wrong. Dispatching this to `PROTOTYPE` would have fixed the symptom and left `ui-plan` still saying the opposite | `UI_PLANNING` → `PROTOTYPE` | **resolved** | +| **CR4** | *"The prototype's own version readout still said `proto-signin-01` after the rebuild"* | screenshot re-read, iteration 1 | **Class: an artifact that cannot say which bytes it is.** Swept for version strings in the prototype: **2 instances** — `` and the demo bar label. Both bumped. | `PROTOTYPE` | `PROTOTYPE` | **resolved** | +| CR5 | *"`locked{rate-limited}` renders the assumed 15-minute window as fact"* | self-audit AF-4 | Single instance, one string. Not a build defect — an **open decision reaching the surface**, which is the thing `o-s1` exists to track. | — | **not dispatched** | **deferred** — debt #1, ships in Known limitations | + +_Every item carries a target state and a status (V1). Nothing exits `open` (V2)._ + +## Conflicts — Conflict Mini-Gate + +| # | Conflict | Side A | Side B | Ships as | Gate outcome | +|---|---|---|---|---|---| +| — | none this iteration | — | — | — | — | + +CR3 looks like a conflict and is not one: `ux-signin-01` and `ui-signin-01` are not peers. The UX plan is upstream, so this is a **misrouted spec**, resolved by correcting the downstream document — not a contradiction between two ratified decisions needing a user ruling. + +## Dependency order (upstream → downstream) + +1. `UI_PLANNING` → **`ui-signin-02`** (supersedes `ui-signin-01`) — CR3. The acknowledgement screen's inventory row loses `ds-toolbar + back`. +2. `PROTOTYPE` → **`proto-signin-02`** — CR1, CR2, CR3 (implementation), CR4. +3. `SELF_AUDIT` → **`audit-signin-02`**, re-run on the rebuilt bytes. +4. `USER_REVIEW` → first presentation. The Primary gate has never been granted, so there is no approval to revert. + +## Superseded by this revision + +| Component / rule / string | Superseded by | Removed from | +|---|---|---| +| `ds-toolbar + back` on the acknowledgement screen | the explicit `Back to sign in` route already present | `ui-signin-01` inventory row → `ui-signin-02`; `.sn-bar` markup and the `#b-back-reset` **click handler** in `signin.html` | + +**The handler went with the markup.** A leftover listener bound to a removed id is an un-specced element and fails V2 exactly as an addition does (B7). Strip verified by grep: the only remaining occurrence of `b-back-reset` is the comment recording that it was removed. + +## Constraints recorded + +- **A hook must seed the data its state implies, not only the view.** Discovered by CR1 and now a standing constraint for this prototype: any future state reachable only after a submit seeds the values that submit carried. Otherwise the review packet shows the state and hides the criterion. +- **A control that a banner describes must enforce what the banner claims.** From CR2. The copy is not the mechanism. + +## Deliberately not changed + +| Item | Why not | +|---|---| +| CR5 — the 15-minute lockout string | It is an **open decision** (`o-s1`), not a defect. Replacing an assumed number with a different assumed number changes nothing and hides that nobody has ruled it. Ships as debt #1 with a stated closing condition. | +| `ds-banner` having no `offline` variant | Extension Note 1. The distinction is carried by copy in this pass. Adding a variant is a design-system change, not a revision item, and inventing one here would be a `new` component with no justification. | +| The competitor-scan gap (`GAP1`) | Recorded in `res-signin-01`. Filling it is a research round, not a revision. | +| `paletteExemptSelectors` being dead config (TK-2) | A toolkit finding, not a `signin` finding. Removing a documented config key is a decision, not an audit outcome. Recorded in `audit-signin-01`. | + +_Recorded so silence is not mistaken for oversight (V2)._ + +## Impact analysis + +| Artifact | Effect | +|---|---| +| `requirements-signin.md` | unchanged — `req-signin-01` | +| `research-signin.md` | unchanged — `res-signin-01` | +| `product-review-signin.md` | unchanged — `pr-signin-01`, Direction Gate still granted (nothing it approved moved) | +| `ux-plan-signin.md` | unchanged — `ux-signin-01`. **It was right.** | +| `flows-signin.md` | unchanged — `flow-signin-01` | +| `ui-plan-signin.md` | **`ui-signin-02`** (supersedes `ui-signin-01`) | +| `prototype/` | **`proto-signin-02`** | +| `traceability-signin.md` | **`trace-signin-02`** | +| `audit-report-signin.md` | **`audit-signin-02`** | + +## Re-validation + +| Check | Result | +|---|---| +| Re-audit on the rebuilt bytes | **`audit-signin-02` PASS 26 / 26 ACs** — run against `proto-signin-02`, not waived (R6, V7) | +| Rendering-class assertions | **138 / 138**, stable across two consecutive runs, 22 runs each | +| Screenshots re-read | **22**, and the re-read is what found CR4 | +| Class sweeps from R2 | CR1: 5 instances, all fixed · CR2: 3 candidates, 1 unenforced, fixed · CR3: 1 instance · CR4: 2 instances | +| `node --check` | clean | +| Supersession strip | verified by grep — 0 dead references | + +## Validation self-check + +- **V1** ✅ — every item has a target state and a status. +- **V2** ✅ — no item left `open`. CR5 is `deferred` **with a reason** and a debt id. +- **V3** ✅ — iteration 1; `L_REVISION 1/3` written in frontmatter, in `machine_state.loop_count`, and here. `L_AUDIT_FIX 0/3` — this was a full rebuild, not an in-place audit fix. +- **V4** ✅ — every item names its **class** and its sweep result. CR1 was reported as one instance and swept to **five**. +- **V5** ✅ — the superseded toolbar was removed with its handler; no carried items existed to re-verify (first iteration). +- **V6** ✅ — no conflicts this iteration, and the CR3 near-miss is explained rather than left implicit. +- **V7** ✅ — the return edge passes through `SELF_AUDIT` on the rebuilt bytes. **No waiver required.** + +**Exit:** dispatch to `UI_PLANNING` → `PROTOTYPE` → `SELF_AUDIT` → `USER_REVIEW`. diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-happy-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-happy-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..100f4aff7267ad9d816e39aea4336b88e1ccc5d8 GIT binary patch literal 62700 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 Zq9B1;FGWEdb)nQrhOG>N$V3u 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 bUttsF#8I)~ZSGU>mrV}mUC-6qTuc2QJ47Rw literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-happy.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-happy.png new file mode 100644 index 0000000000000000000000000000000000000000..100f4aff7267ad9d816e39aea4336b88e1ccc5d8 GIT binary patch literal 62700 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 Zq9B1;FGWEdb)nQrhOG>N$V3u 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 bUttsF#8I)~ZSGU>mrV}mUC-6qTuc2QJ47Rw literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-invalid-credentials-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-invalid-credentials-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b45c0984628904cedb3179664d244f06c7a33b GIT binary patch literal 76698 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-invalid-credentials.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-invalid-credentials.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b45c0984628904cedb3179664d244f06c7a33b GIT binary patch literal 76698 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-loading-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-loading-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..4c16e7842dd939f5739a7952a36fe21e87941c0f GIT binary patch literal 63829 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%0Dk1_C$37LnOV*y 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 Qw6MkD50?x0b2lFU4-Gw&{r~^~ literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-loading.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-loading.png new file mode 100644 index 0000000000000000000000000000000000000000..4c16e7842dd939f5739a7952a36fe21e87941c0f GIT binary patch literal 63829 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%0Dk1_C$37LnOV*y z$Q{nI>@xoS83=htsYi!BH$gxuij;bbr$I4|>&&U+k<d)7AxctWiXhgOj%I(k#oYhW zoV@<vJYaFf9uh$>@ptPdM=Vy$NDIK?OMNJf&-VG0B0MwRg%0+R$TKFVj2{d{AhbR8 zQ_)|RS14DODFy?3yLi(zONI(DSX)|nrX>Xhdvm}o>JWS+;+Nz-%i6$9x5SSwae~A| zW}AU}PSOYNfVi`_envLDLq(~tv%8yU?*u+dM>cPd{neG5U}?#b_|@hqm+Qz%=V_}z zjk$;8=cssvkKav^>mNC02y_*8SGp@=wtkBnv|vI*Zl5U#6OiVGPwDfRs;0Z=Xv75G z#tGX#U379J4^_O{nfXQz*a<;R9&_ykrHhk12XKx0iAQ~Hm7sC3RvR$rX2@IKkgeHj za@d$nIjo9a)cr;OAN$H@w@-23=w`*(_JWi8&XfsYm9&`zfV*}DkKp%9&);Xy7urfA z;N-P#_;)OTl5)+OzShtex$(e9znV>yua}Kqld-Fx{T}AT*<Dc5J<=nKMD5A`W^)CG zaA{H7CVmT0-!u8NdR4Ww7s~(k+iY{q)iK0|R1ExHSkn6Bvo;`{iLebb<yEB)jn9s2 z@(Ld>b(1bV=nC0g6xOWNuk`luwtA7`x&eL)duhBt_0H>j$@451M{$KS)lv%f#0!Hh z?LK*}{^Lii@+OBEYvW?2L`QCo$JOZvd4TvASYL~4CmGEV%opBC`^0GSDPTUeAxX5{ zmg9|Hfkx5nA7KV`4M0tpzk8e(5=NdEK<CicUcaAyO<PHI3UL_cuxg#(fkSdPAiGut zfCy0z!6ag!QTl3WZRy3dipUuujU-Vlea@7uE=6KL58K9YS`eBqd%$!h^s_;O{)rvO z%k#_e8qa82R+&3rma=(}yrSDJr@fn0B5#Y(bRow`ai362%QfRazjJ(a`KSc{?w{$9 zPXP8e<6=FNparO{NFc~7l634}dy<kl1Js|hX1~yIct5wm&pEz3>$C3GWA#I44A}m) zX1;E4miua!mdPRCT$YegQF6^Zq)f3p=FZHrMjlo=kT2yF4{9i`c6Nnx)fhJ<PFH9v z3#Ck!UpyRToxt284L;P2w5iuzT&^F97~IUJ)<yhk_a)|5boc?TNliU<IkThW`M97Y zjrjF-j-pU|`WN)JA7Q4-m;lRkOMN=yoBRM(4U5cIZ+54E_#iyTCR5KoQFi*{*uw0W zU@?#F39YA!>{^2e#Bkyx?}ym0vE5o3`nGcNRy(`?g#$t-HUXDnGAYuVtD1b8*_U>{ zCywo5cK{+K7{*%wQuf<MjT8d?m8#uKXADB$tP>q(6Bw-UeVOS$zSG&qX@QKfT7O+< zJuWm-$voSr<@+e*Ko9Vge_N31kfl9oh3Bd|bcGdi?eWUh)bvNTE^iu0B$J3jZ2GCw zUYID7fwndt)bb+^CIn(hb9BGXN?R;F9Ai=%6zpAbobvdpsy#vj@$nZ@)n%469o(Hd z<4C{T`g&;A`y%dE-BZBrMCKYJnl3~kU{nmKE#dGjkCEEL-VfxIc17u7I<UB*{*~?Q zk@;6AQKMTQ(4=XGXgrA?Lp9sW)$Ncz$@wBb)`{DK=9-f5j%Cj1YbzY2yqVLB_&8~$ z_m&iMB(9V`BU(X7p$myjuCpo6<4)t4N%y~6ijvP~=3sPtpAu;-Ryl9_980$Tg<>v0 zcuoRVe7#nKu~Su{$HL{c>7t)gH$D8?awflefZ1&mz=`AOFWQ**g@{QYRUPnYcFC5M zJTf2RWHTh^*lx1#z`eA)HlV)d2jmf_M5*3)f%0{9ktX65(_UURrr(s)mu1C3849W6 z6r`hH2|?xJf(fOx41zB;LxZ^Im$vsiZ$b7p9<3Bs6X}&ce$<voXKa9gzKO}P;Zb&- zIPc$vA@pG6n;vCi*fY;inui0%VcB<Og(NclDGie61ah3#cGtMAXWDWO7>YiJM$ip~ z*jcSW&=^#6MS)*L{eEfHNjCKp|MNM@;(=jdZcYB^_md-vRpGU|N#Z`1OJiTa-hJ?T zD;o7Sk1Yv#&J@)u2P!|*VDd_pTjpBQ)%e}xshk42InFdbLk~K3Zf<iVnc;4={maHs zy`g4*A;d17?j_qTFCVXaLfHSXt-4xK1DW=8<`XSRlJwSY$m;NYaDbLvI6SzGm{zQV z#jVf^LLy8}9vbjg_D`BR<_H6Bh%ZdejByi^N(&sw9Pd&h!`!6v`zWxz7EHV@>eu~* z<MA)QhqGDnQ+SiDmj}@Y08g5Aj$dnfadqoCOx*c7&plcR=g)HjE*~K#X=jka7u=e# zXC!u{?e`yp*t4Rc5-8-{c8hl?04|OCR9{22Xd4jJ4kva<JTMkZTiZs~Ge&DJgzZk< zxyY6g^Au9G5AG0T!YF;KNw0FE?MVqrzeQ8gL`XOW4$!M$<3|rF(Q$Hg?rT3Nc;&M| z4f_~h8_AC@0qsOyp1Uq^2Mhjtm(kUYGS{v;NS23hyRr5_qWjFK5%3qHjOuDDN7<`7 zdAxqFXOo%NYvl<9zr&ntA_*vxd^`HX7;j<SGDS&Y9&T<=Tn$YTB+Whnhmr!~1#XVx z03`8N-kbedk$BmQ_W&*i@u)E8=xTeees1v7n?fh~e8yLUQPffE#qQy3O|oxN7q;~` z&PHmo_UqH-XoFRVbQU{p3|vStg@IP4UBHkWqLFI_e)>8`3lHqXRlc^#3oddVVya&? z<+aAR>3Yd<)ZaxiD6$W#)c8#7NzJSm%NQC*xx;)<zzt@2H&UrL_CLlmNI^$tn~vue zJw%;}Xm?wU*}8S(^2BtS(*g)l>{dE@e@lu=2KU@PFyQ%G8ORI4zTPK!#G~STO=6gm zQ7#nPN`9w6VeknelKwm<CXqqkYDDVS7`Y&-^ik%iiOBPbIk1yAuN^L9Ez2cnM_scS zc8{At_+8bD7vyuL8bed>e<yLC-3?Bd4odse_0|AB>cKX<Z9EunQczs=yY6OF9#HI* zN8U5z8KOsnKj-vZ@IQ6`q_V<zbK)Xo;2!pvhYkinS_X%lL32K#K2ru$?gUt9M}fN5 z=W55*VRq&F+gv(a3;f|doC0{4?Evzq(-_cr^oaaG*`F@s2yHW*@L3lCjrVdPo%wJl z8y_#Vd`-^2XzbOXn!joUIO+tAWU%sRHP0t`J};Au(-LfdM@Uq9`r!^1R}!mdlZI(q z4jn_8_Eg=|Bj=16qXdjpH*>$*&myRK^lozBTdo^7bYw2*n13gVPXzu+iiB9$qBw$i zavvU1E<CV+*NNX3j*S_~af&u_TvvX+lifVv)ZN`LY|!xL1N=nM(QD<)(N?Y<33+Un zB5nlJp8e&P-`Uq&@|P&*)09yZ;DF>MCOF;&xh}ot0|0d-`31dGn>u=y^$A4+Ow22r zvW~-V>;NHkA3#^*aAX&#$#80WG9Yhh@ef|ik(SdSRa`D3(0XMVU;jyWLe-Fd7#Une z{zcsa+C?rxvPlXGUjH1JDX{-(NdQ?sk~w5E`2<vlia5o(Srrd9o2Vox$vu!HCXSS6 z3f6W-jTtMPfsn%p9uq|Y31@ImKU0UA@#0lxusFxYAS&(I`p#-%QuIJ=7D~a}N)6b8 z5W@Qy^r{_q)1UA$)L%*3z84u<_D?a{!eyj$1@kH351P#G?8w@Cm6tnsH$Eke;)ow6 ziIq>3tbEd#RqHTZw^@7MkV;sr@(@_O9>#Tt1@YPY_dZ)vY&@(xse00=7wnn3-Tpxe ze7hg;{wu*_f#h^-bfr@533cbvaXG|vVjZG<hb9w?65jeYsi(c{>|@~R79V+<Rqzz9 zF?Z=(Fngnhq{pMebbOZk5a;TJF=c1P0KZTl7OJj(!B&>d77_1oLUD}450SB)=8YBG zQ?eYYnC7A(IiKFfPt^V=z(F7~=Oq5X0m&HVj(flDRu|O2zU(C$u*SO9Vfd=+H}Q#A zd}{j&rOguVWkzpPDDIx?7NJ>l#1~zy42Jw0Lx}T(wZzy>h|`qEUdI`ym)EzgX&**j zW<T7HIXP=>Y|6RZD9a@USJIVJ*UF#glI@s!^N^Ab&3wV09t9_}9NO>W_3}~c<}nGK zLCORHepJS4ff@1LG_MQYo;-Hk`jhlCk$pskR1>|K9`sOg;b)k~$e7}TB<TkYz>)!k zAaE1Q>+78ZH6WJ*#;9iwh8<71yC}sV?6Yp3bQSW5)48zAX728e&IP=$zmgRImot%; z2ln$R&1Zuwt;4#-7m#|VX$>LOLv~HgPIKOs$Vc^)$*~?O{ui|?gZqbDnbnT8hG8AM zkzoQxZpWRWMB{yJ6}J@nF9rO`FADXm!Uwq6*$pd(GzRUEe4>ovo~_SX$dQkukpo}V zAdP9(QHsLmVeIk6%tXh!`k51zxE%C(ThHYZa#0No54h>;CFd|2Jd?G$xO-3`Ht8+q ziTUj*S#hTIStF}RpIb*^nVh9t-gn+9GI7CXg<itz$CRkoYW^$)2nuc_deg&h&)iT8 zCMtZ&w(Eg>&iFs5d(Wt*y6;^yii!<*l@0<b(gjo?bWjnH5_%DkB2^%ObO<FP0@77F zp-2l&dhZ~;MhGp0&|3(-*KjuP@BhDNj62SU`{CX@&fyDVK=#^e@2oY~oX>pbGlyMX zGD&H%>Q!3G>%+ho9M?lF@+)^=D*-NQJy#Gn-`V>OGJ}IqRrc%?nkN0?T;B$<;#+xQ zTYe<3{m(ZUMpWOor;)Nu7CGlzLO6TAp<>gmZJZyBS4AB?_X?f*102otWT1wNE)1|( z7ig&lQ>zKjW1`1Dt?s>V-KRat+G-QmwHt?hPnD88oGY@!EuGI%$vPZlU(bIUGijgK z+R6W|$UwR1!}^ks-eOz<+1;&sRbLWD3Zgzd2r-rIW>FFj5g!9mljn7A9I^(LQ*9)q zPqHn&kLRadc+Pbtps$K{Qug<L((q!RGMD}ORqPSGVlFvF+60@H1e`5fhCefW_rkwe zTk%V+hlU6uL)Fz*h70Klo62O5%TF`e%Rtf&6EPwD_vJBjm5+q)K4D^_@0ghQ*v$er zrhl-ojOWWvUL>PU5`J|(aE1MY?z|?xW$e7_;^0HW_?hMN@Km2Q`w0Rq71il6Y`cYm ztEb%lo@~~)-$@bx{Ho|%$Zls|uIVr)7HFsx@$>Iy=vZ0R%SWL`cTs|ZWdKG1J=r_X z*U~UW?=g5tJ1RP8z5kGJidki%h&BGp%KbRH0khYa#P9olb#r-rc|IZbho)B9J$jpO z`U3dKDK2Wuu-g*uxY44aI?cbLo=dkGZ+_Mpu4+2tad*y&G1kyXOg3mHq4$w#!=c>Q zrMvCZFE&I!*_a;7YONT!?DScT+7{%zJMLw%%}JCM;!R{F-mkQyU)Nx+&OgVI0CM|T zeh<cm_(D|CjX^shn0CNP;%0VA%;Op!W}9*tBs%mou!ax3Vw6m$XyTJxe^r!iWn2^6 zCqT)fjvii_^%-{s4;WR;of>XK%6r2??g}wHOXODG>#1{t=GOhmSFkjdBj0$$d_S=v zfROH2jBl6rp5`2VDl6_fYHaj(KmJyFTgT?x?y#}fIY%w1l#KMaqLm~#3^6R&Er13> z#_OjHLggGyI=3t!^L>JOEG$a6+HOkuZ)0HUq#VgO=I>VQCvVsxbbO7W>gsCV==1rY zV15#1YF3*_fQzA6C8z6{`=5Oied9i&)-{ilU)?`0hAnr_X}L=Zd8(h#_ha=6nx$6B zn_9GEaL_O0xmMuw33rWp50gKirdTj860axjMbHh0LpCK{U@bq%gzATxWQtO!0*bmn z%k9zR2(9MIckCiYFRD`8uiiFyj}UD9s??OSe*EhO;N}i~bWs8Xev}a|;@6)}g(jp$ zZ*84t{AoQx6nIpX`zl-MOs+nJJ#cP)vE#Mfd2e@nJ4tGBfNn704IOv=V9;aoFLLI> zQVjGRB6t5A3y6th_B3%RvbR${twBRrZ@8z5;oUMuONhX>-cz_(H=bJP`78XPr=e<4 z8U5iQXQYNnx{K|}&%6^{T`mtGo|M-ztN5jm!d3ar=T8FdY?ioTt2EdxA@5@A3Bsv? zNT)&A{kznRRJXG-`Ua=Ruwy&LA*NdHX*4`m9D1LAr6S6&P*kl;!HzuI16*1E_~*W~ zNF-5I?B#o}a+BiD?eAN2^xO$*Lf;r*IfB$wE4@Wywmiqz+vyWTqXlxpyW3yy6WEXU z>YCoo)H$4~jq;>UROV2J^$0lC*nV#+8mzvh{d!Yr44JFp3F{&u@h+e^Fa-MD0`)C0 zL2jYJssZB(E8T`oW<WpHwM-!JNROc_Am4+MPN?neq^tVMYy~C$BLxFNz2bvw&WF%H ze<%7+-%$|S7F<R#-)!yz646?-YPniHKVP^JkAb5-tCPJ)VfMqTKalzLMI&nm+qyKQ zScYwbwn5C4ZWgP6`oYfcIo<UC*c#V;DKG$$nQ`!!Tygr!h!V;dPwbQv3@4ZNSUXEI zTlNr7)-QOzZngfcEC)c_R`XyF5Gu)`*oKQtk2fHGRd<5S(eUFQ8OgeGq;!ZPZQ&D3 z^CcQUGrQMCmOW3jMzdA(vqRK3wQbJJT#8!u@cejml)=LR<>C09=5VXmBal6@aJgqd z#^*CEjk%M(W>T9y<8eerWR<+f$G<bgWJpl;S6Ik|Am(9`5wmNSGxa4x9Rb0KRSJs# zW)lRthv#|!qXdjCE<<V#`~oTbm;U>!e|3<*|KH?*)~FEUva-GW;LB{33CUA^k#WM$ zMF0qXk+2awY;y^df=pPS>KDg<AUz0yoG2CK3Vpkrx`_a{57f!Vq@?@S$YoxvSV-r` zhY@=5Vp~>2g#`V}>xzH;)QI`J#ejcr=%VWgG=KP4M;V;17JF;)c`G?^Yl#KEFH-ky zK7pBlkB?ssxc#3-7;ArwWO?O-cD`u-tBkB>_M5sF=zK9~#QM*;L$y-uwL7<C{sV+B z5@Z5`Cbf%c0o>hzLb&Hk$j=uRw*cK8;N7y`W@EceEqjMQGLR0DlRVI=q(Z4z)Bf*; zWai8GxvxcWNmm0+_}v=VlL6mfpG8Sg`}edsaP3PWDjr2H6*ZHceK*>*uEG)^!BG@h zI1~NDFlTTkS`7F|&Wj2;#1G9kl)h6N<OlhJcz_gs>%=rMKNJw2R_N{eH;tJ0?eSOr zf;5rY`9=2exCS%ITVy-2-49~2fWFYL|Aoh2+@=_o;Ba>NCGu$8khhH;XF#@>9{gXO zB`))R3Y=gyk6*#XCM*dVKG@|wn@7NHUj6kyleB)!VeFT9iTZ1WTqSA0k$97Q%gHhJ zRz-`-*r(_1a(Z1|e3|3#kQzbPJ;g`mpqI%lF_nx#q~$^xAx90<jy8(Zc&=?*qVSi4 z!^%oezt&#%33BP^6gKYM#(nvSr$F8U$PYy)J=i}_n0#*|P&>TjObOc!Z}rwh@8-_D ziOHV4D*G!nX!5@p0f_X>rvi1~?q7vy=0C7t=g?bs;hO`pN_Zo`z7oeA2P417!p7=4 zNaRgfHcr)=(4ab7yNdU~H}cYsi&vADI*y7auC%%BhR@!J@yE>35nt$Ia`M_MZ4Ht* zr=8H<+tE}hPCZlrHmIn@yuk;^lXILzi4J`wsg(v^rr<+{0-da(oM8rl5G0zLQyq;w zE|4;^2fiTJ>_cZj6!C6BG{~4jUmOsRe=KWVqER)+DSMe}`PBOf`1zmh8cJZ7S-iUe z9I6z$sy@?OrnvU--gh^(^MNEGZ($cO-@l*L_?&<wp^Xlp#ui;C){9%Ur(G7KMYM53 zYsY3?|5as=*5CL60Qn#_<Nt4yng2&pbb_NmWN{jL>7yS%zFt~cSz5YWaWBb$T@(|O zt7YRFT>2(sq{o_nW2SjYTuh|8w)UopZKTwBr5p>QzCi+hv~#JQ39@M}EWtNKHip*4 znjf&s%XiK^yl5eTk+TeSVr~gtiq_>guPRQnbBAOaqTZLg^m~;x@o@11RueGZ@nU0a zNj>TUT%s`#MS;;?;xuggKSZh~k3UJj2T^;i*pRY4UD;57&L{O~u?Rj2NpOj~yim;w zNN0xF-)9~a34;hb&<Oo<r~;I6DgnAH*a|y961B-PuQp|sq}FSw;iUiC)aJED9-yhD z6}7dJ(*cxy&RMhp3f@H>9ERbl0JI%;lOoh+D96zwCqGnapGL}aDP3o}Y653C^|bO< zs;XTmpyFhX2G}w`?tM684=7!j%gTp}2|nR`BJz0}0D~h^CE}ug#wNrNR#)#+t&CM_ zmjNUhxuTxEmfjvMAf1&g4sXX`@Rc9V0k!eQEr5En2PC(5S85VF!D(asz!QCjjHC^W zQA`O3b|PQIT*_`uqk_(zH~q|{FDj!g8E^rmT?PUvd%OEIC@s!tp!Q-pSd%u41^}JB zcLq;kuAA>h0st<=vN6gGrLubwFCN72wrDd45NLXg`<Ba$7loO`9S`bKX-n|iW`U7) z&UA>WYKz0UEL+I*ovd^#q%=?|)V2%+AKRo3xEF2<e|=Nor{YZ&@>S%sC*#oxF}uW0 zX-jj<P?iEfR0Ewo#dA6B_2INe$bgE<6=LIADh5*nodarXIN|Y2cbz093GHLcYSeji zMxvgm{&+hE|7$+mOW0Hzja_4HTI3fUf=-FIuZ{i<<1k(S@lY;qjV-vwageGzbUFlb zwuc?M9;%b*!>{$$Yq3C;Kbkft%-mwxcXvJ&xtmKgPfX|nik8~xFVo02h4!wu0IkmB z@<~I!m8gC|qVBlw@Au{@Nio@P`o9zv6#-$K?u#0;!?Zu?rr>q_tS_n>%N#FK>w~57 z_8TEosqgA(({2ov@TPL9fIC%FXq$*-%ly0eU0SkG^#_?W3W?)o7b^pjK}T1$s%-|J zigEr;MWrbpbn7;4$8pFdgaz?}U;1Y>y8bLpR=3<a*m(-S;t2iw@4*}_HvCpzROV3# z#P6gB4QQ|Ihyt9UdVo3vJ?R<w3J5X>LQ+Mve;9HmZsAdus9(?CPy#(Io6IpMKp)i7 zV^Z>Dy73~f7@CdoMmFP}$#xMpcc3{9zswm;1fUC3pd{|5>D1#2j^ft-O+qu0aP$*k zF4Z5*nW?C}cr|^UxSwELd|ZA5OsqmQL0Ey^1t5=mVq6sJtBT4h;@)e5O%+yE<eKa_ z*^=CxcO}qvb{jH4jvUnNwyFpf^Vt}Ro93Ol2n&xepAU?zF}t})2S)dzW$ItP{RA2@ z`6wn_^m*t8fdzv0rq44hdGdxmqR9?WR)FfW3k;8E@+%hvHA)#lkMAs6WGd;-VXif3 zfldE(qXQ2b^V8KO#oeK;G)pnO`o!Z4$cKbr!C>g#mj66Zi^PA*p`F>+fgCe}{kF@u zgeJa-8Y}~3@+6N}d;st0x#Z*`#gx01snaTESNAg8Tl@o{DG5lQNNK>?4Xv%M^<lBq z18+8(mfgU!t8<T~GQt`10Lq0Hgo{rH;LUzp?%k*CM}TL2VgShxmB_;NIyZZ4sa|<e zk#Ho}d*FQovTZ`EgV%&Y)ZeDBw8{*vU~in)*$8NV&QW;Y^y~YoBv1@D@4hy!GFB37 z^>nC4##U9;ecPX61sx9fykCCDKQa285@E%@VdE_eO&@E1K`FCeP?8b!FJp9Et)Lxn zjALu1Q697EHm!3P!!{Lwkf4;u!f?$UU2diuyAeM~JnyG(m2A#9o>1-?#+~eMybiaW z6WGl!e^wDuGX7)*anqm*3ahVoELQ3S0~9Pv`o-Y{B_EhudR&iv`b}!OU$%A&l9SiZ z6`bYxu^3EnN_1QXP<0iqLIH%5w94O#w9INh<I8}z_YyK(z&AVm_uxb+vdRISgi4$1 z_hRw6*sae3Hbm457m+M_MZ@}<@QgR5zPp9=4)99T{@7LCr+f!VfT-Q7!S*e#FOB}- z>r~tiOAsn4qZYZli^0X3q^+VZvhCE1g3`t;Eng!eX;b+cOAgq-G0?O-IqkfO#M`;# z<4=Jz{c~bYg^eac2ZG_8{nD5n(bS~+#^YT+&2za{U1H;>_V(VfBk9)H{u34U8;gsx zvyW&Gi)k{3_t9elD8p~qhRvJWKJP9#Hh?mj*D_bV+z4tT0l3Nctbb%E_x+iYn&`&r z^{5PxcD9B|0KIY~RY~Vg?YPSihE)%QS@upEsdv5PacfA>vzZ}T)%E#BuD5?hB%b8g ze~bAUJG<`F+EDstpBH#fIW@p4`?rvUZSuZNia2cT?!|JPvk_%#VUt~_-<!d25IIi2 zK^6#S3|rkH%cY_Tb>TQ5dzrFSlB;;fePcXOa=u+@OeLB^@@2UD7b%o_ZrIR$oa3h7 z{Mip|tnNUYj0W2iBwd4ko<lIH^NZDEa|J+mu>QyM4SmzzrNKD^pf>5!l{XQ0-Oy+> z1xTBo@i!f)9uFuV9|s^4f_o%@WdsQDO;czG2a>PtUsisYLOuGpdHc3#gkjoPHzsp5 z(*%77`wWQ`uR%>PM9o!kW69>7vf$U2lBnfEwkM&+$A8#tk6Zvr$1j4<)$e)3@TL1e z5!+enZHsP)MV~(4v~Ff!{aXz|wuy3yE}r0><KB_7+AP2>=2?{Ebh(w_K#d;)8Q2tQ z+1Sj#=XL^Z|8!Y|scjf<%|NN3RQmjho<LGn90xzEy4R$i495|qR&<dm<?W|m(vngv zebxiZO%jqm8h{XKKtMY%<9{gpMRVX3uM)>sLdM@H*e|VZ0tGj(B0WX<J}ge~)|*@s zdcf-0W>Ha5zpbHBy^Gl!DB_-#t}g9uzS~jEXyvz`UWQr@u3eM7EesU-aa}J0c>5uG znDi+$Yv4h_>Yp%we;Hu)wbN?#jf6!1Hx@9f3wgx!rZrR``AyYN4wi<^@C4&h>mETC z@0}=<bOrMa--f!ILjdtswdSJmI8>(?4jhtjY4;LfIv`>BWcy533Y7=_g=~KSPE2VZ zpzoL<+2T8~u-%xhImD@uB<imBz#pkxoA25?Zu7Kn%S}v90#;pBm0e9j*<Ob%`7sxe z@wheBV?nCrg`yL`w0M7xX1!}`&>kLL7KK5`k!?B%9$f|@!(R>E^U2AnRhK!V6l(5h zBP>zgem2kM613(M&Np_6zUg5afa1<S2a8E#LFB9LH^_?KH4i=qi#ZK=@sqPm2BCfr z{RykaK{%zuBg}BE34j==vZm6sQ8G}Nb4<P-M$p*1+A%5RG4MOCZT_Z6$WBy-f4k~x zNf5^r_;>124d+KGLF={i!^uZHsrZ$50he?nkfrE*g|5tt;NYA8tb!|mrggD}qaT6o z**+g=kfs&;B-@Ceiz}n<==6B}(`;f!wi2pqfd6Tx1Qp#1E!B)}*5fEHedz=}On_`V z;DEV#oC9N4MFR{-kyrcd|Din609r1Gmo&)#Q>1&_6ms&*^<Sku1@dlM+~JA^>iPI4 zo5agVh%C_Gf945mgv#FX!phRz6QEaEf~#h7C?xtj(2b8O<b|xlzacpp1NEC8Et?Zc zRCJwaU7e^`ZJkEa{nejhR0u%^I~89?Bfp<0#}Qc-E1$FIL3ncV1Ey6d@iGF<L)%nX zoLI5}G1|J4mLM0GHqc{hFD}MlZGLfSd3|H$o$dkA^)Xm|sE<cY&C=BFQ+dQB?)~KZ z<R3qP2{M4Wzg3I$uBiT#gn4kAq~~X;sRfs|#tMH^aU05DW1g+(PVTP*Gs^3I(R&iN z;|14eH}206X0<xGFA3r%!c>tt1;Ip4Zi_`KYA(gH-H_eT=<qK-Hj<Bqoq$eKIY9SF zA${KVzK3vCo0!XG4dTq`dLVPPfs@;Oi7GZWH%h}<#=ik)Bg8#yX~V<GohC+U!Ol-H z){)lOb;%1gY3m;ee*Gmoi067>G{F;~jJ{satr&mfAkJF%o!z@(QOoLI&hFEj2Zx!> zFDdbQ0TuB{HXLB}mhdSs<mj{-oqBm&6Kd35sz;n}Z&swynEnS+$i8KRFzdbt{PULv z6{7^s(E7`lYwfpMHrALB<@%4br&GH}+Hd{aFHDWC<w}Y@p9<9z4fJk>Ta(AP1|aun zub!Yd|HS$3ot;a8bx<Bq<AeC}CP6VdS@-F993WJzU(n4nOm>y|!Hl-M+}Y*V1^fE= zjoRnJ7Vf5(xufG1Gv;ICZ5nBl{g{4gGcsU|mqOi!u6keYYex9oQ2~VTxhs&r-nw^~ zd@c&QyoDOcQy`(hy^ax{^ey2so|agi-AHfR0FX}5%l(>K5zj8ekLfR2o~^Y4lKt=0 z6)*M=T>gFQHemrFrWOeRICDv-tt?mOU14PXmut-6?2HZw0gxq}SRj@QOpRB9I0^sD zJ1r&)+Hned%_6YYtWuI&t}J}Bwhj?`ISmt5r<%qYEz4}%f^qAIpwV7j`}O3O%QM9C zeX^^9oLx~A{t^j01=48)G5)|me!Viyu*zq62i2fArIfpI8P6krbh}U|+|alCnKp6h z?txhav=D19?8(WdQ8<3}%V#1>_4nrkTUU_Tf-YgE&nM(Sv&{cj48xiWMC|hkp=i<I zr^btqrvD+P0ABKpjyC^go4w=J>?R=woa^b?d42YjbkE67(^(0-aMO48q$G2cl$&tf z8q4Q5?IHKwe!R6%$OR@<RSd(t1(2t;zsOu2ejf47@mwVx8Yz#x_bNtL45~HjEdO24 zYLfdE4wpFnd&6YR9*}2MQtIvFL#oBDO}c-9^y1zFx$B3(a3C!upKu7!+0Z>=r57p0 z(0{^9+Q(OEzw0|%|GHyxls4-!7|E%Gd9xd8nSTTzP_WOoqUq}X(~RptS`A1jkGnu! zJl=TxTRoy?xPPi#JID%y9}=8&RP}3o5BGvPzBw3Hd=N(b8X5+;2nkb?0^<CS@Guqo zS9%FOot*+*(?LTqm=G;}SfxfTfqarvuo>ug?BWMxU*_iSC*HhsYo;IwBMNk1XcxRk zH8Vf^C_6a1yf0MuC)I6>-SL|+zLpp0Qvk1JM`ofaYXJF%8%KXxs}sH0k`%L4db?B< z`ulnYb`N)v!*mR5s`-C<3_n7K#Ivdu+;838v!l9C$1ulV<{kGUMog5A_0e&yhTeTZ z=b0I(@!4cG`dlQuZ8Q5*LqN;ICJ}I#7S^5!)W%3Lj1p3JN(LeAw-*=lyZ2hCsd*YC z7JPlD0Qv{Qkg?nxCdUWyfc0Q(d%Jn6UD$%9VEQEhXX!q_vM>N2WF4y5ay=QB=6*b^ z*|Y>K-1rkF#DaaH|B2f~ErAn4OGU#X0W0*fYK{1`*@6ZZ09exHrEZ1~_hKZO0r|ob zHG||Y<)!f&!(Bfgar%DaS|?kD;KEa?_M%bVbY<gi>3ny<QjR;j+Kh$uzb~`i+z)$@ zxH3_~CL3FUINYXb{W<i4P@>>H4UmtDrm8!0fQr8+8N~Rke=TB4w_p%D3ES#B&PNKX z`)q6gsyIyjZ(4c9BOge54!Zb8@)bZ%zXH7|0OqWCR&$7+RpHGOY7y8QmfO#vQ%$z+ zr6WVxUUgGAYzT|rX!D%KMG5``Nv+#cV{2t2-@%{M2ADm~$gm8GL<l;gV4^yRjPzlp z(Lbh%0P*vU1Mugm!A2RYkB^(DttQvc;TN`&vgU4-lI)R?=)%|{oNFs~FarfUYQC(t z`fSv|vQerOMAImh0);I%Qr^zu;~pGvMYU)`+1L5GjJ|C;&Fw8V5pkx83E%V!L|x9# zzOXTB*;JT_Yl)@PwFzj(s6DcpnsY@$zAv;T@W7wqat1%P3FOM{<BBd4`<0(aJzuYq zwN(OS4rJ&*5{(J{mh4V5T^M89LW=;Fz*QsZv&JDobKnhBo8k%~Sn?9MTwGQ9&Zx%5 zpT%oZK1PE5?;8`_*d-=$9+v47BPjT9aKG{ym+zSmTg<P%sXTRC8e&=QT8HoefTQ%E zn}uVloDcp~NMB%{Xb}Jc_vgUuM`8D+4i1RWFHX0#T|S!bBOB5UPJ?NY_Xm*cK}XWK z#X>FhUtbi}J{Nf;08AlTXi(4%8~Y4JWgv5$sLv}DoGb;8SzqIlEVrh|RhZq8X5shc zVGCaOiU^IHt|i>$3A+a*L12Zie8ka=dz=mq=_Vz5<u|$l3rNud&KN<V3-xuYNhT7` zNSK#raRSw;N=i*%T=oQ`wCj(F+naP#2yW$ahU8?j_FjPbtVxp=tka({{y;~RvhGvv zW9|gGSe~)Fwt)CT7(@**571x!!ZFgxN#=t;K4`V1cgS-)mL%-u(eO{3f>Sg|9^^}D zFxp0SJSu0$mWOe}#j!`&G<N;GI|pkMfi}7-CvL5Mzw3VkLjQop{}6VcIj4vt`LFPO zU}NDbHs6>!iPd#;ntulvbvyWb{&iIjcARh2#i_EwS$vIKUi1LO-eEBsn)?sOZ?5~Z z)LVU3A7jC{@yD3{vq+Z*DuFYLI{GED>+wIZf!0!4<)8s+gNy?a;?2DqafRaysV;_p z-5Kvoi!|M_2-wabEyj=M$PI(U04n3Kk=(^3eBr6Be1-<4!#S03VFi>1=zDx*P2|=& zpYWL(&PkI*y!l#eU~OsXmU6Vtk)=Zwo+BrF9JzBlwbfsXurnj89yu1m37ZmH4HP_E zo<_WT6>&R!SPGjhFW&M1ra%?n=1fFQ`81EYj*_xSPgJt?dUd$n7x!{_(Zzo4Cfjd~ zhiijsid+FzYQLxyNdw3&xzyxt1!(-@V${(2{Qdi@17;P8`wqRacHI-3tcLg%Ks52V zv&5p8=qr8F9OL5Zx)C#Xir$r2uE|y0y^=TlH?C=EXd-b|Tj%1`-&pc!D}x?%cU;~m zYU7WyYIl&>5T!T%wTuj|#wy}nR{4jI$*$mHC>zC(vlD)wmVo0r;VCDFN<uxcba}%? zAnRU6sZ6p|K}~hnd1YGKuf)~FGF555hGeg$Tm1D4lcm_2qc7Ppe3^}S28K#JlUnWj zSSst4#Zp?sXnStl41G3vq4Gqvwa3b0d<G3|QR>ioDXp=V*k_H6OoMm<TYY>P1$nz3 zxcEz>pnY@^Wz#ZIeg}2HGNtxtan=<@(yK_D$e{|GDoaTT-y=meJ#5M~*!*38jxXc$ z*2ggQ-Jp?PbU#?+Z_F82#xx_Tt=srWK3_R~3m(xrEPBItI<uSV<A#}7#%?@Fu~sCZ z$Z+5w^LXIfl|HmM*z4#vG0X+QcS~Wp@c6TzRyrbN&n%2XvWFJEg4pXd#4>Lo_hLIz z<%&*Ih9={Ur$hv|wG0gn#a(Ey4i2?Esn>ZFG`;Z1A+jYxt0jen+D`9}U4Kk7$vd&n zXM0tGp}Mtd-V&QN@M1qcG51d`u8wLPEa!^d+F~Wo$ykv0a)(G$od@YNHuXc6tdg7+ z@lFhPdBVTPh{A^TiBnUJKzq7azEqdV4;Ca*m}Y;0lf&De&qt+xLNLvl8je;-!Rhjk zElH(>OwaV8071Uei~|1Uex{^&B@$+zx{thDE3Cmv8BF40!`=_AdPgfmbl<kV#cSG* zR!Ee3yD}7D2Gcjs+(zxj_k!UUqlZPcU^W$0SIkn)FwL=kx{H76$yto9v2*Wg+7TVE z@sw7*3bR}gOX;VHVd6VXxu>nvpK_OvA2d_mTf1;yOfdB)F+X$A@%6-=>||+i(aSqD zs(DY6#|sPOn@=U-FP9+gD0nf&af8eFWP)P1H>0SyprFC!Lr27N?-FfF3>rGfmynTL zl;7*7<5&Pop!z541EQ3&O&@GmbI>6kSM<Kj)xeA9`%-=5)(A^<tZeqHWU6;r^d->@ zolHJm!JW+dZaVNp;^~q*T)lR(v0=W$U=!kybzB`4DSh@$hT>_&jVwk5GZQ8zLwqdS zFYB!$iGJ4Nn=&gE2v^j^im1#6P|frYNa4*ZtrI`bkztLjex@A@RZk~7`b2$5hN8vp z$99Kk<Ei>A@ABNr%0ERXv39K(LAd=QR8jt&81e4s^QlIGiD;@+HCtQm$%?bDxt$3w z5EGNp#(Z{G#a7g|zm&JtoZY7nyOu9@Pw{a7{%EqWhKAWvB{_%v1SBBthO<jOnyeb~ z(Ab{0zPho<59>(6um*lmG_WAfaE$rv2~2Yu$ob5CX}MK5^bjo*dDr)#*zfqScZ0fh zo}&TwU??)Tv5~K76DuyJM7z^}le=fEYH<wiomC*B#GD<;0ZICPrCAC*vG<i-P%t|7 ztHXG8t7gxx=60E1O4mWTx2a>fV75-}_hpsDFdn-WwHH46yM1^~q_TaINXesytn7=6 z^Ohp+DJ`@4Hd-SmmBjeE<wp4p<Jz4PZ9-^w{EeugY(9zQg)>%bxixM68WF?ggF0qK z0T@?&?H$`bw7X}E^MI83M|3YMh4>aRNXML{7oj4K@A78TvBn&QS@(0f4}He$$e*G% zd!q=y0$LIN!YT}R<GkxXl@Hq;=NO<f|5ETZVW2ZEe)KZ7?LBQIRG)pY#25&dzhb_5 zNVb0rm;F;wSbSPW*^YVt0S?Sp@u3qFT}0C}<}&TMIW!cIn7BIDxF(uqAydOK*;<CI zJ&9+f&8~vZC=;h~z87S|)0+B#%o-B~Rax$n@N<dvg^VEsaPjjN2m5MP<ML>}WlZ_e zFF-~stMlLob$%I;RX8@$;Lh9&;DQY;7)sH^nDSi69g}NVBl-K|!hMrtp(g%WXFChy zSI?II+(et@kLmUyU9_l$yRVr@m#adCB-6Yx4vEQJDu1Z}kgnF{!%*Ao@vmEC`&oCW zh0`|HRtHeK6N^KcBN606)03R=M%4^R)}8EBZx=lQi*o~zL@@8Sp(C`Y)q{($G%dw# zEywJg$=?Z@sTWCQv@9ZkI_vFwQS7Qp9Oqg0au<2VqL*f9_!Co&AMt0_ZNe7@(*hu# zPzw@%{WxP^kK?=$QnfRWPpt(mEW56Ak!v%S?z6XIKw<8ux?m<<kC>Q?lj+om#y`o2 zQb|p2o%e#sBi;HEgsLN!{r)V;)TCalx??u>DtLGvtfJsP&fIxJi{74p=Oa0ApL!)T zq&)ze-gvgpl2vtaJjL%NpDd{hjT`#a%U@Vi<8p3n=#E`6Feo?KGVdsj`e#=+_jDUo z#BV54TFms4xZ~|Uwfiaeo~9+WZeCVyhqpGG0uD1YI6WxcL^y$^Q}!w%o37ckU7<+! zNkEdb80i?P;P3INz^)djVw+02Aho=7Vi3uGy!XXLA@4xbQ-hM)qeSjwLOuJPKsj;! zDyY(~PCK@q=<Yu4h#G>rEAG0q%RpqEPH`0H8<nSun>rMIzhn6Llcedc<bKz`V-=N^ zbkZYSsIO^__`HPds2~VuRSEvyX_7v2-PW}JltV|BB{ZY0J(5KLRFerztl-$m$=dak zX)-C1b_*FyGoR+Mt0FBqGi)RpY9eB@6h?Gr+%+2jbW&G?<)iub_L^!ZRV%4S8MCm; zEZs8eeVUQoe+D?~o3~=5kF*`*z7}97nhvC;F+TI(Kw;viV-v`Qq2;7=2jder>vxMO zr*T<TM1chY&|wqG8&Q$u)3M!NwjTSy<s}1-%aFKOQH3;55HhpTbw8{nLv$<+?+vA? zBoAq68a6nhW9QxtT(?Tql6JX)xfjI84dKq}I9ZEpLQJqh0G8tTM5$+QguN)_Jy=NP zX#q^d_;e8E&FZ7TV2CaE>@AJ44JoqHm<XKNi;Apu{5ZVI(NvF5By7HgU?gfB&jTU7 zw~H`8nVaX_6<TF0Duj+pw?)g4F?M>MM?Yl=!jnImyoPfMxKiDA)ZHf=%3b8ac2g&K zejjl%uB=o;n4s95I|D;FF1`@hYpx7*n<@U4QWJ=a5ABFlK#lU+9j71V<>g5gE!}A* zf+wQMe!r_-Yo}eb%_;LM2@!PDfFd<jMCSJVECy<ZdHB6IwrpcEyF7sPFPN-rgWMa& zR$~Wh#PQXwJJ$!fXu;*>G^u}7rHEUUK}OVkjPV6Zi_uMprFdrVBcLVlfY(Vdb(3tZ z?eT9NZUl8?VFP~D3r)M!A8ikYOGe$ITut2#L+?5tY8Ye&_YVJPw}dTuW;1&&%$06x zOoj<ghe+zKW$vMKk6sHF9i3az&_c5ul5Yfs^hbZ$WQ#NUE~yYFwTv&bB6sjfVfGUu z=<isH5m#i8n=^OCK?lO8T43rbzrwt!Swn=l*U4g$uaTnPAXW~QBD&w+<UVyAvt!!* zYL~xeC9K}WDYwLE=gXbEpcm;Lh~ve?#AJ99I=p^11|_-wm9+<~t(bN&X_b-?nAlTz z;YFM3dVud7iJbiPLVGX^<qO-E3-On<UR&-j^74hf-0_KY!V{7F%E?;wzO_p%4NF7E z&Q`IKpYirc(yjeCL#MOnL1DEln0o<Q43hEDe*~qa3+dj;=8g}Ar@Bs*WS}yY=56rV zv9)=0ZRhS~HY@UKhMw8`P?L}?ZTP2c`fO&yg9`lMTj_196u1qs;<(^SF+30U(encH zE|fNKKw`pLNf%1zzqw-$I1GZmWzWN>?@DYUa}!D@a&oGwHcNyEXc0{qGF8fTC&K7> zfva||37*s;QR?@!SD?@W9qUrgrDHh|zw;Fv=kDTGpx=;IRpdU<XT9B0EI3+fvmQ7Q zQHVz)<eTKMAFZ`4M-s_$IV@3$IueJU+_9w<ypjySd8>I3nfiy1e!UmYl9!jCGVFh& znOP7Vu71LIikm>DYe`rSS?vX%MDmB%J>{%F!@PrO$Ya%v<C;?J-!nLNkHyGm+H?yu z(JAFJxOWq#sMaSpNkFF*Q2?*yQRywv!#4m1{&j847I9!1^q~Hii>WU0%QH}O3LD}; z!zu-^z}b?)xWX%+as5x2Krg=m9JHH10Q%Vfyf#c79Ai{fPy{FsjB6`emv|X5SAKck zgG@{$It-)Hh%2DA$64i^79DhS`OrM(E~F9W8ffhWjs&As7ipncFvt!v(d7y6ik7qL zXpUDIa&_4^2Z8F|%3HZtZbF8Hh7X%UlnlJAZh(qI%N;g*0$-Tj1@0-N@*8#IXED&` z4AflsJw07;Vpt?sijmSxC`a2+NN{F2<_bu{B1`Z0EwYLcvkH=yaXWWC?iOByDk~63 zRgdseOHc*c)zLF<q3JyTb@<CVlOb08uE-UTs>11k78Q<*mtA-x6cfFKM=Gbp^Fhal zV}Sv$GYTIrw+(kwYMPjvStuJv+1u>437(D*Vhr^U$w9@G6BFW^Dw!sU6B1mEGG>X8 z+ytZwp5>E%m7}dgk>)DsGe<#om4jh#rOOBX-ORiaM(b5!Bqo~dE>dWC%<XWm&}b|X zxQ_zYBNz;(siK@9@rcpDEE&>0sn;(gG=dec0~$2}pZJ>P@fPhYG@{MLQTn`!v^4jk za3Cp(4{AsFh=F>Ffd2Ve`lwx|_L;*$bmD4Baw=mnX(<=u_%)x=J)}!oRs}Ae614SI z<5?#3Ev+Rg{=Kno)cP&6JqEsv7&pClz-)Uu3O7<b%M$Ys-+-@zylQ~BL7SkjRFv^E z&@i!MHA_nlYX;0aTGP<5f3@PAqAf(57o81`Sd7pHHBSL*B?sXMtcIvI#c!)bwI&X< zg{tr76WsCjU1Xs?Ht|N%P!}4>yDpF|qyo+91${m@@RA=p3CC(Y%Ivk);S<ud>rc^p zAB}Cr48yMpjoevM!PRH^Xxe(|>Z&T{2woczENOJqXiZ71xdu9j9w<z)vtu&AiYc{d zP3$?YHs1+fbM%rz{LBM-D77IF?B(T^c2lL2?V3uuUP`uJ+<6@e`>qv275D<Am|;%o z*)7n)qXr)z9IgQ;*?_}I=0;UkxFUOxt+JI<o)vfwO_iN^7Ih(i?)~bEpNMBpt~?m9 zTTiybp0ZSHsndgsr*rc15(U!=9Zk<O74}EGFdp4T(GWJSltc!`#2cf5Rr^iVj=Eg0 zf!3Kr7YClQG@$XIOuoDVg*<e*hMnDhTVQQ4<-ru&fR`bdI%_<soL1Tm)a+|PQS_D+ zM8|Iq2vYqowq6%I=<`3oZu;jj0t9;fzt4xhPe2_;FbTL*lhalnF$1uxgZ(;2aBFlB z6L$r48WMPtm)kFdw^MZPFVC$Ar4@Qmnfb`)8J1_=6*F8~vy8+}Y}7QJPX&p+0GXu5 z-gq<mdsD@sor2l3>nkgTt;lh8hqb0nX@kOuOz&9sg+cu%xyo!i?C9xyz5(2=KX#U4 zpX}Ti?xI6h-xRmR0V>wKkurH2$QS0F(zJz-O7-#G%~bI6g$xc+GnO_yL5S6z`1<z8 z<`>#CrTA061r@_r8J}ytNJ~3OSXODA!AB7Y2j=u^yqNN|tYu2$cXjry%`5M76R%N% z{u-<J?+e<>ts59idv%mcf~|CWkdhLs`^`fU6h5ZfaDja?*DRp#X({wm@W9JQnObjK zid{UdD&^O^p|u<CSgGv*S37JF`w}pi8Zw&HNAGrEq_0~)SrxSRAW71V9T#3z>9c6S zc*;+2eig*rsV2I=XL+$5PDP=eoh-tIr99~Si1w#&_r^D!F5l!mzX5ukcVq13MW-<M zsbQs+CE?&D*zP0#xR07}gYUqa9rVy9CrRp@#nu3PXl`czyDYa%;MCk&QuE?A|KK&i z@{kacr1sk@%q}J#0d{A)#s)n>X6V0}!w#BJpx0k6x3N2<@U0aEtWqMxT4H^yiP!F` zJ&YVQ&UJokP<mjmmrz-0zuw>RH{KE*={q%nGpNl@zXclC(>^~Hb#*;F{{$sX>fl3+ zI;=HrASG+Yu7Zjw@GOBf2gm}m8nE|TDSm<x3xl1miGV<BSGCV22XRqX&1}Isz(pIi zMUt22%ng;yIzr<*<{f<o&`G+$y*+OL`Wr<F*aB-GOleFqmq6+B=W-aA<pvTNh_=cv z5|G;uznr&bFWhm`awIBd(GVV8vb7O&xDv>OmVq-gCNg}`wg5O*?Cg09oP?D~L2F_p z7C;BAFcoBef5#g_>`-RL<w-S0&l#FFn1HhnE44<)0(meK;c-D7jG$bUi-Dq7DkE?{ zx@8gdYM*-r$2@1So0xiz<fkVAt+AX0nRh%L9ewinzp(&;j=f9yxeosS#~b*C9Dm`} z@5<1e#J|su=Aze`e6ZptkBwd1eg?)#I86Meca8kLa<n51{_Q}YF}8M%lNIr~WVcW{ zLBLDS5Wkb?Y6w5)&u2B>4~#=43Fg8-dUwAfD>^yHU+mPl(l@6(M3|f%&!nOdQm$Ll zQz<Ep(&zax8AZ;+X=Dz*{cC49_w)4(>_o5eYN@rxzI6TJ=QA8B%M`H$wK?@Tw=l1V zU$=eqW?!<lferGfKP{vSbnuTYFeawBq^?$sr(tA7o2kCoch6NtyySV43QQcZmB8>r zB~c+`o-VGsm4|u_g>@Ou9()cX6AjxB{m#EazicnNS5;9@OX90<E4Zx8-OG5v@j!D{ zOrAw*PHb$dnitFCv+KpXjy(<P(FgB)ulI!0H#3|5B=1ONbO4xgv?{1+$+ellQl8;a zb4`S82#emcra#|?)33L(tgWtkx%3-}eRp1mV22E9HF2X~NW7v4+3Db7VrBgXfp<&~ ze%F@rWR_(8d7SP`wy#}=jJ%n<cf5q0jg+XZ6~NY6vztT;OkA5E0(M}MgrIQT&yR|l z`%49_JdLW7jenvi6SBcR%X$6Bb@C5})RglLHf{Lph-sw4@4bxx1Vku2Dlfk@ufR@{ zQ6J{J(>v<LvP$POZ<RFZG5o<_(>H(A<$P<oKogOVlE}gzWw5JQ7b<8%e?%=sh?UQV zX(sNt#}%xd;fty=@1T6-c9YTs>*rGr810#oGQ3;LvKN%*9cs$fm&7NmlnX@97dp%$ zlSG_hb_QOXiLSV@$>ROWI;{I1(=rNZfi2r#W;rY*q~m}aJzdEgU?Ki?T@T!djz`sb z*x<!{d@yidTNx|&8^AJoUrSuF<DiWdOm>;fG=5(v1V5aSrA979h?<%{M?^@&-sqnn zAZG(0WmdyP%wk!#GV^mWAz;z0CAi8ni>0~RqBx|QHcEa7z*MCRwr6DhodXQ2_MaM# zZjTDzP3;_$*g<lOeSCF}Fczq*eRefvdEnRzk|Oe9i!ut4w+j_p-s|R~SBm2h)Y8_~ zZP>^X2&C{Zbq&eRph*2R?T@|KmmZBF)5*H;jb#}STlh6QVu&X)KdagpreuKooR0>@ zxl^%BZJtjfT^Y&TuCU`xylVk-(hzWdEkerM)Yo(9YaX(rMH#=rEJbR!(N$9~bB8B= zs9Bj%*@6%^RcJjWLZ_mcf>aVGyif+q%+5#T!dG*0b8FAE%St)SmdX>WjHS{O8j0(% z2z%Sm=|5rC6-A!iVIiqvXWwtdQOACXIU5mQqCs%Q$;}LiHgJ)pSb#FR*y-Xl$O;_j znK$*G!9{{q#2t^gr2C!iCL~0ZH8i7mxx!v&{fIx?Vdc3&3mzG>%=NI5W7kZ~T4k(3 zxUV9Fjlcran{~<z^gX10j~O_0vdQxcn20|eE<U1*3a1k#>7A{{v^S5Y%l6_k6<W`5 zv{GJ*jRZ^CAl?#jDm6a^F}k9S#v-$W1b@_d6r-(8URjFYl?=)VW@b-C5^yMaPA~0U z$@PVfpx8s&p|D&bS6A(Te6oSR4XbPdA?@gq5%)z3VM8xXcuSJ62Ko+vLLwaO<H>+K z?$aIJT-h2Ln{ssUVxY!OPDomfk~3yivY+-=^(R03P;Kq&y}xvEIug6qtz>tIHm)L` zR2c|6;6-<%k+jn8`crW0y8z5`zLrQ7|A|~4kj}3;3b3BoUT&Il0yZyAU%oh@92v!9 zw*va!%}&=;SZ7V}v?4!H>-myFj`-BsfGzuhy?u7DRM5*(fGWdx$&iw&tBAQ(-_@{N zV0=Z*arzVGYk|X2+~osZ?2{Rc{oaIO8H046E>?jjDl1c(&R15wV_?3l84ahZODbGz zF<Zbn=X;np3eEN=obn!DEixv$*(SDmW9}dqQw^UvY<&>j|EkbFTORF>SF5VrXIX8a zaLufWh2T&k*`g$L?N6A(ba`}Kv$D_5aPyI?{3+I&c^rawiSEhBWx)Id>AEcOBq3D` z3Yh75dr&YXaMgheSrWV3)}NC(HMArJl)pFmG|p|(5w)dfZQYD7ZeKKzi}Bu&7N$b2 zVSh;bod5Q84kS%4Z1Tjy;Z<x{E+!_QcG+#r%Vp{~cz@FKBVE(y^ie#GH6_E!H9YWg zPnl54<<GaxDZ|X#(U{l=!^Y37k|eyZUPw~hWgiIXyb;Hj^(t4xkm;F&h|Y%BM=$)J zbP~BFcpSWbh4_Qzy-3lYHG_~CQs$}IEe-pFu-aA%`obzIb7SJtz$U1%QDeo$h5YcZ z$urAEM!zXv)qsFyrMUI=x_4K+06XuvR{6(LNg(@>wy#8<993%Q+&UAIH5Xcv1e?pO zop>re!dEjJ+mhcO4^HP`hGo7!kr3JO7eMNEAuA7(MRnnX%50aw3uHfaX>NX<!yaiU z|J}(!%$T<Idux0t$AFZH^b>^1gVXi?R<wqY5N1-ZVmD~1eyDA-Rc5)<P<K4adfShz zlZxh9){itV<_F4O=W5r?=aIKxm84m`nOs{juTB2c!3F7LeonJow7++^O3MziIPZ|O zFfI4%>V;slNM&wC)gD6?8*S=XQYuTFY9AYLLLY~g2nvrRX^hKwub<3XH+tuP`Pm-I z{YKfE``K8jr*7dD*t~@R!VO*o#emPgWsN3{zMmCmcKRf9<5>uB`teRXaS^2Dp&p$` z#3o&d`SKKL;Mf!DL((P!aW=9D_blBn_JP)i{Oxwqh@+X4>`M0o+NQ=2&V()A;ZdE2 zc}Q6q4m#3x-VfkJTo$??lioEfyu@770*tsfPoV+##^Jl9_}-H-QM&?<ifJk-BjtSP z%yokv%i=t_jjV+IO{R+0I4`f)hK4@ExX}YtsvcVNZINi%s?m-Yx)g_B9t#_%TK%nw z2x)b|OA*^s`?&0FwADwN8H<}r94NyagmJa&)coA=#qXoMl6F}6-+{g#^)A5I+LNox z{66V5*n51nwl&y13CA68%vy_Wh8M+e*IZ0~H=eEFPgeIHjERLv{xH1ZmYG#?VNm3N zKi=GgdV9{cs}6{l;ScJt+>It%d_OjvdY6C=6u8+%FcO=;j!HS%+KI^3w4oWuho4z0 zrq-Rs2t)#wU0d7jVrV_}yr(wekDfb!qq)s$vCEyv!qu}sa63-&nPe{*nho{QK1nNz zd7%jIW!9K^mrgzm+;TLENv2+|QQXKMe!!y}ld9EZIxO$Ih3;>6R~3N`1x*QDRKTCj z3-Koq)7(+~5j{_&PmY(My46b^cJ4S~(_e&0BS~A+R{ID2$7|Gt9;u()tC?mTyhg)n zHpnTau^G{9VJ7$CHUKqwRmV!6u(h@uw0yLL%B=(955^N?EfE8cm*>5A5O$-Z=KQ`J z<;adiDg)raZd^UIGH(_E*7jr_+}iWW`BKMi{uQ@frbSAdDx4ni2f@MGYisu2^{Bu& z70C}8i3r3Cr@9P5aFi1VR#wWny>{-#wOqp~B2pA%Uv^ef2pEL4qM{uubmpvk(L{Mh zktASQ=jz(`&1sVbYL0T*0^)8<oo9B;jV|C@piZUCVKT(J0LRS}g!~%~*eDB=Mt4Pq z{%Y;C_DV`5+!yB`sWrY*$|;1Fm#zY1U16{?`0?7r93AS4Ga&`O9SyBIUhlVKIUXD7 z)p4Vl=Q32;wckAL%CI<nN)=<V$jTGQvWneg{*guyCNGj~a$a~`95K*XTF~w1*fPOR zcevsCi}kvE<KNSgkr?-Cd+gL$ZC1ADM@J0<1BZ624ZkmX?o;#-lth*1YII^L%6@8S z7j0Y-YeZR<^G>2coUXlFZX;n>yi{4Ih(MfXsi<H1IU8IMI$%d^cc_F;O<>0ijv4p& zIaEjf@<tNv^_~aA<jDAVy~+u#7q!SdI1_ArEujMN)Cw5Io)<%>ksE(Lz&9_zscx^$ ztWkaIObye-?XBuzUiXS3Bdn0S+r_9J4(Bs{yuI~g2{}4NrQJye9ZcEyqv~4|Ra8g1 zrl(E8y9vLt+kVG=^UWz@y5TWN2g164<PJqns!#@)KrpUrI2(+J?VtAz%dBJ<pN*fD z)u-Smj2GwD*ATa;1ynep=w~O!#WEE3Z>uyN^$xE%uWEe7!E{eoU`Z42eU5(Ks+t@e z#j|ai=$`Hc(OA}@hp5k&JL&AMy5(e5RAsq(RXXGr_89H{q(7c{FE2lRDz)>@ab`V7 zhA~3graEDQJG@(RAap~r7D*WVVIZ?O6p!AoDz|8^W<z{FS7N}|5E>88+D{o6@}%}s zNJi~e^obv>fOJJV$?8%c!}e=0X~r59WwCS=q}g|waoSGwWGndiv*tzbaepCCfdaSl z;W-w5c8Bo&^Q(bOk^^x@z_Xu8Wj3fwBRCeK$Kozs{?wD9+Qz#k-v`-E;N^{MG3eDh z12$r_@xf)tF(IMR%;(utQ&2)>$_Sx0wqUJ(18LXJJACB@=Gq#{mxw69^OAgfu0Z;~ z#7=<lkj#~YzsmZ8@-jSp8wwy6P~}U|Q5F3AI%tiiKg#wpz7!Iuu@2jy02MbSlmbxZ z?!r)Gq9q>m*$~<%hv@hix0QA(Ag37#Y9?j?9}M*C;6%_cJ=+?Z%LC%!fEz=mgID%3 z@pKtt;u~GT=ZE<yK_&p?yz3%+JB%_SAv!!5fKibhtNyejjDT9BTQcz@;L8TyB0C+u zajn}?9?}N_xg`+w#Wq$-?u3=}BFj{)SEu(%dnABic(nF6vwb=g!hsmM4r&AaEp_p` z`#es01VA{|jW3?{2@E6v*ztIKU%dU4&tOeICC4`)#OKP-vq^gAIw-1H`dknICKK^< zyNRd#qFF$IFDgU5{re7bIC5}+#J}StYmUzww!6jU3TTXaXee&0#W0l@6VC)Vtjufy zSOLlIh32t>*cF!i0iKp#`<(yv;gT*YkC_lczYFa-F&?ct+0pG^ZCdy(b_p%exgBTd zqM$aDBxGfzjTTNbS6qv{xA%xj+WtJVS3qu@BY)JM)e|iQI@U(Cdcp>6hr-=Dy3gyL zUdDWq4cf;NY@nAlM3t54lM<wu*YRZ{bCRwhy62<UQ$(qsQ=&lr2HIF3TiM`HoOIGg z33~Q~!awgf5R@PQ%e<W~DKMZ_YQ>Is!Vff^7VIt!<S`bqIlF;gg1=vr>33<Kq`K>T z2o>08>H43j)3OVIXUrw?>YkTY_?*5JSe!Lq0H8#15*g+5{^98>QS3U#K%jSQ1s)mQ z=zjXH)>Ni4&Rny*(yl>zS1AW5+5QhNps{w}Y79zGR5J!2jcdm+zj|~XbQ;@u)_0N? zGZ3(Rawk>l7_%%Kx!9Y%)@2k2VY9PqsG7$5c1o_hPd7DWpuaMK){NN&wOCxozXCCy z$K(&n!;~>|tWsI-%77P^MSm1in(O6ks|p;G{RXhFRG>8_hShu|cr3Gut6vD6J<8<t zsZ~8l$lNPc1H9fXfKU1RTwYn(fgaRsWP(zqxe5xq^M9oa{&&S4|9{3pzfar+xs5v5 zPr9}8Vin_1;?6t4oyvVC(`*PjxP48=IS^bw9`io9uDR5=qeNaeNG9xXdg*5vrbtz| zxqu4{r+rW)*v(ppQ^5TR;<Xmp`FksfN#es?Ti)G{M<~uPX<g$wwhOD1Z6?o^HlL@6 zje7Uf*aFF{-cDxGlH5TFaj&A7{MxBA+TJ)m!h`eNss_gcg0WPFqWJSEAevMquChkr zn#wa=j(bx@wif2uEsAv&n{pgHPD{fPFmB%ivx~-qGz+FpcxU}BvZ3JZw$!|}-ZS1i zUT<`Dr+J7+KTHL9<8`Z!nos6j8xP?K>5Gwl`Y;|j1l=^B&uFxJqvt?`6n6Ms)D^Q0 z;AycFUO-R|`Az)O^i<Kg2h&`RTZA`yV|rSw>j1xEJJMLZH&r-{wKRB}_dHZ0>$tmO zkm;~|+Qk67T7g4U?e)d$2*B-e7*$(+mzU=&wnjedqY(o{_z8fL+!;uDubC`)^tLm+ zs$8-@-E1^$LfX5%?<~>BN3XWOZgZMAzFO!ap+uf14TO!|kP!mdW!k%QW_91Qj1VDi zGdIA53JjMN#!bOXhb|pX(xN(R13WHZmk=oiecdjOt<5^Down<rmRz=ulIL%4*qvIB zEM)d(Py)C$G8__^R;AjyvQ*=;EPjGg9OG&}N*rKo-o|^n>`xR9EeckNIG@Z&OKp?Z z^o4ZRZZtMExE%iqAPeHRUcuwx%FG@fr)IXbmdg2tPA082|D(P0{%ZP+{<y7GTNSBQ zqzXu_#Rv*f*)w%i3J6iAh$JpVWG}-AiK9phBFa=oQe~tF1d$CP5s*D12`h{s0TRMW zNJ94be)yjA{R_Uo`g6|toRjA~&wcKFz2Emf{w5=19ImBgcA>y2C;Fr>eZ4z*@St0u zy6;rjIOB&M;CC}aIYqKp%q*bXnIrC~2eMxn;lJ4zPqcvI>_z7l0~jQ_eXBac=6%f^ zF{uuB+dAq?FT43t-Wj=8yli^4?CIg`x##&7p@UrKV9ug!A=<|=hpM~9zhL4jVZC{6 zk{B`a1-dFO1PvIL&n~a^pd#A=0yRav>x;0r=S<O}cQMC&!$#+aRK-Do%Pq{Ot?)Gc zj6fGi<LT6&if59RLuqy4ZV2gVUnDFNwJ<msW#a=3jYci+dF6vxWc+}`4qvT)q7qZo ze<jH=^@E0{Zf2*L0wN?&_7riFtot_A(AKy_#(x@q-mFU3fo#H&ak&%!P9=RXWm~c< zXDrcc-5YbEvE*bqk4%bQw6=TC%eLNu#kt`Z$ctrT(W;(!&nf;#A!E!1dyTI|^gE$1 zlIFIiW!pszS!O__t=p^-HVFC{X2xaB*lV{-7=df)1`!X&dh1PE$ECo<RU~ijvuaR| zFRlT$q*4s6*yLe`+iM$ZS*yBNy_@n6=WC&&VrX6o>m)Pz%Gi^=+#ZrojMDpwuLkmk zeKS*9fflWg6!&dX)Ev9OCAhNvb|HGFE|Mi5Qp>r|JCD6yaO|IpGeL1Ml^{ve5av!# zJaKr{5%GRS=mb-?1#n`h`A=U~Wi`!0XX?-BhU-h0Az0B{r;=<Vv<jC;df?~8=3xn_ z(S=HFBB`EE^OV!3#dAlGx%{j=pb~@zh7h9PcSBU<6dv}ECO4IsZCdEHzXj|QP1}Vd zDV(cQx*B;^c)3r}!5T6$W{3}OHi0lR?PJY~o194?Kl414hf)Y;`ezkgkhS=`IA{Vu z5(f#sz%Aw(5q%tke+HKa-$K9aJg5A^OR~5By$6VQLV}lV)XaGuYbg)N@Pn06uwgpg zyy<ni;JXZrDb>QcF8(>_p0Iy{alE4vKY8szqDNp;au>HhGOvrr?Oj<si#i9mNK!dh zJ=bwBKCGzlbXWO}+#_*oCv?j<{gx*wPGGbJI6Zy%cW_)g1#l}At;N#v4%3^08(!F{ zM$|&(=)MzXZagLW`i7UTw?|X{MLmAn%!9GNWiVl1##05aFJP(+C@pJBqh<@SzOpqE zI>^54Jt=OX(@WKJ)ThqV?w!eDA)b^_!#IuGamw~tVW^qyFYKG}<~Q+zoT3+s&+$xL zJt<x!N8YKLH#gs{exdk`k?iEk!kvAxL=&LQMvJblA7#%he^9$i+1EKaLpn3?%$<<P zkvFte2Ze?T>FSVc!l2v`OA@lf-284cBPJI#racNt9KK9w%lED=R?k*QV9Z8M=N_<1 ztXW}u6f1MxvXDdlCNpHI6ms1f$9SS0J~C2aeLry?43S^$W6qLM5-qJ1FT1d_ibQ{? z%bcskp5iN;*Bo8ol=PI|f))i5*&fEK6?K2j9ami8C0%t<lGY?^J0T~K57mhj{{`F- z4-Q>))a0qdB<;>lIU;CPfxCs~nP}J0BiHbT{gHa4=7fd}%7r^9OTX}d{RUYfv`%fd zc~MaB#-OYYSM^_cx_gF3UNn`75p20@{o-(s&bE7hKqMpC$Y-atBz-^3J?{5ME-x-l zj(SQeSx=uXO}xPYwN1G1I(ZQ-FWYKlg=?&<Lzgc)saj^Ks?%ca*BDEpq$S&n7!%i_ zb?Ff=du+gJiTe*g>&?_`)ZhuL*^ECg?o2_DqSy8&U0PgPYnBM>1lOAjSv*j@4LiG1 z&R_^$Y7#>N?7kJe6zTj(d-#Q5oaDbiF>jG6g~&G!Y@_)cEMk4wR~)vQKcpTpg(ZfM z>S?;Xwr*YnBBx5`HO7MEM!|^>{8W^=pf3SRpeX4f&8O(va%=X<blZu<6?;f%0&8aX z;MHlQy^r*r>o<^^@}nxtk~AbIS+DqybCqbxGk~;4V)oBSVSOpsN!1oQFqdQ|KiqMS zln`@;Ejl&O+9J|D+(+eFL+F_kWsRjId#9Fk;@r^_)=vB<0V_+wX8Q~MwdNs;LN9ff z*<uM*KIe~_fWWfui?^z33{*F)2Ek~?M_1$G#yXRRjk1|NdrV4h#k2Xi)qAI}=VrzC z@Joup<@iA>D_NenS2x%|d8UXq(g!zP{_i}f+<R=J9b1bML<UyBavujuZqtq(kZt#N z_U`V~pnVc&W42O!I-o70;7GVo9zgqOb8TInVdBnR*|i<__Lxh#BL~2Clcr<pN<Y<f znVHwhL*U0owB0G&o-BHSb+d|8fUI&c<7#uk=$0F!&y;EA!(PR#KB!XB)<>6jF9Hs) zu6^c>rBX{xGn{_|r5TVQ49O+J)dVlNwM{Uhl?qBz%xZWbUp%3df7SwPl_v|zRS0zW z$D@5opo7#fcl|t9s9XjyG)M@O4o?7tQTt=ryIxE*iVp}1X3mr>yYzPpf(%(#M)F2B ziWo2tMvEk5Ohh;1DF&k?{8y=U-MA*4$}JjcO<4-u)mNb61@m1q0r%yucCuB4zAm$I znJ#oSo3^_D1>_4-B!0FiRkiB7unJJFs<ZSsFQ2NR&3i>+;g-A2$=EN4D19T}>7{sE zd&^AGT1=(OaFJz67oGC9U!<-zqAi9F=w4OLl5GBU&)_qMi^Ha-Cioqdkac=B+Xt>> z^`*>xU~?&F&7fv;trl}$*$HEx1y^V%stC%3qn-zGpnuFsah}Q$X--Qq<(IBLxQQ*= zimbtMhVdx}i|_X8poc#tNB-D6AA`ws!kk9_43YQ+q9i4gPjQa`T_K>eCf7D1rZHJP z;_{(JePSN7g1(X6C}{=~j_f7>bLY`R*>v7r0|&(F{9KYfr*3zJhgDEd*v+DE>L9V4 z<mJ$i<)uUN4ad?P)MvIKIrHdF{w;X(2R-NHY0+hS_{^6pS@?W9uX-=_<@^{a;odjY z)bo(s%qNl>PR04!sJV(KSZAzN)Qu%!JxS{{?b?G0U&op;V$?<D8W^urHGV>r3wd?L zc4-!jFO6g6u@12Q&8R1aKcLwgNXJ>D2lChp;QR+2AoYo%gMYs_H=g)J4E4R)b6=X% z6l3Mub2jCoO+tx7Dnp;42h#Sv$$5yp^Q$G&ArUe|oe|8adYIGUHqhSJIFk}q9mU=0 z(8EoIF^b_~7oMTv`TCh+cEP}|dvBMHX%!wXw@|l?`4nFAO<HN<+|*}EM(33^LZ#wS zu}+0gd|eQmHay`bf5dckE-`D0yazj(O3r$^2xthdxnHb-+Imxwv_~_Bj^1@4$x~C= zhPFy}FRox*yqRBA{9!G9KO3)Te&hFLY)^%yHISeRzR%gd%gwO(uwy~4E(-|fMu~&D z(e04hb_0chkzJU0=xR${+plXT*PFsnv0X)Px)`@37Q08H9S%7;RZ}EJS{lV#`g?v* ztu`}pSDJQrg8ugmH^JobZYNMn<43n+Q_X62LmZwd5fF!?+HA|C*tYR;N`}sLR6&pP zg5PJ`h!=js{+%k*fdY?N4%;`v2I}aT?1VK1nxqh6-oRBqE(KDNlJ&GQ)M*=D=EXeW z@a)1xNcY(!539jU>)4ZbxBC2+X%qw`m$I}<`p{I!A6V(<HZM}NH__p?!~H~o@b!sN zT!Xy2&!5FwBEN$1v!FVH-g+BXLWI>b*U*G{_*fBq!sH23oZfmHU$F`_a{LtvOh?-{ zM$K5bZ4A;eKTR%~q1PD3-_GsUI$YOd|1Mc84gd{p$L@4g)KOZaqJ&wiuTIsv%IrQw zeCkQpfX|**o3KThRZLoF!vcQ0WPBRmbF8yo02T5vlJ8VI&4<;YzwRghMBWhI?T9{- zR(<x?6{&Un`lAg=UuFqw_`JFing?ql-0pwQTDN7j%?33|Ck*xTD8^ArUrfT;Naeea z@$+2F+houP4sVF}Gcqg;n5M|2_29CGtlz7udi(QXvJJ8}61ckc>v}!!`)_^noFo2N zSixCTDBe7VhKG%esY~dpU?o#@EqU&DJ^gEcCcXVX7I4PZeL>3~1n8pra1a6jVf<?C zO>k@V&JC)qO>{g8V~aTr2=NvQ*Moho>X8BFw;^J}ryYTT516>o>1o|qKLcg@evLHN z-{(PhPGNeE2@^U}Zzkh@Ss2CZu7C2p#@H9$Hk82&Y67I<A!`S^E4z|Ajj&0Z0|e%h zH;*Z9Vlb+@HX$BPw2d<R(W9Bmbww7{82IQ_148(x&-jS31dYLbbkN4%t#7t!3hY-a zQO$axCGNjfqIv|z&|s@uJ%3S{Y>wjd?U}}RJhlMPY~k{$QnsOUI6XF0wu-1l%ewNC zCE_$JjNit(G=LbeyAd*-2Q%fX!%y>HY82>4QC57yktb{~U{w=O(^LarggC(NVpExe zC)~WZxY++l&k<;ldFUDN;iTSJ1)@%Ex=@PD>GMu(9W3rM_!MXLOdfIQWcfb|7w0@H zhUG0<?{mE!S*qa6>#g8i2yTr-w{1AVJhH<SSRwD928o=9ZM{@MRIPky@WYAynk~nw z?_ThFcR;fiIUA_e8v?R*K7jaRVxfy)B)sIfHv==wM^LN9Bcy}c^glPk?%v$CKBxn0 z?;fiHW1O?q2=AATX0)o0>vb&7oy4cx0d;-x&Gf*X@rJ~84P&Lawwls?S^3zwp1$!Z zFSx|jAwe!Q9{>i}XbT^y%n6q9api}R4RX7ZBwIBHSloK1Ix&(SJp&=soIl$WZ64f* z2ypx+lZ>8z;3cc9)IB+YJjKp8-j2ImNs9GRIz_J?Z1?dq%7@tO$mwivvNv6-K&WZT z)5DtkUs?THi6=G6$q&0c5esO`mF`StuHgGjdhh6?)`p{b<Dz0*KO^^<$=l1<vp4-t zp>|e;*#Tp6o=x0d!Sno>mA^YkX!)83yd~oH(i5MxAe8`JPDVVYJ9kA=fp;qZy;I{~ z0Fg^?srXN_<wYXa_3`WZ3|eEmQzWvZvR7n%Tv8cYzj99*=oLFD^DH@11DHq-uZh2q zc88X|!ZL+_-kgZ)o!{#mHdhhsSC-?blvx{c6iHo<p%B9$%a?ZpsMr11Z9c4S1>;2` z?9~D|>DB%K!jd0ZmtOt`eF^`$MIyWwP-moihpZJJ1gRgOco9trkM6JUC-BLK4zn-q zm6U>0$6eTf&5V~5)+0sVAMn29>+7LBV^Q4fnLo3#xDqdud0h+vDJ+z$eaj?eLAII} zf)<<e-u_k5?HMnRtYTala*mm~3pmxinl|zG4{iSwO+#;>FRmO^00FZjRPw$<jiaD8 zO7LCm2X=ygOq(}iD3>o2HLp0<m~`@M_GwYSbDqDxX43g$>5ZU9lmS<RC?K-O`pxrP zz&>${*gkKsjCQv74+X|T{w4$j@dMauM26t~bs;ke9NU?>jlaAJgAgd2TOFcO(C+PP zRG0hx<bPx<UZdnZH$?Axs!yG;=o^ekb$g+|qO#Ip<w~Pu#*V-hWE^sX7Ujy*DnpMm zzdYL7hp!J>9WW<47RF(vvPAYvXxjbdY&u!V;xgwHTW=%=IjLnz%f$&`oA?Ogi~ktJ z5|G9_TgA6UKHc!&MSS@5XJFjEYv~A{<TvS`1S7tmf6cm3t*>R#ab{qN$stNB`Y5lw zrQVRHre%9b;PlY0!TrUvRedTXw>DlSEG!F^5A7|4Ll1TCqJ2Wmj(}gIMn>9IpKy@H z6l)LWCTIGf7K-`Y2Rjwa<~>K&Mh^)}O+!(u<pP_kU1=<?-aa1dz2GlJDHtzvuUiX; z_15?EjWB1V9U&=s8n#*OPR5QMwp56cqrZ35@Ali8T<a{VBFn78<xx7AZnav}DcAUO zw0v1vh^UBZ(?X9*++5XIvF_4z_kKU{xM)X?%ZY+#LJAAoSFNumw^7wPQD+AVe0|Jb zZ#3l$94E#v{f9jleyTJ!VgsP^C-E1dN3Kpt&ximZ5kJ~@xPL~$7&CXD`kNOzV~Xw+ zfU2&oy=IwVWBNOhL1%3DD8L5=17fv1UdkI6+LVk5!+?jzPu6>W(*f#CGXOZiWBTXt zWes8ilO(5JMrOv2`7nuqvWrW*zAgPJ@WOCo2mkKa>cm`ZM@mUfLLq2@ai!XrB<k0% zHEm{cH<enWmIj`8Dyx9zp1(|6por~rjmpKPCcF7V>PFpOzvCXg)d>#7G!-#Yi@du{ zZn+EJ=a^EL;bwDS`Wal5Wb<M;-OccKyPs)Fg%A)ZqA0Eh2pk`F$ZPgp+|Q>$wbr*_ zqVG%QUazq=ur}OvbL{4w525i@R0|rU1>O2+*U|};FrS*2tQFwtUKiZ@=?4tr=PtSQ zjB<E%Pa1b@<f6TdHTX`!1F6Tcbjb&8u~`@}l{yY-Q9b<7_=I76*?D6R=}PZ&LH~M+ z%5uej#zsI=uKvsMt(woqYOkAfa&xx-T!+|A{^FiSNG!0x1l@=%aKF8YW;!Yje4Z;T z?vl#~aAl6kyD%8WtcRCBTEXH|xjr=NycRf5lE(45JoWrTOu8=@;1jyBGmk~Y3Z(k7 z;P-?LxVjNNaTv;p>&q7rqC;{cPr~?WIRoN;`vaz$X3q^UZ_yL~WDr$Z=V3eouX&VY z{qctkN{w&tONP!R^)^K1)%5hYD>1I|#ijMSa#nisWEVEFbDm+U4l`kVpW;91r>IWN z!mR>d&|}w!N7)qrD(}VZiBohR!7rWLdB7ZVJY#KR%+6O?%l0WE9k3I&Zrez-hWP}1 zTiEdJ$y9kkf;43Jz47UHhp*8gtd^MBXS;>!fM+XrV>)mw8lZp6@NS#xHHQK3{l(rG z`FHsJCWWG4DT`dLpnSgIkSme$&B?UHt_<R-1P8|#Pq~8*)3&r-aM5Ku-pi*yQmTVI zM)o0d3M>eM?(&%O>ez?@K+FS~tYjyi47g<i_sHfQ*MPC_jRh~lYU=_gGIJZNmky($ zrG`H7x<1ocm?73cMVXpvr-1ZjEqQSNr-0+(Yb#CfKuwWa<{Kw{Xs=P1*l)%?CQBi2 z@OYx&mrOGx_Dth39e*Nt%#A=B32X*TG?(&R^L`>&Av30@6`&g>Nlh!;f^TShH@#Kq zMh51MbBb7vCYfgtqekKdC^V^3R_!NghD*mEbyVfgOf{@J0mEDZUL2b&-u#;=3cSah zNOjFObaX>O#pR^Pq?}F=vwvc%icnPO3}tB`f^>r;sDm~sIF>TG@=5d2fT?@Z;R58) ztAgyOMAu>s#P%5v^JeZtlPFOU+{q~QTtUprRmk`6t-FtPX51cZ22EN|#csT$eIz)b zLay;9>J6PZB{q)j5CpxsMV!1Z0JGSJ6G4+w7krQF+!<BzT6{tpq9-@ZLjkrGXN9JJ zbS-LOT~X`hjNO}CBffAw>3rY+luP%q7)J_W(uZFCD`dbxZ+Ow|1JvpP#a<P6b`>M5 zTr~#(!l<YZ{&=+=9s4`2^y(HHJKCoho<;la_}-7VX7x6ir3Q3}yghrGpx{}?8n3D$ zZUPCgt}HJxCCO8plbE*TGMTfs>%C^WGuIt(;>*?nP`bE;UpQf{>rHEn1NyXrM~>_; z*NzKo2Tpbh=<2FIQ0t6ehTGmeH`2OGYtQwo=ub!XVOHM$*YbJOy9Yspy&P!sZTWl0 zzrXrZfEI^Gl-E(7W?Q!W^;J#!x&&W$0npO(^&os*f-QgTT8_NAWy|-ToAUy`?uf5D z;%i*^8X7lybic-euS@WC7koVk|BqPEtpdhis#JQ=_2<AS$L*UL#?~z;Ex3RCcYkcY Qw6MkD50?x0b2lFU4-Gw&{r~^~ literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-locked-rate-limited-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-locked-rate-limited-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..7409f3018a2c9dcb67d67879ea35e716b8f6aeed GIT binary patch literal 77720 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-locked-rate-limited.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-locked-rate-limited.png new file mode 100644 index 0000000000000000000000000000000000000000..7409f3018a2c9dcb67d67879ea35e716b8f6aeed GIT binary patch literal 77720 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-offline-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-offline-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2bce00157ed1375ed3fadc7c167804580bdfe8 GIT binary patch literal 76687 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%0A-KgcAqu@Wkvng2uqmti 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 UN~`aF0NzMBU2wOf+Fnoi3*0U`NdN!< literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-01-offline.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-01-offline.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2bce00157ed1375ed3fadc7c167804580bdfe8 GIT binary patch literal 76687 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%0A-KgcAqu@Wkvng2uqmti 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 UN~`aF0NzMBU2wOf+Fnoi3*0U`NdN!< literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-02-happy-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-02-happy-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..1fee575e53cdaceb060dbd232545051abc1201c0 GIT binary patch literal 67500 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-02-happy.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-02-happy.png new file mode 100644 index 0000000000000000000000000000000000000000..1fee575e53cdaceb060dbd232545051abc1201c0 GIT binary patch literal 67500 zcmeFZbx@qo_a;h&5FkK;1_%%moB+XtyE}tx5@3MA-3AF7oCF9mxH}9m5IhM!$Y6s@ za0Yjm9X{XRw`yy5@2%gxb@y&<)xQ69)%*5)y8CqZ>F#r$r^D4%<?wJQa4;}1@D${w zH8C(A5n^CGDSG-4{U#aV&4hvR9791`Ld!F4dk*s>@x=6#zY2W2s==>+&lyKb;S$?@ zF=0}V&<Y^6W@b~3B(}E3<uza;_F&!JRSgiAf4y6MFzaw;tIA-LGAZksDdxXdCDb(4 z-#^%Vl+JCb%*D-(i7p7ECmMR6U=Y6Mdw@>l11BG&lh@dviO@*^-B%TKg7N+TtB>K~ zXlWOTDa<|bn%^}?Mn<?sMz}{tQEjN>*Tiq$zWpsN8>O<*-7)#6zhmT26!p6=RU!$` zW$FiBT733>h_Uj5>cuiq{OX~Wmvae5=kJj}WAHy?UGOygXi2B`Q*{<%IA0LD0dZL5 z<S81^a84(M>lZGa;bp~#c{;Lpyu6%zEGda`nvpSpV)&AZfq|g56H_W(Vcvn|jvd>p zowBItNXry6AEuNDdx(VXLyWj!_aB^2&VsVlEetze<?s66^{Y53^9UPYD)bhID=@#S zRA+apt*Nbt@vJodI#q8Z9{*Pbgaqw;NhqWW%X#eVEY`L^+G#$V4h<MrlGc(86b>m+ zQH~Os+s3Og(HtEK`tunok{}D3i3%&FLO#iFdj-YDcul6zYyJBZlsqK`Siq&rNC^sg zkwuqHLQGAP`8`#2=hLpeJE=@_;EF;q?V^*dkE2s<0Zu$dKAv{QpIkz%nW)n8<HWCM zRb;6dNjmG93#&{TKmb6(tUR3Ps8}`m0&IRuN=jCjY^x4>x)2$Lr|_LGTtt^_i6#mD zR@z;REOq3Upi!K}LzWH(42*QEBnpb`9%X#@AF8K14-;&^afS~=owIws6Cs9T+<(MO zQo|p&4#+F3T18@F48^4S=>c<o1@~*Q?DNX7#^_|K7j59_19MEj^lJh4?Lu`b66~I! zTPYq{dmQz*N>5^nR4Sk0fg-kne%YXOX{=6;x;$DlQ>Wq%F+15&8ur}4hcm#DkrPDJ zeUsR^0Z(zFdwcqM__-zg3pB$FHs19sTb*Erbdf5`B}7H_zh32i0N?p-5Wp2?yqP@- z{Ig``wv|G3U!<|Qt0c%EG+f!qsTw0cuBnu&T$JU7OcxyvCMijLa=|S1tg+oNR<kmf zriog2T}qLj@60pwY!Jssp~yK8A|4#frrAZ>Y+EzEHgKvKjNtlYYozHd`vpgJ3=|I& zne2&j8hTe_wR&hLt9Ha*hn_^Q^nCxIN9vzf%iM{df2>9DCKs2HU}HYdZ|+xY5cvo$ z;EHkJ-kugLe-6RGs2<h_ra5oZSYo+;Vm_HvjEYu+dn`DDsx|Bge!A|S{HiDc*m4VA zhQ3A5SMx}1zHU9kl$4aUML%41t`ta$o*_#`TtuWA;bDjcL+5Eg_M$0)7C_668?If6 zeLt`aa}HIt-T6o#CScoYGce@iTm<ec^5*&fGv3vEdwP@=w6)gQh9mRKs;bn>;42BW zVAp4AYKV_BL70jvl|<vk8qfhNn;9AO{80bIFH>JD4rCFEs+O!WYH&UZMp9b&{K|S% zNn$WpVkc|(`@T?ddU|aq8%$PQ?g#MaN=g>LnRyXs2ER}Dr$=fAvi6^1Wc{hA=i-*K z+~?|?)pE*HLR@vaPEwl~de@QPk3W*Sq>i{yi)WNIJTzv{Kl*sup{9WM+R_@)3R7@3 zX9k#a$?W!ez_4f9ZR8REOu?+2680W-V<v!k30%UjB9EvVhhX1exMtwqmKB+kZp>S# zOG3B)avin0Pq8|Z&;9dbJj=bkQ@EFnfkAg~0x&S*9;2Ipfgw(KUzPvMkIy`;)paZ8 z1l&#)YZy)hYwZ|_p&Q9R=dNP&3kptrYvM~I<1sKSbb&x%juAUk7^<eamiRC45A>7v zU6P1_i^#==JNrW(`YFgC4o)e4=(FF^%iVOgy*FDdwO8+rlTZ3Nela*WwDR1GN@e!v z&9A=pa!_J~q{gL9yQ-o!&x?I7&%vnJkT<92#dj@OYJrk}Y|F~wK0j=b&DkL#4HYRU z)}6C=``MK=Z1M0!xNfCEgQQpNh_f8-G>I^-yx%ch@0oRVVxrSP38^+K#HRs5YEJj5 zL3s2`pRi^9D1g|5f0RO-cn`JBG@7<!;fMoqcj1K9AgepRf9FP+h7))uQV{+CIWU$Q z&jrp840K9waaimDZEaTo8hx$2qO@;6@Fc1vo$=JXM<7hkw`Jgo5bQ6Nn${PdJ}EE| zNTp8^aZUTlnt+;d&bLS&16HCxRt8+uAFS<<8UbGowv<j(TwP&JPEBc-Z;rzHC@<ft zIy%a`DnC<6hCp;H@*HBFb}k1p9PmDlev<G*+bME#@<P>2pZ&j|)E&Qu`7{W+fnYW> z(|UU%K{pv9Y8s)mjEs!@x@00Q6}Kk{fuq*k@QU<>$#Vpaq*Jos%~mv|ZlptwsH^|> zQYrQ6Q?P(%&(qY&{k<PVa%U6e041h$xTo!*@3pXqloNnfkj2oD?1)@XPntLrA3vID zb5c4ySS2`24o8NWUGx)*z$R1pgiP%GEYvtRl)!4Cpm^>2j!LM>e%byO!M$EN?9XiL zd$cN-z!36%X9*UpX8D8xj@;Xm$2uoDf^QK#Hn0HVY}LuKUkFGa70=IYw_WtNkGv7$ zGHTA)@6~-^>pd;E8cG1ykXBYA^SfdM?-V>8h}DHQPgM)7+GzE@Fz?(u-Fc>V=?1D4 zbYkD_3#ptuHf3eyv-?QD5+cm(a(kFHch^}YBAS=ET#LP`tb)u{*HXSLG{v0#$*Swq zY=^tmX_{1D!#pQ~lap)4;Kz6K>v#JSmT_8o(!12Nafk@ddSUw}jm-oiSs?7DCPHmB zay<rHonf}=&hbxo=A8e&`t`>fZ#SKrs#=`^iqxa-?ry|2P&6O!6hR=1cjx}wR%8$1 zfc^bj%6bzS8R=~)H@6lI0~1rS80GWldfsLL^1T_J^`^`<j@uBw-T5<;2*dPLZOSnK zn4al9%u2_U>GK}G=jg~tAWLogJc^B&yg?YX<t0{R!63Oh#p`chK&k-i=C_|>98@*} zOD>TufYms4nSS5S6JGpY=irgT&VH!S_RVj?o)O1OA~73vWC|KkHs4!J{zR0aaUv7< znqAcF`j||t9B=gU;QA5ZN!00#%LmzsK4$6`&y+XB)No~@R?qB|l%6)BTm}SAUL2!r zn{Urg%hZ(cw3Y;MHB2Q#e0qSS<e#Q?*%Au|Lh2Wshe6mrXH;4~Y54Dh!kQ7>L<#h< zG-AFrh}W=wIwsa{A`2AfE8*Vx`<pOIDxtPsZU72dX1(mOpg}C{bFwYF<0@Gk!oC=4 zW^T@7H-dF{-I|=*udEW$JSg{Kr=Dj0_F(jSoQ(oo2G}<!^+_LD1}AChit#QqT<2>Z zyS`eODI)E(^n3BV_O1<J+Zb5i&A2=d5wHWtR_si^b@guXJ^PfM*LWn(KFF_S;$2^9 zwy=AuieFN|17}^hdHKEYY_^v5@E26?7Qr`AcE>+dY~y2i`?b>aFm&g8L<l+yco7tM z{;iSs9lT*}vLE;k?6#{ISmBY(cV+<sWzY4VX70SuwFidv@J~;w4}ZNoTDdr<y2|Z1 z8qL9drpfzsq&j`Sl@&Qs_D-9Uu(Q<|D>p=QYaQvY{+0q#;2z(0du}nEpfEmOf_d1R zXRQ^v#JxA;U!>hsfu8&%S?^LWJC!4bZM{48vnj{#RPQYA^12KC4tO)U+1TuQ&sd9h zkascx>X*YW_Pa@xBuzvwt`JBduyb^|MEzyXH+D9*bP#rgDMS3!B-7^gi*LgmL6QT? zDt$gb%woUFbaz0pv3xoY-tw{E7BArX_y}bxu6EXh1j{}S3#O-or@z`Mb_+J}>OhQ? za&cA1K5)VgKd$SNm34RL1GTB%U9DhKoul?}z~tN88{$y$8W%NX+gGI-(=$_6^V*OM z-&5hLG)Sb60GYQ=MnYOz854$HGUT9M)9{0WLN5XMW@GP=eNQ6O^xFPd>-*uVmSc6l zw-*@v*`RTWC-YXBh)Cbt`w5%jWy^6`jVa5DjAY>TKGelF^>+SZK{*E-lx#DWb(&+* z2F0xQS%99+@3gNq_-%<o9NnB!uaJcW1rY<4I(Rgf<yf(4*{G}7jDo_#K69?@6#-9S zp@k^wO=0UON<#zeaPmw9c3#BStTKU%i$bd%#yn)qqbZHQg$^x3wVHNm4>$l}zQ^yl z44?(>R1vqXQIPO?8ObjSMib;06-QS=>FMdjmD#_b$4PNS>q}FByWOZf$AS};T~S2? z7@zH7Sjdnn1!WTSu>Sq6+Wap$Yt%A%$)jH*rjl2uj_>&a@1#o_(_4!!gO3mVjQ-jc zfSXM@uu2x8-D(+;l>D<YOd(54OQamezY7*NCSy)`y=rvNPInC2kRDZ8!g{wC6PE~v zV!_vg=icl>W#bjvHLB?bhV?tdhx7~#r)%XigM)*-Hd@@nP8qUTKtVb&pS8X1ZM_x) z?TnQUhwla3lQx!?HXx9qPogCvQ%+Xa%k!shg_ee0>^G*QJ|dD6NhQ`xF{Mj(tjDe3 zi^Ig++#t18_|gq+XNT)*Ob>dCIL*?{&QHt9sgNN}1Oyh;)zwK(Ip6-tcUk9vqAJ@` zPf^{=Ryl@As;e!+WZ<TR0z^iW<Koh)4jW|DRo$^?DW7$!-`D5tkl<;v*HNAN$1&;s z^WM?FanF@-an;laKzB%9M&476#iL$;*tB1XZl$6f+<Sg>Z|Z1cV*`hzxkXsS)omn) zEsXcIpnyPiG$SuBFQ1N+dakL2oR@@tV2jsLOk@opktNa14#U;F!DmlG*4rCdBFe|d zcbsuN7|4|}EQBl5{~U_i4zX#w$={%mwUfndO{oP9i1{HNUDVha@)i(cn!*=f3=<Wy zeH?Xtd5fCBllUERQ&|(=PN3BKIabW~bg9skUvu`w-H(FkP1Tp&!KS?L{WN1PPp40W zHo_Rj@9MtZu`}<z)o@mXJJ{5l`~(B8KML@#BgDv2tNJlF+<bg~e^wf7y$`O7m;8jU z2+{?emxMWH)ag<`_<cw;*%kFvzT2LxxJW+3DrQTgKPtS1+Fwa6Y)9DVUc$Qk-v@gv z8Z>=c*SDyrWf9Uyj1)P)h?05tCx)8yJssWkuf<XHzT$e+@ATj*A@gzX^&^u*)C;Mr z1JtEk31AhK(zc|3z}V~uAb}XvTlH`ejn+CDlR`Gyhc@@$eG^IRu+wX4nm$?%fh8U! zIH6Zr$tkfQNkD!#16<EG5Y8gZ{lbA`w34A=Pbf!Ga`AML`Nh9|0pF~5D=u40md<5l zs3JtcmD=dFz1cd$S60}9HYyPJhL)tc*8h(fpKLAY^IUZ}O#OY5z4=6~U|ro}dX812 zhOyE(p<HK!;n~UnC38ljuUM1a?p%Gk9`Fs41p*j|I!wz_c5^-FV-9KIq`44X9OW+X zA1pNFaZpSweA}%$bc`(JA2T^Q2qtJtKAl3Z^Q&+9G{(LBk39u3j^v7d@}3;2bsniF zL%98i7q<8!X!5d7w>A@bOLUiGUH6cC#S7f2=WZti#A`r5?o3_9jSq^QL0!=l`zh;# zhSD_24D&Rcwjb|WGgZ<TAt&{K*M_x@gF-=9HU9V%T!Hi$@Nb5<H-^{bvauH%lTI=! zsj1FI?`RX)CLCrz6V-~##$MC-gZnpLu=<^cu+32N+e0TiZjRf}g0M~~FXyeYKU!fm zxlR#iU9GTcs8@7{9JQi`TFX6EabW(pCj|5Y2WgFsOE)KHp;Je#%P!-Uy6ab+xIF$o zT3W8rf+~~8tGJAl^!Ql#R2P4xI<ciXapry8?JpOuXf(~}{d;GpOrxo|HDCQ<3h{69 zoNB$fJ22&6tx@xCL)J(YnrvtKwbn-n+EKbPCj3a{J8R1HYzY?dSrkkUi2_%)tzC;% zm{k6-e!S}TsfO&fgWz-)N$El6celkq+O1TkO+0?}6yDEc(Y4gWbYlPNc(Ks8#dVyF zM!Ql+0nrzm(Ol)UC3^6-_UjtkZRhZBRYa+u(Gda6E1agm>FPH}+ntcb5|cz=yBuPK z@VT?!v{$5`K5W|th4=OPk@`*v@Z?qDyL7?2%jG>go)_m_O>>)lh;DUXRzQzdX?sYh zMZJ`UH<2P;tn<`d%iR?91yb5$zPJHo;ldL4)JrZUv_vA1OKMy2<&isL+xyd5jQjE1 zRh1QmlqJQ<Yg7iv(i{J@8X3tt>-Re8(0+8SW%fjuWd1N&jI7dP4}^6x=yZ6dYAQGX z1vPT=m=sc^ZI5VVi3sBgIi#NIOKDB7l&of7J$la;of1BjA_B=8y$r>3aRt5NDWZu~ z;g{Baymx3Kc6aVO!&e@BO~JiO<OF=9wOb8?k)LIQ*2OzBPSd?3nl`x3XoPKNvaf#o z&OrDy9HthkoFWaHXk~J4gXWtY*Pd!;i~(C+)~Tr!J7b3=c9+8ev$ICbjKgAB1l!%8 zN5kVSnSLECzZ&S`BJyh5Gn7m@>N(?tczWz(IN8M(VBvuwY&;n?)^{V#`tg~%Y`OBZ z#Gz9zZ8sLtmmzMo)L5<D;Ju0gHbZlQNGa&mkiQ&q&D{8))$oJQanIuQ??+e!k(8vE z7L4WfSoo!Yrh+)K#TVbC<|)g^SGOQjxJBDMR#}^AX)NEQ?#{kU3o9kvc;>#3a2z48 zbpU`2C@>#RUueh_x(~1jOHzwCEneqSrXJPwuPp9P=V_!j!blj!iB*7X=ie--yuJE> zcu!8YH1eG>`R?KiZ~JtMRgLD!hg`%L?61p<2&L{`ox6MJyiB+i)tqfU39u~44qC{0 zGlli`$zfNk@m1`m7uyZH&J#0`&KYVfn?7-TqecTzkU^$to}Hsrc*<7f79}R%8*VCI zNMpfZ@WRf3uf&x9>JJ`^bh@aIcHFj177L$%K(T4?>RL%-Po$0@Y!zzF!mkM_E02bq zW5{P8EtFqP@xa=D^pgsX6xq82{?z#nr(=njRB@fR#Y4xk7*=#6yQZ!NQX)+>RIHGh zpDfus<)jOg{E0+mF__muOG|n5Mq?Ef8{wUPu8FBHSrmP1&b5KRFF#<m!Ylg2ml+O- zjcs4X@j}X@p=y}iooX`NCZIQ4^)l6O$gL+vWSP>b#dJCga7f^#A~FNywt@Ka3DlFv zt#gJr-%}o2kY-E$U5^*DANfh^zu(l^cX8b1U%%fktzE?1R(5Um=cOO<ozIQzz?peU zxadm@4i-fy7W3*e8s3;`{V^brs-Y-Kf;+PBrRz{WP$+eStwb+P#6x4twVvJKsm0*U zRf$w<Qc~D7fH+C}NEqC~08cv0iO#O#8jTezUrY(-i}i8=Y7)^pc=&is7KO!Xk*R7Z zL|GPml6o@Qd#r1!x@hO6)OPo+jZyoJTogt3okB|T_=f=n%C1$`iQwj}Bz5YXOIDc9 z=#O?9(^_-P%#7<PGGXpv;Y={kkIkgoxx*s6m!YD*H8n8((;ZhqFb@3DT~bXFv^(~d zSml&UiUE8Ld=g$?G_^5;oGEJ}NI66?xqq6Tad0!aIBM*Jb4D=n)6v1p%imocZ%W^- z7)Q;(>_>9+gTT$PuYV_Qc}z*q86fAkD}IUxq!xi$y!P()=v21ITfe3?C8v`Ws!+^j zWq|x^m)6~E$LNijRM?YwdyS@`yDKSuW#n4w>_}((29F2Xe-C%k5F09wJK2RmOSK`} z2kW<A0?iSoMHHx6qcJ7viovOgE`T(kRK{tHL8VWaPZe3Y+ODzpl%9k)2U%&?3yI%w zyxkjQy3Do~oIKkFF68El@K&s@vW0xQp(>`2F};$tb1$7J)^u3*);Z45avTx-5U*$M zdP)x@j_pvJ^Gzns%*y!HEZpBLf)rbad#&D0zxur?J{DJRtveRycd_^8IqA2XZ}8Pu zTyUhom9AXphEf<YjTa3V)RDH|TB<I1K;?@Wy_{KCq<VCW;?{}eV%cZXc6DzBtr7~- z<^e?o^#;@1<khKv1O`dX&XM>&8R6!-<ySs1_Nmb&a907`)%!FxG!CZbP7=Hl@z&g$ zxvlzq5a;ov8pS+nS^Y$mh2lcguSDO#^DO<rSa5fN$M&?4`?d5bIX;bmEDY!JrR&#x zPdNf=0q<tZ*a}-!9iO+4u$s%KhD&O5e{jq{TwPr)KDE6lle7AE$etk^!f!r>XuBR{ zu<CV~uKJP47K%qTn*&?YQz!+lSNNK$-bEEiNwrU|X_V@yfJDqIH-}nP>N6rr2xP!* zmIz-K-5gX<Sj_&}-BEq!<m(?})qKEh#-=ms=Z98HjLVjT$%;hBoUO^65Z?34wx?ML zSxTuKqgI#t68%uVY5&{X=#xpvac?lY$Ylg2QDkbi*(l?3C=`8Q7J32DoPw!wz6|&O z#X69(KsD4SWT^|0i_L_Fd%Km?l(k1uoeZv)#T^{$i{A($F<TCgMc3I)2x5mc&#jR; z*%0SrI}@9RtG@@gQiV)8Q&Uq~Wq$=e^{dnJ$7YIJ5@~%|P6-DeFAixew~g3Jtz4e$ ze$H^?lpO7H^RmTB<WmGh0#EdTgv4y)F%|5pWtJok9J!_{{z{>;Q(sy;iSed%1z8l4 zeCC#=twBU*#}fd)E7U}E{ce$JdC{wl^rQ^!CqO%kW}s6@xG9!VYqlsHqcc6REo2z6 zDMNC8@>znmxb3<;|8RX5D7fgWT~V&t3vNdwcB%Me3&4M!2!$UXb$9JAv{n|SICm@& zRr3?VM(~l*;G6HrH5&fe)n$#%7abiPR>R7b^>UZcXL2F6T_<iPl$`!vjuCY>yRFw9 zb0eD2Br<})k7nt)U@Hg64dUmAbSUZ%GWcM$rjq*7J+v^_7n@CLEdr_gH8&_|8i0>K zWicH$^gcTd%;Wd0a@AvNI=quXLSyFC3>vOF%4;eU_6EHR{wZ&n2)YqM>1U+$G*5BY z+bs;lXcJHiYelL=WGF8TuHNM-*ZFo+<0$j^?#(|s{hRf`p=PqyY@#(kl57Y|XWQlU zt~+Dr%$?jeo5+--xPfzW%7P!>-PI)^DEKraEF!YjVCwjfSIzmF1j-Wa7TErdX+pC( z+=6>k)FPD|if09@=Dpq2ejcgfv0KtudWxEhB)C@5aOkYwJA46Qh`I_;^Vl0t>10?9 zBPcdNt`FyKYXrBNHV2rlimRz)3Wld1J(l8hwJli!NL(W*kiL&44vcdgtij-%X>B(c zNJqoxVwn*!^%&{g5etwB+te$wTD&^fuYfYE?MczI4zTNVw4~uis<5Sw7Y6^Pp8e@Y zb29`{XQf+Z1U(!T+b{LkIeQJeRnx-D(K|X!9K@Yw)$V6M2Lxrs=Ze@c^~)#mw5F)7 zzVi1hr_k23T{271Se`D}nXbPYq%wpGzG8b&SN0}nEJ(xE)!l(I12LvPww%7v)I40` zpIIT<D{H6V&t7@&ea$9<V#Rjv<Im0hL~-y{78@0YE_DRJHI_1_UnLfJ+7c$TWW?H5 zxF4A;-R45&R67s(m>J$PxlIOJ-r1EfP#<eX|D0mY!w8}rzUt51y_mAqZaApX{{m{a zc80jiS^I*QUh*p`$^3Mxia!{Bob!34V<+^5##H8zgd712T-mIk`R`qx8nVHdxizQ6 z8&*<g>FW6PazcRTosgc7j}LZ8o;Pe;r0}P|2MBcfC#f%f(DbM4(Rezf-aafOWb{S4 z+s$~sb$r*7|HzcXC_}Vf-`ovW>=@8~GOJ>GV|^f%?=uuNZl`V6>cfxxk`mKVZ@-Y8 z%S9D5m7R`{pqhq}z+W*k%4G;k@@hKk{REk1dExMLW5aJ{!Hv$Vuimm9ePTqPv0t~w zrD%>tL+Xovv%lZBa8*_|mrel6tdFy4CrXrar$tBOC8{2|&e8CaMQ{Y#&~0KSXJk*Z z&Nr0e%+`X(KyJ|#q!%B)etr_ILX6q(5;OjHGp!|A^3NYTTjyXF+~~e3PY-7@vJ=wB zmW)2`PbY|Yac+E*SrS>n=o6;cP2D&C>tP|IX6HyhrlJ0f18BvpxQbSDhB>grMB_dG zsIJ+2?g8lT;WT{@&w3>{XD^~ySbGed_&}?Mf{cO1+nVaiXGct^$nKj;z4es*7ViUk zz$y-KS?=c$L88~La9rjGntCTW_o%D_dQwPUu91q0^YPJ%xd&*z(MhiLOrD2^D<E*J zMb25|t!vU*&uyx(*N@yfo_)6NI7b;UHaPKeK|wnX1|3gXZgQ)oI{(pL=Nkb-(Ij&@ zcvZ!5sK!iDT3UI=OrkdcqcNujr()|BbW!Q4=_x?9gXd=n9MK?TS*ybxZR*o!T9w6s zQu53SqvG%C@?))Y*XjczXa1a@S3V59AUpXh;_zX<C{LgyuD*WI#7ONXqXrw~x4Te@ zh)MUcx|}>1C5FUgs;7hTDbC%U<`l~1HONEZ&SgdDX>{4Of0(~X+-Nd4E%_-I$jhez z4XmI3{bx?Z=T7-S>gKmv7?|&bwGMQ=tO2Pst#Izd@rqCx7YMuMM1HuYXDoHMuU#z? zvG`O`$*7#oZDpJDP*zj3`e$YA&%0`$hS@9j4?+S}q?vKgPu60q9Ff_jf%TS)t!iiN zcAZJyPD?f?5T25ws}isJUC~D8otQ%%o03f}v<rGWq;&i`%eU6_l2jw-^V@gAqZ?Yp z&yx{BI@wuKGc`6s<sv~|r{(G<C)(Ikk1!<u?F+z*&U(sZk9PMPRN3Y^!#woroz8}d zN?3i-P6wXbAX-Ug>5E)#fX!vGK`(fh3kgSeCNkL4l6BPJ?XdqNQe8_TIQ#L@#debL z#%yCH2cHIQNm?m(DYwRW_877#V^iAS${(r!02y}Pq|uj^LGb?O?HMaS(bS1=<MFn6 zA?#bsLTwD`Q<^Z8mw3d_?nM8O?p39l8aMIk8^rYk8tKKgmJAZZU$aVXguxr7r@V__ zg7AUOXMqo%y}A}VEoIg?*&a?*l)%Twm#7T1L|o}iC|#R2tNW}pv~A8~r1JM2^}%Ix zl1fh<kkW}&4{o%fsK43m0MV-zaUHo7KZ^qj!2+Ffig$b>J{5kJn61Lr)Y(<qebY~^ zTMF~@!@CcbtTXtY@bh<Scn)662y?d#L#ecH(Z{(Wyn~h(W@Gbp?&YcPz->>}#r#kl zCTouzo)$dmPEOY2>mh0v8m0`*rbO+EcuHai-5u@vB9X~IA|w#bd;Z2PAo}sLqYvwI z!bM+V@#H$zhQYLy%bfmuqb)Ug&YZkmyd|cQevd6qEauvpD(2M3WKej_FHtNXv`aO^ zI}6Z}o)%>8TbgRCiB_}i)8WpL+gGB>`Rw!h&~Q-}HnsWU%oseZbF06rNQ5Mx?flgO zCo-|0YMSrLaphxnhmzu;?Oh$mR`qCI$jPRR06YgzhHUCU1G`y7MR$<3a$TfyUJ>k{ z13H3SXU}Y83p676ZOl7^Vu}^m=Ol&d>gLjrj&;`)L#9bO&llWvGZGq<#*8)q8m6|@ zwLAubeKtcceVdx;7gk2nq%{r^Dka=uFvuGwAham%2mAGfgS(GMUx7elM>tkH9qU@+ zo@VOI+RqYg@Z@8dI2C&LXgD#rovCGgdqaREX~LrzBYGBsLm*tSvrv;r6CFb>RJ^Wj zIcSo6c_E!~@!4$IeqNKe9yz{2pxPT?aMK}DKbWp-{AMD{&-nIZ_o<yeeN<{(5!des zqA|VE94|n2REfS6@{9TC+75SHnn6VxC``?*d%)1$d;p-rWP2hLId^tI<j0ox8pLNe zU&gs}YQ5LuQMqX^wgi3BK~*E|U>Md}aJ0_hE4(Om>uGMD@Ke7^{j1o~h=o``ggf59 z%A!vf`-%Amq*Psrbniq`o1CvFJ8S1}2}vwhEVUR>EZar<<_Wk_(Sj|>X1?VvPkmml zbnnN_=}B|qal2u<Q5x0d$>47B+tInl<7H5gO@Z$QKd#?w^UdGz(IlPnsVcX1+U$<f zzv&`B1~2{3@+>U?2KZp<(9jc?ZA}z`u;V!oWOuw+rMO2qusY_C>`TIgdikr9Oh-SO z?_Yb4_xyY9LB$68poX6&Y)XDdalBjYu^GM8i0xK~5r;eT2?<}8mBWm&&pm~e3ku-7 z(e>C2I)H38P3pO0gcv2KruwtokEq2TeXD-x0ITxd&op(6=uQ2DZ<*A>s?*Jk5qx-p zxaU4DkN1wWpw0T_B~vGf%a+R>Db|Bpv5mZJLG2?QVj-S;WKtz2Y(AbAg0X6Sf>hH@ zchALYYaM0`-V;0Zy>=j1P*uHf+3^;sZ1hCov=K+T>%<p=dns>gsn^6VU2zs@uc7W# zG;$>|8-Fc<z|-Bo4{R@YzO+wv#Cc%-nADKRQ5B9^JxmlkLRql-j|i%La&mE7Y`5{{ zvv@+oy)=Il#_E3^qQY-eve7EbCfR)Svs~rWt1r{vdP;b6Tm!~PE#Ut7CUn3ywQk>u zMuiZEGT%|OdTi75?%I4rizR%xfcN9R&y&`RsO(ae<JIepBQFwG&k^aWqAyX#^_itV z1}JS8e3MCnnG9bE_+^xQ@YuaLw1G|6TQk@{cCD(nm`hg8Y&yJ_c^y*Yl)I2mRM6ZS z>!-z-J24WxU}|{t$OKueomip+-hQM@#yIX`RN94SbGA92L66-aY>oJ`e9c_)t9MmF z5?i+1E$H&(qnTS*S7+?S3Z$-_;tK2WfzXxakrAR|=i)lyd#C?j802h2Zbt-#hdw~R zNf7pJ6i^okR=L~vd3iHd{^?tCLiRW(Se&DHVg~{tKiT<&2z{R=IG$Jeh*<_%^!b*B zPJ6bdsX46JKwCCGGQKzAz+TB;BU($9*7_HgpTT+>H*!?(Ps2#nt?GJ3M~zU|%A@># zW+M22UJ=VJ!j$^@$UsIxdv?)xGuZk1?@QwEm#F?%GPn9lfjkSR_4y<QyllQ?`J)-; zT}c2@$YFlgD}yShqf@B`s`J0u9BnlmRET*J<2;?Q4k>$l%G(E+WGT>tL6Iw$op4DN z&n<r25<nqoBI)@zm>onX0hiZO6uhFBNP$-z9tNTWmpMkng3BHh__xh(2QpLtxjfya zPcYV+Sr%#BAZT-62A)-<-w8QKaa>D0x<Z!dpGUiz!&lTqGYfu>cEPszXWX`jTMXBG zii%pUwAR<PPANb9wUh9gwH|H6Y<kpR%hBeway8l1JW<TOu6HNQ>pQ=Bv6EwAJ2y<) zdO0CxW%j}8Q27NO*8Wv0jgY%vyq%9$MJ~;$CrKteWS*fYOrli9^|^(e_AQ4=I5!~E zB)x;p!+UaSy8jONW{*`0_J+lFzihP1ube;*pAfN7r+xb1Tt<9o3U^`(&*|_|^zvkH zG?C00pGK%2j9h5Dfh8sy7Oh>h&89Yn;`@~Xu1J?&ytek<F7hbREoVyb6lsE$Cb`YM zky$ij<T&h?_P;vrrTOZRvvl>L`-cjy(UBY&+a!FXxO}I`!=*M?L-2(q1CGd+Us-Zt zHlz#BgJgj==Fez!ld}`BWY_F=W+X!Ma;uGh=wg(>8AbK;uaa6gzhAZ$>|-MtN9bz1 zq4D+t3X=Ys`F%L|C{}x#P~9MPt7e7~OP~CRhU(H=DlAM)|28lQLfQ4FL7RItt&g~& zzJcF+MdYF67vS!-OwF2~QrOPr$?;C`)OumiXhsW`CmJAjHj_%j<KQ{b0Kgi*l<hV! z9d5C>HEBwX4*11uHzF_G<B4{#huT)YBgI|!Z4YzF>uj~^b<RjBq5}Ep%mA_}Z`)|O zTh-@g!p4^orT&GJzYp=s%Y2*a_eDW(7j)-NLNabXAvcRn!75uCTjg6;b2nFNr&Y_f z71pZWB&*90@ux~iVAl3C)h5EJ4Oy?QKAx!cVLswQ@9ma1_)V3q=JPVnzh%r#6YMTX z9m~6CK70F?jV3mN{|M+;GX5oezR;!nN2af^q@Ck?Z_CS19xZG=R~zfA`n%nGmS|t6 zlJGc&if*ydCsd%d@C%CYTOPBw2btD9-W|VSrDTKY7rjMyc*(a@$)-Ak_6r5fZ3cP_ z+=Jd~>9}EHonk@IZ<o?B7cRG7u2;RNjHCVL#=>*GUF{0_1|P02>zgVUX|Q$k56DYq zw@*%H&E&bdTAkab&2U6E7rQAOP1UiLon0H}JGC^=VNFkIoc8759M`4tb7%KRLe0?5 zf=&VDX6G>-VwqBc1(&Jj0%v2pi32x#OCNI=Wb2%ZYb9x0(3+-)`**fXLleZa%i(KN z71zQpQP{SOKWdwqI=*Y==TFTgKE`;G=^_6ovgN8`?@W(7YY}6ij(MZrf<`E8oa?RE zeQZKX7i))=7k@5lHrl`L^<VbNnfdonq-zdMHp)-1J6vBOGMCI4smS;pj7m>VE9U1{ z31}vnscF&<hZ<ovsr)uM2j8MP+a>V4_zBia^Al=nMk{tG7kn)PrkC48pUp#0Xhb}6 zR<967l$>rm*Nke{8%-fKNc&K!t#5uDG@;_^q}R6>SNsQ!1y<F*ecr7Voj%qeO?0`) zrR;v|mc6NlaIrs@qz*Yb%L$tju>Ev1;IOI0YGX?ipO}}YOMBzOhLnk*|8=aXu6~4| zEG3yQZlwkg_$_n&fU~Ul@(jJF53I&=a&$~iNh!vq;y=8SW1xe#x91l9`DA0Wv$mOc z=Q}dWUGzKAFL!N_UTrU)6-4w5H@3FE9y$7+@pNb+c5X7+;8L)50Dm|krAsxfQ<mr4 zbGu4sfD(tE66QHVLr6_+ZEtTfUuq<SJ;D9M#M!H0A#&wc7BM$qxg@c_MOYb^`V@V> zzPXMsZh%h>=cUFrjQixtC!~G95Psb$_Bw>`G-4h|(%j!6(t)R(k$~DtI%d%uPWsa~ zS1YTH>r(R_;&=U!*o~NGFQ<|7v#ssy4HkhZCZ?gG{)JWrU29pH-easVG*Z^n`zIt7 zRQbKmb~I%Ho@D%2Hosth|0#io$3edGGn%Q3n-}drz=e}Yz#{GI{rueATu5nT#YcXp z!{ca(R_=*O6Bvy!X~kteWb?PFlds1r5z@p3N=wsW7E>Tgi;;^Fs<N_A%Fp({$`cW# z6o!TUTyIU?*hv1`BY*j^wqes>4TmuM)1nj9iJE#f!pie(Y;258zaCal#E1`~yq)7h z)o?ssH4cuYnr9^@G`4B;+>KU<R-Yfa4A_zoXm1S6gJeF12SzIcb@tDCNwn)~N$Xt| zl$EEe^kJ!)qCUe=V_Y90$czUKm4H)5>_cRgA6s@u4YUsKmN3lKJ~C3IiWk`&gUHLw zZ7EZ@X(lOk%{J1^jS#qbN*|CPq7gLx<M?fWa}PO;A#^D*R*E<ARjp2PZO&V!Hg{#b zorO2VNu(KnQ>@Q@_DD5=EGb2sxn5-EkFpeF3k$;vEqB8{Dr$L4Ccd;-a<;EnosHN> z2OPHfZ<`YF7Q|CfSM<1`@v;}Mh{4w@s6?>};L-7h{a4O-rFFK>zBpMt(1Ao=OnS4t z7>N7X#>~J-j`XWL3=EvU?FL-`JD2qHZ)#%X92gt2(NXA-5<Qb#CdK)nBh0c`TcZY5 z!;~=OM^{OJgNj^Nv0jkv!)8LRh~Al-_qMG*#SoVmda!pK9z?<_Pj!T8qGl}UG23QY zIzEUBdU7gsxnMs4-Hr^Tz2xic>S}wcWu$5g1eUnHQ+%F~p7YQY6TLb}4!CFRRwT0g z@NjWs>6kHnBwi8G=m02oK?D2p=sMpsX_uaFpvwD&&-{Pe!`9YheX4LSEk%9TX6Jke zjEvJtwGN84Yh*PDzMDL};*+?|D<}~4S-TtC)BoG2>t0uf#%7f2w3JMXJjV^GfH~ZQ zpVe9ZzSq~G<&!W$8C+TAJwl^5|8ro@e?X^v>J+jT%x04~1KmuX|1}ylMH#B3tcG}= z_3RUCLiw!le*jtk0habeC5H7rd&SU~z_Us_L`MTfLsGXC{{xcxIdD@_zr&fJPuvR) zx`pLi{tI;biT7e<%=H00ZY6;y8zcH2`6~5q<f{ue(WOI<uuK4#bVdS;`F~ZKfIs`& zfBORNA+36bsn~F$foDb{+B!oe=82DNSh;Cq%ibwt)`?{KjBW+%)Po>U9weCb9+BHQ zImuM|D~?4x<rheXbd90Qi{?wfw3XJ3lx8YMWwf+Ku>y1;%Yg_Zz^{zq1z9GYc*^rq zqr~waYm%*K04^SC;U55Q^_0G$y0&CST53X6AfT90E$1XzmUV1gFcaE44o|ZqD67Fu z@B%}i!^0(!_sIO{Y1FnIoAsMFf*Jvu>|C-?LMmG}YZ%Uj<c_PY&qoJL3+e@+tFd?Z zedeH`^nB<yG|Ynn=UKi%j&O+18%zc)A=Ye+SGL6%;b;~9swe-E2$MwPbbG#V#Rs)~ zE+i)<&;0g9X;U%(II6#@=y9rJZ4DRPGG77R;z>>$pI=`WE%eZUs0HA00^<ub&UZ{B ze15i{j!oq4hj%&wnqPHZQDIusPtO=U#RNK-eS?W~SbTPjsQ#*B<M<P;z?$I+BK&&| z;(F)`rSyMbrf1`MV-lblqC?IL>xqiCqQ?pOf(|<w+oJGLcExLG#YvU&3eX!v2Yyac zpvu+WpgYUzw|f@Pi_GL#A-liwvC7{WSnw<^0y((Z^{&#MT3C_(St0_UnGc+BJ6X=w zq|cDv9R}fhD#o-%!#uJ#lp*KyYLP%9PHn1{#c(jBraYxsnMvy&@UCu0U{%hFYehd& z(mxHf&9mi})jPnz@J6HjYuw2NLEb;7$;nI}Ji^hCl?AHny=!885;6xS7)vPq8Jt%o zFVp>Lnwpr+gG-A>vGf>?&3Bvz64!$Y#BFWZiYZ^+!{FJ`yp2F9Gj1;K;^FSz-;Epi zy>VjD0|hiCAR#R(@h0Wnq2I*3u!5p09)2X6lTord2{f{0>sO&~eU4V!YY%G_xkNU! z*gAp;005*!=ECw<Zr%}7c{zhT%^w<ajQx>J>Fs#EN^=?g`%|q5Q`g(~yc+fdq?6Q& zSYDbSPc30n59*3K1_m!H#61N4UlfhQ4Lz?==X!<3-ma1UX?XL{)sT3FrsgOSVf-=? zK=0#cDLa7;>YOU3k3LMsI5z*xyPiiSn{u5DT^$w+Gl_7@aUG!RwBmXhj|!3O#;sNn zQ&L{Oh5By}H2N>b3p<>dXCM<+4;vB_{WR>yXG=h@Ic&#$-zQ$OSbfr7ih;uPoXnU) z8tvR@kYDwCSRGGIH5WJggW|_CQoXu*|KbpQp<}U6$$+ccjgF#8FO%h@?1Eh>JzqIV z9F&!#*alRToaNr2MN9mLXf*TY<F9+{`Tr|K`u{Cl{eSqeql4qM<b81gvsu&s@PNWK zz@H=T-(WOI!2S~``2V5U{}g`yfBm1FFK`qL3}h8SAOmkSN?%sCATIm$kSnm@zWE<9 zWMu=PP-y>TPtT;hED@I(fQbC&X-Hlcl$oBMjhR0B7NW|0uc54Sbtr>~$XgNP8z&+n zGZ$`v3wQiOS*G0c4r1E9q6Fg1<g|n|c%(wYUfH{WjYk?k0oP*r!sMMIaG!g+LBIob zh;Hf|KIk1VFFzmP#3(=?jSzp(iDo*XDN%$GaUNbVDhcs~E4|@|=A_9*__Ef$)9^IW z;QMN-AEN04fCffU+LWb)tg;imWPmqk?xkwRJfj1YnUguh&juL!hEqQo@?lzE{|y_O z^CiywEg_AR3X+_h0KZjmqd~KRP#j4V5OjFi>@yKyl(;+uO+jMBvPnp~Zyiq#u<7f@ z;|O&gJJ1`Ksv4djI_}?zAxvx<JbgVqJe-{F)%9=y`~6zW^o4MRdGXtU)=Mrvu4)*x z>OG=`I>E<QF`*D`kA{O``T7E6hWE6yEaj~4>YiGX;Lltth6c&gQ+k`3rlz*=e&Wx| zD+<gJr(!Hz8rVwcoES`oON8Is-z;1I>F@9OJ+6p&jUi}8WKmF*{1}vxOP1tP2dn0} zC$C|^-=OV<qvyL28UT?Dmc4NeY8ykwjRCIAW%jnx8NWvvoku-X1D6VuIzlAkcGfAp z5jaW>Ata11wu{+RrnWx?7KHH8381ry_ey^W`%Dm$xw67DKBEx-V^aD{_<)L?%RfT) zQ?n+e7Uk5(W4{A5c`emrRkR=x;fbTcxh*8qYv|wq!Xy{N-aJ?7=;$3C8QZHbrH1GM zs|zOnHr@;OyitFg^Ex3#p;w_L9uPB0r>3ZY=y}h_=j_sTeqYJ`)STCJ+<b~k2zg~V z=U;Jm+Z-*D%&d)(74u4mj(^5Xb#&l!n-V2?<-z`bKVcz0`kr{Sg;r59zi0ZOMf|df zT8b+UcS2kJ9O0`HL2X+_M31t%iOBkr6&w0HM)RrBE4#-Qzr+6!`ACzXl|bT=Uh|$G zTHA9Y>VBWWf;!|4t_wg>`2e0wS2Zae?S4qt`S)>*yUx9Q3??Y$p{DX@ku+lTe9-=u z5)~Dt4!ZyH7rg_CP9TFrtMZ~$m{EbwWeoQ{jv-yfMk14MZlR~yQIMCw)0wODFRq~g zdLJ|D4*-yS>P4@~LFzZX@Q3Ji1I<aqa<3GCD@D-$9!)$m%<d1SWxp3R#-yYa;odk_ z>uMIE%41;<d~+{7;E9Wi40`<Z@F?iU{H2R0$Gv}>B>^n6`kvck{yn>l59)tEMgu5x zjB}m{YW+j_IsQh@`dRadHiSzbcF$WvcRZywj9H{~+WcR<$gF7Pf{nhs4Z@6+6y|%0 z0r*{TjZ`i!ZVmJM#{TDbm;Zm6^#4t4@Bb5~)&KgH;=ida(IU)aSMkp(CAMv&8S9Mf z$-953wRoXlRj^_@LqiL1FC3)JUA^y2@I^@m&H-y{UD_<Ey5+XJE3b(ndeI~(f7_^! zqxkMz|1@m~{v2w(Q}7ilHh%Ir=FzahdiG@PUnPV)o9+FY96(r{cWjp<Id+bEKwR}7 zZ(e=|xY4+rnpqUz&a|0QU2Z5;-w#jq!<UUp=haiI=(w!KC<^tbMefkda@lj@jq{=b zIJ#u*e$a|z1JZOydd($o&}Ua7vP`Ij8nMs*Y+~@)f|Cw}o0hZv%=!>;XD)VUo{GkM z%5WTl5(nmtj(u+}IWz}NVhHe6@=1RkQWyNg*8(kS43724$L)@Voae1P<J<XYIg$fS zysu4VJ|QQD#IpAfVLoyj^Hg+D0my-uvypr8$En?zp?MEfHav39^1*E_M>olV4%C{b zVcbV@)SOO5Z~XIYOKef>n!4-mVoo>XzShkZiqc8@WE_AC*Z3y_aDhmFoC{ZA)_A|P zP9<)p;61aX;QTjQhx62^LSF7~lpd==V(74TUketpB8YRTpJ&S@w!U%t-Z1PpvfNI( zu4!H){EJ7z6Z4%As#C+k5wd8m)uI1Lja{lfe?`(;-5U?CAK#zf6{49^@U*1x!)FJ= zTAv6##0apJu8vCs`jsW_3Uj<k?$*)X^&oGdr}vU6xLw~;S$u<>X<fV(=GvLhrMvq@ ze7ju|GC!YDaGeS9kUK!3U3I!_MIUpno1sqRG^z(}SMt21W9VTqKv`TpRuMG3#Gj|r zJS=7OjxAbKlM7+0a_%XM;UoN>>E!g0SJ3pdTwU{#xTv2u#@+h)3-;8xa&*am-OM&7 zrQKdTJqWi!j$O`>XRxaZh^p<`pRz&pYEYLjHkIm(+8SOzhpbUDTrFf)<OHE81qxnp zMjgJ$Q8+@pcVP|$jzM7q$)DKU?4DX8c7+IY(P8sVikm6iTf|~e+BpPmL4R$P<;}+L zqJcps?HTx9GY6vtv*!A9uqhH3gY`-dMd9Z4c%uxjD?j(3xyeO#P)lcb^SV)e0Vc%V zdF-%0OeQZnbsI5r{-kyFy_=-Ky-EMI4=vW=jl6Bqigrb_N)Qjf)0{Iv@u!J(ZqNAx zsjorbn>?ce#>V=uV&f|oRKbVB0t|fV1{*nMqu18}o&{lH7L{v+;{4{fKKRH_7a>Cl zewgCqM7+o$kHNkCgioO{Dr3rBVNK>-+#%6IZ`*EYgKu0$cZ=%SY>OnKZ;sG|zjxtr ziQB<Ay&!`SpN1sM`OX)Ic_mv-nn%275do41rV4VaX`gP=JyqYJ2WwThzlUse`laM& zH0+Bix%%#vx3)p5x_H7Q+ADW&4FbNqurA2D)kF&F+LweHUHY1R@UK$gmdQNGH7uPI z*4f(aHNfK28U_==B;GwT$$#oKQSWp5^y#-@l&S9(ixkKft?Pj5vOHI80-Rpz1I>bd zXM{;!aB%Ua%-E9Nz;}Xw`vOjHwh#Hnr)c+nFVhY1J5?bL)@Qw#Dvf?CU(5gM8*`g^ z!^It}EK#I8dbpFZ*{-Ye&Y=$N@sD*bK;s(;XHby`X!vW)%Wb;*p4cjv)`Hm2B{>k{ z4Qn;z<glKxYQ$B)=jY<@+l8d3rZ$-Q*REY9_XM|!RL2ipul^SH#D=SCxg=p}wA0*F z3^e8Dn89in@xV&M#=f&pC(s(G95Xz0`Fj3P1TEiFguHRu^;o$qKc597KOdWRv3SCP zk@^EEYev{ydvJ-w^$XBD!&{q;toay|-GWxXURHmC7Drx*t*f@V_D^TD$RU;R!>Cxx z$JY*VL@*3d0(ntq7S(GO5f8=ebJz;x5KWC(ohv~T@n$b9NrYy;j}+W5>!FtDxq+>~ zMpsNey#RFsbUsf?(Ab=)Td~M+Gkgn+i7zhDmtrk>X*W|?BBNnA9~Dx`W4SdqU}9&b z!n<qF5ZQLRlp6s+g2un=_N^s!d)}Mj%JT2pqA4d0-BD^aSav!7n-tO?M_%$9J8<2Y zotdQXJf36H9Z27#T`4fLfh-19H}OyjP}O^>C7}PssAQGWf+(w;BwCeRB~O%F>zAg= zEMMyImaM$Y`hMHsrLv028pN?6zp`WDW}~M}ZCKG<h>BQ{oO-)tuZF%W;U3F(%4Wy6 z8>P7wKUP#>k-3Wx;$P+cX3=KE(08CiJXkTSyfTMa=OD0O_|r8yr-d#wU?O&Slq^E2 z3*4-9Tn^&qBCd~6Qt5N`;2i*9<)UNFLtn?vgP&Q-#pA3FDB}p;(xZQBj=6sLCipuy z#uvY?uE1&ahlBz`y&H1(jbM6jMDYZj{?EET;(yYu6#qx;f8S-vPebXG7%j~6)=~6m zih5VqR}TzzTP`lH73YQ@j8Rc#<z<gCJndfc@Z}d4>h2e_t)xfRxOh2m@as+#s8F14 zPL<1^pbr26+1t}K{@dr_2APfCC@pkA?;%Dr^)m_x`T~*=Fm~+MESl60;FZZgd##mA z057y#-0!`2F#1LV^ya1Gdwjf`NMh=D7WDZgSBuY2<iv;1X1Cthr`h*vP~^cOJu|a_ zDr9Aa_};45a=I=QNV?wrZXcZUzWW#U87EFIz3J@q#5d={6HN?px1V{9&KVG@xq!SJ zRTyPAX?!D2P0wiU;3}{1kAFkFsoF7Q8coe@0beMhvtlqQTF~;*)6tdPo~YfIlEsvm z(5iwg)fI7Bikl8P%%k(aBSU0dI80aHpxGQJ&0sX>z*PC}*`p$KZt-DeW+VeqN;vdM zgaph62}V;6PyBBhR~OpQoN2d~G#u5dQ!4bmFBljR%Eb-eccWu={7hiB`*ANCfj_~k zn`rJ6E+HLbVKdGf+Dela9DHnEPR@g4$FsaUj`g)&lbBm(;$MA9l^G&uv0tMiqP|9j zN5h~{Cue6@C-*}~k4gh%cTbNzQ^5Y$r<Xk|t9@CMKR=L>S*j6uoAGm~sR;=gW)tJ! z;P{<y9K2oVM(cfkwWYbGPq*yv&fkw5#Nw{5QG3gbFJ9C>d6S!yW6{;c&dy#-YGiB- znke}M0<o-+wH&p}wH{a0`h|xp>*(zn<v~;w;xaO*2?-TV`3;tT)6yOsVB6bQ?5@JS zJQH%;hUe#1nS@;l-S%$V8P#qirP^)n>{xV)hVotHjJZcc&o;Hy#sBsN1pLyK_&qqN ziuUVQnv{c>ZzLaxYp|+3damwF!Dqf7>R)f=`@<dF(E4acdE%}H6${&P9T3MXA4YTQ zy(|Ngk_zL<jt6HvwnZKH_W^B|jceJ#NA8*YSI4`^T7|c?9E5~KXWJtCS2X@x<b@?@ z)Y98f0@N6^C1Y};!O%g`*ftf9rUZ4EXan2iBNB7o?2tg;6d+NJjz)kFR^OGYr3?8c zj|5~1SNYa^3h<VX1h3iFeifw<D{#tvB55)-?Abjif^{cUvJO|YvDwNHX*}JSUmeJp z%UfR_s@fkgtfLWiHo6mPI{}`Vh%~zGjq5YSV~-GnYqH5&k(O2CWP>TZX8T!w2AKw} zhlQs8S4u}tYHDX@VP_y;1uz&~^TWaFzmWHzK}~ky+b@h21qG2NAfO^e5K*dzCS6MC zMfwd$3r!$&LKFoA1VoyE^xjJdy@)gc=_L?K1f+xzS_maTvM-<i`@CQF%>J}z_Uzey z(P1XekZWCQo$EM{<9EU!OQELcq;}qom)5_9&Hc!2Av{<3ED6x<Nt=z94^ABQ)lXRu zNP*L5ZgYMva#ls!6>jM$z2|eaZtE%5Lwa+Sp_jN_DiiDK>SRypD$kZuPU*QI?e~Qb ztJ=RQ(pKMiV@xHWtg2)Eae{K}4`e&z4h^^#r;u_gF`h-S+_$`xur>z~+%B-v|H=Ae z1Mg3X$)$^a5Pg3Sj9F|;ew?<mvGE1>-H`v-y?-B^-az}6xPx*Wma^8j7ec+jKCRyG zvkrNURCQ?`Rj%<EYw+H<RYsiEFv6(^bJqy5>KK>4Rv?|h$;goA*cm8c({vyYNOhmT z85ftO)(fXAD1)2bFW7&W!hcRWMW4{7T>ENNW#xm-J*hC0M9G`yT964M9U^A67GKJ3 zx=5NG>8NZ4*>eQ*w1d)W9T2E@$$<acbUNPTOcyO~iM>Mky|3UI>T?bWOqx#7y#&e_ zcaqaqI3zfW(Q}WTR2V9ad6Op9SLE&%@Ry9DvV1S5#Tmr!Zx$FZmDX8t=CY-`&$mk0 zP99rG{iMUsJt4bS>a1!|+!qhA`OaqRO>fr(j4ofH62Jl7*41!*U*3$&g@jB35r{(6 z;YTe49d0M`CeURB={<W%aWy16Pvit;(uI7CdO&1H4iE`|YafVfY|p6-<~wqh-XHU{ z2kaGzx?#5?qrxs>*fMcTQFo<7N&z$N{Tv&TV;)=c!A3&SZ{=WE)&cft+b=o=n;OBs zLZZK$4E)r6v2~$94TGUr6gg%p&btcC8t6`dC{r#{NI7j&-I02~lTDwBI80L+VtlqW zHF@55`>ZF~t>x7S;7q%EGPHGNCyq-eCP#76ZK2*^nHhO7+f3Zzx97?Kgvs^c2VsGo zEm6bNb>P=%fQdB7Xo_@9UuI0t{lfT{G`h@pYaX{zlhEvt{efE|Xf-dS>ju|;d#0)s z1ii6XW}O)eng?P|Y^07c-nV}S97oRiVTWM{CndzcLyMP6vU6Ro4rswn+sb?zy&tt( zw?{<<m}TYuMz>(3QI!~`{nf!L2LqTQ&LFIP7CJTN8IjB-u>+9{!A)~2G-#$&LSScT zqPZEj$3%13nn|2stOxy_w2qGWw8t&b9l|_CCDSVDYZ^$$3@Qg-x($=OFTxjmW=i7@ zx=f`}0GLig_6<=6M!|y4a<BNK2`rCUX#RYt$<j6dFkQ4UD!@d=X}HMoOx2|^r~U=n z09TT=x(VQ1G}|c(0ye#$&kcX^P*^WuL@0VF#N@8omjdNtEuX{rD?@!I6p~u|#2qC! zP#m|*tOYF$;XGHERGG>x<DY+$O%`46H*l<z3puGhe6BL|I&G(_EXnwR8P={BmX?+l zVg7eqJvMQZL0HPt%`H$@J3|x(=-0ZNwiD!YkQ!UDMM*B2$8eKd%BEKLDKwD;-LL!n z`3AD@(U(>9fN_g4n4aEGR%|pjWUxLXG+d&CY`QDmTYkK>{?&Jm&GLMdXik_zQ_~~w zl1oZ>;Zx5gG*e2}2S0uKRWKMbNhuYSOTwyAWCo4N`G>FcTqR@JH@BqWr^A**)FKwG zk2h4G8G1{MnMCG(o<5mFx(So{jj$V9N&-(IxZgg^e=kX7ZjzL!sPYBCCgYqk&^JKc zywEEIpj{4sp%Cl17utUKv)<DkU=<;0!16HC)((-wC#G0EDZOIOw<N~B+8ZTjxiepF zbIy!`o3t3;oJJ(kd10zv6OWo>%pA$~L)<$zVQOdBk^~%v&W%y&EzhOl&)3d}GeFJH zrBzf_xTQn9h-vaZ=c(MWS^nqy&LRCX+3!7oIDZXRwmBugQSHU~g;=_#qv#RtC{8-M zLo)e7Q*TKCfz{(|ogPUIC!I*iim=K1LJ1DwyPTXqc^*_*G^x&NqQ0*WTQ~chx_=<~ zobdGNd>@w(6Q(2$cHj<Fsp}0HSNA)}BsCNXT@ORe&x%=C)>bJ!jvDG6AJ6qJqU(!w zIr%N+zGxiuP*@m@`)-S>T-aKyKpZnvpwgZ#ud24Ew!MT;ML_I0rR$IgB#hx!qcg!* zwk%{e%4nh47c$<Mqx(wWY$y%!6g4YoyzA@fnOtjn@rO$>w7c;4@85W7U!7DkGBaS( z_n>ZYVq*0$#c1#<oqswdLD1-5v%kiBWafH8-EhZt7JSM!p>j<Tz0Ng*Fp~L5Z$y{; zB+bLc4zamzEwNsde6L9+GB)@u9xmz50(F|royEW_9Z<WpQG-3Qo6{u{XKnYp)MBU1 zUguuAlk~=4Y~bt8+Fnsw{YEyiE<LxGyQA`U)Xb+PCH@f6#g<mqQ+}8~M03g@{Ds%n z<)mlbd8fM4YXO`_2_)jCEBQ!d?@uuRJzzf}2W7Mn$EN1OZQmd7Qns2pvb)~H=DK~r zLYjluSNaSqHpN_z?^F=v0}o!`O^<Ry<QSDp+^}rQUF<krY@=3mck(HQrMqu#&`sq9 zvF<s>Mnx?)I+taCKq85~#Eu5{sZe=QpMh>(O%urZrBojrWyr-fcU7_)jsYrO3HQk# z)5DVY?md0F%iQvLdotCVWPM8hWWy-WWg_Q-kby7l&!1pcTi_g2iR!!s@lOOnq$Ub2 zlDo9!uB`9Z&C4D{P8ssb$iczW0$3TkSdyBKYfOTW>#_bxj1kpgofY6+cl2L2PqP`f zktOS_&(@4Kt~vtx@fLJ9=<vIa!L$Dcr!&kP^U$@<|9^JiN@w9s`2O#1J%zAX)#h+r zOpU?mQ<<KB2B}B4c7d$i%AeQ@j*UCz>qZdSFK1_&I5d}J`9!UFaV^rdWLV<^d^qWJ za;Ir}R$$(#{tE4Y0z$my_$h?dhI!0kqR>aPf}k61?&|veI9>?ley!<65E<BBq$Em> zKcgEjozk80Z`8v_j6H!<EysHrWgWa9KP)6E@KH}z=ga4I9_l0aQ-`$!E7_K&mJ~#N zZK-J<h#R-RQNtK$rJ2r~VUoz|mRw;jfkB>In>AgedYSxH-z~TK6(X54?2P39GXfIl zx=<(^JXvYv-A#d7sS!Ghm*D4Z3N9im3qgkl@0EWI#c(uy{rXix4WGwz*}fJiIK{1( zSFxQ%B9`r?WzPSN{e00}$x??zW=O3IX(XrVjJ;o<3qxQVXnDJKj}|#)y&Bh6*47-# z;8tUG0o0aoISIA)*)nNLQAS(F^onWMRU-7}rzt(P+WR8bSFYdIg>6rj-P0K(E%(Bn zm+JEh=b5YDtwX#^2WOxqoaaW<cy<=x_qZ}O;C+1Iiux8n*TwKGJ{m;&P}Y+T20h_= zXbqQ$k;|VhDg>w2x%IhQf`cfWa)pkM!OsQ;TIxL}C3J<8_>VT*DYvJ-BHfegR71=O zN(m15vHz&4w468R@-@?^g(qp4<Ky+31C{7GMPH5F8|LHVyF@xNZG{%B89-YZ`U-)K zx{i+fB|Y7pv&GORYbhsP9k)q2P%TZ<i{QVF(|y?N;`OTx`9Ko1IkOo~v9apo6#-2Y z!3uGYN^b_sdZU3>7E&&V^gCcrez2*@{dG~5M*^SVBzAxW(pq<gC)|u={P?ueF2XmF z&>c5{9_tAG_5khblu+m(0kNMZ4a-RC*)=$rTXlsKC8E^<fWtCTOyh=`*v+0qzzDVn zS5;Qtgg6xRkUO0+8dP$fMBN6u`?KIB#91CSomZd1cJg<z22Ecp9kb+Mg^p7r-^fjs zMFLGvzEOr|_CSLnRJ&%6h&7R=YH&)EDqfXM0Th1Y9#9p{)$iPf2A${!Eh*sFgo&He zV-lOUIc1s;gVWKpfU$V0(Gz&4IH2t8oO!Juv=RO8WkuWsSJr@~V*AH6N!$F+1MGq( z1!gu`%4!?XMiuqoB66p@M}OgACRxeN=)gLX=Q?0PwnP~u-UkYR@CA(m6@o*Zm&<f9 z&{XDoWuTmX6FZYrF+HPv;ggPhz;aR3Wr1f-fLJMaBM#i$tmK0o*ZaO3s-$>@6Xds< z-LW`ZVi#nob7kXL)d`|&jrp|&5CNJqORd^Ui?*}10)2M?W}QIN_Kaao=ut8l?y^X2 zsH1zlS0tg>UflDjbQ9Ms&85V@5&YX0G*It4R;RwA>Sos9iq6l;%yR|2Q_Y#<=&SrH zZ(n`V6@}u))hRcY>2%Tru3}%1^pPLZo{v~JD*JSrRE5%xm*y5h`*e?ITJ5RNtKpI! z(;oo_fVp@cv5dk}tx`98t(kFMLeH^K2sIh>X`;#rQz?-VRBS1vhHNXzD%%tS@^@3D zVZ1k;Z1%b)O8e-S{*3|_(i0bOufD3C?dD`j!TM}*v4Ew{RF#Rz=pb<RnT)st`ydO@ zLNyuab-R6Pi*_v1;mYl0A1aE<ZC6y&*!wmJ{k(-fxrwbR=#B5uG&#UiDouLQ80AjR zdck<RC)8K}hA1t!(p(3w;)Q}nUThnm*wdj4f*+M#IG%h@#@8~JfuNg42=@twyxxiv zH{m32ni)pG#^!K{vewATf{4jikzvQbYK$P_caDd5fl7U&xe3hRCK<ZV6dEGVUG(^8 zgehw4pV)4;=FyrHqV@u^k~|1BZ*Fp)cTSOVaO&%sRwT%a&vErjkSnX}ML%=Ca6q0- zTL1d|X_77dfQgkLPEXZJr{Us?t|lLi@Wac?4sYFN7i4<>d`v}sQf6-=4&x%Ly9&Y8 zXDkFBa!3YiIlXQ?-a9xr$lVBFXXX@6ypfi20a9vER#;h-EADPoPx%1{n?uih$3$f> z(XNghd*+>PHuBVl0C%T?v&niTzlx)$kD`Xcak)HS7TWyeaflM@_amDx&4i4Ci+@M6 zBB6}s%Lb+uHku<%Q6FI2M|Qr@$tE}8{z21JQ(r$Wuk<E=SQX?+FANA7H$4&FR01a& zx~{pRjmK&f^%D$^JVkiCN}qGBID-fRf$mDT9#u#MT|4mtzR0zT#akG-(txRt9Mjkw z3j?D;#?3xRnGc|x0QU)N<&@`a92`|A_N%ND`?F6;fWt3^3x<pxHrq(QiK?tPtbaN^ zz;fqUAJJK6Kj?6PSp%m#wQqji-)#Ex=T?R0YXqfb?G@>JB9~d<+8AMY9DBlYhmGTU zlOC>!{+~*FJ3Udh#UvUoNhU;O{#B-q(*!+<;;RfCB%TyD;Q(8%`RVD1bc35N#}Cy9 zkgyYg@3L>z3~Zsz;dcZ+eMR)8csT}DH0arVzl-P-k`LPc>1eP&8k<Z%8K}ZMMC%w! z2j8*0Z!LGcYgchef_dAaE0UW1mR*Hw8js{yZ!e87P&THy<*kcY+-6D=!~<(&yF_sy z$(s@SrFM~cAe$S<&-5)}8!~N&DN=MlU@8MvzkY7ZN1ZGX_R}`Q=Gw4z9X#&ve&j-( zkH2lbhpC5slBTS+5M!zq>fKAXxw_n}6cKBHu|b}xNdT%&z%ZFp+Z}6p3g7~K@@`nN z7E5_dzZouPQ*8GSN@3LqUmrOq#@Q+JUXZm5la4|kvk05s-%x#@?VO+rs4saA3ZM;r zp7@MVd^+sv^#DU;>Bx~LONbbOHi`j&Ysq=91!uZ*opqH?xr9uU^=Lg2HXCsj);fbp zf$Jke7e@;;H;dR7T71^xn+^I7AzinCE2<z+#+tx)S%%U}WtZ1V37SRg1IF5T4Wr?% zE=$tt$G{Eedm$S*p}%YWjPe(#vH@Vh)tj5xrgvenRfgW<pf#Hp3qia4t8E82w)JmW zS!F6Mvb~ZI-QVX11unGuoGurXLAuOc(Cv1t^5mwL7MB>XoLrK|@Qmh(@86kz@;PZE zb*W&R_WG68AKI>=Eb*BwOd{XqU1ml*%}(3Y?>4A2u2uq?O|8(Dt*!0Od_hvsI+~cy zubnwY377WWHYJ}o1U{j9oCv%^<0m(V@Dby$on9ZOdaqA$c?dQCsPHLU8x$X3XbYn6 zUSWL;W|x{Qr^3E4$>~rb<VA&rMVyl4#z=|eXrTgcU*B=!B!2Gbpxy8l7%Urn@bO>g z7I@z2qUs|E?=_L}!2Yk9hoNGQ!+-#z9gj5(Ax-vA-db4?ir%~#xa~~Y&^x@)rP(K; z25<xgbLq^(p}V6D=Xi<0pI`hhkk(r5B4@@`2z{TqawH0Wt*W04YC!}P_5K_KCDi2T z;c+L?a!v|38ni~vIy?2L-~Bpr=)!I;Lihi&4Oxt99MmAg_Xka?vL+hGqOx1b+JsK8 zX1fV^L|j3B{<Y?e7iD5RfdOkF%$ZDqrC<QClRsa0TJST{z>&s&@WMOM?EJVn!y;dB zsg4t8pN{V0D70_54L~v(1bsJ~04QXo#4{phXfB-M@hNj#4iGL}YOfA6lo?mh2wlGg zN_LX{?jIPqdphn75YZ0!>)hs=yEtT#^*={H035Dz-sKoN{4|*uw<c4E0_?)A<jSW2 zwk>#9SJV4a&ox;!YYBCAb;bCcj^)!;`OW4%YkmFw`76;rZS}C0tzq$zb00d`i|meJ zNOGnY-x}q?e*_j`srQ9$4*T74lUI!a2AbPMGcRwEUwEvH52<`w>IQw>e^-Wc=Uf|m zLGHmVUQ;5FxW?zw(S09uV;QEj+!)RgHi+rQY$A(4v@-VvnNi83b`Mjr6L*KtNooC3 zozXQ=>t6V9{8K_cgqd3w*}IccL2_Smt<cdc!KRzi0?niX{ipM*iTzm{QQ$Y^22Ikz zc0qtxRnE?hG}#^Vp_39D`-x<{43#s<;qYQbN2SZU)Nxrcq;{<VX=be*6K>WQmqX1V zQC@{CW5ExdbXEa%ShMf8LD7f|Z2wE;8W+d{e5`zW^TA>uBH~~sANQm_%$`^UmxN4a zQ|8*HxQa@b60z1;wz+EWqS#=wkrKFK?tE{rDq(MCrZFtKo%La3&=L9T4t$hk*w*Y* zx9IVjFTp1;udQ;XyXAy+!J%txO<^`Ijc$qyB@>qYJlA)BwB3>eIg{`5I-)nGE&}0) zVS8!KU7<6Sd1Sdh%!#aTJU{HiG@EUF{K=7%zW)SSv)Qcl13-*Pcq}S=Bl2HK`H)Zn zn?qNr?9CtDX^0$<sgs^2KIU|ySas+T_7>ZMHUs;M5(@DPe!7Iczkd@|G?Q^rPF>-2 zYZF815)9DS$9VmU6cGQwYIAb~sytrS^>aZ%&m3%V62xJo5Z)ng?81Y>OCPDicH^f_ z^rpZrB3t{bNX%a1ZS~4F2#pia#E4F*yhXVm7t9@ZM<SEHxgyD53nCj+ZH8lc|6U~M zkn62MUv&)R;NbqL?^x~Yu^CHSew~alqF_ig23RiL2lF+rwGc0KTyCl}B1fGw3!Vn5 zHs|6uhvYs?E;EGP9uTq~NvpycK~)U}QpTQH5*Nk4NDlI1sto5IN5tJNf*bl#`7b2K zrk4dvVpjk$6&ILH=U_;!-%_G-WoO?^rzKU-PA*q={}bhAiDgS+LBVPQe+WG{iM%@j zv2<*MI$)5RhfdehQW!kz62O`|r@{ODNkT?{=@*+}CL>e(5-xx5yz}4qqR@OeX*l9E zRX^CrD7Q6>5Ry<<RZ#_Yrf>SgrCD%h=pEU8xEXhq8FJvo>J{TOK+uA2Z?RRFBeQvo z0srKEu7>A=>!b8YngT&=GnfNa4;J!FS)^&Mx|z?Xtuf9W!>yz#5w>`8xWFOhao%*u zjb$y-<0}Iy4wv`uOGPdLXv(t}Vm%yG$juN5@7PM=n9bl;{-AhwNsILP?Kio&F7a_$ zxt7<|3pJn3I7(c7kAFR@7#R-)^wPQP_vh$3_xP{hzb1Y^8|fVi+|*J=;A`)J{;~+L zidd@4k4tG%`QK!dh2?C}VprTgJ$qYnzqiZ$w7ne&gafMfC;<&1bI5J(d6kYuA><N= z^}TmLQt+TdfyDOjV(rJl``vd}zt=GGVVyxtiSYQ8BDGwZy|FxgQrxT>-L^i5M8t51 zi3`p;$t3a6-AcAh;^?duxP5uEXaq0@Qj3V_DAdYR%;e7pO%-!M!EYV&!e=EA)w{cB zVj68YTi<?El6rjRa&^AC!8cS@})N^5H3voPN0M|U!%9M>A@)%M^lScfj%>qQzd z;UuXbR>yT}Kjgu|zc_~_IA*@4D+q@w%fsn@GZXsXzJOVvf;Vf}F&40H2KZ1_uMacO zAM)hS{Nw5sl!c6U+XJzQU($C{sz~m8qB**j&%Ns)M%)*u20$HDJ#tNx^A`5w{3}Em z&4TD#F&x!FDMx1e3l=#)0--zmK%{Gm>-!74QnHDjeQ27A7w6}QD62H;4v~)I?=)PB z@7)#~jZG?Ekxq*?8{5)4bqj$&;_~LQVxM8ouNwi5R1)r+sqbm{nM8_z=F5xef!Ovs za+cMipa`2cqNc2FCe4vPxYF~?f#r}RGre0?02eKjt@zKuN>q>Hd%YWJ@_vQ7Gre&f z!fjdHRPPG)8Pfq!7Q3`VekNOT)tM<l0m5+SS#Yr~71XwkRI~~~>0BSsI-H>Y+I$D6 z&=($n=ok;49~j?{!-NR_`LyH`Vp>vU^vUe03##<do#e{*+{Em^dsD0i;@nv>*u2&! z+z^hh$G6QEI>`G<oocQWAEJh)ChZ=NO7rYnPH&FjRyPj(!neA`@7m?&DN+K-*sP)> zbJ@N)PGKf0;S>1~%L1ee{KA-&3wHS=0LJY0F`yYK2G~*xu*U7&I>)*r2za^W`q5U? z+KMLYkoB3HoQrm1s$}`8C2GkV=m?$sx^TB3`8=p0VDnCL_%L=POKx7dkNCIA>^VGn z&0fJ4xM>1uyoYyKdY+$O@+`^u`2$eG>ga~G$81(e@|XKJD#*t~ek@^PU%uMUr9FYM zZTC+*KF#kQLzF+l#tT2cpxF1);N~W3>J*ftM6G^4v_4FRObrw$w(BzEff&%gSbvmi z!;_5Z3d@9|l=2h%umtaIznrV@PzugbVCeCr>tn_VpRSnroes6WYMBM!%-C9}tF)I> zLnTM))ALi}3txW^bLWh=Jp!_$dZr`S-iOw<*&W4#NiMEwi){0h-Xt+Q)wo|i+91)P zDf2o3nk*f%Kfvh8?`9aFjyQB<^@}&2Xf`5rQTu5)yX8Af193eZ8^0Nf8o=bgmMcv% zT#@nK|B@-R4=khmb)yI3Dq{xCq{;NOw9Sq%-^x{i*!r%7KDrGL+@$gxela6mh-nZ1 zF7R-p83+kJ;<)c-38*cun93NS>HB7MCg1UkItPb(5pkstD@5LzY2v^COb=%Oz0nf9 z)V<9~8DF#*jiwXyZa>){Z(4!6CU}WGE`5ccueX^9NA9$X-9vFc%TR~EI7hTJJOQ7d z89WMd^Y%uZcz1-nJ)$|6LIsajxHy9DOqhlQ^dIGA_a<tt#~p3Xf}b*(<pVj#LLY@$ zMU+fk;xvVbi_ANf@#eVStk-q5FK+u3z-C)!Bw{OkUC$#HW5OI*Is5z38mG+yCc`nM zNr~^B6js?=oWni2V?mx!%7}bO7EV|J_*xhekJ2ZIiDcaFTmy=YVWTXEzXy^Vwa{b` zf&I*j+EB+v)$gAAJuyf!L~UICoRoCvIk<1en*R{Gb6Bv$GCZ9i@+e<_->yJfR;pGU zb^887_UC6CNl;#8AV7$49QhEc6dDTP$`pl#h4l?406Bc#!jfGIqT5b&^g}~Or^Anu z(?N*_x(B=0dW0tu5)$xueDSb?{K49j;S=j&pdCF)qn>5Dm)B~orlnQBEQh3{17M;R z)>V}%7kn{Z0pne2aqgIQwdjxI!W>GU=v272R|AQgmFvlnv;zzEB40f#pxOhvzrdLd zRNUIy+IxqGrGN0?r93mFpyJ|5$2H*3jhi<UQorfSR4G0~c=Z4!k_7;r+1nUf+5Pkh z2sfG?`})?`Wq*%Mu&XeW*oRehJy>wnxCY7!ARU;#ef4To2p#yrlqRPlTAwy-<v}wz zpXt$~NA%pXg~Ac_S#<zZgB7?&72Q#r%W;TPrSi|H5yD#a&0JQ|2>dr-KtNbymg=8@ zh^mM7e@w^!*OLbRfBx5}nH)^Dfbi_nMjflg=MDWC(*~?mrmnaDZ2DA9KmO<MfOkNU z>i=x-_`hqQ%l|Xh83Tr>&ry+)F^n%C^6;#vywn9~$y6%$05^!hbHFhFF4yM4%dule z!s3Sror&&u?F*zM>;PBr{v@2dJSDz_#n!)_ej`U%X70eicN6*K*p93cRDC{*3d%g# zj5ZzoyZ?~GrHq%h5Iu{o?z2vi@3`e`X$uT@II$thGikXPADsk}{B!=R)~BKpXL}+E zqpYB%{b0_yDhSew{GD8%%!u|742;5&P9{a~83~$<g60OYPz#O3cYN$pr37r_(Z{b5 z+9Xql2hvAecvMStd^`h~zX(V)7K|wy8kYN$i#J{$Hp)CQ6=(sV0BWg`e9Mftbuydg zi%j?rk6rfHSszqrx}I)#C8l0pJ=#d63<5~^j~9PvT%a0#(>U{YRd1U#bSmx%KC!N- zTx{$+oQ#@vpGPsL3y9Us0uvzsj;olM0dQuqFl@P2m^xf!bySnXZ~YZ`nUmYYu`Buw zJU2IcjkiBmR_*7{Jf~bWR6TQ>Y?$cM&(-vXq@qwjAN2r+N&vRC3tdDv$b7bBdiGNW z7OoPXOq|q?a|TNg8`D6ZQC|7cW9QE?G4kZM#StwoJv5ozu;+$U1$1udNRNrn=rxd! z(`>CN>;lbHwO=5r#As@^-==%C0YIjQef|4uk5DvXnUnSI$A3BHjR4&CG|x#9@T`4U zDg_&r8D>B2WM=^QJmWQ%-bl9PWky9so@04zYpNObW8vRZ4lRC^XX#HRo|PEp{LQSF zEdPh(x%Es+ibEPwO{Ma|mh}0N9pKCq5DhPr)N?2`>WTnk+SkiobX7>lO>#BCj^fu` z&pMltWjTBQJi<46vrWb&oDCy3wL*(+ANpG6je_IqoJtoHy(wb`l4Gyureqa5ZFI7( zT#gW^?0mAmre9FoP!y4V?<RA@#fu-Dexe7)HS<tR%w01D3x~dv2g8sNRkglwL36H> z$d4gT4<3l7g*g2jnwsrgG!_tTkISNNr=g>b1E4%2>zfv3s?5@E=Vrh<u)Y!|DBt1s zLdr4iQ)EnDvBuy)ORE~OG-;;K0mzwi$rIrWyMiFTdas^+iBhBbi8&L#`+C|jBIFAq zcDBoc{y`+eLtk&t@$bT7VuTV*^yl9IB%TqV)`zu5e~!8yrwfg*si_}FI+QSf^VxeQ zCRSmn&}J@fB%XELmhG?%_^p8DLhr|FW@|<`8Z^0o;5ViWV0u~DjdT>6YQ~He80)Bn zkwe+h-91SrXY>uon!*9bpfAP+7y^~qez5Z>k4{#bfA$$yKu~~T=|)l<i>%pa*S9y# zphhsk4bc0@*ht!&28mx14D@GsL@rvN$myNch^E#|4@V!&IxUUTeC>Zz7h0U!au1gC zlP5QebaG1F>Q&v4C*Kj;aA?$D0K7(vkDfo25d=+-byixuU<JwM{jB%rBAEk#DO-<W zc=S%fx~my#I+yvJg~BRwekrv0h7RTvFcgI_sL7ivA5;G(EgQxu{7hjs<~{kcne=Mg zJhsb!b^3zgfLsE6$0^3iT{ze-o0ArAHJMqkK!*=@3YEK#H@o7z!As92SCApthRFLM z3sWe*V1^5wnn&>R^2#3&39w}k504f6s&>#*;O&#`&>Ya9{&S<*UcB7IC8OG0*L}nF z60>{|;qa2=Gw7~4N5htZj2G@bT6**-0nd}TV{C9X8T~F>e%b@RKWUBUt#jcbkY9qT zuQ%nK)%f@9gw_fJ)gWuJY>W5E7$r8N;5ypntPxs>MsPH2OZ)9z1w*%Iye27EN4wYX z)H6ID#Es`~M$;7;8ll8P`Sin4E--#Cd5C?~vATY^CIaNQM{16V3bSr;NQz_(AF*oG zaC?^}*9HPg!;Gj<LjX0>#|QconN^U7lA7Rm+O7wHPH^%$Mw)$9DKKkEiR6o)G&}oG z%k`{0tZe2WTt4|)fZsv)2{0CicEIPLPltfysyL$fLDm=ZLPgCgPHgDlXTWxb#Q6bL zp<4*L;1Gr|*va%LmTh-B*?D}do%*~qzW#7}RsI}27R4vWC9P!}_eVy!vbEWlKn5t+ znv6_z?HT86K~JBH2iJS0PE@_7%;k1SZGnQ%zN2Y_pl(OoKdi>%7@_-!w^(*ba700X zwT`&N6d4Vi7CX{V{j*;H_H!cwOhK-h?}^C5vArGUM=tIo(8u{<2`IiDb0B|uW-p7e zd<zhb*=2+8xyeJ~3~KX-97f11t+<CuS=A%y8OJ@<p|*G8S<glsxnx5m*XOck>MAQ# zh6t=8Dd)$mb3eMB@-jf4hEsyfSDYP&DDkjAR}g${!OWyNv@j$qt9^&D_lD8jtmybr zDm7W!XZIIdTDE))`6cosrTpvzUJDp8bhz}2XnYKSydz_xiz55E<DAgNm0vhO%%-O! z!<r`UC9>KaZ(F9pPMW%Nw2?=y26CLp|N7aHJI~v8KQLUvBAm%jutJ>g#5Ufh)Sc#K zTug6INBmKC?02PBn{$bKf_GA4O~h)<&#CKfRT)*~l46eYBTD(Khb(hW&RG-rtHjpI z8_O!%3&PudTtns5UpY0R5hfn<_KbDrsCfjYsVI=r8@^f4ZZ{Io9b#H_qW-H#sG$(n zrtBT}Terq$tQI3qtupWZ=NMRwkHp3h5CHCtmEeR;(J9h%oxngoot$pqO6cJkDm(+q z#6)8hQD6GR^FaOhq%94>T3P1cp3;_=Z!hY-O)~^^v!lh+>p8Q#zb7X@VdCu)c_L9a z<mABTwec&pXAsVs-$dDcM1M0$C~)XxlhHEuk<P}iqlqdGr29x6<Llae9hMYcbTeUe znHdgzO2IR+?U^&Fq1^W;Fu)0RdR_%EA&jK~1hW2RS#7rFTT*eCB6Q#qj$zXt0{DZC z$z^m*kRsPY3+3-RMiLSdVrHE+@;Wj9S(I|-VQLIVsjo}xj0pKhuw(8?P05WBQN|MU zvNYgf(Wi>q)i?kha!kB|W0h7$(?`~mNr6MxK{)Cxc7hge*<!!*o)Hqq;a{MXYO?`) z(?yb))x&SYtU*41;;cv5lisB*76)Ro-D5ZgmM3D&kFbW{MtbRAEJGDBxdrlP{h)N( z0m}e-7Q@#6tp%)v`)p(xw&z~_kbQ<8W&KlRZ;caqH?f$djhJcJ9zO3|PJSN6une1z zF{dvseHfCw!@l`yMuO=s-gv`&sPK`k{z<b{#^%zJUft-7QPe@aQ|jaI5~c*#$l=dd z>}A}ha`l+GJqDEcM=TsP<7h5XCw76ynw}?>7w?6YVjPF9?Ie7o>K&h0;Kpm1;bj=| zfE==5L>JLak9?({ccbk(NAUZ_YHd7(h%;oRxz6h$=uurLK>BYouvqfas%1!q!#Z85 zk21U`u8guoXiV|W!S{`gk*Dzy&^!OZr8!lKdtU@QS?Bz^6XF>;mepU+hW>>^RcKcT zPqup>bYD4KpXf{)5WDGR{8mD5j+)bXM%+l*L7THkUJMBt8|_#33?z&cwr#QMwdME< z_ncgJOXV9-<yADlC$uVha2+5yg4HA-g^oiuZw6yO0Hsm><aei{8W+qnNie_3`6;x( zm>=!nj)8T@;tt#jE<dV_)^)Hyrv{jSHJ%^L<dRxTuu<*0u2Z9#j)TJ=l&ITy1!!Ge zrC)fR$!Ok~d^jK!mL&97)Plw6u9WNIU?J9JrdmN5{kh_?aOMd$mvlh9aDjapnM6pr zvgY6r`o?g#kkZ`zTmqsSoyLPTf5{yO^L`}fzCgrKfN?I4!#KGFx%(~IY5^K-o#>x; zJhKdabA>_<7nP>;hmZk=y5Y<kf49VF2Y#CKtVU%s=BN8{)iNt|rVYPk89KK>WyZ)k zwt=QLrz)R_#g7@oR?(b?Tge#_#eW`dyM8H3qWi%Hk{nwS6p~yOpzKa0I>ay=&98xR zh#4q;P1e&jx9a^SjNPG+5Ay8~hJwwCSyIb*@8MU(eo5MD{00=H8S^OA>R=84JXTgc z=ia@l94@G{Jk#9~RM#SsDCTj#(d{{e7IsbB9~!?h;lJe8UEM%A4g#V^DVOc9WQMAo zN`fUY@2!w;$cBrlC4(Fl{v}x~O!x|?s=r^1rr-#*K9Tm5O#EOlxBN<USZr-8%c}~i z$-_=ehhLSH9L0-)HqCEaPH_J2Xn}zX#Dy`@4U`u_uR9l18?L7?8y`xIG3s#tBc_%1 z6rlPCx;C3M9Pa1;eI&+Gv&qicgxMGkrHfKz5UA`a2(SO*o`K$l>)ZPcm_*N_)<?$> zBs)gV<l-wIhqP)u(E0QLJvP(|dgj1c>Wi1{)fRSIYH*u+Eu#aB<%#o|n-%9IB*UZ^ zB+80dVPTIXhrS`cpL<VLaiGe-D-{`$;E%%SB^CO1R0xIDzAr($6NN4IeK`xK%#l&; z>=cgi6ymGADw$Qu!`nbT=QwiwkwO#YZar+(Tg!kH_6^8Grbjb!2DbRQm-**lXb+j% zqGTWRY+vd-;cj_*_+~Nw6W!(k-$c9BK=N*0-w2_ZSKQgqabJz+SZcX~i_>w~ykBmq zhLN?q=26wDR;rdUBGA4b@L)bK_)VvZ@``0rQg0}7iW{mTJ5M)eeo4o-&=EjVJNTE) zKE|#!7)oPuhNXc@R8*lE>vLg!LHK@1LS4xO+Zw$oe7H$d>ez7*r@=~9dxw+>^+B{} zMbUuEOBI!<U9C**9TT8mJIN=bM{G$}z_(;_9Qg{LW@NO($f@c0!!__Pg;a)jDt;rH z?I9%z!*1d&geqIpU&yQ5R$7@LM{9-`>Q??pb1Hc1=YlY{sa3^eAyG)VQ8`;+ghmN* z^sYoORaK|1umVmx_*uZ`#!LPx9wXDadB*^B>#nlw{kxo7{$51bSIhAtjq8ACAyw2f z@%iOz1Kv((O09E+oBoxt!mv$0XSX70*tTH$pC(ChnXe{~1^D-VcaOgJ?oF&I*ZX!? z-bYV>y$9LY4MKX{AJz&Lecd|Sb}8NAybihtI|~MGr>=-15$r*~o!5}oZOdlgba;AU zFlbz2{eG$Km64jfMVkr3OO3D{y-JTeX-4k(3F1gPbHGuU_0-{7MOgd}aV3kg`^>0| z7nbB?cdJhnL`!lYU0%#N-a2tnd@terI>PNbp`C14L69)2I97S;M`+|7E&cvHr1AK1 zXsL7_8I=W|kV`hw{dl%5mhOO`pM3Jxp(ydJl(oIg@KmUqzq$FYYzf+WOal&oEsu13 z^kc7$#o8Vs$9a^AM)C=#NfdvR&>j*RV{!kJL}wqFW0!zT;_c{-P-FDP2`QYo*{s9Q z^zWgw_LX=<Hb-4s)z-txjo+f>qi{+VBkuUw%WceXYRguc`I!b489smv$yXLLw&R9s zeiT&3uY)ijJ(<&(1rDN}7J~*~WE4A($yf-&#BVA~%f=89M6L1>Vl*ZFUH=0Eygn+9 zL<FBna@KXN(vQ<@0uw6Eo$yq+)e;aFFqw-sEXw#6CC1Tfd#w0-7s_ldxs>k@ZHjyC zb<zX?-P4>?6ILTiO2YQ`g>#&kP|LSnrVR&g<sn^4hF|99+WEBY?io-5qTx16g#ihH zOzvL7C$IdTxC9l(=(;pT3l>gR4it)5G{@sOl1EBe^|5*t2qu^`y3X~t@nucJ1AIGl zRWhjF<cKaU#X`@m#D~@hPKh?5u^|*&B4|#jlIkSZ_h>N}tykSFbT#bKgjD9EI1`c1 zs~%bXeJm_l`ughWcpIm_UxzAnE!sLJyuzg-wVMp*xfUW32SHrFJ}dykjR<0Fv1yMV zZPhxH(wy*DQPuC0MNBfvy|+wEVbwP}#&aG&3U_&o#SJ~F%wcr#Js*piD~$y&FI{y? z^U-Y#A#ic*MrM7A7U|oC?|s#gX9c?yY;9O7QDi264zULc2)2#2hh-njQCDAmTq=gD zGKcLbsGxq9N$nT|Gih|Kjyl_a94rt-e+^k#T`q?3*E#kRbqYs%y#)<QLW>+4sJN6C zEHcEid`5lQV%bYwCvsoCN;F8<w9P#mK7UZ2raNHc)(F8v*PoQq{UG9||FGU}r_s-_ z)#sb`vD8|PDit$Ck4-$8qDmRL<K^i&6<lYryOZYA$KiRwXlrj`-Gw~=JG0;r3Gg|E z=U2O)z*rOAc!3xQbN5C2?8UEll!_S3b)HoWMNY8j59bvtpWdo4$(b<w!#NCS76<U0 zNzhkT8VFw@{vA+s^nUT*++x0O4Kb`LKe;DSIcAd1o1R$y?B0IEh+&;J8a?`;;H}c& z`vrl>hEWL@{ge=fBp+w#fIqmtKse!-it}@n8=t`QL>(MNph|!yt!}oM8C{}XLWJm= zm>8XlzA&8<X`e9xB|>^`r58W!vSr*^?3R{{B<N1`5?{OKdaMBwN%T6aAMNV;-2;hZ z$S{q9i0t~r-2xCx`u3ZiLKmrRM_4Ne`alz-MY23dH8ttn(l@wtDdsvCN6HVrVwuWm ztOnzGKcuGrfe6oy)hM*Pc4nJaq%p4Fnjy!qo9=3PMr@XTR$I29T;xd3iAGg%kXFE6 z$y3fd;(eKq9{1EX-l3T_^Zu|_a17}NxB0l3h#YA3H>_(k@5pN5wtw2IOg&XyVb=k3 z&Pld}tZ>mzLz#*o7liJN+9c7KaL!4va=Z7OUiRf|;i_w6HZCp9_`O=z@aTz4+q?*O zw^T4w-gy$b>erE6g6~4P{4IRctQ%M5BLGZobfas{&B3AG4Fw;d-l>^Mgyjn599^Us zPA(Reou?Sz?U?$wHatJ2a(a7o%hcLJh;!holGJ!S#7MCAqO0;7@eDh?7W&hlGq24f z%OobBcKdEj?%(Fl`c-9|S5<sGz1`Z7z@*;agc;1B>vs)}>+cWe%2tZ?3!o?MSNmQD z9Tn*CeiGSsd9C*Jnx)Z&isPpr!eV`Sr4R3>5*BozA+CRJy`0mDkSy)I;xEnV#$P^y zT;6=BSG{KbsZlzG-51H4@a@|}ruViM7GX|A?sTsToxjYO%#6D}mG|1W|Ef2^!<-4n zXA|)N2UeHEA({Pc!;aipf8vQyh*clQS0~noe^tx^6{=q8XlPiqE+1vV=Uz!C{~XW? z___mgNGP|wi`xKmXIlF9MX4J;ux<LDbv0TW>as?PK0X@O^KhFRo=yY*_34RZ3n@@C z)xR;t=bOT8{O>w+okHi*8>>omshQ|D_v5As72HDg2k0=%6;g3NR&yZ24V5s#wB9O_ zVGTVSIiJ)9H0QA&#+G7oIdFo5(dt9#({>6`a?H$>09S}^L->EU%I6D?V~CJCC-h64 z%$ZK5e!sZ@yCE$TedtTiiNT4XvBhCDI_mb@SFgJPwc(mdp+N+T>$L}q+I{95=z8}D z+kZPX)kLhrHUk^7v$yohT@i<aVP*cTCKtw%eb+NLML(THn^YZdYXZZobH422Q`4M} z&r>F=ZL+V}ufI~bh~`=hDHA)F3E6}bNkCGI3vo%tdlj8=MRPh>7A7;qXSJ}?HrJ<N zt`PgcLqkIlPvg|Hr@*-HHnxumfP>A5bxH)NUqPHr-u&&@yYg_JhTC2jR)exki|R`g zZb=vXE&0TnkS1<uApl<Qf+lM+^Z0r?0ZN>C`h15$u+zIg-|dKzV^M!n(AW--_aWid zSlwi%k>kA>j!B0a?DmH~22;Bf36ET>Uv7)}T+v{Z`{H`oG~bIBOG02vQBnG|=YNFv zhZkMn+(V1(Ubu36rS2xKWS<cq>zsyXKTb`)FzT0?BqSIZ#5|q#oxXfbS@-ZSpduui z%~@Br?a+P_gio&h+>ZZ=#`@D*7SRd!c<(2eP|D?O(lV*va2uR_D!;o^Qp%^JlDBMW zaYZ4b%{f6Xd!z#rV|$m{j2$C<>a+b@M?xCEMvuuPPS#{PhGn)c7JY)uO(pWU3#q<u z4%o>W3Yy&sJU9lhd;g)M1e*3!ODdA%0?d`WQ{aGDL&y$Um@<QJ%LkiH);z+TYN4;6 z8Vc?l$$ZJs-;V{K{akkdZ`RNnyU#a|bg1d8US(Cr7@&XDEp}V}3h4Zp_mM6I1W&O6 zHo|8;qp$cswL2J=E)_lYaVewM|0z<|6mZ(PP%ejntSp=u8XFk^$}0BkrNE8WZIzD1 zxGqx>oT#OXi{`Z5-t>an5#ouU^Z2iq!q9v#;}KKIR`VL*gdyOj<nKJwMRZKwjFG;< z(p>3LeDzMgZ}aHxt7%2Gh|9>#9wP)v!Jv1X`5hOjH2GnNt)}i`@Kaov8R_Hro(`(T zS@3$a5QcQ5XA!$t8lWVnPiN##UToC-#X7|2kX0TkU`?AQ5<q(V4y@UM`@{~SIFFTI zD3B#zn<MDXe$LvJ2_aehO8I=FB#5iMB~P^X4_Q_`=r@y(!)==Sk-uTQG$g4+sgC{q z$9;_YZRN1%$ccqvyPYeZrh`X&-W7yTNB*m{PutCM%Ax*l%sQ@u>uW#TouS2c#DG#3 zCpso|HP-2vNIJc(yL$Lc!O)FmX><em5M?}sQQ?0=n^KwjVk-Ib!2i|){H~nu?gbs> zSr1hH$_~F?&zh&!9RaG}$<{&gyZmkD8y_yFQE4$Q)x<gTds)p9XQ0!=<V90jlhqQQ zM5uG_9K#)svK`VRon0ILXzdos($$x=@8c?RjUl%am5TPUfKpcx@IBj7rX%$d$A6(E zn|UBb>n30G(I0&|$+-_7SB9QqzQ~=ewW#S>JWoj3b3L}MFwI@zsnxIjYb{ViOh4S! zJDv(3m{i`OEYxB)9I*rP5<6Ckyfh)7b+py(87tCC%$ghUpx@?~dbGc{cem@pD=|+( z<^{?Y`P#O><u`~Ky!>xe^Lh#mi>|_9s>~%$Ip5?8CeLS)wfE)}1vnR*3A(!VY9>{J zkFffB330h6D`{|X>Hosilqtj!ZAow+E!OYKv>-;vQg=RaG;5)Y!%C-zG5xZ=$Mrq= zsjK&yWHasZQ&rjhg7b{M$!)SehXcu+5#4rX;cCjlug_>R?u?yy{u#XG=f|pW5p<=z z>db!&Vm=ht$+1;zCG2#dF9NyAF}d7A&I(z06-ML9<iCNFg6}~{LD;^TU&YmC`jazr z_Uot)$*tR%$w<2U|L$jT-YR{=)8RLzR8EroIBZ#uKaJHwGLb%G$<;Q4a-LEF=u4Hr zpz!oUd)|;2+#ONL54m-}<ye+ZUuu2AYvaj$7ba2&<{D~flkuVV^VPRpg`Q2SAipT6 z*e}jG5Dq^8?XIOcZvd1yG@{0L@YZj&3Cvo`0ARV*>|H@irqyqdXngPSx$5OHr#Hdk zCQ%HS$H#iX@*1RveLB{p^BuP>+SQFOgs7wPXw=4KRUDp9VyddFv~N_k<><%tJ*kwm zb%(#cmgYGEzvL2V@LL+3^*BcH%C9bkTP_OG8TQj4WT^(`%HEvwgq7dkzI?Ye4cdX_ z$&gh#EU@i9lNQ++1be4b^dx&?%#+cP(7CbXV;}<q9tzd%EE^oVbvhTOcICgrvbvkh z$DOB_u)o7$dA>XHs`8UsD}Og`u`v&I%)R;bN2&m`Qlj1kTAtG{#k0@&r=JOa3-l@D z*xxtQaAxGcQKWS7bbXwAdYlLPxdDkRL>PGzD3oxfCC+K5kwK6>ru}r|yvBO`gqw2; z=)6e%z>1=f1}<`oHQB9AG1FZ1+@J3#3zxdWIAwx?_6{xJo!$rf%fXK(eo=_5ei<b| zwcmkG)gGYdd|^<MYoY;R=M}bWP@m5G_h#h%7Ps4+VM7@CN$0$4KWh=mhaOjK;5$RF z2si5#{w_-99EdmIk4^6X4Ay#+Ajd8T43(Vyo@krI8>Im~$X(@mlA=vMKDU6!Yw_Wx zn})~~?dt=!hu`AbD^0s1mL&=bfFlxUf!iYVY(7|vX>u3tq-V@jgks;F&!$9gjFd00 zfcZH?MlK$ArgJf2Hq?K;aPN^K!1H7JCc4~?M;nOqSrN(1=aA{_R_D_TQKyOQL%+40 z#U%d{ldjA<?hE-`c60n(m*Ii-eMdp4TUCmL<iVm79IL8ZXeXvcL&oo#8E0<0lP^?t z(?$%}6wIgT0)wp%fNR+P4!Pcv66sNMr7F(0OmeC!!O|_4v$#@0%}MIvcCI<Ui?ZD_ zG~>{zLvEv*B#cnC*eFCM({IdyN#MMX-%qrj#o7-C-MjW;hj)JRoiOwU=UC4XDsO=s z?~4_;{GQr=cBUk|Ld`M{?7iJZWav*YFB{9njcO_PgBHcHJYEsGl+_QgGT?E2mm(PK zg)7fpWq#P5ie0$S26_~MU3Nm8K{j8Lb$T*Bk67oe$<$-=X^esFs_^ybGF@HcZ@_&# zy>Mj+7^|%Ad~F-kknRs2<JKOO=P@8E(!^)QQn<6;FMg?aG*dpyz?QHX^g=>zA~#V* zLflnZ?d%89_1iMarm2p6B+~DUlagaYN8JvttzO3)_T@nPVWIW>W$^Kt@314}JQ3@v zG0*k{#1|{5+7ugme8SIjG8`qxg)b>iO6|F5!dldT*?i2@7P=+Yv;HN9eNtcAE<fSI z9;<LwhFr(DvkSZqWSxN&LkT8FJ~PC>{;a@_lh@c~=S%Y;Od5r@(O~Gqm9D3oahzw- zY7$(QN)qE(&J5z=*0hy(;%f~vT1W6Url{--D=^NwHK(nl-lM%yrVx3RFCp~}_?I$$ zDN7^T-@Uf{QuslTaUEoFx1}jd3gtAPe@P3dPvB;U;05%QmyG+H@{@q)Az>BMjwgL$ zEHD}L`Y>sq2ZYgY`B)7|&6=!QWr-5?`NzCz3xSi1@>LC6**!C&WpNkJmxR-%P!jwq z-*-AP$i{K8X?fD))S1K{wKinZd5Oj|VC*R<i-mjNIZc$M$C&I~Ag=V+&J&yC6S?P{ zx<UBn6r`(#ia;Us|6R^^+|(-W=r;%GF~8kwePqZv35rEzZ@oo0ZLe3Di;tiA19MpN zJQ}7A_$oGLRL9=@{FYP6?)P7T2oboR!6kgYqlsUkTinkM+{{n_$iA*UoG#F1>d3l` zSo)?aO>8Bh^E@ajI<YA^!`Z;1{%x}Zj@drZ!%?SxnDn2hGiw`%rd0=|;|b>UHz_yX zxX!ooPg7L#w>8Cyxa30sN$(G+E<<|L8~)FHC#CBgrsS&0vgya3b}M(q{@N8xbbj)= zkv;M>*ok3!Kj)!XAW2a#Yj@9=W#BSMw!rq~YkwxroDwj4s;A}?=qT}SNr|(~Qv9=; zJ?QlM_S&-UJDe9GW*G4yv`Zk~zqy5FTL7?>)t&kIdW^9Qu?K^;+bq_L3c2gUMlVaa zG=royPJYx`wq3iSp`qdH<&~YnR1L1b!)j8K$IHf%@}KJ)Wnlv|im%|0j}dBP4+eh! ze(U=WOYw#Izsb91gNC664TuJVx@>h*U?RE~iOMjjy85ZN$hu$+&eJ0J;<@vIo&<IE z=m*J5hqJ{HUZKLy_ZnMrVtkUZ8h-ovZ-g{8Nrw99P=c_IknDX0ZAAamZxgsak(Xnw zR@1hOt;QRFNMnxPv*H=~Q63gFfTjM^Yga|w<3wXayVIo<qH7wv^%np$l3fe{qOt#a zfsln;eoUMa!S8@}zi#)f^y~vbl(UfG8rfjDG|Pzs@E=i3wv35@i|FwBb+4eHISpnR zX+PJnHGtyy^ak`gHSoD#S8%tjdPRo+{afJi{~!&&{=eI8^AD!^?&1Geeigop8*hod z3$mv=jg8Ogw&sQ=x?*I%rKKf*P19iPRaH$+{$D`NR!M+iBjBB1P_zz8Z%Qqx@qCuj z3Fv}=e>R;jQ!a>s=`IPsH8Qh;0R}h&O8U$}8uuC?K>VXm?FK$|a!os3&;drGduO;E z>|V$K)iFgekEs3yyi9?C&02hUSRj+Vl`8rV9p(>9>~06MrS@d0rHPk!30d95p=?wC z{YO@g8*}*?B_;iFn(ZK;?b5akaJq5K|N0D`+1xd7Cu4DYyV5MH)S^>U;KJRzTcq|` zb>MRV7`=YRu)$YiXP=9-4m6M9$y2OR4!&M>I<FEjP3xzlsFAVGc2(qnM48E&n0&w{ zWuu?)=gV#svy97B@p6(6K0OT}d}jZtW__;!Og-T($~UZh-L8K{L}bKE)HL=Gc-eo? z`N2$&c>ld7ygdED%k%P?;8+Zl$s*+B+*<N{`<<1;S|Ltyn`LAan2e&%7|zejUuD*| z1YDArivW+`!PKNDAKweoLs|Hq*K8bIMOn4%{DA>uf`}YN_wG+1)XQ3RobkWrYXEoF ze<nBowxqPBCp)sixyh-&hUVzW3(fG8(vB%n#y!}6aDSA1cbr9IFrn;)khmD5I#@Hk zVPl<;;{K1*M+Hhun^AW2KCt%o7CZ8KvfM|J_D#OY@}INwQal2|WM8uJ?Kyb_E{R{7 z@U52wb4*p3E~v@8Wa51a{AT|Lac>zHW%q`Q>T94NAktDQ(j_$@DXqZJozgXcbPkvZ zLn$dOAYBd(1B^-x-JQ}o3_}e$vmf67`Jc1T{;<!7^I?C2-;-<BbFX!;`?~LSUDsZG zws!epTDh;u<C+U(@uoD>4&RL@H(eU6%UuQzDr&u%H1skAXnghx!kR}AK>A38f}UC! zy`AS7@F3^{8xKeoj^;)X#a{S-%&8XfnigkeWlhZ&qd(u|Ee63SI@&s>W~P8C?Ao=5 zFg{@8tntTMRBMfB4n^@(cyC)i!W&XUK<e&f0TM=)y^86K=pb(=gcnBpc)$Vwju)g~ zVd8YuJ+&hT%$Z4mZ1HKa&H0*2OqK)T5LyZ|zIv{+YF|D0XiJZlP^Htpqc-C_QOX@s zoKwe<wTAQj+7;#MT6(&?xk-OFB0?`g^`$z%M6@1TRr&ASaJ5K~Zmjk4@f{7GH9?ur zr!(%f6R2>nDr+mLWbLer4`Le$dz(d7$(Z?pq4g`veE|dR0dT?|pV@qQ#nn90G#uV< zr}U~NUj!<8`t<wLk=*_2Kv$D)jR9`sC%jg|V-47Z^!SSV@vTLL8l*884a#CB{Qgp# zGt;Z2gu3EYzxJZsB6;!<$Ps0^4OPoz0c^NU{;Ns<J~j<_BT$<VL_t@21ZYig1I!P1 zK6UrB_6cks`yy~G+dv(jI(vLiyaB#aMjrL$Y6ib%-A<EMi$2qw&}Ah|Ak|O?^4ZR_ zKgnXjK;a%BgI=FeCR$!_#Us0^+SjK~TnGrltj?yN$^s<d{`Ss#$p5^W;X?;IE9)zy zMv^FdJRD9DI%s5H>cd<!MWxwg8$A8gWx9XdezCL*{BTTAw2S{|L$Vi8VR!<>A(8Xl z;@i3Q$bzpYHsK)^{>;FuI1i#STePCSqL<OUO(1#s*40;C{QWT?iLmjjQE>l&L~E9E z*QX&)qclA&5;$`0i%Nys0z2@}+kdX8^8epFwcCv0sQ+RCz^PaF|E0ox`oD0T{vRY= zRsR^rEv);6BkyS*K!|PkBhTSS!AR)HrX0{(PT{Dio0Rl|pllXO8xmnkH4@>#pSIi{ z@Q4RG!Pb>#ncSKh)WCJ$)pOs!bT*N=3}>mXepUnUv%`f7#Mu&_vT=g!Y;BdVXyDnf zD!tTSNA&1r?G7z<DQ$8eqyak*uRX#5RAst}eX34Qo1-m?O7Vb7Lx2wVrJ^Fo^o$8W zqYbQe5^_T$!odk5HcKlBDMk#8e5^bq!T?*c?Ngx7E2D{@01Vn^6gPE`?|gdqV`a4M z2UYQpK}|?-Wo|}ZbD7<%m$%wk(l}qY5JzXfeKi6w(f5;$v$K^xxw66A3fS=J)Q!(M zI*NMo0L#1(yCCRs*GON>B&EC{D*wky_1~Y9KnWi#rCb9v%FO}Xa!pJ5D}AyTJg@LR zGjDl;7wde`1TyHq<{T-Vf0UT7?ZQ+UcGE!ofSh5eO1hyn@_R1YAfeO%9)h$A92 z)oEaw@OJjIs(*>LfA`02ssB6f$lNqQRCJC{M4q(J#p`0**tzS6vcQxY#|DS2SMS|u z7rvo%hxmcK2WQx1LQ*CLBaIs6C<qmIb@oL$Cuq_rW#s0qyD-Z4zk!kgJ9}ceZoK-M zJ-g!-mFQb353gGIGvVw<6jTq>oc7W_(@B7olsSIn+kNYdk~TwMnfF^MPrsVnM_*Hu znCas=>5}AZbOQsG)tjvEzY%koi4$JB>VSkNRFBOvs7Vdr9<Mg(Z}W-Mi-6#Ij!st2 zRx$8@849y_`>2iIKhRCEBGCwo1Uqfgd)$Tb+|FPsy>g##|9S241SHe-1=>nVn`WKZ z=LLL|?(=@&)U}nYhLnh!JbG{&*NreMI(`sax9$e=|Kizx@eZy9h_P|g!QNTx0%Y5& z&W+z8QB+s=5%>O)r{Ip$9lkd%IQs(5C1>nhS^aPKzx`vCpda&<$0qDL9VaO72ls8c zy2@w&a+niG<mFZVO>q7mR7U6c=-PPCT<^V%-+)zqAN-ca9jD%y&7Uu<1+fl|?XCCU zWxNNx$L;}xv}9RSd%lQ1<WJ{c;E0x^t&oyZew0C)ZQ;L@WcJshV({(8xc(RLuD^Ah zK!?1o9O!&W0g&?bj9<Iz<!gCNfY<|Y{Qv*Dk8UH=`&t<Gav)7uSU5T=sv~yC#m?z5 z@Ng>THueuWtc{^BI$KeA3T?P&fTyP_tf(lWtR}InED@3BbvZ2q)OP<v^+H)W?7LaN zlM_8)hcB|_AwuZ~$(T%}r{N`k-~P(C$(xT~`v2VyUE1-9_3U>w9j(y&ZGP4M2e;u} z_X}&QT?e`*>u=)2YijbMYw|v&IORw^*Un7%@~w@ToH$~#aa}RGm^#qM)#*w6m4DK* zegvX!7@>6oa`0JT273A$S7W4AMllVI{Zhd2@CZgWFl707d2o;OY(1AlAd~23H1ly% z4Rzo;aB~7xeO$TYTqEwI13QNb0?v9?4bd^>6Q<zi9jh?6YePt%9Yc8HxeQc2J-1{{ z2{zI`z+K;;a+ZzduM51N`dIKeGNtGk`Tk)OXYk<1k}7FYSVR^;*zUhXOGiP^K*^x_ zxMOI(R_7KuQ4m9)*ei`!q{K1b@2aUCc$UYc3Ih@V&BVk7cLQ1c#5l0JK&eV@K{+6V z+_zQhq^;QrKH{FIR6aiUxnw?DfqO(q;<D%m5g*2%j|>m9oZkvl>1b=`n4UIzE;&8q z0#^5|-quEQ3ks&NtAoK!Qf49xPuW3_xg}!QZP`2KGu@mAhSv-10N!RP8M)oXHM9Ai z=#a>@G_6{|)2dRk=U47CmqStpm!Mdow%_wf^9E?ck)YeRKPf4;iAzomS^N3;4h9b- z%Pj)YsK}!EJlMXp^DF-P@54Wx8{$ExE@FnL;>6}cZ;lnFOFqpkBvAUF&8F_slwP8{ z3S*WJ(Pr3=cX(HQZ*_mg(@lfAC)sPbHoWbJdyo?RHL!8~k*Xa;6|A<<xPCLuZKTO! zd(B65JzEbuFy0DjRM-ydW0<fWp{Gw#(XePZ_@&wGQu_#K7H)TZdW;SAdu?%<_Oqs0 z{#_omgIHzU#D&tpg(dpAcMN-PuR2GFxYot!yu!LsL!sv_@|s@7h^Io_{q0@zvu2mW z&m|J@?piom&`yEo#ySB;))hlmyF|Z%1wO`nBTf&kDgNfr`h$diqc5a`<$2I%|A>RY zlt{Zk7A$k=w8-ua8cAd%k!|$cYGvkvtD9y9mwAsgb}e?c0fS-}q4hUXyl2UzE6co( ziOGFe@uy8#YnE}(far|ciejj`^hvIDRhFb*e6foHk+;5D`XT#H1%uFcHRZsLc|yPT z3yOgka(mIW03KAt{W6JDbNYPYl=j_Y=hzY0_GH+6F$^G2bUVjOVgv%krVDS{NkW=U zWacDACxTyD)HUZA{RGCy{mO{=f+2$VwCP<XE^Y&haO9_May{1^ZW1u611KEQQt-+| zkY{1rUhr9#28mMB;itWSSuX$T()#^(ZH~h`Mg#Q>|N5oT=*T(@m%S`9U|~)1RWLU5 zCZ|lIx-#jT3y)%AGd<A2kcT%Q=$+4A{PE$QP(n<ogTQ=#>w4Zcj_Xp(_3xjtAOv}) zbm*#EpEGq~shyLRh7W6T#o)!=h*tm+(O-A9uO4$r3L$to6T-*8gD=m3%=IZ9508jm zT!ZgSvQiz#fCb1^FJ8KzQ6}Ki7A54YS#IuxQ>A*A(_`Oa%X#BKH@Y}gGXQ_5@0IIU zhy*`B_SLvG?ZDo~W~8&se5jk$qk$Aa?U(q6y1^K#XPO)F<YnZ0u$Ju)@t2`B(<K|R zIXT*Zi&DZc8Zu=fO9O!oVWRC{6Q10<^ffTiRdAOt5$EDk;xpI+Hc(tn<bU`&JrCA$ z6RxIlHmrC`>9aL}sx_n{p}F>bhif(}n^2c9-U9A>IA%-feMj@<7nlBDC9Ijd{A<P^ z9-}8ifx7=pux@HLB{m7Xtu>Q$a-xb=3hpv($!PFS18Zr2w7#E~531=y#8mx4J>}ez zDEP-B%$6G)JXkO1Gk$0FT;#<?Z4h||X>2%9YNYYq;PDwHcY**aQ1LD-tYM>-qx`26 zEbwvxGLT<X+{Qwi@Y%N|yzu&vl6SR?|IPz}&-LOnVnFn!i|8QTHdsY2&9^$lW;Wfg zwxXtWF3*AKWuzv8tEM%Jeq-y7f~IDMA7(pjlDbx!Xl!CxIVzl?t-`c!@Vm|(Il=0f zE?V{mZ?p_a@|kvuL+deXX*oORc0ht+nrQJVd-1Lr5?xYT=#$Mo*TJN6iWsskT0zgl z!L9kEE_<XA<NuU7VoQkY(bQ+}Z(VyE%vlCa+wfQT%u`Hx2j(`RIhGo|@#~mdJRN*s zGHQc-G2db3YKL76ms#SuC{p#<-Dd(dZ~vWI{D2_2^#bKY<5uX{CVOp6xDeJF^X71| zXtjU5qkBT&OB^K=FbTYqNz-K0<h~fZ7`5#n`#Abbk&OoQp*iD-2-DnNqLNS-Vp{h( zF`RR}+EFL%NFhg2NyRwuqx5`zh|jol)%Gu^V|kSzQ;!=<A5i$wx1ITtb?)*92L<zv zGbigclE!|5#lhh&udSOAb=j%L<7y8t8?0nqENw#lkzzBtq)|wMC4o6g3&f`_9RGc$ z(8?W#(4T7|93q#Krw&_M*K0tTundXN4>U4q<)&4h1N?kdnNBZ}I1Kpnq(g2cjjN%& zTTDhvQe0ejK36SS2!b*cMl%%Vsxn!tk|^8#!nbx@{;}(SrqoB8s@O#DF{qwOJ%apl zG&At;_5eGl{%B!wD!MzG2qHh^4EmWiUHFo!si|2Hnxi1kda4Zy{m1fC<y~U73%RrO zQbjqI*S&<m5sz}U&-u&Bhj~xljf*Xs2Np4X0h{$Uat`$NdY}AdUZN4xrJUOH3*37T z5D&(l=t@h7u2ZKnol`qSOy3O9Vi?7dVg>TNhs*7tX8~0%JXb_x6hHNa^`)TMx$q*n zjN*$yjSXC_Q)Wh2;hT1H^m|YA;Pp)KNZg_am=yY;rhMbb#c&b%Ddz@5jT|}gIKTu_ z!zs))D8I|W-HBBrJ*+2eJWu;sDT1jOvO*F}(Wilnd||g1j$zin0X{N|#HGnm-jaf^ z_L6hx(pFp1to_oW$o@{t+t@Q*AMP>7mdEY`4-(9CKmHRQqc4i8kKk{yF;x0W=K4@4 zBLd98z;J|~GT2Vr%lz9!PD;)by{$jO*#4GVr^&D1Mq8FnB77gBNV4^JDAGZo_~HGc zBe1J>eS^5pGR5U+x%R6;t$wAW^^L7lJw*Ol33sH#JtvyNwy)Y%E9{)6cWXl8#1OS> zBYrF!rp9_li=@s{>f!oDD_yi}b3`HUEv{F{k5oR?*%Wppd!_o$e)3oO+`OZ*Ea?_^ zU@2{Pt>FeR=Um&*rXu$<?jQR)Ejfuboz>uQ%U;f?Ush^RHT3zcDz2wxMb!RtmYD9W z9aR#Nq4L}T|N4#5)3n0B`WjNg?My%_zK_{tbF;Wrc)L?xc#mHt;p0Ca{@k1!mAErf znPV>rdQT<Go$Tc`Je_6{HI3iE=`_e=SvA+d9~=Fhcuj??c3gYSt3~K^N6czpkVhv! zqY^unCz+TbYezJbbPq@3S81pzIX0*tCN*362Q)fod`^{XpQxbzf7<VjG2I?3_rz{V z%T3|iZAMy4X(S{t>nZ{snx^KT`Q@fC-;Q3vM#lTh8h_a8OOjBloqUKerhe$aag+@$ z<?9o*(X~z3y5FCp;0-y>dV}va4=GDANL{wAbszh?XhZl`Dwh3MR0|cZ_1;?V)A#K< zD3{fqhSY;i7Bw!GW!`{<k%mgM^qndB$O-K;Yiq?G*O7jk_ZAWRPcMamY05LADB=fV zf$D#1aO?vOFf&AcRs$tjIa;>bx}Feu7P)s@2wXc}To4yeGFsO)tTUGUa#r(`<pLE2 zeF-S^y_p&&extOTXnQJtf|=XtAuU>Wgdq#q<@J}9tnhi@)>dsZ$K{3Ps;DsaEfv@0 z7ec<Z#fgcj#TYO4Rl5c!ei6|w<DNDj%WUv}u>hUiuX?mM+=Bo|@2%=r6G3+2ed3TS zROu_>L1JDNHpQm}%F+JAnq!^eb8oeG#?f1e82pfxcJ0JxC`Xw^%uoe%_$%_)YwX+Q z!|(P*T&%3|(b!hRTsTIv;E0TGr}amEp7w{>uV3NQ;ftfQz8Aed_yNE@FBDu)rHx^d zgrYk#P#0OFUsRNs&b&D9m>7RkQEuON+YF<4$gH0o{JcyPd+20UF7VqZBFPj5BCY9< zPs+6V(bV+S{3M^qvI={*VKh&~@(I;(Ef7ZEHrSGUA>yXBJP22lH;`m<&(8f2e-g&s zBqYaaxGCX{?XRi@ZL!|W-zrqtn_sZLu%KUhSKAX*Ur8aZX<2VxWuj!@|J}dsHob$j z^|EnJWAO6z?atmHtH{_5=3V|Jo`N5fxP|BQ!X`(Ziw7*xTNNPn)7(;cq$5SMSYcX< zaf}17wk8f^+fDhwE@VQTc1XVN$iclgIQ~SKU+dG@xN;3mA$`K1@@a5Tb?DoF{_S`9 zgfr9A@gnUApYzvf@1{>0=%oOO59_q+=iBw2=^D6z<nQ~&VvftGXEnXQBhK%5?T}f^ z_y6WD8v3IDcBAeBKhQEqG{7w55pcAC2ndKumkH(htH04zB~~fm+tYXwSq#3=9Q3(F z@@roFb4oXYIo|G_=a81RaTwnK->bQ?-)M;0bsZI=3^+Xb^xDX|j&gA$cmKAQG*j5e zbf!9BBO=KyU2VOy{V|FsTxL2$G1C%7*}9y+t~#6zToeoL=;*j8K6j~u2HY$%ol$Ys zkeLDeTWagU4+q-|1S<mhCc0G6)BoC&)QPWb-SO2i$>3Kp(JwNRlKKx|iFv1A@aB^u z(i#ykdFDticOUn@m{RYP+3MxV#5D3LC9l4R<5aN==0)$f@~bA?q=|=UCiu+}$Tf`g zA>dN!@vnjSDwCjht4u<aCn%`FCse@)RsA+O8>g6zSl^h+9qRjL-5tL!aH|!j`6Wv{ z$ov2sTF0_FvZMh?HOpY~S8^T5uHu?r!t`GjOnD-LFW;SbI3MKwV`UO}Y@IFfq~e)2 zXz50%*XTVJ62h6QrStYmia_WL0MaFh<jH{U!mg+5iJ3GcjG^;$>JV#hC4vi;E1?TT zfSKbpiGdY;`pT!I)G_Y8e8%GXJ(mV@CIn~8xAZO33%B2?(>2aO)#lbOBC<DrUV#Wh zNe}AJ^G(3Is-{@~2PbQb2`s;;4{kG~yo7`Bol$}ylBJ+)hwUynz+9;rl3&O!m80}@ ztXqplFkAUeLjs>T<{P#Ku{{_2f`CR1geb<0s(|y%W}<W^w`9fONBMm4(-wC@XxOC+ zzoPA2?Rfi?#Vm0?ptxG>!TDgdYrF1(W7jMzF0Rpr-~_9MG(-@Q`O{O?S|1q%CgFLQ zYrpFo3<RFNWT<1Ih&8@Xn^kY@4QIxD$U?dT(j=;>mCx!U>k1f{cG{Dn+FzBuK*Yq+ zTlzMa8AWm*$+AXm*LECLKI>q?OPr>MJLxu$HoK{%j7%B&8qO-_+{$A>21(vOdp%kM zNcCP9nhh<dgx+sHeV0qSurm#lw&*LkXd@>Y)|Tbx9~%0dL>}@|JKr~2RSy;(4ue<K z<gYlC4=F1X9R=1vC!1F|?_M5Z<c>MCI&;Wdg-N9+Yn7lNC~i@hn+xuAcCRT*JWq_f z{HGEeiYX%4%?;+p)k&V)D75A#Rm?A~IIcUoQ!>&dYW<|3Ck{6e-u#T$;qEP@_MhLK z;-5&?9c+MNxESudr5P<=@G~;`Hu6VPLn9(8X8B!I?R^j2fiSImRlx>woqsNXW1F43 zntHAU_wmRC&~7_}Udj~PYl9=1DcnE$xEO$X0M(NDV*naZ<YHZ~@eW@a@!rX9%JHe? zXG(>APS1BH7WIjU1!(>lux{ivE`x!7?yVR#O_jkfgPjEfmH_dq%IN4Q!j!=`EBZV( zbHu~&f{ICqNB@l>!?RRw^~0_-P-#(pYl*VGb)dKNW9A2`mv<lMy!*M?8p}8wDXKOk zmvNL#OC@b@#s$aH>If~@+~*G2D_JkxSbfyEmW5Y$PF+da1fs}Wty^PxY)HeqcHpDl z(Gn&WHFM-5#+z2am0Mgph`;&qfO@rZ80i*!NQ8+t5Hk;6H*c@Io)4p_K}85t=9$(Y z>Q~%nZUAsiUQ}DYeRO4y+UVar2aV$T!_6V(10$YzdR^()v*+%Sm?tPY1_o`xu<mEh zC=D1bhIFgroYf^p<t5RdU3U?ik@bpM^SV>5>+U|N!Sw><A32*BtY?&kqFc-4xAzLj zn43GTuivVaksftlyjnKO6#j;fOb7{4d6^h}127!+TfFm;DcK3nJRJoD$nhw9LQQqB z2up9s_{&3?=`g#MiX{xIy}P@xn<5L#P_!Z)chit61(BR+WjaQAHIICLd#>1+sV`*r zP!Ffkr$QQ}Tjo;=ExFAL9S)sw5N!~uW{dK#<B%?Ve(&b0HnDnwo2aY~5K%ud2O{b( z<N(t?=b6^|71Mr~z@wa(p(JB!g^M4+BiakEP@?nJ39kz$A0>0p_e5nd?l5|jmvAck z&^p6~M87sPh?~4**xPHH+BS5zUoe`O>4_%ROMU+6Ior`tJgo(DdH(|$DFrsl;@jE^ z<caxa=8Pwofh1}WGi#tMVD+A}jnIhpCHE7x(CM~+7QS3JH>wDBp2;zI#ywzUl8TUc zUKpMBh2zkVYg%Mv7*Yz*J~ADWA7^ZH-oW1V3>4!Q9Wq#d>N>Z2^%<{~!6a<LL)GXT zJgD9O$ql26_{>i%-Q@d(iAk=+Xx-I_$$2v8Sv8^a)_AMLUpvlih@$9i5)!ZCHvqs7 zFs)T?4@lNJaY}=<HTL)4P{X1!%Jj>d%Sgjgw?=o5lH3E%5S~ma5tYecX0eD1*Q+JU zjw<v@(y-p+T#(_BN@qZsahG;8%x|pQBH3N4$#eO-dx4tfz~GL9YgEaVGKXrh4rAJ` z)ShGzw$@+qnkfU%rNRjnYqtVl+GsutOf@$1_Qy{u98cK+I2NX^=T(^##^LZ8Hov>1 zoq7e<DRQ;Lxws`X(o+frSDVuf<rCEppN}a&13ceboop%;yPBF;N)$}I<JfoHVz)eF zT5Ozg>47Sj^N8(-H`6A`3H|!OWAem7qAo_d+dq@EZa2;G;N*A#X!qVdrZ2#sYybNc zj39veic$A9PDufmzIY4}8Fy;c@rr3d;<~7ioYK+?z~O70PkBv#ezUq31_O7SmgPD8 zTZr%?`;~47d%O@$n!1)N0H?nF)4?rNDq(Z&w(Acy4KVH1jl{1!Ra3Q&A8z*cQTchi zN+|d@N&4wu4eIuLH=b!hDr-e36TUvXVK@S`^@Y`Ut>49903?4eM^{{E2T9O>qk5Hh zxkemSV-2W{(lI#S{HK-FuPg4gS#aFd39Z-gZY?WUCw@BEqIG;m%`H1QKmu4th*;z5 z<fHwks#H!?e2}spYe<f-M3AXkYIwNDe}MEyLdp~zj1WGq*LT9K2ZM&6Pa5lN+W;!j z+c+}d<}c(C`&2MWs&9-tr8jQ~IYM%JS6)|eihok-aIpOwCjng2S@l1OLkpSZz54wf z{z{8xq_<Cfcv$#-tM$K00I8fiUo$i1JpRm&%Rl2)K(R0FI&;L+bL9Q_q}+DJ32`k> z+yDF8^AtEm``zDvVUIyvcs*Lv)NoDp7?>RH%~e}ITHp9Yl)Cq(Dw&?47OGK1XC42Y z@#ftBE#iFDdF7lye}2CURFMnorf4zV^CqVSLlQpy?DU647ddS*m-}|KQ!oHme*Xwa ztllGzw8Lp<S4Ku>yXEB+O#%;8*T~PW{HxXe{>~kkr{_=5O8Av=Y3;Xna42;=)$tTE zICiLf#?!x{la5RqWU-uYeatD6M696~0E>x7h?|(Erd=hM_X6WN3c^&_wdB7$IVa}! z+CJgQ>{l`qM6tJXe4z)DMd1<gDyVK<-4QN%?YrIoQChAyxsu`hUJroIz-U2n<p2ED zb{p!gHShRik~$RfL|GYjy$ucF&9SDmS&HM7Qp)SjwO&mqEG_F*2ivkAvI^(lW%UjP z?2uCd(9s+j76QJ&@bEAf2iw#9L6Ok$`SCwP{lzPXA^a5Zi0n^GJFmfN9NL+2k2GJY z>+p)JYF}lhnm|A~0-!Wn#@AO`+8d>2)coUSJA2rl_~@F3=t_70oTasnBHoYr1wiId z*h2*fY~Kof^!yqTMW<U87ZCx^YbeT7>OwD>Em_CYeFB#}Xxagu3ec|hN)H1+@0u#f z|G@<4|7S)PKQIsdh0>opZDsC?b8W!ENI=cF`NtnKuid@NmdKWt$tImPFLpFn9SUkz zAige-Y4-adIQjQ|G*^dyE!&JUM$@Yd>-e+>mBc%<5+L)T;bFABoAi3nz;hhgi#Qmg zX-W`_f3We<KA^3GK}?i4fPF^FaN}YkJI|ahG$hq~;ou^RmZi*dmdJ<?<dZG{fnWn4 zdI*&ja#W-AfrwQ6@H^CV&aQv<bR;vwIH{)@`;oP~Cu7c)y0$ZO@D(X3sWu&G)iY?P zaTy>g7CSkcpy3ZWffosSj4l!#ZqIPkk?NedyUo$2h2Xc<CQ6GKB<)vB=Px>Hk<BZZ zi8j26wl?;6WIrDd56>wY?I(S*GP)_~v51(jjNa|u#0O5*L?-jj*cH42K$p<^mF^SV zM;mgV6^NHbfX|{O-q%Mxic!YfB^*p>Jg!ZtT908Atd`{IL1lhB9tfSIqC_$Kyur*j zdqQsg+u)j-5<<Fc>b&o97Z-f<)Yz*k*L@;`!#&q0`cJ6WcFQCc!e*3cHC7fnPVdh7 z99mjt?t_l@vmfEe@*n*XF_U<K9-COeZ@pK-8nOfsZap_q4>~^GY1?ph$S8HTGNsbj zOQ%P@k{2mkoxJCUICvLuU`a3X=2x1AH2>;RB#l7xT9~Bu(l=J})Msw$WR7L$CP>^| zP~Ax#ApLYqB9L^k)m7j?mCq8iv>CTBUT(sa!o}`86HvK!X02Nw&4Pww3yaJXKe!J1 zh|N(;?kU7drPv&VPg1#@G$tJklfn!LrFt576n^{{3rIQmbHO;MjLZ9Sxew<`uGmov zIhssx`n0Js)0Xd0Fkp60cD|c*<JzQrqW}oqwA@x&#>tSUw-doNK$XAV9~3ZFJl2kc zZf&ktMnI2wnYMKeEeXRtBsmD^W+hNr{vebt)MDn0a>f}TkF0m>@)EWT*M&Pi>&a_6 z7~V4WvM{U3_OocH1X&#K^Hj8}tbo!Q8_!M>5=Cnmg6({cU`CG*EG_Pb#?ANx#w5@S z-5k3`B33UxBs|l!m}Ia%+!p4BNU}C<D^+G`yDeKD-;-$EWIGkLzFut}4JWke45UcP z+L1a`#HK{FM~o%TjJFlXd=P2$1f6t8oAWV6Dqz|_k~YKb<aa*9!MZdYy3N5#jH&{? zL0lf$)|9Ai8`?fL7sqh+(^C=}{`tRul(7#m>3lo(d@rWQGJ@o(sJL$V7*$rEou&x1 zWv8m$FOg^zTFS^}>}NAwkcn^k2H(p064hMT5^{s>g*EBeyTd=SP&PmN@^Sw2SyF)@ z_RBXLpgFPHB9&NXNsY{Bmkm?!*7kkc4k*e3VQmLiXY|+znYyK@n-#G87K-D%Sd7;c zLzRX=&!YfK-m``LmBk+w6R~9K_}jlAgt$wduWZC>eoLO+0w|l$3qoZsCP%+@W)>B1 zLC?BS=^ou4Y&V8&(k_=_3~u$OyPPpq4o@zcu_vtq&}}E_z*3S7ob<`bKuEwV^<W%B z7ObHWn-o;}iCA!k1wTMCO*RS3-JU=aP&+wEdt%I?ZO<Jt64dr`2{_beW@z!=vWm=U zG-Sy^_F@<y>x{IdXX~sWyfMxmWft=P+r`1`(;cBw106tMf(|Q^%}vdwc957|OvB&O z-yd$TJW$l!#t?!7#xqhQl<<F*)}xt4n@;SsBQMbV+wO>i-_uDk?cFe#xo_rSHZB8D z&RF=<1DkL-6q*g0_%M|OOAN(7FUU9yW6k{&j*BS&xO0TP*hTE_S+WE>%m`YfHJN>_ zmU)9Uv{}knZ!Y3B^lcxjQ%t0nZNV`)u!QzLo^r|AIl0WL2-hjvGo<W@4Zxi`(2#fV zhGb><&Ejd1m!^84Pg63B-xLJ=&o@21y`OPl@B;(wyJF5OKUspeh1rlWYCLw}Qd2$M ze|8ZgLFhx{PbZKE2M!LsFeX;t*rjz@Tp~+H`r+2tftc*MGS)4tS;jXpE0{piUSSE( zSwj(U1rGTG-TjP9<m9vNvAE`S*LEWLCFcnFy`_O*#NG@MbLRdFyphb(&r8`ii!*BT zXtB_X^-FT;ujps+jvTtv&T|1r#OZ^ckK#r-8gqUX=9;prlan-4%nY~s+gU;k%N6|Q z&R<g9YCpnG3bGCaZ5N$aw|FlDKkwWeC&S3IuCj26!4OXTJg%+nxA#<po*f-Eds!vT zd+er#oJGpgR@CV(_#Xma-b`D&F{o_@j~y<tmZr^&cpwC;(AAV^-0KYuIqdnQ!^z%{ z+|v~t@)hH(N0$?Y9(?X0mc{S;g~qC=2k+&0k;~d5mkfOuGY8?~zShk7>KPW|#?kFk zJAa`I9=r6eM36R(eUutLk?F^jS%zP~6A>EefWR>N3@!*D7gHH_Ih(wwMhV#Ry4v$4 z(p}-rNcte4l+S1LplXdqMvSbQWFf$}%Ob%-!RHZtPt&q1BfX?>AEt(U=H2<ds^7o$ zEN1YqH9PI-WU?J7+$Uw8WJ<o*mVG`tB5WNh{TeAvToW|vY<xaaAb^ieb4Li&npI>< z=UVrKFr;xH$``-iz`<CBgM^BE1%fY86iC=Y@KLI0thAu($<N1dq^}f%hr|Qwj>Gje zs;upai3!=u-UDEkHmtl$z=$Q!d!jDe`P2mo@DbEk-QXAfDd)qiv0}0P<wZr!*zur= z(J|@}>UDsNk|p?;#f{sCJW}+C_Vt#FR;4n{h^5Ii30GyXEAK+8l>!k9wC&xt=|{ks z^G<V5%Y^PT#6(?+v-2aj*33e(V!A`RDt-7QJVJodXU(kQ!XOyoS?wRf<yu9F30atW zup;AQxI8yE=zc{-3;x*hV$Ge+0Rqpo8ACq{kbjKn7{6!>4fX5R9ogQV5It>cG~b)f zDU7$KK0@mzN*fzxjrADL2jCPw@lo^09w&udo|*0ATv)ouKMP2)xbL^=4lsJP$+dqD zbV%aa+T3<)<e6x47nuz{hr&PD4PX#BH{&~*gy9l6OH%p-ziF+MjL32HpEdp_O#=Qh z$4G$ejo^&1!vN1z@)GZHe-Lv_gaY}rL+=JfA4`I}c4X^%VJkUjX^#3$l*4}WByH1W z)RDO_t(Q1@Dh2)^Ms{sbzBH=gY{asnd-cOk$oY=N%g2Ih+M^vvk9*AZmIr2YArlH} zN&Jxj1`g?UT}&6izuAoxP}!9Q3=u}smoQdo-QLY$`otX$&sAYgU}0d^_pCJoymbUL z_h)Nc0qQK`d4xVimEK9~q0r*iwp;8vYr(w#fi&FDPO~F$_hjp*_{Y$r^U#EJ3jxa( zp|z(ud*O@Q{Ts}Iw%tv%X{PN<Mwy~P7RR=Bc1n7D+d&7Aq@2{)kt#zPUS7O@^&8|f zKfKlF9n%ZjYMtQIG+FbeANnpT3C}gbX%s5D>9V#1ZSaNK=fcOQBbqX`b5s5yYqK1g zfwkxZc#tj68?T+aOyMTS!j>0uI~VPJ_u${KL+~KQW{dRUO#l59!sQeT36T@X5NiwW zD~5a-XGWmuOpEts)bJr-+x#WJn5FIAbLP!CgkS0W3AR3$oQsi)2?Gqb=jf?*<jE0> z3Q7sP-l0LgEj&I`E~(j{IaT<uxGb9cV#LssW1TzZJBF}P*HdgrB}<>D#h8s9LZB-Z z7Q3RQ85>99w$>!dO))c6r-HuYW(Rxu>%<d|wl=?V?W3XI7-_$V?tN^I3}TaS^=}BD zm6QP%7jih`2p?EYBaM;X|NfE=aE&q=H**bQo=IAtd@=V;9sLba1jnP7P)t61Q|=)) z3oZJ>nP~?FY6NOgT`I(obLGUYq+P|uL`~iN`LAU`3NX9&7C2Kxru(<Q(AM1K(DKjc z2ZxlZ^HLTp?T4lVQd|;j$@&7Z)6yEVUZ=uq0-?JKfU6igWLUTi7!R&Nl}j>vjmj<8 zF)+D8Cg$HbcvSBGQo@9|Fs@J-RGu9jWStEF{;fl?i_3p!5bIw3T8UtfnU`MvD5LRn zDMglWR6N;JV&Xgqc!?Ou*Pg7b=G8v;C}WdqTc@4XSQ)%`>AKO3<;mf>q<BiW`32xP zlY3YShvuuc`{S3cMRxq`L}-Uw?$?#z&Zapk4d?y0rHy-zSI{Wr=IC-QgXGq!u|V6C zw&0HEONkS+4}0|Y*M|J>)35Tm%Q&6<{0(=%Kxa*$;wfZ2PoZlUUK%XGUa6hu0v&hF zN(aPaBgA+imm2(rUCvU#Iw4mccJNc1HEeaiz|rzNi;%p!Dc&yoI!oHqu1~DCtKSm2 zkIuT>GtJ^EqT6l244sIn<`kNTk<m-77C9`pQ-oPtrZ!#HJIb3b+*6#5m=Hm>UdATw zcv5hAp4umpX)NFt9B@75O@gLhT1{2cmx%YVTqCtv&p>H0zf$@1^pe`$hl4wLjeS?F z&Q&bv1%oHOgx3|L!ddy9^Epq5*Plm}uz7aikW;~bj=Kgz#gb)-=b^t-1S#It+paCY zg#`qS6rnVyL(CvG3;50b!n`Me9S@Y^t&UT{oRmx8N?MgPImn<4G;n<!gXPFN^=YAJ zH&GrCKdN`6Gpfqpg>z}5t}|$ctP{?U#9B_^aaA=JH3A2yXeOV-uS7MjPHu+YrYrmF zBSgDMhje|J=RO@6f~QiGW^kYg!_J`2m{Q*Pm^*>jwAEdF_vbgl<e6^1Oi<rZ-?<K> z;@8aFZh)#9x1Cj7QgV)u4L$EJAz8kEvX+eJ$pqNiJ)y$)8N@1;M%CdRODJ($vgdCw zW-W<1CwArt4)34xc<)Vp<Hz)$^mpn$+$Iax&1Z0H-~f436>EDire`&q;T1QCWKRJ| z{15zd2l0-sKD9u&&jVD@j9-jz(T+O%%y*9`)t+`>D$${N8op24X<5FwlxUM)+4ab_ zZ{cBujz-ZJ6rXJke3ja`(hu_|w3uG<UX5{wHSXdj*^AX~$XQceW-TxWv<Wh-H&4v@ zJJjxQWW2HMf@k@QLn!7Rraf_JbECK}EaYAqW7a~#yH)#5{Lw<3_u%y)<uN)@M@ZEj z7HscmQsmC@w9Pu?$?*wqxZ)SWB+){O^m8}FkOw=qy@J4*p9?<>HQCzqRni6XFBn0A zfG|#)a%|B-7TZF=IE04l*yAq@EBjcKylS(Qim*olA-ppK9Wl)C1sMeNjAWsQcy~lY zCcn}rQi;mSlCY#wh0o_i<XYqZwp&KB!EP7-aoMdu&n`_7D{dSJS;{G0i@8luAfH`F z%ABLe%F>jlsk0u$PPSLEs6;bb=u}fH#ytO-$HuyqISI94iQeoC{Zuuab+M4;dAb{W z$JaQWN!HEVc2@j(I8<cZm+_r;X1Tk4X0S8*bq&t!js0<@(Vio*n=_;l_j^sBiSN2G zD@sj3Abi^H?_0c}p?1vr{?Pj08^`!qa_D2S%mNsHA#XTs@S-qF=QMRc9n?(EaOy%O zI3hYuv^k0n^pw5j@`GiEH{-8Q#Fg<q`a2|9_!n)zmmK&{QKH7=FL#u*V{A1$Zbz$b zlP8<eO9mvQ4XJ4D%V>kBbF2<}cbd1?TlNV`#`j5O0W00Bg)*j?`%cRwiOKNyheg`x z?kE`>h}YWPo~CA@a*;ePDag#U2nTDoQd{ip*=Q>127u;{!+FBXyEeY}=6@!g<M3@L zeCB!TV^PRUX{fey(B539ZJp%3M$_hjT^)dmo49zMvR_t&;8`)}oypeG)MC7@CMoyJ zE+ZyZ2>W%R1MD)mE*!N9uXS$Jf?MxEDAcL9*PRf2YDhS5WecS?-W#E{ob<rCL>LJh z|Nhoffi~LW{jGSDca+j&?F%)9huiVmNX$TH6qwQHv;cW>`7LGP@)S17VogfUFg<(r zjoM6Gz094IwoUF~MMQk_4r;Px`#he1mU3K7So=|_MY9Af5@0%K<SUwr*Z#0GS_#fd zJvPf$jveS;>YQ?yfdAxBF^L96xrbl~(=7ojO^_#mgu4fY((hmIE~}R8pws`ZPNma~ zsl=BCFP~uSD<E#x7}KMPP_voI(ZfGY$u<SuY!g}x)xZCQ<{Dg$sMPR|C?_{@S@aK^ zr6$23A&^#rS}3yVRQ+VrA<I38Brc)VDsp3Y`xMuo+&-X@m3T?_*|-+Ll7J!Oym!Vg zBCb^B#c%0tFDRuR>gEf=0wI&-ML(Rhvbpw0GrX*nlEcIW7U~ny_+Km_P2a{n{5{6h zvgKqYseB=YPj3AKZHA$~h&8+OhPYv8zNMpAv>PLNyN!3w9_+)@WZ84x!+xm+p(l%! zEKp4k7nSsc;EkLEPje2MtzYBj=PJy;zorAe9m#_z`0A#jlxTgrTuo%&3^h!(0XV?M zU)}ER34Zxky2j~2?PpOc*)|)Ov@Oyh7rpI-uXg$B-g+#lvR`r@7o)?1mhY-i;o24Z zJK4#k{j-*Ki{<T-GAMkzJgIkTdsgCl6M8U>Sa*?+j1v--in)5@#-L`O&)WPfN5qL> z_UW1V{WVIpwI*}pbGgSHc9rjW2{SR)x}C}zwjAG6?!;i-Y5u?}T03Lv3&TpLqaH|Z zM^Q$GM)_pAqL#+$@0R4*Xsg+!a8Y_CqHhTFTh=v#vem=o|3>LfV@kN;mH8kBe#%I# z*`D~GiO`_65*Y0?!hkUAr7>67OI4*OwEN?Whh<>E+#h?FpwUjNPrV5d;a<C@ntiL0 zskD-_$r2R|#~(Wb7EXpkl{~Zy`-S1)D&4jv4|8J&$8>9IAzk*ES@{=S;m6s$ejOF6 z(~nqvsAIqL4eee544*uOQXRHn%3O*~{YfG{>J2Loi*2|*5tPeT`g`?%q?ht@+UBcg z|K-Mi|AWe7Br{d?3vE!XzEE+o+7Z!yrAXHuxM97lL@-oW+>NnEPnP6-74}7x&afq8 z=6ISE7J0q4s)suw*iL&Yb4J4rqWuq!`da6Mc7uD+I8<8b&d36ckK(ZyS*AR%%emax zSWgzPq%>d|9kyb0eaQy*D`4VCYSJ8sB=z8y?O7WuU(lS}%^(JSXPfKczTfm7c2!Xh znuQoCgS6>F;K54ZE^8V^$zZoj-zg8Yl!~EuHJuXet5G&MUUGLLGUkK$Ke?__#d+rk z(pn8`t`noVDkaEikNvhKmRz)S8r_1#U8TN<LE4ZJdGzGzD)%IGVwk4r>@2Lb`AvKG zbgg@42DG+Jl|%F4M6Gnu&vu8tl!@QwQL)lze@n^{d=rgXyP4-{L6=JvIROF_*&79s zGU1$<qzWT?xJ*n7<m1sM2Ma?p^=Viky>@5EbYvKA=ZFn+pXg=R*zJbkD(fbFt66M* zSyD{R+-H>)@<Q?6+%gH%tTZk59q|D9rNQYbK8_oR>VEZ<m-paX)~Lvqs-?2~pYR>? zJe~-6-e>h6<)tY<^X<_`lvp`qH@CX)lMQ)$5f)LLFTK)KaG1OBk(SywufSl}3#*GX z{TcXC)q=8BT*jjsgof{&({NwioZ*E!qvMp~%!I>@C|HFH*SK%iRAGD6NK>aR_RP`i zY!8KG=6mn)&(GE$Sl22a0F;6!{6QL_cp6I9xF=?Nn!GoM?X-6)dP5D4ZEX}bk2bkJ zw<ZnG!JRNkNra*SDcU?E-{kye+-%;@_hb^UE5gAe`2$gLyAA6TVM`mdJ?ucpmTnh< zQ9+t76ew1y5W%@p@i`jN6KyK9(1l#Tb(M5Qg;j<a>7Abn$9&bURQ>587onjR1fo8k z0QSJ|s+n9ehW#{;8T#hjiXQ$3Vn0uFtHJNXDNaG*H2qRnu&ICbxlGl%x85%$@*b4z z#V!l}5Z4eK|LR!(HidPJ6ojzh&mHj(xy=3wwc%WPh_r9lG|%Mg=n23gHpcA5J7;Mp zEbhfce|5%H<OCZxRtIVgIaWn1&(JUHbcRyoOVSz88$TYmO;@5i+oa(&OQ)WKFRX!{ z!hm`GVfxjoYo|V~>GEW9>UbuoZet~IC8B^8)I90Q+!Q*LSDJGD^1K#06Q^bZa;@=( zyiQvbNK7mPq4E>>p;+X>$^F)cFD8Wc0&S4qEN-B9(xEGiuG0S|ye8RVw6nEuuQp zK!}*Vo>ivgZXG(xZHCgiN4a1afWIfPb2o_%0sUdwTC_Wd1}C&~kW(i6l61O1%{I`t zk@2Lrofe9BAuu@bQqYzIvAqAvKHqP5@#DcIp3Mg?g)w<l_=c6l+0zDC{EDoZXFF@G zY=#lyYFbeBL**A*SG8S^j?#Z-X|gofWzicgqL)4-TugxbQk>REbPGfm;9Q86`n~r{ z+e&KlQXuu67;JDB8S5L!-wNnruBJu?v%}+0CH%|x{!WC}^PXiRk56NjeY;i%o{r<> z8iM^^Ny&P5-tOP83;A>qA@1&I`l!QN*=6cBlHQd7^&?D?xA>pWk<SGTv`$UEp`xjq zJ9;fOkIVETPQGaYKnmr2jiw$Vwe7_*(V{`Zv$6GRNiI-W#Z3qzs4cDTJe$EdI!R*j zTk93_X@BW0cz~Nn)_&d{{2&%={;G6qqb;I|8O%zN#vD-k9Ax+5E*XHZg@dP>M=DwQ zpJ3Xs3==wWQ`KX`0T}|65)}w{Zr!Adm88K_>Bq!hDxl{MpTa3?UhK3&&kkckr+qg{ z^=l~x$~Cij_}V-8?VH%UyToVRnwRl^a+H8V)fjOI0f)r78jos}W=pvL>(sXZ^cr~> zokcaBl=E?O0qI_veo`+_eh&J9u+ilYMeJ?6w@6OM=c}6s@eRlXp><AN55B`Leqw=y z1qeO0mQ9D)l`8roXj1{x?I`_#L0A%O-E`Z}6)6p+_6v$D6z#G^Wt9hp*a-FP4AqDc zGRjKxbxF(fm9uFn5IVPtxb#iF4zKEIxwEq>6_{+QO+|JurtNDO8a7hocq>9hq*-|` zxbLXW!D=HJc^)J}qm0r*7mpd+!)RhOp*w#zIt9{W2&WZ>?fhT2b<Atb(A;JqYUwlD zCiGz&()qkb-pZn<VgCmj<#Vy_p-Kzqni$rk?bB!oCiv)2Pf&E+eU&~3!f}p`IY=H~ zKNrQdwQGOr@#AchNrCohdu(Hrue$%0xjuWTCMe|5#B4EEXXf#+KsBU=31Jtt^)ab7 z9`eQ`g4Xn*hu>_@4SO$hIEUi<f#L%+N7UuudB1?gK^A@q7fJLF&2-g_IfvI;Qf3@A zKLq0U!EMyA8}i3md6PD}8yh~d@A$BOaSc%=SvKpnkb91<ak0AaQ6(J<*yL%5_wrHb ziN2Rhafo)v(y4bW&(2=Vz??(eOsj6CHdQj$-65KyRqoKR^yEps+*goc3E3%vMAEb* zvc)IfIhEw)m@7lrz*(YZ+zxNK%Pw=s8U;BZ{~Vcp%5m_W245exyM@hZSDTqn^&QFa zbJz`*4j7)E4pgSi!%wCTWn!ZRE+-;TESb{6e6kN3-b9S26lC1juCKT5fB3x7AX&f= zE{^RsDX#qbBEr5ub;7p*YTq&4!wRBHOI1-=H{EA_Mjg1J0StPx)SU+fliSR_q1Vmu zczB<m&c+<V&=>bkTsvTGD&>=*+k3DnUqepP9C)P0PClZGZ)SDs*!RZ{af^7+{NKGw zehQX^vPB0|-!$tHQ-h$H?Wl(j#RB`h?Q<dfnOb|3%PvT}?Hs=>U9*e|i>mw|62OAE z!vyd}#K|nw>Zy~Jat_s1a#>EN{1sFg#=RTkQPz7)<jC!KV7++U8;>?uot67<mmh5` zyATN?&o6`{-9`3#4~-jK2Wi5=l9+nvcwoZOD~GyKo}{BG>W)?Pj0FTn^Ct_R<J~!A zDS+6$K{y)o_Z|c@*lnX^akAL@{Z!M)tk|_L5O33LL8R8<#bI)2k?W;-L#$>>5>yMz z7coLjyu@;`;@9qa4xpE94y$q0)4%K?D`T(PbIy8|^9kG2GnMB})NRfe8wD-&ktuT= zPS6nCdXEh>WS2+QZ1^lqhnSVGcpqLr7_WmU9_x-`b;xZAe4@RcTw*h|OVJ0at7#Eb zADy)%^baieA@^zse5di^3ul*E0s<lI-T6B)stq|~WAAn<zl)3T6DGh77bz~|1_>gq z@f{ARxh#HHi>({Srec9y2tY@3+pXs|h`J8%Rth%aYv@P+YS2i&%M>~C_WETS%5ctm zyP2(KxtUxlX^e)FJ*v+qdB?d$97&j{DO3H)ImLg8s%Z!|?D18~tq)wme0jh&8CNYJ zRP0E9UHGy=L*FT_mV-*9mMV&^UCFni^udg#quUFZkB;a0TTWBA#<IimVgP{dDL;?2 zOia(W2pQ|cvNuG3ZTaT6fOAZU&pN?i654XnCbuyT`kI0N`J!rT+?7FCwvR)jqgXU^ zt%>RP`0_nIo~c-(T|<cz?}52-pQ41|0@d=<oP|sGrlZVoGji#(QC#TZOm3|BoAZbn zK8vQE#xzWzI04GK+!1540FLrJCGo3TBqP)>g@yAD@jn>g^>_6cWitjz?C;eWI(0a; zF~rI~K`1QKw%~JtT!cN&+}Efk&_^+^Fv9C}$tf1Rb@}|b^FyvHh#P5icj0njLGgp@ z0h+%+nigurFs5KwFXq9kHcC&)5fzP_`na12WMI;-mKRtu%gf_|94^NJX<t}Xp}5a^ z&q77l_$#ZIAqe&;76x#QAT}C<zc63VYB(UHv}u>YuLv6-F*?u%tzam0>d6Oz%rJ#? z;5nu$2ojFUN>7?&bn)6)@$}i5txJEf?yOCGu|}TUe7OJK@d=X*<fVw2W#E+0RK)bx z&*+8YiX4c!uA$%L@AHm%QM;|flJaIgwfOZKe0k<kgwHo~!7tG$sk6NsBVv9{o&$4! z>HDLHr8P|_^^thQB=OXNN4*`F)d*zAIl}jSUQZJ0ZYvAkb2Xa?EgXFE<#$(ZJBfrb zJ7n;DKBymea3chHbZObNS-p&#lMF@laOB%51m-gOyZ1zkA%4&F%bX5zq@u<;*dz5P zf)PE}FEe?kljpsDr?dwtCAd$~HeDbs%{{vrVwpv)jZk85xD&X^rT0fC1?$ia=NdN3 zq?n9x3Ny$E*_Zd6ELS*-*#S=E0*!WmZdaGVfjsPfKZ6P3L^wbq4i<a^LDTFS^469T zj)dmo;y`Jc)s)bh@?{eK;B`}LK)1LKN$3&F3XvCCDlaXH$S7DzMU<QOX83;lR&y&D z6B>GeCjsPN+$4|DGY;eF0RY^ZH$_s(aP!B6Rz`A5oaA#utQ>`o&5g?y0^WOzA$H1b zr_(VIxnn6-J5$kkH1iLT7q^TshQPi*bcM1ZqhVJ2$IDfVw4Zq166d%ckYt_xDnL#K zw{{h#vA9F09GVt6WPPoOSeR~gOZG!`YYRFA4a6q~6l1NhhN(@<v%(gp)#BYK@mpN@ z+WcM)*|Yh$-FC$x)x%TGW&&l_xdtOdd!9P9&LbVcYgR9gHGP>&6ZJ&$xc!drRGrG@ z%DLs_$F0W_cJn^?wA^`E<w*shiJuur!UMpjPq1buEBPE@nqfCwpDGq}v1iDJgkmHI z0MB7PqWB^zSHxairsU1Yq#6EZpx3>7JAnQ15~Bp5y9$;~;aMO5iv{4<G_5_#k(=e) z2VzY8;b{MUV~*sDR|%rzQc|lxIS8V_PQ-8R?+qM3o*PcqHqUVGu$XoN@<-%9Alj*0 zPe=-i-?gaTnSu^gE>)n*h(O&P<w>pNQvwWFnmlKzC(ofLvI7IIKQxl=GEj|eeZmB) zC0z6PRm&$Lb7V=YG5LeyFpWL%2J)hT9J=Tt3ln7w`U5UQ=B|MYn6u`VN*<97l+vUh z@AUe&MQjL!T#S*;%gP)1_Sy690J%XKX2R)w9a9Zf|A?LOQM>Pg>*vC6xi14;7nicA z%zGG9WV#39Du$vTonT{|BqM9twx0&VtKu82KeJR~cAg)U4}^|5uDtc93Q0`VZs_~@ z%|l*?^IFxQ0dLGUkRMSV)5=Kr*K*+0ZpiK5Ml;%YD%f|kmJk8Fhbi2Sf1T&>pB-f8 z$mJhW1)NL8eauYVmW$<y<11ac(Y~Qi*j9IF{u@8o(Q^O`YPn2|O*W&;f>Ny2wFG-$ zn-i=pPb<h<gs0P0-EJ{Eye1rs#nP%Y{`r1XYxuJEyu=X_{-NwgwKM?6%i^$+l|72O z)6CZE_<aXiBPj+pS8^t^a^wAO%2>&ZKYp3!!@c)aMz3O|7_~YxnOpy(z3&WbD(%{h z!zean6af{1QAUxj(xmGsGAKob5Ge@?f|L-Xgc1l?UX&s*qXI(cXb?gOJrGC&BE3dR zXaVVv00BZm3*>CRbG|>{b<TI4_xw6P{KvJ~CHvXyS?hl8bw6u`v4O09IV4mxeq#>6 zOtIzG4nJUPOGFB{{e3hWdD^%o$#A>wtBCbs^>PY#unq;=K8DX=xBKF^3%KwYQ!!%9 zhJDF#=L-(Y6+P6AdC{^RO3U2E?IB6S2fjDcCgXHBUI}~<E9w#Ej-#W-1`*Xv<6s8w zLymLAc80Nq%HU^Fx6@s{yndlUe%WwApBy#1)n4F{W7B5er8~c%o%V3xdW5B|HqG@y znV$T-%byiCZEf0x_qA+7G+>D%gi8UREW;Ma7bMSq@ZxKJmu`Ph@%pZ+bjD>wyQC54 z#XB}UO7pD90Wazi{Z0|XAX-%fS#|ov(jItqj@PYRRMKXp-#dTiwO|&Pam`I&5c5>7 zmE;{d?>t!Uej!7An<uQMOQ>Ayy#4*wi=L}*@P?{qzF6qZf1Ciif+)^ZbYFti=;)3< z{Vu6~xHi5<@bVq`lA(6`TQY9h42XL#KKv(pXVFes@32fL$bLWiY^p&P6*yeQ7^u(M zPUuJ-9!b!1AL$;^as#r(M<i9C<sN-MZV2Ugg*$KOmaxO|&~n`~g?fmHPCNhXP3?fV z$2Z@6dXjRh4N~wnFitMCw|N}HuRtQXw9FGtvlq)gCq;6&pWE`=+FDKG&ZY#t`rC=- zw8Hd^$w#frTnYV47~|aXof&jg>Z;o-$Js%!Zk2<yy{%RCv+;KyPwD#K8=i2U|IQRe zXKxO(b53<EeU>7`^A^(+#N}=u#TN`zN{sC-`VEd;S>csh>KH5<(yLTHP4+!-YKTs8 zu;m<#vKUSI{NCm30TmofrW#>oh1lq>^P=7$U>e3N9*s}De%<&bO1rY?ez#_?_8OC+ z?voTl^paWq{(;4JLi7TkqnZXqqi>#6kWwC-XaEFVF>+{t_xAB1)#1mwyMHrrDo7r$ zKOh-iU5_<&Y=4-V<cP)>RHeah2{(iRqi!ly{Z2c$Fh!D|u;1rxlR}e(r4i;)f6WY{ z-%C%cuAkrqA9`~C5qg43<p9#G`%C;)c}Lt(>IDT*L&-pyOQY64sp-Mfr2rWe*tHYy znsX;7{D$i<b74+maG^rdQvcV1mP3<GskAN6fqio_z)=`&Cj;tQQYU2>@MvU!27E*y zVmAYVxwlxX>RG7pbzNtm*oxNgQo~cJ;-KH7fL48f-vSD>{Iyrh=8xmR|K9DD-7*EV zhtK~2>M>kD0rUs_uczfT7hm8{dqe1e9IvG36QI9S5(dGKe8Z|tk}ylr;W!)wxJePd z+f*3z_mj3VEuf*bN{|;V9}JX!K5cuSmNO}-=2*O19&vYzmj?s@w<dx^xd+$th@`fb zrWZgk#LG-ech$c8+!rIMw%C*FG1q;AjN-K;^MFrQrA8ScdiO17y=rT1^##>d5a2T- z5i3;F$=5TahSVxf_{uP~BW>MxJUQ#;fiz^JRGiLgW`!DMcDHGl*Ts@hvrXK22!k2= z@IMARKAQp3kx4baGYeJWHEa2^Pbv3;TmddLHzO22OpLwGA+`~!=MzI%Ox6+0B>*I_ zb=e&`CL(HK(|W2~X3ox&rry_9rM-=Erp)(5B`a)qdFlV)P}4V?<*COxRcu%_WpYG& zXH7CZU30eKYm6m&k~W))^i4b_sq7HC@|2S1IT=~c6Vyg{ckKh&f41dFOp~hKFY&5n z_<V?fcuhURI3{VAxh|+&Xa%bEh0@9Kd_Fx%;;L2TZ(=@EcgHqN`S}|OoEhqBg7;1V za6SYEJ>|WPF>;U)x!cesSb!usgw&@sBrE81*WRjyO*S=TB%mD%bzC*4`g6_+UYeoN zoHhwHC=a;447lFYyM_}U&U*tV<;_{zk-<ACqy3<PJN}OHP$+Z<0B9~+=uvyiVK2J$ z`ELEyfnF8@e(Vaw0o`UQe|C`In6a?m($GNe%x9<UlI)4z_i>})V+MfIPBt{CReD|j ztoy~V@+O2HkbJ!i`^|Q?ZH#X!;gjt(55(;yI<YG!-jY1c+lCYrQ~~mwz`@|v@iz+? z^5ULuvc}ZxR=A^v+#-b)N2pmHLW>&i*4A5jctVUPHaqEt_knH<#5~x??FXu3HU2+# zLynyp5VYi}hY6CDoJM8BSCjuj>Y1fqcG~D>hjV&XQY^!Et5?`E)k~*hpI*8D@EPb4 zt`A*2A5jH#uRr}y+q#!@!1B;pb@zz?GK$OJo~Adg^>i6JRu(MGQb`(^jj5(lsY42w zxTr;W#5%@kR~_pO2-rBCIw}|UWS}?*Au3AULTAbAX@*14@J6I%_{#PbG#5#9DRu|k z-@;b;!P|~Ie3PwpmQ;_kN&G<g7$ZkmMfcYn25Sq$j+3c(kpJdj3~$B88_oRP+8V7a zFh|d9Mw+|0xHLdt{F8VGbzt9fyv=$8_Mphv)@p-ShSAd8tI`1tKi-J47QP@452Ivn zLQJF`n$1+y4F4GV+os^lX?4^sUVEv!YZJBpjfl={!TV@Ooq+b{c#7a9AV=lS6$dm2 zXGyYevh~#3%=Sx?w^QH9V$Q61Hgf!Y)9%4wVSr*z+(;}+CB|Hh%=b738c6g?R+^Vk zwIlh@mqePZM4tL!FgQ>YFk<;64SrsCb!gYCOi>)0GpUvmnc`U0HdP^6VEhKEf7r;7 zegYGaqF+3fKpWC{Jo2&Gtg9;p!}`}^W1Mnw>_IPDs>F)|tSfl$8AwmKT~!GW$PTVF zPg*`@c(AP8BvP)0!3%GeIzH6fKu!Ehq~@ww7x53{$oXMn{-XD!^m(nm{=#T%fw_#k z#<S~!3d`GK*1)}ZNJlsdS@%^9Jt-ei@fi^C?e1*bfVq1XxHju5NiF$X{fxciuXLO7 z88dS!)CJIWdEgS#I3PT1_g}a#Ox;<qI;^4#=s($^V^3oot0t!o4Sq|Ngq<C}`Z^CP z)`<6dlG68`K!1^T(K0fiz-=!2HlaeqV$k?m$CW~)mDQS1VogavAM-3|nVq}66)%J4 z&pS~5nP<#q*q${{Pd3C&CA=rfCYhV1@j{2!t0tG;6jGLW3k*d?)Dz;d3;<>Vw*!=0 zfm|+e3{Y1L#_KI!zJmF9#m}NeiN%tdX-|_C(=)RRl<WA|=dfGx;DTD1&#qFH>H~HF z;Gq}imL6-1#KtxdQ-JuOR7m+erAZE1Kci6;{C78W-EdDD5fhG_H4qg5-e-elL<n)+ z0*VAGA60>sEU1N3u^S0$<eDGDMjO+6bVt9QOmlkj$cd;hUfW&3$P~g>2w{SCcqRCp zUBt>{<2S0M5r?1O-*I<uo$Mg#zW$Z$wocl`Rwt_3rwf59E*cmH_;47K!lEM!M0<zj zp$WhijWOLvI5VPWu4O_9t?pgz{6T_h@}TdE-CD<Dc~j@$8c(co6yWc#_y}%Vowwu8 zTXBcJHV_$`wVwe&O1UDGpA~3KYMmZ_gP?9_ZEbDMJ&#Guf{{ZCZLI>?ui^#3>K5NB zpS7MEJ`><<GQBGOj7F7Ei;*<q4_Fx}qO7?~(nfpK!n)ydP|c&}A1`G2@qS85^Z<v> zkd*}B7dAGTCvPo$JLIf{S_^tSdY8JfIClQ8^0aYJ?@B)aOVQSlfO;=Uc>_#m$YfkY zO)b~kEs;(;**ftiEYH_+^O(@loEk;ywLKSJMc^+3TIxONC=i4S*rh_x@pbQ*Lk@v) zUb^E0H{}lBvg-Mei*3qT<^$<22fni_5gM>j8=kt&adaFS7zmoyBsS)35ZUOa!B+=F znz7CkIKj?%SJ>v8l~%WyXp<EsK;Ss`$_|lrS~X~Ro~FwEQEvr<7R?2QlWH~+1`RI9 zcpnd&IW0dT=oSM=s9T(_B+APBuN>O>zLsIV>8Efi5FpeqB1ns)L1$6jhJXZ@Gud>y ztD^;W&%WAY&#PI?fol6Rw{_=%h`&kp4)gfBaizgB9niq4?RHnwJMXZLaO1D}Q$=C^ z2p>eG<Tp&{W~r?1?#G*VMs-eDwybYA%2EKz%_xW#d_hD@mNZvmWudPqMYJvgWKCg< z99e~yOF&caoh?ZtEx<Q7s7vT90PG!mXj1_-ySiHPm3jf_&{Xq`-qHTQ0Q|MgaOy(S zS2G#k?$JT`+0Y-OSH(bZaI0%4^ppUjfp9CV?xkzj@LOLtpU=5{OzDu=qMZ#{e+a6m zq}25G%&1Q;xU5_GVP&N<L<_aH{O*zU`4nvSpu%Vsq$|Dt^|8*aZQY=iHbPB*clR|^ z@A99LFo?U13pmkpDOc(6Q(E%FzHwl;6~n#1#<)u51c0?FRBYkCLZ1H()cU_fWdA>( zme=fsXEIY@w)X@>6C`mZDNhf&A(M##pc~8B#n?6@e|3RI@ZMa`O2{#>wt?eUp5QQq z1kKpenZmI71X2<V-?k4#@TC1-0uR0^BkvDv*ZK`)dh3R@zFqp4SV3bPQ^)m515XUa z#Sf844Hek~Whi9N`>tM#G+6ag9yU>s&_H$B%xK$tq6x*<+atM|&fz%Pip9Ul?OiDL z>l>{Ga~G=0dw1=P;rRsb6fI})6D$(_%=Wrnb>d;AyRN@Hrze*rhTC~;Vv*(-Xdkbl zXY$Db_#v;{QE_p5!vpZmfifqT$=E<^2%(wS>5`XccKw&<;Sd)UftGwOmb5jJW7(&# z9m180Kiy4WODvTRf0Y%qzTCng9EMVpQ|{P(1U(P;wiUBBJa@}FvbN~aV>BXW=w0!A z)gUfA%^eB7+mu@SE9gV>#0@LeU+TF;70l*W=15{`gYLX*2h^|YrV=Js<LW+;w413# zY}E)<v>-A=-f}K^_(X-7XOGem=2A^~Fz18kB<T4`7tf~aW8B(Rl|Fmoey5)3gjgcu zeV3UhTN&6smU%&k;S1rmrZhSbSxW=f5PDgFz7^-7TGk=Zz+am_7TRM~HQQ7@ATiW4 zY2`^D_53|I1c;`8sZ6FOTGNfLlxxw+BuxN!c!lyd!JDQGKTz#O_qg9W7R`<;dO(n# zudIlTSOqK3GiNvqzdyx5MJ=r<>{;uvZjI^r6bEf4WuPq7xZbanJ_Q1iuKTICzqQ4Y z{NO<Vz?pT$Bj6ssO+b~cBOf$pqh2@8OnqRfG9)pu(9f#Epl<N$WXcS61idc@NDSon z#l|G|&XTruZ-9Ov@e0IeK0En+j1QMd3R>ii2Zo0dtDYYN&7I%8cRXsoA*tGZ*<ZT> z+i;h&?%^AL7kI?<`-X`Nj5Vkd<0QtzqxAj~Y992w@V%u3BVZjH?Lc&kGPlG0&m$^V zoJ(2Q0qbgyBcWq5Ks?VJcDk*N{Emmp#F~SyLp+w!L&)V?NI~F9A&}re3g!t(#nqn` z2<-KOSO2%Gt^YE&8EeyuwH05U8r!-|53%1lSkb5K-)Xs_Jqx_SoBs%}OX<}3HnhGL zmbKrUP(oH&#H=fu5em4-`EKcN7Y7`&S5vPQ&i;Kv9KHP^X}!6xS3}j2c8wL$hhtSF zFR#qJ7j9^O+7px1FJLvg=;-=yMF|P7vHvkw!yzj9Tb~Eljtg_83`(wEoFF!x?H6<< zsdXYd=Z=fZOY0RaPa=t`A;`z*V*~BqF3zFQs3cjxht%WsifyfT!ja9pXk3!^h`$MU zHN`74I8(W)QDJnVp-1iwK?$Ct<1zOm+W4++f^VxG+ulV>+#hI7Pa2pyM9$X3zVc8W zlIqk&E~l-lWpE}^&f0&z$z$nV9J_Wh(MEeDfW7K4s|<T!6gn`Z4R>?1tGU(o8~pvz zLvISp7++fB)UB{J`hg4MJL`-b#U>l~waC^NLZ~P46R)$)1IBWcAO-NqC=v<#CgaPM z+ea(z+hH=5q-nb9nwryz$~Z?-K~^Efy*X3nrZ6N?GA)0BY@hKo!ya61C%v^r405kG zDzqKS(WgI}(}K4FFMbv9W7b@lWXyR*2Jp5ojaejT)Vi|X^u`O?^M7_u?eiQn*dAGL zZapiId2(@}Kgzt@<#y~B<y{|UX*sY+E3oVF@91dj)bso+%h=;v5ih=OZeiFtDL)L| z7Q$8Zc5};z_H7JhZ#AVCL<L?7o-R5k9<nf^he5#G8QdSyLF_}r+|+B7+2+R`vGz(f zTB>#qg5?hhNY-f!F~XQ9J-^slahp32BtWdmH9n(vJ+THvMdHe_foe-?q7r+irqZ>u zM)RgHc;Q+e{p0<F1aX%m68&Rgj<_3t3T>|scy}4TI>7tF?5nwLgO9WH4uX4_mvt1d z<xn;syo|EwU&h669ssY+TTxKR$?we94|Pgs3-e$!nqz}->|2LnT#bqGAX76|$@5G` zFaq5Ec%|+2(S>3<qQf9Jf+dU*RFv>P-rRQS>1uz-WoDb7PSkJ@?OJgTaqZc3Dd@oJ zQ8$Ogy?y6)(IGqs`s!(eSBM9oG<mHXNl^p$`Oeizckp@MsEw!uz_dgj63X*l$(g2x zjy#{R!8y3t@=qx|&NU@JB^T*>^iR-DYKOu?318y_jVdQpa)CC}fsE9(C9n*VGqo7P z2p(IlQcD<BbzAt-IvGDVmeWMq(%jX0VDW1nW+}hZ>k~9!PI|>{(E*Yed)B6S*n-vQ z9ebv@ur_Kb|6%+1P5b>FFtRW0q&5QHH8)tZl*rWdLWuPRAVO?-b7O?2$}0wdQFguW z@i^@B>EW-DY4Yo;OZr~BIEuk-5rP95JKw06f5cw#rT0o}`>g;4{nO`Mdz`G`)if37 zb`~?`FlVr(gJ>u(t^KHX8OaLRjDG#ss7_`NVEd}2j~?UfR8q8uq|fZGy#*5))%qd& zTsY3dkhD1(`aRPoIqxrP{(E_z?&P-@RosxtVxedy#>;3KmnIp*Oo$6k=ZrRKRm4Q( zlEu0GVDNPAS?!_%u?ydxhZ#hxTNT3$+B$WdpP9NUY6U$quE`ASvQe)Pq=V&U7`r1g zt4dGVjO|q4k>~GbCzB8Qv7|o9`uT229cV-~dr50~aPVEUH)~3rW}4-(5C>`*?V#@5 zVJ9*F<T-i8-77<HMgtmuFanuSn%sO>&c2xqxdR`FhL>_&vWt=Gb=`I1G|38z_Gtqr z@}b{HH=A#6iHE&CvoUvbJMbCJ(S?$rM9e!Jh=#L7OnC9PKTJH$mMfuT<xTa--8>lv z=!+?{h4@4g7Q0d&fuxy2_)jz@jZN&wo6rHcGdeYWhuu9qV4oYhzMZ)?v%H%i?)g-X zp0(8xnz6P94EAwVdGm+#&~gvt<TPDH6ML8xZJ|4Nm6m61Kl~89mLPcr-AzG@j^ui$ zuBZWCNsvIAbtU9Gb{$Nu7X>;Y_NLw=XOA}y;~-P)XdQ%^zlF%9Td4*Cg(xSFj;+zB zfcpl3NjuudoJyHK{x&-%cNsTvI}*+Nk`HH~00I@M?uv(1R)zsqoNbkN74MbfT>OIr zvr`vLlRj?3cbnq#lt=0=C0Q!c%o7>ox_eCV<LiXPTjEuI{DE}8S?xD8X(Ah(x-1ix z?aEv$7eUIswn_En*M9ZR`G=htl45et*pBfu-o}*m!USTt&Ckb%%Jr<6@MH(CO3@Pi z2KMbNg+6Lnv&Bsw?@A5+o_RxMMd@ABXNYPGGU;0fy>KpO#FL1OslgV`N3#;Q?wp<b zbI++l(VP;J)>zsJP1Km-^kgGX|A~MinQEYc8cex)9Ya+)diofSt^q|(mWZnap2%2# zz<`P>tA*7=1Kg+rCFaK5KgsIe=KihL1h==F3W)f;FAvv?FT4sm{~a1=&*k{psNoSo zb5SYbjH0sQ9`lnl&&_pQ;-0USoFOCwkz;Ukg&wj{g6PayoP9lvJ2H0ogy~8?CQ)2_ z^W^KhqHsn4xY?{DqvXr(=o?6TI#D;|<S4*$;iBL7J6rba12CzI&m`~mGZ${(N%nC@ z%~bp{k0IdaJoNnqln7Zl6=?9z_X_%NpfsSz1H{gDIA~hrE~{UF_q+d(iP|s_J@sba z))~Zj)CHAPBA*Ve4ZXYl($){CeV%_q-rS9vlA%Q|)5LASrdH;`Dlb%00uFaI9UTjO zire?2&GU?GkiT)E*!dIC5KrW=_<j9P?&H~{cQGPz3Y0Y_>6}wUMdCY8R`&gTM_L1- zs{@8^LMxS+Jgyu#CPv3+KTNhtch`KY?79$@OE(Zxq6S646@Z_AtE^o*e2T<tj!cIz zDtkZsbx-?$zabeDEl^8Ri_=Pg1}-pi^Fz_E-b_Heb-eCrs5~K7pEdl{S64at3FbWf z)=E`I)VdG1<Ci{nTq)Sq7KuYuW(WU;wE6?6KWbkBw0TT*3)Wqz6%obSW(0T(cjxFs z^n*MHx?8Q{)ug`}z?(_?)sBKPGy}OWwhLHc(F@%E9$}L>hq6!OpCL@wPWRcuEHIem zbPrfC42v=cNs_)mJeD5$ni=v3f>IG4v>b+x39p%%aiKj-5F(`v{0ddeFL&cantb|K z)Fdia8mt3%GuCkZaO(?<oFYsZd1m6LZYc=EJKdvF42H<r`H#>-@e*oE_zeh=Zr(#h zX3(=67QaOR2=jJIYqa^<@v<87!3W>z5=u|L6^Xp1&ofGuQ7IlCQa~Ib1r_<JX2><g zMVq+%k-t$1z*JSl1I5!()H+cnRlH2=0)isqTfJ|<41i#7&j+`MK1S;MZUPL#2!+0H zdu<Wy58e5@&NIF)RyrKoUv-R^j+eXDf$|ufV+~FX^cKR%T3ZaK110-(0}YGLJB`E* zud8}{56Z1A5Fr^+lOZr*!YI3aNb(+e${kqE%WF&Z{aPCitJV<q*91_MY45bUD<Q5E zOC-Dhl@)U7y!BcV5FzvP+{GPWK|bcgG2<aTWp8-Zz3_%s3r+bC{LSvVMalhSRKUt| z6LT7G80ca?i6fL(ML2T~rmq%|KjkSv>@~7k6cZc6<+)ZM2$FlIU^En+Cu0GG{?wqg z=Te->GG@$G$C|E%D%^0VB^Vs+)dtFxbhIERPxY(WbUqed<B|=!r}q$(iS!8J*$TfP z@iz7ZSEOo_P%s!aLh8hZ?X&_VeJ-5_i-p7VB`VtzzG3TxhJm{1^xT>PCHs_=grg5& zMMbJZfBQ=16f0;iR)Gftso%~nk(}Am@?2F!t<>l$T9b=pIaxi)iQUQcx(kK&+>9sa z^D~jow1D&xy|3$h2+YX#w~7OWpI)h|`#5wh-iElwPu#7$`{C^_EJe0+^#O~iGMc|A zYqQqOorjL{zbLY4Rn9~OI<qidXlwn{;LPw!+%>nJrdNTPK}DU-yhbVGv7w=c1?XsL zz3NwS%~(;(ysD|_hQ2m>L}%okK}K0j(;;KrgKFYHArlM;e_EtlVvt_i)2_bT<hC3Y zKLqOwntyyJggbJ;Ri@$`;5*xt9cd3MO`JI9h4C`ahRJ;w#%fW`fYmpl=zZEQW2j;e z^PbfNksbT6@|_JB?dcjn6}bq$PoPeh)kU1Ur$)6)ioG!Q1ORf9s{JuGpS8~#{3yXC zokVa-yAa?A_C1!}{c`p-cQ0rA48!RrnSScVHrjc`!pP^*TDgnS?TT&Abd2)^zqFqV z@9)*xon&5U7?U{RN!h?od9Fq+&(D`To8awhwbL}_N<8g$`d);rD^Q|(9SIH&m1haX zb4Z%_spOJpdSCEXH^W|gR|jqmk7`st^IreRv5J!lY7jY~b0g_E@TU4J{vB7|aMk$N zT&<_8yk$<zKWQo1>ce4PA1jR9&3Q*qO13@uRwlfC!|D2easm0gFWKH*k&WqT7r7}w z*Z|gka<9P)my7%E&An4A9sV`m5`S6`#h?!xV_K`89<#OWIVCH3{0T?1_}lE#J^wbg z8$^%u=>`V|6T>5fwv*U3H^DwaEvdntbjz|val0Sc#fu&CA}Ca2zK$PceF;jT7lNH{ z<L?Fm41cUX%?KRY!=s>E<sP(S9M@Ytk;UQx9|t_|-KRg{BrzlyUo%n0lYiH-W;UlL z4>aB`fQ?@BLM>v^3Eu0G`zx3FnWYw|tsjz$-wH4G%x1}Z_+Ezqn_}C55ail*f!k1z zoAfstg7?$mVhpgTQ8A)>sa?{BtzQKh*XzxmiJAXr5uMS9BlID|+FLziFw_N?g)cU2 z*}-gYn%5tg6km*UP*09!|H*JX%zE+FfeODK&O;+nLrMiDUK~8)qx0-K=kM8|vK?Fy z=j)nzpiRa~Bl2{1AYs*QPO%Ir{>^E$4>h$%Bt#pjj-ESH`}(Md1;pMD-a74_#Qou{ zB&xua8%59N2dm+OgX?SzhKul*D-Myq_i3xx*J$L0MVmbXBH>-cAqL-Ej^OpXsEXZ# z@Exx-X1Y@4bRqL|TfZKWGegK@=o6C>l)OH5DL0jvrK*{2JaOc;pRxHQL$q*iV;eR> zTsNpWzx|-9eZobAIBLaMaWr-%Ev7TyVG{Pp<!Sq^{v?dD>+Uqfe$lu|R_77sRMvib zBft$luwE6Ad<N0+1q(k^BSb{Zy9}w!?@AK%vO^bWWPgTNpQr()1WT>~WOFNV+lh|I zo{|aT=#QjfNztAb!|b4~R;fgD%zb;`(pMWR|0rk@M@nlp2C*N8RVApwZ`66s?=`hY z?=ukJ3cTG=zIGjss%lU`O=7!43|9g08f6iGdLlUp2RP<W*VJ9Ilho7W1IjBnVs|yx z8#I$(RY6O47jN|`6*`{TiMqhKH&*nb{2pJy91lTO_h4!^@7Vm=@|_V1L9WQ0N}eCc zUUGi)9!T3)U*6T;OWV(^RZ~@3>!``Q=(fNC$|mnmFyKpU?5)NgTJ>yvt<j7k>!We4 zZ$$Fu=tO;wF}KGaaYrzVon0=Q2*SBns9Sjc(ATXczG^8f!KL`);N={bJ`sXSz9W=4 z{=C058{QiUWJplA3WDeRNFVIolae$Y>rcsA+u8zy_PDN5*)<>ys)5$@AB*0n)fqBc z5&XWrAh^S{aRA^Q5()6oP$pJ%B<>D+n%@z`!a5z-1=jA$_|ab&501Z^q1tH+`eLQ> z%dr%Nv0G)w!^NX6|H8t?n%R|`jy?OOW_RwB(7%_ap2rUKs&B7)jah;~{#l`AU)r4- zXXxg|d4U9koeb#5m^qk@XjNydT>*m)d_f@04R9YzNvpg}YyPtki1d(Ht_7YV8Q(qH z3l;|X7aNkR6(0Fp!O!Sk8#9&H+y{bQl2v(qYzeF1V;*Za*~Ejx3NJGJLDwZ)W}^?D znk2H4SrQDbioDQoMR)K32Sj&2W-j*z!Yc?xGoJtcR%+PX^f%DPdUtAKW1w^G96)>Z z@W?6NC|hg>z)Br<=~(X>eLTUsqQzx`D_C)4Os;?5K2Tb3@5s^8;ZAZ0mr1$YgC8>` zHWh*y{o4mYHR%Zn+$CE|Qzy6z(TguuxY`4&=DMf*no5I;-0dEGgH?mU0p5OQ0RL9B zZ9z6U>Q(j0!uJ=D)*T6%R^R$J)(aI@Y=?CwK>NV}iGO4mz~D%Y{|bUfmpJ?yB^Gz) zUjL$P_MReK&~OEqTA9JEU?iyac8kepAhqZiIE=5j4nJJ~dhOaoCZ)s5#na@g5U2q1 zDI&4<S$ozFJ<Q#n$ilLpxqCJ(Vz%YjAwe$Aw{jE1?f@0cI&`u&`{RMiu=U3ls&_V2 z0)!S-Brv|4QyN9#4Jv_PLZPP}CN<?>@}NxPbEiH`1B8mvZu73(Yp<5M5*OY1!%pK} zL6ey`gir-Qo3;hea|go{Wlyl@gyb$C9VtmxAiCINuI_9lX825Gx~qF+gkl5Cp@v|I zm+uqhK^w&P5ibDTuagPsS~Un<ByU@Qr|m2Aat9OR&9hA6N7Acp7B%t$|H#ej@r<!c z_w}ShZSSU@_yqdF{gn621>N@7>;mPN&G7YsDi1azAH^H7%NO9!Yq_Afih9p742uJ1 zC}pmrd`*sH9uB9*{NCPT23jVS7N$GecR*}D#7Z;#Mn1Lz6bHg<tffM{0c-Y0tMo-) zw22vY!<X?g0twJK{k?_gsaGdK%eu$U<ynG*d2{sK(5dCt;v6MEdmLU>OMDpNKOJDd zLJ|V);^F)2aX^Y;|NlwF@n3kwpQrsCkpDM1(9d!EId1>GVC<)b{Irmt7V>XtEPqa! ze{ag*PPHlmHTSdjbOHaSob~5W|9eCIb9ny`y6B&V^wW@jhPj_%?ti;!;y;`NUjS5g m76=Y(s(u6hIItJ2gh17KS@p6lLzTc0kg2i7t-?Paz5E}0KkB;x literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-02-invalid-email-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-02-invalid-email-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..87e90efe6897ac57b866d6528d434e6436f62397 GIT binary patch literal 81040 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-02-invalid-email.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-02-invalid-email.png new file mode 100644 index 0000000000000000000000000000000000000000..87e90efe6897ac57b866d6528d434e6436f62397 GIT binary patch literal 81040 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-02-loading-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-02-loading-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..d24d8e571c6a846d85fced858ca4c774a38d06c4 GIT binary patch literal 66969 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-02-loading.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-02-loading.png new file mode 100644 index 0000000000000000000000000000000000000000..d24d8e571c6a846d85fced858ca4c774a38d06c4 GIT binary patch literal 66969 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-03-happy-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-03-happy-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..cb10f452834b0bda8727512128b96fc4f965c991 GIT binary patch literal 57395 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 literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-03-happy.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-03-happy.png new file mode 100644 index 0000000000000000000000000000000000000000..cb10f452834b0bda8727512128b96fc4f965c991 GIT binary patch literal 57395 zcmdqIWmH_vx9~~AlMo~jJUBrbcXxMpcXxM7aCdLCahKp4n&9phAUKV?%iBEvxohtG zVb+>8>&|?bPpA8wT6OAF?Y(Q)-oG88C@=9D0T%%V2IjMrq^L3s3@jQ9%*WDC@1b|n zC%h?PV7|aei3+KDW*x1<8se|u!ktA_0jz?G%k2IvH`#5?H`%RrL4T}>FE7Sa-5%$- zGHaO`U%mP~dQ%)`XJ_9}c#LOFMMp(#K|6#YraHiXyM}*X{O9d2f-ySu@|`kV?(Hs! znEf5}5+3+J^)M6qvO;-Xd~7U296}rd0s=e&bUbvC*Z#?rc);u|r`%^ywG_6To1UE< zpPpSCGa@)KzNl~@u>dRV6di_G%(DF}J}xR27A6*IpHTnw%-r<C9P{i#ehf+4QZ1P& zX_>C`7a$BwA{{&XI0GXqF=bY_xI{f^1^H^(TwXvU>)c$uIUgAw=vXzm!4sW;Ktv5c z5`da8^;88AZ!_<II5@~)X|5wPHG|Y`zkNFyY!x$XAlOo7Xg<4PcWz;Ber^h!%0xOf ziV_!&@Hx)ZE5tb>qb?^RL0{Y-Q4_7cV3vXFZSIVx>??p8Fvm^P4L`b?TFZWzV_ANC z08Vji9%7@RVM)zoW*)G&$}#WaMMTCr-6H=^jQ1O&<(g0JSN(=@Dfk-z1ET~c1@U#j znrv-0G_umV;3(@L!D+$zvGM!&Bq%Y>5}K#1XmVtCXV#ukD&!J3k!hymD27A?9Ys(p z@cVx|mx(P(NUuSwgNGru68eU^)*WO89uy2?Mu*diTR8puH~v%Rpq;&CX-#iYTwc86 z>H4=USE;<wV1Jn<f+FGv;UE!m8RX{%h>e<G0CYIt$tJ1iMl=#LWMi(KGxlBL)t-?* zU85jvP1A9mLzYH0Cy-=>k--dHQUHpEzV|St!k-0cS(FTg&4)MdPQ$yHA2wT9#S{ja z(L4WPRzdD%;JU)B(EoR}k|SdyuFsIS3+b3utv88B3Th(eGWMeiYT{%_m8O_%rSd2S z65~mw((vtK>A0qthEGDF@|dToi@$e*`2`QVq@XI|MRw^^<0Qn|W*QrMGaW#nWNfna zr$_=;GVLE&WM@kE(lFDZb7T;M-iF_sgkU@#6QN-eRFr+=;>-xL?His>@8YCJg?`hH z@)!d#t9BcirWS5KiYIb0fG-F7TK^xBY4~r;^1;~H7&ed`c5{cFW4IEv^jqIP%}>@e zj8CvZU=w2%HAm1*rhrUfekeD4CKtY6-&0~iZ34CoRH@!qO6QkU6jcPBXVjDP5e#`? zQ&eF(mHnmQ`z75*X6Reo{l0s<*5uIiP4WgooukB%PlCI}`-6!wbu|o(oV<O0y=8R( zf2m*jE&=H7s@bMP35R&G(77O{QCy}p$*ZZVB0um&jAw&b+TiX>#l|2YAnz#$n*oLr zzYA@=0#vo44V()Rzkh)$`S(giNJe?|XE(0F-Nm%8xP*O0pHhRnQ|rm$-b5y0aj|8P zQp!vp#ZRkVKu>Qd?JFuyc3|uV6H}e7)TCG$<g}NYO*%E}H(ke@yhqd~fes-gEIa>L z2W&c|U)jiEsaxfdzY9Ws3fY&5GjK-3&U%}7w20`$ENvkJ4PX$ykb;7?W2E#=t9mWj z(+&nb7bWj|7&35d+w{D+#TmY^giL)=l+;U)t0vluGs3^K|6O!Z8x0n3_p5EgG)A=0 zck&H}62~DS+xIY%WZeEH5ht`<!J(mKw}mas!Q>k?MgR4zt3U4tt_X5IssW4SP=f29 z+(g)?5a=8K9s2L010?hKo!YIxn~ATT^%8#>+qzT1<Z$gO|4(h;*Ar$DKA-cG@n;J) z>Xb5_3WT)rC)mJo-4;|#%+)3{SeYnYe3)&^d?O=UU4B14zUaxjv=IbE5lKr*3Ie9Y zHQ4t4h1=Wl)kjhil8-m1c6N4sW(whQI0G{y7RSY%tmg;E6gr20LJ*f+AXc|ORFbDH z!Ao-{YgY-n+>bZC=e;GTCpl}OA0NEzE>vGjI;yK<>v<$Z#krqc@1N#=>`MK3@`}Qu zk7uZHbLUDEb7j4q;o2OzJ*yEQxw@W<!k(wo6&#qCreUi9X!rR&<H%3kk8n*>H>=kP zC+@Lw%*1yCD<sH(<97LGwuOeVArim&e6fy>uy!B>X2z9D^`-QDI`)WiAq>Mga(a4I zd7Vv91c4&Pd>x=gSA9G?z3gOPaISp9gnn2{i`djt-Ossd{iW}_DUpw_H*xv*XZJpy zw)h$idGg<U2o8C*xd5;&?LL3nTu%2CBr@qW83Uf%8mlTVN?QU94da3BJV1Kw!rHcB zm*Hh>+CD(FF0WdhFc)%tQ&uPAle25Naup%)<pz>cRt7Iet5;`!n**C@)AhRe(}g9C zZ|7|B>UyOnU2{k(#InNHFmJ$&+QC4;f4O&rqtgVP9F2Wr>k=rVAk_1XX5sYVrB}&w zCkM6!?h2w=Vs3W-Xwd2uaN5K2lzU6ql@~x|JC<|9P$Wff<MTvfdL^4S$++Yam`Vw1 zcNfy1`yu#k`P(0#quWTioC}Uddt+vwj>a5&VN=g1X46?D3wFNybzVPi3ThJZ0mqe_ z$0P0|n%A47OY54Pv}VnGQ6cp^TbbgO$&n%6gZZF5tEkn*s}r}Ilo5!_5God7vt!I- z2F*L>1rG-Yb}vyvI=UrFjIa1Seszb(VLi+XY4pW14r_q>OLm!vm>9h-=i_oVJhSRt zR->yzcoU3y*pok<0=B<7i3|*G_8vJDF1DMtMZ<fSjOv@Zjf}o@(F+{!@Baq)KRa*M zSK+TUTdhsMV$r`6>8%Ak4VyJ7_aUays6+!O8P%$kQ)MhxxtnHZX6B}*PL>+k((J)t zumznaLsEvMs_Rv1wnV9z^6o>B!~`M>Is+$}>%oy4hD$50?Zni25P)+i4DAA<<N5f4 z%&->fJS3EoPlc$5X%28cu@;;_72xYE;6e=yGzn91dT>Z<1~>2Rqb)h*^)6Ms8zz)L z9~@#!l;KIv5SMjJoRHm~r0RBZ(WTsm=V}*sBf3%HXGyp<0Iytocs?>kkBpm-W-@eV zkkP1D<??wXjHV>!&SiyUx7}=TB*iB^H6r%5FugAC{VdpR#hC#(E@9z9n30b~WC?k~ zojv*+SXD$<nvD3<#`p4hy$|YdbFJ0i`K$mw+dR9vw)!6`RW=MZ`%Roj?#STc;MVeR za<v<@IETs2IF#6pgaZ1-Ck#5feUAw#R$+OZb`KgNL|SMet0jy^UHKQvt%=@78+Eri z|ERR1Q9xwBw7UlF)!BXcEwHyS)6KB<Y5TQOt1mCF6S*-;uO07q_5HyYr@y~X&wCT; z!E~#C&-cB;&v2=yJzrz7imM?}tD|GA5H$?`-tGJ9NA}$`hWACIFX&wp`V_%~4{V<c zKwBpQ5dmQsaq{|ShtvJh-Mvk){K?0Qtc_piYpg`k7fwIc(O9h!avy6nnF6q*RgQXk z2Ua{z%x1)*un75GiI4pq*4nlX7fxNrcB^=FSRIr*mj#ZHiTM2qnSEK?;hl53y^QiE zu8+>`=z+NeT%^V-uC7RPXk-k<`9_wMWtWdHHy&=c)AQ5AHc4T6q}xPay2lvV5-Pc2 zg8~CMIWy9~Vvpu(cycH(7@#Pe#!uGjngeFJg{yeMIuND0I(RW~Uc92Wwi_FpiHS%? zn#wcpkT9PAgD!nF;jVcx2I4l)?LYr~tg|kPsLOwH7HNKY+DW8n4pAdSY-6M4B_R>6 zADf(;+Rc?V-wh6v@O?NC%pIYxVe1Uo_&FuFF&(DTBXv5_8x$l`U_!Ry`H-HOi3{Bk zSsfs5kf5K~JBg%ZWJd=vaJHHJr{E<Mt3cdc>SUT$+iP}qk@2kVsR|uD_uMoG{(5-m z4sdA^JwKgD>rWnuS*X!TCMQqS{S+P%F*P~)w?0RP1N~y`7vZi6+@84$4H>IDm=_!C zQ|a#Z->+r0x$(jj3=fwxuXJ@4I(+^ch0`(<0Ri=_?ho~^`#r5}YU5}KvfwuPSNq-P zwshcLB5$bi!0@Zrn)erjJ}%dT=K4iZvFw=kj)BioLGIJP@)q4zI_?GTKk`e<kd_Q^ zAXY!+YOI(Sb1x@mK=*x*d-bQID*YwHUJ{=9IBQ3RsA`db`fb-OeMMDOUG1Vaq$cAz zZgwL>Lr2ITcoUPMxMsPE-5u&VB=`hct`UuD9=9i$_KDbRpGEV;6W%<7n$NFx8_L1+ zgbr(61?z@O^+osmtrt&EPu+g6s2CW!g_7UeJDQkjew3D${t_JGmQYbiQU|kcKp@wb zX{2*?h!}$t)u<QOG3ybaowy|Tf%}cWUvO~5*ghH!WDgEXdW*5!nVVA|6^rnsb_WdH zTIB7OEbKU^%4&TzZE0!Y=4$^42dAa2jX|v$-w78Y+zZCX_it@&pW)D~g*jHIvZL{E zaq)0=pPHGY(`_N{)G?dD!lI_aJ3N5k?hiOvo2BBkO;l(&%+Ah2yqtBkDSf!KCHVvH zGdXJP^mXvG{e^`^dV9eTZ$3XhOc|fd!Eo}6mjdh+ccKD#YZh%*pQC=dM*{!Wv*!77 zeW(5J)lU=s0}BD8+jrFDcA>8;-oI8w>R;F<%-a0>kldf+a^+v`_#~Yq?x<5}k_nkw zc*Op>**mMd3~oMI_DG~>t#epmerf#88z+gHkg(!T;B$4=cs9)2Iz|zF;9!H^UH=IQ ziIB;jAE@8um{?0R5i;UYz3M%fW=Dw@gR>SU&2TE<S0HdW_hRALJ<iNx(Fc~|xyiYM zdI|xF2xc-!M6=na;KsvWWslSLBC75nYV3Ar@Rb=Y82M;rXl7<_bFRIT_V?QHUBWY^ zfD?#|yZvIu&!=IpWF(bZI;A8xHc=<!^lazwZc(+s+AB39eHc^5;6cR^RMQKPxp72m zGHSH91v}^>UCmJ-j}#O^`d(abBhiR}lqPlXetd5HET}v>RX8S9;|5U*!u;I@RkUi) zsv+kU>T0l&{7>eC{53a$L+o}BFNWWu0}=h=eVZcJH)4aj=4fzKD@=bCjVEcqyVZEJ zA>GR>vFhbFtX145UIQ@W*L*)cmIQ7W6Lpi&j%^A2%_GF}U3U?Iy~b5Tx(ie>y@{5a znwml(<Tsj80mSTZC?&%K6!2Lr){HZ|UjHVHB8&8XbX%y>7Y9~g*iun>$pV?u7_7cf z8`{1&&{h2i@o0B@Tq~qvA;`|Ux3RS0aCHpu)_CG+^}Jus`<4hRZCT;9yPZEYv#Z<b z9@H(MCcQhFIlR8q+xt^C<iPe}s2AvSL-?n`izi^O|MOvuPW$MzaQ(Lqk5{E;SS6dI z|B40VJTG0Rjpvr?mc0*XPODjCwORW1LZIKR*rp0k4>xodBJ?q(2B46AeYJ$Rk>dAw zrOD_~Ji2+_yRjE6HFNJVG8x$5Kjxg#a&&USWPP;F<8gYqAp4c0UZkD<qNdCC9=A!- z^>Ep#cNtT6(<~H02@#u4z~zJ_;5BEpoi?4LcaT!4e8uDM;Ex~){f_AM<y2ZF-{<8W z)gm7MP1a{F@9kPG7Jv(cO5~AUOhRnJ;31ch#VJwo+Iga92H~{Z=#oD*BRETsZ<qc> z0dV-m`cSLG+D29ui9%kR4~1e(7QKWaZAdn&A(qW+ewgg>P`CSe|8L#pT43yos<L+N zQvlT4r6z1N8u2$G*(ikDe|C8MCZAQYaGKlg3!IQWTBX;#=`OWY;<Nf{?P`Lq+D@&{ zs<fpV<bB@#5B5TEXq6TEM+Yqqhs(Cs;}uq{wWSfBjh`ysTlHjzyzuQ>j|xx4!*H(_ z8}GSQiH)$$8u3FYXKLYx|0!W0KlnJ?ki+zvRnDTK>6ulF*5nu&Gm6Sy48R4Z?E$&Q zBlS2_01S?1?`YTvyCuWrvUPy)4hPHZ8xs@^Tc_&vr6(cJA&W)UeZkHSrlx<QIL_(( zW_KmwQ$|89v9ogR*PBw#02{gE^yfU^xVgDyuqXH$0xWWPss03Lb~#ruvLr;MRU<!o zRG!_+>(tP%J|eK7Q<M>fRqD4p4W2PwOyHoQEf?Gp8<~^5uGE|C99(CSB$bR~L0zfi z{;D1k38nkUVw;8XacnaCKOJ-(D`Pt6$9EXB&YI?%%qB)(KxDJ^auyk*qLhE9H&N*{ z?*+UbI<&_^nKL4i=q2TJ8nAEbLFO_1u%YlQ=vs~DTYv6lT1-K_6r-}+zw!%y?vfoG zxn0aIouikWXGHiuUA5YUova6NI^vLvXoxgO6$|DSl}TY{C-xzptK}Xx6Y}|9NWZ+$ z&S>grsh2C3yAF}CKCdtsj)OiQ4Je@0s2Az(-Hah%4i22WK8I~(#`r9{F2s)UG}(a# zFx8CrC*+Sa>(LtS_E5L3feKf_wrvt=>Z)XTv(4!1iyjYPH_W)A1!FVDV$Z3-&j;!S z)3}`+*2Ajjf|0bU$<~S`)Qz#{8p_U_D0wO|%A|g%Y!zyhI&EJA$T2}DYXRdCyW3E^ z<h+x}_lc(2>`6%fsz^nL5Ln!aW1Ymt%sPpNu}0-e$nE|^PKC#I-Zq~UQ<}ndJTCXv zVex(i<VL7r52qZ2o2INr12C=382M8QXmBdI?WE}G>P|w{y<>VWNhl*1rHjCfwUcOX zH?}CIRThyy%IedqLygkq<Rnu%3cm$FCH%5?RGf$I?I?M)5@)2E0K#8#sNB*B`{e$d z-lO$QDPtB)<2v#?1{o~S9T3;OvKit6Jw_&FjuWYhgGQMS*7H^I{?-(JCTwh~wX%lG zPbFs8t1!P-qrs}tZ2JyaWV4viD>UcK*ej$Xx67p+9V=rN!t><6s?_Zi0?07g@+=p- zA+`zdMe0cbH^gK#rh}WB+?(kMwhT_5$Twgo3|hc|Hn-#7JDfP(jAtDke#;&QL(A_V zhj^@c6ZPbmnQV5y?Th+MHn%gLvKOjeiGX<@tk$w1K=#UmsVbKC(E5cKJdZn{@vNVJ zuMeATmzS5z1G@FAwAr@`sWM~$+V*9xtnOFg57*Y0Z;K_e{fLqq8vAu*eYVLh>fA&k zmBApDALEsfSx}q<4-XHgTAw)t6V|F%!0yD_{kai{Vxw9`>|$X}1>`VE&dyufAG&O= zY)8r9^oHSKtkSCpJ!C)jqb4W_cZQzH(|>g71F=5uD_HLtdsOQcD9=&vD4+3WeVWkk zvOq7A!LV9tpr<&-*JJEn4WVha((XGG+wR#4?%?z~`sHjE`4iFzys1}8OU`F)wH((Z zup0uL-E@{z;v^@H&+)d>wG=8kYB4+T^1)MReS3(>=t$Rl9hnM2KTcD5n$B7gZW1-M z%5k*i6=TiN#)#8Kx6FZif$T7v3Tn_-fW#Z>$*=FWS}FDMxpyS6<(ETR-O!WFuVqV} z=(rSyu8$1G>71VG9A?d%y&QZGsx-xObCRs(5#TJ)9*%Qs<0Q`|J!c*#HhR9*!;j8u zuZ)Y|_*Lt~d)%TL%=?Oe_6k#YbaQa%FG_B90P74Vc@9#_Tn4AzAS%Wq8+4)&@RKXS z2QOcXe;ysnysR&9FbJrHUw%JyglTDQJ)Ii5%*hFnWRJm}-<k$B+fIQ(7_zwf#fQCK zHq|cG&)@CzmP~{oVi&?|U^gQllQn)85$Uy30n}nTr_mEgr{0IzsS^o!sS|g1KF#QN zdPaT#ELUsP5OnwPxo(Rl^?%-3?_bqPlg3D^)ZUxOp6W1@kk(`E^qJ`4Vkw!nIGXIb zj@3&{TwJJGw`#XcTS!g1i8JybJzj3ucFu}6`0A-TXQCjFe7xS{osF`;;B(Qi)b4(| zSNP6s<0+#-QgLahf4<FQqWbEfKpc6*fq{zB^<;K!WhE>m-v@=z{g}i`vdBldD3Z@& ziMfbAi*LNi1M1N_%r?k5uN#fws-X}qj^+FqmalY6PolTAJ#TTnrw-U-p+H$ErN93) zQyiVk>V}1fOl@N7YKzNONwNN2+6+yax@1D;MioDMb^G*Bl?h_|Z#}y%-^U@qa5D99 zJu-`{;6h1&aDQCxxS0&*j;i$hC9mhx^nixYMv3>_MQc%k!)0UYZElxdi*Fc7W?fyr zA3qQ^$j4FY{$>jsn1_I$n=#le;*Io`Uqn+iZK}(SG&O_MYMq#$-75mGsLVR0o|Xj_ z(S-$iLa9uNcVH+;E1p23(QwZ*U=kC#3A(+Ea=>F|PqfQGySdU(Vt;fv?BO`=s<onq zTV66>buuXnu^hSZH8JNB@FV9LhUv?Oo-H8tURqt+YFic|?H04IH<YDMT08T&Qw;nI zSi?0ghAJ;cN!i;HIG*?P$@DzP54JjH47tw1rM$fgBgyWi_P;f3JbNEBqw$G(HlvD* zm+Lc{jvshxkt9MIBF$3zlS6EHNeVD#3yNdvr)QEXcS3@Qzv7ZDv!{P0f5O2aD=)?R zf^qpEV%e(fUHR(Sw6%e=E^n7ABZOAekKM#{d3LrvJ^0<fQ`4LTlP0+!uNV9!Ku|q_ zBt*R?*-m6?Va8^<^rehtk4q}e=mX8RTSeNr7$DLBBXn`<0*r;emZhblWo|stVShc{ zKepmD?JkI|!Lf{>Uak5=0lwLO^?0V8NA6FDUm9O<QxEON4&$3q)bH}{1yI7AOB^J$ z{w%3m{4F)YHCL{l57X?tBz$jSxm@@yN-j3`oQK`EQr^6`4bwL!Pj_iLi6XYB-<X~& z^fS(&fXH(j{09n+=DVWvxr)0)v=m0@IIzZY-Hz_8n&K_KN5{&AAnc;QXjM`^Gm_Os zSPS&@<TFdmrBLci?ryAiy&9vdj-cu*TxK3<R$884uS}4csMP0#NvmJz<%L5J#aO^{ zb$S{2AU&_MMX$EWBt;ss9SZCBDtxIG1uOywHvSves-HocTL;Bg14--r8!f`tUq;Q$ z!MF$}CdmN0{J;-rerITX2z84Xc-XIw*19~tn;`H2d!<J9+=eA`t=G;W1zz;iGrIT6 z*}d#XF}^Ml&4PzH9<r0O<PSJF<)^wPuQOB^7gfJxIAHIPS38VUvSMwi6wA|12fhz0 zfpeC5spZb=A~2}(T#hACBR^nQ!|Au9Q_j>3_VJbPh39G@W1}K_Q;94dkvqpzm`(h2 zj2ydbJ>Tg+chNNso!KVf-zqutww9QgNh%~!G5PGhcO>2Y-O{K%zs3N}!^);MNeo=j z_Ax}c+~4P<_N!Ya9NW8I>2z2_Tz)n9apb9~_VRR2!-w7T4TJYZx=A4yAdR80_^#ku zVU?S$3_dhz{$sF50fv}aP|1Y8x3~Ah{fE2z$IH1-A<}8oR8L7nKAD7=U%pVz$Z49J z9wd^ZuT7Us7*MiL;T_Huj6|v>Rx72|=vvf4hUe~X_?H`8xRm-CkUB~fw%S>TuD%v1 z%D9PQl^Jw<Nz_H?Da3etoct+hD=0{k5j4zOcM!<PaooO43x0<hg-J)!A+<PWP-xtT z1~o}X7}@JxkH6sAtx<>s%+Pm6Qc(HhmwjoH8GK%QNa;mP_oc%@Fb2d%v}5RK%_Yro z`9>f!F^v;P_LnmsM8u_1`<#(rJFuE)3~K;kvEmQkEs2{)hZUi&jkuhR^Pe29`GPDS z50YlBKQc@2yc3)L{K)2BF1JQn){f|E-*$&j<cd{QVIk*>ECt=D;R^0lIDrXI5C&e> z8ehp8>FObwbJSO-b3aA^2-`D+YYTz&s=HpdR7dl@c|jED#=oKd5-od#L~CZ|_CB*s z7ABiRr#H6yNv42+Da?m56a%no^rReDQ0~hMi;`WL3Jr?_k(95KQ&gKX5C0%8F6G#{ z+yRc8wVC%*$M%Y=YlLpC_?)<Eh^{$2Vo90;Xi+raV#XYRFfYLBb1(GeeUNbpy>sWI zCNs@i0K9;IPmRt>G6#WqDoMze$E&ZeUjYadEYJxJJal=`seNx@C2=9H9o0@t+AU!_ zWGAoqYG`CnKeI0ADbGYrJoFoo!4f+a8dF2p`a)&aXfqSp2PiiR4h~gL`m#get^!ma zYt5qE!v09O{y-JL%<03!g9XI*e=%NA94BP57EZjz>snBPs+MV!5Ig&jJ@@3CRKxcn z+d@m1p>CoKA2h$`Xq(>?lZ&DsqR-AgZ8#__1}sr4OpEjZ_n6J-_;YgV$B5SW&w<sx z?(9~NymEMRXoLrS=!6vpWx{30c-S3YuRBXo9@8pSeGJb%-|}6s9sbn&=YX4qD&VD6 zk1Ts~owFme^psnsq|uX|fE?9TwHA!sSmS9NT^wy`X*HvaIVS<;w0LE@yEr$5ye`k` zPdP#{<(Q!;2jgZU$pYmX?0GU9Pu!Op0|8n!YkeFWICxg9l~snU7;_Ycb*u}8N5X0F zE_(NQm%9b!i=rW=ys4R$<Dyz&${Hce=YAL7uHh&+szjT)G1?#1I(|^SYV-LJ49D@7 zDPDf;N5F&J{eZO$t*sRC=aNA1(dB9*`=?#_=KPe5k&|6^xmrRd{_M)DU;IGiQS(gU zdRIi#Jz6dVk(`xXspHEH4oCoVjjl7h-7#ZAwn1UN(yE}t%PuA+`r$Kv_0hKmF_h1U z=&|8jn~91HbrWeCyD#J8^k4;P8~?846b1v|GGHXWuh<4OE{c0_zOtIhR=&Kb3DsHv zJ<`rdn%Q%4hyi|YNs+M_qRaG!(fYgIMYiNR?M6#&kf;;&D?XpQbn#<A&-?qO-zZ_Z z$$cR~wnJ&f$`MTr4TiNrkNo}*Brb<CVsw2FvI3bkB7VP;;GWm}qNH*0|B3~?Y;myX zQ{X&NLtYld5ce#`xYyBg$AWP079B;8_%BeR<$3c2>vKx1dbP7Ysk&4vHvOZ=X?1OO znm@y!FQpE56^s#`jF}aQF+5>B(;3E~%~mmhqUHMV6k{6mA%2&P{K{VH3i9(29k^dL z{j|+<trFZe822$p!~Gf>0BEJ**o;%J(y17Zf6;59W#A>LmT#}A9Feao{|HPYr;bX+ z#y1^6p*6KAXtWp7$DFu-lC$h)I*%fn(<n8Q_OwYsc<`N^nwAAAD0JeAOT4gVRV^Jf zx|#8BSb6k<x8xBs5fPUwBIUfjt!efa-3gym`ux;Kn|4$|l&zPJPdUBSy<HeTH9@hl z8}5YCmZ#O~TwMjDyL@Xtaeb#5Sxb6~Uyq*tsY>100O98S#N8Nw&hdlW8_(>29lAAP zV`NnH!(C|TBf4BKH~Xo#!g0QEsiPi}BM_if;x6~1VBKYeesh0>^w}&7wOA*_!~go> zvw$ARQ<x&sUXQ14(e=6CE=J%Phuh6|U`H{dg;BLk^@m^UEE+{e4z4EERV~EXj6BAm z`866KNZwz9;&7f4+w8DD@*80E6W1>eoVqj+XEsrp;*B|+W>ROhck(=2KEh!JP0KKl zPVgp8ZRIJ-V67j9lr!7Li^xy)t9|1i_PxJR;gp|#7<;^f2uJuFGoA|gD<thHSwar% zeqvP?Ag&*n8rd&*xd|%}eBO~WRHIHcN1xT^@R<rFrJ!GJdo<ljg&mOB+pX{Lb)SDy zeE*1?y#v<{y8jh7sMuxev>~z&tKWgUe)v-=D07K~#c7%wA%JY*nc|zy?c>=N`~6F- z)^&IA%^&awS5bb83^eZt?{k4)bdSE(>xi2U4|i<7D=)#^mOZ{wycCUJFJ>6lLvHY% z4@Yi44O6=2M|?vkC<}>N)y{9oaXTSHzNJwT^%x#ht!ku6o|?EWS)VR(*pL{1m;wp; zyz_~@yYS0_=EKq`@eM+(bvg3=Easg(IO6UeIa|dM6f6tc<WtS2^qqn8bc<I3z^3zK zT={W&Xy7AAj>B3pZA8$wvqzIL{;!BOW;t)9&vv@hQ-6f<WTM&mfKZyupQ+&dc@BSH z;(*uhN+y6htKomZ(#kfFo&(c`ljkQ*6}n8e4d+r>-LKTiaRR6ZOD@<o`rShY0$$6u z{+Vt<E^aZWPBz4R8UFx_(Prz=>q%*s_hc5OW506ce5Ra`N-d(WV#{k)40>=|{HJl= z?O+;c{x`z~yJRAZ!)zI!9@fmYk&1-mVjUjw=yGW?I4ti+G(mH2q4jGrG&e*|^GT_x z#r^V|n$w!!-7rywT8TNP5oumo1nObG>ut|Z19^Ik@zBpl;)wRnxe{#UNmC|PV53_m z35#ZBas-vRNTSDI(<Io3T-Azw7vwsuWxa`_nwob@QSdS>YJZ{WxmMa}?L+Qn2lun| z?MdLTyuUpK<_qQeQ&UUX0zVnpCfFQw!@32EOgG?s&mUm*OmmWQYTaX`b?0Y_Bd7vE zOHj`UqTH5lZ|PYnJ8%|D_q&M%Vp-8>XATZ!%;TP4)S^!YMPg1nT}Gqb9F5yl^=X(T z*9{hNIeDI>yhag~WeF<}2t~pL06B)l^?r9LPawAv@*?gkd`r_!W~PW8Wbt$IE$9Wa z5dz(%q|3p`r%B@58;`=t3`GOYEM3oE=L=Un5Y(8MoP7I@m)SUW>Pv>u2eO`7Vh#GJ z8{uwF(ebcHh`L0J<q0Ru^0e7(YCCU&!s4df>wNE>bNT(&nn)vh4lH}MK&~mFpASNV zgD;8z)6LDB;y0;w+^;G{i4k>mj-PS^!cef*!iK5c4rkGjQx^-JdUadt4OA*UGa4CL z?Pv28d)`;p&i=e5mUd9BYV~>jmYX6G`xT69bRRTZnqQ@{-Xn*{admUP)cE+_S1b&d z91x8+BrhX7p<AlS_3-fY{JbMED~sM}GndX}w+SMrS@Hq46K_~5A~;&D(U!`Fssk-a zhnLIov;PEVl*vVX1gG*~M#mswj}!LZrsQj*VzS>=s&v^#e0%0WJT<8B27g=}T6%sd zNOPJdJxF@wEqAk=NoQ!&?L0Re>*s@}B}{g(w9CCI=4R&#WGX(ol_N-eFNEa7wqeoP zPMCR(0cYti_gcgv!5sDiyDaE_H&k06;T1p^*E*nLqRfp8?2T`pTGBz<;;?Px))ED- zB%`tz-Z%EO3iFe4&~qDt1ZK(E)q!6+BMT;7=})_&&h(duPVS62!er6YUt%-1qB(aV zpg9m#lP?qP2W>WHROC<cKcvz#K3=odXprV>g=L;KRn_ke$nF(pHw0%ytPSN{-y{>a z9+hcMkyNBoAh~y#Ea-2TJCBu<<M`J4wX@UR=l^qaBESm`Kc{9`{wzQGHruB9Q(R4c z`j>}9dPZr6)Z*6xlQ8hqu1b1_C6L?ysGIrrXqjtD$R(S*X~(%?RQs!}oSZy?z^`UB zWmlbUCzjj{Z`Z@oT<AFgvv~NoLjvTm*coFEnTq9H13@m6u{b}ESG>xTmSrgVM~-@b zG%mmU)hB-#HTmVl7N3FFa>Ra8Ne3KUpd}Bt&p~(qbqcEfOovo9JwYaXwbXu6esS^N zW2JNRp3y00g7kea-1!Q2e^Y~uo}T>-2zcBZn7OAkHV>ExRb!z^ru&9(^Su}mbFkTY z%9J0q9G*Y3E%VHz{PWR@)xvJyr9~|6Wcya~dC+UKy?u6ON&#q-BNrF<ARtEtGP>cg zxgOM(c_a#Yq<H!M)SJZ9hTHk4kO?-Et(uNy{Qb@rmx=@iO`;`TB>*&;U!9XbQs{|c zGk`Mk+->F#uHvatR}1>-gP=y6)KS0%%_zS#(-QI7(YK16Q&B1&an_c7XAFby#?N4g z1kJ_kV@Wh&P*&}8c7-;^R1;ABX|e+K{0W&L7FZZ_v8v3-)#xKoEqI*xY9bcn$GjB9 z5BU=@Z?Y5mM4ztkxIh1%Ks$YS6v3Ob^ZxP?L5&)y7uIh2aCOpUawu+8@R4FwY^~8x zrG`*i!VB}oGejU@&h%vH_2ll*s@M1V0*Cs;`E5e1nrEeP-^Dpff)0wMjn(m5T`M$} z_{4_MQLK>7XnaR3pJ1iZ&yXb`<0-AN%;>OOEB%tbUMz<T|7ts3%AYo4HV+oefLuic zLF13;Yd^Y3rTQ%UNc>l2=;$ou2@huL2wtz1ShbqXmwvtTTg-g|NO4!y-FG*xwz*^Q zZv=X=l*mh!W}HW%zoPlx25g86nU`&0V`e-m_CU7UOPU>Y|6Fvt?M>kOy<EwUV9Ak! zx8m5QrloJ$SsPnabHs)I@kg?;c3bXpdPi|AbhNQiRaIpsv=Wn?BTGugIyx{AM~yEo z{;`$LrOZDkJ$-S1-_l#`eom-9heB!=uz!5H^82@>SZ~(kUJddQncwWRMzcERi}$ds z$iS!(DQ-0W^3Ml>oz}`2ZC*&w-QCmt)YOm-a6td}dGwNore;=<N^q1<VN<F%)Msy+ z*Dgcx@qfpJ9E*CAqqJ+DDTZ)B$tw{F%{)4FXOR+QlUf-yH_wb)RL~uL%jp4wx4O84 zf1XG;scZKk90Itki<%u+@uc#<cg7xEo)@9RSxA|P3bi)~@ENPB&W54nYR0Adx_il_ z(pGOKU*Hh)@`C5a#ztpVwc5W5XtLPN<_aX>@1f%0K(@C*1r;WCDH1H_oZ8@-`Yylw zc=qYKy1HunlLo1ujg1LhDzp<Ddo|^3xV4ZjKW|EWOQvh(o9yEC#9w9y;4k?2N4vXF zYR2B&+}gyhsLYhNAsxyWXmCi6dR=VGJBP8e(vHr|L}g0b+E&h3o!-tJavXi-HX$vT z5Bx@LDWX;6&F5aa`@?Sq$ZGwoh~VCg*yUqf0hbL$HA)LYG7Hj01ou5Wh1>ux?s8c` z4w;gfjFFQ}#^mG~ti*U7gh(L!V6NKQ*!J$`InAb-@S;F4g#q|^+``H-FL#@=fGad7 zN4w0pZHOROij4(5rh&Rtk)BFjGK^jqE3c$Ny}FQ4@3+A3Y274xU3t-!zKfla)Ylm< zju|CAA?RugLu2NfItiASL-JAiih_cFn@<IH=`@E8SfJ7WKL(`e*dL+6R?u|aN7Vw7 zKv^l-4^R&69{r-Q3d)AoZI#qpmB%+)t%7+qss|KuiMV~EiPoTb9&26hk&MG)+d|=1 zv?pR^=!Q@nHA=wUWCtn%(xDK)hf(aG8EJQIEeG2`GY+Kwq@M%wp+|^I6VpoVp9yYa z*xDVAu|f}VJ{e+<2~T{bQ;zq65pLG%3EdIa&gkOT6AvZ$?_ea0q|n8o8kq#E7|Wgp zRWe*I<M1artleFTxML#TT86Y2W{`u5p<!)OlqvovJ3G1%6Q%bQ#~3@CyBi0)Qe*Dy z>Z$j~m%B})DWN6ZA7K)v8zp3JHuv@vjxDnaxfC=uey9pVQ@c<1#x&}bC1n>#flwHa z$K$wQ`FpnBnsHxbspW_ax>l_NdSQCa=_wJiK){PD5;A<#L|Tn!9Z6FYJEWmC+2A8H z2^7{eC0*3q<qemMXTBJL!G*kGgQ9OxBJ@o50ZLQCzzAZzp`%cy_l<%4-yagAvcDkq zn-4K9YGec&`TZX#<bRk-^p1hwzn$YrYiknys)hpp8|^46;{9@yu4zl_5^f3US73p@ zMh3htw~-hG#X;l40oF)dh$DQou;hqPs51)+GeU<!jH;d#7aqAmED;_ay{kMW8TQ{0 zNl^(MXXNF{T1jN*U?@?1GO>_J``@`sq^kxlNUS++Z2s`ezKkgwEUcd$ea4krBWDv? zp3lsBSl87ZxrBm@Cm$3p6(l)0unrhTQo=WNsZ=klC@9N$Lj6?g24z=2#qIuOK&Pf- zlS;+EvV)3Cj2a*?uop_9zArKW{m4O1BZ0nFdpPx9*jB6mW1A}QQ&c!YoL~<X9wK6i z17l{FG-(h<KY-Mapoy&3p8hQDZyLTxYm?sF6l=}OTNoEgpm)9G<D2Sq!;%@~mL(AS z<?BW&@(}2tEvobw1R6MRqx=$uE|21`Sxp5!IXV(%T(eMHYF66BE`9{r;{FF+>U3Ns z2&xR&AlSfJ(>V3V8*dC_22epClAd|=aI~dGE*mj7Hs0!Z7PbVBY8udmq!fD|92}Sj zr2Z5AHD{~u_wNgtSTG6s8)<8-3R;+&kNywjOstb%6WtVWb)E4Q;#_8KT>5As^(nHq z7K01hua%G=ifz~BZ@xIbt-rLE7OstDX_$n#&;3W2c)7_mu^3w11M916C#xU0kV@L< zeRzmf+3s&4WHAGKQPXJCp*lw8;9M;zWdENU0Ttz<f4?)bO3;dglNF4T9rzRWA#;BO z1b_GkfO}A8lZ&2rH7cy>Xi1hDj4#!;Eh&DVNXs>>(Dx=sc?c<obS^m4!3Kt3t>v}w z{e-UArbO*sNbTr8)5}Rg$!dCkDM1^(aUlb8zx;qye33bsSllj8C@lUVM6`AuXW3m_ z2e+a`4+nNy)Ydku-Gi71?_=K|43ydA!hf0bMEc$aGD+<dRz<(TH7Hok=W98XkX4&u zT$dn(mc8+&Eu!#o(KlxZ(J@g4#kso0A0f>~q1y;Z$gc!nq=%&RmUE>z?k$exQqRIE zQBH|z;kg7s<O5(y4GEf|us4u89FqY3@C5TKCfyR#-1KxUBg-UuT~5dqIu`2AB~P#) z>1>m5h7^m)u)tL$;Tm)_{iKuA$@K7TP?|ppstH8hhA(&xO{~+i7<1)OZ`y^_FpTsG z;SvQYDy5p2iWld=3UB|g&`SYV@f$NWfQ%J7(}^Dd?1QOgpdR=cl+@rO%4-?qH?^o& zQd|GGEMWtwMs=HUa-n!tec7VODpOJ9wuDu<m5iG^RoZWAim9Oy5k98S>O~!$RL_hQ z-Tb#tZ(@8%(ZGMyTex8e>2nkkd=%2>xZmZhq-AAgkV9*neXGMmn+l5`s)6L++9jX= z)Apk<d5LVCaeEUJ6VnxgdbL$ZlYJ(xXm%tAv;x7KTU)D@6g4%tl9ca13I{b&jDO!M zLH=JW0eO?`|Fg0L1o?Y3@>XLasH_OJ22jBjqk~Q#EcDm+!o21GFKSZ$_W}KnmAd@j z>DJQO3cBR%%+%D}0D5|QcJ|n)l)skT^s#T>KL}%Ooz>RX7TT5x_3l5)S(e&ZSx<(@ zke0>BB_vF3Burg7AQh3l&D5w!UnbP?OaHob$i_D3*3jtMz@~zeKN~1Q+PYn!tn6qh z>M4q0APe#>sVR|j2nT0xzb0R>Ql2QS{aXdZ4AbZ(CS#2L$idFd9U95=RuMx$nYVvv z4S`sz2yY}ZEY(FgD@$sMT5A4-D60xr&|sQZBjOPF?>N0l3XDttpyQ(nIYlPTd%L<( zc3P_VQD{vhbu41w5=zzJV$(>;wsB`d3v9e4p_LFY@p8cuqK|N)p`j9W0%a#Ar8T54 z8^$IovbMT{hL)-gg^h|jGNfr`?}q<vO`!BMyC&e17-i=C^eiLWyb894I~pdCl1_;= zDkf%TR&~M*lv}C$@vY|%A;Dq~PsqjKc<8hx<X2bAPhaO1ny6T6nkq_i%6;9p+N)#S zgtmln{)Za={x0O7F!9NToa)rN{G5YFXkgLFN!L(O)3dPfIWAIG75ty3sd@3APS<-_ z^Q)??tP5+5zrYmLMKC8B2!3Llm<qZ~$AcVNxx97CrKIVZ9Hu}VLPRGg1!r&Op|bog z@<28@gLQV!_A;G>1uE-;$l`Ra7@m|jk`FF$A=K@_%|#3}Tp>FbRg3y@J5W`MxyZi? zU@G_4NbxQrJlwo9dz&g;4kLZBv&;@T<ISabLBsH&d~%$AP!cswej+e6L7yvr|GpQx z9f=azy^ZBeBmYbUH5~9h5DY3Xn`oxN18SNx=MDUA;etNBdsO@fM2vwgF(lQLqyk#R zfL3Io<5g5wr>@{{y^ZphL1bWjXq&dHtgWRd=p7uIF?vz?-!D>W#kzoUaaw2>FoR2! zpX!R+;wQsfT7nPJja8rmVyl~#S{z!JPY?Gt1ndIN!lE)lJUndNR7X`kU)#ut7{mlZ zJ_{rBUvFCfbWJ;o#AVeJ0Y+~J@Uw>mOOJDxK;4BB;FTAYZi6loFM?Pbw{~)RU=dS< zNnHf)F&Io9gr1Ib`0sQR_sI{+FhyKDCjKslmaCX6tEh;Sz0J<|lA4Ml0H0!P2)UJQ zWb{U%37gYff5e7)6jan=lD&y!>>(23GSzbu|N3c?zXcV-USc8>gUQGC(=~;!Dg6HR zCt#ozC#}1b3{s*0#3kf7gfOFrw!9go_-}M{Qp*q!$Yhp^dn!4$3Gnv4FwU;7WOY>Z z?D8z)+<{4<q1^wu%Q{Og=ZulTYEm=@xZ!wfIA}OWZk;F6_^)$_`PofMHnPZC1;2v* z8+6NpfuTe*u#3D`v4d`#Z$?p3R77MtO=_B)m;OJt0fv0GsDQPvzb}9A|K}$1f4Tzk z|I#cAdbfH%n?K6)U1HOVU}v`YZ?VI{EM+XCP!K&R2=Tbk+k{6&x!m24tgZ&pLywrQ zPA->|b8~e~!$}kh_7%LXcD9u?8s()01=*D)G11Y{k&%hr`YI|ktqLhBA;F>3f6}`3 z4GawA<YHjIn`(DET?UGcm{n(S_$-HS1esMMAtJ`b#3TfKgjPk$$;lzZ)Wg787|_e~ z0SwmH2NZIa8hu`&DWURHD?`J{I=@4AI~}!}o47$Y={SAZn$;HafM)?UYCTS$=*Pn; z-Wv6v`Cy>C?dl>F)Ix?yd}H#Vxkx3?nJqXD1WejruQ+&kz=5V(u#Y^xfc0>p6F!XT zJ6d+Li05=DEn~mb^>`OCLvl)lhF0(KYSgBg4y@7ZY_LiSmEtE;Rw|1K4hwT3uIi_1 zhsLV|p&!)tdX`WRB;@y|j+Ubq6%}=ciBB>0UoR$TzhSpullL`8yEwl-p7S`HM1^AU zurPzny1IXoSGNxihTjR^Bxlr7vC`UZr$?xiOzbG{ZI}H_shIbHW>?@~;@P$*9BPgL zK99c8F)CzW0eSg4wVRKfxA&#!=@ftJJ<4}>1$g|0fvNuvJ!w+4mqAad|F%R2Zf<V& zN9SJLtisVBD>@%c7Nxbf!$G@TLckjAHio>vKh&tvO`M=-fG)Mlt}Fcd&)dH-K#!IN z@r<(9JX9!C`|I5$Og!Y_`dF*ObBb=oos07cB!GxDD&V{SE1+C;6NY$YICydU>~f*7 z>}O&JUX=lNlS2|iZgxfn6$OFXK4b=aZ`|OI$KUWsiB8Y^hl56-acmVVjHJUG?12ae z!zCupF|Bm@Cp=+GZM_5v8xgJZWea$Sw>q0ad6bV257&ot#Sb?_CXb(ykW_hn&!^R( zF^;#QUBS%Zee0Qu1&1=?!cF7?31lFbUt*+s({iKrpEmz4Xqefc+h4;oEH0Pdpu@FM zZNywRl9QW@hl{JdrOnIB3lA4}yRoscsfk((q-ouM5ECBm>OzrYZ*NbSqkpB!KCjMx z^~&1{t+Oih$M{=Y>*#?ZJaKvgfm9V&i%-~EStal^n?du?jKj6eM?U9QSI$YJ{1YvU zoHmENS22@)%fr$N3TY$iQ2dYI4;s}D6LEA5&nUCHzc3p~rRppC04+1pc8;j1@G(@3 z4+&}g{7hZxyt2Ib6%WtJYIt4X?_u+4Y^?kVVa}Csku(N_azkxb4q@6X&(qWWA(WCR zAR(>VA2731D|VHdd(@zw^vCXm(`NJyc)WjjL57ECVq;?Bm@u=q*C!6(f7r)|d8%Ue z4)VTv62ojp#$z^|j~>!hM%Zrd_I(k}Kwz_UD?USBaQGu{ZyOmKTRh+SYPWQLH^g$U zLpM4Wh74IR@JaiVilyu9dw1ux{?g0ieyrvW=e_#__QCaZd1`(>R0cr3%I9}u3?(SS z;<6OoiI$xeudD5VsVUT{3YYW-z?Wvb-T<AH)i(R%dO!@WBej^g_<ZRqCmEUQMpcD6 zt@Tt##DRt7QZdURC&}q_2>N{rKIHk}8Ym(mf3)10t5Pk|JiglQR{o%1Hg`$K$=M>F z4Nyuz=vT?+vyr~7&Q|4ZQd!_9;`dGL?lK8uN8F>Z9<*O9Wcz@9?}NO*?lT=cbw#)z zrP=9Ta8?XemRxTC?=l~(aRhu$Hg5=gRPj5fpxKNrzc!9i4T>Sx>IYKC#Hr{%><+6^ z*!NJ6LATY`sI|UmXMLl7$0n9QpvrN(>E+q`GtOd-<3?Z>=T%Uf)8+V1#R7wF3&@y~ z6QN)X$Of70a)V~H)p+sfO!&M%D|^l)h_ug8PrVoXI5N42fsXF79X^c;M=2<qO?$)o zUR+$9R02t>$v6hAgDFmgX<5Nyxlf7NIcr7GW;rz6c=+nE{g-|@)|tfj{=x3)Hw42* zbv-60ga3oxa+7_X@se<t60?-YDPKCTn|mS!DBpC5U916Bui0D+mk{g%xoG6NOrvaX zw9nSQKA7E11XWep85_%D@`p6*cRR_r**bgNDl&zYEdl~|F0pF>vYA5UQuI`CC`1KO ze*8Sr4sIy{se^-*W&;k&`GG2s1qO)_poIp9M~00*=aX_v(qG69CL!TemrD)Qk~&+3 z`IjHEKRG=2(+%IqdTP|H<{>_NrqN}TJdp8H^S^)g**oz=NEjxR$*oqJVTbbF1d}x! zxyD5N-rU|tWM+sc`I@q6a(L=)C$l*+2%W#9mk<-5de9IOT=UmyQ~C#DaEvT1OV8|I zUVaSMYZw|5zuB_T8#|C%Vxg&D$$!NHBK=y#5Y5ReO4r&oILtVd(({xBC}MMS16Gh% z`|y_}Xr9&W+9zK;5^oD7l`8C2m?{j{psC42c3YvjGO|-Cx=#&Khl@oXi5XJ+FF_J1 zFJ&TJ-(?URmiA`?O6zr^u;@CVG5JW*tWT@S3nuh>UE^h<MAA!g&~!?Y)l$AT_$J#2 z*nB_<U^%y}kOf|1R?Mp;{;e-8o7pS0Ge`LJ>1ZZkG106dX;hZ?K@SC=+4%)*rrNlZ zcnXz&YG!nYgR54Vw1HD9r4P+^VfJr#ewV_limCe%xmO38J{xjDGQ2BPE1=|T1nl>2 z@zDNampulm_J|wxl}5Wha*3QjseJ7oO74eHgUIQGMXQ}!iCSoR`S%EP@aIzlvl=Ru zY92_eGnB40M5)gY1Oh#v;MO^wBhZWWM*|ZdzKQek@<Qp*k|Xs8>NtXB5jHaUtodP} zij~RJ@e0Zg%Ff9jpS+`DcROu_*TPAbqjjel^U)n;)BE8@zDK0tK#EU~SCEk(A`-0) zA|viISjT1Gf0M6=zBXO$^C|Y-f5yDHy(D6`jUMDt5h-krLn$gU&DJx#`6I?)K*bjY z6H<<mTk#!hiv76VsD<-;w?ruWG}Nl9Ey>Yka;R%4xQF8L+ve5N3-v`}ZipIQyVGYt zMc4mok}!lrNv9X;Y_zK8?ScnxYjm`BlsswJF!VcIQ)EICOaM?qWv*H+NG4&jmJ#6# zb$RGO+{w?nx?Rx%1?kV>!w2H7eoz<^V@*`8`4YR@QF^vaPvvf}cx*)>hkK;x{Tyi; ztpS_IJS#nol>HA;HiR@%@mK|QOqKqsmD^Hg4wGfka}+L8kS|Sx+sa8?ZkOW_t39}Z zhXb=?61sa)sydYkW>`UM753zbHemiT#OK#Z_3>*JgkHC9)2KHL7Q%xzm6kzvupxB! z^4YV@oVLM>CtAabBZK=+Nl?U=JeSl8Ps$91e$I05<vI$En;V2X6--$cjmsh>Hp%O6 z>QI*0*J^q&-P&2d=z4jx3bj~N9TCbc_3DMydfcDlf(qDatpzrfkGtho4(6-Xy7leo z!<OsaESw)d4C}P}t3Zo<W*llsy#49#OU=|b9NgCei*(DUWPR@Ttzr&d9bw{U%q(q{ z>#%`h;^TDM(0!__D?NuKjou)|;KM{_yP_CQu~YBE^TRc*vZgZ6{rT1&lsaKBQ2OH$ zX1oLqwp*<*bTISs1|leBNngcJ7fJW`^-Wds`)@|qs|q<>+zri8XL6=!)!Q~kR_oy{ zR8`V|@LD={<?v|QBg|3R9w?6hMIe);S_ft}8vxfjw}-XDdU0rIKQy1B+U%vov<oQ! zii=zM&ibhf9_Ld(+^MV_#`iqqvX@#I<s3HWzQzEXIUJVCY^_QTMn+0JRM;=XpgVh_ z&Pjb!69N*FbUnp<#!qZh|DUSX-e+eK^^a)`22CCl_BZzz{r&x1+}w66trAOl6j_Bu z4m`%_zt)MjjFS#hGVe$Sr{O=umL>J?jM<Dx*-%4yiD!@5e=sXfp`M;XMsjJbDDVp= z?7Jt2tpj<2mGc0sL5KBHBR*?(TyEn^@Z;%ffFyu@waZ08thHLX?*hnCg-Pfj;I+93 zVcDg&d8hUBrkik;o5DsiuwX#GY;mfj_1k4=9}63s)m;73Jz^T>+QY*bPe|Fr{Bb+N zse_@RVu`vi;%as~imEGqvD{YE*kQ<}-NCjK>3}S#Up?fu#NmE==TMb!tN!Z)F%<Zy z)-4l;;@uFN=ck>DRP_u0)khR+J9E(VR8BU~Wrx`$K$-M^F?ZHMQO4iDM^RBwP$>}s z6{$r)8l<G9YXMnGx>*`&B?SbeySoLJE<tkXZjkO?Vqt;%@%x+K+_`h-&i(7o-2WUT zo_+SS&pGFP-sg2JH<f8FP+Rl4H;R5^3@}A1e)puJhgPWr*6rnfs)cIf6C;`af5E$< zI4Q^Wpf5=<-{6vK$7CC%jmR-_5J<Ck`gNPT{V9nlQq)SdhU-n#7dabUow84z&39G5 z+^i4i+Jb7jtA=?|XI>C#ok1~0<X|Z+3QhV{?MkMJe(K5|C1R~5P?&K~B2aoQEgj4R zG1MP}Nej>|pGfyeynAd6alc>L+5IBj9@Azf9~eOsM8#X9Y5XGt<TONC=Hqz<2d|>u zM2v++SB2h$rljqtLA2zaaYxAb$x}>2>Nocq1CG@F{rnjD&daQ}N$Tp}V^TYz{ng6> zXUJY|#zKBKXSmW(hXWMt&s(9GIf)*T><mFyI~6~tr3FVs0<ob+uPcvXA8eH^`?M$r z?csI*OqUw}1yN{kv*2`b2yq|nR$1p6qTi$xXb6A_O|^ufSazW=1Q41hnZ^T2Y{sKD z*Cv|3K3oI;HJ4cts!iJ3?$3LEk5lDE0UUxI#>n{l!~^u%O2V*3QF;ZH>1C{!xji+% zGV~vk`z>!9K9l}9S||31gKc7@KuaS>&rmSDd`@ec>uh(<M@4_|tKcXk{eae7<!>(b z?c1uTB<&`LrdH|+Q}Jfc;$efmCVIH-&%@(bgX$FQs5xoPdg30EEW5XTAU&tAm(o++ zTxHBQ=&QCKOG?eDA}1DT*|cIzf+MDMYTeVzC6!)DdtxUA(v$7aHZj~481qfx_b4f9 zx0+gVK}y_9??8h0hrVI+@1ntyL0idg;z~eh*2+Y6*f147lVj#}w1AGPjEqHh1}~EG zwa}z-JMJpIakuV0)OPU!*#???ytHr!Eg;aygVnXk#>|zUM<?EyWmpu85Gnj<lslAG zSrByHEa*Lnx~xtuZ$b#vImZkb@=J43@F74&nAxd-HZwm`Jbj25gR<T>5v*@Onj0Tk zk>H|n?l|r9e$cRg;MYo_$vwR0D?=d-L0-U=7UevNnEhzz<)1tG;XEjagQNNi@@PpI zVPbmUe%2OeJz!ChO=Nr3Z6Ee#6O=r-rMYM+KPqAZ%XwL|W<(fOduW)rl|620sbW)6 zc>p~h(I|6i@%iF{KmMNA=Y1}8aL~8*=-m~Y;cqSfc~K?sNKhe^Cu(W4+b=X)YN(p< z(yP>sf&fD_|3>yHs1cAU-%f>95v8_Bp(Yy#dS`;{N9NItsw>b0E~AFlKcm}Y#A7Fh z7ridv({nF@8pk<X^=1QqSCer&R4yE$F(T1wQL<2zeUJjCLx{$;XJ@0CVQdQYrM8(D z$flZJZGEGxzk}i~z)c2TjGxx06Il`#7C5Ujqb_&_lj?O)DWk9q?dN_IDq|IP*|^Tb z^b^W6Mv96yptxDl-Sh%(l(t*Hb>GUg(ZV=ETQ85kJFBqO51L$#)ajP$Gt8S5u{?+4 z#lCK}s;I9Y{-h==WrC+uoG`Z8n(d=Phfhzg3%P3!EtTe#)l+$5b=Qv}U@z11v2PWy zL8A^7r>&J6VNW{+#uPnqoCJRseGQ^Q%I}501yTjl`njMTf9z|@lob6vwF2MaNfXmN zgtcMnfc%skgEcDmC+ct{HXtlzw*F?LC$?1I|0T}XX1NZ|;UWC&przXCBmCvfpy@a$ z6)n@zY~yR^qDa4C!;hvIUTam$Z@9!y-ExLGa$n=-VtG7C=3}rXt#=Yovf50K@aZtS z6}fr4RKH0>lg5_PjaXB+`mKsp!KX6*SQ4!y?OMdzCc~CwdVX|7ay3GLg)`dVlHj>g z%@;p^IoLo##lco3d6z6!nxa2tvvD+CHP9DuFAfdg$o0LE)_OhBzX|ockNZ%c5K=%3 zd9RsO{UFlV#;m}Dubpl(-73z8-RZ1pDfC|g8cnt+B_7>B$rD&5?&#=fB)q`c<M3c& zLcyw(R{lLtP0(S7a__)GYR?ho3j5w8vZ->pbsz%;3*k^<VJg`iYI=YNI6A}^*gJRe zcVYJ3sKw=VYDr>(Xbv#ZYqYK{MX>3RqRyHu8##-~O$85M%J+5+^+)!HwCZR(qx?hh z#n5ZuG($U)8C}J$D!_A>+@xmg#H(WDJ>n}oNzHHpzTr%!WiuM<Z)tRTS-xewGP2Hm z_#O|K_^kbdTe?uAF}1h~lz{H8NkfJbCYIWBx%!}cnQ3W%Wo6|-;49I{gn`ek7A$RG zrcy@IkM3u!$E8k~b+Xygr8ABnwY-v1o`mC+a6wUVbX6M-?}BMzX%XhLRkE=_UHR>c zxuIE^W0=f1LCzIU=m+E5Uk$qlCr1m6*p03-&7vD`eusN{xY=dY*3=X{i;%qTrQ4Ji zFXFXzNNs8ojCD_V{@gvl!eUjRw6URqos}!xOHz)<W9c*OWCK2tlifP$aB{)qH2bxj z^)ARv=!EdSgPimf6j;WN<;3fwRVkIqfQY2rUQE<eE{~HSa`%|=;o}=<J_o$tfmwWK zm|iwF@{)iuU+|VL7$B30g=m0!-oU^>MTO9SnwpSsnUHRvK=2A5YsC`ys~}M<GHy4> zd$}p~pUvv4icL@20xRs#JVD805nAiQ%#6KS27R8GXQu2)-@Kx%#OZ=T#RusbcO`P~ z&o|xBdwGDtE%7E+uBV9dXTmcnOq$N2&jjOS@Wg|NGP)R>ALM?%y1wePTSd-7?c}4m zyp@<;AnP;su1xZ^xeB`U_1zt`fqN@IDk3s3$Os6Oa1x9jGBPsymF0hK!GH(SU%Lz- zBLS5PHU<eM=~b)Q222COe<{;j(RyE%Asum{XVc96@ztLUz3#KXsff$+VU?)&mvw9| zQR<v~3}kVv8c?WQRI-6@wdp1jjMaAQMkQm*&&Njwl;{W+FMa3&^{xA3fhxU-ItMj( z>v}M%CN3_n<W_=_L(LQ6)BglsDaENSg$7OMJ%)OzPgcr9MA;Wn2s55e<$>{W*y0IL ztmJb&-QxH9X3oIVF1ZBTt(uWh-ObfF{TCh<8H;G4ToS5{v~a>2>a-24?i`$)F)Z3? zb?pI8!EPrMMH!3|%My=jeux*FL5J19c%wumL(ewnwA(wzMtTwpIFBY&n0yuDIW3?n zr#8|;se)b%N)2(Xn)zZ`mNorL?LjuLQJZ5S$pIFt<#!?e2V|^vnCReKUpgNd)&lar zq{a`|uDIWk^28Ix;H*<Do73~sP|@wmOSXtleF`rru?AD~(9=m+<<pK9<)L9oN1lMx zW}+CBzJWn3gL!c8+mr3_`D{}mUr!^T6F^zj1nC5d2Z5xtS_;f1r9tMpYZ<31Mn?Nw z#hQ8N@{zMLx4tGZWg4h}G|!Z{$Wl}uJk2pP173SOW=Q`EKF2l8PrXduRa5eX0&x}Q zKPMa0E_>cIM-$CJ@jDnIgdi;|)|r(jr3yh6fXVFbl}+TdazG;;{RZB7tYQA(ICZB+ z|B!Z8$z>1_S1;2S=Y4XXHJoq2=ZcM#4>>y=Szl$G=uhGGli{2mA1~0j0tGn8V>oeT z<dO_kCbSk$MjQUwP{A8Q-{9C$<Pt!z6BFhN{4FCUed|$q(6WYi^gJge|E&c)P-;`> zlBUyWFkG!-B3}_b4%NQYY4+?fB0Jd{R~u(^AC8K5hU=<v{p9x8r<Pz4?6fb8=_|Li z#8vTZY8X_^<{sLQ^6UqST00veJXE9JJbx=vLJ6H^H&&O~Az$ZwlO9<igNVw_CAIo> ziT^C;J$tyu2%QP?>vD0lWi9XKqA@sP5zQ%1F0sX*GK&n{1}FpjhjNyP%%bS-J-k+5 zYqJ7&98kY2#n_q3z|Yo450{ERRVhx9?elJa*$5jp#S}9q&oH_@Kr?PK<@3~Q<%U{C z&!PS<M&9y~I7ibw*ZH3DXYzqc^eX$XYRMzk(&S-YspDq#g;zS>Lt2{_8Ah7z3>IvD zDJj<VZP-P}FOrikQREOW*avyo8O6H|UB9r5MpC17p>ABFl-Bt4<fQ!tij~p@gv%um zuz9i0>w#4}Fw!BnQf+Sb&kI32Z)PnvC7LuKkZT!tnZ&A#zY5WRM0|63x~EfaXe%Hf z0AumG#yDPiB@$O{+Ya}?4<R2T)e-e7$TL?I&URmgVPBj89X776?t&md_Y(hw+W13Z zz?#ThT0tTehb)eBI02DJ$q8q=WVYFZ=0x(86F&V3lRQ&xk*&WGL>oe$$5VGb9ik~N zqxOPV|2}7+grvCJ7gy`)2GNuB^I}+cD86d7lN@n2^@X`~^i_bqZ)0+DW<^CgoPXqG zV_rkUWF251)Jw;{uPGm|h2#rN?^iFZvn<dT!DkVwQx%VP77}|}^R9D?RFj*o#&_#N z$pjk2k7-Fr*6{J0bs9b0fWk#A^&IP(GX8NQkJ;kNaP+oGG?9q%4;aWI&vj`-Nh-|S zm!?k=7-lwx*NJb!JAXW<W&g`r8DTkHQzvuQgrpQHWjw+-6H(VW?RI5<oO@ph#vFfX zD4D#KXM<FC7V+Xu6l-*3hXRfl=i&DqguDy1y%<R3Gu4(G^A=x&F7qZaJ(CE%=xo28 zXWC4fz>~S?RY3JobK@;}+_Qqo{BvW5QWbJUtFfsI;;W<Sgn!SpsgT$dw+K}Xi9wwW z;Mf_7P*YTxqcac!&2NkI6;gTP{7quyZkeCL${Yk^&HEC#o}cV1qPO!CI6>%V9;>p1 z6&4i+JsZi9SG1Lg1wlT$+ta1<G^45>`mIp8He>6O!~7E*)E8R7b-j>dPj|OC0F2x9 zwW-Wzy&796`XY(H_f#n2qw(eh9a(1EEv$E-!(m$Nx^qA|UB5bf+lp@><$cn{Vz_b` zS0O-m{8df|*+JrsW@gct*##mH8A?lN)}2wCZ`qmERq1%_O6>fM)!f^pV8CiNO<0@N zd3&_1IIhI9!dPBu=tk-XDEwG-Gk6G9zS%EdL~F5~>`kdo*%HM2HBC{>T&v8Typz(r zt}fXUimrXj((KXXCHcnfR~ev>*n<MJ2La|(6*hl;o|iR0`KuhjB^0)&JMdSpMfFpy zWqSFpMZ|{6i^+QJcBf!2OJLPgu$@ifvw$UxYHxTH@R)`s;B_h_r65%zhUj*u8f7A! zE#?Y%>23?m<S*kW^Dh8oz?aR|2gFz3K_~5<naEQdF!JDI7bLkLubwSU;`QasJUeK$ zmPn()Mjlt5IbOq9J~683nb>wA2~&d2zw7IrY*Tbu8*1EUn28zbzX;5{1m$$Z80^l) z*|y^*CeU!~sVSedmB|Eis#JNhl8j8S+5$o$wWt7#SjKvxCeC}#!pNV1A}?dl@nkyW z3P*)6&hFBw7`pJS;Kx$uukrEm9CVe(c86gfcinM<sti|=cDP~1+Df2-`djVafgcjL z@JzzU$c)w)Y@xr($^`9?Z0r(!>YX+Zwx$|eurKYVaCU2VXPeAWU3yaUkt99<xsa>s z_yViEv^PvH3yA2WcBt*n%M*)Ops;XtUygLxwfz!SXHIcFJ$Fi;=Hz{XLOBrYq^?XY zp-xVs7P7X=5WHR&8{;7So7%VLzhU6-O*vg@>BHZh`7Tr!a=O{<>0V~CzV^mBcBa~@ z(rch<TfLv2d^&t%YYS2@rO}lp*Y5>k^b3wHk~M0PYJZt3J5fRr;l}@YW}L~iX?LzN zTWa|Y46;3*FK!i{IxheQQyJ;xo0|kmb$JVy$aBSG?Pgl8_$D_9kZZ;1={qN`(oJcj zC?yqPNlCXwj7I9bP^MSp&aRmKQOB4)5U+X*?LGz*x!=*I$j;0)?+H=vh)i|+@$H*8 zRZ&Sve-T+^srLKgB81e!P@Y#nlgnY6LaB8UQn#@e2YPPz<2(|&l|68VhsBU{`bUZ_ zL-t>9w&&pJ)YjSF`RpLe3-lF%lg!)O`)H**na<hzVxnWZz+p2Yo{dc<=<dCHR~U4# z;1drBfdUKCMoDSN*f^(_i3y@cAIptirt41QU0Yd^RoGkG10<>!q@)(6rXP=y5QROq zY#HOJ0*Qzw&numZk^-(LLH+q;FS<G>&L&vsE~GaK56{lj)hE*AD6&6U6!JqEpth|^ zZ_sG8klW$#pX8J&QC*SJkBcG>>B{=Fl$-HvQ63bgn~rBcwX)WS@b2Hwx+uxdH!I8V z1I@8yTG2lyclGoZb(`EzP)FCh>yiucF3c6Jez?Q>KX;qhus#yt_eb3NTCQ(-`z2BA zB^XY${Olk<-5eD30`vwyTo{xw*mqdn{&{vBo9R-b1&vF`9h`CA2hz8_-0GAQj!~gC z2e2_<zvL2*IoO>Ed+r#)%2xC3o3JJg9X7Bae53<*R+=}}$LBX(CF7EC4d7Y$1io|y z2nbCs6^2ncpaVI4N1xD;9q7**wJ+%Ku(7_%{-gna^s(9b;5WW1Yq4W+DTcVv#FuUx zQ;j_vN`J~*&2Vmk8pm()j)r$g$XL#!!lWc^Y;0^FAD<Hxii3j#3|+i^`xY6^q+Kq? zYP8M;Og&xip6vk!GS<rnmNhc}Jfk3u`M=s~!9Dmtdv5=K{LiSj&l6k!P-kQs@BsVD zL&=$!&IEAgZCl5)pzl9cULKp;X>>=Lz)Kc9QOmjZV!noDrt?|yr6t9+(DUm*wu?u7 z9C`+kZih*>vkQi!ZGOVSuQ<x|hu#2;1KGiE%az$|O*(nq>_CZ=!n3V$f6yWsKB}A% z^1Kix1WJ1WG@Ypa2u%HMbMFHi0+SBnZxO?v+EKE1`VyA1MRooc7sTujAE9caf`Wq+ zS-pxgBNIWYl2wKc5MM}P<F3I;)Y@DuC%N;8Z*A>nLA#2fb)(1rX4PD$?}V7RxNSb+ z6Eb3A3OPbg&u_E39YQa^d!BNDFD0`Q^h$X9h)#Jwc}CQG>-Pe3K<H;NZfh&`Iio^S zEpq%@YBQjgIxu~PgH}V~ZJQx2NTQ;k`-OabAnitDGOrhQ8AFAksU>dM_s@8yAJTTJ zAaCDl#l=g<((9X>L(4y<zeyb#n%X_8yyVa`(;H8hGhjX*gc|_zl&x)2!t;r0Nj?e+ zD}1cKVMP_?NS9%!6AL}-wVkb&9JwElYKvaQ#y=3U($nh@rtOA=IN&#Hoo{9zcg(C- zlAu4BkcQP0qzw6%h3l=A1e%(x0^+M>olL+Qu$jD!a#T~}RhTaEbaS$jdqhl`A_&wR zLjUMqBZK66&0G?7IRCF6i?Ld56?`@+wLrNAiWgINm@=2x3BmcCF0U$2611g{JwaIO zq%yxSEGT-K2pF=HV);+~{u#Kw7STl-5UQ#rYtNds&RlZWcMPx`Y@g{`CYVP+Liy61 z8o?Y09Vz#ziJ0M=o8Pk}wX$*{#Dc(TcroMLIiO3i5idi;7&kF49rFB7G~R<pnZtFN z6&4>pC<^i=df(l#>!HwE+gqd{dhvQkOSYZ8;LpgNMqCeE`J|c}9ta-a`}!gNbev&} z)d7=4!^)|l?!Lv?ir6!_0X4R3fFIuK$PkHYn*2C+qlf1uTBdGn#4|2D{Z^xD0@J>r zdp3biiL7lxWGf%ey?b64TcBl1NJ0YMo|uV_0@H9z!GbIliejOg*cW<X=C4v4F8IZ| zM+?%F@b{-849k;;C%>?ev@3ODzJI!H^1F=R&!4{(biH^m4pn9SDh;N>c=jq|XSubD z8!KBIJHURX`OZtnm0*Wly`^*FCcuZ<qdAAR19j_oN@II#%cfhh=T~9kI*X(_40g1_ z#R7eqS}aHT=+RxDz(I?$y*xkMNi$PZo8in@A$JVP<7Z+rpb8pCeP9+>J~%Yc*B5lZ zUR>O~x^%|!sP)5}Ua#yE)lJ=!ygJ_$lX=eMdEx4c_`X(MEoXOliaNU5`zuC}K47h9 zZER(vl=116U(eG%3D~@;x3ORAzV{Wv%sWP^QOG&XXrON{I1=T`nt>jWB2dd!MNaI8 z($e}nRjJ+GIo{gb#7(6$Vk|U#Qjw!9XKWT28k)|HK0J25D4Qs}3hNcFWH=AW{mU(L zeAB650y8#!uV9VmYH(CIf`DD&`uX`)G|3@KGC3*h*=T8F)Z#d}5tWr2XFVn9tH&dx z-QT`ARgEKTa?-@Z#@)ihBYaX#Zvh^&-#l?6cfzj$6Y3k$w6nFPH7WbJ@rS6EO+gnL zi+hil#m`eI1+cF|H>P%WEs5sYug2LmRA@VMCg4I=vvwc8^j#_}Y_#TFo>(r_2tP6k zORoH!e4ubKy~czNljAn~Q~?ijVmr$fH~$lZt&r0AL`O>KFTU0DYWUp8YqVM8FSE;6 z()U2=D|+DoXLL6JPb+&nC(?NnFve)v3JLSWu=?N%e8HH{lw=n5G(5J_$_=5?FUr$= z%~Yi6M5))Qc0g}DG?O{@B3BESvc}@38=z|j#i~P@@{Bxoz1+~%&q*lzJ85C;d%QLm zi;?PV1i6(`rPfvegTi>zi|9^AW0uBn;=y<s``$v+(U{~kJ+p3o@;Dy2rZw}{jcbNy ztl!3K5i4CkhD7WQFkPP6G9=;6Ld9!p@X6iF8QnEkn54pU_B5MUZs>ppmot~So6~kG zMQX(gnBO;#_ksHX!rjYV-7=)i3*pWAY9~RWI1bTLuk1;zKkJTU@ET~(HLQ^S0<g4@ zXS09a@+R&Qxw~I%Cck$E-Km))`!tcMr_=$b&}SMc{9bN<yLi#08GVz!N>}KR_(289 z31F5Q-qOiYT9Wv0EdX3l%ygCI%Z0i!%RZ-53}NTPH0Rehz82RrqC-Kn8**wlx%~A< zEz7ZP1SyMI_VA^RTfu6U;V$AAB==5sq5o#d5>`rzBE&HX(wvLKM<{eXJE`>nH*qh# z^QK(+fLx&k9y6ZDcbc4bMGx*Aot{mzeCwBR+Cp7279B6l!l`JI!%4m2-WR9rfY^cA zc5>d$A9K}KWPQGc+*DoszciMoK_xgiOjNIzz0iI*qCV*W7%`V;TWJ^9!RnTJx5B3% z8;ysw=04pT0|gMRW6eq$%h_NVUh~y$!;;+OJFpC7&z179fk0&Rm3XG_{;Zn_Ef`~` z<~38QcQ`5OJxOii`H_P7=qcAmS$_GO0aj4MAwnJ<z3pT@?W8COzICiKE1uD`RDR8M zx*mj_WLeZ=mc@!yeOPk6gUnP<_W8FT^|@ySkLrn=RHs?u*(|a#7g2*OHdi;N$%0;@ zr&Ih5n<L#OwDNU-s=us~#1pslOi<DFe`0RFUd_7HTh3+5eA!PUDJB->ZXBUQB{c(W zdh@&f%gNpk7mL;E)g%XdHj_gM^nl&Y=<2G4a~It``Gn|Bd5xvz?asgtkEWJ$m{sHA zyRIZzNZ($jwyM7Z#9j58uO1kT0pN5ldW)8-%CvOm(&chHE%mDU?eC7wC=9pHsIOi8 z>0}wcoq6E5(UZV$vC3G>aslWq?CYh`1F}gD8X0t1OwQBz88YqnU>{d>!_}T>I#UQZ zACkmg4;#pd3+d?@Kb3BQ^WSaOm=^t)7PuQPWzqcHJRWblIS=W9(hcZD0{-$*rCZO0 z<$7Csd~fMO0#{MAp|P^Rr@o9j98BMKT~n{GvCOq~s66&@dT>4C`ky;~Uavpb56%(9 z%@S5@QeGol!bQvw)vOR!#bLYOVn402l66USvaM!R4Vj%-S7L&2F`q8yQURFqdX^hj zV_oH1s@htA)F6D`LxiwBi0B`~j~JfEyB33bE?@Uq$uIuY;2aQZl7GfBjH(pMS<Be7 zz;&lBe?4c|eGepN-;kuCT5Wdt!U9O7qRys7^W2RL4L=aB)kc_ZFTQc(qB^(w3MTI> zU5FVBsR+qsXmDZ6Hp7pe?g}v_3w`st-x!cxSOxHs(?g{ow;B^MvpQP4BCSi|dWx&d z*iNu=7*MD<7ab&v&{Y+AFMmfM#;G1HXpX?qNY{E0tYy3}=y`Rp$>%1H``8a}jnK0g zu*X-tQW2V3O|rI}oF`{g&BLzo0>pj85+?-}Y7eIia~i!)p(saZvxOqX7I!F4j#bB> z&eDy`j6|m$fik^SS$U4CgTY*S&74o0PsNvNYSiI^Wg(9R$gTFB;X19=UPI(*7dVMI z0Z}aK-XwG$0&}UM%wWFH7;bseF~@gP{k=4`+4VSl;pgBUPc&El7kSO#>iy<lzQQuJ z#ohs^{fHG!0hdz<6}2f{4fL?}6m1DO$<}jjNXToVBh#@dm7)7(IAO`_*X|6XO&`dc zEx4(M?b@ZVm&!)eU4x$;v)`pk-I;Y>>Zwk(OlYcP%MOClYesn14(K-JMl;aO%?@+f zZC|*!=kLt_A#FXE5BVC+7?Vyl3S!G9t^CE<U`of4U!>&?M~h<Nlz-nPIzTZ#UB5QM z*q9bR?|FT`isJ@HunK-b@oO$-JvgnM41lPV=lSQ{^T;q^nJ?1}OR1B+OQ%LBKaPZG zL{#QH4HUO`jYL^w<8d;S=adj(I#do4vw`5lbg-Rw`?QL<CpJTfLA%WAj+_eY3V!l- z{Anz5430ZUo;HUi54(V9*3ol*R=T>rD3;t27-9QRXblS~^n5BkCaIufJYogo*qAQk zja7zzTeD|p!amuCX4l~}B_Zg`c_l`m^{YMEklCg)6f)!zlZv{<s7enK=&PeXNl!2s z-7Pcv8>XY=$R!5?tS)UQEy#GJr#OT!U+>`MycVjbl`1;7Oe-B27mLD*aR0lp*ob~^ z=ks1QpI*AYe@EeB>bNYB#MSdGRyuezqE$$Ao8*K}R<ol@XMf&Hk1-R#%I${rv2N<E zpw0L0zLb9<n6LQ2p}XM_LmRMk+v*M1K2NWdbC2n2`+`_Ap{KSKmEq?FdCLUpHZaI* zbSmw4>6Gu1_PB2g%`RD?L%|Q@8wvB3Q?a<OS}^6%W9*m@<uV$FoYo<zD$M#U$A^58 z_b@#V$c2&73=#wHoVK2-rPh4ewGQhqHeEVA=Efi$=8iVqxo^9E?lULO=V+IzZW-;8 zx%Hhe<mvD7yM%yK|JiF;S*-rYC4TB^*0v-ask7%V5QdhWD@?I}ec9t_nz>^|v8e>T ztq0%lsn*4)1s&Z<Oq;5-Y!Opy%tZ+6G8c192?}`hG}c#-sZ0$7stHu@2^x)n$yBoU zFJBoe-Ay??$g>e2!7appxN2aITB$!rn5)6pyd8^rotDR`Sqm#bB!*a(b9YEp>oJnZ zEye1&-tT*XtD3~ocU<V0FkiOLb0dPN{%t}H)7RuG<aRuToUZ%zRHJKZZ7oDJZzi93 z6hI+=asZcukc5)e_JXadELZOKZuC$SS**kcMSmh|kT=EUKMD(UScm124F@+Rzsp#I ztrfF4BO_}>ea_QT(?yI5-NTqofk^L#FSwo+qwhO}43Xz87{2|{5(Z)-ZcKbNlqfy= zUhLKwJm_S1DzwS^dI0#PRg^*+k9#Ke3q$3IWC>Eg>+X)MD^JRZ@q4Prcm`rvyl-=4 zmrdbKRJ3^X>omk0TH-!<ka@o+$E-!C(GYjRQyLzjKZ0_xm`o+FrkpLePHDZ4%GVt* z^zc%m*6ys5Gn}4dzy~Oia5*nRB40CStIw&S4)Hw3Uv1>tq`1qHuOG&x>k~%5-PPna zX5n_*YG&KcpXP)dCNDL6gn0#w<~g6W*mKE|fAtKMsRz(?cG^cOlQk(zILNfVW?AFc zU`TmC6I!B}pqt7T_0g2LHz&WQb-)}hybO&FGV&!z_dwkRM{!C-p{oRSVLyvSTxVFP zGb}g`c>9xA$Dfc*++)VFlpQ9tIcAwKjJf)xvSPkF!|78z<B*t5b8{=BZWitRyLkQ+ zseKQLg$&oM)=%XmAMVKyj5n*hC7_d}pFe-@05rkBp2;|8+i&bGs^yuc?zC^yiyPFB zoN*d|q0*~1)z(hF)woQGH9cL1^fhNVKL?LsLqY^e3a?R3@6y~a9Zu<=mI*8@N}fxR z0#>9}gw2ncs<q#97>p2cYfPmYvo$ly@&*pbK3pBzBn&vpE=qK!v^O(B{nBwa)-O<F zFiB-;S}#gO;Kq3lo5_h+)&Wtl=Zr@lMCjUP4X>LILDQCXUi<iLW~H!bJH&I75k!*V zl8X#O3)sOxcNJJ^35%7hFTl*RXgBs0uw?;qZho)qsB$m2mwK_5{1?KjdAbmaj}{LT z{_MhNt{@6J4XfDOVzq)M2q*!?V6@!G*3xbO%hAA3+U@uv7K`LaX6^1G*?47|pjj_e z1Z`elXmdo>EnL1Nwkoc}ZCh49GFHQJXExKzHrL6TI=AxS>OU+d*UoGJZHn$vD9r8O zO+0Lt)d`}a7vtnb3-FSv6Ery}n0>fbLTrl)iBuI{pwODrvDpt6Ny42BXDZF<-R~Eh z7=<=>U9Ky@7?o%m3=hS8x@1n(B2^6aO}CZBN=VtScJfybhejqiuC8)b449i#m>M&B zgOLq-T#HL<;Rh*J#gp%&f|!{S#)++YH&jgn5(xvUt^g}o#i{VX46p=|6ar#_lGod7 z)Od88<!jUx=-AlVFa_3Rcv*&(Pb*m7ay_#iiOBCC9Q>;NCt(pZLp1bm^rr)=%8*PN z&4u}9W@ba2VJQv9+)7*-yFXjcB(hfvx!)u!Q3`oPBAF*eMwJ=7Xev|7pRLFAuY1eo zauPGe9LdNaJ(s($`UEdVuA)5SpyAP8#0ACW_t;=qd4XRcBU;9J8K&KDH8S4G-0Y+o z_~k`3-YCdaZyBVBWx#`+iZw(h+ZmmuW9Z+^3S>ITjs@U65cp}0%e$$b{|lxDc9}qa zR<v&pMXDc3DrI%M(r#aB>Jt_#97EpUiy#=)L%J0X?YSx1eEewoZ0sFi2jsm<mElHY zr>loIsO7CxZgjp}V4NE33r?--DXghY|9p!N&8UL;kj|D(Bt}RV>r1WiI$QKX-j{ox zH1fq<uC8^KH_MaxJ<e48nQAT<48s!gi;GJ%cO^sL!ph=3L!eR2Dg~zI{)bFyE8Iyl zY@RLmqbbu$9y75cKDBx2zDjq`*ZLm8%=h@4Q%k3;4n`rH4Iu|nDoX3Uwbd<NABXr@ z9vj0<r&qAATV#3*&6w|<otfDe;b3?)ke{;BNpSz+nzN1{1&*I-rTi+{BInMer*c-> zQovyOs|vi8HOgjt1sA2MG~&BE%gv@2uQ$|lTqmD|o9?FndT)U?Sq%K%H7NMYtTG3p zq1E!&h2b)U?u>hz{tIl3rA5k>ex%S)-cq^72A0s7dLX88V*!~+z8V>p6MuR5O``H? zJ6_opq51X;K_{I?nCb?Oa?R(a6?}o;_gw#GH9m-*3-FZO>2XwoD#?TaqY<jQjTX6# zs~$ByExrDG0^V%B;3a)x<=07+Rs6lHt8jv<!SgI$L^&dW{|;tqJ+mOJoU773sN?42 zA-11`BauVPlN1JxwNDl<%~ynL>nmm0piH2;>`KvT3JBB9!fWJ~CV#Z8&Z1ryckta6 zqK?`cH*Q8uJfYiN@48qSj+H5V0HOQU0*z=_?#@p}L=)hPIZ{u@=U7FQ{~7l+B|be; zb&vJBhzm<?ba^YMglNy!=7zy(8IRHD7rKqMH@lZCm<JVN<?qxntY&J#Xd;m%VA4wE zYi@i*hd%>fi=u-Ov$R!*b`#?Bigq(ZXS%Z@NhrgybF-s4bX7LDAYX3&>;Cq5-7z0r z<V%5MX5>Ydm}Y0$RMT~bi=FqjNx6mDni+m5#TR;!G+C6{I4Co*H{=(YlX~G;ICh@f z&~><Y+ec(l%yTuDIVbfQ<DX+q!gLO;0Yf7Yp_0E?#*wMv_G2Li5T@-Uew{EzqKjOY zPwnrX-Mi;%cK-X#Vd8sM-)1V9^V=lOwT=9qR-d0{AyT|P%!ua+Jg#4V{aOHV7)b`D zC&5p9xyyXz%Uq-&aS?+5l#;T{^H`9}Gx{UKKlxqVO*|fV>74stmQO>9n)jGKJEVtn z=A{d??~o2Z)M(VJKF1Cm(Xtb2I{32u2ItSpA=O|n)G}>_REStoeia#gV40r2X!bOb zO<STQUl~KLFb?O^D1Ay99ztN6J3WJJS3xOr{4IWHVDLxWzJrp_CH{GhAI=RQ#?JQK z(Y-Te85Giw?WIYsb7OmCH}}8a1o|m7#PI#M7O)yMbVnJhOzPXnI{d)m_4E#q;d{qv ztK$R9zI_wiedFSKdBmrXFDZj=BV#;Y9h*i*M2LaPNmSGW+e3g_)CX{`kq(*cTtWMH zmtJvCKT=rq{1ikL_vSi2u-srXGt(e%UK0KLt*wWjlP+xt*#{=P;pZLI1XRt3h4L`; zFw&?aE4@|Cry#m#xV>lnEHW3Kw<cUajY;q>=u|N&g>iX#n_ax2Tl^@GcoPNDXzM@@ zcXj<%toy80k3NXbP|D2fohnfkt#iLzJjbj8CU{esj|5pkiHd0or%}z8F}3Rs(vc4> zlwan9q$9dJDKiow#U3PM(tUN_$_m>oR2ssQ{O%+>MY^@Lm7c*E{W$fTZ{Hx>>>Obo z8QBAp2}>sG31~h#B>1N9=rDoA=em(N%s|X6aI69CKLMC1Q%`qHMEH~nxpxu-ZA}vp zq$BR+lhrECI=i~fSF-hKRDxclp?(rH?ic0}J8u0qs9AvqLwU^a<(WaV<F>2f$B9Ir z#XrhVvxin~uo3rz>$f*sA0fpNWS67l``8pf&3UKm$2W_kTuH8Wh9C^?nfeQ2M?CN; zk9_lkp|U_-w#DWeMO~zu3kCr<f8U8MU8wimep0`=)2?}x%#?S&P$%wDH;B(oUi$sf zZL#p}#gPf72wq6Zv#7=M!NDq{KOo>Di}p7jH7N5=8i$LV7G2gFzKEKjI;G<6+}awo z6n-Ln;zA6xr5@Tm$IqJ$hivT!4|%fa!7SI8jo&PE>fvR9tt5pFxPP+E-HTg?rsSqP zJbCH(6EO^lQ51h8Z#_cghlg7fjNWv#V~o*U7UYSut$O43{);|!BSkZH+w|M_KT_Rv z1<J5>z5$gPLo_5R1CLGseTz6XH03*$?OHFI9I>ABK4WO_j^<xg6y)+`T|NGmD8Hcw zuL+hn!n`4^9LMW?BdsZUMbl5W5goS@`Q3{hfd+XN>FZQL{t^Y+PvBWu6NdMbx_>LD z@xSw_M=By&%blc!@Yr1_#BLtOVA_S-lg-3GWRp&tEvwhS7w9sd$nkrA);E8@Gn^ie z!QF`7xP`1la1^RBaC@zpqUqHAb>%m*SNR@i?cP&P2em*@tNRC+OC8%Y!)dx4W7@je z8+#&xg>@gK9l|5p>%P^!yrD=+yS=62xMxy2Z!x)E%$yz&ybr0(9R#&f#Uhw!TCXj= zc|qKJ=DAsM@|`ld-AIVsICLp{5w6t^j}dy)KGiO|Sj{3q%Vk*Df$v8-nM){SH(4uF zeV!>dLQ)A;d`j{Doo5%;#aPW7&KD9bm_zo|o3gGnvdiUxSL?V6nW)&V)3QKakAR#Z zTxQrHS5XOby;a&6y^wqAL&p~XwgKH8dB}oDQBKKcp}+mucX3RV3jRi3cNF9J_!zli z52nnD*N(Jjt$mY1M$UM{kFVj|xBMD!fZV`pe+{dfZ6X!2T%HQ%jxCv&AO*YNsH&bH zo6ywg9edWXa}qa3lLz>dV0+s4^asbUwW>OqIXKzIQWg0*%}wHDopPd^ETGhjD&k_w z`|+vS=1DttBATRr>n<NPLE@a`@Rya#_N;{+ttFmrGWEP$>eYtb%}}rqL4Gf-Y3N~q zIo|HH^AV_%Q9o7Imjk#lk~SRY2{)%*aBJO$i{GiA0=+!tBdV9wuLg7)qP<?BkA1V0 zr%Q^I8*-%Mqpmt4FB4Y-lG2z^po6ud>#Y_StZuDW`g-SWbom%OXK+w4mCN@2f|vW% z+EvM(j+S(z%UOJ}VcvIQLh3|P86r7T3z;MOs`s4BUe8gQB&Ry-yL|33LPl&tD~r1H zGo7@Htf}hOvkF(9{()srnh6k>zs>Xr_@;5?Q!16e6j;5|3kW=pwGQUL!52cc1F=wu zt^{i+^gf?KUIU3&hiYc@@=+z<ZEV8%h>Aj-D_<TOWz6q4N`D?D9vq<3D-FN@t?@`8 z<~x1S?6S_vSwHAUb@@S5dwDLP)PdJ#<;BA6?{hTHkxBbfz<5?U`&_(}ta{PhEBlBh zxX_E#>nStFpMuNYQA`v<N0e6Y^7>!Ra;cPg)MaFP=EVtTv$+mLJtHZed~07odyT+O zLOpz%B#n6o0czhdDM|?JNmJc+ra6;!XZYzIHXwzAzZ&MJ1%jK+j-o5&H1bH`-MQYw zo+wBwJcUKK-uZZs(9_^U^B(A=9aB?)syd95Sm^?@KJfDn^b4O2%H8)fo-j+D(})h2 z99-hdsB^lI5d`)Y%_LyIy+`P$89MsW&PY7f8Fcg<lz8I&eh`)BE5E(le7JILoG;Nz z0GDB3-01FUy=O|L+brI5BdN>U=o?&^8?7p`_|B+sp;u&K4)s8El7s0UUhEZ1yQ7>r zzmbJff;QhNCF#6aaGQ?sI+x})e?e-H8k_q9o4G(1+p`<?+=Z7OwU#UF@^v^RmLJ2L zg{$^w-n=M|6X{6LBn={}D%IRh9W~Uum@A)izNkDSe;<ORL_`gSX`M`#B96rh-PE9I zW4E;PerRNUZqk7SM6#&APuH_<DZd#~)@-tT09)_?WY>0re3#{E^^ygX(v#)fkptUf zdQHXcKLj`?RWxgSXW3)ek)ywKDm9&{j&naeXEWy#s7Nm66xb!ep}XeIe+3p=a^`8C z90UeiE|=N%d^5;pR(UeR9~)no*qNF8VBPTV%=HYy^fxSXBj<1=Mro8@yF4!^$Nyg$ zcECK%JUkvHgM$#sRcPZnMpc1^th5Cgpl#vSBVB(FN;FFSNgyrx*nc2S@B*`6wA7AE z!UFrb_Mq~^VP7c<VI)Jxih0NsX{jRJ)6q;wGI$#d8ovVCOh9Ts*~pvle}|(}V`ILS zhA)z$aez0N8+5gXt7SD6^|mWK1j#)Il`igehU`dI-Z`bS`jOuNEf8DG%QIa(c;Udk zh?WBF2Mo|u)o#~1oG@$WDRuw;kV^TwC>XUrCp<})X?Q4t;@{!TuM*CuX>PPKgmTa@ z9ZFUO#jYT?Knk}rr;Jw_mm<KRsgnH(*K?WSybphCA`n7<C}77tn}+8RUE3=QW{E3~ zec#R1BZ%-(Kfy<zHltcnhMH+62_@NRcU1xk?CdnRn#SZuoanMAQl`YheySH9peMS$ zdVGoQIdgZ&*=O$7yT9Q^b_q{K%W#(onVI-BJukSg{3XLrx+W!Em;Q{j=X8t~<WP$r z3Q-1`9=d)e!lb1#0miNLa*W?+y!vCLgNJ^7n~M@qG)C#c(6mzvepRnQ(|+kDD?2HH zJ@3nJHWk3vCZd!TgB$Fj!do9<Sq+$SwyCqwhLO|1IHW%zATpS4OK-)0jOqmnd2S!1 zSunfpogUQd8Xq;)c{LMDB^<QpwR~z|?v>tg_j)#!!~VQc0Y-7a`9L1_D$RQ~-+lsp z!s1cVZr_o!fOQA8hCYOChz{ktov#q%J&GbQl;Aa)t~TrKk8h_G;q!~aH_Pk~xOd?R zsD{ZaTjc;2*Oz6&Z2;08v-SPURL7~oTiPm^;=tH{XJEkTHD=tjC8zO|o^i%U4mafe zMN!k`_b!&Lb{|v2*T|VZVuBKzHdgUyadCRmHi3|Xcj-Dp8$(IcD?9hT%2YA8;J_~r z#%?gIc&#vfI_q}sop3xk9t-(Y#U-_qMi;ylO-%gp+*uPSI;;wDOPs1fG-uo?-V1N< zqV867-p7&1D2>n&kBi^nT~*kM^&W$-fk6w`Vxi(m4uVMjkUF-^fU`B3BLuA%X6MoF z<lx1(0a>QRvE7M^#<<*!6}bUg%;pez=Bji}J)6gpBKr6-MwN|&%j}x>Ttw8Gcz`N4 z{b1*7!O7mZzuMzgWBjHYoEuAIKf1lS#HLWRd6IYJI{OPVdyYoDvbZ{PLekB^PuDFw zc%`zRGJ<4{J2EMa+Xr{7AS#jDBdZrT0oG(DOvPH`*2)K!LD?ZXbelduE#@<<ibW8L zYDR(H;4x^rQa_@MJGjdr<d*QQX}*Ch^8#hcDCA3hRnQr_!ES-HiO04v)hX8H_3;kx z{b<XvZf0Go!<G$OdX>e8Flzv7YA#BQ=J|`=w<q%JT)Uz5S^nEmS3J*yz-~a<$4z<{ zp=vBCB8e{X>bdc?hI>3dLNk_&q9_MPQ${v@8v>bHmEb}C&8f<hA5wo-2zDYQ@t!iR zV_!N%#aE-=jL_oet5lS?!b5b$IHP<a*FN8+v_VvV=wX3k4JM5i$cmqL2f*!Ixo5AN zsbsU?UK9^Wh+hZiFajgoYcDOz#zs|{9K|^i&rxAm%$n>~wIkkL(TTzO1fVGPJ{2E{ zDwB}z7*T%bb*`IHp4olJf_REA?~}%ZfwtBQd^(193y5EY7OaNo>OYeHQFlVNN+NeY zwGf1b$uoHUN9KBz7o0)!3fFV9bu8IiBc0)5BI}1cDdN@D`(umi<5+l4Dxt`|=2wJG zng#kLpLpV9+~bFaHm(LOa~ITsYTdT4rdq7!G=+J9=<M%qa&av9I((*F;JahnXI7um zeKG3EBQ>3fH%+s@ldA#thKWH9p@5tdSf-co(7#1Waw1K@4fbT_lg3sMWx|i=M0ty; z^S7;@v{U8F>~@CsTZe}$k*wuFZAj2h@^%+SX1HIz{3t0I3@dGK?j{mae3$^A7i`|F z03-$2YSrMdbRBQpT3m1;j)%D`yS~I+*82e9)L>!?ad)w5<M*1*$Zj1F`VE{E2|VJS z?a=Mh1C(A^xsvDepKp{jytiH>5R;!YgQz6ftg`<u+YjsJ#a6>@Z0J>qj;7b1RN!Z4 zN0GdNC7Jq!gMGpg*sS)$XxY`*a4MmMcWi9GIJgNbEJv<6I9-Pu`l5THC?nJu9~-Tx zs{!F>q5SwhomF|3;cprh<Tx}x9LUyoUKOZpKs>x15T75I?H3<sL<@p+lCWJ{QXw5v z$3M*Jvn$mV74%0nbzxiEvbEY?(?V2rpR5aT#OdJjLjD06RY0Su*+ygdQ79~pNKFOn zrG43??;`UpEVk61)Z>S^iSbx33;!V+yWB^sTBQh#h*KP&VU<7sx9MEA<HBG_Y>KUY zxL%VOE9>4ravN=MXedLR5Q|@K9jE<t;3SsaGlvKN;65L3Z$C}3mtVyL|NdF>zvCVM z-&xI~z;+kV;l6#_2N=e%zV1jw_I$VuO9CBjW;qATnJm%7j{i_XPQz`-a=;>pnD{R6 z6klFi`mb-NUM`TEo`wM#4%iGitSk-Fa&pWFXE^^`3+Px_+1PPHPkSW%Lc9|thDiO( z?oJOg1C2v0re>yqR~kT&{tX)z7KXhT_L<(K7dqLRhJA^w2=1K28Q_shViU8J9tNwn z!0J}B3}|5Mf6zN*v|tBdG>fJ;^M5Xm%lFoO@SCv2x(Cf8_u*c3ga7md6+-F+oAcGD z6coEFOC5WUpOB$XE?KyeXI{tV=a(HU+S=MOTc-e}ho9fWvdDgBy`tM9Qc_gZhj6i4 z_iI>bme5bXS`B7)!gx)AM)#>-_g(A~6Q7ZH&u*>l5x;mUO<2X{@(^|6%Z)~ZY4O_k z@9R4|I!Jm`t3O;fjP~apI6iuW+7w`Phl5+wUqYFLxKzJ(uS$A)eM?wpzA4Fpxy-_} z$>S;|n3jWM6kwR?ZhiuqYu>HVnRV_ynv1_2or8JcaQxIa7fN#95W2hDTZ^hTn`yxb z(;X56d)Dflt)&PBaO9Pp*1?|O)7_!ao8!^i?M?;V@McY5=>yNAKQu-+ixsgYbD4o) z1E=f@_77|0f$TB$ZeK>k=3uJ+sC}>q0;~Z2q?=(&eW?aIAKK`iZpRb<xwm(5mG~1l zj6W=jobC){(y=7h+C<ViI3S!c)ryl(QY2G@1u5KiVor{EXz(fOZLW{3jH>tM%f)2a zU)>RMKMLAYNS9l)j>5ZifCuL&gQI0=YZC)yE*GZO{_>@5cx;Bq7);HPjAF7A^CmMd zq#!XY-L!(9=vVfHsu6%$!=mHyvvzDj=%*2_a-G-{F5APcIkMw%qzUb*r9BCJB{kQ& z*lQ9nf<#`)bpXr4^1fC*ZY&8{6>_{V?sEk83XYGd70q-<{5v6UWB})&dwZh7!%_?E z{}W1Sb{&uktJ)r8x_(*z+V7|$keZIA@$w*AE*7Fx<C$DwoCD(FmHX+^oPwl!T|`bQ zznA7!>JdaI?^F0~)JjwdeUqX?S_YoiNTRduxf!kiTeasoCRuK!qGEh(EIsh|@4x@> zyo~w3RhqOOxZ3^CKKL!`|LTK(l+;X2LH3UaRkqB5RAZ0fxP!mZJ?}|~9Cwjsh)T)7 zEnId|38ZIKf}J{k(z-M<L>Uht`exT=MGe3b8BKnMmQ-5S&c>wydt-E)&>I^>3(urE z-?{Nwj3$AX96=Llpt5|Ab3+%~!-FI-FS-Ei>R>yowZ9=td|Z`A%mVubnC}&&CC=xo zB3>ztUsN0|hX)7gbr8Qh2O^Y5F2fdlTQ=Ia#fWKxNc+eq)^6M{>B>~|Kl#fg)jrcL zNPkiFuOr&|v{AtIIMSrpFn$fRM8PsKU=Dp`z5_POMsg)R+8I&GNe-=q*$s!PfE~9s zNRZU_xC$l<I{Og+28~LULRaxc4-t`8Q0})hH;&2Ve1fg$dpVg;ME$RwK>vH8|0rjV z84KZ@2KsMKUU6wx+VL*RMG4V{Q1H~~njl~A!Z@Xm@*(O!_G3_|SEP$4r3;=JUK*s1 zN0?Q&#p3;&Hrl56Qf0I<D#$_OodrUc1#ZFE15`pJ|1aY)TuTu>zB%yBnG*ZsS|Ba= zTEOKn240%PQzw)f|LoG83s|U(M!-iIF66!luH*xvh%zzng$NBjm&YM8Id8*svA9FR z|HS-eB+Z&ruqaP4UCVuMac1s&WCdR^*w6#bfeI5wSprx2WHEH~kl^PFJ;@MT467+k zFlmN*R&Z<Pe4c3=t=266q%RmK@)PRQ8<nSPVCTGl#N<#}pbE$mEveSZ&=5xToEi+p z)@YGsG+k59$woILKDZvSo_kgtG(n{LgkTLXxuDbh^&gXFu<(tJ{LoHwML!c;G2QPG z?(YY%4RG805*G7d$D4)N^+$hl&%cU45nB|ti7>$nOEbwlWih`64nD;~7X4_Rrz4l} zu0w0&p}?0HsdmU1W@E6~K06`6#C_q^8+{C^SGaX~o(Qh_pPBSAQ{*LAAZwa>02RLc zPR%=Me(>Zm5PhJ?mZw_{3-Ll$q)h88iq7o1De#(|(Lz*gBShEV$k{<<A#n@xnwp6e zrDwnw=QQ|YfjAldcNtjlwl<Hefr({x=CNuTG%GVx?#yu4!M*d~GHfYWA!JK+eOTnP z;{C)fc&P)14pJcCdXYeTJIfE4(y<;hkV6xHgghecBb!N+S6!?TOLEBTrEm)+z&Nh~ zeM?MGHTx)g^3L{#+$(>I;Lac^;E5bf>v-V*D$Svt78xsNdVot1_NmF~GRF!Bm{wT+ z*}dkc94$Hsn15G~DB)3P^EmP7Jf|4#aJEDm85isbuGKEVGv1T^3+Wj~KIVjUyMH)- z!E-$ur<;L)^<+i?NVg{6e0be4`VJ1Vm*Y}rxGbvW?-I{n_KCVfmV%|Ck+BUo8`&U+ z-F$s1C-;bpO(kV^O~U^kCi1OjMe_cXm1&x8f#DN!Mj2{q?1Y>i5E*r)F5`Mk6|1+# z5(#)(4jtU_w2Pld4{v?vlKxzD8CxHq9;knpc)k-DLFKxBeED}+3XH-g+e}SOp#_RT z%pAa-D`J$GNyl6kWwV9}0k8$gwrAVO(0ERc07T_(fUj~P)k0amNbR}4LbSBe<lo5B zdH0q2jALpa`@k@Ni<xpg(8o5?K`pOS;TlA0>sSE0I7l7QPVbxiN`&V)c>F`tQ5`UL zFWy>6{QyhndE&VbaPVV&_)#?WF?Qwi0zc#iVXADh@%#MGCIf%q&fi|r7~syn-U@lM zFgd-lNT?hiAwG4da->o2nQI!+jZM=B(1x4K7G+1L<-B8O4cVUfOh|Oz;O<%B{V!q@ z&sD2NrfT0ko+%3)(Dj12b%8~PmI*@G55bH79u9!YRDxh%w~@8$@!m0rMH}Ug6GH%e z8l{+FD#8af%*wNtaKBgQx-3Y}q5MfU<6T>Spv>WSorFjy83>H$m5y)WPVdUj(p~|7 z<5&rqP#ad|$edT)k#c06D`qD`$U_?JOPIRT7*at>oFr_tuvmeq)i?A<{=+Pem5W)H zb8v(G!FaWH%T2$&1A{qc?~i)jZ0(I@=lpW3q>`W6KKO~$s&SXLhM44HVk2t#>C7Z; zYWpayXzA>!$cj)ofHKQjX<L9*Ik@u%O;7i0H_*J0`<k$xGoV?xlpPZCFj&T(QsA^L zzHmp{>4R>0+<H)|HupY%j1=eq5t;bB{R!6g2)G@FdIb=@-@FDc^3Pr{O^x!e{}QR! zMuAOotz}hbVDHw(hTm(y-R<#<0OYGvCoT-{96hg;|2=w*H(r98<}0q(M*_M$W}iwE z&h_p?qL>cPr^vaAv-34x9+q7|-QT-oUf-C|2;))ES-t3uoJp!Ir4Y0YA10t7wz4V) z{&Av|_v#WLObOnQ5d}r2yzB2Bjgz5u<J$(Qkg2!#TwWj^kosX4pwE++o(^VPSWg!O zfu^Z{rd4lNih#wWwvPOd_TDQhs;%4iMG;+!%2GfC1XPq9lqj)OBukQ<CC4IXD9S)s zfCPyWOLERR3kXP-9Eu=06gd=BQQ;20-S*45?Y`Z1+HU8pH<(q><{WeMF?#Q#_us#k zDWY9m)WIBbF}0(a6*ZD?-a47?*}PwHthyTXl$6iM%aK6k0z}ASz1T`s7X$t~?v`Lp zDr?dJrE-Y`d5xgOM$tPHq=wd@J<&epGFl6myh^wO7r(CFitS{<quixz&e(esC1)nj zVzQ->EbXl6=obZD0G}zFVJdy&_k-oVmuexOW)d7BnEp4yN{AO@LI*Y`;FccBgN}00 zl|p=L{cCotQ9s#)wDCGQ#MZzsDP3<YG%!XVsACC3o>yUV&sCD2Wy!8<wcr1mRgoQb zFsjKB_qCN2QJ5DhMU$wX-%#muK$X}fHd19${M5CZ78hc0i1?~1m<K8`aOb6ZPd8oL ze`Q`CKP01Mx9+`Z-dU(uzg>Z$w8e?gFsktRX%utV#VcnE4_#OvUq0UHFr7$M#lKz= zRJQ+5-mko=x)+pYQkdnjC$jzZK0(2<D>eO{6v%HOAm@U|k-q&BUUaC#)-Qh;UpzfH z_|%|Up?<i-2cVb8vVMI3+g(u5_Nm5{jC^HZckujsRRe<}ZytV7RQA>JqV*==LCRCS zYsGAxl23!EPp>a~kEe96!B~bY&B1Bzl@30jIITRs@-DbQwxHW6V>)iu^I|ggn&&R^ zREjww7Er|6NTu~2=pZ8T;!RhO{ml7N1`1(q2PqkCg}<xF{^u$+xVnFW<n_3F-x8FQ z0b$*X?fRkqEBoHR>Rl280s<1h-3M;SXql0_z{NP2%j)jRiGuHZC<<bbPXOom{|Un^ z{tKe|&;M4I^ZzzbDR^48|4)kP|6v~{J$Q+}1AwS>bX_@u0)ilB1K!GqFQ05F%~`vZ zQ+PCr9yDrzmSw=9{`E3XC_6r~bnkPp%I<9a`u<TuaBxC!ZbG0pk62^V#Dtb~7?tf@ zfj8h<y^v!DAtcUC!<_0OO#AqE@;e@YA6+dtp(h|8yTat;{>hBtPd2JDw*aup;G5e> z(2Fl9DEOaQ$}KRG{TuZ8qQ>l45Q%J0dSVkm@4T4lSbz~M*vtF;KanvseJ0la>({RU z0XNr3d<Itn{gSA$0<{YB0~{IyR+OnY2wWsh#MgxQk-6y54K$m=3np7VHr)Ve?IJ+` z6{HGPs0mN5IZW)4M9kHX%4&fIQ|vRKp-%P75dyTYyD1z1VkgZ|D%^9<_tyR?#h(jf zq3=zx9YuNqZ-szeT+RjRo~X^ucy_}Iukws+#RM*$hpiRCFGLzu?IywLFa(a-LZS4V zbe<RN#&W3@Y4qGZzRBk)=}Cy*yAK!t?_5Aat#EP)RwWLA$y7<F0WV0m8|t$SaI-bg z(P$MBM#eN&l~nv0CM+z>4j>W=f$Ckg!c)M6I&}PO1na37w{NgI<pHz{zGu(=#Ey=Q zJ%D(a573S4RqwopzgxALYBd8Kx9t5v$(EK}Wdsp)XlBNc;}a(*a;(3;W|*nH(-QN~ zKfmzTC~p{IvDmprk7)0-KJAjmhWc`wTkheK&5ebHtSe@{&>?WRhdn{&@*2bOF1-i{ z(?G}F&ailH^_l+uSVf}9=GK-6X3PCzpObcsWC7gRIv@NR;56cK_@n97Y~F-4En}5P zMak!t&+9jQA)bVan99nqF#3U`8$e%$Tfg9Kel(a%9E>N&(_wa#j>8$KwKWHGYwP66 zpnGmu1F%l@EQsLm>4DS`CkX$aFgV<pNpz)s{P3X@E^8C$s%v<mV&#{+A{dp`q`WME z=nX&s?wd%<^xW;F*hM<n*)ca&n8ZxP_D>yeC#n|^)axyh2l*(9w5od}pv2Xhswn`e z{mIV1iok4Ts{^4xN+U`JhPftpRt3kDDvHr;*Y1lpmV3%bA*@?fHNTKhG`t2NV(?-< zmy=su4m3J%R17s)_b3#YIfowaP1+GsXaUVjfPtPKS+2MTNGk`mj5Dp3Y8^f}1W@ao zRDQwNs)V`+8ah{q;_$`8U(aLmcApYCVu{wu6M06OUKT$6@}aU4z7$JDH%~&t`{6^S z<l4SgL^w*T%69s#*D64S0ES|F4gje_n&B)>nmBu^$k&W8X9`A1H80f0*AAe>^stDJ zPhd1C@_{V7>SCtMO?m+U4unFXi*cJ(zb^yYt&<aam9OsWF0z)X8YQd_@>vzscB1Y( z479X8#*}pTCW<VsStN$|;g0LoMr$1Bo76q7S<y_k;DdXNiDx~P02nvIVz9UtT(vhA z7HZON=dnH0%}1$Q?RN)}2sl@&8E@l!Zs}L;{4Q24ci9p3I6XehDgK`A{;DBG92T() zM)urNX?e82MB+S9MG;XhyZ5nI2pxUCH@{G>SQ_<PH7TcIxPUq=pms2&`9t(m;(7{3 z@ytenF^pz#k(eUju0?#se33kv37V>rIt5S^SB0#_6e_)XpJq_NxfeXY18^=P&e4MO z(isobD;?Cq;}k8_)i3;5<g1J=fF18}_Pq^|bOe;@IM^M7h5=hJ%d&5VEAd+nd3v7y zA>wisvf;8fb6ox@OAQlJ8!KredM~Z$`qQM84_V35EDDaX@tYoBS^P)xbyazm7(kBo z*N3%N1mBz~=vhgIB0Vdw`yeg)Km;Ef$`<jL@W<mjKF4%_*6tDIF^hp$Z*6q2+-4Ga zh4dm2IJJvg-OtnZ0|8C?rKSM**Rz#Q!!ANfN{L5nZ`U2Mi~Fv71Sxy$;M_TYp8jzJ z00n=*;IvQT<Lne$bbVJXv!?lLqdew<TP8gM8v2WYK#;n_*{_2!y3UZO+39ajun|Ew z>A5K#R*>fGPq=leJ`rQ?s_gkoneR$f>aEfFu)5N4t;Wjb>fRzD$&Ym|XMgrgu1+)g zh5s0+I|rhkGD>pBkQRVH5r>bqkRHH1^ImO1ULAZeomf8|LO|-J5^^IQF1V_#n}t<F zF%=0lH8rBHhh>G!>)J!R?pssJgxmVUrNo2P@Qz90WTB$FM#PN+b$=}A74#R#xzlmA z@_MM7RB+_to)l8!UhakuX21v}GtLHb3l;qqGF1?*f5|>))2n(0YXHmjY`ynaNqbO& zb(UPSH>;Q}C?sL73bB2<;+Qc|gFrw8)szr|h}H@KiD}oZa_@FnJa2+6KdyEfF7(6f zn-XSe+fThW4+WJ&1QKHot!uap#S<h2Va1&BJW<za?IwwliVD4!nYOXf?9qqt5n*2d zJlI1R*W<8$00XK=he^K8Byoq4u`MV6jMXn14b`7(b`P;U0s2Ph?O85>#M}lv&e&!j z(f>@W@Gq#lpbee}SE<>zhTD$>f>KmzXAbQR4F`rz?AP2-Ghf>&l}1wm<D~60n>%X3 ze|o9DI|8wUh(aGKQt{^OXR9#I8P_?zO8S*N>CrK>T58mM$Kkf8!+EKD;hKGtOBb(f zE+E^KL)gQ~$bjCrJeETOPKY*?r#}HyLVLg@x)hQ4%wZ+#x*6Cqt@Y)gPY;!zjkRbM z>6jpbqhG8pZFR{!egRv%3<n@)fYF&=t+s$CC9lu4Sddn$9qz@?2<u`3X0A<^=qU_* z+V=4&9=8*|$No-d>RFYkZpMx$An6qmk7*pn%KY=A4=nB{Wp@PM&Pt+PAZ)B`x3hm` zaeX(xn@TJMz-1w&1^arJ>|_Czzx=EQjdYrvYRa@5n_>rK#&0tyTbE{iuQx-&f#{TT zbmGu>skWGLOVhZmka_J04#3_$fUp~!h;H=S<RG#sIND8enK2+YY4rpgD*#U7m6Xh( z=L_$xl!_9$O@YEoBo77oN@jjKc6}2$x_8t`Z)#`9Uj}FL*qm-AZ;W0Vn;K^BiUc07 zvl$^ygz%5h&Gw2nPGw7JkE;UBl9_@oUo&KGl8WiN6$l3+^lE3h3y6cuO~jj8x;by< z2@~tQM&;LSDUx3J3!v!U(znYm%esb6O|M!|?lK-Id9f;|EjsSZ7svD)@CgcTj#qLL z*Xzj>FgCpsF)UA-0Odi<YDj70sLB@eIMLw{?8c_9(L8?S%ooB~IJftzf9J~S4an0T zvxB<K-#1rep?|W%%a|arMGb`mdyTHebzYOViF`I(eSq}aHCd!LlB+H35fT!T&gnSc zz}!RuBj>wDS_7TSF!|g7Ad@O7YG+&jH7apnRNnX^$4Y)C2mn!B<9b`eh8&N9t+ChI z^)AvaG!cAMl@A{H56ehAeE3Z6u=Sw@9umNzUGUIVDNVc{V{_wgQPGgw*1gFup!<G) z@XC;p>?Jcw>JCOo2qd}?5V_h(Nl=re5}s{$l|`g%XlQ+|nt06C`?mTitsW;H;Xvkb zd6+p^z5dfe!_i4GP<Ote{z;r8R8@+)8bwBSO?{bN#Bb$FLTpu13}1ovIcpDRzJ_jt z#&wIKsNU(ksJFo!nD6pFCmRZ2E#?ap4ctqNN7D;0k5Y607;9jKI~o6%>1E$!sI}S5 zsAp(AzE@+U7P|CV11uY&p7xUs?yiXpZra+lfS+t!?<4hAE;={YWt+*pUaC7TRfI=C zpoOxwxL7dx?}^%?V#@FYGh5S)efboky;eRZh;V|Z?7W}Ej}m$^9Lf4bVC<zaLTPl( z13$BR7@S{fRR6{#M$1}fDkwae*QkM|!Zq^C#gl~IW9Ncr_v>u&@hix1SY^JRmkhZl z^mW|~eW>sP9#LH#m!6)EgWaI!V8e}ece6S!&D>9LsH7tydB-jlnU#s(j_F2|pYxHc z;cWopKeZ8kCn6Ju={-quPiB1KCSZ}sek(D#Tlmhq{2(ROQHlkHjr~zIFDr_t*TC2A z8n3fOK_IMiUambqnG(9?e7K%6I)9yy4zI4pk>>v#snbQq6$)o@@n<ustE-b~vka!1 zd?KY-&Gr}SC8r>#A=sF66%?w<S-+01sZtfcm!!KiL?3?^2;5~(K&5E6;fL>xY=Snk zcbPrS=aFfWzK>k5HRJ#RfZPbh+i|%;cN5L(*<Io|)Mne;XMg^j`uWqmJ!{iIX3<xx z9w+iw1nx-X=>*x??%cIlG@D#GDw0ugqY$uMTLW7>iI2$P8n&k4Tx<0%*NroPBQ<8u ze$-IzT;9^+Z%_YL@CoVXH-gcIzPJDCcKegHBZ(3wI3E5i=NlRYG+7fXhI2oUI1bIS z@)|xNp^PtlKx&vL<^>MNzK}o!;E_edjZA9ZlS;KV*QE7mZ-^hO4>cDz*V!gWzW(g& z?3w)Nk5`B-qmH-_f)`!&wG@MF5DBQWMj}KL$tfbeFk2@8CKlNJa}K`G_V8iUr(r<G z4Tx-TLVw%O+xzzI+q5f9{(b&u(1YfBM5|w?v2Ke2?Y(5SBAl4dQq%Nk5wr++1T8>* zl^_{=+xKLH?!kj5Hw>MJ(q|taatxDMR2<7AsDSWCWY}LsR0$!XLh!L2wI8oY+<#w= zXnhcvXtP^n!yH6$*J0Rkp_y0w3KugBkCu`Yf?=>qXSvc#e={@3RjNHo)Eho!x@~Hz zzWWn@G&?&BUG-sr$<J0Q5CVii5NBa=nC}PRj-Ya*!KR}C_?|aP;ipD?KUV?U7-N?t z2z}E3HpSeL01E==Qq8v1La&Mq{oqBC%?(FTbKs%m88xaAUT1^&gVXO%kGd7Tkd0x3 zpL<J{(BVQluDJS&`&Zx__qFn5cl?2zwSD|claEDN`94R(#db{)HtSLekBC?!HhJzn zf<WKDf9CX($;2}B%a{J5{x^hLZ{Ig>vi9kG){|>@sf^T%bkxRGqL-%Gnm+FjwTFml zt6@|v#mA?nraTxLD?k3(tguL45&uk;8F(u4bR&3BRsL{kH9*&}*p_;nloMot;-j4l zx4{~4fc)00iRwMp<WT)#be8+IinloFeb{4h_+PA>5e&f1=iniwrKLSUu8{^uf>pm4 zV0UwIsWz@>D}dqp#>TdEk#c@m$~U0<rpNa0AcQ1v@Byhka7Ze73lN{F*xtn(ih68z zF1YRQmjgi95u8Wwh41jEfFPk89__jB6q}$C5fOJ=u4v}g^&c&*qQHhlF4eP?U3ex% zC1TTOA1$k!<0a%W(uAx~vMOwnW>HG*to5SXK-D@T6}%8YALKfd``O0zMS1P5@whK} zy4fz$i{I}b-Q$8`IEFvOQ?d;GEmYuPzYqlYGTY3{bel;+Ha{bOt#7Q%))LE}X9jEM zgEk38aArlx@{}$w>6V^U@?(ziGCPOaCVr=1zW~EeM}HNA-8rw>@#Sl=J1TobIwj)f z3Ba~U4UY+ZTk=MigR#RnyJ@vmpzTg4SOoE({RRAw#u`T;)4~s*G35A5DV5J?O%*Lv ztjDF-6ismv*Mo+8ySW*`eCO_t4p(G^M0+I~y}=0o{a{YOOsm~Go)YM?MlGcADA5V8 zsFd*84Zh|WE*}oEosfI+ikGYo4D!kLL_Gi#0WleYVE*#4pQ_1gV952VZDlZP0Gi9! zTnz}naVz{;_F(*QbCoK%Z+pkpwt&@ZbwDprR$6B8X2^Sw&;j6YPSFR6yEjyd<=lUp zN<Sqv2E2;j@048ATJxpWjR4WMNU!?P(HK&|e_iZI?T0O^oFy=s6AJ_TjJlWlH2#&Z zD0`KQ1%213v~u%xGn4jxW>oWE+;Y15U5N#9JchLVJLbQ00YBQ99StFlPZ>NLO#@v3 zXfQ)7`NxlkE!r<w8LFaq9;K(h`uOT13QjpldoCn2Q|0WQunWW3p|>UEfC|OC;zIS{ zvl#oohCa#a8@G%*wl&eVyN;-F&X;%i=1G*i|A-s=_N)8OVjV?d#3z<cYXxz>+<r6b zAkRA~k7W{pxAoYSt`VePKm%(k{{bMjpXsw3bA0(`Ci67K!*l;f3k{FaVxh&cAj1o{ zSf0a3y;_e%C!0$kMaV04uDLzcp!VWT#cMk)ZrT&pD=U?KiWF)dL*A}AeTYYbhH3<z zMh?PpVO3)3LSEcH&KPJq-l+XFHY>HMU}9;?rl)2YsvaV==<5l!>|Rj2zH%6c!YPH( z3@ipe%<vL0F=($B%cG8j<m_#v&-Gf;P-i!IZ2qu_mT0VDYs|MEZa?>Q9FL;UkxO40 zl##J~@nxp^F2g5b*O{zEscQvZuX|6sBe$s|rj_<Q7Iup@bXPQHTHMWIWNv|!&@U}e zQl{qfq6)s=YeBx+ZIHw56Sk(rI9t!bzs*<On=0b1Gu8F8ym&JW${cj-E~88d`&6B+ zjm^R6A-y5@K!AQV*{S)M;N1brfu9uM@ak-r;XsQ0or~>g3$lq!G4NV`_FI5?WQ5c` z2fijIIq#0s(BJ^5;Ipuz1?4Y{!X|WZJ8+ztcT3I-ej~NrOTYsAU}CWW>?gvdshKoO zz6Q=C#gf$8HPHDVh-*<Xek%cV=GXyw#(|NGa7u2rFL-_mpwf8LBzPV$=wm}ao#t?# zhb~z$5Al?8GmYjy6ju1HkBCVdHwUqfEXB@Ok;Lnb{DNa6T-0f--_nnp9ET=|6Qy_4 zz9-2#?g7dhRKGT=UXs)jRIOx11F5E-x-POEzAF0;c?ts;4`+8E(ezuDSF1`cx|o`Z zrUgd4Lro2}GlP~KIvwBK$8{DyU(Wq&X!sTVudZ;qsVN<hT^XC0$hayd>>0^x+=@9n z>wWMfPftguu8>n=>@$b{v4)3-_sOway#O^0jcmB-CBmh6z)v^lC&-n6*y#q+s(FrK z>W#Vi%8+pcfp95S&c3KPfVEJ*1iWw{<W%)6o=5Ywv_;tbeTmh*h1Ps0Hp>tT@#ZFp zS&7S+No^$cS9{Ft>|)l8*+6<5C_u@dPQMLPnl=P^q6uiDCc-Ns#$(o-uyXs_<z7&j z1U7<BQ_8L{@{eraVLX4n4}AmkaaSMiRG4}U$XO)QdTU?qrkSZew;2!Zbi)wl785dK z5C~(?!{_$)%h&Yu#6<bF%Vg$VnSiSGVVk_19ZJPx5EU*+2L4!t8qmE2^y%pdbt2IE z%!^!n1=oL9Jv9VeX#YJSy|{<}ixSfR2PED@SrP)JrCo=gJC~QItlVYA(117Sa^Kxu z*-!~vDw><0o)Z^XDIf1^M-}-vvo0^MZsWpt1X6tR&H)6<*15<`qMfaaUXtyMUi6E& zZ1eOfDw^&<>7UX-^b2VI35PB(jlED%7#^FYVxYM<xM}U`BWi1_%OY+OH$}zxsOPPH z5+RcX1GzYBhu;yL4u?>yKYqN-29mQ*y06x{S#0CTZ-h{y_1`T=C4%p~9Jwo<%_486 zL1ktBJ$@7Fk?8lt(CsG8{U-x&fovI=eyV;)DaSy&<Ywaho(R90x_NBYAQd7()#!p1 z7nt?v<7Lv$t2ZbT*+xw%VcSv9V!wgw4{6!N%}rf;Q>NZX*PQhS{JA*d?Rj<Qait!L z?~zbvmvh@A_|n~(wTtg2vdR6llv#ZWL=IoWS-_PKD`xnVx|<2ZK)4Jyq(l0TGPoFZ zdE~EG&X2joGdtb{b+HuWKD~K4V(p^9Lhd8v&SUZDzCTxsK)P;mk?r}#F<#Q5%5#9- z;}McqP)Zb?xVYPuXJespUtt~mJVMfMGR7|M$%c!WRHmylhb=Y<{Pu9Ctd5F$z~bA@ z|7cad<+>QgC@r1I{cqpCpzf!=DraYoc?hoIxU)X8cbLjt?abM@?{=Xh_@RoW_=SZ| z|L+yPD_vyZ?>@Lin>=U!Y^u&BdLcXb68o#{+gG*n>*E(sD92Qu_a8CBf4+h*Wvcww z*_zV-UuSCyS5sqdlepAu+~*PJB4nx3CE5Bk*vd<;%u*9a6Yxr31R83FG^;;dI-PX# z2orbPI$fq|<EH!OVPj`$pVfBhr4UeMj(U3KYNsETad(f2;cu$U(p(42jKl@y?g_oH zK9)hF1O3YB7$xMiHPftt>Ir_q?=M3F;##slT6AUUV}^_jT=Bqnl_fI4QOd@2NR3HQ z(BZubP|K^h{*&dyTQnB7F`wB&#jxU7Q9H^wHd<kHi<t)%rZ~}D-x&Eh5H1O0m@TV$ zeoC`X{*OswNWG63N%{4M^q{Krm%#Jqvq{`(Ry^nIjh{1JSBkPrB*eZ^Y(euAEA?Co zVkaR!Yr;gU>1b@be(m1r!9kei=!xBZ&Ei<sr2YQ40-^Ut@L1*)yl!*oBOvE=4Xn22 zN!9wA7A*50V_IU?MS=raE7M}CHQ62IoTHMMxw!>ciFOt?Y1TBmGpQfQCvnrO=R;0B zR<y!g6k#DJc66SO31Orkwn@iXKJ*_P*iCIJhVW5B6*v<nYb%G*2jSQ=!KI1MF9|HR z?P9*urFOSxe%e|)bzpUGZ<@)EZo#K_^*2p@h};7-3>~XwHy;03xOiCCl$H%%TnxwG zJITrU*CQal_<1)ppLXkq`{?zLlr19cLeJs)@9)00y!<Ny)W-64YX=9^<YolAiB&y| zsh7fxVDSz5`@y+t{)g!Bc$<FH$%Q(aKl_{`9h{+rerSFiq*SXzl;!X=>#(c7(BJtW z^NQ1n9c^-=wU?JnGv+>a%kW#WmARyT>SavTCe|QFL3nckE;9?KTUon9eU~nINUKrq zRjTNCxOx<cpTFz^jOu3&yLh#Ytqjqha8FtKMMD?lSy1bGpJ%#{&xlucSGBEqL2>Hw z@2kVZvyCe05j=MwsgL0zviIq2sW`r?zi4$x$B9mO$1<ker|*;Sr9NEyY_9d&tqnJ0 z5sK30V6{>5#XbHe$=9eq+}@zU6YX8pXhqeGG3L2*JL1lzkI%^thx<0Ee(`#%88S=@ z`w`{K5>#-Nacnu-8D%`lE%=8UwQ#@4l8UFt<TPW~Z-m0m*<;s!2nX-a-qR!7t}4_N z%2EN7pXFkfJ*Y}w&4m_MQP1b<!eTZy0(g{sL_<RPsXo{297%eOXcImXcMfxA##>2U zQGdOb(b3u7B6@?&@EUQjV_)-=ol$elgT-oh#Oasv3HO3N#uix-n*&i#N!0%Kj$clA z&02I%&r_Fy_<#h5i65~`otZRkViee4v!MR$?}oBXpYd>48`iJGY*XC2dxNL-mJX0F zaHLt#%I=uLtKr>Tv!6w)B@u&Pae}psa)e?`<YE@QSlMVFek@M--O2-Xy>3P+T}8?Y ztJzaIu9;4GLggGkRM7`bv{v%n7~895THgEJnoP!&jAl4pT|k$$#Dh)iGb=9I8<Bhp zaDFz!g)wBInk0#rFQ#HFPf2&~M^@g?42F+)j(URt!RUksN+sMM7}z~vu+$Fu+@zj> zYa!k+78FLLr7a!y$E-hUj6C~g%tUuj%q#>oe~awK6zZ?i2g0M9qn>2VmF%`(5IeI4 zA?yic2F(m*@2eX_#fp$ys~ZmlE#(+Zw!fG0**2(eAQnXf8O3kizTpv5djI(`_m`A4 zHp<}ue_ZH&0mAy>v`1&yhD*=lF0F)jOC=EHe6asqc-($YK(XKHL+h=GEYe>OEEJz= za9MwrFmErVT*o&xWlBr>4Vf?{_M2N}a*z5Q?W#}3!;E^<UYS@f;cLZ)Nh#9Kib3_% zF(EMXde%3Gcek99I6RN@_A8x(x7V|;swUbg8z1_f3CNx0VG8HKnNtvlRPWN}iP$B+ z#2%K&c%>zem$uS|brak?iQTW#>bJW+?P6-3bG4o1z=lG5`(l|;%WnEuW)Uoew5#<Q z2^2b7RYWDQW$4!gw7gxuJ=FGm>BD#E;Jk9O-Y5H_C;E28AKx&Xb7yV*?4i{TrUga9 zHw__{PHA_gPpmWjQT`9Bp$Ebe-gjPSQ+Y(hF8Dw9jbQ230V`9jz4>cusvEZ^cdr;V z(Ei8{+-2zBd`)S1jp%ef`j1Faq{Wc(nkl3Iy4v?=w*ATW9azIa*`Lk+Onf$Jpo;gT z@s%IvN_FF<_8JjB2kSIA2i>=1+h+U&pQRM01#wnpA+3?wE~0Ku!2A-ew^I01O)l-z zJi}mE$!sWs`xpnz`^F4wsmk4Py4;A05)Eab(YlP!RqgedmpsT%ijN;!Xy-^Eh7HP* zMoEJr5A%p<=@ZNF+IUB`jEC(s&p2X-9p4SrDGM?uj>gY5C8%;e=O5M)K@M)I1b!Am z9<fZ{PCf3M=9auM>;HGwGofKp?f&v*--udk^Cc8hwY%eM@x$YYUPo3NVLz;>n!{P{ zr?!+3A-WMyjqFdCpiLd^W|%>##9#eyTvbcY?$nY`ZSJ@IlQdPJ$+tb;<3~I=E85(8 zw9(-P85YZpoXAtgd97-4-dFX~oVZCtNjcf{)w!r@BQvL~8ft54`hX}nt!Ed`5FH$; z^s|GL1Dv1td}*TY>x#UrAn!B(26;!F0iz!X1L8>?-@o2|I4Y2D^}0vClfkH&+_0t% z=txh{Xbt~&F2He!65+EtlNzw&92S(L6`~*b<;$49;PXXd)5$Z{#Tf969IjP{pOaYH zAriy~J15(kdHYyhN`N?(3Nh)Gvx7DF8z-v%+CX-GGF)k_QfFp?Fg$o*92*+47|@xe zr+Ew0|5LR&T(Y!1VRYmjYL1<-igl~`!%t~u{av{&mZ&bx{QdRQ8z@jT&aVDW<t$(~ z%@pZ+>EW&PnJZC=Y$BRGj$Y_crtu47RQ0HJu1w8Gzod6p_9014{yyTg6^%$TFs=9I zeZ<jI_3|LJ#~u4sUTs+I0Pj32L7DbZXg#N^;+iupT>-goofX+w`&q~H*&$xhCtN~L zo(Qo$vFyG?2CLujSwxKeW`Q&L>O*e?%C9jBN3vO+{)&pa?^FLCD=eTay`J?1tnhzQ zr>3{g$bQOBZA?87v=x8papA%AxFp&hqikQ%AQpy=TY^VdJCUjc68HHkX&&uJs?kyP zBMLbU%kKjs3+Sx3Iyx!11Gjh=hTPa&AuH!%i`3*a8h&p;WqX6}6CuL}S|@_-2i#2! zxfd^~)TSb2R;!kz-2&Gas1FY#=DnxZ7e~L31w8St=cX!3xph1&NfOlqw&jW&VFpR} zi1#OO-A*qlc-Yv`vx2R}9rV5V#iP@*8y3eM%+avF;@tLgvt&awSh&O&sg=G^N79(v zr(pEm3Z4}s*Sr^#TF-*5ZJs1?_uf`f_rT*>+sHK-1A)FR5a@ZSWp17|pZVE4{c;24 z`jeaUN4u_Uoh+1@Zy-n?!ElbJyH}+0F0np*7UUkNrma4zXxN=;V438{zM4?E6#s@b zp?@#E$)Ysj8NXVeUS|bXNNXnO>XuB<7FaW2xVtPze^>roPKOg|hw~z~M`hl0v2Wkq z-Jw@{`Vt&Vf6^`cz%$_CBW)%XzDo24VtthtX8Z{eafbrYdHQBz>>X-^B_S!pRCWAD zNW`;KJa-RIEJ=X27F+Q`Nj+^sTK|9m#$Vew_U6vnj@65V{H3M4CmRLobJpl9^otKS zshC#5KE|ma;>Xr>&X(s$L!Nkbz&Dbb>B$*RDMO}5sc$>bFw@lZNhW9d-(*o8-?JY) zq^zrxb(lvD@X&jDNx+Khw11cWY_7);c-qa1&W^nP8Ws|JA`owwr_-LTT>kpH%?~82 zo}`R8oFT(BYg^;+klOv%{kXP(<}j?s^GW$xP1FH-Cx5+jbHMVo)VaqAP&b;}O7aN1 zc?ID>3ctr*?ZA{Q8e-t?f5`$@%=^L>do|o1B2-Ra<NNL?svqWu&zN*PqB82BXni6s zM?iOc2m4TfXJ#=Wh#_sD0cMflT$xfgmT&Y_ZP;#+&eLC&ZE2BK&@6;AAxGefVZ^S) z9l^)3Nj@1-RJ5sVT#{aNMfPL8Yq##+YIIsQdcXJew*D#h0fgu~!8iGF+26U>NNxX< zT8MGP$W{$({sGC#3u~|sUh(D<$fpj0aF=AdniHQx^o97i_2jy{6gVF~Tgx?D$yfAm zcL`KtEbd*sHSLC{>#EXR3*!Xa6TvOC$UvE|pf1w!IE384y`x1>fN$|#?i)1;1$#d+ zhUP-Xjt6;5npxj@s)cg8FS(&TX8iavvG<xEJe8(gCRTbfz4wT>U<@8QPCOQR6!_%t z*P0skI%UO$C5Cs@#>i;Y%F=aIuW*KD)HQ@oscP$z8A$8W{}U)pW)K?oF!beP`M)-s zm1ef-S$x;}&G|5-CVbK7Eo-4xTkOmtt>Sy0^QDV{LyXm#3Fk`5vj&Z`=$6Pqi7n|& z3JGhu?jUaA`KH}=MUOMn4%+jY2d*nqGrVlA5#(#fQ^nthZvDl0nwQ>MXN#<OpC}&J z<<k`tTpJ1Ha4o%CfwyP9gu_QGmH9RuRPR_o3(-AitgSkP7~}1Il!{3H`F3ST&^Uq+ zAzv*UX6!Rvaae=*jH~lTk1|>d#i3x`^1jWOW{DiF?0(zjA|YMIy3c4w{LWruu+-D^ z7U$uK2=A^K*)KM`=h=Q1XxE>VLBx$iXmCIR{n0r2J#9WmFQxNd&1BExyG^xe&j>k? z;zA*Zag$*5i@U_$g<=jz>OYSL9y4q+`l{Fy+F5hPch6@dDG;KY*CT1Q&cAk0(EF_U zvYrwRgBfSh<)df^hZdqfg@(jZ)FZ2uijG?Y2;7-Tcgtf@sKLetP56%c>)D_5k@Uok z9V3mYY?#5ae0TNU20cAJ=bm?80RI9%CMqrYZTz);z~hp@N}FMEB_Y0ou$3_e!i{+s z+}VBtIga5u^wV4p7lq;3DxRmsZIc4t&@nm(IZb3%@zV4~tRKU$F+uQk#nIN&Op63u z)@e$9Q9c8_zb;qY#B1k3_(XyjH>TPelVZDp$s(p$eMu3|$LQ1W=1a)s6&a--&!A}} zeUDX2Hd=0-yy6x>H%T=+DC*nIO-feom6jS|GW+6*n23`_6-LP-f;!W;!&UNoc=U{B zHGO`<uJ=h_*SyzJQc~l@c}v2ztxXk1qxlI>Hy*u;@+PtL=6WAy?MZtUqsH-3{)qbo zjGB6@|KidN=~3Sev+H%y(W|HL@YNHNGu5ZfXhuPy2|pz%rq<M%1vxy=KPG=93maY0 z6C&ti_QpfwP^5m%h&Rdm;2Qh<SxHxX|1<-qmi^Y$)U=MVu&qYN&w~L9NFH}0b(|HJ zEKG>Us3Ko{I+Awog^8cKUEk-ktOlQxcubg(!_1h7$6K?~qjK^4y`M+R(_Q=G2Wuv< zSTD&IH_RGYnDA}-caZev{QUe@S+m6qCB+0s-*O{G#km%BUq`AIXR~#3BUfK{k&{@; zQ_(|Av!~xwRXv}tgRJ-4u3F)6I+I^l8rwGRQ0zijEC;83u4LIzZu@6ny`3_wH_vgZ z7?Ne<E1Xc<`{BM&k$+cNeD6zk3T0Z!xk<yp?k~3Y`8j$M>>PFQ`9}?>*<6b57Hb+X z&!e?onwDX+^K3rmSwgUY&@s&P-k(P@LYI82tR$f3(EH8A?MB4el*u)w-+DnFVF?bn zX<n^~-5RI;FB7s4__8i<=bKZO$=cZ!itSRH*{Kjc2Tov)hXPQAqigdL`Ioobz{k11 z<6q5kcjjEs>wBA46oKoKt}E=U%5|Rge^0rJJbCcGP_wYcz<E40(G&X3dlFkRz>%xu zAo*Sfc??TBU8t>|tXKcg*7azSgw*P6AG>4x_?l{;M*<1So#`tie}7f_Uw@$eZa?F3 zSvgtw5=o;T{-x5#s~pJ<=<gM+JS1g>;}jb2Z~pd3aQ}3j#LH<+;%7zv{BsSGAD@@g zYvd+>msOK8%v>Sab_u^lD&Ro(-QKpvv%n(zHp$d#QW6KL*@udJkR=k*AR+N6zI&fk zD1o-lEFvlCW-`eKL;HuMW`8R3Exup1Ci#(O_FumhjaJv#H~;zJMDjj?&E|Pj@`GC& zT_nZa`g=*$q9lJla%v7w@O{^P{(V|wSJw_jT#%4rCHZs78cMsN*8kE`YI?@NX2VB5 zHJy^g2_BciruO`YN5}45NAQ@)<P8$1*0?A(5j9$;#z)B>lZIp@jC4U1a}vzo=3Gna z_;l!Ja#Bb>oEJTL)8QaGx#J+#>EIgUa+zc|`7Xskqa*9DuHIesT@M&+Zc8xLNaGsG zacNQSE&6x0zC+_R$Q&iZ-c+XNO(p)q3pYsKt8x~)Fb9qAppTHdgEs03*oNL;ChjOP z4wTrJRFV(HqC|LMMu`&BHUCmT$s*Wqjm*5Wu_@7?9G)&uU&}O%)Xh~&BY8hGa?-yr z(&Wyx-&W~3{Jtlrx7jXUN)I)o$3ZWwDP+IR1^4h|At~#&wk;A69v2k6)o|tho9VIa zpX#oo6W0n2cvh=yT-W2d<BA<q^@&$V7)`fOwT$JJCqq~TGbzK-?{+Z`pU-mU=#!Pg zEtN=qeE%b8|G!R=|M#T%zvasIE3nQPz(;3*vE|*AL``@SP6Z1SxR3^yt`>IPDC<s! zod)d@&AlgAH%Il1a4BEof-`Q>i$?n3`%5f+R>Ncw&b<M>-w!4e8A`oDt7-}I9S?lz zSf1BwLh4AH1ioiZc{2bq+q9dbKS?+gE+jbhHFPrxt>mlR*TQRnsaDmTY_*L9@Xeft zhF*u~zPnweFe~}VRp#4FSk-|XW8>xmQLBcH5ersEu@cz!dyLqA1``j;HfM>GSgs?~ z_UB3R`-cYJCk3U3b;XK=bqc#aB-)ritC$d=9SOr1cJGvU&1gDc`mmaXwZ#GqK2FH8 z^v|pBKXe5#M%rJW=>0xCGXgX7nNxnhAEoq6C)T6`$gsH~85o#gds#ITt;?)~6n-v7 zx-MG{xPc)h-+tyGjjO@A5;kYdw{6asi&4F+lMMVG+Z#b(7!GM72nW=l_HZF7+0hT` zOLjljoO1i>wYQF&4P~a|VBHrQ_uo3?)Rshlm5T7*+_=%GXC}2Ow!Y)qT@;ZnwZ*zS zu0i`2ojQXn++%V=K~Xs>cC_M0BHwAIuaFi$8Qye6N#6IK*uFJs(7IM>Y^WnqwJO|d z%$>|A&X0!X-&Dxn>U~yp`KD>bb&pCuOE$+$8KD%PwK+qk`mLF9dLcI<;ZvPlWL3S( zdH+dv`7TbsyNQfGSJ{Dwx$qr{I*Z`so|jO$edn4n5y<v73iB8=Ij{T^Bz4<b!deC; zsjg4A*LOHJ05{SuDMz^&X74hk@ih%O8dta-oxly$dAN*bBp{s9Qzs7fsjD-!#Gc88 zDi1=tlEs!*d_RklwNLM2N3UVwtZeoRN5r`Ed4B|Q*Pzwg)q)7qM<a7Bh@0G*vgo>W zFcXd3cM3}SI)a46G0sxH_>{vk;%RlE)xfS!mAN{tEJK+iijqmJDm~o=naTi9u7pk> zM3K(qyqyusZ#di<XP~bcljQOoTJY*%nw&rDu7(z$SU7-Jx0;}Ty+672V6C+X)nLH* z@$=~dT4&A;)qo+dl{kx(bdx)u>Z0ZpUhq0<KoLBZ>L*t@7(L#j{^(u}3>Kfh^0_^e zal)+sH!5#GS|JziH_u&Lyg;BwU;|7Le#8|vMyl-p&IRlwxGOwPIqD>%F>bIwcckSn zSZu1ymBjs+Q1}BUl%dbmcMDp4kHcgjKs@0b*Q@WKe>zApH;4LcjGb62A(xeO9FtW} z)xn=39Q28V%0`Nh1z0bOSNVy+U9@@ai>*~>udHo`JGg6UqdNA|&MMX;3tIHCnLgyF zX;W^~f&8|uXEXE@v7mChA+KPiPj@fbZPTK!^#q~VDEW>ha9sC~{=9H5HclJA|6$1A zV(}@&a2_R;;`jO-6+t^$R;k>K?h<4=TahqK==+TO=xLuU>yK}L+KL;f89SeqJvFMf zRK&nvm+ryl`DIfM&>_r0`ZJ%er4sw!tA68mG&?z5rl21g8=F&VJsT*XY4xx~3~1DQ z3Y-)O4<s!dk>tk});>6&Xg!&JE6x5{JM9Gu7>AZe&RbpE<V~_6I^B%LkFCG=v|9~N zLMg4F3vUhmJ?D~W7<{ejw-o;19C^L*jh5gzxbqssU8PzYE9{C6iW&NbEKCfAEVK~Z zb7wWhAjku5-6j}6H9`zNOu?&fG)-MnZ!&-$(7+uha1LQ-aX0q=#3+@W$7R=2_!pdS z?vKkx<QwrQDzB&1en*EfIm_wq)Tng!HwxjtuT!F@*9UorPOF*N)noX~3-EG@jj`k9 zy%BLIIg_oGjfrWP*hMDTP?moV3v-Zgtb51S@U9`+)^QvAUiSkEE2kUov)An-eoA3e z2-#kg2!cNSJb%zuj}jB*#5b5}bz8MIlwlnb5zY9MWfk1IbM@z{XuhW*SfYr<G)if2 zbIxcyxUfoNGrD(Bqg%})VjQJzg=qYKlgL3a6$qJ{Xj@g|rqJ8T_4n%xh3q^m`e^v; zF~iNO!<EUgI;d$SScRrtg>j4V?&Cx8tc1I4<DR80{wK4(HMcT)DKV#m2uc6h38KBQ z{RSAGd;aIqP?d3Q<63NZcQ~rS4=jucMl~5&%7_<!);+1tW^`g=wS&s@_^*w7NsZjh z{@6n5?p7Cjgs=-HbimPTa(nAIn=2(Q`$v~Qv7K$xwP!Lnfn1gmQYk9Wu`rJMl{^H8 zsX@Q{ZIQ+xPR8!6vX<&k0+?h%%IRKMgQSte3Y=g)4Pg?@LD&_|5w=1i8L*v|xgHE| zCliy^2ttVW__cJd^3=ni13WH;*SM?>`%rt=koi18J0g`YKYwM6TDutgTV%MYz-!bF z841IDt9Y;XI6oG3>fcms(TC^mE24m~=~3?(v#(J!+nHjBFELPmB5R+WBl1MJ7&i5> z@ejub|6eRqw+doH^eh7Q9hp)`P*Itrr*`-)5%or%J^t)^FyGeJ8q6XY)dzC!8a)-8 znW>qWqSkhglu@urb)Q)&X_MDA5L@{$aoP-R57|qbJDJ`idU+$JHPTKN+-6d24dWQG z+p;-T0(+l|vwFjE!$XZRyIE%45~oZuZiYO<Elua$kWvtZPP)NXT6v6z;X>So^Ag-h zPg~cWk6TtvFw=ZQNni8rn|s;Evb5tG3)~n@#*7jsL6<ijYP|O~GuC5_byTMlX&_cB z$wrOE21q^B{Q1On3+{@URM$1A*Pm$t=-!$N+-a|5!36`2M`{&d*R>tQ4sFnLpAX*n z?*Gl4{Ju=5%z6}vP@NRz-sW8nI1HFOX&aFr*VwW+49FRg8fRTQ+@7DPIcY3u@mD&r zGjbjKW@P7T;cyJzS*(d>{p@d5?Tqxvas><B{W1P^kDcqf^`7o~<cM!GCmQ%4b8dE# zJHy7O1<uub6O-EWZU(-B$-VaW)1d?SH$$(^J%fLF@=S|%_zt_u#F4eRL@LyY^Z7m} zW;{){rLghoJJ@M9V%51Sw~kJUI@#1!p;tS1uv45{jAX=C8W$HCDXw1f1%d1dR$Bbv zc}Kx?)%)SD8~YD|@zZOZLTBpoEBhbqej9h5BRZf$DmdJRK83FnQB^ZE-Enn^Vvftj zwWa5y#uE$fr$KRrLJ23C6+de6kNP`jz30?}@i`~uvcu}PnY5<M?Q9DQ&qk)zWp5%a zuDzO==$NNWu35MVL*z?1>@Q^}V|#Ksz%GK>OI|S4n-8iQhY-phMMCU1Ad(hdCm#y@ zxpXI(tu41lyP388|HNsRmK+yOzB23#IGCH9uP46^EqKrb-}Bbo5jm;Z&O&`Kd@0oS zQfw_dvvy(N@Km@2b}C!b9F2-cPQWprI`_nFkc%&lXdHaHgB!XbVw%Wz>bvKRa?Q9u zR(&d7CsVyV?~rWgDtpYT3K`=OzvFq32GgFw5a{-|Ao9Vvb;QD9?F>bHxvG51p_bMJ zBWxpTbU||Q2Of)DaDff9%{;9Sy1kisCx*KdIpYIg=7FrvMeUTB=AP4$G{$R>w0(Cv z%M4E0-`b@vT)+?2Om`K-4T%}cyW5qCKE*AX<C66yy5}!t|3=`q+99(k_mIlf0-g&s z<966OsD=5vWY~b1*!Qin;95if;V%^xHQL7K;&Wa{Gj}zGiS?~W2vosSH-1I0qA2o` z5$!cC65w?*g6s*5YtY!rqsXASnxp01xUWEV{4KH(Qx$XCaJ-Pauz&Q~q5kksp}*Hl z#HvQ46TclA@7)3inWXWWN#s1l3M^o8h9<M$c99e7<ZCoMyXEHbDNs)^(_<nSJUctj ziIc*o=TkN@5q|S|GehyRd$>KW&2?m-nNG4nEuq@etaxvuh$sEB?+f5IbhdX&+}?!R zPl@_q#vQdaA&0}K%04Gw&4AyNjgp3DKf{XG0QJ({gC6wfjBt7}i2MAfNPkO0A|jEP zSjts&yt*)$a+nyoZ3wG1=%ck7YJ|(KAJ6#OxD2GpJhiTYA842MsGd(92Q;3X=<l6{ zA@~oObCsLcy00;weA@MDSi=h9nNE-LlFYIs(bE`CEe}Y+suBEbbo1(!A5v-dpI)VB z^;oscGCa4q@@`E6HQ|_lEAwlI?-wKNY)pgK+MPMxO>EmxJaM;yG1!ZE?wR0s)TqeY z;5OZvz|+`V3Tuc2n}U24E5u;~Wq0pZX_L<h*@C`a{a(qQNUn$%abjk8aFYp9o6myl zy*!<W*mQ`sg22wu-Crg}QLaZS#Gg$iwTYhYG*kN~C*4h1zU!Yxtn{(amWtPU&EltN z;jAsb=t%z-Q{Vs-VFO#IFh8T6i0eNX2Oljy`_0pAFYTVZ$491HVL!@HDeAMca(qbR zAYtjZ5rrM09mlr}fhNvmVm2Q5iEI7H{bnX!&XdvgA!0BnwZ<60+->$^Df(ex6;bio z{w;{AF@Vh_@%ovmop9O>P1ZEK7y@rLr-9mP^3Fuhnv_MB#@y~9GJy+flP`uVOW#?h z174Sgwl@1K^|_fw+`gy3^{yg9tl(y-19r5*5e~P3vb1btGS6ExKro__ycU!^k>)!Q z%NNS2UG6d-&r6g&o#To$A?ET(Zjoie;mb2y)0PhPP`r)RKp}~}EU<CTS4Ul^{hRCL z3aJk~k85a3<9-xaswdK)&@r6Y{M^TaEo>>@YTmH9LDJKXOC4dvYO|SLUhaaXjWIst z<u4>d*PISv+Jw=_P5&#`b|<l@h2j#U^Lk@rHwO!~6OEQ`28o<23Ma~V5UmyD78IW> z!Rd5ajPS<8oW^_&NlF$98V<I!!%FuTbi}+lA|RHmrB}E{t1C!+P9^BE;s*=B;dA-@ zWkS-EjSMYtZ}YvA2zZtjbg6owRV6Q8gQH-mR2;o(=5cJ=urA^HvvGcEVe<{6vm8>| zc%~K|&<0BqNZ+K)RVip`d_SB+ky?55yx-2Krh{H9mJ^TDZ5Ec=TNP1Za_&O1XnCxC z4X)Dk{IT_pqgb0i4rx61PZN`c;6B(-^n8VW^fs5ui(>-NyeWd!K70?}Q&`PhAx$q| zSf8u#IVmGW_Uesv+_r};nfZRvQGmc!Q}PjnkxzZ_=8A?7ni(rAlwGYW^_c}I1!>rj zs`n0Om*k;|6wldw^cK&E;q7npE<cxpn=xnTnV9S`2jb||@8z8Mr>%D>$1Ce%5n3fx z=1LabGU4`TyV^N$6eIz+Ra;oF?!&3*KF<5?_x#zw(4Ol-c3+EY&&W(no96CLy>_$P z@e$G4-0&Vpcaz)kVkE84pf`C*s||EVW`6aN==SeNdoP@EAZR{svb%Mwx%54VJ4co0 zQK_uqyzX^wojJ{2g5gY)I&jC9iQQ#Y?W4$n5zTQ<=#)cp&Wy3o@*trEYCVN1H9JQd z7%!Z9UZRL@5VPXtA@aj|d60v*y`s1bnrwP1l+0v>Ya*dVVckrHllF<NPRpU1$@+R* zr^yo|#8(rI23G46G^2568%MDotCi&U9QEp~%`izOQYgjzFAT0k1Wr+FUeHsjz9c^; z`5Z!F$Xh$KmA6~=%);d;AWi>e9KH83y``o$^^k;J?<hi`=<>D+$YVCdh1gKy<~G)G zZg@5kKC^}RUWXBPpE`d@eL9QR=Ovi1ytm)FzJv}+P4@AY=xIv4^DjkrRru-7o!gGC z^<ox`44^qn-)Sk1zcl?=;GMogk<qyB=r_o@m-kF(&SkZ2btu#L#l<WR+@<Ah#5+gQ zy_<L|Cgf)1+mXcAR^X2hBigJ49Ox5g{LV&+2DGs}t=3&D*EcP-f54t5e~>WLrS+Sn z??xPT?!qcd&KIhYdpG@8j$~3j4g+qKU30ak{GnBgv%sHA`g@krEV<K;Xc1dtSesVr znK^%?6`-bArmvI@<P5|$uDRi$gF%UvV)5Jy;+7iAgi(D<kO*=1Q*WNrdq1=m<@AA( zj-KOuXY}2Cnl7!;rKt$`%S$A0%mI1t4X8o;_lN)agOHcT3aSn%-papurSU)iZvVZ* ze=Y0ZRpnnR_}2>lwSs@G;9o2F*9!i%f`6^xUn}_63jVc%|0z~LpdcY35?@i^eL*+g e)r+{AltkO10M*tu-Vd&j$V)4~DS7?=)Bgi?w5-?w literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-03-resend-throttled-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-03-resend-throttled-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6361e2a1a239156baecd122eefd7da58e4c0c7 GIT binary patch literal 68418 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 J{(SP{e*rV3)QkWC literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-03-resend-throttled.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-03-resend-throttled.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6361e2a1a239156baecd122eefd7da58e4c0c7 GIT binary patch literal 68418 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 J{(SP{e*rV3)QkWC literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-03-success-resent-reduced-motion.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-03-success-resent-reduced-motion.png new file mode 100644 index 0000000000000000000000000000000000000000..e32e00408119de947e6ebec9f5bae01c2df8c9a8 GIT binary patch literal 67416 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¬-<<C`+IVg7AoeC*a_fxig8a@)^tO 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%0DATsOvK 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 J?hlU_{{f#5G*$or literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/shots/s-sign-03-success-resent.png b/design-toolkit/examples/signin/artifacts/shots/s-sign-03-success-resent.png new file mode 100644 index 0000000000000000000000000000000000000000..e32e00408119de947e6ebec9f5bae01c2df8c9a8 GIT binary patch literal 67416 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¬-<<C`+IVg7AoeC*a_fxig8a@)^tO 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%0DATsOvK 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 J?hlU_{{f#5G*$or literal 0 HcmV?d00001 diff --git a/design-toolkit/examples/signin/artifacts/stategraph.json b/design-toolkit/examples/signin/artifacts/stategraph.json new file mode 100644 index 0000000..946973c --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/stategraph.json @@ -0,0 +1,292 @@ +{ + "generated_by": "tools/stategraph.mjs", + "inputs": { + "registry": "reference/screen-registry.csv", + "machines": "reference/state-machines.json", + "vocabulary": null + }, + "counts": { + "screens": 3, + "states": 11, + "transitions": 17, + "multiState": 3, + "singleState": 0, + "hooked": 11 + }, + "stateUse": { + "happy": 3, + "loading": 2, + "error{invalid-credentials}": 1, + "locked{rate-limited}": 1, + "offline": 1, + "error{invalid-email}": 1, + "success{resent}": 1, + "error{resend-throttled}": 1 + }, + "id_conflicts": [], + "machines": [ + { + "id": "S-SIGN-01", + "flow": "01 Sign In", + "name": "Sign in", + "initial": "happy", + "note": "Entry point of the unauthenticated area. Success leaves this flow into ⟂HOME-01, which is a boundary rather than a state of this screen.", + "states": [ + { + "state": "happy", + "hook": "signin.html?view=signin", + "note": "Default entry. Submit is inert until both fields carry content (D1 is a guard on the affordance, not a branch).", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + }, + { + "state": "loading", + "hook": "signin.html?view=signin&state=loading", + "note": "aria-busy, label swapped, second submit impossible.", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + }, + { + "state": "error{invalid-credentials}", + "hook": "signin.html?view=signin&state=invalid", + "note": "Identifier preserved, focus on the secret, announced via a role=alert container that pre-exists in the DOM (o-s5).", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + }, + { + "state": "locked{rate-limited}", + "hook": "signin.html?view=signin&state=locked", + "note": "TERMINAL AT SCREEN LEVEL, not a dead end. No in-screen transition changes it — the window elapses off-screen, and the way out is the reset route, which leaves for S-SIGN-02. That cross-screen edge is navgraph's to draw, not this machine's. The banner renders the ASSUMED 15-minute window (o-s1, debt #1). Flagged rather than left to report as S7 every run: a suppressed advisory teaches a reader to skim.", + "entry_only": false, + "terminal": true, + "unimplemented": false, + "reason": null, + "reachable": true + }, + { + "state": "offline", + "hook": "signin.html?view=signin&state=offline", + "note": "Distinguished from a rejected credential by copy only — ds-banner has no offline variant (Extension Note 1).", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + } + ], + "transitions": [ + { + "from": "happy", + "to": "loading", + "trigger": "submit with both fields non-empty (D1, D2)", + "kind": "user", + "evidence": "signin.html:364" + }, + { + "from": "error{invalid-credentials}", + "to": "loading", + "trigger": "correct the secret and resubmit", + "kind": "user", + "evidence": "signin.html:364" + }, + { + "from": "offline", + "to": "loading", + "trigger": "retry", + "kind": "user", + "evidence": "signin.html:364" + }, + { + "from": "loading", + "to": "error{invalid-credentials}", + "trigger": "D3 no, attempts < N", + "kind": "system", + "evidence": "signin.html:299" + }, + { + "from": "loading", + "to": "locked{rate-limited}", + "trigger": "D3 no, attempts >= N", + "kind": "system", + "evidence": "signin.html:299" + }, + { + "from": "loading", + "to": "offline", + "trigger": "D2 no — request did not reach the service", + "kind": "system", + "evidence": "signin.html:299" + }, + { + "from": "happy", + "to": "error{invalid-credentials}", + "trigger": "entry on a URL hook — QA and review path", + "kind": "entry", + "evidence": "signin.html:367" + }, + { + "from": "happy", + "to": "locked{rate-limited}", + "trigger": "entry on a URL hook — QA and review path", + "kind": "entry", + "evidence": "signin.html:367" + }, + { + "from": "happy", + "to": "offline", + "trigger": "entry on a URL hook — QA and review path", + "kind": "entry", + "evidence": "signin.html:367" + } + ] + }, + { + "id": "S-SIGN-02", + "flow": "01 Sign In", + "name": "Reset password", + "initial": "happy", + "note": "Reached by PUSH from S-SIGN-01, so its toolbar back is correct. Carries the identifier already typed (AC4.2).", + "states": [ + { + "state": "happy", + "hook": "signin.html?view=reset", + "note": "Identifier pre-filled from S-SIGN-01 when one was typed.", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + }, + { + "state": "loading", + "hook": "signin.html?view=reset&state=loading", + "note": "aria-busy on the send control.", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + }, + { + "state": "error{invalid-email}", + "hook": "signin.html?view=reset&state=bademail", + "note": "The ONLY error this branch may show. There is deliberately no account-exists branch (D-f2) — adding one would build an enumeration oracle.", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + } + ], + "transitions": [ + { + "from": "happy", + "to": "loading", + "trigger": "submit with a well-formed identifier (D4 yes)", + "kind": "user", + "evidence": "signin.html:359" + }, + { + "from": "happy", + "to": "error{invalid-email}", + "trigger": "submit with a malformed identifier (D4 no)", + "kind": "user", + "evidence": "signin.html:303" + }, + { + "from": "error{invalid-email}", + "to": "loading", + "trigger": "correct the identifier and resubmit", + "kind": "user", + "evidence": "signin.html:359" + }, + { + "from": "loading", + "to": "error{invalid-email}", + "trigger": "D5 no — request did not reach the service", + "kind": "system", + "evidence": "signin.html:304" + } + ] + }, + { + "id": "S-SIGN-03", + "flow": "01 Sign In", + "name": "Check your email", + "initial": "happy", + "note": "Reached by REPLACE (D-f3), which is why it carries an explicit route back instead of relying on browser back. The toolbar back that proto-signin-01 had here was superseded by rev-signin-01 / CR3.", + "states": [ + { + "state": "happy", + "hook": "signin.html?view=sent", + "note": "Names the address the link was sent to (AC5.1).", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + }, + { + "state": "success{resent}", + "hook": "signin.html?view=sent&state=resent", + "note": "role=status rather than role=alert — a confirmation should not interrupt.", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + }, + { + "state": "error{resend-throttled}", + "hook": "signin.html?view=sent&state=throttled", + "note": "The resend control is DISABLED here, not merely captioned. rev-signin-01 / CR2 — copy is not the mechanism.", + "entry_only": false, + "terminal": false, + "unimplemented": false, + "reason": null, + "reachable": true + } + ], + "transitions": [ + { + "from": "happy", + "to": "success{resent}", + "trigger": "resend outside the throttle window (D6 no)", + "kind": "user", + "evidence": "signin.html:365" + }, + { + "from": "success{resent}", + "to": "success{resent}", + "trigger": "resend again outside the window", + "kind": "user", + "evidence": "signin.html:365" + }, + { + "from": "happy", + "to": "error{resend-throttled}", + "trigger": "resend inside the throttle window (D6 yes)", + "kind": "user", + "evidence": "signin.html:317" + }, + { + "from": "error{resend-throttled}", + "to": "happy", + "trigger": "the window elapses", + "kind": "system", + "evidence": "signin.html:317" + } + ] + } + ], + "findings": [] +} \ No newline at end of file diff --git a/design-toolkit/examples/signin/artifacts/statemap-report.md b/design-toolkit/examples/signin/artifacts/statemap-report.md new file mode 100644 index 0000000..9b7da54 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/statemap-report.md @@ -0,0 +1,93 @@ +# Screen State Machines — derivation report + +_Generated by `tools/stategraph.mjs` from `reference/screen-registry.csv` + `reference/state-machines.json`._ + +## Counts + +| Metric | Value | +|---|---| +| Screens | 3 | +| States | 11 | +| Transitions | 17 | +| Multi-state screens | 3 | +| Single-state screens | 0 | +| States with a QA hook | 11 | + +## Findings + +None. + +## Per-screen machines + +### 01 Sign In + +**S-SIGN-01 · Sign in** — initial `happy`, 5 state(s), 9 transition(s) + +_Entry point of the unauthenticated area. Success leaves this flow into ⟂HOME-01, which is a boundary rather than a state of this screen._ + +| State | Hook | Flags | +|---|---|---| +| `happy` | `signin.html?view=signin` | — | +| `loading` | `signin.html?view=signin&state=loading` | — | +| `error{invalid-credentials}` | `signin.html?view=signin&state=invalid` | — | +| `locked{rate-limited}` | `signin.html?view=signin&state=locked` | terminal | +| `offline` | `signin.html?view=signin&state=offline` | — | + +| From | → | To | Trigger | Kind | Evidence | +|---|---|---|---|---|---| +| `happy` | → | `loading` | submit with both fields non-empty (D1, D2) | user | `signin.html:364` | +| `error{invalid-credentials}` | → | `loading` | correct the secret and resubmit | user | `signin.html:364` | +| `offline` | → | `loading` | retry | user | `signin.html:364` | +| `loading` | → | `error{invalid-credentials}` | D3 no, attempts < N | system | `signin.html:299` | +| `loading` | → | `locked{rate-limited}` | D3 no, attempts >= N | system | `signin.html:299` | +| `loading` | → | `offline` | D2 no — request did not reach the service | system | `signin.html:299` | +| `happy` | → | `error{invalid-credentials}` | entry on a URL hook — QA and review path | entry | `signin.html:367` | +| `happy` | → | `locked{rate-limited}` | entry on a URL hook — QA and review path | entry | `signin.html:367` | +| `happy` | → | `offline` | entry on a URL hook — QA and review path | entry | `signin.html:367` | + +**S-SIGN-02 · Reset password** — initial `happy`, 3 state(s), 4 transition(s) + +_Reached by PUSH from S-SIGN-01, so its toolbar back is correct. Carries the identifier already typed (AC4.2)._ + +| State | Hook | Flags | +|---|---|---| +| `happy` | `signin.html?view=reset` | — | +| `loading` | `signin.html?view=reset&state=loading` | — | +| `error{invalid-email}` | `signin.html?view=reset&state=bademail` | — | + +| From | → | To | Trigger | Kind | Evidence | +|---|---|---|---|---|---| +| `happy` | → | `loading` | submit with a well-formed identifier (D4 yes) | user | `signin.html:359` | +| `happy` | → | `error{invalid-email}` | submit with a malformed identifier (D4 no) | user | `signin.html:303` | +| `error{invalid-email}` | → | `loading` | correct the identifier and resubmit | user | `signin.html:359` | +| `loading` | → | `error{invalid-email}` | D5 no — request did not reach the service | system | `signin.html:304` | + +**S-SIGN-03 · Check your email** — initial `happy`, 3 state(s), 4 transition(s) + +_Reached by REPLACE (D-f3), which is why it carries an explicit route back instead of relying on browser back. The toolbar back that proto-signin-01 had here was superseded by rev-signin-01 / CR3._ + +| State | Hook | Flags | +|---|---|---| +| `happy` | `signin.html?view=sent` | — | +| `success{resent}` | `signin.html?view=sent&state=resent` | — | +| `error{resend-throttled}` | `signin.html?view=sent&state=throttled` | — | + +| From | → | To | Trigger | Kind | Evidence | +|---|---|---|---|---|---| +| `happy` | → | `success{resent}` | resend outside the throttle window (D6 no) | user | `signin.html:365` | +| `success{resent}` | → | `success{resent}` | resend again outside the window | user | `signin.html:365` | +| `happy` | → | `error{resend-throttled}` | resend inside the throttle window (D6 yes) | user | `signin.html:317` | +| `error{resend-throttled}` | → | `happy` | the window elapses | system | `signin.html:317` | + +## State usage across the product + +| State | Screens | +|---|---| +| `happy` | 3 | +| `loading` | 2 | +| `error{invalid-credentials}` | 1 | +| `error{invalid-email}` | 1 | +| `error{resend-throttled}` | 1 | +| `locked{rate-limited}` | 1 | +| `offline` | 1 | +| `success{resent}` | 1 | diff --git a/design-toolkit/examples/signin/artifacts/stateprobe.json b/design-toolkit/examples/signin/artifacts/stateprobe.json new file mode 100644 index 0000000..5d48bd0 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/stateprobe.json @@ -0,0 +1,266 @@ +{ + "generated_by": "tools/stateprobe.mjs", + "counts": { + "urls": 11, + "stateClaims": 11, + "painted": 11, + "failed": 0, + "driftObserved": 0 + }, + "measured_id_drift": [], + "results": [ + { + "hook": "signin.html?view=signin", + "claims": [ + { + "screen": "S-SIGN-01", + "state": "happy" + } + ], + "activeViews": [ + "signin" + ], + "paintedViews": [ + "signin" + ], + "sid": "S-SIGN-01", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 11, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=signin&state=loading", + "claims": [ + { + "screen": "S-SIGN-01", + "state": "loading" + } + ], + "activeViews": [ + "signin" + ], + "paintedViews": [ + "signin" + ], + "sid": "S-SIGN-01", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 11, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=signin&state=invalid", + "claims": [ + { + "screen": "S-SIGN-01", + "state": "error{invalid-credentials}" + } + ], + "activeViews": [ + "signin" + ], + "paintedViews": [ + "signin" + ], + "sid": "S-SIGN-01", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 13, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=signin&state=locked", + "claims": [ + { + "screen": "S-SIGN-01", + "state": "locked{rate-limited}" + } + ], + "activeViews": [ + "signin" + ], + "paintedViews": [ + "signin" + ], + "sid": "S-SIGN-01", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 13, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=signin&state=offline", + "claims": [ + { + "screen": "S-SIGN-01", + "state": "offline" + } + ], + "activeViews": [ + "signin" + ], + "paintedViews": [ + "signin" + ], + "sid": "S-SIGN-01", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 13, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=reset", + "claims": [ + { + "screen": "S-SIGN-02", + "state": "happy" + } + ], + "activeViews": [ + "reset" + ], + "paintedViews": [ + "reset" + ], + "sid": "S-SIGN-02", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 10, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=reset&state=loading", + "claims": [ + { + "screen": "S-SIGN-02", + "state": "loading" + } + ], + "activeViews": [ + "reset" + ], + "paintedViews": [ + "reset" + ], + "sid": "S-SIGN-02", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 10, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=reset&state=bademail", + "claims": [ + { + "screen": "S-SIGN-02", + "state": "error{invalid-email}" + } + ], + "activeViews": [ + "reset" + ], + "paintedViews": [ + "reset" + ], + "sid": "S-SIGN-02", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 12, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=sent", + "claims": [ + { + "screen": "S-SIGN-03", + "state": "happy" + } + ], + "activeViews": [ + "sent" + ], + "paintedViews": [ + "sent" + ], + "sid": "S-SIGN-03", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 6, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=sent&state=resent", + "claims": [ + { + "screen": "S-SIGN-03", + "state": "success{resent}" + } + ], + "activeViews": [ + "sent" + ], + "paintedViews": [ + "sent" + ], + "sid": "S-SIGN-03", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 8, + "consoleErrors": [], + "ok": true + }, + { + "hook": "signin.html?view=sent&state=throttled", + "claims": [ + { + "screen": "S-SIGN-03", + "state": "error{resend-throttled}" + } + ], + "activeViews": [ + "sent" + ], + "paintedViews": [ + "sent" + ], + "sid": "S-SIGN-03", + "screenBox": { + "w": 393, + "h": 852 + }, + "visibleNodes": 8, + "consoleErrors": [], + "ok": true + } + ] +} \ No newline at end of file diff --git a/design-toolkit/examples/signin/artifacts/traceability-signin.md b/design-toolkit/examples/signin/artifacts/traceability-signin.md new file mode 100644 index 0000000..8399054 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/traceability-signin.md @@ -0,0 +1,102 @@ +--- +artifact: traceability +version: trace-signin-02 +supersedes: trace-signin-01 +produced_by: prototype +reads_versions: + requirements-signin.md: req-signin-01 + ux-plan-signin.md: ux-signin-01 + flows-signin.md: flow-signin-01 + ui-plan-signin.md: ui-signin-02 +feature: signin +--- + +# Traceability — signin (`proto-signin-02`) + +Every prototype element traces to a spec entry (V2), and every flow state is represented (V1). File: `artifacts/prototype/signin.html`. + +## Requirement → task → flow → component → prototype element + +| Req | Task | Flow | UI component | Prototype element / hook | +|---|---|---|---|---| +| R1 | TASK-A | F1 | `ds-field` ×2 | `#f-email`, `#f-pass` · `?view=signin` | +| R1 | TASK-A | F1 | `ds-button primary` | `#b-signin`, gated by `gate(['f-email','f-pass'],'b-signin')` | +| R2 | TASK-B | F1 | `ds-banner error` | `.sn-banner-invalid` · `?view=signin&state=invalid` | +| R2 | TASK-B | F1 | focus ruling `o-s5` | `show()` → `pass.focus()` + `aria-invalid=true` | +| R3 | TASK-A | F1 | `ds-button` `loading` | `#b-signin[aria-busy]` · `?view=signin&state=loading` | +| R4 | TASK-C | F1→F2 | `ds-link block` | `#b-forgot` — copies `f-email.value` into `f-reset-email` (AC4.2) | +| R4 | TASK-C | F2 | `ds-field` | `#f-reset-email` · `?view=reset` | +| R5 | TASK-C | F2 | `ds-button ghost` | `#b-resend` · `?view=sent` | +| R5 | TASK-C | F2 | `ds-link block` | `#b-to-signin` (AC5.3) | +| R6 | all | F1, F2 | `ds-banner` ×6 | one per non-happy state, each with its own hook | +| R7 | all | — | layout rules | every interactive box `min-height:48px` against a 44px floor | + +## Flow state → prototype representation (V1) + +| `flow-signin-01` node | Representation | Hook | +|---|---|---| +| `S-SIGN-01 (happy)` | default entry, `.view[data-view=signin]` | `?view=signin` | +| `S-SIGN-01 (loading)` | `data-state=loading` → `#b-signin[aria-busy=true]` | `?view=signin&state=loading` | +| `S-SIGN-01 (error{invalid-credentials})` | `data-state=invalid` → `.sn-banner-invalid` | `?view=signin&state=invalid` | +| `S-SIGN-01 (locked{rate-limited})` | `data-state=locked` → `.sn-banner-locked` | `?view=signin&state=locked` | +| `S-SIGN-01 (offline)` | `data-state=offline` → `.sn-banner-offline` | `?view=signin&state=offline` | +| `S-SIGN-02 (happy)` | `.view[data-view=reset]` | `?view=reset` | +| `S-SIGN-02 (loading)` | `data-state=loading` → `#b-send[aria-busy=true]` | `?view=reset&state=loading` | +| `S-SIGN-02 (error{invalid-email})` | `data-state=bademail` → `.sn-banner-bademail` | `?view=reset&state=bademail` | +| `S-SIGN-03 (happy)` | `.view[data-view=sent]` | `?view=sent` | +| `S-SIGN-03 (success{resent})` | `data-state=resent` → `.sn-banner-resent` | `?view=sent&state=resent` | +| `S-SIGN-03 (error{resend-throttled})` | `data-state=throttled` → `.sn-banner-throttled` | `?view=sent&state=throttled` | + +_All 11 nodes represented. Every one carries a deep-link hook (V5) — a state that cannot be driven cannot be audited by STATE 08 or demonstrated at the STATE 09 gate, and **this table is the review packet**._ + +`⟂HOME-01` is a boundary, not a node in this prototype. Success on `S-SIGN-01` leaves this flow; the mock is the absence of a destination, and it is declared in `flows-signin.md`'s boundary table with the date it was checked. + +## Transition → wiring (V4) + +| Flow transition | Wired as | Destination paints | +|---|---|---| +| `S-SIGN-01 → S-SIGN-01 (loading)` (D1, D2) | `#b-signin` click → `show('signin','loading')` | yes — `s-sign-01-loading.png`, both passes | +| `S-SIGN-01 → S-SIGN-02` (reset route) | `#b-forgot` click → `show('reset',null)` | yes — `s-sign-02-happy.png` | +| `S-SIGN-02 → S-SIGN-01` (back) | `#b-back-signin` → `show('signin',null)` | yes | +| `S-SIGN-02 → S-SIGN-03` (D4 yes, D5 yes) | `#b-send` → sets `#t-addr`, `show('sent',null)` | yes — `s-sign-03-happy.png` | +| `S-SIGN-03 → S-SIGN-03 (resent)` (D6 no) | `#b-resend` → `show('sent','resent')` | yes | +| `S-SIGN-03 → S-SIGN-01` (back to sign in) | `#b-to-signin` → `show('signin',null)` | yes | + +Each destination was driven headlessly and asserted **computed-visible with geometry**, not merely present (B6, M1). + +## Decision → implementation + +| Decision | Where it lives | +|---|---| +| **D-f2** — no `account exists?` branch | The absence itself. There is no such branch anywhere in the source, and `.sn-help` says so on the surface. | +| **D-f3** — `S-SIGN-02 → S-SIGN-03` is a replace | `#b-to-signin`, an explicit route, rather than reliance on browser back. | +| **D-s4** — paste is not blocked | No `paste` handler exists on `#f-pass`. | +| **`o-s5`** — announce, then focus, same frame | `.sn-banner` containers carry `role="alert"` **in the markup**, before content arrives; `pass.focus()` runs in the same `show()` call. | +| **ui-signin-01** — `ds-link` `block` variant only | `.sn-link{min-height:48px}` — no `::after` hit-area expansion anywhere. | +| **B5** — token layer is the base | `.screen{font:… var(--ui-font)}` on the container, never per component. | + +## Superseded — stripped, not left dead (B7) + +| Removed | Superseded by | Selectors / keys stripped | +|---|---|---| +| `ds-toolbar` + `back` on `S-SIGN-03` | the explicit `#b-to-signin` route | `.sn-bar` block in the `sent` view · `#b-back-reset` element · its `addEventListener` handler | + +**Itemised per B7 — supersession deletes.** A leftover listener bound to a removed id is an un-specced element and fails V2 exactly as an addition does. Strip verified by grep: the only surviving occurrence of `b-back-reset` is the comment recording that it was removed. + +## Un-specced additions + +**One, declared:** the `.demo` bar. It is harness chrome, listed as the single `new` entry in `ui-signin-01`'s inventory with its justification, and declared in `audit.paletteExemptSelectors`. It exists so STATE 09 can reach states no data can produce. It is **not** part of any claim about the product. + +Everything else in the prototype maps to an inventory row. + +## Verification record (B8) + +- `node --check` on the extracted `<script>` — **clean**. +- Hex inventory — **12 hexes, all in `:root`, all allowlisted, 0 new**. +- `node tools/smoke.mjs "signin:signin,reset,sent"` — **3 pass / 0 fail**, all painted, printed ids match the registry. +- All 11 hooks driven headlessly across 2 passes — **22 runs**, all painted. +- **22 screenshots captured and read.** Three defects found by reading them (AF-1, AF-2, AF-3) that all 138 assertions passed over. +- Console sweep — **0 errors**, `favicon.ico` filtered by name. +- Duplicate-key sweep — **0**. +- Network call-site sweep — **0**. The "everything is simulated" claim is measured, not asserted. +- Per-glyph font sweep — **not run**; `product.scripts` is empty, which is correct for a single-script product and is recorded rather than skipped silently. diff --git a/design-toolkit/examples/signin/artifacts/ui-plan-signin.md b/design-toolkit/examples/signin/artifacts/ui-plan-signin.md new file mode 100644 index 0000000..e01f8ce --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/ui-plan-signin.md @@ -0,0 +1,212 @@ +--- +artifact: ui-plan +version: ui-signin-02 +supersedes: ui-signin-01 +produced_by: ui-planning +reads_versions: + flows-signin.md: flow-signin-01 + ux-plan-signin.md: ux-signin-01 + research-signin.md: res-signin-01 + design-system: "Toolkit Reference DS · src:toolkit-ref-ds-0.1 · reference/design-system.md" +feature: signin +inherits: "nothing — this is the first flow in this product; there is no shell to inherit" +--- + +# UI Plan — signin + +## Inherited, reused verbatim + +**Nothing.** This is the first flow in the product, so there is no shell, no prior token layer and no established chrome to inherit. Everything below is either a design-system primitive or a `new` composition that argues for itself. + +Recorded explicitly because on a later flow this section is where the reader learns what a plan is *not* claiming to introduce — and an empty one here is a fact, not an omission. + +## Design-system adoption check + +Before anything else, because a plan built on the wrong design system validates perfectly against it: + +| The DS assumes | This product is | Match | +|---|---|---| +| mobile web | mobile web | ✅ | +| 393 × 852 | 393 × 852 (`product.viewport`) | ✅ | +| light theme only | light theme only (A1) | ✅ | +| Latin only | Latin only (`product.scripts` empty) | ✅ | +| LTR only | LTR only (A1) | ✅ | +| target floor 48px | product floor **44px** (`o-s4`, ruled) | ✅ — DS is stricter, so DS primitives clear the product floor by 4px | + +Source id `toolkit-ref-ds-0.1` recorded in `reads_versions.design-system` **and** in `toolkit.config.json` → `designSystem.sourceId`. + +## STRICT colour allowlist (V5) + +``` +brand #2B3FD6 #EEF1FE #FFFFFF +gray #141821 #5A6274 #8A93A6 #F4F6FA #DDE2EC +semantic #B3261E #FDECEA #1B6E3C #E7F4EC +exempt .demo .phone (harness chrome, not app surface) + +BANNED + #FF0000 — the "just use red" default. --danger is #B3261E and it is contrast-checked. + #0000FF — likewise for links. --brand is #2B3FD6. + #000000 — pure black is not in this system. --ink is #141821. + #CCCCCC — the ad-hoc border grey. --line is #DDE2EC. +``` + +Written into `toolkit.config.json` → `audit.colorAllowlist` / `colorBanned` in the same edit as this document. **An allowlist that lives only here is an allowlist nothing enforces** — STATE 08's harness reads the config, not this file. + +The **BANNED** list is not optional. An allowlist alone cannot catch a value that was never supposed to exist: the audit must check **non-DS absence**, not just DS presence. + +> Naming note: this "V5" is the `SELF_AUDIT` hex-conformance rule id. It is not a validation rule of this state — this state's rules are V1–V4 — and it is a different V5 from the rendering-class rule in `skills/08`. + +**All colour is declared once, in `:root`, as custom properties.** Every usage is `var(--token)`. New hex introduced by this plan: **0**. + +## Component inventory → DS mapping (reuse-first) + +| Comp | Surface | DS mapping | new? | +|---|---|---|---| +| Screen container | all 3 screens | `ds-screen` | reuse | +| Top bar with back | reset request **only** | `ds-toolbar` + `back` | reuse | +| Title | all 3 screens | `--t-display` on `ds-screen` | reuse | +| Identifier field | sign in, reset request | `ds-field` + `default` / `error` | reuse+variant | +| Secret field | sign in | `ds-field` + `default` / `error` | reuse+variant | +| Submit control | all 3 screens | `ds-button` + `primary`, with `loading` state | reuse+variant | +| Reset route | sign in | `ds-link` + `block` | reuse+variant | +| Back-to-sign-in route | acknowledgement | `ds-link` + `block` | reuse+variant | +| Resend control | acknowledgement | `ds-button` + `ghost` | reuse+variant | +| Error banner | sign in, reset request | `ds-banner` + `error` | reuse | +| Locked banner | sign in | `ds-banner` + `error` | reuse | +| Offline banner | sign in, reset request | `ds-banner` + `error` | reuse — see Extension Note | +| Resent banner | acknowledgement | `ds-banner` + `success` | reuse | +| Sent-to address | acknowledgement | `--t-body` + `600` weight on `ds-screen` | reuse | +| Demo bar | harness only | — | **new**, justified: review chrome, not product surface. It exists so STATE 09 can drive the states that no data can produce, and it is declared in `audit.paletteExemptSelectors` so its own colours are not swept as app palette. It ships in the prototype and **not** in any deliverable claim about the product. | + +**14 of 15 entries are reuse or a reuse+variant. One `new`, and it is harness chrome rather than product surface.** That is V2's evidence. + +### Selector namespace claimed + +This plan claims `.sn-*` and scopes every descendant rule with `>`. Declared here because the inventory is where a collision is cheap to see, and because generic class names collide silently across screens in a single-file prototype — a list-row class once repainted a hero on another screen, and a descendant selector inflated unrelated icons to ~340px. + +Reserved: `.sn-screen .sn-field .sn-label .sn-input .sn-help .sn-btn .sn-link .sn-banner .sn-title .sn-bar .sn-addr`. Harness chrome uses `.demo` and `.phone`, which are palette-exempt. + +## Layout rules (393 × 852) + +**Vertical budget, sign in:** 852 − 44 (status) − 34 (home indicator) = **774 usable**. + +| Region | Height | Notes | +|---|---|---| +| Top padding | 32 | `--sp-6` | +| Title | 34 | `--t-display`, one line | +| Gap | 24 | `--sp-5` | +| Banner slot | 0 or 64 | present only in error / locked / offline states; it **pushes** content rather than overlaying it | +| Identifier field | 76 | 20 label + 8 gap + 48 input | +| Gap | 16 | `--sp-4` | +| Secret field | 76 | same | +| Gap | 24 | `--sp-5` | +| Submit | 48 | `ds-button` min height | +| Gap | 16 | `--sp-4` | +| Reset route | 48 | `ds-link` **`block`** variant | +| Remaining | ≥ 388 | slack even with the banner present — no state scrolls at 393 × 852 | + +**Reset request:** toolbar 56 + title + one field + submit + helper. **Acknowledgement:** toolbar 56 + title + address line + resend + back route. + +### Interactive target sizes — checked against the floor + +`o-s4` ruled the floor at **44px**. Every interactive element in this plan is specified at **48px**, which clears it by 4px: + +| Element | Box | Floor | Clears | +|---|---|---|---| +| Identifier input | 393−32 × **48** | 44 | ✅ | +| Secret input | 393−32 × **48** | 44 | ✅ | +| Submit | 393−32 × **48** | 44 | ✅ | +| Reset route | 393−32 × **48** | 44 | ✅ | +| Resend | 393−32 × **48** | 44 | ✅ | +| Back-to-sign-in route | 393−32 × **48** | 44 | ✅ | +| Toolbar back | **48 × 48** | 44 | ✅ | + +**Decision: every link in this flow uses the `block` variant, not `inline`.** The `inline` variant meets 44px through an `::after` hit-area expansion, and STATE 08's harness measures the **box**, not the hit area — so an `inline` link would report as a 20px target and be a confirmed-at-source false positive on every single audit run. Choosing the variant whose box is already 48px removes a recurring instrument argument at no design cost. This is a plan decision, recorded, not a prototype improvisation. + +## Motion spec + +| Element | Default | Reduced | +|---|---|---| +| View change | `--m-base` 200ms opacity+translateY(8px) | static — apply end state immediately | +| Banner appear | `--m-fast` 120ms opacity | static | +| Submit → busy | `--m-fast` 120ms label swap | static | +| Rejected attempt | `--m-shake` 300ms | **static — the banner alone carries the signal** | + +Every row is forked for `prefers-reduced-motion`. **No state is signalled by motion alone**: the shake carries nothing the announced banner does not, which is what makes removing it under reduced motion lossless rather than degrading. + +## Contrast + +Decided here, on the token pair, from `reference/design-system.md`'s audited table. Every pair used in this flow: + +| Use | Pair | Ratio | Needs | Verdict | +|---|---|---|---|---| +| Title, field text, address line | `--ink` on `--bg` | 17.8:1 | 4.5 | ✅ | +| Labels, helper copy | `--ink-2` on `--bg` | 6.1:1 | 4.5 | ✅ | +| Submit label | `--brand-ink` on `--brand` | 7.5:1 | 4.5 | ✅ | +| Links, focus ring | `--brand` on `--bg` | 7.5:1 | 4.5 | ✅ | +| Error banner copy | `--danger` on `--danger-weak` | 5.7:1 | 4.5 | ✅ | +| Success banner copy | `--ok` on `--ok-weak` | 5.5:1 | 4.5 | ✅ | + +`--ink-3` (3.1:1) is used **only** for placeholder text, which is never the accessible name of a field and never carries load-bearing copy. Any plan that puts real copy on `--ink-3` is a plan change. + +## `o-s5` — announcement versus focus, RULED here + +`ux-signin-01` U1 and `res-signin-01` C2 left the ordering open. This state owns it. + +**Ruling:** on a rejected attempt — + +1. Render the banner into a container that already carries `role="alert"` in the DOM before the content arrives. A live region that is *created* with its content is unreliably announced; one that already exists and receives content is not. +2. Move focus to the secret field **in the same frame**, not after a delay. +3. The banner copy is the announcement. The secret field's own label is unchanged, so moving focus does not re-announce the error and interrupt it. + +Both AC2.2 (focus on the secret field) and AC2.3 (announced, non-specific) are satisfied without the two fighting. **STATE 08 verifies this rather than assuming it** — `o-s5` closes only when the audit records it. + +## `o-s2` — reveal-the-secret affordance, RULED here + +**Out of scope for this cycle.** The design system has no primitive, so it would be a `new` component with its own state, icon, announcement policy and reduced-motion behaviour — against a `should`-band requirement that does not exist. Recorded in the Extension Note so a DS owner can see the product asked for it. + +## Token reference resolution (V4) + +| Category | Referenced | Resolve in DS | Extension needed | +|---|---|---|---| +| Colour | 12 tokens | 12 | 0 | +| Spacing | `--sp-1`…`--sp-6` | 6 | 0 | +| Type | `--t-display`, `--t-body`, `--t-label`, `--t-small`, `--ui-font` | 5 | 0 | +| Radius | `--r-field`, `--r-btn`, `--r-card` | 3 | 0 | +| Motion | `--m-fast`, `--m-base`, `--m-shake` | 3 | 0 | +| Focus | `--focus-ring` | 1 | 0 | + +**New hex introduced: 0.** Every value resolves in `toolkit-ref-ds-0.1`. Nothing was added to the allowlist to make this plan true. + +## Superseded + +| Component | Replaced by | Strip in prototype | +|---|---|---| +| `ds-toolbar` + `back` on the **acknowledgement** screen | the explicit `Back to sign in` route already at the foot of the screen | **yes** — `.sn-bar` markup *and* the `#b-back-reset` click handler | + +**Superseded by `rev-signin-01` / CR3.** `ux-signin-01`'s navigation model rules that back from the acknowledgement screen is disabled in favour of an explicit route, because the screen is reached by **replace** (D-f3). `ui-signin-01` assigned a toolbar back to it anyway, and `proto-signin-01` implemented the plan faithfully — the build matched its spec and the spec contradicted the one above it. The reset-request screen keeps its toolbar: that screen is reached by **push**, where back is correct. + +## Extension Note (informational, non-blocking) + +Recorded so a design-system owner can see what this product needed and the system did not have. None of these blocks the transition to `PROTOTYPE`. + +1. **`ds-banner` has no `offline` variant.** The offline state reuses `error`, which is correct in tone but conflates "we could not reach the service" with "the service said no" — precisely the distinction `ux-signin-01` asks the design to preserve. It is carried by **copy** in this flow. A dedicated variant would carry it by **structure**. +2. **No countdown / resend-timer primitive.** This is why R5.2 was cut at the Direction Gate. The throttle ships as static copy stating the wait. +3. **No reveal-the-secret primitive** (`o-s2`). Ruled out of scope above. +4. **No inline field-validation timing rule.** This flow validates on submit only, which sidesteps it. A flow with live validation would have to invent the rule. + +## Open decisions + +- **`o-s1`:** attempt threshold — appears in exactly one string on the locked banner. Ruled by: auth service owner. +- **`o-s3`:** copy ownership — every string here is placeholder. Ruled by: content design. + +_`o-s2` and `o-s5` are closed above. `o-s4` was closed at the Direction Gate._ + +## Validation self-check + +- **V1** ✅ — all 11 flow states from `flow-signin-01` map to a component set: `S-SIGN-01` happy/loading/error/locked/offline, `S-SIGN-02` happy/loading/error, `S-SIGN-03` happy/success/error. +- **V2** ✅ — 14 of 15 inventory entries are reuse or reuse+variant. The single `new` is harness chrome and carries its justification. +- **V3** ✅ — no one-off styling where a primitive exists. Every surface maps to `ds-screen`, `ds-field`, `ds-button`, `ds-banner`, `ds-link` or `ds-toolbar`. +- **V4** ✅ — 30 token references, 30 resolve in `toolkit-ref-ds-0.1`, 0 extensions required, **0 new hex**. + +**Exit:** validation passes → `PROTOTYPE` (`proto-signin-01`). diff --git a/design-toolkit/examples/signin/artifacts/ux-plan-signin.md b/design-toolkit/examples/signin/artifacts/ux-plan-signin.md new file mode 100644 index 0000000..d0eddd2 --- /dev/null +++ b/design-toolkit/examples/signin/artifacts/ux-plan-signin.md @@ -0,0 +1,132 @@ +--- +artifact: ux-plan +version: ux-signin-01 +produced_by: ux-planning +reads_versions: + requirements-signin.md: req-signin-01 + research-signin.md: res-signin-01 + product-review-signin.md: pr-signin-01 +feature: signin +coverage: 3/3 tasks with full state enumeration +--- + +# UX Plan — signin + +> **This document is screen-free (V4).** No screen id, no layout, no component name, no colour appears below. It describes the states a user is in and what they experience there. Naming a screen here would pre-commit STATE 06 to a layout nobody chose. + +## Primary tasks (→ requirements) + +Derived from the `must` / `should` bands of `pr-signin-01`, not from the raw requirement set. + +| Task | User intent | Reqs | +|---|---|---| +| **TASK-A** | Get into the product with credentials I know | R1, R3, R7 | +| **TASK-B** | Fix a credential I got wrong, without starting over | R2, R3, R6, R7 | +| **TASK-C** | Get back in when I have forgotten the password | R4, R5, R6, R7 | + +Every task traces to at least one prioritized requirement (V3). + +## Information architecture + +Three regions, and the model is deliberately shallow — an unauthenticated user has one job. + +``` +Unauthenticated area +├── Credential entry the default landing place for a returning user +├── Reset request reachable only from credential entry +└── Reset acknowledgement reachable only from reset request +``` + +- **Credential entry** is the entry point of the whole area. Everything else is downstream of it. +- **Reset request** carries forward whatever identifier the user already typed. It is not a fresh start. +- **Reset acknowledgement** is an end-of-branch, not a dead end: it always offers a way back to credential entry and a way to try the request again. + +Nothing in this area is deep-linkable from outside it in the product sense. The deep-link hooks STATE 07 will add are a **review and audit affordance**, not a user-facing route — the distinction matters because a route that is navigable only by URL is a different claim from one a user can reach. + +## Navigation model + +- **Entry points:** cold start into the unauthenticated area; return from an expired session. +- **Persistent navigation:** none. This area has no chrome beyond a back affordance on the two downstream regions. +- **Push vs replace:** moving to the reset request is a **push** — the user expects back to return them to credential entry with what they typed intact. Moving from reset request to acknowledgement is a **replace**: going "back" into a request already submitted invites a duplicate submission. +- **Back semantics:** back from reset request returns to credential entry, identifier preserved. Back from acknowledgement is disabled in favour of an explicit route. +- **Exit:** success leaves this area entirely, into the authenticated product. That transition is a boundary — it belongs to another flow, and it is marked as one rather than assumed. + +## State enumeration + +### TASK-A — sign in with known credentials + +| State | Kind | Trigger | Strategy | +|---|---|---|---| +| happy | happy | area entered | Both identifier and secret are requested together. The submit affordance is inert until both carry content, and its inertness is conveyed by more than colour. | +| loading | non-happy | submit | The submit affordance becomes busy and cannot be triggered again. The user is told work is happening; the fields stay visible so nothing appears to have been discarded. | +| offline | non-happy | submit with no connectivity | Distinguished from a failed credential: the user is told the attempt did not reach anywhere, and is offered a retry. Nothing they typed is cleared. | +| interrupted | non-happy | the area is left and returned to mid-attempt | Treated as a fresh happy state. Nothing half-submitted is retained, and nothing implies a submission is still in flight. | +| permission-denied | n/a | — | No OS permission is required anywhere in this area. Recorded as inapplicable rather than omitted. | + +### TASK-B — recover from a failed attempt + +| State | Kind | Trigger | Strategy | +|---|---|---|---| +| happy | happy | correction accepted | Indistinguishable from TASK-A's success. Recovery is not a different destination. | +| error (credential rejected) | non-happy | rejected submit | **The identifier survives.** Focus moves to the secret. The message is announced to assistive technology, and it does not reveal which of the two was wrong — that is a security property, not a copy preference. | +| locked (attempts exhausted) | non-happy | repeated rejection | The user is told they must wait and for how long, without being told how close they were. The route to the reset branch stays available — being locked out is the single strongest reason to want it. | +| empty | n/a | — | Neither field can be meaningfully empty *after* an attempt; the inert submit affordance prevents the attempt. Recorded as inapplicable. | +| offline | non-happy | retry with no connectivity | As TASK-A. A failed reach is never presented as a failed credential. | + +### TASK-C — request a reset link + +| State | Kind | Trigger | Strategy | +|---|---|---|---| +| happy | happy | reset branch entered | The identifier already typed is carried in. The user is not asked to retype something they just typed. | +| loading | non-happy | request submitted | As TASK-A: busy, non-repeatable, nothing appears discarded. | +| error (identifier malformed) | non-happy | submit with an unusable identifier | The only error this branch may show. **A well-formed identifier always succeeds**, whether or not it belongs to an account — anything else is an enumeration oracle. | +| success (acknowledged) | happy | request accepted | Names the identifier the link went to, so a typo is visible without checking a mailbox. Offers a repeat and a route back. | +| error (repeat throttled) | non-happy | repeat requested too soon | The repeat affordance states the wait in visible copy. A control that silently stops working reads as broken. | +| offline | non-happy | submit with no connectivity | As TASK-A. | + +## Edge-case matrix + +| | loading | empty | error | interrupted | offline | permission-denied | +|---|---|---|---|---|---|---| +| TASK-A | ✅ | n/a — inert submit prevents an empty attempt | ✅ (via TASK-B) | ✅ | ✅ | n/a — no OS permission in this area | +| TASK-B | ✅ | n/a — as above | ✅ ×2 (rejected, locked) | ✅ | ✅ | n/a | +| TASK-C | ✅ | n/a — inert submit prevents an empty request | ✅ ×2 (malformed, throttled) | ✅ | ✅ | n/a | + +Every `n/a` names why. An unexplained `n/a` is indistinguishable from an omission. + +## Accessibility strategy + +- **Interactive target floor: 44 × 44 CSS px of hit area.** Ruled at the Direction Approval Gate (`o-s4`, 2026-08-07) and set in `toolkit.config.json` → `audit.tapTargetFloorPx`. This is **stricter than WCAG 2.2 AA's 24 × 24** and matches the AAA criterion — deliberately. STATE 08 enforces this number, so an element conforming to AA can still fail this audit. **Hit area, not box:** an expanded target counts, and a box smaller than its hit area is a known audit false-positive class, not a defect. +- **Contrast:** 4.5:1 for load-bearing copy, 3:1 at ≥ 18.66px. Decided at STATE 06 on the token pair, with ratios written down — not discovered at audit time. +- **Focus order:** identifier → secret → submit → reset route. Focus is moved deliberately exactly once, on a rejected attempt, and it moves to the field the user has to change. +- **Announcement:** every state change that is not visible where the user is looking is announced through an assertive live region. **Ordering of announcement against focus movement is an open decision** (`o-s5`) — the two can interrupt each other, and the ordering is STATE 06's to rule and STATE 08's to verify. +- **Keyboard reachability:** every affordance is reachable and operable without a pointer. Nothing is reachable only by gesture. +- **Motion opt-out:** every motion has a static equivalent under `prefers-reduced-motion`. **No state is signalled by motion alone** — the rejected-attempt shake carries no information the announced message does not. +- **Script and locale:** single locale, Latin, LTR. `product.scripts` is empty, which turns the per-glyph font check **off**. Correct for this product and wrong for any product rendering a second script — recorded so the emptiness reads as a decision. +- **Text size:** the secret and identifier fields render at ≥ 16px, because below that a mobile browser zooms the viewport on focus and the user loses their place. +- **Paste is not blocked** anywhere, including on the secret. Blocking it removes the mechanism WCAG 2.2 SC 3.3.8 relies on (research T5, D-s4). + +## UX risks + +- **U1: The rejected-attempt state does two things at once** — announce, and move focus. Done naively they interrupt each other and the user hears neither cleanly. Threatens AC2.2 and AC2.3 together. **Planned response:** rule the ordering at STATE 06 (`o-s5`), verify it at STATE 08 rather than assuming it. +- **U2: The locked state is the one users hit when they are already frustrated**, and it is the state most likely to be built last and reviewed least. Threatens AC6.1 and AC6.2. **Planned response:** it ships with its own deep-link hook like every other state, so it is reachable in one step at the review gate rather than after five deliberate failures. +- **U3: "Simulated" is easy to claim and easy to get wrong.** If any part of this area issues a real request, the whole non-goal collapses quietly. **Planned response:** STATE 08 sweeps the source for network call sites rather than trusting the claim. +- **U4: The reset branch's error space is deliberately tiny**, and the pressure during build will be to add a helpful "we don't recognise that address". Threatens AC4.3 outright. **Planned response:** AC4.3 is falsifiable and marked with evidence at STATE 08; the single acknowledgement state is the design that makes the failure hard to build. + +## Open decisions + +- **`o-s1`:** Lockout threshold and window — assumed 5 attempts / 15 minutes. Blocks nothing; occupies one string. Ruled by: whoever owns the auth service. +- **`o-s2`:** Is a way to reveal the typed secret in scope? The design system has no primitive for it, so it is an Extension Note at STATE 06, not a free addition. Ruled by: product. +- **`o-s3`:** Copy ownership. Every string in this area is placeholder and unreviewed. Ruled by: content design. +- **`o-s5`:** Announcement-versus-focus ordering on a rejected attempt (U1). Ruled by: STATE 06. Verified by: STATE 08. + +_`o-s4` was closed at the Direction Approval Gate — 44px holds._ + +## Validation self-check + +- **V1** ✅ — TASK-A enumerates happy + 4 non-happy (loading, offline, interrupted, + error via TASK-B); TASK-B happy + 4; TASK-C happy + 5. All three exceed the ≥ 3 floor. +- **V2** ✅ — accessibility strategy present, non-empty, and states its target floor as a number. +- **V3** ✅ — TASK-A → R1/R3/R7, TASK-B → R2/R3/R6/R7, TASK-C → R4/R5/R6/R7. All prioritized. +- **V4** ✅ — no screen id, no layout, no component name, no colour value appears in this document. + +**Exit:** validation passes → `FLOW_GENERATION`. diff --git a/design-toolkit/examples/signin/reference/audit-plan.json b/design-toolkit/examples/signin/reference/audit-plan.json new file mode 100644 index 0000000..70d0e1a --- /dev/null +++ b/design-toolkit/examples/signin/reference/audit-plan.json @@ -0,0 +1,25 @@ +{ + "_note": "STATE 08 — what tools/audit.mjs drives. Eleven rows: one per flow state in flow-signin-01. Two passes: base, and reduced-motion. `id` is present only on the three rows that ARE a screen's happy state, because the `id matches registry` assertion compares the page's printed data-sid to this field — a state row and a screen row are different claims.", + + "passes": [ + { "name": "base", "query": "" }, + { "name": "reduced-motion", "query": "rm=1" } + ], + + "screens": [ + { "id": "S-SIGN-01", "label": "S-SIGN-01 happy", "url": "signin.html?view=signin" }, + { "id": "S-SIGN-02", "label": "S-SIGN-02 happy", "url": "signin.html?view=reset" }, + { "id": "S-SIGN-03", "label": "S-SIGN-03 happy", "url": "signin.html?view=sent" } + ], + + "states": [ + { "label": "S-SIGN-01 loading", "url": "signin.html?view=signin&state=loading" }, + { "label": "S-SIGN-01 invalid-credentials", "url": "signin.html?view=signin&state=invalid" }, + { "label": "S-SIGN-01 locked-rate-limited", "url": "signin.html?view=signin&state=locked" }, + { "label": "S-SIGN-01 offline", "url": "signin.html?view=signin&state=offline" }, + { "label": "S-SIGN-02 loading", "url": "signin.html?view=reset&state=loading" }, + { "label": "S-SIGN-02 invalid-email", "url": "signin.html?view=reset&state=bademail" }, + { "label": "S-SIGN-03 success-resent", "url": "signin.html?view=sent&state=resent" }, + { "label": "S-SIGN-03 resend-throttled", "url": "signin.html?view=sent&state=throttled" } + ] +} diff --git a/design-toolkit/examples/signin/reference/design-system.md b/design-toolkit/examples/signin/reference/design-system.md new file mode 100644 index 0000000..5de6119 --- /dev/null +++ b/design-toolkit/examples/signin/reference/design-system.md @@ -0,0 +1,126 @@ +# Toolkit Reference DS + +**Source id:** `toolkit-ref-ds-0.1` +**Platform:** mobile web · **Base viewport:** 393 × 852 +**Owner:** this reference run. Not a real product design system. + +> **Why this file exists.** STATE 06 requires a design system named **by source id**, because a plan built on the wrong design system validates perfectly against it — one such mix-up survived four revision cycles and reached `HALT_BLOCKED` before the tell was spotted (a desktop-first viewport assumption inside a mobile product). +> +> A reference run with no design system would skip the rule it most needs to demonstrate. So this is a real, minimal system, and its own assumptions are stated so they can be checked against the product's: **mobile, 393 × 852, single-script, light theme only.** + +--- + +## Tokens + +### Colour + +| Token | Value | Use | +|---|---|---| +| `--ink` | `#141821` | Primary text | +| `--ink-2` | `#5A6274` | Secondary text, helper copy | +| `--ink-3` | `#8A93A6` | Placeholder, disabled label | +| `--bg` | `#FFFFFF` | Screen background | +| `--surface` | `#F4F6FA` | Inset surface, field background | +| `--line` | `#DDE2EC` | Hairline border | +| `--brand` | `#2B3FD6` | Primary action, focus ring, links | +| `--brand-ink` | `#FFFFFF` | Text on `--brand` | +| `--brand-weak` | `#EEF1FE` | Brand-tinted surface | +| `--danger` | `#B3261E` | Error text and error border | +| `--danger-weak` | `#FDECEA` | Error banner background | +| `--ok` | `#1B6E3C` | Success text | +| `--ok-weak` | `#E7F4EC` | Success banner background | + +**Audited pairs** — decided here, on the token pair, not at audit time. + +| Foreground | Background | Ratio | Needs | Verdict | +|---|---|---|---|---| +| `--ink` `#141821` | `--bg` `#FFFFFF` | **17.8:1** | 4.5 | pass | +| `--ink-2` `#5A6274` | `--bg` `#FFFFFF` | **6.1:1** | 4.5 | pass | +| `--ink-3` `#8A93A6` | `--bg` `#FFFFFF` | **3.1:1** | 4.5 | **fail — placeholder only, never load-bearing text** | +| `--brand-ink` `#FFFFFF` | `--brand` `#2B3FD6` | **7.5:1** | 4.5 | pass | +| `--brand` `#2B3FD6` | `--bg` `#FFFFFF` | **7.5:1** | 4.5 | pass | +| `--danger` `#B3261E` | `--bg` `#FFFFFF` | **6.5:1** | 4.5 | pass | +| `--danger` `#B3261E` | `--danger-weak` `#FDECEA` | **5.7:1** | 4.5 | pass | +| `--ok` `#1B6E3C` | `--ok-weak` `#E7F4EC` | **5.5:1** | 4.5 | pass | + +Ratios computed from the sRGB relative-luminance formula, not estimated. They are written down here so a pairing that fails is a **plan** change rather than a prototype patch discovered at audit time. + +`--ink-3` fails 4.5:1 by design and is **restricted to placeholder text**, which is not the accessible name of any field. A plan that puts real copy on `--ink-3` is a plan change, not a prototype patch. + +### Spacing + +4pt base. `--sp-1` 4 · `--sp-2` 8 · `--sp-3` 12 · `--sp-4` 16 · `--sp-5` 24 · `--sp-6` 32 · `--sp-7` 48 + +### Typography + +Base stack is set on the container, never per component — the token layer is the **base**, not an opt-in. + +```css +--ui-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; +``` + +| Token | Size / line | Weight | Use | +|---|---|---|---| +| `--t-display` | 28 / 34 | 700 | Screen title | +| `--t-body` | 16 / 24 | 400 | Body, field text | +| `--t-label` | 14 / 20 | 600 | Field label | +| `--t-small` | 13 / 18 | 400 | Helper, error copy | + +16px is the minimum field font size: below it, mobile Safari zooms on focus. + +### Radius and elevation + +`--r-field` 12 · `--r-btn` 12 · `--r-card` 16 · `--focus-ring` `0 0 0 3px rgba(43,63,214,.35)` + +### Motion + +| Token | Value | Reduced-motion equivalent | +|---|---|---| +| `--m-fast` | 120ms ease-out | none — apply the end state immediately | +| `--m-base` | 200ms ease-out | none | +| `--m-shake` | 300ms shake keyframe | none — the error banner alone carries the signal | + +Every motion token has a static equivalent. Motion is never the sole carrier of meaning. + +--- + +## Primitives + +| Primitive | Variants | Notes | +|---|---|---| +| `ds-field` | `default` · `error` · `disabled` | Label + input + helper slot. Min height **48px**. Error variant swaps border to `--danger` and reveals the helper slot with `role="alert"`. | +| `ds-button` | `primary` · `ghost` · `link` | Min height **48px**, min width 48px. `primary` fills `--brand`. `loading` state swaps the label for a spinner and sets `aria-busy`. | +| `ds-banner` | `error` · `success` · `info` | Full-width inset surface, icon + copy. `role="alert"` on `error`. | +| `ds-link` | `inline` · `block` | `--brand`, underlined. The `inline` variant expands its hit area to 48px via `::after{inset:-14px}` — the **box** stays smaller than the hit area, which is a known audit false-positive class. The `block` variant is `inline-flex` with `min-height:48px` and needs no expansion. | +| `ds-screen` | — | The 393 × 852 container. Sets `--ui-font` on itself. Safe-area padding via `env(safe-area-inset-*)`. | +| `ds-toolbar` | `back` · `none` | Top bar, 56px, optional back affordance. | + +### Interactive target floor + +**48px**, which exceeds this product's stated acceptance floor of 44px. Stated here so STATE 06 can check its layout numbers against `audit.tapTargetFloorPx` — the last state where the number is free to change. + +--- + +## What this system does not have + +Recorded so STATE 06 raises an **Extension Note** rather than inventing a primitive: + +- No password-visibility toggle primitive. +- No countdown / resend-timer primitive. +- No inline field-level validation timing rule. +- No offline banner variant (`ds-banner` has `error`, not `offline`). + +--- + +## Assumptions this system makes + +Check these against the product before adopting it — this list is the tell that catches a wrong-document adoption: + +| Assumption | Value | +|---|---| +| Platform | mobile web | +| Viewport | 393 × 852 | +| Theme | light only | +| Scripts | Latin only | +| Direction | LTR only | +| Density | single (no compact variant) | diff --git a/design-toolkit/examples/signin/reference/edge-annotations.json b/design-toolkit/examples/signin/reference/edge-annotations.json new file mode 100644 index 0000000..7284921 --- /dev/null +++ b/design-toolkit/examples/signin/reference/edge-annotations.json @@ -0,0 +1,83 @@ +{ + "_note": "STATE 12 / E6. Four fields per edge, two per frame. The edge set is navgraph's — this file may not add or drop one. `nav` and `guard` are AUTHORED WITH EVIDENCE because they live in the control flow; `anim` and `api` are DERIVED and re-swept every run. UNKNOWN is a legal value and a guessed value is not: an `api` field filled with a plausible endpoint is worse than an empty one, because the developer will build it.", + "_prototype": "proto-signin-02 · artifacts/prototype/signin.html", + "_api_column": "Every value reads `none (simulated)`. That is the most useful thing this layer says to a receiving team, and it is only worth reading because tools/annotate.mjs re-greps for fetch / XMLHttpRequest / WebSocket / sendBeacon / EventSource on every run and fails (E11) if the column and the sweep disagree.", + + "edges": [ + { + "from": "S-SIGN-01", + "to": "S-SIGN-02", + "label": "forgot password", + "nav": { + "value": "push", + "source": "signin.html:348", + "note": "Push, not replace — back must return the user to credential entry with what they typed intact (ux-signin-01 navigation model). The handler copies f-email into f-reset-email before the view change (AC4.2)." + }, + "anim": { "value": "fade 200ms ease-out", "source": "signin.html:74" }, + "api": { "value": "none (simulated)", "source": "re-run network sweep 2026-08-07 — 0 call sites in signin.html" }, + "guard": { + "value": "none — the reset route is live from every state of S-SIGN-01, including locked{rate-limited}", + "source": "signin.html:348", + "note": "Deliberate: being locked out is the strongest reason to want the reset branch." + } + }, + { + "from": "S-SIGN-02", + "to": "S-SIGN-01", + "label": "back", + "nav": { + "value": "back", + "source": "signin.html:354", + "note": "Toolbar back. Correct on this screen because it was reached by push." + }, + "anim": { "value": "fade 200ms ease-out", "source": "signin.html:74" }, + "api": { "value": "none (simulated)", "source": "re-run network sweep 2026-08-07 — 0 call sites in signin.html" }, + "guard": { "value": "none — unconditional", "source": "signin.html:354" } + }, + { + "from": "S-SIGN-02", + "to": "S-SIGN-03", + "label": "request accepted", + "nav": { + "value": "replace", + "source": "signin.html:359", + "note": "REPLACE, not push (D-f3). Back into a request already submitted invites a duplicate, which is why S-SIGN-03 carries its own explicit route out and no toolbar back — the toolbar it had in proto-signin-01 was superseded by rev-signin-01 / CR3." + }, + "anim": { "value": "fade 200ms ease-out", "source": "signin.html:74" }, + "api": { "value": "none (simulated)", "source": "re-run network sweep 2026-08-07 — 0 call sites in signin.html" }, + "guard": { + "value": "D4 wellFormed(identifier) AND D5 reachable", + "source": "flows-signin.md D4 · flows-signin.md D5 · signin.html:359", + "note": "There is NO account-exists term in this guard, by design (D-f2). A well-formed identifier always lands here whether or not it belongs to an account — adding the term would build an enumeration oracle." + } + }, + { + "from": "S-SIGN-03", + "to": "S-SIGN-01", + "label": "back to sign in", + "nav": { + "value": "back", + "source": "signin.html:358", + "note": "An explicit in-screen route, not browser back — this screen was reached by replace. It is the ONLY way out of S-SIGN-03 after CR3." + }, + "anim": { "value": "fade 200ms ease-out", "source": "signin.html:74" }, + "api": { "value": "none (simulated)", "source": "re-run network sweep 2026-08-07 — 0 call sites in signin.html" }, + "guard": { "value": "none — unconditional", "source": "signin.html:358" } + } + ], + + "frames": { + "S-SIGN-01": { + "auth": { "value": "guest-ok", "source": "req-signin-01 non-goals — the entire unauthenticated area is reachable without a session" }, + "perm": { "value": "none", "source": "ux-signin-01 edge-case matrix — permission-denied marked n/a with a reason: no OS permission is required anywhere in this area" } + }, + "S-SIGN-02": { + "auth": { "value": "guest-ok", "source": "req-signin-01 non-goals" }, + "perm": { "value": "none", "source": "ux-signin-01 edge-case matrix" } + }, + "S-SIGN-03": { + "auth": { "value": "guest-ok", "source": "req-signin-01 non-goals" }, + "perm": { "value": "none", "source": "ux-signin-01 edge-case matrix" } + } + } +} diff --git a/design-toolkit/examples/signin/reference/nav-lanes.json b/design-toolkit/examples/signin/reference/nav-lanes.json new file mode 100644 index 0000000..336d7e8 --- /dev/null +++ b/design-toolkit/examples/signin/reference/nav-lanes.json @@ -0,0 +1,11 @@ +{ + "_note": "Swimlane assignment for STATE 12 (E1). NODE lanes only — edge-level system/api attribution lives in the E6 annotation columns, not here. A screen with no lane is reported by tools/navgraph.mjs as N8 and never guessed into a lane: a wrong lane reads as a ruling about who owns a screen.", + "_degenerate_case": "Single-actor product. Every screen is `customer`; admin, system and api are declared and empty. That is the honest shape, not a gap — a lane file with three empty lanes says 'checked, nothing here', and a missing lane file says nothing at all.", + "order": ["customer", "admin", "system", "api"], + "lanes": { + "customer": ["S-SIGN-01", "S-SIGN-02", "S-SIGN-03"], + "admin": [], + "system": [], + "api": [] + } +} diff --git a/design-toolkit/examples/signin/reference/screen-registry.csv b/design-toolkit/examples/signin/reference/screen-registry.csv new file mode 100644 index 0000000..f651822 --- /dev/null +++ b/design-toolkit/examples/signin/reference/screen-registry.csv @@ -0,0 +1,4 @@ +screen_id,flow,screen_name,purpose,data_content,key_components,states,entry_from,navigates_to,status,notes +S-SIGN-01,01 Sign In,Sign in,Credential entry and in-place recovery from a rejected attempt,"identifier + secret the user types; nothing is fetched","ds-screen, ds-field x2, ds-button primary, ds-link block, ds-banner error","happy, loading, error{invalid-credentials}, locked{rate-limited}, offline",app launch | S-SIGN-02 | S-SIGN-03,S-SIGN-02 (forgot password),designed,"Entry point of the unauthenticated area. Success leaves this flow into the authenticated area — a boundary, not a route in this registry. proto-signin-01." +S-SIGN-02,01 Sign In,Reset password,Request a reset link for an identifier,"identifier carried forward from S-SIGN-01 when present","ds-screen, ds-toolbar back, ds-field, ds-button primary, ds-banner error","happy, loading, error{invalid-email}",S-SIGN-01,S-SIGN-01 (back) | S-SIGN-03 (request accepted),designed,"No account-exists branch by design (D-f2) — a well-formed identifier always reaches S-SIGN-03. proto-signin-01." +S-SIGN-03,01 Sign In,Check your email,Acknowledge the request and offer a throttled repeat,"the identifier the link was sent to","ds-screen, ds-toolbar back, ds-button ghost, ds-link block, ds-banner success","happy, success{resent}, error{resend-throttled}",S-SIGN-02,S-SIGN-01 (back to sign in),designed,"Reached by REPLACE, not push (D-f3) — hence its own explicit route back. proto-signin-01." diff --git a/design-toolkit/examples/signin/reference/state-machines.json b/design-toolkit/examples/signin/reference/state-machines.json new file mode 100644 index 0000000..817ebff --- /dev/null +++ b/design-toolkit/examples/signin/reference/state-machines.json @@ -0,0 +1,63 @@ +{ + "_note": "STATE 12 / E5. The node set is DERIVED from reference/screen-registry.csv — this file may not add or drop a state, and tools/stategraph.mjs fails the run if it does. The edge set is AUTHORED WITH EVIDENCE: every transition cites a file:line into the frozen bytes, and the tool resolves the citation. An unevidenced arrow looks like a spec and is a guess.", + "_prototype": "proto-signin-02 · artifacts/prototype/signin.html", + + "screens": { + "S-SIGN-01": { + "initial": "happy", + "note": "Entry point of the unauthenticated area. Success leaves this flow into ⟂HOME-01, which is a boundary rather than a state of this screen.", + "states": { + "happy": { "hook": "signin.html?view=signin", "note": "Default entry. Submit is inert until both fields carry content (D1 is a guard on the affordance, not a branch)." }, + "loading": { "hook": "signin.html?view=signin&state=loading", "note": "aria-busy, label swapped, second submit impossible." }, + "error{invalid-credentials}": { "hook": "signin.html?view=signin&state=invalid", "note": "Identifier preserved, focus on the secret, announced via a role=alert container that pre-exists in the DOM (o-s5)." }, + "locked{rate-limited}": { "hook": "signin.html?view=signin&state=locked", "terminal": true, "note": "TERMINAL AT SCREEN LEVEL, not a dead end. No in-screen transition changes it — the window elapses off-screen, and the way out is the reset route, which leaves for S-SIGN-02. That cross-screen edge is navgraph's to draw, not this machine's. The banner renders the ASSUMED 15-minute window (o-s1, debt #1). Flagged rather than left to report as S7 every run: a suppressed advisory teaches a reader to skim." }, + "offline": { "hook": "signin.html?view=signin&state=offline", "note": "Distinguished from a rejected credential by copy only — ds-banner has no offline variant (Extension Note 1)." } + }, + "transitions": [ + { "from": "happy", "to": "loading", "trigger": "submit with both fields non-empty (D1, D2)", "kind": "user", "evidence": "signin.html:364" }, + { "from": "error{invalid-credentials}", "to": "loading", "trigger": "correct the secret and resubmit", "kind": "user", "evidence": "signin.html:364" }, + { "from": "offline", "to": "loading", "trigger": "retry", "kind": "user", "evidence": "signin.html:364" }, + { "from": "loading", "to": "error{invalid-credentials}", "trigger": "D3 no, attempts < N", "kind": "system", "evidence": "signin.html:299" }, + { "from": "loading", "to": "locked{rate-limited}", "trigger": "D3 no, attempts >= N", "kind": "system", "evidence": "signin.html:299" }, + { "from": "loading", "to": "offline", "trigger": "D2 no — request did not reach the service", "kind": "system", "evidence": "signin.html:299" }, + { "from": "happy", "to": "error{invalid-credentials}", "trigger": "entry on a URL hook — QA and review path", "kind": "entry", "evidence": "signin.html:367" }, + { "from": "happy", "to": "locked{rate-limited}", "trigger": "entry on a URL hook — QA and review path", "kind": "entry", "evidence": "signin.html:367" }, + { "from": "happy", "to": "offline", "trigger": "entry on a URL hook — QA and review path", "kind": "entry", "evidence": "signin.html:367" } + ] + }, + + "S-SIGN-02": { + "initial": "happy", + "note": "Reached by PUSH from S-SIGN-01, so its toolbar back is correct. Carries the identifier already typed (AC4.2).", + "states": { + "happy": { "hook": "signin.html?view=reset", "note": "Identifier pre-filled from S-SIGN-01 when one was typed." }, + "loading": { "hook": "signin.html?view=reset&state=loading", "note": "aria-busy on the send control." }, + "error{invalid-email}": { "hook": "signin.html?view=reset&state=bademail", "note": "The ONLY error this branch may show. There is deliberately no account-exists branch (D-f2) — adding one would build an enumeration oracle." } + }, + "transitions": [ + { "from": "happy", "to": "loading", "trigger": "submit with a well-formed identifier (D4 yes)", "kind": "user", "evidence": "signin.html:359" }, + { "from": "happy", "to": "error{invalid-email}", "trigger": "submit with a malformed identifier (D4 no)", "kind": "user", "evidence": "signin.html:303" }, + { "from": "error{invalid-email}", "to": "loading", "trigger": "correct the identifier and resubmit", "kind": "user", "evidence": "signin.html:359" }, + { "from": "loading", "to": "error{invalid-email}", "trigger": "D5 no — request did not reach the service", "kind": "system", "evidence": "signin.html:304" } + ] + }, + + "S-SIGN-03": { + "initial": "happy", + "note": "Reached by REPLACE (D-f3), which is why it carries an explicit route back instead of relying on browser back. The toolbar back that proto-signin-01 had here was superseded by rev-signin-01 / CR3.", + "states": { + "happy": { "hook": "signin.html?view=sent", "note": "Names the address the link was sent to (AC5.1)." }, + "success{resent}": { "hook": "signin.html?view=sent&state=resent", "note": "role=status rather than role=alert — a confirmation should not interrupt." }, + "error{resend-throttled}": { "hook": "signin.html?view=sent&state=throttled", "note": "The resend control is DISABLED here, not merely captioned. rev-signin-01 / CR2 — copy is not the mechanism." } + }, + "transitions": [ + { "from": "happy", "to": "success{resent}", "trigger": "resend outside the throttle window (D6 no)", "kind": "user", "evidence": "signin.html:365" }, + { "from": "success{resent}", "to": "success{resent}", "trigger": "resend again outside the window", "kind": "user", "evidence": "signin.html:365" }, + { "from": "happy", "to": "error{resend-throttled}", "trigger": "resend inside the throttle window (D6 yes)", "kind": "user", "evidence": "signin.html:317" }, + { "from": "error{resend-throttled}", "to": "happy", "trigger": "the window elapses", "kind": "system", "evidence": "signin.html:317" } + ] + } + }, + + "id_conflicts": [] +} diff --git a/design-toolkit/examples/signin/state/machine_state.yaml b/design-toolkit/examples/signin/state/machine_state.yaml new file mode 100644 index 0000000..dde280d --- /dev/null +++ b/design-toolkit/examples/signin/state/machine_state.yaml @@ -0,0 +1,112 @@ +# signin — global machine state +# +# This file is NOT an artifact. It is the machine's own record, and §8 completion +# rule 1 is defined over it. Written AT DECISION TIME, in the same edit as the +# thing it records. +# +# Side effect worth knowing: artifacts/prototype/serve.py gates live reload on the +# top-level `current_state` being USER_REVIEW (skills/09 G1). + +machine_state: + project: signin + current_state: DONE + scope: signin — email/password sign in with a forgotten-password reset path + gate: granted # pending | granted | denied + handoff_required: true # ruled by the user at the Primary gate + blocked_reason: null + + last_transition: + from: FINAL_OUTPUT + to: DONE + trigger: "freeze complete — all 6 completion rules hold, 0 waivers; user approved 'Approve' + 'Extend previous approval' + 'Approve Developer Handoff'" + ts: "2026-08-07" + + # Per-state visit counter, for retry ceilings (C_RETRY_OK) + entry_count: + REQUIREMENT_ANALYSIS: 1 + RESEARCH: 1 + PRODUCT_REVIEW: 1 + UX_PLANNING: 1 + FLOW_GENERATION: 1 + UI_PLANNING: 2 # +1 from rev-signin-01 CR3 — root cause was here, not in PROTOTYPE + PROTOTYPE: 2 # proto-signin-01, proto-signin-02 + SELF_AUDIT: 2 # audit-signin-01 (fail), audit-signin-02 (pass) + REVISION: 1 + USER_REVIEW: 1 + FLOW_VISUALIZATION: 1 + FINAL_OUTPUT: 1 + + # Per-loop iteration counter (C_LOOP_OK). Ceilings live in toolkit.config.json. + loop_count: + L_CLARIFY: 0 # never entered — no blocking open question was raised + L_RESEARCH: 0 + L_UX_EDGE: 0 + L_REVISION: 1 # of 3 — one full cycle: SELF_AUDIT fail -> REVISION -> UI_PLANNING+PROTOTYPE -> SELF_AUDIT pass + L_AUDIT_FIX: 0 # of 3 — this was a full rebuild, not an in-place audit fix + + # An approval is scoped to the artifact versions it saw. If those change, the + # gate reverts to `pending` — the stale-approval rule (§5). + approvals: + ClarificationGate: pending # never fired — STATE 01 exited with 0 blocking questions, + # three non-blocking items carried as o-s1..o-s3 + DirectionApprovalGate: granted # user, 2026-08-07, scoped to pr-signin-01; ruled o-s4 = hold 44px + PrimaryUserApprovalGate: granted # user, 2026-08-07, reviewed proto-signin-02, + # re-scoped to proto-signin-03 on a bug-fix-only scope confirm + ConflictMiniGate: pending + DeveloperHandoffGate: granted # user, 2026-08-07, on the report + 4 clean exit codes + + artifact_versions: + requirements-signin.md: req-signin-01 + research-signin.md: res-signin-01 + product-review-signin.md: pr-signin-01 + ux-plan-signin.md: ux-signin-01 + flows-signin.md: flow-signin-01 + ui-plan-signin.md: ui-signin-02 # supersedes ui-signin-01 (rev CR3) + prototype: proto-signin-03 # supersedes proto-signin-02 (ratified bug-fix delta) + traceability-signin.md: trace-signin-02 + audit-report-signin.md: audit-signin-03 # supersedes -02; -01 (fail) preserved as a separate file + review-record-signin.md: review-signin-01 + flow-visualization-signin.md: navmap-signin-01 + revision-log-signin.md: rev-signin-01 + + # Open decisions carried forward rather than defaulted (skills/04, skills/05). + opens: + o-s1: "lockout threshold + window — assumed 5 / 15 min · ruled by auth service owner" + o-s2: "CLOSED at STATE 06 — out of scope this cycle; recorded as Extension Note 3" + o-s3: "copy ownership — every string is placeholder · ships as a known limitation" + o-s4: "CLOSED at the Direction Gate 2026-08-07 — hold 44px" + o-s5: "CLOSED — ruled at STATE 06, verified by audit-signin-02 AC2.2 + AC2.3" + + # One row per feature. `deliverable` names the folder the freeze landed in — + # `designed` and `delivered` are different claims (skills/11 P2). + flows: + - id: signin + state: DONE + gate: granted + prototype: proto-signin-03 + audit: audit-signin-03 + deliverable: artifacts/deliverable-signin/ # `designed` and `delivered` are different claims + passes_to_approval: 1 + + # sha256 per frozen file. A freeze is a hash, not a copy (skills/11 P2). + freeze: + "deliverable-signin/prototype/signin.html": "ac31e27100c8c729a1173ee6252ada8f8663ecd46e6a4e15c2c130aa163eb56f" + "deliverable-signin/prototype/play.html": "3277901ea9f3365ca6a068e6a60588683254b4e940f04c46f0c852f462828462" + "deliverable-signin/prototype/serve.py": "11c6df40390bbd05ec88d0051d6a78ccc7e2b5a34f3756f3da418ed69d0c8d15" + "deliverable-signin/prototype/run-local.sh": "02173bbd3c1a9fa1c7401fe4f5a316e02c2e970070389f05d3d42e047d50eabb" + + # Tracked debt. Every waiver rides on a numbered item here (skills/09 G6). + debt: + 1: "locked{rate-limited} renders the assumed 15-min window as fact (o-s1). Closes when the auth service owner states the real window." + + # ---- §8 Completion Rules ---- + # Each gets a boolean AND a one-line reason. `true` with no reason is the + # silence skills/11 P6 forbids. + completion_check: + C1_state_is_done: true # written in this same edit as the freeze, not reconstructed later + C2_approval_scoped_to_final_frozen_versions: true # review-signin-01 scoped_to proto-signin-03 = the frozen sha ac31e271... + C3_all_criteria_met: true # trace-signin-02 + audit-signin-03: 26 met / 0 waived / 0 superseded / 0 unmet + C4_audit_pass_on_final_version: true # audit-signin-03 ran on proto-signin-03, the bytes in `freeze` + C5_deliverables_complete: true # deliverable-signin/ holds the frozen prototype + handoff-signin.md + C6_no_open_revision_items: true # rev-signin-01: 4 resolved, 1 deferred with a reason + debt id, 0 open + C7_handoff_gate_and_navmap_clean: true # navmap-signin-01 granted; 4 validators exit 0 at --fail-on major, 0 waivers diff --git a/design-toolkit/examples/signin/toolkit.config.json b/design-toolkit/examples/signin/toolkit.config.json new file mode 100644 index 0000000..4077f86 --- /dev/null +++ b/design-toolkit/examples/signin/toolkit.config.json @@ -0,0 +1,85 @@ +{ + "$schema": "../../tools/config.schema.json", + + "product": { + "name": "Sign In — toolkit reference run", + "slug": "signin", + "platform": "mobile", + "viewport": { "width": 393, "height": 852 }, + "locales": ["en"], + "scripts": [], + "note": "Single-script, single-locale on purpose. `scripts` empty means the per-glyph font check is OFF — correct here, and the honest degenerate case worth seeing in an example." + }, + + "paths": { + "artifacts": "artifacts", + "reference": "reference", + "prototype": "artifacts/prototype", + "shots": "artifacts/shots", + "state": "state/machine_state.yaml", + "registry": "reference/screen-registry.csv", + "lanes": "reference/nav-lanes.json", + "stateMachines": "reference/state-machines.json", + "vocabulary": "reference/state-vocabulary.md", + "edgeAnnotations": "reference/edge-annotations.json" + }, + + "screens": { + "idPattern": "^S-[A-Z0-9]+-[0-9]+[A-Z]?$", + "flowSectionFormat": "FLOW-XXX • Journey Name" + }, + + "review": { + "port": 8765, + "player": "play.html", + "liveReloadWhenState": "USER_REVIEW" + }, + + "prototype": { + "viewSelector": ".view", + "activeClass": "active", + "screenSelector": ".screen", + "sidSelector": "#sid", + "minVisibleNodes": 3 + }, + + "audit": { + "chrome": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", + "debugPort": 9333, + "servePort": 8791, + "tapTargetFloorPx": 44, + "colorAllowlist": [ + "#2B3FD6", "#EEF1FE", "#FFFFFF", + "#141821", "#5A6274", "#8A93A6", "#F4F6FA", "#DDE2EC", + "#B3261E", "#FDECEA", "#1B6E3C", "#E7F4EC" + ], + "colorBanned": ["#FF0000", "#0000FF", "#000000", "#CCCCCC"], + "paletteExemptSelectors": [".demo", ".phone"], + "benignConsole": ["favicon.ico"], + "note": "Written by STATE 06 (ui-signin-01) in the same edit as the plan, and enforced by STATE 08. An allowlist that lives only in the plan document is an allowlist nothing enforces. tapTargetFloorPx stays 44 per the o-s4 ruling at the Direction Approval Gate — stricter than WCAG 2.2 AA's 24px, deliberately." + }, + + "flowPages": { + "SIGN": "signin.html", + "_note": "Screen-id prefix SIGN would default to sign.html; the page is signin.html, so the mapping is declared. A prefix with no page is reported as N9, never silently skipped." + }, + + "designSystem": { + "name": "Toolkit Reference DS", + "sourceId": "toolkit-ref-ds-0.1 · reference/design-system.md", + "note": "Named BY SOURCE ID per skills/06 failure mode #1. A plan built on the wrong design system validates perfectly against it." + }, + + "figma": { + "fileKey": "", + "pages": {} + }, + + "loops": { + "L_CLARIFY": 3, + "L_RESEARCH": 2, + "L_UX_EDGE": 2, + "L_REVISION": 3, + "L_AUDIT_FIX": 3 + } +} diff --git a/design-toolkit/reference/.gitkeep b/design-toolkit/reference/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/design-toolkit/reference/README.md b/design-toolkit/reference/README.md new file mode 100644 index 0000000..e2188c9 --- /dev/null +++ b/design-toolkit/reference/README.md @@ -0,0 +1,114 @@ +# `reference/` — product-owned inputs + +[← Repository root](../README.md) · [Artifact Flow](../ARTIFACT_FLOW.md) · [Validation Engine](../VALIDATION_ENGINE.md) + +--- + +## Purpose + +Product-owned inputs. **Not** produced by the pipeline — the pipeline reads them. + +Everything in [`artifacts/`](../artifacts/) is written by a state. Everything here is written by you, or by a state acting on your product's behalf, and it persists across runs. + +| File | Owner | Seed from | Read by | +|---|---|---|---| +| `screen-registry.csv` | the product; rows added as flows are designed | [`templates/screen-registry.csv`](../templates/screen-registry.csv) | `navgraph.mjs`, `stategraph.mjs`, STATE 12 | +| `nav-lanes.json` | STATE 12 (E1) | [`templates/nav-lanes.json`](../templates/nav-lanes.json) | `navgraph.mjs` | +| `state-vocabulary.md` | STATE 12 (E5) | [`templates/state-vocabulary.md`](../templates/state-vocabulary.md) | `navgraph.mjs`, `stategraph.mjs` | +| `state-machines.json` | STATE 12 (E5) | [`templates/state-machines.json`](../templates/state-machines.json) | `stategraph.mjs`, `stateprobe.mjs`, `audit.mjs` fallback | +| `edge-annotations.json` | STATE 12 (E6) | [`templates/edge-annotations.json`](../templates/edge-annotations.json) | `annotate.mjs` | +| `audit-plan.json` | STATE 08 (optional) | [`templates/audit-plan.json`](../templates/audit-plan.json) | `audit.mjs` | +| design-system export, brand assets, research sources | the product | — | STATE 06 | + +Paths are declared in [`toolkit.config.json`](../toolkit.config.json) → `paths`; move a file and update that, never a tool. + +## Inputs + +Yours. The registry grows as flows are designed; the lane file, vocabulary, state machines and annotations are authored by STATE 12 as the navigation layer is built; the audit plan is optional and written when you need passes the state machines cannot express. + +## Outputs + +Nothing directly. These files are the **source** the derivations read. `navgraph.json`, `stategraph.json` and `annotations.json` are all downstream of what is in this folder. + +--- + +## The registry is the spine + +`tools/navgraph.mjs` derives the **entire** navigation model from the registry's cells. That has two consequences worth internalising: + +1. **If the diagram and the derivation disagree, the diagram is wrong.** A connector drawn by hand is an assertion nobody can re-check. +2. **A registry cell carrying prose where an id belongs is a finding** (`N10-unparsed`), not a stylistic quibble — it silently drops an edge. + +Two separators, and they are not interchangeable: **`states` is comma-separated** (`happy, error{invalid-input}, loading`) and **`entry_from` / `navigates_to` are pipe-separated** (`S-FLOW-02 | S-OTHER-01 (condition)`). Getting them backwards makes `navgraph` read one cell as a single label — reported as `N11-state-syntax`, not silently swallowed. + +`entry_from` is the column that rots. It gets written when a screen is designed and never updated when a *later* flow starts routing to it. The forward edge (`navigates_to`) is authoritative and the map draws correctly regardless — but `entry_from` is what a developer reads to answer "who can send me here", so it is worth repairing when `N3b-backedge` reports it. + +--- + +## Examples + +**Seeding a new product:** + +```bash +cp templates/screen-registry.csv reference/screen-registry.csv +cp templates/nav-lanes.json reference/nav-lanes.json +cp templates/state-vocabulary.md reference/state-vocabulary.md +``` + +**A registry row:** + +```csv +screen_id,flow,screen_name,purpose,data_content,key_components,states,entry_from,navigates_to,status,notes +S-SIGN-01,01 Sign in,Sign in,Credential entry,"email + password fields","input, button","happy, error{invalid-credentials}, loading",app launch,S-SIGN-02 | S-HOME-01 (success),designed,"" +``` + +**A lane assignment** — a single-actor product is the honest degenerate case, with the other lanes declared and empty: + +```json +{ + "order": ["customer", "admin", "system", "api"], + "lanes": { + "customer": ["S-SIGN-01", "S-SIGN-02", "S-HOME-01"], + "admin": [], + "system": [], + "api": [] + } +} +``` + +**A state label, normalized:** + +``` +error{invalid-credentials} ✓ canon term + qualifier +empty{new-user} ✓ +"empty for a new user" ✗ N11-state-vocab, N11-state-syntax +``` + +**Adding a screen to the registry, then re-deriving:** + +```bash +node tools/navgraph.mjs --fail-on major +# a re-derivation whose edge set differs from the committed one IS the sync signal +``` + +--- + +## Best practices + +- **Add registry rows as flows are designed, not up front.** The *columns* are fixed because the derivation depends on them; the rows follow the work. +- **Fix the registry, not the map.** If a route belongs in the diagram and not in the registry, the registry is what is wrong. +- **Never guess a swimlane.** An unassigned screen is reported as `N8` and left unassigned, because a wrong lane reads as a ruling about who owns a screen. +- **Normalize the state vocabulary before generating anything.** On the extraction run the registry carried **59 distinct free-text labels across 48 screens**, including three spellings of "empty for a new user". Generating first freezes N private vocabularies into a deliverable. Normalized, 58 qualified labels resolved to 12 canon terms with 0 findings — and the originals were preserved in the mapping table, so the rewrite lost nothing. +- **Keep the qualifier; never drop it.** `error{wrong-otp}` and `error{unchecked-terms}` are different screens' different recoveries. +- **Adding a canon term costs a justification**, written into `state-vocabulary.md`. A term only one screen would ever use is a qualifier, not a canon term. Note that the canonical set is carried in both the vocabulary file **and** `tools/navgraph.mjs` / `tools/stategraph.mjs` — adding a term means editing all of them. +- **A boundary status is a dated claim.** Re-derive every port at each sync and record the date it was checked. A status with no date is not a status. +- **`UNKNOWN` is a legal annotation value and a guessed one is not.** An `api` field filled with a plausible endpoint is worse than an empty one, because the developer will build it. +- **Cite, do not restate.** `state-machines.json` transitions and `edge-annotations.json` `nav` / `guard` fields carry `file:line` into the frozen bytes, and the tools resolve them. A citation that no longer lands is a finding — which is what stops these files from quietly aging. +- **Commit this folder.** It is the input every derivation is checked against. + +## Related + +- [`ARTIFACT_FLOW.md § 6`](../ARTIFACT_FLOW.md#6--reference-inputs--read-but-never-produced) — the reference layer in the pipeline +- [`VALIDATION_ENGINE.md`](../VALIDATION_ENGINE.md) — the finding codes each of these files can produce +- [`WORKFLOW_GUIDE.md § STATE 12`](../WORKFLOW_GUIDE.md#state-12--flow_visualization) — who authors what, and when +- [`templates/`](../templates/) — the seeds diff --git a/design-toolkit/skills/01-requirement-analysis/README.md b/design-toolkit/skills/01-requirement-analysis/README.md new file mode 100644 index 0000000..338950c --- /dev/null +++ b/design-toolkit/skills/01-requirement-analysis/README.md @@ -0,0 +1,27 @@ +# Skill: `requirement-analysis` — STATE 01 + +**Turn an ambiguous request into structured, testable requirements.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 01 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-01--requirement_analysis) + +[← skills/](../README.md) · entry state · next → [02 research](../02-research/README.md) + +| Field | Value | +|---|---| +| Machine state | `REQUIREMENT_ANALYSIS` | +| Reads | `raw_request`, attachments | +| Writes | `requirements-<feature>.md` | +| Depends on | — (entry state) | +| Approval gate | **Clarification Gate** — only when blocking ambiguity exists | +| Retry ceiling | 3 | +| Next states | `RESEARCH` / self-loop / `HALT_BLOCKED` | + +## The rule that matters most here + +Falsifiable acceptance criteria are the product of this state. Everything downstream is checked against them, so a vague one is a check nobody can fail. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/01-requirement-analysis/SKILL.md b/design-toolkit/skills/01-requirement-analysis/SKILL.md new file mode 100644 index 0000000..03b2fc5 --- /dev/null +++ b/design-toolkit/skills/01-requirement-analysis/SKILL.md @@ -0,0 +1,118 @@ +--- +name: requirement-analysis +description: >- + State 01 of the AI Product Design Agent workflow. Converts an ambiguous + product request into a structured, testable requirements artifact and a + normalized problem statement. Use when a raw product brief needs to be parsed + into goals, actors, constraints, non-goals, falsifiable acceptance criteria, + surfaced assumptions, and an open-questions list before any research or design + work begins. Reads raw_request; writes requirements.md. Entry state — no + upstream dependency. Raises the Clarification Gate only when blocking + ambiguity exists. +--- + +# Requirement Analysis (STATE 01) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 01. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests requirement analysis. It +> communicates only through the artifact store (`artifacts/`), never directly +> with other skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `raw_request` (user prompt/brief), optional attachments, `machine_state` | +| Writes | `artifacts/requirements.md` | +| Depends on | — (entry state) | +| Approval gate | **Clarification Gate** — only when blocking ambiguity exists | +| Retry ceiling | 3, then → `HALT_BLOCKED` | +| Next states | `RESEARCH` (pass) / `REQUIREMENT_ANALYSIS` (self-loop, clarification) / `HALT_BLOCKED` (blocking ambiguity + user unavailable) | + +## Purpose + +Turn an ambiguous product request into a structured, testable requirements +artifact and a normalized problem statement. Nothing downstream should have to +re-interpret the raw brief. + +## Processing steps + +1. Parse `raw_request` into **goals, actors, constraints, non-goals**. +2. Detect ambiguity and missing information; produce an `open_questions` list. +3. Classify **scope** (small / medium / large) and effort tier. +4. Draft **falsifiable acceptance criteria** per requirement. +5. Surface **assumptions** explicitly, each flagged `assumed` vs `confirmed`. +6. If blocking ambiguity exceeds threshold → prepare a clarification set and + raise the **Clarification Gate**. + +## Output — `artifacts/requirements.md` + +Write with structured frontmatter + body so downstream skills and the machine +can validate mechanically. + +```markdown +--- +artifact: requirements +version: <hash-or-incrementing-id> +produced_by: requirement-analysis +scope_class: small | medium | large +effort_tier: <tier> +--- + +## Problem statement +<normalized one-paragraph statement> + +## Goals +- G1: <goal> +- G2: <goal> + +## Actors +- <actor>: <role/need> + +## Constraints +- <constraint> + +## Non-goals +- <explicitly out of scope> + +## Requirements & acceptance criteria +- R1: <requirement> + - AC1.1: <falsifiable, observable pass/fail condition> + - AC1.2: ... + +## Assumptions +- A1 [assumed|confirmed]: <assumption> + +## Open questions +- Q1 [blocking|non-blocking]: <question> +``` + +## Validation rules (machine-checkable on output) + +- **V1:** ≥1 goal AND ≥1 acceptance criterion present. +- **V2:** Every requirement has ≥1 falsifiable acceptance criterion. +- **V3:** No requirement (or assumption) tagged both `assumed` and `confirmed`. +- **V4:** `open_questions` is empty, or every item carries a severity + (`blocking` / `non-blocking`). + +## Exit conditions + +All validation rules pass **AND** no `blocking` open question remains +unresolved — resolved either by a user answer or an explicit assumption +acceptance recorded in the Assumptions section. + +## Failure recovery + +- On validation failure: re-run steps 1–5 with the failed rule injected as a + corrective constraint. Increment `entry_count[REQUIREMENT_ANALYSIS]`. +- If `blocking` open questions exist: raise the **Clarification Gate** (workflow + §5). Self-loop (`L_CLARIFY`, ceiling 3) while awaiting answers. +- Retry ceiling 3 reached, or user unavailable with blocking ambiguity → + `HALT_BLOCKED` (state persisted, resumable). + +## Approval gate + +**Clarification Gate** — fires only when blocking ambiguity exists. No approval +required otherwise. Gate state persists in `machine_state.approvals`; an +approval is scoped to the artifact version it saw. diff --git a/design-toolkit/skills/02-research/README.md b/design-toolkit/skills/02-research/README.md new file mode 100644 index 0000000..b090ef1 --- /dev/null +++ b/design-toolkit/skills/02-research/README.md @@ -0,0 +1,27 @@ +# Skill: `research` — STATE 02 + +**Gather cited evidence — domain, competitors, patterns, constraints.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 02 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-02--research) + +[← skills/](../README.md) · prev ← [01 requirement-analysis](../01-requirement-analysis/README.md) · next → [03 product-review](../03-product-review/README.md) + +| Field | Value | +|---|---| +| Machine state | `RESEARCH` | +| Reads | `requirements-<feature>.md` | +| Writes | `research-<feature>.md` | +| Depends on | requirement-analysis | +| Approval gate | None | +| Retry ceiling | 2 (`L_RESEARCH`) | +| Next states | `PRODUCT_REVIEW` / self-loop / `REQUIREMENT_ANALYSIS` | + +## The rule that matters most here + +Contradictions are **listed, not silently resolved**, and a goal is either mapped to a theme or explicitly marked `no-research-needed`. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/02-research/SKILL.md b/design-toolkit/skills/02-research/SKILL.md new file mode 100644 index 0000000..26e3058 --- /dev/null +++ b/design-toolkit/skills/02-research/SKILL.md @@ -0,0 +1,119 @@ +--- +name: research +description: >- + State 02 of the AI Product Design Agent workflow. Gathers external and + internal evidence — domain knowledge, competitors, interaction patterns, and + technical constraints — that informs downstream product and UX decisions. Use + when a validated requirements artifact exists and design work needs an + evidence base: research questions are derived from requirements, searches fan + out by modality, findings are synthesized into cited themes with + contradictions preserved, and coverage of every goal is tracked to a + threshold. Reads requirements.md; writes research.md. Depends on + requirement-analysis. No approval gate. +--- + +# Research (STATE 02) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 02. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests research. It communicates +> only through the artifact store (`artifacts/`), never directly with other +> skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/requirements.md`, `machine_state`, optional research scope config | +| Writes | `artifacts/research.md` | +| Depends on | `requirement-analysis` (must precede) | +| Approval gate | None | +| Retry ceiling | 2 (`L_RESEARCH`), then continue with logged `gap` | +| Next states | `PRODUCT_REVIEW` (pass) / `RESEARCH` (self-loop, coverage gap) / `REQUIREMENT_ANALYSIS` (back-transition, requirement malformed/contradictory) | + +## Purpose + +Gather external and internal evidence (domain, competitors, patterns, +constraints) that informs product and UX decisions. Downstream states should be +able to reason from cited findings rather than re-searching the problem space. + +## Processing steps + +1. Derive **research questions** from `requirements.md`. +2. Fan out searches by **modality**: domain, competitor, interaction pattern, + technical constraint. +3. Collect **evidence with citations**; dedupe. +4. Synthesize findings into **themes**; note **contradictions**. +5. Rank findings by **relevance to acceptance criteria**. +6. Emit **unresolved-evidence gaps**. + +## Output — `artifacts/research.md` + +Write with structured frontmatter + body so downstream skills and the machine +can validate mechanically. + +```markdown +--- +artifact: research +version: <hash-or-incrementing-id> +produced_by: research +reads_version: <requirements.md version consumed> +coverage: <mapped-or-waived % of goals> +--- + +## Themes +- T1: <theme statement> + - sources: [S1, S3] + - relevance: <which acceptance criteria / goals this informs> + - maps_to: [G1, G2] # goal IDs from requirements.md +- T2: ... + +## Evidence & citations +- S1 [resolvable]: <claim/finding> — <source: url or reference> +- S2 [resolvable]: <claim/finding> — <source> + +## Competitor notes +- <competitor>: <observation> (sources: [S2]) + +## Pattern catalog +- P1: <interaction/design pattern> — <where observed> (sources: [S4]) + +## Constraints +- <technical / domain / regulatory constraint> (sources: [S5]) + +## Contradictions +- C1: <finding A> vs <finding B> — <both sources cited, left unresolved> + +## Goal coverage +- G1 → [T1] | G2 → [T2] | G3 → no-research-needed + +## Gaps +- GAP1: <unresolved evidence gap or downgraded theme> [reason] +``` + +## Validation rules (machine-checkable on output) + +- **V1:** Every theme cites ≥1 source. +- **V2:** Each requirement goal maps to ≥1 research theme **OR** is explicitly + marked `no-research-needed`. +- **V3:** Contradictions are listed, not silently resolved. +- **V4:** No fabricated citations — every source is resolvable. + +## Exit conditions + +All validation rules pass **AND** goal coverage ≥ configured threshold +(default 100% mapped-or-waived). + +## Failure recovery + +- On coverage/citation failure: re-run the fan-out targeting **only the failed + goals**. Increment `entry_count[RESEARCH]` / `loop_count[L_RESEARCH]`. +- Retry ceiling 2 (`L_RESEARCH`). On repeated fabrication-risk failure → + downgrade unreachable themes to `gap` and continue with a logged warning. +- If research reveals a requirement is malformed or contradictory → + back-transition to `REQUIREMENT_ANALYSIS` (root cause is upstream). + +## Approval gate + +None. Research produces evidence for later gates but raises no approval of its +own. diff --git a/design-toolkit/skills/03-product-review/README.md b/design-toolkit/skills/03-product-review/README.md new file mode 100644 index 0000000..a4e34ed --- /dev/null +++ b/design-toolkit/skills/03-product-review/README.md @@ -0,0 +1,27 @@ +# Skill: `product-review` — STATE 03 + +**Decide whether requirements + evidence justify spending design effort.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 03 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-03--product_review) + +[← skills/](../README.md) · prev ← [02 research](../02-research/README.md) · next → [04 ux-planning](../04-ux-planning/README.md) + +| Field | Value | +|---|---| +| Machine state | `PRODUCT_REVIEW` | +| Reads | `requirements-<feature>.md`, `research-<feature>.md` | +| Writes | `product-review-<feature>.md` | +| Depends on | research | +| Approval gate | **Direction Approval Gate** — mandatory, always fires | +| Retry ceiling | 2 | +| Next states | `UX_PLANNING` / `REQUIREMENT_ANALYSIS` / `HALT_STOPPED` | + +## The rule that matters most here + +This state **judges** scope and never **adds** it. The last cheap place to stop or re-cut — everything downstream compounds on the direction ratified here. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/03-product-review/SKILL.md b/design-toolkit/skills/03-product-review/SKILL.md new file mode 100644 index 0000000..0136a3a --- /dev/null +++ b/design-toolkit/skills/03-product-review/SKILL.md @@ -0,0 +1,151 @@ +--- +name: product-review +description: >- + State 03 of the AI Product Design Agent workflow. Decides whether the + requirements and the research evidence justify spending design effort, and + emits a proceed / re-scope / stop recommendation before any UX work begins. + Use when a validated requirements artifact and a research artifact both exist + and the direction has not yet been approved: requirements are reconciled + against evidence, scored on value/effort/risk, contradictions between desired + scope and evidence are named rather than absorbed, high-risk items get a + mitigation or an explicit accept-risk note, and the decision is recorded with + its triggers. Reads requirements.md and research.md; writes product-review.md. + Depends on research. Raises the mandatory Direction Approval Gate. +--- + +# Product Review (STATE 03) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 03. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests a product review. It +> communicates only through the artifact store (`artifacts/`), never directly +> with other skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/requirements.md`, `artifacts/research.md`, `machine_state` | +| Writes | `artifacts/product-review.md` | +| Depends on | `research` (must precede) | +| Approval gate | **Direction Approval Gate** — mandatory, always fires | +| Retry ceiling | 2 (`entry_count[PRODUCT_REVIEW]`), re-run scoring with the failed rule as constraint | +| Next states | `UX_PLANNING` (`proceed` + gate approved) / `REQUIREMENT_ANALYSIS` (`re-scope`, or gate denied) / `HALT_STOPPED` (`stop` + gate confirms) | + +## Purpose + +Decide whether the requirements plus the research evidence justify the product +direction, **before** design resources are spent. This is the last cheap place +to stop or re-cut scope: everything downstream (UX plan, flows, UI plan, +prototype) compounds on the direction ratified here. + +This state **judges** scope. It never **adds** scope — every prioritized item +must already exist in `requirements.md`. + +## Processing steps + +1. **Reconcile** each requirement against the research evidence: which themes + support it, which contradict it, which leave it unevidenced. +2. **Score** every requirement on **value / effort / risk** and derive a + priority band (`must` / `should` / `could` / `cut`). +3. **Identify contradictions** between desired scope and evidence — where the + brief wants something the research says is wrong, unproven, or unowned. +4. **Build the risk register**: every high-risk item gets a mitigation **or** an + explicit accept-risk note naming who accepts it. +5. Produce a **`proceed` / `re-scope` / `stop` recommendation** with written + rationale tied to the scores and contradictions above. +6. **Record the decision and its triggers** — what evidence would reverse it. +7. Raise the **Direction Approval Gate**. + +## Output — `artifacts/product-review.md` + +Write with structured frontmatter + body so downstream skills and the machine +can validate mechanically. + +```markdown +--- +artifact: product-review +version: <hash-or-incrementing-id> +produced_by: product-review +reads_version: + requirements: <requirements.md version consumed> + research: <research.md version consumed> +recommendation: proceed | re-scope | stop +gate: direction-approval +gate_state: pending | approved | denied +--- + +## Recommendation + +**<proceed | re-scope | stop>** — <rationale, tied to the scores and +contradictions below. Name the two or three findings that actually drove it.> + +## Prioritized requirements + +| ID | Requirement | Value | Effort | Risk | Band | Evidence | +|---|---|---|---|---|---|---| +| R1 | <text, verbatim from requirements.md> | H/M/L | H/M/L | H/M/L | must | [T1, T4] | +| R2 | ... | | | | should | [T2] | +| R7 | ... | | | | cut | unevidenced | + +## Risk register + +| ID | Risk | Sev | Mitigation **or** accept-risk | Owner | +|---|---|---|---|---| +| K1 | <risk statement> | high | <mitigation> | <role> | +| K2 | <risk statement> | high | **ACCEPTED** — <why, and by whom> | <role> | + +## Scope contradictions + +- X1: <brief wants A> vs <research theme T3 shows B> — <resolution, or + explicitly left open with an open-decision id> + +## Decision record + +- D1: <decision> — trigger: <what evidence or event would reverse it> +- Deferred: <open decisions handed to later states, with ids> + +## Cut list + +- <requirement id> — <why it is out for this cycle, and what would bring it back> +``` + +## Validation rules (machine-checkable on output) + +- **V1:** `recommendation` ∈ {`proceed`, `re-scope`, `stop`} **and** the + rationale block is non-empty. +- **V2:** Every risk with `Sev = high` carries a mitigation **or** an explicit + accept-risk note with a named owner. +- **V3:** The prioritized set is a **subset** of the validated requirements — + every ID resolves in `requirements.md`. No new scope is introduced here. +- **V4:** Every prioritized requirement cites its evidence (research theme IDs) + **or** is explicitly marked `unevidenced`. + +## Exit conditions + +All validation rules pass **AND** the **Direction Approval Gate** is resolved. + +## Failure recovery + +- On validation failure: re-run **scoring only**, with the failed rule as an + explicit constraint. Increment `entry_count[PRODUCT_REVIEW]`. +- Retry ceiling **2**. Escalate rather than widen scope to satisfy a rule — a + V3 failure means an upstream requirement is missing, not that this state + should invent one. +- If the user **denies** direction at the gate → back-transition to + `REQUIREMENT_ANALYSIS` carrying the denial notes as input. +- If the recommendation is `re-scope` → `REQUIREMENT_ANALYSIS` with the cut + list and contradictions attached. +- If the recommendation is `stop` and the gate confirms → `HALT_STOPPED`. + +## Approval gate + +**Direction Approval Gate** — mandatory, fires every time. It exists to prevent +spending design effort on an unapproved direction. Gate state persists in +`machine_state.approvals`; an approval is scoped to the artifact version it +saw. A later revision of `product-review.md` re-opens the gate. + +Present at the gate: the recommendation and its rationale, the priority bands, +the high-risk items with their mitigation-or-acceptance, and the cut list. +Unresolved contradictions are presented **as unresolved** — a gate answered on +a tidied-up picture is not an approval of the real direction. diff --git a/design-toolkit/skills/04-ux-planning/README.md b/design-toolkit/skills/04-ux-planning/README.md new file mode 100644 index 0000000..7ccd748 --- /dev/null +++ b/design-toolkit/skills/04-ux-planning/README.md @@ -0,0 +1,27 @@ +# Skill: `ux-planning` — STATE 04 + +**Define the UX strategy — tasks, IA, state enumeration, accessibility posture.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 04 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-04--ux_planning) + +[← skills/](../README.md) · prev ← [03 product-review](../03-product-review/README.md) · next → [05 flow-generation](../05-flow-generation/README.md) + +| Field | Value | +|---|---| +| Machine state | `UX_PLANNING` | +| Reads | `requirements`, `research`, `product-review` | +| Writes | `ux-plan-<feature>.md` | +| Depends on | product-review | +| Approval gate | None — non-blocking checkpoint review | +| Retry ceiling | 2 (`L_UX_EDGE`) | +| Next states | `FLOW_GENERATION` / `PRODUCT_REVIEW` / self-loop | + +## The rule that matters most here + +Deliberately **screen-free**. The accessibility floor stated here becomes an acceptance criterion the audit checks — set the number you will actually build. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/04-ux-planning/SKILL.md b/design-toolkit/skills/04-ux-planning/SKILL.md new file mode 100644 index 0000000..3c2ba4d --- /dev/null +++ b/design-toolkit/skills/04-ux-planning/SKILL.md @@ -0,0 +1,166 @@ +--- +name: ux-planning +description: >- + State 04 of the AI Product Design Agent workflow. Defines the UX strategy — + primary tasks, information architecture, per-task state enumeration including + every non-happy path, and the accessibility posture — without producing a + single screen. Use when a direction has been approved and design needs a + strategy before flows exist: tasks are derived from the prioritized + requirements, the IA and navigation model are set, each task enumerates its + happy path plus at least three non-happy-path states (error, empty, loading, + interrupted, offline, permission-denied), accessibility and reduced-motion are + planned at the strategy level, and UX risks and open decisions are named + rather than designed around. Reads requirements.md, research.md and + product-review.md; writes ux-plan.md. Depends on product-review. No approval + gate — non-blocking checkpoint review only. +--- + +# UX Planning (STATE 04) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 04. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests UX planning. It communicates +> only through the artifact store (`artifacts/`), never directly with other +> skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/requirements.md`, `artifacts/research.md`, `artifacts/product-review.md`, `machine_state` | +| Writes | `artifacts/ux-plan.md` | +| Depends on | `product-review` (must precede; its Direction Approval Gate must be approved) | +| Approval gate | None — checkpoint review only, non-blocking | +| Retry ceiling | 2 (`L_UX_EDGE`, `UX_PLANNING` self-loop), then flag `partial-coverage` | +| Next states | `FLOW_GENERATION` (normal) / `PRODUCT_REVIEW` (back-transition, priorities unviable) / `UX_PLANNING` (self-loop, edge-case coverage gap) | + +## Purpose + +Define the UX **strategy** — information architecture, key tasks, states, and +non-happy-path coverage — so that flow generation has something to sequence and +UI planning has something to lay out. + +This state is deliberately **screen-free**. The moment it names a screen or a +visual treatment it has skipped the decision it exists to make, and V4 fails. + +## Processing steps + +1. Derive **primary user tasks** from the **prioritized** requirements — the + `must` / `should` bands of `product-review.md`, not the raw requirement set. +2. Model the **information architecture** and the **navigation model**. +3. Enumerate **states per task**: the happy path **and** the non-happy paths — + error, empty, loading, interrupted, offline, permission-denied. +4. Define **accessibility and reduced-motion requirements** at the strategy + level (targets, contrast posture, focus order, motion opt-out, script/locale + handling). +5. Note **UX risks and open decisions**, each with an id that later states and + the review gate can cite. + +## Output — `artifacts/ux-plan.md` + +Write with structured frontmatter + body so downstream skills and the machine +can validate mechanically. + +```markdown +--- +artifact: ux-plan +version: <ux-<feature>-NN> +produced_by: ux-planning +reads_versions: + requirements.md: <version> + research.md: <version> + product-review.md: <version> +feature: <feature/flow id> +coverage: <tasks with full state enumeration> / <total tasks> +--- + +# UX Plan — <feature> + +## Primary tasks (→ requirements) + +| Task | User intent | Reqs | +|---|---|---| +| TASK-A | <what the user is trying to do> | R1, R4 | +| TASK-B | ... | R2 | + +## Information architecture + +<the content/entity model and where each task lives inside it> + +## Navigation model + +<how a user moves between the IA's regions: entry points, persistent +navigation, push vs replace, back semantics, deep-link posture> + +## State enumeration + +### TASK-A +| State | Kind | Trigger | Strategy | +|---|---|---|---| +| happy | happy | <trigger> | <what the user experiences> | +| loading | non-happy | <trigger> | ... | +| empty | non-happy | <trigger> | ... | +| error | non-happy | <trigger> | ... | +| interrupted | non-happy | <trigger> | ... | +| permission-denied | non-happy | <trigger> | ... | + +### TASK-B +... + +## Edge-case matrix + +| | loading | empty | error | interrupted | offline | permission-denied | +|---|---|---|---|---|---|---| +| TASK-A | ✅ | ✅ | ✅ | ✅ | n/a — <why> | ✅ | +| TASK-B | ✅ | ✅ | ✅ | ✅ | ✅ | n/a — <why> | + +## Accessibility strategy + +- Interactive target floor: <value> — **state the number here**; it becomes an + acceptance criterion the audit checks against, so an unrealistic one becomes + debt later. +- Contrast posture, focus order, keyboard reachability, screen-reader + expectations, motion opt-out, script/locale and per-glyph font handling. + +## UX risks + +- U1: <risk> — <what it threatens> — <planned response> + +## Open decisions + +- o-<id>: <question> — <what it blocks> — <who can rule> +``` + +## Validation rules (machine-checkable on output) + +- **V1:** Every primary task enumerates a happy path **AND ≥3 + non-happy-path** states. +- **V2:** The accessibility strategy is present and non-empty. +- **V3:** Every task traces to ≥1 **prioritized** requirement. +- **V4:** **No screen-level or visual design content** — strategy only. No + screen ids, no layout, no component names, no colour. + +## Exit conditions + +All validation rules pass. + +## Failure recovery + +- On **V1** failure: re-run the enumeration targeting **only** the tasks with + missing coverage. Increment `loop_count[L_UX_EDGE]`. +- On **V4** failure: strip the screen-level content back out. Design detail that + arrives here is not free — it pre-commits `UI_PLANNING` to a layout nobody + chose. +- Retry ceiling **2**, then flag `partial-coverage` and continue **only if** + `product-review.md`'s risk tolerance allows it. Otherwise escalate. +- If UX planning reveals the prioritized set is **unviable** → back-transition + to `PRODUCT_REVIEW`. Do not quietly re-prioritize here; that scope decision + belongs to a gated state. + +## Approval gate + +None. Checkpoint review only, non-blocking — the direction was already approved +at STATE 03, and the prototype has its own gate at STATE 09. **Open decisions +recorded here are carried forward**, not resolved by assumption: an unruled +question that reaches the prototype as an invented answer is how a placeholder +ends up frozen into an approved deliverable. diff --git a/design-toolkit/skills/05-flow-generation/README.md b/design-toolkit/skills/05-flow-generation/README.md new file mode 100644 index 0000000..9b9ba42 --- /dev/null +++ b/design-toolkit/skills/05-flow-generation/README.md @@ -0,0 +1,27 @@ +# Skill: `flow-generation` — STATE 05 + +**Turn tasks and states into directed flow graphs with exhaustive branches.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 05 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-05--flow_generation) + +[← skills/](../README.md) · prev ← [04 ux-planning](../04-ux-planning/README.md) · next → [06 ui-planning](../06-ui-planning/README.md) + +| Field | Value | +|---|---| +| Machine state | `FLOW_GENERATION` | +| Reads | `ux-plan-<feature>.md`, `requirements` | +| Writes | `flows-<feature>.md` | +| Depends on | ux-planning | +| Approval gate | None | +| Retry ceiling | 3 | +| Next states | `UI_PLANNING` / `UX_PLANNING` / self-loop | + +## The rule that matters most here + +"Exhaustive" means the branch set covers the guard's whole domain — including null, not-yet-loaded and permission-denied. An unanswered guard is an open decision, never an invented default. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/05-flow-generation/SKILL.md b/design-toolkit/skills/05-flow-generation/SKILL.md new file mode 100644 index 0000000..0b5d98b --- /dev/null +++ b/design-toolkit/skills/05-flow-generation/SKILL.md @@ -0,0 +1,179 @@ +--- +name: flow-generation +description: >- + State 05 of the AI Product Design Agent workflow. Turns the UX plan's tasks and + states into directed flow graphs — sequenced transitions, decision points with + exhaustive branch conditions, a recovery route for every non-happy-path state, + and a reachability report proving no unreachable state and no unjustified dead + end. Use when a UX strategy exists and design needs concrete flows before any + screen or component is named: each task becomes a graph, every edge carries a + trigger and a guard, every branch is mutually exhaustive, and every flow + boundary into another feature is marked rather than assumed. Reads ux-plan.md + and requirements.md; writes flows.md. Depends on ux-planning. No approval gate. +--- + +# Flow Generation (STATE 05) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 05. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests flow generation. It +> communicates only through the artifact store (`artifacts/`), never directly +> with other skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/ux-plan.md`, `artifacts/requirements.md`, `machine_state` | +| Writes | `artifacts/flows.md` (per feature: `flows-<feature>.md`) | +| Depends on | `ux-planning` (must precede) | +| Approval gate | None | +| Retry ceiling | 3 (unnamed `FLOW_GENERATION` self-loop — flow-heavy state, §6), then back-transition to `UX_PLANNING` | +| Next states | `UI_PLANNING` (normal) / `UX_PLANNING` (back-transition, flow modeling exposes a missing state) / `FLOW_GENERATION` (self-loop, dead-end or reachability fix) | + +## Purpose + +Produce concrete user flows and state transitions that connect the UX plan's +tasks and states, so `UI_PLANNING` has a graph to lay out instead of a list to +interpret. + +This state is **screen-free in the same sense STATE 04 is**: a node is a *state* +the user is in, not a visual design. Naming a node after a screen id is fine — +and is the toolkit's convention — but the node's contents are still triggers, +guards and routes, never layout, component names or colour. + +## Processing steps + +1. For each task in `ux-plan.md`, **sequence its states into a directed flow**. +2. Insert **decision points** and their **branch conditions**. +3. Map **every non-happy-path state to a recovery route** — the state must lead + somewhere the user can act, not just be reachable. +4. **Detect and eliminate dead ends and unreachable states.** Produce the + reachability report as evidence, not as a claim. +5. **Annotate every transition with its trigger and guard.** + +## Output — `artifacts/flows.md` + +Structured frontmatter + body, so downstream skills and the machine can validate +mechanically. Per-feature file naming (`flows-checkout.md`, `flows-onboarding.md`) is the +toolkit convention; the contract is identical. + +```markdown +--- +artifact: flows +version: flow-<feature>-NN +supersedes: <prior version, if any> +produced_by: flow-generation +reads_versions: { ux-plan-<feature>.md: <version>, requirements-<feature>.md: <version> } +feature: <feature/flow id> +folds_in: [<revision rounds / decisions this version absorbs>] +--- + +# Flows — <feature> + +Node ids = prototype views. `⟂` = flow boundary (another flow's screen, mocked). + +## Canon entry paths + +<the named paths a user actually takes in, one line each — these are what a +reviewer checks the prototype against> + +## F1 — <segment name> (<tasks covered>) + +``` +⟂OTHER-01 ──trigger──▶ [D1 <question>?] + D1 no ──▶ NODE-A ──trigger──▶ NODE-B + D1 yes ──▶ NODE-B directly +NODE-B ──[D2 <question>?] + D2 <case> ──▶ NODE-C + D2 <case> ──▶ inline recovery (self-loop; recovery: <what the user can do>) +``` + +**D1:** <the guard, as a checkable expression> · **D2:** <guard> — all exhaustive. + +<prose only where the diagram cannot carry it: contested tap targets, suppression +rules, decisions that changed a branch> + +## F2 — ... + +## Decision log + +| ID | Decision | Ruled by | Date | +|---|---|---|---| +| D-<x>N | <what was decided, and what it replaced> | user / audit / this state | <date> | + +## Reachability report + +| Node | Reachable from | Terminal? | Justification if terminal | +|---|---|---|---| +| NODE-A | entry, NODE-C | no | — | +| NODE-Z | NODE-C | **yes** | <why terminating here is correct> | + +Unreachable nodes: **0**. Dead ends without justification: **0**. + +## Recovery coverage + +| Non-happy state (ux-plan) | Recovery transition | +|---|---| +| TASK-A / error | → retry edge on NODE-B | +| TASK-A / empty | → NODE-A with a route-out CTA | + +## Flow boundaries + +| Boundary node | Owning flow | Status | +|---|---|---| +| ⟂OTHER-01 | <flow> | mocked / real handoff | + +## Open decisions + +- o-<id>: <question> — <which branch it leaves unruled> — <who can rule> +``` + +## Validation rules (machine-checkable on output) + +- **V1:** No unreachable state in any flow. +- **V2:** No dead-end state without an explicit terminal justification. +- **V3:** Every non-happy-path state from `ux-plan.md` has a recovery + transition. +- **V4:** Every decision point has **mutually exhaustive** branch conditions. + +V4 is the one that fails quietly. "Exhaustive" means the branch set covers the +guard's whole domain — including null, not-yet-loaded and permission-denied — +not merely that two plausible cases are listed. + +## Exit conditions + +All validation rules pass **and** the reachability report is clean. + +## Failure recovery + +- On **V1 / V2** failure: patch the **offending flow segment** and re-validate + **only that segment**. Do not regenerate the whole graph — a full rewrite + loses the ratified decisions the diagram encodes. +- On **V3** failure: the missing recovery is usually a missing *state*, not a + missing edge → check whether the fault is upstream before adding an edge that + invents one. +- On **V4** failure: add the missing branch. If the missing branch has no ruled + answer, it is an **open decision**, not a branch to invent. +- Retry ceiling **3**. A **persistent unreachable state** means `ux-plan.md` + omitted a state → back-transition to `UX_PLANNING`. Do not add the state here; + that enumeration belongs to STATE 04. + +## Approval gate + +None. Flows are ratified indirectly, at the STATE 09 gate, through the prototype +that implements them. + +## Recorded failure modes + +Defect classes that shipped past a clean flow graph on the run this toolkit was +extracted from. Each is a rule, not an anecdote — codes in +[`docs/method-rules.md`](../../docs/method-rules.md). + +| Class | What happened | Rule | +|---|---|---| +| **Stale boundary** | Eleven live navigation call sites still routed to the placeholder boundary screen after every destination flow had shipped. A `⟂` node is correct *when written* and silently wrong once the owning flow exists. | The **Flow boundaries** table is re-checked whenever any other feature reaches `FINAL_OUTPUT` — a boundary's `status` is a dated claim, not a permanent property. | +| **Scoped claim read as global** | "No boundary mocks left" was written about one flow's mocks and read as holding for the set. | State the **scope of a clearance claim in the claim itself**. | +| **Cross-flow canon drift** | Two approved flows shipped contradictory values for the same user-visible fact. Each flow graph was internally consistent. | A fact promised at a `⟂` boundary is a **cross-flow contract**. Record it in the decision log of both flows, or it drifts. | +| **Branch invented, not ruled** | Unruled product numbers and unowned scope questions entered flows as concrete branches and were frozen into approved deliverables. | An unanswered guard is an **open decision carried forward** (`o-<id>`), never a default silently chosen here. | +| **Graph green, screen blank** | A flow whose every node and edge was correct rendered nothing — the view container stayed `visibility:hidden` because nothing ever activated it. | Flow correctness is **not** implementation correctness. This state's verdict is scoped to the graph; the render is [`skills/08`](../08-self-audit/SKILL.md)'s job (M1/M2). | diff --git a/design-toolkit/skills/06-ui-planning/README.md b/design-toolkit/skills/06-ui-planning/README.md new file mode 100644 index 0000000..034d2e0 --- /dev/null +++ b/design-toolkit/skills/06-ui-planning/README.md @@ -0,0 +1,27 @@ +# Skill: `ui-planning` — STATE 06 + +**Component inventory, DS mapping, layout, motion and contrast — by reference.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 06 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-06--ui_planning) + +[← skills/](../README.md) · prev ← [05 flow-generation](../05-flow-generation/README.md) · next → [07 prototype](../07-prototype/README.md) + +| Field | Value | +|---|---| +| Machine state | `UI_PLANNING` | +| Reads | `flows`, `ux-plan`, `research`, the design system | +| Writes | `ui-plan-<feature>.md` | +| Depends on | flow-generation | +| Approval gate | None — may raise an informational **Extension Note** | +| Retry ceiling | 2 | +| Next states | `PROTOTYPE` / `FLOW_GENERATION` / self-loop | + +## The rule that matters most here + +Name the design system **by source id**. A plan built on the wrong system validates perfectly against it, and no downstream rule can catch it. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/06-ui-planning/SKILL.md b/design-toolkit/skills/06-ui-planning/SKILL.md new file mode 100644 index 0000000..ce6fcc0 --- /dev/null +++ b/design-toolkit/skills/06-ui-planning/SKILL.md @@ -0,0 +1,226 @@ +--- +name: ui-planning +description: >- + State 06 of the AI Product Design Agent workflow. Turns flow graphs into a UI + specification — a component inventory mapped to the design system reuse-first, + layout and hierarchy rules per state, motion and contrast decided on the token + pair, and every value referenced to a token rather than invented. Use when + flows exist and the prototype needs a spec instead of an improvisation: each + flow state gets a component set, every component maps to a DS primitive or + carries a written justification for being new, no one-off styling is introduced + where a primitive exists, and a token that does not resolve becomes an + extension request or an open decision — never a new hex. Reads flows.md, + ux-plan.md and research.md plus the design-system reference; writes ui-plan.md. + Depends on flow-generation. No approval gate — may raise an informational + Extension Note. +--- + +# UI Planning (STATE 06) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 06. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests UI planning. It communicates +> only through the artifact store (`artifacts/`), never directly with other +> skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/flows.md`, `artifacts/ux-plan.md`, `artifacts/research.md`, `machine_state`, design-system reference | +| Writes | `artifacts/ui-plan.md` (per feature: `ui-plan-<feature>.md`) | +| Depends on | `flow-generation` (must precede) | +| Approval gate | None — may raise an informational, non-blocking **Extension Note** | +| Retry ceiling | 2 (unnamed `UI_PLANNING` self-loop, §6), then unavoidable new components route through an Extension Note | +| Next states | `PROTOTYPE` (normal) / `FLOW_GENERATION` (back-transition, UI planning reveals a flow gap) / `UI_PLANNING` (self-loop, reuse or mapping fix) | + +## Purpose + +Define UI structure, component inventory and design-system usage — **still +specification, not rendered UI** — so `PROTOTYPE` assembles a plan instead of +improvising one. + +The boundary that defines this state: it names components, tokens, geometry and +motion **by reference**, and builds nothing. Everything it writes must be +checkable against the design system before a line of the prototype exists. A +decision deferred to build time is a decision made by whoever builds fastest. + +## Processing steps + +1. **Decompose each flow state** from `flows.md` into its required UI regions + and components. +2. **Map components to existing DS primitives first**; flag the gaps that need + an extension. Reuse is the default, `new` is the exception that argues for + itself. +3. **Define layout and hierarchy rules per state** — at the real viewport, with + real numbers. +4. **Specify tokens** (spacing, colour, typography, motion) **by reference**. + Values are not invented here. +5. **Produce the component inventory** with a reuse-vs-new classification, and + a written justification against every `new`. + +## Output — `artifacts/ui-plan.md` + +Structured frontmatter + body so downstream skills and the machine can validate +mechanically. Per-feature file naming (`ui-plan-checkout.md`, `ui-plan-onboarding.md`) +is the toolkit convention; the contract is identical. + +```markdown +--- +artifact: ui-plan +version: ui-<feature>-NN +produced_by: ui-planning +reads_versions: + flows-<feature>.md: <version> + ux-plan-<feature>.md: <version> + research-<feature>.md: <version> + design-system: "<DS name + the source id it came from>" +feature: <feature/flow id> +inherits: <prior ui-plan / shell this one builds on, and what it takes verbatim> +supersedes: <prior version, if any> +--- + +# UI Plan — <feature> + +## Inherited, reused verbatim + +<the token layer, chrome primitives, i18n pattern, asset resolvers, effects and +guards taken unchanged from the shell — named explicitly, because anything not +listed here is something this plan is claiming to introduce> + +## STRICT colour allowlist (V5) + +``` +<the exact hex set, grouped: brand / gray / semantic / exempt classes> +BANNED: <hexes that must not appear, and where they came from> +``` + +Write the same set into `toolkit.config.json` → `audit.colorAllowlist` / +`colorBanned`. That is where STATE 08's harness reads it; an allowlist that lives +only in this document is an allowlist nothing enforces. + +The **BANNED** list is not optional. `SELF_AUDIT` enforces this allowlist by +machine hex-extraction, and the permanent lesson attached to that rule is that +an audit must check **non-DS absence, not just DS presence** — an allowlist +alone cannot catch a value that was never supposed to exist. + +Naming note: this "V5" is the **`SELF_AUDIT` hex-conformance rule id**. It is not +a validation rule of this state — this state's rules are +V1–V4 — and it is a different V5 from the rendering-class rule defined in +[`skills/08`](../08-self-audit/SKILL.md). + +## Component inventory → DS mapping (reuse-first) + +| Comp | Surface | DS mapping | new? | +|---|---|---|---| +| <component> | <flow state / screen> | `<primitive>` | reuse | +| <component> | <state> | `<primitive>` + <variant> | reuse+variant | +| <component> | <state> | <what it is assembled from> | **new**, justified: <why no primitive covers it, and what it is built out of> | + +<count line: N of M entries are reuse or variants; every `new` carries a +justification — this is V2's evidence> + +## Layout rules (<viewport>) + +<per state: the vertical budget in px, the grid of each repeated row, the +minimum tap target of every interactive element, scroll vs pinned, sheet +geometry, safe-area and small-viewport behaviour> + +## Motion spec + +| Element | Default | Reduced | +|---|---|---| +| <element> | <duration + curve, by token> | <static equivalent> | + +<every row forked for `.reduce` and `prefers-reduced-motion` — the ux-plan's +motion opt-out is an acceptance criterion, not a nicety> + +## Contrast + +<the audited pairs, with ratios. Decided here on the token pair, not at audit +time. A pairing that fails is a plan change.> + +## Token reference resolution (V4) + +<every value resolves to a token or a documented exemption. State the count of +new hex introduced — the target is zero.> + +## Superseded + +| Component | Replaced by | Strip in prototype | +|---|---|---| +| <old component + its selectors> | <new one> | yes | + +## Extension Note (informational, non-blocking) + +<the `new` compositions, why the DS has no primitive, what they are built from, +and whether they are recommended for promotion into the DS> + +## Open decisions + +- o-<id>: <question> — <what it leaves unresolved> — <who can rule> + +## Validation self-check + +- **V1** ✅/❌ <every flow state maps to a component set — list the states> +- **V2** ✅/❌ <reuse ratio + every `new` justified> +- **V3** ✅/❌ <no one-off styling where a primitive exists> +- **V4** ✅/❌ <token references resolve; new hex count> + +**Exit:** validation passes → `PROTOTYPE` (<proto id>). +``` + +## Validation rules (machine-checkable on output) + +- **V1:** Every flow state maps to a component set. +- **V2:** Component-to-DS mapping **prefers reuse**; every `new` component has a + justification. +- **V3:** No isolated one-off styling introduced where a DS primitive exists. +- **V4:** Token references **resolve** to the provided design system, or are + flagged as an extension. + +V4 is the one that fails quietly. "Resolves" means the token exists in the named +design system — not that a plausible-looking `var()` name was written down. A +token the DS does not have is an extension request or an open decision; it is +never a hex quietly added to the allowlist. + +## Exit conditions + +All validation rules pass. + +## Failure recovery + +- On **V2 / V3** failure: re-map the offending components **toward DS reuse**. + Fix the mapping, not the justification — a better-argued one-off is still a + one-off. +- On **V1** failure: check whether the unmapped state is a *missing state* + rather than a missing component set. If `flows.md` is short a state → + back-transition to `FLOW_GENERATION`. Do not invent the state here. +- On **V4** failure: raise an **extension request**. If the missing token + encodes an unruled product decision (a colour nobody owns, a size nobody set), + it is an **open decision** carried forward, not a value chosen here. +- Retry ceiling **2**. Unavoidable new components route through an **Extension + Note** appended to `ui-plan.md` — informational, non-blocking. The Note is the + escalation edge, not a back-transition. + +## Approval gate + +None. The Extension Note is informational: it exists so a DS owner can later see +what the product needed and the system did not have. It does not block the +transition to `PROTOTYPE`. + +## Recorded failure modes + +Defect classes that shipped past a plausible-looking UI plan on the run this +toolkit was extracted from. Each is a rule, not an anecdote. + +| Class | What happened | Rule | +|---|---|---| +| **Wrong design system** | A spec belonging to a **different project** was adopted and survived four revision cycles; the machine reached **`HALT_BLOCKED` at the revision ceiling** before the tell was spotted (a desktop-first viewport assumption inside a mobile product). A plan built on the wrong system validates **perfectly** against it, so no downstream rule can catch it. | Name the DS **by source id** in `reads_versions.design-system` and in `toolkit.config.json` → `designSystem.sourceId`, then sanity-check that the system's own assumptions (viewport, platform, brand) match this product's. A DS reference without an id is unverifiable — and every rule in this state is only as true as that one line. | +| **Token that does not exist** | A spec asked for two hues the palette does not contain. The nearest allowlisted ramps shipped and an open was raised — correctly. The failure mode is the alternative: adding two hexes to the allowlist to make the spec true. | A token that does not resolve is an **extension request or an open**, never a new hex. The counter-example in the same run: a five-rung tier ladder that resolved inside the existing allowlist with **zero additions**. | +| **Contrast decided after the fact** | A progress bar failed **3:1 against its own track**, so it shipped as the theme accent — contradicting the same spec's one-colour-per-category rule. The later flow avoided the repeat by rejecting a gradient at plan time, because neither ink nor white cleared 4.5:1 at its midpoint. | Contrast is decided **here, on the token pair**, with the ratio written down. A pairing that fails is a **plan** change, not a prototype patch. | +| **Selector namespace not claimed** | A descendant selector on a new card also matched status and lock icons elsewhere and inflated them to ~340px; an inline-span badge overflowed its card and clipped the lines below it. Both were **new compositions dropped into an inherited shell**. | A `new` entry declares the **selector namespace it claims** and scopes its descendants (`> svg`). The inventory is where a collision is cheap to see. | +| **Inventory only added** | One revision superseded an entire component outright; two rebuilds later required stripping whole selector families and their string keys by hand. | When a revision replaces a component, record the **supersession** so the prototype strips it. An inventory that only grows accumulates dead style that no audit reads. | +| **Token layer as opt-in** | The script→font token was **opt-in per component** over a foreign base, so any element that did not opt in rendered on an arbitrary OS fallback — **138 instances across 7 flows** — and the base stack turned out to carry no face for that script at all. | Script → font mapping is a **base rule of the token layer**, not a per-component choice. Anything a component can forget to do, some component will forget to do. | +| **Shared component, no owner** | The bottom navigation drifted into three variants across files; a re-cut then relabelled a slot while every file kept the old glyph, so the tab read one thing under the icon for another. | A component used by more than one flow is a **cross-flow contract**. The inventory names its owning plan, or each file re-decides it. | +| **Geometry that contradicts the strategy** | Layout rules set four interactive elements between 29 and 38px against a `ux-plan` floor of **44px**. ~140 elements on 20 screens passed the external AA standard but missed the project's own acceptance criterion, and raising them would have restyled four approved gates. | The `ux-plan`'s accessibility floor is an **acceptance criterion**, and it is `toolkit.config.json` → `audit.tapTargetFloorPx`. State target sizes as numbers here and check them against it — this is the last state where the number is free to change. | diff --git a/design-toolkit/skills/07-prototype/README.md b/design-toolkit/skills/07-prototype/README.md new file mode 100644 index 0000000..9d56e55 --- /dev/null +++ b/design-toolkit/skills/07-prototype/README.md @@ -0,0 +1,27 @@ +# Skill: `prototype` — STATE 07 + +**Assemble the specs into a coherent prototype plus its traceability map.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 07 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-07--prototype) + +[← skills/](../README.md) · prev ← [06 ui-planning](../06-ui-planning/README.md) · next → [08 self-audit](../08-self-audit/README.md) + +| Field | Value | +|---|---| +| Machine state | `PROTOTYPE` | +| Reads | `ui-plan`, `flows`, `ux-plan` | +| Writes | `prototype/`, `traceability-<feature>.md` | +| Depends on | ui-planning | +| Approval gate | None | +| Retry ceiling | 3 | +| Next states | `SELF_AUDIT` / `UI_PLANNING` / self-loop | + +## The rule that matters most here + +Every flow state ships a **deep-link hook** (B2). A state that cannot be driven cannot be audited by 08 or demonstrated at the 09 gate — and the hook table is the review packet. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/07-prototype/SKILL.md b/design-toolkit/skills/07-prototype/SKILL.md new file mode 100644 index 0000000..eb28ee2 --- /dev/null +++ b/design-toolkit/skills/07-prototype/SKILL.md @@ -0,0 +1,350 @@ +--- +name: prototype +description: >- + State 07 of the AI Product Design Agent workflow. Assembles the planned UI and + flows into a coherent, interactive prototype and the traceability map that + proves it matches the specs. Use when ui-plan.md, flows.md and ux-plan.md are + validated and the flow needs to become bytes: every flow state is instantiated + from the component inventory, every transition is wired per flows.md including + recovery routes, DS tokens are applied per ui-plan.md, cross-state consistency + is enforced, and every prototype element is traced back to a spec entry with + no un-specced additions. Every flow state ships a deep-link hook, because a + state that cannot be driven cannot be audited by state 08 or demonstrated at + the state 09 gate. Reads ui-plan.md, flows.md, ux-plan.md; writes prototype/ + and traceability.md. Depends on ui-planning. No approval gate. +--- + +# Prototype (STATE 07) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 07. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests an assembly. It communicates +> only through the artifact store (`artifacts/`), never directly with other +> skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/ui-plan*.md`, `artifacts/flows*.md`, `artifacts/ux-plan*.md`, `machine_state` | +| Writes | `artifacts/prototype/` (assembled artifact), `artifacts/traceability*.md` | +| Depends on | `ui-planning` (must precede) | +| Approval gate | None | +| Retry ceiling | 3 (unnamed self-loop, assembly fix), then back-transition to `UI_PLANNING` | +| Next states | `SELF_AUDIT` (normal) / `UI_PLANNING` (back-transition: spec insufficient to assemble) / `PROTOTYPE` (self-loop: assembly fix) | + +## Purpose + +Assemble the planned UI + flows into a coherent prototype artifact per the +specifications produced upstream. + +This is the state where specs become bytes, and therefore the state where most +defects are **born** — nearly every audit finding traces to an assembly decision +made here. State 08 exists to catch them; this state exists to not make them. The +two rule sets are complements, not duplicates: +[Build method](#build-method-hardened) below is written from the same defect +record as `skills/08`'s verification method, stated as construction rules rather +than detection rules. + +## Processing steps + +1. **Instantiate** each flow state using the component inventory from + `ui-plan.md`. +2. **Wire transitions** per `flows.md` — including the recovery routes, not just + the happy path. +3. **Apply DS tokens/primitives** per `ui-plan.md`. +4. **Ensure cross-state consistency** — naming, hierarchy, motion. +5. **Produce a traceability map**: prototype element → source spec entry. + +## Build method (hardened) + +Steps 1–5 say *what* to assemble. This section is the contract for *how*, and +each rule below was written by a defect that shipped. Do not substitute a cheaper +method. Codes are cited from plans and logs — index in +[`docs/method-rules.md`](../../docs/method-rules.md). + +### B1 — Emit in chunks, never one giant write + +A whole flow file is ~1,300–2,000 lines. Write the head, then append sections +(~≤300 lines each). Every parallel builder that tried to emit a full file in one +write **crashed mid-response** and lost the work. + +### B2 — Every flow state ships a deep-link hook + +A state reachable only by clicking through four screens is a state that state 08 +cannot drive and the state 09 gate cannot demonstrate. Give every flow state, +variant and error case a query hook (`?view=`, `?state=`, `?sheet=`, `?load=`) +and **record the hook in `traceability.md`** — that table is what makes V1 +checkable instead of assertable. The hook is also the review packet: state 09 +hands the user the same list. + +### B3 — Claim the selector namespace before you use it + +A single-file prototype has one global CSS namespace across every screen. +Prefix per section and scope descendant rules with `>`. Generic names collide +silently and repaint an unrelated panel: a list-row class repainted a hero on +another screen; a descendant selector on one card also matched status and lock +icons elsewhere and inflated them to ~340px; an inline-span badge overflowed its +card and clipped the lines below it. All three were **geometry or screenshot +finds**, invisible to structure. + +### B4 — String and config keys are a namespace too + +Duplicate keys in a locale or config object do not error — the later definition +silently wins. On the extraction run this happened three times to navigation +labels clobbered by later-added categories, and **one locale hid the defect +entirely** because both labels happened to read the same. Sweep for duplicate +keys across every file **and** every locale object before handoff +(`node tools/audit.mjs` runs this sweep; `product.locales` tells it how many +legitimate repeats to expect). + +### B5 — The token layer is the base, not an opt-in + +Set the token on the container (`.screen{font-family:var(--ui-font)}`), never +per-component. An opt-in token layer means anything that forgets to opt in falls +through to whatever the platform picks — that is how **138 instances across 7 +flows** rendered a script on a stack that had no face for it. Then check the +stack itself: CSS falls back **per glyph**, so a stack carrying no face for a +script it must render is a defect even where the token was applied correctly. +Declare every script in `toolkit.config.json` → `product.scripts` so STATE 08 can +check it. + +The same completeness rule holds for **asset registries**. A slug with no crop +entry falls back to the default entry, which frames the wrong part of the asset. +Every slug you reference needs a real entry. + +### B6 — A transition is not wired until its destination paints + +Two failure shapes, both of which pass structural assertions: + +- **Boundary mocks that outlived their boundary.** Eleven live boundary call + sites still routed to a placeholder after every destination existed. Re-check + the whole set whenever another flow ships — a "no mocks left" claim is a dated + claim about one flow, not a property of the set. +- **A state that exists but never becomes visible.** `.view` is + `visibility:hidden` until `.active`; nothing added `.active`; **84/84 DOM + assertions passed against a screen that displayed nothing**, because + `visibility:hidden` keeps layout boxes and accepts programmatic clicks. + +Verify each wired transition by driving it and asserting the destination +**paints** — computed visibility and geometry. + +### B7 — Supersession deletes + +When a revision rebuilds a component, strip the old CSS, strings and JS rather +than leaving them dead. `ui-plan.md`'s **Superseded** table names what goes; the +prototype is where it actually goes. Leftovers are un-specced elements and +violate V2 exactly as much as additions do. Record the strip in +`traceability.md`, **itemised** — the removed selector and string-key list is the +evidence, and a rebuild that cannot produce one did not do the strip. + +### B7b — Honour the harness contract + +Three harnesses read the prototype — `tools/smoke.mjs`, `tools/audit.mjs`, +`tools/stateprobe.mjs` — and they all read it the same way, through +`toolkit.config.json` → `prototype`: + +| Config key | Default | What the prototype must do | +|---|---|---| +| `viewSelector` | `.view` | one element per flow state | +| `activeClass` | `active` | added to exactly the view being shown | +| `screenSelector` | `.screen` | the viewport-sized container | +| `sidSelector` | `#sid` | prints the active view's screen id | +| `minVisibleNodes` | `3` | paint floor — keep it low; an empty state is sparse by design | + +Plus `data-view` and `data-sid` on every view. `data-sid` is what makes registry ↔ +prototype id drift **measurable rather than asserted**: the probe reads what the +page prints and compares it to the id the registry claims. + +Change the convention in the config, not in a tool. A prototype whose views are +invisible to the contract reports as *blank* — which is indistinguishable from the +defect B6 exists to catch. + +### B8 — Self-check before handing to `SELF_AUDIT` + +Do not spend the audit's budget on defects assembly can find: + +```bash +node tools/smoke.mjs "<page>:<view>,<view>" ... +``` + +- `node --check` on the extracted `<script>`. +- Hex inventory against the `ui-plan.md` allowlist — CSS **id selectors** + (`#feed`) are not colours, and review-chrome **files** are excluded + (`toolkit.config.json` → `review.harnessFiles`). The exclusion is by file, so + chrome that lives inside a product file is swept like any other surface. +- Drive every view headless and **read the screenshots**. Renders break with + zero console errors. +- Console sweep, with known-benign entries filtered **by name** + (`audit.benignConsole`) rather than ignored wholesale. +- Read every rendered number and ceremony icon against its own copy once. A + progress fill computed from a 0-based index shows empty on step 1; an + "unlocked!" ceremony drew a **closed** padlock. Both were faithful to their + code and wrong on the screen. + +## Figma assembly — plugin-API traps + +When this state's output includes pushing frames or variables into Figma, three +API behaviours cost a full rebuild once and will again: + +- **F1 — `setBoundVariableForPaint()` silently drops `paint.opacity`** (0.25 → 1, + verified). A binding sweep flattened every alpha in the file. Working recipe: + assign the bound paint → **re-read `node.fills[0]`** → spread the opacity on → + reassign. Spreading the object *returned by* the bind call does not survive + assignment. +- **F2 — a bad lookup fails silently, it does not throw.** + `getVariableByIdAsync('1:3')` returns `null` — it needs the `VariableID:` + prefix — and `setBoundVariableForPaint(p,'color',null)` returns the paint + *unbound* rather than erroring. A wrong id therefore yields unbound paints with + zero errors. Re-read and assert the binding. +- **F3 — `paint.opacity` round-trips as float32** (`0.12` → `0.11999999…`). + Compare with an epsilon. + +## Output + +### `artifacts/prototype/` + +The assembled artifact. Conventions the toolkit settled on: one self-contained +file per flow, a shared player for review packaging (`templates/prototype/` — +copy `run-local.sh`, `serve.py` and `play.html` in, and register the page in +`play.html`'s `FEATURES` array in the same edit), deep-link hooks per B2, and a +demo bar for the states that cannot be reached by data alone. + +### `artifacts/traceability.md` + +Write with structured frontmatter + body so downstream skills and the machine +can validate mechanically. + +```markdown +--- +artifact: traceability +version: trace-<feature>-NN +produced_by: prototype +reads_versions: + requirements-<feature>.md: <version> + ux-plan-<feature>.md: <version> + flows-<feature>.md: <version> + ui-plan-<feature>.md: <version> +feature: <feature/flow id> +--- + +# Traceability — <feature> (<proto-<feature>-NN>) + +Every prototype element traces to a spec entry (V2), and every flow state is +represented (V1). Files: `artifacts/prototype/<file>`. + +## Requirement → task → flow → component → prototype element + +| Req | Task | Flow | UI component | Prototype element / hook | +|---|---|---|---|---| +| R-x1 | TK1 | F1 | <component from ui-plan inventory> | `<selector>`, `<fn()>`, `?hook=` | + +## Flow state → prototype representation (V1) + +| <flow id> node | Representation | Hook | +|---|---|---| +| <state name> | <default entry \| selector \| overlay> | `?view=…` | + +_Every node in `flows.md`, including recovery and non-happy-path states._ + +## Transition → wiring (V4) + +| Flow transition | Wired as | Destination paints | +|---|---|---| +| <from> → <to> (D<n>) | `<fn()>` / `goFlow(...)` | yes — <evidence> | + +## Decision → implementation + +| Decision | Where it lives | +|---|---| +| D-x1 <text> | `<const / selector / guard>` | + +## Superseded — stripped, not left dead (B7) + +| Removed | Superseded by | Selectors / keys stripped | +|---|---|---| +| <component> | <revision> | `.a`, `.b`, `strKey1`, `fnName()` | + +## Un-specced additions + +<none — or each one named, with the spec entry it needs before V2 can pass.> + +## Verification record (B8) + +<node --check · hex inventory · views driven · screenshots read · sweeps run +(duplicate keys, boundary call sites, per-glyph font) · console sweep.> +``` + +## Validation rules (machine-checkable on output) + +- **V1:** Every flow state from `flows.md` is represented in the prototype. +- **V2:** Every prototype element traces to a spec entry — **no un-specced + additions**. +- **V3:** DS token usage matches `ui-plan.md` references. +- **V4:** All wired transitions correspond to defined flow transitions. +- **V5** *(project-hardened, per B2)*: Every flow state in the V1 table carries a + **deep-link hook**. A state that cannot be driven cannot be audited, so V1 is + otherwise unverifiable. +- **V6** *(project-hardened, per B7)*: A superseded component leaves **no dead + selectors, strings or handlers** behind. Leftovers are un-specced elements and + fail V2. + +## Exit conditions + +Validation passes; traceability complete. + +## Failure recovery + +- **V1/V2 failure** → assemble the missing states, or remove the un-specced + additions, then re-validate. **Retry ceiling: 3** on the self-loop. +- **Repeated spec insufficiency** → back-transition to `UI_PLANNING`. "The spec + does not say" is a routing signal, not a licence to invent. An invented value + assembled here becomes a frozen number nobody owns. +- A missing upstream artifact → back-transition to the state that owed it. Do + not assemble around a missing spec. + +## Approval gate + +None. The prototype is not shown to the user from this state — `SELF_AUDIT` +gates it first, and `USER_REVIEW` owns the presentation. + +## Recorded failure modes + +Each entry is a defect class that actually shipped from this state on the run +this toolkit was extracted from. They are the evidence for +[Build method](#build-method-hardened). + +### A. Assembly defects + +| Case | What happened | Build rule | +|---|---|---| +| **View never activated** | The screen never became visible; **84/84 DOM assertions passed** against a screen displaying nothing. `visibility:hidden` keeps layout boxes and accepts programmatic clicks. | B6 | +| **11 stale boundary call sites** | Boundary mocks still routed to a placeholder although every destination existed. One carried a source comment naming the destination flow as "still todo" — written before that flow shipped, never revisited. | B6 | +| **Class collisions** | A list-row class repainted a hero on another screen; a descendant selector inflated status/lock icons to ~340px; an inline badge overflowed its card and clipped the lines below. | B3 | +| **Duplicate string keys** | Navigation labels silently clobbered by later definitions in the same object, twice. **One locale hid the second one completely**; only the other showed it. | B4 | +| **Opt-in token layer** | The script→font token applied per component over a foreign base → **138 instances across 7 flows** on an arbitrary platform fallback. Then the base stack itself carried **no face for that script at all**. | B5 | +| **Incomplete asset registry** | Asset slugs with no crop entry fell back to the default frame — twice, in two different flows, with different slugs. | B5 | +| **Off-by-one and reversed semantics** | Progress fill computed as `i / N` showed empty on step 1; an unlock ceremony drew a **closed** padlock under "🔓 unlocked!". | B8 | +| **Sheet and scroll geometry** | `translateY(105%)` failed to clear a sheet shorter than its `max-height`, so a *closed* sheet bled back in; `scrollIntoView()` scrolled an `overflow:hidden` ancestor and pushed the header out of frame; a card ellipsized its most important word. All **screenshot-only** finds. | B8 | + +**The lesson, stated once:** the assertions you write test the structure you +were thinking about. The screenshot tests the screen. + +### B. Build-ops + +| Case | What happened | Build rule | +|---|---|---| +| **Parallel builder crash** | Every agent emitting a whole file in one write died with *"connection closed mid-response"*; the chunked retry succeeded. | B1 | +| **Figma alpha flattening** | A binding sweep silently dropped `paint.opacity` on every bound paint — all base frames had to be rebuilt. | F1 | +| **Silently unbound paints** | A `VariableID:`-less lookup returned `null` and the bind call accepted it without throwing, producing unbound paints and zero errors. | F2 | + +### C. Scope discipline + +- **Chrome that a ruling scoped to specific screens stays on those screens.** On + the extraction run the locale toggle was ruled onto three surfaces only, while + the locale itself inherited through the shared state record. Adding the control + elsewhere because it is convenient in a builder is an un-specced addition and + fails V2. +- **A spec that contradicts a ruled decision is not resolved here.** Assemble the + ruled behaviour, ship the alternative behind a demo toggle, and raise the open + for `USER_REVIEW`. Deciding it in the assembly hides the conflict inside bytes. diff --git a/design-toolkit/skills/08-self-audit/README.md b/design-toolkit/skills/08-self-audit/README.md new file mode 100644 index 0000000..a87c831 --- /dev/null +++ b/design-toolkit/skills/08-self-audit/README.md @@ -0,0 +1,27 @@ +# Skill: `self-audit` — STATE 08 + +**Adversarially review the prototype before any user attention is spent.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 08 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-08--self_audit) + +[← skills/](../README.md) · prev ← [07 prototype](../07-prototype/README.md) · next → [09 user-review](../09-user-review/README.md) + +| Field | Value | +|---|---| +| Machine state | `SELF_AUDIT` | +| Reads | `prototype/`, `traceability`, all upstream | +| Writes | `audit-report-<feature>.md` | +| Depends on | prototype | +| Approval gate | None — the machine gating itself | +| Retry ceiling | 3 (`L_AUDIT_FIX`) | +| Next states | `USER_REVIEW` (pass) / `REVISION` (fail) / self-loop | + +## The rule that matters most here + +Every check is **rendering-class** — computed visibility and geometry, never DOM presence. A failing probe is a hypothesis until confirmed at source. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/08-self-audit/SKILL.md b/design-toolkit/skills/08-self-audit/SKILL.md new file mode 100644 index 0000000..defea89 --- /dev/null +++ b/design-toolkit/skills/08-self-audit/SKILL.md @@ -0,0 +1,260 @@ +--- +name: self-audit +description: >- + State 08 of the AI Product Design Agent workflow. Adversarially reviews the + built prototype against every upstream spec and quality dimension before any + user attention is spent on it, and emits a pass/fail verdict with findings + classified blocker/major/minor. Use when a prototype exists and has not yet + been shown: conformance to requirements → flows → UI plan is checked, the + accessibility and reduced-motion audit is executed against the UX strategy, + non-happy-path states are proven reachable, and every acceptance criterion is + marked met or unmet with evidence. Every check is rendering-class — computed + visibility and geometry, never DOM presence — and every failing probe is + treated as a hypothesis until confirmed. Reads prototype/ plus all upstream + artifacts; writes audit-report.md. Depends on prototype. No approval gate — + this is the machine gating itself. +--- + +# Self-Audit (STATE 08) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 08. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests a self-audit. It +> communicates only through the artifact store (`artifacts/`), never directly +> with other skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/prototype/`, `artifacts/traceability*.md`, all upstream artifacts, `machine_state` | +| Writes | `artifacts/audit-report*.md` | +| Depends on | `prototype` (must precede) | +| Approval gate | None — the machine gates itself here, before spending user attention | +| Retry ceiling | 3 (`L_AUDIT_FIX`, `SELF_AUDIT` ↔ `REVISION`), then escalate into `L_REVISION` accounting | +| Next states | `USER_REVIEW` (verdict `pass`) / `REVISION` (verdict `fail`) / `SELF_AUDIT` (self-loop, bounded re-audit after in-place minor fix) | + +## Purpose + +Machine self-review of the prototype against all upstream specs and quality +dimensions **before showing the user**. A `fail` verdict is a normal outcome, +not an error. + +The audit's job is to find what the builder missed. That means it must be +adversarial toward its **own instrument** as much as toward the prototype — +see [Verification method](#verification-method-hardened), which is not optional +guidance but part of this state's contract. + +The harness is [`tools/audit.mjs`](../../tools/audit.mjs): it drives what +`reference/audit-plan.json` (or the hooks in `reference/state-machines.json`) +names, and reads its floor, palette, viewport and scripts from +`toolkit.config.json`. It produces evidence, not a verdict — the verdict is this +state's, written after the screenshots have been read. + +## Processing steps + +1. Check prototype **conformance** to requirements → flows → UI plan. +2. Run the **accessibility + reduced-motion** audit against `ux-plan.md`. +3. Verify **non-happy-path coverage** is present **and reachable**. +4. Detect **inconsistencies, orphan elements, unmet acceptance criteria**. +5. Classify findings by severity (`blocker` / `major` / `minor`). +6. Emit a **pass/fail verdict**. + +## Verification method (hardened) + +Steps 1–4 above say *what* to check. This section is the contract for *how*, and +it exists because each rule below was written by a defect a passing assertion +suite did not see. Do not substitute a cheaper method. Codes are cited from logs +and gate records — index in [`docs/method-rules.md`](../../docs/method-rules.md). + +### M1 — Every check is rendering-class + +Assert **computed visibility and geometry**, never DOM presence. +`getComputedStyle` visibility/display/opacity, `getBoundingClientRect` width, +height and position inside the viewport. A node can exist, lay out, and accept +a programmatic click while painting nothing. + +### M2 — Look at the render + +Screenshot review is a **required** audit step, not a supplement. Capture every +screen across locale × theme × reduced-motion × state (one pass per combination +in the audit plan), and review the images. A finding class that only a human eye +catches is not thereby out of scope. + +### M3 — A failing probe is a hypothesis, not a finding + +Confirm every failure at source before writing it into the report. Correct the +harness and re-run; do not waive, and do not report unconfirmed. See +[Recorded failure modes §B](#b-harness-false-positives) for the known +false-positive classes to rule out first. + +### M4 — Sweep the source, not just the surface + +Duplicate keys in string/config objects, stale placeholder routes, and per-glyph +font fallback are invisible to both assertions and screenshots in at least one +locale or theme. Run explicit sweeps: duplicate keys across all files **and** +every locale object; every navigation call site resolved to a destination that +**paints**; every element carrying a declared script verified on a stack that +actually contains that script's face. + +### M5 — The verdict is scoped to the bytes it audited + +An audit of record is invalidated by any later change to the prototype. Targeted +assertions run during a revision round are **not** an audit. Record the exact +version audited in `reads_versions`; if the frozen bytes have moved since, +re-run before any gate depends on the verdict. + +### M6 — Record, do not silently resolve + +A conflict between a project acceptance criterion and an external standard, or +between two approved artifacts, is **recorded as a finding with a +recommendation** — never silently passed and never silently changed. Silently +editing one of two disagreeing sources hides the disagreement rather than +resolving it. + +## Output — `artifacts/audit-report.md` + +Write with structured frontmatter + body so downstream skills and the machine +can validate mechanically. + +```markdown +--- +artifact: audit-report +version: <audit-<feature>-NN> +produced_by: self-audit +reads_versions: + prototype: <proto-<feature>-NN — the exact bytes audited> + requirements.md: <version> + flows.md: <version> + ui-plan.md: <version> + traceability.md: <version> +feature: <feature/flow id> +verdict: pass | fail +--- + +# <audit id> — <feature> — verdict: <PASS | FAIL> + +## Verdict + +<pass|fail> — <N> / <N> acceptance criteria met. <rationale> + +## Method + +<what was actually run: screens driven, runs, assertion count, screenshots +captured, sweeps executed. Name the check class per M1 — computed visibility +and geometry, not DOM presence.> + +## Findings + +| ID | Sev | Finding | Caught by | Status | +|---|---|---|---|---| +| AF-1 | blocker | <defect> | screenshot \| assertion \| sweep | fixed in-loop | +| AF-2 | major | <defect> | <method> | open | +| AF-3 | minor | <defect> | <method> | recorded → debt #N | + +## Conformance matrix + +| AC | Requirement | Met | Evidence | +|---|---|---|---| +| AC1 | <text> | met | <screen + probe or screenshot ref> | +| AC7 | <text> | unmet | <what is missing> | +| AC9 | <text> | waived | <who waived, why, recorded where> | + +## Harness corrections + +<per M3 — probes that failed and turned out to be the instrument's fault, with +the correction made. Recorded, because an uncorrected harness re-reports them +next run.> + +## Known limitations + +<carried to USER_REVIEW for transparent presentation> +``` + +## Validation rules (machine-checkable on output) + +- **V1:** Every acceptance criterion from `requirements.md` is marked + `met` / `unmet` / `waived` **with evidence**. +- **V2:** Zero unresolved `blocker` findings to pass. +- **V3:** The accessibility audit was **executed**, not skipped. +- **V4:** Verdict ∈ {`pass`, `fail`} with rationale. +- **V5** *(hardened, per M1)*: Every check in the method record is + rendering-class — computed visibility or geometry. A report whose evidence is + DOM presence alone does not satisfy V1. +- **V6** *(hardened, per M5)*: `reads_versions.prototype` matches the + currently frozen prototype bytes. A stale verdict is not a verdict. + +## Exit conditions + +- `pass` → proceed to `USER_REVIEW`. +- `fail` → route to `REVISION` with findings attached. + +## Failure recovery + +- A `fail` verdict is a **normal outcome**, not an error → deterministic route + to `REVISION` with the findings attached. +- Minor findings may be fixed in place and re-audited via the bounded + `SELF_AUDIT` self-loop (`L_AUDIT_FIX`, ceiling 3), then escalate into + `L_REVISION` accounting. +- Internal audit error (e.g. a missing input artifact) → back-transition to the + state that owed the missing artifact. Do not audit around a missing spec. + +## Recorded failure modes + +Each entry below is a defect class that actually shipped past a green suite on +the run this toolkit was extracted from. They are the evidence for +[Verification method](#verification-method-hardened). + +### A. Defects invisible to structural assertions + +| Case | What happened | Method rule | +|---|---|---| +| **View never painted** (blocker) | A screen **never became visible** — the view container is `visibility:hidden` until activated and nothing activated it — and **84/84 DOM assertions still passed**, because `visibility:hidden` keeps layout boxes and accepts programmatic clicks. Caught by looking at a screenshot. | M1, M2 | +| **Geometry defects, four in one flow** | A closed sheet bleeding back into the screen; `scrollIntoView()` scrolling an `overflow:hidden` ancestor and pushing the header out of frame; a label ellipsized to its least useful word; an asset crop gap. **Four of that flow's six real defects were screenshot-only finds.** | M2 | +| **Label and glyph out of sync** (major) | A navigation re-cut relabelled a slot but every file kept the **old glyph** — the tab read one thing under the icon for another. Pre-existing in two **already-approved** files, so the re-cut would have propagated it. | M2 | +| **Duplicate keys** (major) | One file defined two navigation labels **twice** per locale object; the later definition silently clobbered them. **One locale hid it entirely** — only the other showed it. | M4 | +| **Stale boundary routes** (major) | **Eleven live boundary call sites** still routed to a placeholder although every destination existed. An earlier *"no boundary mocks left"* claim had been written about one flow's mocks and did not hold for the set. | M4 | +| **Script on the wrong stack** (major) | The base font token was the foreign stack and the script token was **opt-in per component**, so anything that did not opt in rendered on an arbitrary OS fallback — **138 instances across 7 flows**. Then the remaining ~40 explicit cases turned out to be the stack itself: it carried **no face for that script at all**. CSS falls back **per glyph**, so the fix is verified per glyph, in every locale. | M4 | +| **Class collisions** | A descendant selector also matched status and lock icons and inflated them to ~340px; an inline-span badge overflowed its card and clipped the lines below. Both found by **geometry probes**, not by structure. | M1 | + +**The lesson, stated once:** a DOM-assertion suite is not a substitute for +looking at the render, and "N/N assertions passed" is a statement about the +suite, not about the product. + +### B. Harness false-positives + +One final audit's first run reported **60 failures; only 3 were real.** A later +state probe reported **37 failures and all 37 were the harness.** Rule each of +these classes out before reporting: + +| Reported | Reality | +|---|---| +| Hundreds of overflow violations | Inside horizontal **scroll rails** — `genuinelyClipped: 0`. Check overflow **ancestry**. | +| Off-palette hexes across 8 files | The demo bar and device bezel — **harness chrome**, not app surface. Chrome that lives in its own file is excluded by `review.harnessFiles`; the sweep is file-level, so chrome embedded in a product file is not exempt and should not be. | +| A `#FEED` colour violation | The CSS **id selector** `#feed`. A hex scanner must not read selectors. | +| A foreign-stack token used 27–47× per file | The intended architecture for numerals; the check itself was wrong. | +| A 20px tap target | `::after{inset:-12px}` — an explicit hit-area expansion, commented in source. Measure the **hit area**, not the box. | +| A clipped `<img>` | A deliberate crop — an oversized asset inside `overflow:hidden`. | +| A screen failing to render in one theme | **Timing flake**; renders at every settle when measured. Re-run before reporting. | +| Console errors on nearly every page | An offline webfont CDN and a missing `favicon.ico` — neither belongs to the build. Filter benign entries **by name** (`audit.benignConsole`), never wholesale. | +| Empty states "fail to paint" | A visible-node threshold tuned to a busy screen. An empty state is **sparse by design**. | +| A hook that renders nothing | The hook named an id the catalogue does not contain and the page threw. A wrong fixture is not a product defect. | + +Each was corrected in the harness and the audit re-run — **not waived**. + +### C. Recorded, not resolved + +- **Interactive targets between the external standard and the project's own + claim.** ~140 elements on 20 screens passed WCAG 2.5.8 **AA** (24px) and missed + the project's own acceptance criterion of 44px. Pre-existing across four + approved gates; raising them would restyle 20 approved screens. A **product + decision** — recorded as debt with a recommendation, per M6. +- **Two approved deliverables disagreeing on a data value.** Reported as a + conflict for a one-line ruling. Silently editing one to hide it would be worse + than the conflict. + +## Approval gate + +None. This is the machine gating itself before spending user attention. The +`USER_REVIEW` gate is the next state's concern; the **Known limitations** +section of this report is what that gate presents. diff --git a/design-toolkit/skills/09-user-review/README.md b/design-toolkit/skills/09-user-review/README.md new file mode 100644 index 0000000..4292da7 --- /dev/null +++ b/design-toolkit/skills/09-user-review/README.md @@ -0,0 +1,27 @@ +# Skill: `user-review` — STATE 09 + +**Present the audited prototype and capture a structured human verdict.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 09 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-09--user_review) + +[← skills/](../README.md) · prev ← [08 self-audit](../08-self-audit/README.md) · next → [12 flow-visualization](../12-flow-visualization/README.md) when `handoff_required`, else [11 final-output](../11-final-output/README.md) + +| Field | Value | +|---|---| +| Machine state | `USER_REVIEW` | +| Reads | `prototype/`, `audit-report` | +| Writes | `review-record-<feature>.md` | +| Depends on | self-audit | +| Approval gate | **Primary User Approval Gate** — the central human gate | +| Retry ceiling | 2 clarification rounds | +| Next states | `FLOW_VISUALIZATION` / `FINAL_OUTPUT` / `REVISION` / `REQUIREMENT_ANALYSIS` | + +## The rule that matters most here + +**Run Local, never a static preview** (V4) — the player URL is recorded. An approval is scoped to the bytes it saw, and the freeze hashes prove which. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/09-user-review/SKILL.md b/design-toolkit/skills/09-user-review/SKILL.md new file mode 100644 index 0000000..3e122f7 --- /dev/null +++ b/design-toolkit/skills/09-user-review/SKILL.md @@ -0,0 +1,325 @@ +--- +name: user-review +description: >- + State 09 of the AI Product Design Agent workflow, and the machine's central + human gate. Presents the audited prototype to the user against a running local + server and captures a structured approve / request-changes / reject decision. + Use when a prototype has passed self-audit and needs a human verdict: the + prototype is served with Run Local and reviewed through the player, known + limitations from audit-report.md are presented rather than laundered, every + change request is structured into a spec-linked item with a target state, and + the outcome is recorded against the exact frozen bytes it saw — an approval is + scoped to the artifact versions it reviewed, and any later change reverts the + gate to pending. Reads prototype/ and audit-report.md; writes review-record.md. + Depends on self-audit. Approval gate: Primary User Approval Gate. +--- + +# User Review (STATE 09) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 09, +> §5 Approval Gates, §7 Loop Logic, §8 Completion Rules. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests a review. It communicates +> only through the artifact store (`artifacts/`), never directly with other +> skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/prototype/`, `artifacts/audit-report*.md`, `machine_state` | +| Writes | `artifacts/review-record*.md` | +| Depends on | `self-audit` (must precede — the machine gates itself before spending user attention) | +| Approval gate | **Primary User Approval Gate** — the central human gate of the machine | +| Retry ceiling | Clarification sub-prompt bounded to **2 rounds**; the surrounding `L_REVISION` loop is **3 full cycles** → `HALT_BLOCKED` | +| Next states | `FINAL_OUTPUT` (`approve`) / `REVISION` (`request-changes`) / `REQUIREMENT_ANALYSIS` (`reject` — direction wrong at root) / `HALT_BLOCKED` (user unavailable) | + +## Purpose + +Present the audited prototype to the user and capture structured approval or +change requests. + +This state spends the one resource the machine cannot manufacture: human +attention. Everything upstream exists to make that attention cheap — the audit +runs first so the user never debugs, and the packet is built so the user never +hunts. Everything downstream depends on this record being **exact**: `REVISION` +routes from it, and `FINAL_OUTPUT` §8 rule 2 requires an `approve` *scoped to +the final frozen versions*. + +## Processing steps + +1. **Run Local (default).** Serve `prototype/` over local HTTP and open the + player entry point. If a server is already listening → **Refresh Run Local**: + reuse it and reopen the player. Standard command: + `prototype/run-local.sh [port]` (default **8765**). **Record the player URL.** +2. **Package** prototype + audit summary for human review. Review happens + against the *running* prototype, never static files. +3. **Present known limitations** transparently, from `audit-report.md`. +4. **Capture** the user response: `approve` / `request-changes` / `reject`. +5. **Structure** change requests into actionable, spec-linked items with a + target state. +6. **Record** the review outcome. + +## Review method (hardened) + +Steps 1–6 say *what*. This section is the contract for *how*, and each rule was +written by something that went wrong at a real gate. Codes are cited from logs +and records — index in [`docs/method-rules.md`](../../docs/method-rules.md). + +### G1 — Run Local, never a static preview + +`run-local.sh` serves the prototype tree through `serve.py` on the port named in +`toolkit.config.json` → `review.port` (default **8765**) and opens **`play.html`** +— the player with the sidebar (feature list, walkthrough progress, *open +standalone*). The sidebar **is** the intended review chrome; opening a raw page +bypasses it. The script is idempotent and replaces a plain server on the port +with the live-reload one. All three files ship in +[`templates/prototype/`](../../templates/prototype/); STATE 07 copies them into +the prototype directory. + +Two operational facts that silently degrade the review if missed: + +- **A new prototype page must be registered in `play.html`'s `FEATURES` array** + or it never appears in the sidebar and the user reviews the flow set minus + the new flow. +- **Live reload is gated on workflow state** — active only while the top-level + `current_state` in `state/machine_state.yaml` is `USER_REVIEW`. Outside review + the same server serves plain pages. Do not diagnose "reload is broken" without + checking the state file. + +Deep-link into a flow with `play.html#<feature>`; the player splits +`#id?query` so a hook survives into the stage iframe. + +### G2 — The packet is the hook list + +State 07's traceability table (B2) already names a deep-link hook for every flow +state, variant and error case. **That table is the review packet.** Ship it with +the verdict request so the user can reach the non-happy-path states directly +instead of clicking toward them. A state the user cannot reach in one step is a +state that gets approved unseen. + +### G3 — An approval is scoped to the bytes it saw + +§5: *"An approval is scoped to the artifact versions it saw. If artifacts change +after approval, the gate reverts to `pending`."* §8 rule 2 says the same at +completion. Therefore: + +- Freeze at the moment of approval and **record the sha256 of every approved + file** in `review-record.md`. +- Record `reads_versions` in frontmatter — the exact prototype version and the + audit of record. A record that names its versions only in prose is not + machine-checkable. +- If the audit of record pre-dates the reviewed bytes, that is a **waiver**, not + a detail. Name it and give it a rider debt item (see G6). + +### G4 — Classify a post-approval delta before you ask about it + +Bytes will move after approval. Classify first, because the two classes need +different things from the user: + +| Class | Evidence required | What to ask for | +|---|---|---| +| **Bug-fix only** | Byte-level proof: token/hex inventory identical, diff confined to named regions, and the pre-fix file **reconstructed from the inverse delta hashing back to the approved sha** | A one-line **scope confirm** | +| **Feature delta** | The new behaviour, plus what it changes in the approved surface | A **ruling** — the gate is `pending` until it lands | + +Do not present a feature delta as a bug fix to avoid re-opening a gate. The model +to copy is a record whose frontmatter names the bytes it *reviewed* and states +plainly, in the outcome, the version the approval is *scoped to* when the two +differ. That is the correct shape; it is the **silent re-freeze** that is the +defect. + +### G5 — Present limitations; do not launder them + +The `Known limitations` section of `audit-report.md` is this state's input, not +its embarrassment. An acceptance that carries qualifications is recorded **with +its qualifications**. A clean-looking record of a qualified acceptance is a +false record, and it is the artifact `FINAL_OUTPUT` will later be checked +against. + +### G6 — Every waiver names its rider + +A validation may be waived at the gate. It may not be waived *silently*. Each +waiver records: which rule, why, who granted it, and **the debt item it rides +on**. On the extraction run, `FINAL_OUTPUT` V2 (audit currency) and V3 +(traceability) were both waived at one gate; both became tracked debt and both +were closed the next day — that worked **because they were written down**. + +### G7 — Keep the pass count honest + +`pass N = 1 + revision rounds delivered`. One round is one prototype rebuild, +however many sub-lettered asks it folds. Bump it in **every** place that states +it — the progress snapshot, the flow row and the recommendation list — in the +same edit, or they drift. Three pass counts were found stale at one gate and had +to be corrected before it could close. + +### G8 — Ambiguity is bounded, not absorbed + +Ambiguous feedback → a targeted clarification sub-prompt, **bounded to 2 +rounds**. After that, record it as a `non-blocking` note rather than guessing. +A guess recorded as a requirement becomes a spec nobody chose. + +## Output — `artifacts/review-record.md` + +Write with structured frontmatter + body so downstream skills and the machine can +validate mechanically. **This frontmatter is canonical** — on the extraction run +the records drifted into two different shapes, and the later one dropped +`reads_versions` entirely, which is exactly the field `FINAL_OUTPUT` needs to +check §8 rule 2. + +```markdown +--- +artifact: review-record +version: review-<feature>-NN +produced_by: user-review +reads_versions: + prototype: <proto-<feature>-NN — the exact bytes reviewed> + audit-report.md: <audit-<feature>-NN> +feature: <feature/flow id> +date: <YYYY-MM-DD> +gate: PrimaryUserApprovalGate +verdict: APPROVED | REQUEST-CHANGES | REJECTED +player_url: http://localhost:8765/play.html#<feature> +--- + +# Gate record — <feature> + +## Decision + +**<VERDICT>** on the **Nth presentation**, <date>. + +User instruction, verbatim: *"<quote>"*. + +| Field | Value | +|---|---| +| Flow | <flow + screen ids> | +| Prototype at decision | `<proto-…>` | +| Audit of record | `<audit-…>` — <PASS N / N> | +| Reviewed at | `<player URL>` (Run Local rule V4) | +| Passes to approval | <N> | + +## What was approved + +<the ratified behaviour, decision by decision — this is what REVISION and +FINAL_OUTPUT will treat as settled.> + +## Verification at approval + +| Check | Result | +|---|---| +| Audit | <PASS N / N ACs> | +| Assertions (rendering-class) | <N / N> | +| Console | <N errors> | +| Screenshots | <N> | + +## Change requests (if `request-changes`) + +| ID | Verbatim ask | Target state | Spec link | Status | +|---|---|---|---|---| +| CR1 | *"<quote>"* | `UI_PLANNING` | R-x3 / F2 | open → revision-log | + +_No request is dropped (V3). Anything not actioned is recorded as `deferred` +with a reason._ + +## Deltas ratified by this decision + +| # | Delta | Class | Evidence | +|---|---|---|---| +| 1 | <change on top of frozen bytes> | bug-fix only \| **feature** | <inverse-delta hash / behaviour> | + +## Known limitations presented + +<verbatim from audit-report.md — carried, not laundered (G5).> + +## Opens carried forward + +| ID | Question | Ships as | +|---|---|---| + +## Validations waived + +| Rule | Why | Granted by | Rides on | +|---|---|---|---| + +## Freeze hashes + +| Deliverable file | sha256 | +|---|---| +``` + +## Validation rules (machine-checkable on output) + +- **V1:** Outcome ∈ {`approve`, `request-changes`, `reject`}. +- **V2:** If `request-changes`, **≥1** change request, each linked to a target + state. +- **V3:** **No change request silently dropped** — every captured ask appears as + `resolved`, `open` or explicitly `deferred` with a reason. +- **V4:** **Run Local executed** — the review was conducted against a served + prototype and the **player URL is recorded in `review-record.md`**, not + against file previews. +- **V5** *(hardened, per G3)*: `reads_versions` names the exact + prototype and audit versions, and **freeze hashes are recorded** for every + approved file. An approval that cannot name its bytes cannot satisfy §8 + rule 2. +- **V6** *(hardened, per G6)*: Every waived validation names its rider + debt item. A waiver with no rider is a silent waiver. + +## Exit conditions + +User decision captured and structured. + +## Failure recovery + +- **User unavailable** → `HALT_BLOCKED`. State is fully persisted and resumable + at the exact state; this is not a failure. +- **Ambiguous feedback** → targeted clarification sub-prompt, bounded to **2 + rounds**, else record as a `non-blocking` note (G8). +- **Conflicting change requests** → they are surfaced at the **Conflict + Mini-Gate** in `REVISION`, not resolved here. This state records the conflict + faithfully, including both sides. +- **`reject`** → `REQUIREMENT_ANALYSIS`. Reject means the direction is wrong at + the root, which is an upstream fault, not a revision. +- **`L_REVISION` ceiling (3 full cycles)** → `HALT_BLOCKED` with an escalation + summary of unresolved items. The loop can never silently continue. + +## Approval gate + +**Primary User Approval Gate** — `USER_REVIEW` → `FINAL_OUTPUT`. It blocks +shipping an unapproved deliverable. Grantor: the **user**, never the machine. +On deny: → `REVISION` or `REQUIREMENT_ANALYSIS`. + +Gate rules that bind this state: + +- No forward transition through the gate without `C_APPROVED(gate)`. +- Gate state persists in `machine_state.approvals` and is resumable. +- **The gate reverts to `pending` when approved artifacts change** — the + stale-approval anti-pattern is one of five the machine explicitly forbids. + +## Recorded failure modes + +### A. Gate integrity + +| Case | What happened | Rule | +|---|---|---| +| **Bytes moved after approval, three times in one session** | Two bug-fix deltas and one **feature** delta — a whole screen rebuilt as a new surface — all landed on top of already-frozen deliverables. Each needed a scope confirm that **no written contract required** at the time; the feature one needed a ruling, not a confirm. | G3, G4 | +| **A stale machine record while the machine reported shipping** | `machine_state.yaml` sat **two days stale** — still naming an earlier flow at `USER_REVIEW / gate: pending` — while four §8 conditions were unmet. The gate record is what `FINAL_OUTPUT` trusts; if it is not written at decision time it is written from memory later. | G3 | +| **Pass counts stale in three places at once** | Three flows each understated their presentation count by two to four rounds. All three had to be corrected before the gate could close. | G7 | +| **Frontmatter drift** | The records split into two shapes; the most recent one **dropped `reads_versions` entirely**, naming its prototype and audit only in a body table. That is the exact field `FINAL_OUTPUT` needs to check "approval scoped to the final frozen versions". | V5 | +| **V4 evidence not actually recorded** | Three of six records named the player and hook in prose; **none recorded a player URL**. V4 asks for the URL specifically, so the rule was satisfied in practice and unevidenced in the artifact. | V4, G1 | + +### B. Packaging + +- **A flow missing from the player sidebar** is a flow the user does not review. + New pages must be registered in `play.html`'s `FEATURES` array, in the same edit + that creates the page. +- **Live reload gated on `current_state`** — outside `USER_REVIEW` the server + serves plain pages. Check the state file before calling reload broken. +- **Reviewing raw pages bypasses the player chrome.** This was a direct user + correction, and it is why V4 exists. + +### C. Waivers that worked + +`FINAL_OUTPUT` **V2** (five flows past their audit of record) and **V3** (no +traceability matrix for one batch) were both waived at a gate and both recorded as +debt with a named owner and a fix. Both were closed the next day — the audit +re-run against the frozen bytes, the matrix backfilled. **The waiver was not the +problem; it would have been the silence.** That is the whole of G6. diff --git a/design-toolkit/skills/10-revision/README.md b/design-toolkit/skills/10-revision/README.md new file mode 100644 index 0000000..37a6001 --- /dev/null +++ b/design-toolkit/skills/10-revision/README.md @@ -0,0 +1,27 @@ +# Skill: `revision` — STATE 10 + +**Route findings and change requests back to the state that caused them.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 10 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-10--revision) + +[← skills/](../README.md) · **not in the line** — entered from [08 self-audit](../08-self-audit/README.md) (`fail`) or [09 user-review](../09-user-review/README.md) (`request-changes`), returns through 08 + +| Field | Value | +|---|---| +| Machine state | `REVISION` | +| Reads | `audit-report` and/or `review-record` | +| Writes | `revision-log-<feature>.md` | +| Depends on | self-audit **or** user-review | +| Approval gate | None to start; **Conflict Mini-Gate** before dispatching a conflict | +| Retry ceiling | `L_REVISION` 3 full cycles | +| Next states | any upstream state / `SELF_AUDIT` / `HALT_BLOCKED` | + +## The rule that matters most here + +The only state that writes work into other states. Route the **class**, not the instance — and write the loop counter down every cycle, or the ceiling is not a ceiling. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/10-revision/SKILL.md b/design-toolkit/skills/10-revision/SKILL.md new file mode 100644 index 0000000..887a460 --- /dev/null +++ b/design-toolkit/skills/10-revision/SKILL.md @@ -0,0 +1,396 @@ +--- +name: revision +description: >- + State 10 of the AI Product Design Agent workflow, and the only state that + writes work into other states. Merges self-audit findings and user change + requests into one change set, triages each item to the state where the fault + was introduced, dispatches in dependency order, and tracks every item to + `resolved` or explicitly `deferred`. Use when a prototype fails audit or a + review gate returns `request-changes`: each item is routed by root cause + rather than by where the symptom is visible, the defect *class* is swept + rather than the reported instance, conflicts go to the Conflict Mini-Gate + instead of being settled inside the bytes, superseded components are stripped + as part of the change, the rebuild returns through `SELF_AUDIT`, and the loop + counter is written down every cycle so the ceiling is real. Reads + audit-report.md and review-record.md; writes revision-log.md. Depends on + self-audit or user-review. Approval gate: none to start; Conflict Mini-Gate + before dispatching a conflict. +--- + +# Revision (STATE 10) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 10, +> §3 Transitions, §5 Approval Gates, §6 Retry Logic, §7 Loop Logic, §8 Completion +> Rules. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests a revision. It communicates +> only through the artifact store (`artifacts/`), never directly with other +> skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/audit-report*.md` and/or `artifacts/review-record*.md`, all artifacts, `machine_state` | +| Writes | `artifacts/revision-log*.md` | +| Depends on | `self-audit` (verdict `fail`) **or** `user-review` (`request-changes`) — a change set with no named source is scope creep, not a revision | +| Approval gate | **None to start.** **Conflict Mini-Gate** blocks dispatch of conflicting change requests. Re-approval happens when the loop returns to `USER_REVIEW` | +| Retry ceiling | `L_REVISION` **3 full cycles** → `HALT_BLOCKED` + escalation summary. `L_AUDIT_FIX` **3** (`SELF_AUDIT` ↔ `REVISION`) → escalates *into* `L_REVISION` accounting | +| Next states | any upstream state (root-cause dispatch) / `SELF_AUDIT` (rebuild complete) / `HALT_BLOCKED` (ceiling exceeded) | + +## Purpose + +Apply audit findings and/or user change requests by routing work back to the +correct upstream state(s), tracking each change to closure. + +Every other state produces its own artifact. This one **produces work for other +states**, which makes it the only place where a misrouted fault becomes three +wasted cycles instead of one. It is also the primary product loop: §7 requires +`L_REVISION` to terminate by user `approve` or by ceiling, and forbids it +continuing silently. + +On the run this toolkit was extracted from, this state ran **13 times across five +flows** with no written dispatch rule — which upstream state owned an incoming ask +was decided ad hoc each round. The method below is that rule. + +## Processing steps + +1. **Merge** findings + change requests into a single change set. +2. **Triage** each change to its root-cause state (requirements? flow? UI? + prototype?). +3. **Order** changes by dependency (upstream before downstream). +4. **Dispatch** to target state(s) via back-transition; on return, re-run + downstream states as needed. +5. **Track** each change item to `resolved` / `deferred` with reason. + +## Revision method (hardened) + +Steps 1–5 say *what*. This section is the contract for *how*, and each rule was +written by something that went wrong in a real revision round. Codes are cited +from logs — index in [`docs/method-rules.md`](../../docs/method-rules.md). + +### R1 — Merge first, dedup against `seen_changes` + +One change set per cycle, drawn from both sources at once. §7's loop invariant +requires deduplication against a `seen_changes` set so a rejected change cannot +re-enter the loop endlessly. When an item returns, classify it: + +- **Same item, no new evidence** → drop it and cite the prior decision. +- **Same item, new evidence** → re-open it and name the evidence. + +An item that reappears with no evidence and no citation is the loop running on +its own exhaust. + +### R2 — Route the class, not the instance + +The reported defect is a sample. Before dispatch, state the **class** and sweep +for it. + +One defect was diagnosed as six selectors rendering a script on the wrong font +stack in one file. Three were patched; **the class was never swept**. The actual +root cause — the script token was an *opt-in* layer under a foreign base — +surfaced **24 days later at 138 instances across 7 flows**, and behind it a second +defect: the base stack carried no face for that script at all. One class, one root +cause, three patched selectors, twenty-four days. + +The class may also live in the **machine** rather than the artifact. One change +request read "colours deviate from the DS"; the root cause was that the audit had +*no token-conformance rule* — it checked DS presence, never non-DS absence. The +dispatch was therefore **two** states: `SELF_AUDIT` (a new permanent rule) and +`PROTOTYPE` (the values). Fixing only the values would have left the class open. + +Record the sweep count in the log. "Fixed in 1 file" and "fixed in 11 files" are +different claims. + +### R3 — Root cause is where the fault was introduced, not where it is visible + +Everything is visible in the prototype. That is not evidence it belongs to +`PROTOTYPE`. + +| The ask is… | Root-cause state | +|---|---| +| a goal, scope, persona or constraint that was never captured | `REQUIREMENT_ANALYSIS` | +| a convention, benchmark or platform claim that turned out wrong | `RESEARCH` | +| a change in *what* to build or its priority (direction, not execution) | `PRODUCT_REVIEW` — the Direction Approval Gate re-opens | +| a missing journey, an unserved user need, an uncovered edge | `UX_PLANNING` | +| a missing or unreachable state, a wrong branch/guard, a boundary that no longer holds | `FLOW_GENERATION` | +| a component, token, layout, motion, contrast or density spec | `UI_PLANNING` | +| the spec was right and the build does not match it | `PROTOTYPE` | +| the defect passed a green check | `SELF_AUDIT` **and** the owning artifact state — the check gap is its own item (R2) | + +**A repeat is evidence of misrouting.** If an item is dispatched to a state, +returns, and comes back again, the root cause is upstream of where it was sent. +Four consecutive change requests dispatched palette work to `UI_PLANNING` and +`PROTOTYPE`; the machine ran to `HALT_BLOCKED` before it was established that the +real fault was **wrong-document adoption at `UI_PLANNING`** — a design-system spec +belonging to a different project. Three cycles were spent on colour values because +the routing was never re-examined after the first return. + +### R4 — Dispatch a bounded scope + +Each dispatched item carries what changes **and what must not**. + +One request asked for a palette change on a single screen. `PROTOTYPE` +over-applied it and remixed the brand mark. The next cycle's first item was +*"restore the original mark"*, and the log gained a permanent constraint: **the +logo is an untouchable brand asset** (composition, colours, order, wordmark). A +revision that does more than the item asked manufactures the next revision item. + +Constraints discovered this way are recorded in the log, not carried in memory. + +### R5 — Supersession is part of the change; aged items are re-verified + +When a revision replaces a component, the replaced one **leaves in the same +change**. One round superseded a whole card component outright; two later rebuilds +deleted entire selector families and string-key sets. A leftover selector or +string is an un-specced element and fails `skills/06` and `skills/07` V-rules +exactly as an addition does. The log carries a **Superseded** table. + +The mirror of this: **an open change item ages against a moving prototype.** By +the time one carried defect was fixed, three of its six reported selectors *no +longer existed* — two intervening rounds had deleted them. Re-verify every carried +item against current bytes before dispatch; an item that no longer applies is +closed as `superseded`, with the round that removed it named, not silently +dropped. + +### R6 — Re-validate through `SELF_AUDIT`, or record a waiver + +§3 gives this state exactly one return edge: `REVISION` → rebuild complete → +`SELF_AUDIT` → `USER_REVIEW`. + +The extraction run shortcut that edge repeatedly, verifying rebuilds with targeted +headless assertions and returning straight to the gate. Result: **five of seven +approved flows arrived at their approval gate past their audit of record**, one of +them four rounds past. That became tracked debt, waived at the gate, and when the +audit was finally re-run against the frozen bytes (PASS 386/386) it immediately +found **three more real defects**, including the font root cause above. + +Targeted verification is evidence *inside* the loop. It is not the audit. +Returning to `USER_REVIEW` without a current audit is a **waiver**, and per +`skills/09` G6 a waiver names its rider debt item. + +An in-review delta that claims to be audit-neutral must **say what makes it +neutral**. One did: asset wiring only, no layout or copy change, screenshots +re-verified — so the existing audit still held. That is a defensible claim because +it was written down. + +### R7 — Count the loop, out loud, every cycle + +`L_REVISION` is per feature. `L_AUDIT_FIX` is per audit round and, on breach, +**escalates into `L_REVISION` accounting** — it does not reset it. + +On the extraction run the counters stopped being written after the second round +of the first flow. That flow was recorded at `L_REVISION=2` and then delivered +three more rounds — **five against a ceiling of three**. The inner audit-fix loop +ran ×4 on one flow and ×8 on another against a ceiling of three, neither +escalating. **A ceiling nobody counts is not a ceiling.** Every log entry carries +`iteration` and `loop: L_REVISION (n/3)` in frontmatter. Ceilings live in +`toolkit.config.json` → `loops`. + +What counts as one cycle: **one round = one prototype rebuild, however many +sub-lettered asks it folds** — a round folding nine sub-asks is still one round. +This is the same rule as `skills/09` G7 — bump the count in the log, the progress snapshot and the flow +row in the same edit, or they drift. + +The ceiling resets **only** by explicit user authorization, recorded in the log. +One flow did this correctly: 3/3 consumed → `HALT_BLOCKED` with an escalation +summary → the user authorized a fresh bounded window → reset to 1/3, written +down. + +### R8 — A conflict goes to the Mini-Gate, never into the bytes + +Two classes reach this state: + +1. **Two change requests contradicting each other.** +2. **A change request contradicting an already-ratified decision** — the class the + extraction run actually hit, three times: + - a supplied spec asked for a control whose ownership had already been ruled + onto a different screen, twice; + - a supplied mockup's navigation contradicted a logged user decision, across + six files; + - a spec asked for two colours the token allowlist does not contain. + +Neither class is a build decision. When the user is not at the gate: ship the +**reversible** reading, open an `o-` item naming both sides and what each would +cost, and put it to the gate. Never silently pick a side inside the prototype — +`skills/07` states the same rule from the build side. + +The same applies to canon conflicts between two *approved* deliverables. On the +extraction run two approved flows shipped contradictory values for the same +user-visible fact, and it was deliberately **not** patched: silently editing one +approved deliverable to hide a disagreement with another is worse than the +disagreement, and it moves frozen bytes without a ruling. + +## Output — `artifacts/revision-log.md` + +Append per iteration; newest first. The frontmatter is what `FINAL_OUTPUT` §8 +rule 6 reads. + +```markdown +--- +artifact: revision-log +version: rev-<feature>-NN +produced_by: revision +reads_versions: + review-record.md: review-<feature>-NN + audit-report.md: audit-<feature>-NN +iteration: <n> +loop: L_REVISION (<n>/3) # L_AUDIT_FIX (<n>/3) if this is an audit-fix cycle +feature: <feature/flow id> +--- + +# Iteration <n> — <source: audit verdict `fail` | user `request-changes`>, <date> + +## Change set + +| # | Change item | Raised by | Class + sweep | Root cause | Target state | Status | +|---|---|---|---|---|---|---| +| CR1 | *"<verbatim ask or finding>"* | user-review \| self-audit | <class — N instances found across M files, or "single instance"> | <where the fault was introduced> | `UI_PLANNING` → `PROTOTYPE` | resolved \| deferred \| superseded | + +_Every item carries a target state and a status (V1). Nothing exits `open` (V2)._ + +## Conflicts — Conflict Mini-Gate + +| # | Conflict | Side A | Side B | Ships as | Gate outcome | +|---|---|---|---|---|---| +| o-x1 | <the contradiction, both sides stated> | <new ask> | <ratified decision + its id> | <the reversible reading> | pending user ruling \| ruled <date> | + +_No conflict is resolved inside the prototype (R8, V6)._ + +## Dependency order (upstream → downstream) + +1. `<STATE>` → <artifact vNN> (<items>) +2. `PROTOTYPE` → proto-<feature>-NN (<items>) +3. `SELF_AUDIT` → audit-<feature>-NN +4. `USER_REVIEW` → gate reverts to `pending` (stale-approval rule §5) + +## Superseded by this revision + +| Component / rule / string | Superseded by | Removed from | +|---|---|---| + +## Constraints recorded + +<discovered scope limits — untouchable assets, decisions that must not move.> + +## Deliberately not changed + +| Item | Why not | +|---|---| + +_Recorded so silence is not mistaken for oversight (V2)._ + +## Impact analysis + +| Artifact | Effect | +|---|---| +| requirements.md | unchanged | +| ui-plan.md | **ui-<feature>-NN** (supersedes -NN) | +| prototype | **proto-<feature>-NN** | +| audit-report.md | **audit-<feature>-NN** | + +## Re-validation + +| Check | Result | +|---|---| +| Re-audit on the rebuilt bytes | `audit-<feature>-NN` PASS N / N — or **WAIVED**, rider: debt #<n> | +| Rendering-class assertions | N / N | +| Class sweeps from R2 | <class: N instances, all fixed> | + +## Validation self-check + +- **V1** ✅ / ❌ — every item has a target state and a status. +- **V2** ✅ / ❌ — no item left `open`. +- **V3** ✅ / ❌ — iteration incremented; `L_REVISION <n>/3`, `L_AUDIT_FIX <n>/3`. +- **V4** ✅ / ❌ — every item names its class and sweep result. +- **V5** ✅ / ❌ — superseded components removed; carried items re-verified against current bytes. +- **V6** ✅ / ❌ — conflicts recorded with both sides; none resolved in the bytes. +- **V7** ✅ / ❌ — return edge passes through `SELF_AUDIT`, or a waiver names its rider. + +**Exit:** dispatch to <states> → `SELF_AUDIT` → `USER_REVIEW`. +``` + +## Validation rules (machine-checkable on output) + +- **V1:** Every change item has a target state and a status. +- **V2:** No change item left `open` at state exit — `resolved`, `superseded`, or + explicitly `deferred` **with a reason**. +- **V3:** Iteration number incremented; loop ceilings not exceeded **and the + counters actually written** (`L_REVISION`, `L_AUDIT_FIX`). +- **V4** *(hardened, per R2)*: Every item names its **defect class** and + the sweep result. An item recorded as a single instance asserts that the class + was checked, not that it was not looked for. +- **V5** *(hardened, per R5)*: Components replaced by this revision are + removed, not left as dead style/strings; and every carried item was re-verified + against current bytes before dispatch. +- **V6** *(hardened, per R8)*: Every conflict is recorded with **both + sides** and its Mini-Gate outcome. No conflict is resolved inside the + prototype. +- **V7** *(hardened, per R6)*: The return edge to `USER_REVIEW` passes + through `SELF_AUDIT` on the rebuilt bytes. If it does not, a waiver is recorded + and it names its rider debt item. + +## Exit conditions + +All change items `resolved` or `deferred`; downstream states re-validated. + +## Failure recovery + +- **`L_REVISION` ceiling (3 full cycles)** → `HALT_BLOCKED` with an **escalation + summary** of unresolved items — never a 4th unbounded cycle. Fully persisted + and resumable; not a failure terminal. +- **`L_AUDIT_FIX` ceiling (3)** → escalate into `L_REVISION` accounting. It does + not reset the outer loop. +- **Conflicting change requests** → **Conflict Mini-Gate** before dispatch (R8). +- **A change request with no content** (`request-changes` with nothing specified) + → the loop cannot be entered on an empty change set. Halt, write the escalation + summary, and state the resume path — the concrete change list plus an explicit + authorization that resets the window. +- **Missing input artifact** (no `audit-report.md` or `review-record.md`) → + back-transition to the state that owed it. A revision with no source is not a + revision. + +## Approval gate + +**None required to start a revision.** Re-approval happens when the loop returns +to `USER_REVIEW`, and per §5 the Primary User Approval Gate **reverts to +`pending`** the moment approved artifacts change — that reversion is a +consequence of this state's own dispatch, so record it in the dependency order. + +**Conflict Mini-Gate** — location `REVISION`; blocks *dispatching conflicting +change requests*; grantor: the **user**; on deny: the user resolves the conflict, +then dispatch proceeds. + +## Recorded failure modes + +### A. Routing + +| Case | What happened | Rule | +|---|---|---| +| **Class never swept** | A defect reported as six selectors in one file; three were patched and the class was dropped. The root cause — an opt-in token layer — resurfaced 24 days later at **138 instances across 7 flows**, with a second defect behind it. | R2, V4 | +| **Root cause in the machine, not the artifact** | Invented colours passed a green audit because the audit checked DS *presence*, never non-DS *absence*. The fix had to be two dispatches: a new permanent `SELF_AUDIT` rule, and the values. | R2, R3 | +| **Three cycles on a misrouted root cause** | Four change requests dispatched palette work downstream; the real fault was **wrong-document adoption at `UI_PLANNING`** — a design-system spec belonging to a different project. The machine reached `HALT_BLOCKED` before the routing was re-examined. | R3 | +| **Over-application creating the next item** | A one-screen palette change was applied so broadly that the brand mark was remixed; the next item was *"restore the mark"*. | R4 | +| **Items aged against a moving prototype** | Three of one carried defect's six reported selectors no longer existed when it was actioned — two intervening rounds had deleted them. | R5 | + +### B. Loop accounting + +| Case | What happened | Rule | +|---|---|---| +| **The counter stopped being written** | `L_REVISION` was last recorded at **2** for a flow that then delivered three more rounds — **five against a ceiling of three**, with no breach ever detected. | R7, V3 | +| **`L_AUDIT_FIX` breached twice with no escalation** | ×4 on one flow and ×8 on another against a ceiling of 3. Neither escalated into `L_REVISION` accounting. | R7 | +| **The return edge skipped** | Rebuilds went back to the gate on targeted assertions instead of a re-run audit; **five of seven approved flows** were past their audit of record at approval. The eventual re-run found three more real defects. | R6, V7 | +| **The log covered one flow out of eleven** | The revision log only ever recorded the first flow, so §8 rule 6 (*no `open` change items*) was unevaluable for the other ten until a consolidated entry backfilled it at closure. | V1, V2 | + +### C. What worked + +- **The `HALT_BLOCKED` escalation.** A fourth `request-changes` arrived with no + change items, against a consumed 3/3 ceiling. The machine halted, wrote the + escalation summary (everything resolved, the unresolved set, the standing + disclosed minors) and a three-step resume path, then reset the window **only** + on explicit user authorization — recorded in the log. That is exactly what §7's + *"can never silently continue"* is asking for. +- **The `Deliberately NOT changed` table.** Four items — a canon conflict between + two approved deliverables, a tap-target gap, a progress readout that was visible + at approval, and six superseded ACs — each with the reason it was left. V2 is + satisfiable by silence; this table is what makes it *honest*. diff --git a/design-toolkit/skills/11-final-output/README.md b/design-toolkit/skills/11-final-output/README.md new file mode 100644 index 0000000..be419ec --- /dev/null +++ b/design-toolkit/skills/11-final-output/README.md @@ -0,0 +1,27 @@ +# Skill: `final-output` — STATE 11 + +**Freeze, package, write the handoff, and close the machine.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 11 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-11--final_output) + +[← skills/](../README.md) · prev ← [12 flow-visualization](../12-flow-visualization/README.md) or [09 user-review](../09-user-review/README.md) · next → `DONE` + +| Field | Value | +|---|---| +| Machine state | `FINAL_OUTPUT` | +| Reads | approved artifact set, `review-record` | +| Writes | `deliverable-<feature>/`, terminal `machine_state` | +| Depends on | user-review (`approve`) | +| Approval gate | None additional — gated by the granted Primary Approval | +| Retry ceiling | 2 (packaging faults) | +| Next states | `DONE` / `REVISION` (completeness regression) | + +## The rule that matters most here + +A freeze is a **hash, not a copy**. All six completion rules are checked explicitly, each with a boolean *and a one-line reason*. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/11-final-output/SKILL.md b/design-toolkit/skills/11-final-output/SKILL.md new file mode 100644 index 0000000..e1afaea --- /dev/null +++ b/design-toolkit/skills/11-final-output/SKILL.md @@ -0,0 +1,400 @@ +--- +name: final-output +description: >- + State 11 of the AI Product Design Agent workflow, and the only state that can + close the machine. Freezes the approved artifact versions, packages the + deliverable, writes the handoff document, checks every §8 Completion Rule + explicitly, and emits the terminal record. Use when the Primary User Approval + Gate has been granted and the work is to be shipped: the approval is verified + as current *and* as naming the exact bytes being frozen, the freeze is a hash + rather than a copy, acceptance criteria are checked against the traceability + matrix rather than from memory, the audit of record is confirmed to have run + on the bytes being frozen, every waived rule ships with an id and a rider debt + item, known limitations ship inside the deliverable at full strength, and the + machine record is closed in the same edit as the freeze. Reads the approved + artifact set and review-record.md; writes deliverable/ and the terminal + machine_state. Depends on user-review (`approve`). Approval gate: none + additional — this state is gated by the already-granted Primary User Approval. +--- + +# Final Output (STATE 11) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 11, +> §3 Transitions, §4 Conditions, §5 Approval Gates, §8 Completion Rules. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests delivery. It communicates +> only through the artifact store (`artifacts/`), never directly with other +> skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | approved `artifacts/prototype/`, `artifacts/review-record*.md` (`approve`), `artifacts/traceability*.md`, `artifacts/audit-report*.md`, `artifacts/revision-log*.md`, the full artifact set, `machine_state` | +| Writes | `artifacts/deliverable-<feature>/` (frozen prototype + `handoff-<feature>.md`) and the terminal `state/machine_state.yaml` record | +| Depends on | `user-review` with outcome `approve` — this state has no other entry | +| Approval gate | **None additional.** Gated by the already-granted **Primary User Approval Gate**. Re-approval only if content changes post-approval (§5 stale-approval rule) | +| Retry ceiling | §6 default **2** for faults *inside* packaging (an unwritten hash, a missing handoff). A completeness regression is **not** a retry — it is the declared `REVISION` edge | +| Next states | `DONE` (terminal success) / `REVISION` (completeness regression caught at the last gate) | + +## Purpose + +Produce the finalized, packaged deliverable and close the workflow. + +This is the last place a wrong claim can be caught, and the only place the +machine is allowed to say it is finished. Every other state produces an artifact +someone downstream will check; this one produces the **record that the checking +is over**. §8's six Completion Rules are its real specification — V1–V4 below are +how they are enforced at the moment of freezing. + +The run this toolkit was extracted from reached `FINAL_OUTPUT` **eleven times** +and closed the machine once. At that closure: two of the four validation rules had +been waived at the previous gate, `machine_state.yaml` sat two days stale while +the machine reported itself shipping, one flow's handoff did not exist, and §8 +rule 6 was unevaluable for ten of eleven flows. All four were caught at the final +sweep. The method below is what would have caught them **at the gate they were +made at**. + +## Processing steps + +1. **Verify** `USER_REVIEW` outcome is `approve` and current. +2. **Freeze** artifact versions; assemble the final package. +3. **Generate** handoff documentation (decisions, traceability, known limitations). +4. **Run** the final completeness check against acceptance criteria. +5. **Emit** the terminal record and close the machine. + +## Packaging method (hardened) + +Steps 1–5 say *what*. This section is the contract for *how*, and each rule was +written by something that went wrong at, or just past, delivery. Codes are cited +from handoffs and gate records — index in +[`docs/method-rules.md`](../../docs/method-rules.md). + +### P1 — The approval must be current **and** must name its bytes + +§5: *an approval is scoped to the artifact versions it saw.* That makes +`reads_versions` in `review-record.md` a load-bearing field of **this** state — +it is what §8 rule 2 is checked against. A record that cannot name its bytes +cannot be shipped from, and the fix is to go and get the naming, not to infer it. + +The most recent gate record on the extraction run **dropped `reads_versions` +entirely**, naming its prototype and audit only in a body table. An earlier record +is the correct shape: frontmatter naming the version reviewed, with the outcome +*scoped to* a later version — saying out loud that the bytes moved between review +and approval. + +Before freezing, classify any post-approval delta per `skills/09` **G4**: + +- **bug-fix-only** → a one-line scope confirm, and the byte-level evidence bar + (identical hex inventory, diff confined to named regions, the pre-fix file + reconstructed from the inverse delta hashing back to the approved sha). +- **feature delta** → a ruling. The gate is `pending`; there is nothing to + package yet. + +One prototype rebuilt an entire screen as a new surface **after** its approval. +It was a feature delta, and the deliverable still held the previous version — the +deliverable and the prototype disagreed about what had shipped for a full day, +until it was ratified and re-frozen. + +### P2 — A freeze is a hash, not a copy + +Copying a folder records nothing. Every frozen file is listed with its **sha256** +in the handoff and in `machine_state.freeze`, and those hashes are what the next +gate, the next audit and the next revision compare against. + +One deliverable per **approval gate**, named for what that gate approved — a +single gate covering five flows produces one deliverable folder and one handoff, +and every flow's row in `machine_state.flows` names the folder it landed in. + +**A screen that is not in a frozen deliverable is not delivered.** One flow was +built direct: its screens read `designed` in the registry and were never frozen +into any deliverable, because the flow had no upstream pipeline documents to +freeze. `designed` and `delivered` are different claims and the snapshot must not +blur them. + +### P3 — V2 is checked against the traceability matrix, never from memory + +The final completeness check is mechanical: every acceptance criterion id in +`requirements-<feature>.md` appears in `traceability-<feature>.md` with a status +in `{met, waived, superseded}`. Anything else — including absence — is `unmet`. + +One batch shipped 21 screens with **condensed pipeline artifacts and no +traceability matrix at all**, so V2 was not failed — it was *unevaluable*, and the +gate recorded a V3 waiver instead. When the matrix was finally built at closure it +covered 26 requirements / 90 ACs: **83 met, 6 superseded by later ratified +revisions, 1 met-with-advisory, 0 unmet**. + +`superseded` is a legitimate status and it **names the ratified revision that +superseded it**. An AC quietly dropped because a later round replaced its screen +is indistinguishable from an AC that was never built, unless the supersession is +written down. + +### P4 — The audit of record must have run on the bytes being frozen + +§8 rule 4 is not "an audit passed", it is `C_AUDIT_PASS` **on the final prototype +version**. Compare the sha the audit ran against with the sha being frozen. If +they differ, this is not a packaging problem — it is a `SELF_AUDIT` problem, and +per `skills/10` **R6** the return edge exists precisely for it. + +**Five of seven approved flows arrived at their gate past their audit of +record** — one three rounds past, one four. Each round had been verified by +targeted headless assertions and screenshots, which is evidence *inside* the loop +and is not the audit. That became tracked debt, waived at the gate. When the audit +was finally re-run against the frozen bytes it returned **PASS 386/386, stable +over two runs, 37 screens driven** — and found **three more real defects** on the +way there, including the whole app rendering one script on a stack with no face +for it: 138 instances across 7 flows, the root cause of a defect first reported 24 +days earlier. + +A green audit on superseded bytes is not a green audit. + +### P5 — §8 rule 6 needs a revision log that exists + +*No `open` change items in the latest `revision-log.md`* is checked by reading the +log's frontmatter and change-set table. A missing log does not read as "no open +items" — it reads as **no evidence**, and it fails the rule. + +The revision log only ever covered the first flow. The 13 revision rounds across +the other flows lived in status prose, not in the artifact this state reads, so +rule 6 was unevaluable for ten of eleven flows until a consolidated closure entry +backfilled it. + +### P6 — A waiver is a legitimate exit; silence is not + +§8 rule 3 permits an acceptance criterion to be `waived` **with record**. The +record is the whole of the permission. A waiver ships only when all three hold: + +1. The **user grants it** — the machine cannot waive its own rules. +2. It is written into the deliverable's **Known limitations** *and* opened as a + numbered debt item, with an id both sides can cite. +3. It states **what would close it**. + +Audit currency and a missing traceability matrix were both waived this way at one +gate, each riding a numbered debt item, and **both were closed the next day** — +one by a re-run audit that found three more defects, the other by a backfill that +reported 0 unmet. That is the waiver working exactly as designed. + +**The waiver was never the problem. The silence would have been.** + +### P7 — Close the machine record in the same edit as the freeze + +§8 rule 1 is a claim about the record, and a record written later is a +reconstruction. `current_state`, `last_transition`, `approvals`, the per-flow +terminal rows, the freeze hashes and an explicit `completion_check` for C1–C6 are +written **in the same edit** that freezes the bytes. + +`machine_state.yaml` sat **two days and two approval rounds stale** — still +reading `current_state: USER_REVIEW`, gate `pending`, while seven flows had been +approved and the machine was reporting itself as shipping. Nothing detected it, +because nothing was reading the file the completion rule is defined over. + +Each of the six rules gets a boolean **and a one-line reason**. `C3: true` with +no reason is the same silence P6 forbids. + +### P8 — Known limitations ship inside the deliverable, at full strength + +Every limitation the pipeline discovered goes into the handoff in the terms it +was discovered in — not softened, not summarised into a reassurance. The +receiving team will otherwise discover it in build, at a much higher price. + +The extraction run shipped 20 parked open decisions, a provisional design-system +palette, a tap-target gap against its own acceptance criterion, and a design file +whose 48 frames were **render-backed images, not component-decomposed vector +designs**. The last one is the model: stated plainly, with why (decomposition +wants the real DS export first) rather than omitted because it reads badly. + +Two shapes from that run are the reference: + +- A handoff's *Known limitations* table — four opens, each with what ships instead + and what would close it, including a genuine canon conflict between two + *approved* deliverables that was **deliberately not patched** (silently editing + one to hide a disagreement with another is worse than the disagreement). +- A requirements document's acceptance section, which records the five + qualifications on that acceptance rather than presenting it as clean. + +Client-facing packages (requirements document, developer handoff, data-screen +contract, design file) are **additive** to `deliverable/`, not substitutes for it, +and each cites the frozen versions it was generated from. + +## Output — `artifacts/deliverable-<feature>/` + +``` +artifacts/deliverable-<feature>/ +├── prototype/ # the frozen bytes, hashed +└── handoff-<feature>.md # V4 +``` + +Plus the terminal record in `state/machine_state.yaml` (P7). + +### `handoff-<feature>.md` + +````markdown +# <Project> — <Feature> · Design Handoff + +_Feature: **<feature>** · State: **DONE** (Primary User Approval granted <date>, +<n>th pass, scoped to `proto-<feature>-NN`) · Date: <date>_ + +> <standing caveats that apply to everything below — provisional tokens, +> unreviewed copy, simulated content.> + +## What this delivers + +| Screen | ID | Built | +|---|---|---| +| <name> | S-XXX-NN | <what actually ships on it> | + +**States:** <every state a screen can be driven into> + +## Requirement source + +<the brief, the registry rows, or the promises already frozen into other flows. +Say which — a flow built with no user brief is a different object from one built +to a spec, and the receiving team needs to know.> + +## Key decisions + +- **D-XN — <decision>.** <the ruling and why it went that way.> + +## Pipeline artifacts + +requirements-<feature> (<n>R / <n> ACs) → research-<feature> → +product-review-<feature> (**proceed**, D-X0..) → ux-plan-<feature> → +flows-<feature> → ui-plan-<feature> → traceability-<feature> → +**prototype `proto-<feature>-NN`** → audit-report-<feature> (**PASS n/n**) → +review-record-<feature>. + +**Figma:** <file id + page, or PENDING with what blocks it.> + +## Acceptance criteria + +- **audit-<feature>-NN PASS — n / n ACs** (run against the frozen bytes, P4). +- <headless assertion count, run stability, console sweep, hex conformance, + screenshot count.> +- Superseded ACs: <n>, each naming the ratified revision that replaced it (P3). + +## Freeze + +| File | sha256 | +|---|---| +| `prototype/<file>.html` | `<sha256>` | + +## Review packet + +``` +prototype/run-local.sh → play.html #<feature> +``` + +Hooks: <every deep-link hook, from traceability — this is what makes the +deliverable re-drivable after the loop closes.> + +## Waivers + +| Rule | Waived because | Rider | What closes it | +|---|---|---|---| +| V2 / §8 rule 4 | <reason> | debt #<n> | <the specific action> | + +_A waived rule ships only with a grantor, a rider and a closing condition (P6)._ + +## Known limitations + +| ID | Limitation | +|---|---| +| **o-xN** | <the open, what ships instead, what would close it — at full strength (P8).> | + +## §8 Completion Rules + +| # | Rule | Holds | Evidence | +|---|---|---|---| +| 1 | `current_state` = `DONE` | ✅ | machine_state written this edit | +| 2 | approval scoped to the final frozen versions | ✅ | review-<feature>-NN `reads_versions` + freeze sha | +| 3 | `C_ALL_CRITERIA_MET` | ✅ | traceability-<feature>: n met / n waived / n superseded / **0 unmet** | +| 4 | `C_AUDIT_PASS` on the final version | ✅ | audit-<feature>-NN, run on the frozen sha | +| 5 | deliverable + handoff + traceability + decision log exist | ✅ | this folder | +| 6 | no `open` items in the latest `revision-log.md` | ✅ | rev-<feature>-NN | +```` + +## Validation rules (machine-checkable on output) + +- **V1:** `USER_REVIEW` = `approve` and not superseded by a later change request. +- **V2:** 100% of acceptance criteria marked `met` (or user-waived, recorded). +- **V3:** All artifacts version-frozen and referenced. +- **V4:** Handoff doc present. +- **V5** *(hardened, per P1 + P2)*: Every frozen file is listed with its + **sha256**, and that hash is the version the approval names. An approval that + cannot name its bytes fails V1 rather than being inferred from. +- **V6** *(hardened, per P4)*: The audit of record ran on **the bytes + being frozen**. If it did not, a waiver is recorded and names its rider debt. +- **V7** *(hardened, per P5 + P7)*: All six §8 Completion Rules are + checked **explicitly and individually**, each with a boolean and a one-line + reason, in the deliverable and in `machine_state.completion_check`. No rule is + asserted by silence, and rule 6 is failed — not passed — when the revision log + for the feature does not exist. +- **V8** *(hardened, per P6 + P8)*: Every waived rule and every known + limitation carries an **id**, a **rider debt item** and **what would close it**. + +## Exit conditions + +All validation passes → machine enters terminal `DONE`. + +## Failure recovery + +- **V2 fails at the last moment** → do **not** ship. Route to `REVISION` with the + **specific unmet criteria**, never a general "completeness failed". No silent + shipping of incomplete work. +- **Approval is stale** (bytes moved after approval, P1) → the gate reverts to + `pending` per §5. That is a `USER_REVIEW` return, not a freeze — classify the + delta first (`skills/09` G4) so the return asks for the right thing: a scope + confirm or a ruling. +- **Audit of record predates the frozen bytes** (P4) → back to `SELF_AUDIT` on + the frozen bytes, or ship on an explicit user-granted waiver with a rider. +- **Missing input artifact** — no traceability matrix, no revision log, no + handoff — → back-transition to the state that owed it. A completeness check run + over a missing artifact is not a pass. +- **Packaging fault** (unwritten hash, unwritten handoff) → retry inside this + state, ceiling 2, then `HALT_BLOCKED` with a diagnostic. + +## Approval gate + +**None additional.** Final packaging is gated by the already-granted **Primary +User Approval Gate**; re-approval is required only if content changes +post-approval — which is P1's whole subject, and is checked here rather than +assumed. + +## Recorded failure modes + +### A. Freeze integrity + +| Case | What happened | Rule | +|---|---|---| +| **The deliverable and the prototype disagreed** | A screen was rebuilt as a new surface after approval; the deliverable still held the previous version. A **feature** delta over approved bytes, not a bug fix. | P1, V1 | +| **The gate record dropped the field this state reads** | One record omitted `reads_versions` — the exact field §8 rule 2 is checked against — naming its prototype and audit only in a body table. | P1, V5 | +| **`designed` mistaken for `delivered`** | One flow was built direct; its screens read `designed` in the registry and were never frozen into any deliverable, because there were no upstream artifacts to freeze. | P2 | +| **External references age too** | Handoffs cited design-file pages that had stopped matching the prototype — one flow's frames were four revision rounds out of sync. A frozen deliverable does not freeze the things it links to. | P2, P8 | + +### B. Completion-rule accounting + +| Case | What happened | Rule | +|---|---|---| +| **The machine record was stale while the machine reported shipping** | `machine_state.yaml` read `current_state: USER_REVIEW`, gate `pending`, for **two days and two approval rounds** after seven flows were approved. §8 rule 1 is defined over that file and nothing was reading it. | P7, V7 | +| **A rule was unevaluable, not failed** | One batch shipped with no traceability matrix, so V2 could not be checked at all; the gate recorded a V3 waiver instead. The backfill later found 26 requirements / 90 ACs — 83 met, 6 superseded, 1 met-with-advisory, **0 unmet**. | P3, V2 | +| **A green audit on superseded bytes** | Five of seven approved flows reached their gate past their audit of record, verified by targeted assertions instead. The eventual re-run on the frozen bytes — PASS 386/386 — found **three more real defects**, including one at 138 instances across 7 flows. | P4, V6 | +| **Rule 6 unevaluable for ten of eleven flows** | The revision log only ever covered one flow; 13 revision rounds lived in prose, not in the artifact this state reads, until a closure entry backfilled it. | P5, V7 | +| **A handoff that did not exist at close** | One flow's handoff — V4's entire subject — was written during the final sweep, after the flow had been recorded as delivered. | P7, V4 | + +### C. What worked + +- **The two waivers.** Audit currency and a missing traceability matrix were + waived at the gate *with numbered riders and closing conditions*, and both were + closed the next day — one by an audit re-run that found three more real defects, + the other by a backfill reporting 0 unmet. A waiver is a working part of the + machine; an unrecorded shortcut is not. +- **The last handoff written.** Freeze hashes, a review packet listing every + deep-link hook, and a *Known limitations* table carrying a real canon conflict + between two approved deliverables — **deliberately unpatched** rather than + silently reconciled. It is a deliverable that can still be driven, and audited, + after the loop closed. +- **A requirements document's acceptance section**, which records the five + qualifications on the acceptance instead of presenting it as clean. +- **The final audit as the model for P4** — re-run against the final frozen bytes + of every flow, 386/386, stable over two consecutive runs, 37 screens driven, + every check rendering-class per `skills/08` M1. diff --git a/design-toolkit/skills/12-flow-visualization/README.md b/design-toolkit/skills/12-flow-visualization/README.md new file mode 100644 index 0000000..23538e7 --- /dev/null +++ b/design-toolkit/skills/12-flow-visualization/README.md @@ -0,0 +1,27 @@ +# Skill: `flow-visualization` — STATE 12 + +**Generate the navigation map so the design is ready for development.** + +Full contract: [SKILL.md](SKILL.md) · spec: [docs/workflow.md](../../docs/workflow.md) §STATE 12 · guide: [WORKFLOW_GUIDE.md](../../WORKFLOW_GUIDE.md#state-12--flow_visualization) + +[← skills/](../README.md) · prev ← [09 user-review](../09-user-review/README.md) (`approve`) · next → [11 final-output](../11-final-output/README.md) · numbered 12 by authoring order, runs before 11 + +| Field | Value | +|---|---| +| Machine state | `FLOW_VISUALIZATION` | +| Reads | `flows`, screen registry, lanes, `prototype/`, the design file | +| Writes | `navgraph.json`, `navmap-report.md`, `flow-visualization-<scope>.md`, design-file pages | +| Depends on | flow-generation **and** user-review (`approve`) | +| Approval gate | **Developer Handoff Gate** — blocks `FINAL_OUTPUT` | +| Retry ceiling | 3 | +| Next states | `FINAL_OUTPUT` / `FLOW_GENERATION` / `REVISION` / self-loop | + +## The rule that matters most here + +**Derive the graph; never draw it.** The gate passes on the report and the tool's exit code, not on the picture. Skipped entirely when `handoff_required` is false. + +## Contract rule + +This skill communicates **only** through the artifact store (`artifacts/`), never +directly with another skill. It runs when the orchestrator — or an explicit user +task — requests this state, and not otherwise. diff --git a/design-toolkit/skills/12-flow-visualization/SKILL.md b/design-toolkit/skills/12-flow-visualization/SKILL.md new file mode 100644 index 0000000..56cb051 --- /dev/null +++ b/design-toolkit/skills/12-flow-visualization/SKILL.md @@ -0,0 +1,631 @@ +--- +name: flow-visualization +description: >- + STATE 12 of the AI Product Design Agent workflow (module DWF-05), on the edge + between the Primary User Approval Gate and delivery. Turns the approved flow + graphs into a navigation map a developer can build from without asking a + designer a question: journey sections, styled connectors carrying trigger and + guard, decision nodes, screen metadata, swimlanes, a cross-feature map, a + navigation heatmap, deep-link addressing, per-screen state machines, developer + annotations, and a PM/QA overview page. Use when flows are ratified and the + work is heading for developer handoff: every connector is derived from the + screen registry rather than drawn, the derivation is a tool with an exit code, + a boundary is treated as a dated claim rather than a permanent property, and + the gate passes on the report rather than on the picture. Reads flows-*.md, + reference/screen-registry.csv, reference/nav-lanes.json, the prototype and the + design file; writes navgraph.json, navmap-report.md, the design-file flow pages + and flow-visualization-<scope>.md. Depends on flow-generation and on user-review + (`approve`). Approval gate: Developer Handoff Gate. +--- + +# Flow Visualization & Navigation Mapping (STATE 12 · DWF-05) + +> Source of truth: [../../docs/workflow.md](../../docs/workflow.md) §STATE 12, +> §3 Transitions, §5 Approval Gates. +> This skill is one state of the workflow state machine. It runs only when the +> orchestrator (or an explicit user task) requests navigation mapping. It +> communicates only through the artifact store (`artifacts/`), never directly +> with other skills. + +## Contract + +| Field | Value | +|-------|-------| +| Reads | `artifacts/flows-<feature>.md`, `reference/screen-registry.csv`, `reference/nav-lanes.json`, `artifacts/prototype/` (hook scan), `artifacts/traceability-<feature>.md`, `artifacts/deliverable-*/handoff-*.md`, the Figma design file, `machine_state` | +| Writes | `artifacts/navgraph.json`, `artifacts/navmap-report.md`, `artifacts/flow-visualization-<scope>.md`, and the Figma flow sections / cross-feature map / overview page | +| Depends on | `flow-generation` (graphs exist) **and** `user-review` = `approve` for every flow being mapped | +| Approval gate | **Developer Handoff Gate** — blocks `FINAL_OUTPUT` | +| Retry ceiling | §6 flow-heavy **3**, then back-transition to `FLOW_GENERATION` | +| Next states | `FINAL_OUTPUT` (normal) / `FLOW_GENERATION` (a route exists in the registry that no flow graph ratified) / `REVISION` (registry and prototype disagree about a route) / `FLOW_VISUALIZATION` (self-loop, sync or connector fix) | + +## Purpose + +Generate the navigation visualization inside the design file so the design is +**ready for development**, not merely visually complete. + +## Why this is not STATE 05 + +`FLOW_GENERATION` and this state both hold graphs, and they are not the same +object. + +| | STATE 05 · `FLOW_GENERATION` | STATE 12 · `FLOW_VISUALIZATION` | +|---|---|---| +| Node | a *state the user is in* | a *frame in the design file* | +| Question | is this flow correct? | can a developer build from this file without asking? | +| Screens | deliberately screen-free | screen-only — a node with no frame is a finding | +| Truth | ratified by review of the prototype | derived from the registry, checked by exit code | +| When | before any screen is named | after the approval gate, before the freeze | + +STATE 05 rules what the flow *is*. STATE 12 proves the design file *says so*, to +somebody who was not in the room. A flow graph can be perfect and still hand off +badly: the extraction run shipped eight per-flow map pages and still could not +answer *"which screens does the home screen reach, and which reach it"* without a +person reading eleven documents. + +## Processing steps + +1. **Derive** the navigation graph from the registry — `tools/navgraph.mjs`. +2. **Reconcile** the derived graph against `flows-<feature>.md`. Registry routes + with no ratified edge, and ratified edges with no registry route, are + findings, not merge candidates. +3. **Lay out** one Figma Section per journey, screens left → right on an 8pt + grid, branches vertical, merges reconnecting cleanly. +4. **Draw** connectors, styled by class, each carrying its trigger / action / + condition label. +5. **Place** decision nodes at every branch, with mutually exhaustive labels + carried over from the flow graph's guards. +6. **Stamp** screen metadata on every frame (W6). +7. **Generate** the enterprise layers E1–E7 (swimlanes, cross-feature map, + heatmap, deep links, state machines, developer annotations, overview page). +8. **Validate**, then present the report — not the picture — at the gate. + +## Method (hardened) + +Each rule below was written by something that went wrong at, or just past, +handoff. Codes are cited from reports and gate records — index in +[`docs/method-rules.md`](../../docs/method-rules.md). + +### W1 — Derive the graph; never draw it + +Every connector in the file traces to a cell in `reference/screen-registry.csv`. +The derivation is a tool with an exit code, so "the map matches the registry" is +a check rather than a claim: + +```bash +node tools/navgraph.mjs --fail-on major +# → artifacts/navgraph.json (nodes, edges, heat, states, deep links, findings) +# → artifacts/navmap-report.md +``` + +Paths come from `toolkit.config.json`; the registry it reads is +`paths.registry`. A connector drawn by hand is an assertion nobody can re-check. If a route +belongs in the map and not in the registry, the fix is to fix the registry. + +### W2 — One Section per journey, never per feature + +``` +FLOW-001 • New User Onboarding +FLOW-002 • Existing User Login +FLOW-003 • Password Reset +``` + +Section name format is `FLOW-XXX • Journey Name`. Journeys do not share a +Section, because the reason to open a Section is to follow one path end to end. +A Section named after a *feature* silently becomes a bucket, and a bucket +answers no question. + +### W3 — Layout is a contract, not taste + +- Screens ordered left → right in traversal order. +- 240–320 px between frames, uniform within a Section. +- Everything on the 8pt grid. +- Branches descend vertically from their decision node; merge points reconnect + to the main line rather than crossing it. + +A reviewer scanning right is reading the happy path. That only holds if the +ordering is enforced, so it is checked (**V4**), not assumed. + +### W4 — Arrow style carries meaning, and the legend ships in the file + +| Class | Style | Means | +|---|---|---| +| Primary navigation | solid 2 px, arrow head | the ratified happy route | +| Alternative path | dashed | a ruled non-default branch | +| Error / failure | red dashed | a route taken only on failure | +| Modal / sheet | curved | overlay, not a view push | +| External link | dotted | leaves the app | + +Without a **Flow Legend** frame in the same file, four line styles are +decoration. The legend is part of the output, not documentation about it. + +### W5 — In a Design file, a connector is a vector and it does not reflow + +Figma's connector object — the one that re-routes when a frame moves — is +**FigJam**. In a Design file the arrows are vectors: move a frame and the arrow +stays where it was, still looking correct. This is the single most dangerous +property of the artifact, because a stale arrow is indistinguishable from a +fresh one. + +Two consequences, both binding: + +1. Connectors are **regenerated wholesale** from `navgraph.json` on every sync. + They are never hand-patched — a hand patch is a fact that exists in exactly + one place. +2. When a journey is large or volatile enough that regeneration is expensive, + the auto-routing copy belongs in **FigJam** (`generate_diagram` / + `get_figjam`), and the Design file carries the frames. `navgraph.json` stays + the authority for both. + +`use_figma` writes require the `/figma-use` skill loaded first — mandatory, +every call, no exceptions. + +### W6 — Every frame carries its own metadata + +Seven fields, on the frame, in the file: + +``` +Screen ID · Screen Name · Route · Feature · Flow · Version · Status +``` + +`Version` is the prototype version the frame was rendered from +(`proto-<feature>-NN`), and `Status` is the registry status. A frame that cannot +say which bytes it depicts cannot be checked against them — which is exactly how +Study's Figma page drifted four revision rounds behind the prototype (R5–R8) and +nothing detected it. + +### W7 — Sync is triggered by a hash, not by memory + +Whenever a screen is renamed, moved, deleted, added, or re-routed, the map is +out of date. The trigger is mechanical: `navgraph.json` records the registry it +was derived from, and a re-derivation whose edge set differs from the committed +one **is** the sync signal. On that signal: + +1. Regenerate connectors (W5). +2. Re-lay the Section (W3). +3. Refresh decision nodes and flow labels. +4. Re-run E2/E3 (a new edge changes the cross-feature map and the heatmap). +5. Record the change in the requirements document and in + `flow-visualization-<scope>.md`. + +"We updated the Figma" is not a sync record. A diff of the edge set is. + +### W8 — A boundary is a dated claim + +`skills/05`'s `⟂` boundary node is correct **when written** and silently wrong +the moment the owning flow ships. The extraction run carried **eleven live boundary +call sites** routing to a placeholder long after every destination flow existed. + +In this state the equivalent is a cross-feature port drawn as external when the +target is now a real frame in the same file. So: every boundary port is +re-derived from `navgraph.json` at each sync, and the boundary table records the +**date** its status was last checked. A status with no date is not a status. + +### W9 — Render-backed frames are fine here; state variants are not optional + +This file's 48 screens are **render-backed images, not component-decomposed +vector designs**. For navigation mapping that is acceptable — connectors attach +to the frame, and the frame is the node. + +What is *not* optional is that every state a screen can be in exists as its own +frame. E5 attaches a state machine to a screen; if `loading` and `error` live +only inside the prototype, the state diagram has nothing to point at, and the +developer reads the map as "this screen has one state". The delivery pass built +93 frames for 48 screens precisely because of this. + +### W10 — The gate passes on the report, not on the picture + +A screenshot of a flow map is persuasive and proves nothing. What is presented +at the Developer Handoff Gate is `navmap-report.md` plus the tool's exit code, +with every finding either cleared or carrying a named waiver and a rider debt +item (`skills/11` P6). A picture that looks right over a report that says +`2 blocking` is the exact failure this state exists to prevent. + +## Enterprise extensions + +E1–E7 are not optional garnish; each one answers a question the base map cannot, +and each is **derived** by the same tool that derives the edges. An extension +that has to be maintained by hand is an extension that goes stale — so where the +data does not exist, the extension reports its absence instead of inventing it. + +### E1 — Swimlane layout (Customer / Admin / System / API) + +Within a Section, frames are banded into horizontal lanes by the actor that +drives the transition. Lane order is fixed top → bottom so lanes read the same +across every Section: `customer · admin · system · api`. + +**Derivation.** The registry has no actor column, so lanes come from the lane file +named in `toolkit.config.json` → `paths.lanes`. Unassigned screens are reported +(`N8`), never guessed into a lane, because a wrong lane reads as a ruling about +who owns a screen. + +**A single-actor product is the honest degenerate case**: every screen in +`customer`, with `admin`, `system` and `api` declared and empty. That was the +extraction run's output, and it is *why* system/API attribution is carried at the +**edge** level by E6's annotation columns rather than by node lanes — an +auto-advance splash and a payment webhook are properties of the *transition*, not +of the screen. + +For multi-actor products the same file scales: assign back-office screens to +`admin`, timer/daemon-driven surfaces to `system`, and service-mediated steps to +`api`, and the layout engine bands them without any other change. + +### E2 — Cross-feature flow mapping + +The base map shows a journey. This shows the **seams** — every edge whose source +and target live in different features, e.g. `Login → Transfer → Notification`. + +**Derivation.** `navgraph.json.crossFlow`, computed from the registry. + +**Expect roughly half the edge set to cross a feature boundary** — it was 46 of +100 on the extraction run. That is precisely the half no single flow document +owns. Output: + +- a dedicated **`🗺 Cross-Feature Map`** page, features as nodes, edge weight = + number of screen-level routes; +- a **boundary port** on each Section for every inbound and outbound cross-flow + edge, naming the owning flow and the date its status was checked (W8). + +This is the machine version of `skills/05`'s `⟂` node, and it is what would have +caught the stale-boundary class: a port whose target is now a real frame in the +same file cannot keep rendering as external, because the derivation says +otherwise. + +### E3 — Navigation heatmap + +**Derivation.** In-degree per screen, plus the count of *distinct source +features* — a screen reached six times from one feature is a busy screen; a +screen reached from six features is a hub, and hubs are where regressions land. + +Rendered as a three-step fill ramp on the frame chrome, **with the raw numbers +printed** — a colour with no number is a vibe. The handoff consumes the top rows +directly: hub screens get the caching, the back-stack rules and the regression +budget. + +On the extraction run the top screen carried **11 inbound routes from 8 +features** — that is the screen whose back behaviour must be specified before +build starts, not during it. + +**Heat is measured, never assigned.** A designer's sense of which screen is +important is exactly the input this extension exists to replace. + +### E4 — Deep-link visualization + +Each frame carries the URL that drives it, so QA and developers can reach the +state directly instead of walking the flow. + +**Derivation.** The tool scans the prototype pages for the query hooks each page +actually reads (`?view`, `?state`, `?lang`, …) — the hooks are read **out of the +implementation**, not out of a doc that claims them. + +On the extraction run **8 of 11 flow pages exposed hooks; three exposed none at +all** (`N9`, major ×3). Those three could not be re-driven into a state after +handoff — a reviewer could not *open* an error screen, only navigate to it. + +That is worth stating precisely, because the tracked debt item recorded "no +deep-link hook" for **one** flow. The mechanical scan found the same defect in +**three**. A finding scoped to one flow was read as scoped to one flow, and it was +not — `skills/05`'s *scoped claim read as global* rule, running in the other +direction. + +### E5 — State-transition diagrams + +Per screen: `Empty → Loading → Success → Error`, drawn as a compact state +machine attached under the frame, with the trigger on each edge. + +**Derivation.** The registry's `states` column, one machine per screen. + +**Expect the vocabulary to be the blocker, not the diagram.** On the extraction +run the registry carried **59 distinct free-text state labels across 48 screens, +49 of them outside any canonical set** — including *three* spellings of "empty for +a new user". Each was locally sensible. The set was not a state machine, and no +tool could tell whether two labels meant one concept or two. + +So the rule is ordering, not effort: + +1. Normalize to a **closed vocabulary**, with the specific case as a + **qualifier**, not a new label: `canon` or `canon{qualifier}` — + `error{invalid-number}`, `empty{new-user}`. +2. Then generate. Generating first freezes 59 private vocabularies into a + deliverable. + +The vocabulary, the qualifier rule and the full original → normalized mapping live +in the vocabulary file (`toolkit.config.json` → `paths.vocabulary`; start from +[`templates/state-vocabulary.md`](../../templates/state-vocabulary.md)). +`tools/navgraph.mjs` enforces both the term set (`N11-state-vocab`) and the syntax +(`N11-state-syntax`), and `tools/stategraph.mjs` enforces the term set again +(`S1-vocab`) over the authored edge set. Both import `CANON_STATES` from +`tools/config.mjs` — **one definition, two enforcers**. Adding a term is an edit +to that constant plus the justification in the vocabulary file; there is no third +copy to keep in step. On the extraction run 58 qualified labels resolved to 12 +canon terms with **0 findings** — and the originals were preserved in the mapping +table, so the rewrite lost nothing. + +Two rules the normalization pass produced: + +- **The qualifier is kept, never dropped.** `error{wrong-otp}` and + `error{unchecked-terms}` are different screens' different recoveries. +- **Adding a canon term costs a justification**, written into the vocabulary + file. `confirm` and `filtered` earned their place because folding them into + `happy` would have been a false statement about the screen; a term only one + screen would ever use is a qualifier, not a canon term. + +What building the layer added to the rule: + +- **The node set is derived; the edge set is authored *with evidence*.** The + registry owns which states exist (`tools/stategraph.mjs` fails the run if a + machine adds or drops one). Transitions cannot be derived — they live in the + prototype's control flow — so each one carries `evidence` as `file:line` and a + `kind` (`user` · `system` · `entry` · `data`), and the tool checks the cited + line exists in the frozen bytes. An unevidenced arrow is the failure mode this + whole layer exists to avoid: it looks like a spec and is a guess. +- **Proving a hook is *read* is not proving the state is *shown*.** `stategraph` + greps the page for the query parameter; `tools/stateprobe.mjs` then drives every + hook URL headlessly and asserts the active view is **computed-visible** with ink + on it — the M1 rule, and the corollary that *a hook which seeds state is not a + hook that shows it*. The first probe run on the extraction set reported 37 + failures and **every one was the harness** (an offline webfont and a favicon 404 + counted as app errors, a node threshold tuned to a busy screen failing + correctly-sparse empty states, and two hooks naming a fixture id the catalogue + does not contain). Corrected, not waived. +- **Three node flags carry what a plain diagram would hide.** `entry-only` (real, + but only ever built on arrival — no in-screen path), `terminal` (no outbound + change by design; the way out is leaving the screen), and **`NOT IMPLEMENTED`**, + drawn dashed: the registry declares the state and the frozen bytes never render + it. Seven of 118 states were dashed on the extraction run. Dropping them would + have made the deliverable agree with itself by deleting the disagreement. +- **The probe measures id drift instead of asserting it.** Reading the prototype's + own screen-id readout at every hook produced 11 observations where the registry + id and the printed id differ — confirming one known conflict and opening the same + class on a second flow. Recorded in `id_conflicts`, **not reconciled**: + renumbering is a registry decision. + +Validation codes: `S0` machine exists per registry screen · `S1` node set == +registry (and still vocabulary-legal) · `S2` initial declared and real · `S3` +endpoints + trigger kinds · `S4` evidence resolves to a real line · `S5` hook +parameter actually read by the page · `S6` reachable from initial or explicitly +`entry_only` · `S7` outbound or `terminal` · `S8` registry ↔ prototype id drift · +`S9` declared-but-unbuilt, with the absence evidenced. + +### E6 — Developer annotations + +Each connector carries a four-field annotation, and each frame a two-field one. +This is the layer that turns a diagram into a spec. + +| Field | On | Values | Source | +|---|---|---|---| +| `nav` | edge | `push` · `replace` · `modal` · `sheet` · `tab` · `back` · `deep-link` | flows-*.md transitions table | +| `anim` | edge | the named motion preset, or `none` | ui-plan motion spec | +| `api` | edge | the call this transition triggers, or `none` (simulated) | data-screen contract | +| `guard` | edge | the flow graph's guard expression | flows-*.md | +| `auth` | frame | `guest-ok` · `auth-required` · `premium` | registry states + flows | +| `perm` | frame | OS permission the screen needs, or `none` | ux-plan | + +Two rules make this survivable: + +- **`UNKNOWN` is a legal value and a guessed value is not.** An `api` field filled + with a plausible endpoint is worse than an empty one, because the developer will + build it. Every `UNKNOWN` is counted in the report. +- **Annotations cite, they do not restate.** The field carries the value *and* the + artifact it came from. On the extraction run every `api` value read + `none (simulated)` — no network call existed anywhere in the prototypes — and + saying so in the field was the single most useful thing this layer did for the + receiving team. + +Built with `tools/annotate.mjs` against the annotation spec named in +`toolkit.config.json` → `paths.edgeAnnotations`. What building it added to the +rule: + +- **Split the six fields by who owns the answer, exactly as E5 splits nodes from + edges.** `api` and `anim` are **derived** — a re-run sweep, and the CSS the page + declares. `nav` and `guard` are **authored with evidence**, because they live in + the control flow: each carries the `file:line` of the call site and the tool + resolves it against the frozen bytes. A citation that lands past the end of the + file, or on a line that has since gone blank, is a finding — that is what makes + the annotation survive the next revision instead of quietly aging. +- **Re-run the sweep; never trust the recorded claim.** The `api` column is only + worth reading because the tool greps for `fetch` / `XMLHttpRequest` / `WebSocket` / + `sendBeacon` / `EventSource` itself on every run and fails (`E11`) if the column + says `none (simulated)` and the sweep disagrees. The most valuable column in this + layer was the one where every value is identical — and it is only valuable + because it is *measured* each time. +- **`nav` is the field that finds the missing routes.** Assigning a kind forces + the question *which control does this?*, which `navgraph` never asks — it derives + routes from the registry. On the extraction run that surfaced **four registry + routes with no call site at all** (three previously unrecorded) and one new + class: **`hook_only`**, a route that exists as a URL hook with no in-screen + control behind it. Navigable by QA, unreachable by a user. "Navigable" and + "implemented" are different claims and the annotation has to distinguish them. +- **State the value the bytes carry, not the value the plan asked for.** The plan + specified a 280 ms view push; the build shipped 260 ms, and four files shipped + none at all. Annotating the plan's number would have produced a document that is + wrong in exactly the way a developer cannot detect. +- **Hash the drawing against the spec.** After the page is drawn, read its rows + back out of the design file and hash them against `annotations.json` — identical + signature, or the page and the artifact disagree. A picture that has drifted from + its source is worse than no picture, and W5 already says connectors do not + reflow, so prove the page says what the artifact says rather than asserting it. + +Validation codes: `E0`/`E1` missing / blank field · `E2` uncited value · `E3` +value outside the closed set · `E4` citation does not resolve in the frozen bytes · +`E5`/`E6`/`E7` duplicate / uncovered / orphan edge · `E8` `nav` = `UNKNOWN` (no call +site) · `E9`/`E10` frame coverage · `E11` the `api` claim vs the re-run sweep · +`E12` an `anim` naming an animation the cited file does not declare · `E13` +`hook_only`. + +### E7 — Auto-generated flow overview page (for PM and QA) + +One page, generated last, that nobody has to assemble by hand: + +``` +🗺 Flow Overview +├── Counts <n> screens · <n> edges · <n> flows · <n> cross-feature +├── Coverage every registry screen → its Section + frame link +├── Heatmap the E3 table, sorted +├── QA paths every canon entry path, each with its deep-link URL +├── Findings navmap-report.md's table, verbatim, with waivers +├── Legend the W4 arrow classes + the E1 lane order +└── Provenance registry sha · navgraph run · prototype versions · date +``` + +The **Provenance** block is what makes the page checkable a month later, and it +is the block that gets dropped first. It ships or the page does not. + +## Output + +### `artifacts/navgraph.json` + `artifacts/navmap-report.md` + +Machine-derived, regenerated, never hand-edited. `navgraph.json` is the +authority every other output in this state is generated from. + +### `artifacts/flow-visualization-<scope>.md` — the state's record + +```markdown +--- +artifact: flow-visualization +version: navmap-<scope>-NN +produced_by: flow-visualization +reads_versions: { screen-registry.csv: <sha>, flows-<feature>.md: <version>, prototype: proto-<feature>-NN } +scope: <the flows this map covers — stated as scope, per skills/05> +figma: { file: <key>, pages: [<name · node-id>] } +gate: { developer_handoff: granted|pending|waived, date: <date> } +--- + +# Navigation Map — <scope> + +## Sections built +| Section | Journey | Screens | Edges | Figma node | + +## Findings at gate +| Severity | Code | Subject | Status (cleared / waived + rider debt) | + +## Boundary status (W8) +| Port | Owning flow | Status | Checked on | + +## Sync record (W7) +| Date | Trigger | Edge-set delta | Actions taken | + +## Extensions +| Ext | Status | Evidence | +| E1 swimlanes | <n>/<n> screens laned | reference/nav-lanes.json | +| E3 heatmap | derived | navgraph.json.heat | +| E4 deep links | <n>/<n> flows addressable | navgraph.json.deepLinks | +``` + +### In Figma + +Per journey: a `FLOW-XXX • Journey Name` Section holding frames, connectors, +decision nodes, branch/decision labels, entry and exit markers, lane bands, and +the per-frame metadata + annotation blocks. Plus, once per file: the +`🗺 Cross-Feature Map` page, the `🗺 Flow Overview` page, and the Flow Legend. + +## Validation rules (machine-checkable on output) + +- **V1:** Every Screen Contract / registry entry has a frame in a Section. +- **V2:** Every navigation path in `navgraph.json` exists as a connector. +- **V3:** No orphan screens — `navgraph.json` reports **0** `N2-orphan`. +- **V4:** No broken connectors: every connector's endpoints are frames that + still exist, at the coordinates the connector was generated against (W5). +- **V5:** All branches terminate — every decision node's branch set is exhaustive + and every branch reaches a frame or a justified terminal. +- **V6:** Entry and exit screens identified; every Section has ≥1 marked entry. +- **V7:** Section names follow `FLOW-XXX • Journey Name`. +- **V8:** Connector directions match `navgraph.json` edge direction. +- **V9** *(E1)*: Every screen has a lane, or the unlaned set is named in the + report — `N8` is cleared or waived, never absent. +- **V10** *(E4)*: Every flow's deep-link addressability is reported; a flow with + no hooks is a **major** finding carrying a rider debt item, not an omission. +- **V11** *(E5)*: State labels are drawn from the closed vocabulary, with case + detail as qualifiers. `N11` cleared or waived with the count stated. +- **V12** *(E6)*: No annotation field is blank. `UNKNOWN` is legal and counted; + blank is a failure. +- **V13** *(W7)*: The committed `navgraph.json` re-derives byte-identically from + the current registry. A drifted derivation means the map is stale, whatever + the picture looks like. + +## Exit conditions + +`node tools/navgraph.mjs --fail-on major` exits **0**, or every remaining +finding carries a granted waiver with a rider debt item and a closing condition +(`skills/11` P6). V1–V13 pass. The Developer Handoff Gate is `granted`. + +## Failure recovery + +- **V2 / V3 failure — a route in the registry that no flow graph ratified** → + back-transition to `FLOW_GENERATION`. Do not draw the edge here; drawing it + ratifies it, and this state has no authority to rule a branch (`skills/05`, + *branch invented, not ruled*). +- **Registry and prototype disagree about a route** — on the extraction run the + registry claimed an edge that did not exist, because the destination screen + re-implemented the control inline instead of routing → `REVISION`. Exactly one of + the two is wrong and this state cannot tell which; routing it to the state that + owns the fault is `skills/10` R2. +- **V4 failure — connectors detached after frames moved** → self-loop: + regenerate from `navgraph.json`. Never nudge an arrow back into place. +- **V13 failure — derivation drifted** → re-run the derivation, re-lay the + affected Sections, and record the edge-set delta in the sync table. A sync + with no recorded delta did not happen. +- **Retry ceiling 3.** A persistent unreachable screen means the registry and + the ratified flows disagree at the root → `FLOW_GENERATION`. + +## Approval gate — Developer Handoff Gate + +Developer Handoff cannot pass until: + +- navigation visualization complete (V1, V2, V6, V7), +- screen contract synchronized (V13), +- connectors validated (V4, V8), +- Sections organized (V3, V5), +- no broken navigation (tool exit 0 at `--fail-on major`, or waivers), +- flow diagrams up to date (W7 sync record present and dated). + +Grantor: the user. On deny: the denial names the failing rule, and the state +self-loops or back-transitions per Failure recovery. The gate record goes into +`flow-visualization-<scope>.md` frontmatter, and — per `skills/11` P1 — it names +the **versions it saw**: the registry sha, the `navgraph.json` run and the +prototype versions the frames were rendered from. A gate that cannot name its +bytes is the defect one real gate record shipped — it dropped `reads_versions` +entirely, which is the exact field delivery is checked against. + +Status on pass: **READY FOR DEVELOPMENT**, scoped to the flows named in `scope` +— and scoped in the claim itself, never as a bare "handoff ready". + +## What a first derivation finds + +The first run is not tool noise. On the extraction run it opened at **2 blocking · +8 major · 52 advisory**, and *every finding was a real defect in the registry*. +The classes, because they recur: + +| Code | What it means | Why it happens | +|---|---|---| +| `N2b-inbound-only-declared` | A screen is reachable in the product and undrawable from the registry — the only evidence of the route lives on the receiving screen. | `entry_from` was filled in and `navigates_to` was not. | +| `N3-asymmetric` | A forward edge is missing. | Verify against the flow graphs **and** the prototype before touching the cell. | +| `N3b-backedge` | `entry_from` names a screen that no longer routes here, or omits one that now does. | `entry_from` is written when a screen is designed and never updated when a *later* flow starts routing to it. Advisory — the forward edge is authoritative and the map draws correctly — and worth fixing anyway, because `entry_from` is what a developer reads to answer "who can send me here". | +| `N10-unparsed` | A registry cell carries prose where an id belongs. | Hand-editing. | +| `N11-state-vocab` | State labels outside the closed set. | See E5 — normalize before you generate. | + +Two numbers worth carrying: + +- Repairing **three cells** added **six edges** and **five cross-feature routes**. + A navigation model can be 6% wrong and look complete. +- The most instructive single finding was a boundary that had been **promoted to a + real handoff in the code and never written back to the registry** (W8) — caught + by derivation, invisible to reading. + +Before E6 ran, **43 of 106 edges carried a label** and the other 63 were +unlabelled routes. Assigning the E6 values closed that gap *and* found four more +routes with no call site at all, plus one addressable only by URL. + +## Recorded failure modes + +| Class | What happened | Rule | +|---|---|---| +| **The picture outlived the truth** | One flow's design-file page went out of sync at revision 5 and stayed wrong through revision 8 — four separate rebuilds missing — while the page still looked complete. Another carried a frame showing four rows against a screen rebuilt to six categories. | W6, W7, V13 | +| **A boundary that stopped being a boundary** | Eleven live call sites still routed to the placeholder screen after every destination flow had shipped. Correct when written, silently wrong once the owning flow existed. | W8, E2 | +| **A route with no edge behind it** | The registry claimed an edge the code does not implement — the destination screen re-implements the control inline instead. Two implementations of one control, synced by convention. **The E6 pass found three more of the same class**, none of them visible to `navgraph`, because deriving a route from the registry never asks whether a control exists behind it. | V2, E6 `E8`, Failure recovery | +| **Navigable read as implemented** | One route is real and reachable — **by URL**. The control the registry names it after is a non-interactive element. A QA hook proves a state can be *shown*, never that a user can *get there*. | E6 `hook_only` / `E13` | +| **A destination that differs from the one named** | A route carried no query string, so it landed on a feature's home screen rather than the checkout step the registry names. The edge exists; only the endpoint is wrong, which is the hardest version to see. | E6 `nav` evidence, `skills/08` M6 | +| **A gap recorded at the wrong scope** | A debt item recorded "no deep-link hook" for one flow. The mechanical scan found the same defect in two more — the finding was true and its scope was not. | E4, `skills/05` scoped-claim rule | +| **A vocabulary that cannot compose** | 59 distinct state labels across 48 screens, including three spellings of "empty for a new user". Each was locally sensible; the set was not a state machine. Normalized into 12 canon terms + qualifiers, originals preserved in the mapping table. | E5, V11 | +| **Frames that depict unnamed bytes** | Design-file frames carrying no prototype version cannot be checked against the prototype, so drift is undetectable rather than merely undetected. | W6 | +| **Green picture, red report** | This state's whole risk: a flow map that renders beautifully over a derivation reporting broken routes. The gate reads the report. | W10, V13 | + diff --git a/design-toolkit/skills/README.md b/design-toolkit/skills/README.md new file mode 100644 index 0000000..eada7e0 --- /dev/null +++ b/design-toolkit/skills/README.md @@ -0,0 +1,92 @@ +# `skills/` — the twelve states + +[← Repository root](../README.md) · [Workflow Guide](../WORKFLOW_GUIDE.md) · [Spec](../docs/workflow.md) + +--- + +## Purpose + +One folder per workflow state. Each is a self-contained Claude Skill with a typed contract: what it reads, what it writes, what must be true to leave it, and what to do when it fails. + +**The states are here. The state machine is not.** No skill holds `machine_state`, evaluates a guard, or decides what happens next — that is the orchestrator's job. A skill runs when asked, does one state's work, writes its artifact, and stops. + +| Folder | State | Writes | Gate | +|---|---|---|---| +| [`01-requirement-analysis/`](01-requirement-analysis/) | `REQUIREMENT_ANALYSIS` | `requirements-<f>.md` | Clarification (conditional) | +| [`02-research/`](02-research/) | `RESEARCH` | `research-<f>.md` | — | +| [`03-product-review/`](03-product-review/) | `PRODUCT_REVIEW` | `product-review-<f>.md` | **Direction Approval** | +| [`04-ux-planning/`](04-ux-planning/) | `UX_PLANNING` | `ux-plan-<f>.md` | — | +| [`05-flow-generation/`](05-flow-generation/) | `FLOW_GENERATION` | `flows-<f>.md` | — | +| [`06-ui-planning/`](06-ui-planning/) | `UI_PLANNING` | `ui-plan-<f>.md` | Extension Note (informational) | +| [`07-prototype/`](07-prototype/) | `PROTOTYPE` | `prototype/`, `traceability-<f>.md` | — | +| [`08-self-audit/`](08-self-audit/) | `SELF_AUDIT` | `audit-report-<f>.md` | — | +| [`09-user-review/`](09-user-review/) | `USER_REVIEW` | `review-record-<f>.md` | **Primary User Approval** | +| [`10-revision/`](10-revision/) | `REVISION` | `revision-log-<f>.md` | Conflict Mini-Gate (conditional) | +| [`11-final-output/`](11-final-output/) | `FINAL_OUTPUT` | `deliverable-<f>/` | — (gated by 09) | +| [`12-flow-visualization/`](12-flow-visualization/) | `FLOW_VISUALIZATION` | `navgraph.json`, `navmap-report.md`, design-file pages | **Developer Handoff** | + +> **12 is numbered by authoring order, not machine order.** It sits on the `USER_REVIEW (approve) → FINAL_OUTPUT` edge and runs before 11 whenever `handoff_required` is true. + +## Inputs + +Whatever each state's contract names — always files in [`artifacts/`](../artifacts/) or [`reference/`](../reference/), plus `machine_state`, plus the raw brief in STATE 01's case. + +**Skills never read each other's internals.** If STATE 06 needs something STATE 05 knows, it reads `flows-<feature>.md`. + +## Outputs + +One artifact per state, written to [`artifacts/`](../artifacts/) with conforming frontmatter. Plus, for STATE 06, the colour allowlist written into `toolkit.config.json`; and for STATE 11, the terminal record in `state/machine_state.yaml`. + +## The anatomy of a `SKILL.md` + +Every one has the same eight sections, and the second half is the part that matters: + +| Section | What it carries | +|---|---| +| **Contract** | Reads · Writes · Depends on · Approval gate · Retry ceiling · Next states | +| **Purpose** | The single decision this state owns | +| **Processing steps** | *What* to do | +| **Hardened method** | *How* — each rule written by a defect that shipped, with a citable code | +| **Output** | The exact frontmatter and body shape | +| **Validation rules** | `V1`–`V4` from the spec; `V5+` project-hardened | +| **Exit conditions / Failure recovery** | What must hold to leave, and where to go when it does not | +| **Recorded failure modes** | The evidence for the hardened method | + +The `README.md` beside it is a one-screen orientation: the contract table, plus **the single rule that matters most in that state**. + +## Examples + +**Invoking a state.** One state per request. The agent does that state and stops. + +``` +Run STATE 04 ux-planning from skills/04-ux-planning/SKILL.md. +Read artifacts/requirements-checkout.md, artifacts/research-checkout.md +and artifacts/product-review-checkout.md. +Write artifacts/ux-plan-checkout.md. +``` + +**Checking a contract before you run.** Open the skill's `README.md` — the contract table tells you whether the inputs exist and whether an upstream gate is still `pending`. + +**Citing a rule from a log:** + +```markdown +Deep-link hooks added for all 6 states per B2; recorded in traceability-checkout.md. +Superseded card component stripped per B7 — 4 selectors, 2 string keys, 1 handler. +``` + +## Best practices + +- **Run one state per request.** The stopping places are the point. A skill that runs ahead removes the checkpoint where you would have caught the problem cheaply. +- **Do not work around a missing input.** A missing artifact is a **back-transition** to the state that owed it. "The spec does not say" is a routing signal, not a licence to invent. +- **Read the Recorded failure modes before running a state for the first time.** They are short, and each one is a defect you would otherwise reproduce. +- **A `V5+` rule is not optional.** `V1`–`V4` are the specification; `V5+` exist because a defect passed `V1`–`V4`. +- **Never edit a skill to make a rule easier.** If a rule is wrong, the fix is a new recorded defect and a spec change — in that order. +- **Keep skills stateless.** If a skill starts wanting to remember something between runs, that is machine state, and it belongs in `state/machine_state.yaml`. +- **The description frontmatter matters.** It is what makes a skill discoverable by an agent. Keep it specific about *when* to use the skill, not just what it does. + +## Related + +- [`WORKFLOW_GUIDE.md`](../WORKFLOW_GUIDE.md) — all twelve states with durations, common mistakes and cross-references +- [`docs/workflow.md`](../docs/workflow.md) — the specification each skill implements +- [`docs/method-rules.md`](../docs/method-rules.md) — every hardened rule, indexed by code +- [`ARTIFACT_FLOW.md`](../ARTIFACT_FLOW.md) — what each skill's output is and who consumes it diff --git a/design-toolkit/state/.gitkeep b/design-toolkit/state/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/design-toolkit/state/README.md b/design-toolkit/state/README.md new file mode 100644 index 0000000..2350057 --- /dev/null +++ b/design-toolkit/state/README.md @@ -0,0 +1,134 @@ +# `state/` — the machine's own record + +[← Repository root](../README.md) · [Architecture § 3](../ARCHITECTURE.md#3--the-orchestrator) · [Contracts spec](../docs/artifact-contracts.md) + +--- + +## Purpose + +One file: `machine_state.yaml`. + +**It is not an artifact.** Artifacts are produced by states and consumed by later states; this is the machine's record of itself — where it is, what has been approved, how many loop iterations have been spent, and what has been frozen. + +Completion rule 1 is defined over this file. So is the live-reload behaviour of the review server. + +## Inputs + +Seeded from [`templates/machine_state.yaml`](../templates/machine_state.yaml): + +```bash +cp templates/machine_state.yaml state/machine_state.yaml +``` + +Written by the **orchestrator** — a person, an agent, or (roadmap phase 2) a CLI. **No skill writes it.** Skills do one state's work and stop; deciding what happens next is not their job. + +Path is configured in [`toolkit.config.json`](../toolkit.config.json) → `paths.state`. + +## Outputs + +Read by: + +| Reader | What it needs | +|---|---| +| The orchestrator | `current_state`, `entry_count`, `loop_count`, `approvals`, `handoff_required` — to evaluate guards and fire transitions | +| Every skill | its own entry conditions, and whether an upstream gate is granted | +| [`templates/prototype/serve.py`](../templates/prototype/serve.py) | the top-level `current_state` — live reload is active **only** while it is `USER_REVIEW` | +| STATE 11 | `freeze`, `flows`, `completion_check` — the six completion rules are checked and closed here | + +## What it holds + +```yaml +machine_state: + project: <slug> + current_state: <STATE_NAME> + scope: <the feature this run is about> + gate: pending # pending | granted | denied + handoff_required: false # true → STATE 12 runs before FINAL_OUTPUT + blocked_reason: null + last_transition: { from, to, trigger, ts } + entry_count: {} # per-state visit counter → C_RETRY_OK + loop_count: # per-loop counter → C_LOOP_OK + L_CLARIFY: 0 + L_RESEARCH: 0 + L_UX_EDGE: 0 + L_REVISION: 0 + L_AUDIT_FIX: 0 + approvals: # per-gate; resumable + ClarificationGate: pending + DirectionApprovalGate: pending + PrimaryUserApprovalGate: pending + ConflictMiniGate: pending + DeveloperHandoffGate: pending + artifact_versions: {} + flows: [] # one row per feature; `deliverable` names the freeze folder + freeze: {} # sha256 per frozen file + completion_check: # a boolean AND a one-line reason, each + C1_state_is_done: false + C2_approval_scoped_to_final_frozen_versions: false + C3_all_criteria_met: false + C4_audit_pass_on_final_version: false + C5_deliverables_complete: false + C6_no_open_revision_items: false +``` + +## Examples + +**Recording a transition** — written in the same edit as the thing it records: + +```yaml + current_state: SELF_AUDIT + last_transition: + from: PROTOTYPE + to: SELF_AUDIT + trigger: "validation pass — traceability complete, smoke 8/8" + ts: "2026-08-07" + entry_count: { PROTOTYPE: 2, SELF_AUDIT: 1 } +``` + +**Granting a gate:** + +```yaml + approvals: + DirectionApprovalGate: granted # user, 2026-08-07, scoped to pr-checkout-01 +``` + +**Counting a loop, out loud:** + +```yaml + loop_count: + L_REVISION: 2 # of 3 — one more before HALT_BLOCKED + L_AUDIT_FIX: 1 +``` + +**Closing the machine** — in the same edit as the freeze: + +```yaml + current_state: DONE + freeze: + "deliverable-checkout/prototype/checkout.html": "a3f1…" + completion_check: + C1_state_is_done: true # written this edit + C2_approval_scoped_to_final_frozen_versions: true # review-checkout-02 reads_versions = proto-checkout-05 = frozen sha + C3_all_criteria_met: true # traceability: 22 met / 1 waived / 0 unmet + C4_audit_pass_on_final_version: true # audit-checkout-04 ran on proto-checkout-05 + C5_deliverables_complete: true # deliverable-checkout/ + handoff present + C6_no_open_revision_items: true # rev-checkout-03, 0 open +``` + +## Best practices + +- **Write it at decision time, in the same edit as the thing it records.** A record written later is a reconstruction. On the extraction run this file sat **two days and two approval rounds stale** — still reading `current_state: USER_REVIEW`, gate `pending` — while seven flows had been approved and the machine was reporting itself as shipping. Nothing detected it, because nothing was reading the file the completion rule is defined over. +- **Count the loop every cycle.** A ceiling nobody counts is not a ceiling. One flow was recorded at `L_REVISION = 2` and then delivered three more rounds — five against a ceiling of three. +- **A gate reverts to `pending` when approved artifacts change.** That reversion is a consequence of a revision's dispatch; record it in the revision log's dependency order and here. +- **Every completion rule gets a boolean *and* a one-line reason.** `C3: true` with no reason is silence, and silence is what the waiver rules forbid. +- **`designed` and `delivered` are different claims.** A flow's row names the deliverable folder its freeze landed in, or it was not delivered. +- **Do not let a parked flow's nested fields be mistaken for the machine's own.** `serve.py` reads the **first** two-space-indented `current_state`, which is `machine_state`'s own field; parked flows nest deeper. Keep that indentation. +- **Ceilings live in the config, counters live here.** `toolkit.config.json` → `loops` sets the limits; this file records the spend. +- **Commit it.** It is the record the completion rules are defined over. + +## Related + +- [`ARCHITECTURE.md § 3`](../ARCHITECTURE.md#3--the-orchestrator) — what the orchestrator does with this file +- [`WORKFLOW_GUIDE.md`](../WORKFLOW_GUIDE.md) — the entry conditions and ceilings per state +- [`templates/machine_state.yaml`](../templates/machine_state.yaml) — the annotated template +- [`docs/workflow.md`](../docs/workflow.md) §6 retry, §7 loops, §8 completion rules diff --git a/design-toolkit/templates/PROGRESS.md b/design-toolkit/templates/PROGRESS.md new file mode 100644 index 0000000..45b040b --- /dev/null +++ b/design-toolkit/templates/PROGRESS.md @@ -0,0 +1,56 @@ +# PROGRESS — <product> + +_Snapshot: <YYYY-MM-DD>_ + +> The priority tracker. Fixed format, updated **on every flow close and every debt +> change**. Detailed history lives elsewhere (a status log); this file answers one +> question: what is the state of the work right now, and what is the next thing. + +## Alignment snapshot + +| Metric | Value | +|---|---| +| Flows closed | 0 / 0 | +| Screens delivered | 0 / 0 | +| Gates granted | 0 | +| Open decisions | 0 | +| Debt items open | 0 | +| Machine state | `REQUIREMENT_ANALYSIS` | + +## Track A — blocked on someone else + +Items this workspace **cannot** act on alone. Each names who can unblock it and +what the one line would be. + +| # | Item | Blocked on | The one line needed | +|---|---|---|---| + +## Track B — actionable here + +Ordered. The top row is the next thing. + +| # | Item | State it belongs to | Why it is next | +|---|---|---|---| + +## Open decisions + +`o-<id>` items carried forward rather than defaulted. An unruled question that +reaches the prototype as an invented answer is how a placeholder gets frozen into +an approved deliverable. + +| ID | Question | What it blocks | Who can rule | Ships as (the reversible reading) | +|---|---|---|---|---| + +## Debt + +Every waiver rides on a numbered item here, and every item states what closes it. + +| # | Debt | Opened | Rides under | What closes it | Status | +|---|---|---|---|---|---| + +## Loop accounting + +A ceiling nobody counts is not a ceiling. + +| Feature | `L_REVISION` | `L_AUDIT_FIX` | Passes to approval | +|---|---|---|---| diff --git a/design-toolkit/templates/README.md b/design-toolkit/templates/README.md new file mode 100644 index 0000000..5671be0 --- /dev/null +++ b/design-toolkit/templates/README.md @@ -0,0 +1,105 @@ +# `templates/` — artifact shapes + +[← Repository root](../README.md) · [Artifact Flow](../ARTIFACT_FLOW.md) · [Contracts spec](../docs/artifact-contracts.md) + +--- + +## Purpose + +An empty, correctly-shaped starting point for every artifact the pipeline produces and every reference file it reads — with the load-bearing fields marked and the reason each one exists written next to it. + +A template is not decoration. Several of these files carry inline notes recording **why** a field exists, and those notes are the difference between filling a table in and understanding what the table is checked against. + +| Template | Shape for | Produced by | +|---|---|---| +| [`requirements.md`](requirements.md) | `requirements-<f>.md` | 01 | +| [`research.md`](research.md) | `research-<f>.md` | 02 | +| [`product-review.md`](product-review.md) | `product-review-<f>.md` | 03 | +| [`ux-plan.md`](ux-plan.md) | `ux-plan-<f>.md` | 04 | +| [`flows.md`](flows.md) | `flows-<f>.md` | 05 | +| [`ui-plan.md`](ui-plan.md) | `ui-plan-<f>.md` | 06 | +| [`traceability.md`](traceability.md) | `traceability-<f>.md` | 07 | +| [`audit-report.md`](audit-report.md) | `audit-report-<f>.md` | 08 | +| [`review-record.md`](review-record.md) | `review-record-<f>.md` | 09 | +| [`revision-log.md`](revision-log.md) | `revision-log-<f>.md` | 10 | +| [`handoff.md`](handoff.md) | `handoff-<f>.md` inside the deliverable | 11 | +| [`flow-visualization.md`](flow-visualization.md) | `flow-visualization-<scope>.md` | 12 | +| [`prototype/`](prototype/) | the Run Local review player | 07 copies it in | + +### Reference-file templates — copy these into `reference/` + +| Template | Becomes | Owner | +|---|---|---| +| [`screen-registry.csv`](screen-registry.csv) | `reference/screen-registry.csv` | the product — **the spine** | +| [`nav-lanes.json`](nav-lanes.json) | `reference/nav-lanes.json` | STATE 12 (E1) | +| [`state-vocabulary.md`](state-vocabulary.md) | `reference/state-vocabulary.md` | STATE 12 (E5) | +| [`state-machines.json`](state-machines.json) | `reference/state-machines.json` | STATE 12 (E5) | +| [`edge-annotations.json`](edge-annotations.json) | `reference/edge-annotations.json` | STATE 12 (E6) | +| [`audit-plan.json`](audit-plan.json) | `reference/audit-plan.json` | STATE 08, optional | + +### Machine and tracking templates + +| Template | Becomes | Notes | +|---|---|---| +| [`machine_state.yaml`](machine_state.yaml) | `state/machine_state.yaml` | Not an artifact — the machine's own record | +| [`PROGRESS.md`](PROGRESS.md) | wherever you track work | The priority tracker: alignment snapshot, blocked vs actionable, open decisions, debt, loop accounting | + +## Inputs + +None. Templates are static. + +## Outputs + +Nothing directly. They are copied — into `reference/`, into `state/`, or used as the shape a skill writes to in `artifacts/`. + +## Examples + +**Seeding a new product** (the four files every run needs): + +```bash +cp templates/screen-registry.csv reference/screen-registry.csv +cp templates/nav-lanes.json reference/nav-lanes.json +cp templates/state-vocabulary.md reference/state-vocabulary.md +cp templates/machine_state.yaml state/machine_state.yaml +``` + +**Standing up the review player** (STATE 07): + +```bash +cp templates/prototype/{run-local.sh,serve.py,play.html} artifacts/prototype/ +chmod +x artifacts/prototype/run-local.sh +``` + +**Adding the audit plan** when you need passes the state machines cannot express — locale × theme × reduced-motion: + +```bash +cp templates/audit-plan.json reference/audit-plan.json +``` + +**What a load-bearing field looks like in a template.** From `templates/machine_state.yaml`: + +```yaml + # Each gets a boolean AND a one-line reason. `true` with no reason is the + # silence skills/11 P6 forbids. + completion_check: + C1_state_is_done: false # <reason> +``` + +The comment is the rule. Deleting it does not remove the requirement. + +## Best practices + +- **Copy, then fill. Never edit a template in place.** The template is the shape for the *next* product too. +- **Keep the frontmatter.** A field a downstream rule is defined over belongs in frontmatter, not in a body table. `reads_versions` is the specific one a real gate record dropped, and it is exactly what delivery is checked against. +- **Keep the inline notes while you are learning the shape.** They record why a field exists. Strip them once the shape is second nature — not before. +- **Do not remove a table because it is empty.** An empty *Deliberately not changed* table and a missing one are different claims. The empty one says "nothing was left out"; the missing one says nothing at all. +- **Two separators in the registry, and they are not interchangeable.** `states` is comma-separated; `entry_from` and `navigates_to` are pipe-separated. Getting them backwards is reported as `N11-state-syntax`, not silently swallowed. +- **Register every new prototype page in `play.html`'s `FEATURES` array, in the same edit that creates the page.** A flow missing from the sidebar is a flow the user does not review. +- **Improving a template is a contribution.** Improving it by removing a required field is not. + +## Related + +- [`ARTIFACT_FLOW.md`](../ARTIFACT_FLOW.md) — what each artifact is, who consumes it, and which part is load-bearing +- [`docs/artifact-contracts.md`](../docs/artifact-contracts.md) — the naming scheme and the frontmatter contract +- [`templates/prototype/README.md`](prototype/README.md) — the Run Local review player +- [`reference/README.md`](../reference/README.md) — where the reference templates end up diff --git a/design-toolkit/templates/audit-plan.json b/design-toolkit/templates/audit-plan.json new file mode 100644 index 0000000..4bd9d4f --- /dev/null +++ b/design-toolkit/templates/audit-plan.json @@ -0,0 +1,17 @@ +{ + "_note": "STATE 08 — what tools/audit.mjs drives. Optional: with no plan file the harness derives its rows from the hooks in reference/state-machines.json. Write one when you want passes the state machines cannot express (locale × theme × reduced-motion), or when the prototype predates the state machines.", + + "passes": [ + { "name": "base", "query": "" }, + { "name": "alt-locale-dark-rm", "query": "lang=<locale>&mode=dark&rm=1" } + ], + + "screens": [ + { "id": "S-FLOW-01", "label": "S-FLOW-01", "url": "flow.html?view=main" } + ], + + "states": [ + { "label": "flow-empty", "url": "flow.html?view=main&state=empty" }, + { "label": "flow-error", "url": "flow.html?view=main&state=error" } + ] +} diff --git a/design-toolkit/templates/audit-report.md b/design-toolkit/templates/audit-report.md new file mode 100644 index 0000000..c9fef7a --- /dev/null +++ b/design-toolkit/templates/audit-report.md @@ -0,0 +1,56 @@ +<!-- TEMPLATE — audit-report + Written by STATE 08 · full contract: skills/08-self-audit/SKILL.md + Copy into artifacts/ (per-feature name) and fill in. Angle brackets are + placeholders; every heading below is load-bearing for a downstream check. --> + +--- +artifact: audit-report +version: <audit-<feature>-NN> +produced_by: self-audit +reads_versions: + prototype: <proto-<feature>-NN — the exact bytes audited> + requirements.md: <version> + flows.md: <version> + ui-plan.md: <version> + traceability.md: <version> +feature: <feature/flow id> +verdict: pass | fail +--- + +# <audit id> — <feature> — verdict: <PASS | FAIL> + +## Verdict + +<pass|fail> — <N> / <N> acceptance criteria met. <rationale> + +## Method + +<what was actually run: screens driven, runs, assertion count, screenshots +captured, sweeps executed. Name the check class per M1 — computed visibility +and geometry, not DOM presence.> + +## Findings + +| ID | Sev | Finding | Caught by | Status | +|---|---|---|---|---| +| AF-1 | blocker | <defect> | screenshot \| assertion \| sweep | fixed in-loop | +| AF-2 | major | <defect> | <method> | open | +| AF-3 | minor | <defect> | <method> | recorded → debt #N | + +## Conformance matrix + +| AC | Requirement | Met | Evidence | +|---|---|---|---| +| AC1 | <text> | met | <screen + probe or screenshot ref> | +| AC7 | <text> | unmet | <what is missing> | +| AC9 | <text> | waived | <who waived, why, recorded where> | + +## Harness corrections + +<per M3 — probes that failed and turned out to be the instrument's fault, with +the correction made. Recorded, because an uncorrected harness re-reports them +next run.> + +## Known limitations + +<carried to USER_REVIEW for transparent presentation> diff --git a/design-toolkit/templates/edge-annotations.json b/design-toolkit/templates/edge-annotations.json new file mode 100644 index 0000000..5be9f62 --- /dev/null +++ b/design-toolkit/templates/edge-annotations.json @@ -0,0 +1,67 @@ +{ + "_note": "STATE 12 / E6 — developer annotations. Four fields per edge, two per frame. Consumed by tools/annotate.mjs against artifacts/navgraph.json. The load-bearing rule: UNKNOWN is a legal value and a guessed value is not — a blank field fails (V12), and an `api` field filled with a plausible endpoint is worse than an empty one, because the developer will build it.", + + "version": "edge-annotations-01", + "produced_by": "flow-visualization (E6 — developer annotations)", + "date": "<YYYY-MM-DD>", + + "reads": { + "artifacts/navgraph.json": "<sha256>", + "reference/screen-registry.csv": "<sha256>" + }, + + "enums": { + "nav": ["push", "replace", "modal", "sheet", "tab", "back", "deep-link", "UNKNOWN"], + "auth": ["guest-ok", "auth-required", "premium", "UNKNOWN"] + }, + + "rules": [ + "Every edge carries all four fields and every frame both. Blank is a failure (V12); UNKNOWN is legal and counted.", + "Split the fields by who owns the answer: `api` and `anim` are DERIVED (re-run the sweep every time, never trust the recorded claim); `nav` and `guard` are AUTHORED WITH EVIDENCE, each citing the file:line of the call site.", + "State the value the BYTES carry, not the value the plan asked for. Annotating the plan's number produces a document that is wrong in exactly the way a developer cannot detect." + ], + + "edges": [ + { + "from": "S-FLOW-01", + "to": "S-FLOW-02", + "label": "<the trigger, as the registry names it>", + "crossFlow": false, + "nav": { + "value": "push", + "source": "flow.html:366", + "note": "<which control does this, and anything a developer needs about the back stack>" + }, + "anim": { + "value": "none", + "source": "flow.html:64", + "note": "<the motion preset the page actually declares, or none>" + }, + "api": { + "value": "none (simulated)", + "source": "network sweep", + "note": "<re-derived every run; E11 fails if the sweep disagrees with this claim>" + }, + "guard": { + "value": "<the flow graph's guard expression, or UNKNOWN>", + "source": "flows-<feature>.md D1", + "note": "" + } + } + ], + + "frames": { + "S-FLOW-01": { + "auth": { + "value": "guest-ok", + "source": "<file:line of the check, or the artifact that rules it>", + "note": "" + }, + "perm": { + "value": "none", + "source": "ux-plan-<feature>.md:<line>", + "note": "<the OS permission this screen needs, or none>" + } + } + } +} diff --git a/design-toolkit/templates/flow-visualization.md b/design-toolkit/templates/flow-visualization.md new file mode 100644 index 0000000..cdf8765 --- /dev/null +++ b/design-toolkit/templates/flow-visualization.md @@ -0,0 +1,34 @@ +<!-- TEMPLATE — flow-visualization + Written by STATE 12 · full contract: skills/12-flow-visualization/SKILL.md + Copy into artifacts/ (per-feature name) and fill in. Angle brackets are + placeholders; every heading below is load-bearing for a downstream check. --> + +--- +artifact: flow-visualization +version: navmap-<scope>-NN +produced_by: flow-visualization +reads_versions: { screen-registry.csv: <sha>, flows-<feature>.md: <version>, prototype: proto-<feature>-NN } +scope: <the flows this map covers — stated as scope, per skills/05> +figma: { file: <key>, pages: [<name · node-id>] } +gate: { developer_handoff: granted|pending|waived, date: <date> } +--- + +# Navigation Map — <scope> + +## Sections built +| Section | Journey | Screens | Edges | Figma node | + +## Findings at gate +| Severity | Code | Subject | Status (cleared / waived + rider debt) | + +## Boundary status (W8) +| Port | Owning flow | Status | Checked on | + +## Sync record (W7) +| Date | Trigger | Edge-set delta | Actions taken | + +## Extensions +| Ext | Status | Evidence | +| E1 swimlanes | <n>/<n> screens laned | reference/nav-lanes.json | +| E3 heatmap | derived | navgraph.json.heat | +| E4 deep links | <n>/<n> flows addressable | navgraph.json.deepLinks | diff --git a/design-toolkit/templates/flows.md b/design-toolkit/templates/flows.md new file mode 100644 index 0000000..3c49e20 --- /dev/null +++ b/design-toolkit/templates/flows.md @@ -0,0 +1,73 @@ +<!-- TEMPLATE — flows + Written by STATE 05 · full contract: skills/05-flow-generation/SKILL.md + Copy into artifacts/ (per-feature name) and fill in. Angle brackets are + placeholders; every heading below is load-bearing for a downstream check. --> + +--- +artifact: flows +version: flow-<feature>-NN +supersedes: <prior version, if any> +produced_by: flow-generation +reads_versions: { ux-plan-<feature>.md: <version>, requirements-<feature>.md: <version> } +feature: <feature/flow id> +folds_in: [<revision rounds / decisions this version absorbs>] +--- + +# Flows — <feature> + +Node ids = prototype views. `⟂` = flow boundary (another flow's screen, mocked). + +## Canon entry paths + +<the named paths a user actually takes in, one line each — these are what a +reviewer checks the prototype against> + +## F1 — <segment name> (<tasks covered>) + +``` +⟂OTHER-01 ──trigger──▶ [D1 <question>?] + D1 no ──▶ NODE-A ──trigger──▶ NODE-B + D1 yes ──▶ NODE-B directly +NODE-B ──[D2 <question>?] + D2 <case> ──▶ NODE-C + D2 <case> ──▶ inline recovery (self-loop; recovery: <what the user can do>) +``` + +**D1:** <the guard, as a checkable expression> · **D2:** <guard> — all exhaustive. + +<prose only where the diagram cannot carry it: contested tap targets, suppression +rules, decisions that changed a branch> + +## F2 — ... + +## Decision log + +| ID | Decision | Ruled by | Date | +|---|---|---|---| +| D-<x>N | <what was decided, and what it replaced> | user / audit / this state | <date> | + +## Reachability report + +| Node | Reachable from | Terminal? | Justification if terminal | +|---|---|---|---| +| NODE-A | entry, NODE-C | no | — | +| NODE-Z | NODE-C | **yes** | <why terminating here is correct> | + +Unreachable nodes: **0**. Dead ends without justification: **0**. + +## Recovery coverage + +| Non-happy state (ux-plan) | Recovery transition | +|---|---| +| TASK-A / error | → retry edge on NODE-B | +| TASK-A / empty | → NODE-A with a route-out CTA | + +## Flow boundaries + +| Boundary node | Owning flow | Status | +|---|---|---| +| ⟂OTHER-01 | <flow> | mocked / real handoff | + +## Open decisions + +- o-<id>: <question> — <which branch it leaves unruled> — <who can rule> diff --git a/design-toolkit/templates/handoff.md b/design-toolkit/templates/handoff.md new file mode 100644 index 0000000..2599ff3 --- /dev/null +++ b/design-toolkit/templates/handoff.md @@ -0,0 +1,87 @@ +<!-- TEMPLATE — handoff + Written by STATE 11 · full contract: skills/11-final-output/SKILL.md + Copy into artifacts/ (per-feature name) and fill in. Angle brackets are + placeholders; every heading below is load-bearing for a downstream check. --> + +# <Project> — <Feature> · Design Handoff + +_Feature: **<feature>** · State: **DONE** (Primary User Approval granted <date>, +<n>th pass, scoped to `proto-<feature>-NN`) · Date: <date>_ + +> <standing caveats that apply to everything below — provisional tokens, +> unreviewed copy, simulated content.> + +## What this delivers + +| Screen | ID | Built | +|---|---|---| +| <name> | S-XXX-NN | <what actually ships on it> | + +**States:** <every state a screen can be driven into> + +## Requirement source + +<the brief, the registry rows, or the promises already frozen into other flows. +Say which — a flow built with no user brief is a different object from one built +to a spec, and the receiving team needs to know.> + +## Key decisions + +- **D-XN — <decision>.** <the ruling and why it went that way.> + +## Pipeline artifacts + +requirements-<feature> (<n>R / <n> ACs) → research-<feature> → +product-review-<feature> (**proceed**, D-X0..) → ux-plan-<feature> → +flows-<feature> → ui-plan-<feature> → traceability-<feature> → +**prototype `proto-<feature>-NN`** → audit-report-<feature> (**PASS n/n**) → +review-record-<feature>. + +**Figma:** <file id + page, or PENDING with what blocks it.> + +## Acceptance criteria + +- **audit-<feature>-NN PASS — n / n ACs** (run against the frozen bytes, P4). +- <headless assertion count, run stability, console sweep, hex conformance, + screenshot count.> +- Superseded ACs: <n>, each naming the ratified revision that replaced it (P3). + +## Freeze + +| File | sha256 | +|---|---| +| `prototype/<file>.html` | `<sha256>` | + +## Review packet + +``` +prototype/run-local.sh → play.html #<feature> +``` + +Hooks: <every deep-link hook, from traceability — this is what makes the +deliverable re-drivable after the loop closes.> + +## Waivers + +| Rule | Waived because | Rider | What closes it | +|---|---|---|---| +| V2 / §8 rule 4 | <reason> | debt #<n> | <the specific action> | + +_A waived rule ships only with a grantor, a rider and a closing condition (P6)._ + +## Known limitations + +| ID | Limitation | +|---|---| +| **o-xN** | <the open, what ships instead, what would close it — at full strength (P8).> | + +## §8 Completion Rules + +| # | Rule | Holds | Evidence | +|---|---|---|---| +| 1 | `current_state` = `DONE` | ✅ | machine_state written this edit | +| 2 | approval scoped to the final frozen versions | ✅ | review-<feature>-NN `reads_versions` + freeze sha | +| 3 | `C_ALL_CRITERIA_MET` | ✅ | traceability-<feature>: n met / n waived / n superseded / **0 unmet** | +| 4 | `C_AUDIT_PASS` on the final version | ✅ | audit-<feature>-NN, run on the frozen sha | +| 5 | deliverable + handoff + traceability + decision log exist | ✅ | this folder | +| 6 | no `open` items in the latest `revision-log.md` | ✅ | rev-<feature>-NN | diff --git a/design-toolkit/templates/machine_state.yaml b/design-toolkit/templates/machine_state.yaml new file mode 100644 index 0000000..3c57590 --- /dev/null +++ b/design-toolkit/templates/machine_state.yaml @@ -0,0 +1,72 @@ +# <product> — global machine state +# +# This file is NOT an artifact. It is the machine's own record, and §8 completion +# rule 1 is defined over it. Write it AT DECISION TIME, in the same edit as the +# thing it records — a record written later is a reconstruction. On the run this +# toolkit came from, this file sat two days and two approval rounds stale while +# the machine reported itself shipping, and nothing detected it, because nothing +# was reading the file the completion rule is defined over. +# +# Side effect worth knowing: templates/prototype/serve.py gates live reload on the +# top-level `current_state` being USER_REVIEW (skills/09 G1). + +machine_state: + project: <slug> + current_state: REQUIREMENT_ANALYSIS + scope: <the feature this run is about> + gate: pending # pending | granted | denied + handoff_required: false # true → STATE 12 runs before FINAL_OUTPUT + blocked_reason: null + + last_transition: + from: null + to: REQUIREMENT_ANALYSIS + trigger: <what caused it — quote the instruction where there is one> + ts: "<YYYY-MM-DD>" + + # Per-state visit counter, for retry ceilings (C_RETRY_OK) + entry_count: {} + + # Per-loop iteration counter (C_LOOP_OK). Ceilings live in toolkit.config.json. + loop_count: + L_CLARIFY: 0 + L_RESEARCH: 0 + L_UX_EDGE: 0 + L_REVISION: 0 + L_AUDIT_FIX: 0 + + # An approval is scoped to the artifact versions it saw. If those change, the + # gate reverts to `pending` — this is the stale-approval rule (§5), and it is + # the anti-pattern the machine most often violates by accident. + approvals: + ClarificationGate: pending + DirectionApprovalGate: pending + PrimaryUserApprovalGate: pending + ConflictMiniGate: pending + DeveloperHandoffGate: pending + + artifact_versions: {} + + # One row per feature. `deliverable` names the folder the freeze landed in — + # `designed` and `delivered` are different claims (skills/11 P2). + flows: [] + # - id: <feature> + # state: <machine state> + # gate: pending | granted + # prototype: proto-<feature>-NN + # audit: audit-<feature>-NN + # deliverable: null + + # sha256 per frozen file. A freeze is a hash, not a copy (skills/11 P2). + freeze: {} + + # ---- §8 Completion Rules ---- + # Each gets a boolean AND a one-line reason. `true` with no reason is the + # silence skills/11 P6 forbids. + completion_check: + C1_state_is_done: false # <reason> + C2_approval_scoped_to_final_frozen_versions: false # <reason> + C3_all_criteria_met: false # <reason> + C4_audit_pass_on_final_version: false # <reason> + C5_deliverables_complete: false # <reason> + C6_no_open_revision_items: false # <reason> diff --git a/design-toolkit/templates/nav-lanes.json b/design-toolkit/templates/nav-lanes.json new file mode 100644 index 0000000..c2ea48b --- /dev/null +++ b/design-toolkit/templates/nav-lanes.json @@ -0,0 +1,10 @@ +{ + "_note": "Swimlane assignment for STATE 12 (E1). NODE lanes only — edge-level system/api attribution lives in the E6 annotation columns, not here. A screen with no lane is reported by tools/navgraph.mjs as N8 and never guessed into a lane: a wrong lane reads as a ruling about who owns a screen.", + "order": ["customer", "admin", "system", "api"], + "lanes": { + "customer": [], + "admin": [], + "system": [], + "api": [] + } +} diff --git a/design-toolkit/templates/product-review.md b/design-toolkit/templates/product-review.md new file mode 100644 index 0000000..1f3721b --- /dev/null +++ b/design-toolkit/templates/product-review.md @@ -0,0 +1,50 @@ +<!-- TEMPLATE — product-review + Written by STATE 03 · full contract: skills/03-product-review/SKILL.md + Copy into artifacts/ (per-feature name) and fill in. Angle brackets are + placeholders; every heading below is load-bearing for a downstream check. --> + +--- +artifact: product-review +version: <hash-or-incrementing-id> +produced_by: product-review +reads_version: + requirements: <requirements.md version consumed> + research: <research.md version consumed> +recommendation: proceed | re-scope | stop +gate: direction-approval +gate_state: pending | approved | denied +--- + +## Recommendation + +**<proceed | re-scope | stop>** — <rationale, tied to the scores and +contradictions below. Name the two or three findings that actually drove it.> + +## Prioritized requirements + +| ID | Requirement | Value | Effort | Risk | Band | Evidence | +|---|---|---|---|---|---|---| +| R1 | <text, verbatim from requirements.md> | H/M/L | H/M/L | H/M/L | must | [T1, T4] | +| R2 | ... | | | | should | [T2] | +| R7 | ... | | | | cut | unevidenced | + +## Risk register + +| ID | Risk | Sev | Mitigation **or** accept-risk | Owner | +|---|---|---|---|---| +| K1 | <risk statement> | high | <mitigation> | <role> | +| K2 | <risk statement> | high | **ACCEPTED** — <why, and by whom> | <role> | + +## Scope contradictions + +- X1: <brief wants A> vs <research theme T3 shows B> — <resolution, or + explicitly left open with an open-decision id> + +## Decision record + +- D1: <decision> — trigger: <what evidence or event would reverse it> +- Deferred: <open decisions handed to later states, with ids> + +## Cut list + +- <requirement id> — <why it is out for this cycle, and what would bring it back> diff --git a/design-toolkit/templates/prototype/README.md b/design-toolkit/templates/prototype/README.md new file mode 100644 index 0000000..ba6fe6d --- /dev/null +++ b/design-toolkit/templates/prototype/README.md @@ -0,0 +1,93 @@ +# `templates/prototype/` — the Run Local review player + +[← templates/](../README.md) · [Repository root](../../README.md) · [STATE 09](../../WORKFLOW_GUIDE.md#state-09--user_review) + +--- + +## Purpose + +The review chrome. Three files that STATE 07 copies into `artifacts/prototype/` so STATE 09 can serve the prototype over HTTP and present it through a player with a sidebar — rather than by opening raw HTML files. + +**The player is not a convenience.** Rule G1 exists because reviewing raw pages bypasses the review chrome, and that was a direct user correction on a real run. STATE 09's V4 requires the review to be conducted against a served prototype, with the **player URL recorded** in the gate record. + +| File | What it does | +|---|---| +| [`run-local.sh`](run-local.sh) | Starts (or reuses) the server and opens the player. Idempotent — re-running is "Refresh Run Local". | +| [`serve.py`](serve.py) | Static server plus live reload. Reload is **gated on workflow state**. | +| [`play.html`](play.html) | The player: a sidebar of registered flows, walkthrough progress, *open standalone*, and a stage iframe. | + +## Inputs + +| Input | Where from | +|---|---| +| The prototype pages | `artifacts/prototype/*.html`, built by STATE 07 | +| The `FEATURES` array | Edited inside `play.html`, one entry per prototype page | +| Port | `run-local.sh <port>`, default **8765**, matching `toolkit.config.json` → `review.port` | +| Workflow state | `state/machine_state.yaml` → top-level `current_state`, or `$TOOLKIT_STATE_FILE` | + +## Outputs + +- A local HTTP server on the chosen port. +- The player at `http://localhost:<port>/play.html`. +- **The player URL**, which is the thing STATE 09 records in `review-record-<feature>.md`. + +## Examples + +**Standing it up** (STATE 07, in the same edit as the first prototype page): + +```bash +cp templates/prototype/{run-local.sh,serve.py,play.html} artifacts/prototype/ +chmod +x artifacts/prototype/run-local.sh +``` + +**Registering a flow.** In `play.html`, one entry per page — added in the **same edit that creates the page**: + +```js +const FEATURES = [ + { id:'signin', pri:'P0', file:'signin.html', + label:'Sign in (email + password, reset)', + desc:'S-SIGN-01…03 · ?view=main|error|reset' }, +]; +``` + +**Running the review:** + +```bash +artifacts/prototype/run-local.sh # → http://localhost:8765/play.html +artifacts/prototype/run-local.sh 9000 # a different port +``` + +**Deep-linking into a flow and a state.** The player splits `#id?query`, so a hook survives into the stage iframe: + +``` +http://localhost:8765/play.html#signin +http://localhost:8765/play.html#signin?view=main&state=error +``` + +That is what makes STATE 07's hook table usable as a review packet: the user reaches the error state in one step instead of clicking toward it. + +**What "Refresh Run Local" means.** Re-running the script is idempotent: a live-reload server already on the port is reused; a *plain* server on the port is replaced with the live-reload one. + +## Best practices + +- **Review through the player, never by opening a page directly.** The sidebar *is* the intended review chrome, and V4 asks for the URL specifically. +- **Register every new page in `FEATURES`, in the same edit that creates the page.** A flow missing from the sidebar is a flow the user does not review — the array renders an explicit "No prototype registered yet" message precisely so its emptiness is not mistaken for an empty prototype. +- **Ship the hook list with the verdict request.** STATE 07's traceability table already names a deep-link hook for every flow state, variant and error case. That table is the packet. +- **Check the state file before calling live reload broken.** Reload is active **only** while the top-level `current_state` in `state/machine_state.yaml` is `USER_REVIEW`. Outside review the same server serves plain pages, `/__watch` answers "off", and no poller is injected. This is checked per request, so a state transition applies without restarting the server. +- **A missing or unreadable state file means reload stays ON.** That is deliberate, for standalone use outside a run. +- **Record the player URL in the gate record.** On the extraction run, three of six records named the player and hook in prose and **none recorded a URL** — so the rule was satisfied in practice and unevidenced in the artifact. +- **The player is harness chrome, not product surface.** `play.html`, `run-local.sh` and `serve.py` are excluded from the STATE 08 palette sweep and the STATE 12 network sweep by `review.harnessFiles` — the player is added to that set automatically, so you only list chrome you add yourself. Without the exclusion the sweep reports the player's own colours as findings on every run, and a recurring false positive teaches a reader to stop reading the report. +- **Do not edit these files in `templates/`.** Copy them; edit the copies. The templates are the shape for the next product too. + +## Requirements + +- **Python 3** for `serve.py`. +- A shell with `lsof` and `curl` for `run-local.sh`'s reuse detection (macOS and most Linux distributions). +- `open` is used to launch the browser where available; otherwise the script prints the URL. + +## Related + +- [`WORKFLOW_GUIDE.md § STATE 09`](../../WORKFLOW_GUIDE.md#state-09--user_review) — the review method, G1–G8 +- [`skills/09-user-review/SKILL.md`](../../skills/09-user-review/SKILL.md) — the full contract +- [`skills/07-prototype/SKILL.md`](../../skills/07-prototype/SKILL.md) — B2, the hooks that make the packet +- [`ARTIFACT_FLOW.md`](../../ARTIFACT_FLOW.md) — what the gate record must carry diff --git a/design-toolkit/templates/prototype/play.html b/design-toolkit/templates/prototype/play.html new file mode 100644 index 0000000..9e38f16 --- /dev/null +++ b/design-toolkit/templates/prototype/play.html @@ -0,0 +1,174 @@ +<!doctype html> +<html lang="en"> +<head> +<meta charset="utf-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" /> +<title>Prototype Player + + + + +
    + Product prototypes + Features Prototyping +
      + open standalone ↗ +
      + + + + + + + diff --git a/design-toolkit/templates/prototype/run-local.sh b/design-toolkit/templates/prototype/run-local.sh new file mode 100755 index 0000000..2a6ecfd --- /dev/null +++ b/design-toolkit/templates/prototype/run-local.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# Run Local — default USER_REVIEW step (docs/workflow.md STATE 09, skills/09 G1). +# Copied into artifacts/prototype/ by STATE 07; run it from there. +# Serves prototype/ over HTTP (serve.py — live reload: any file change in +# prototype/ auto-refreshes the browser, but ONLY while the workflow is in +# USER_REVIEW per state/machine_state.yaml) and opens the player (play.html). +# Idempotent: re-run = "Refresh run local" — reuses a live server, just reopens player. +# A plain server (no live reload) already on the port gets replaced. +set -euo pipefail + +PORT="${1:-8765}" +DIR="$(cd "$(dirname "$0")" && pwd)" +URL="http://localhost:${PORT}/play.html" + +up() { lsof -nP -iTCP:"${PORT}" -sTCP:LISTEN >/dev/null 2>&1; } +live_reload() { curl -sf "http://localhost:${PORT}/__watch" >/dev/null 2>&1; } + +if up && live_reload; then + echo "refresh: live-reload server already on :${PORT} — reusing" +else + if up; then + echo "upgrade: plain server on :${PORT} — replacing with live-reload server" + lsof -nP -tiTCP:"${PORT}" -sTCP:LISTEN | xargs kill 2>/dev/null || true + sleep 0.3 + fi + echo "start: serving ${DIR} on :${PORT} (live reload)" + (cd "${DIR}" && nohup python3 serve.py "${PORT}" >/dev/null 2>&1 &) + # wait until up (max ~3s) + for _ in $(seq 1 30); do + curl -s -o /dev/null "${URL}" && break + sleep 0.1 + done +fi + +echo "player: ${URL}" +if command -v open >/dev/null 2>&1; then open "${URL}"; fi diff --git a/design-toolkit/templates/prototype/serve.py b/design-toolkit/templates/prototype/serve.py new file mode 100644 index 0000000..4c03a36 --- /dev/null +++ b/design-toolkit/templates/prototype/serve.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +"""Run Local dev server — static serve + live reload (docs/workflow.md STATE 09). + +Lives in artifacts/prototype/ (copied from templates/prototype/ by STATE 07). + +Serves this directory and injects a tiny poller into every .html response; +any file change in the tree reloads the browser automatically. +Endpoint /__watch returns the newest mtime in the tree (also used by +run-local.sh to detect a live-reload-capable server vs a plain one). + +Live reload is active ONLY while the workflow is in the USER_REVIEW state +(state/machine_state.yaml top-level current_state). Outside review the +server still serves pages, but /__watch answers "off" and no poller is +injected — checked per request, so a state transition applies without +restart. Missing/unreadable state file = reload ON (standalone use). +""" +import os +import re +import sys +from http.server import ThreadingHTTPServer, SimpleHTTPRequestHandler + +DIR = os.path.dirname(os.path.abspath(__file__)) +PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8765 +STATE_FILE = os.environ.get('TOOLKIT_STATE_FILE') or os.path.abspath( + os.path.join(DIR, '..', '..', 'state', 'machine_state.yaml')) + + +def in_review(): + try: + with open(STATE_FILE, encoding='utf-8') as f: + for line in f: + m = re.match(r'^ current_state:\s*(\S+)', line) + if m: # first 2-space-indented hit = machine_state's own field (parked flows nest deeper) + return m.group(1) == 'USER_REVIEW' + except OSError: + pass + return True + +SNIPPET = (b"") + + +def latest_mtime(): + mx = 0 + for root, _dirs, files in os.walk(DIR): + for f in files: + try: + mx = max(mx, os.stat(os.path.join(root, f)).st_mtime_ns) + except OSError: + pass + return str(mx) + + +class Handler(SimpleHTTPRequestHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, directory=DIR, **kwargs) + + def log_message(self, *args): + pass + + def _send(self, body, ctype): + self.send_response(200) + self.send_header('Content-Type', ctype) + self.send_header('Cache-Control', 'no-store') + self.send_header('Content-Length', str(len(body))) + self.end_headers() + self.wfile.write(body) + + def do_GET(self): + live = in_review() + if self.path.startswith('/__watch'): + self._send(latest_mtime().encode() if live else b'off', 'text/plain') + return + if not live: + super().do_GET() + return + path = self.translate_path(self.path.split('?', 1)[0].split('#', 1)[0]) + if os.path.isdir(path): + path = os.path.join(path, 'index.html') + if path.endswith('.html') and os.path.isfile(path): + with open(path, 'rb') as f: + body = f.read() + if b'' in body: + body = body.replace(b'', SNIPPET + b'\n', 1) + else: + body += SNIPPET + self._send(body, 'text/html; charset=utf-8') + return + super().do_GET() + + +if __name__ == '__main__': + print(f'serve.py: {DIR} on :{PORT} (live reload on)') + ThreadingHTTPServer(('', PORT), Handler).serve_forever() diff --git a/design-toolkit/templates/requirements.md b/design-toolkit/templates/requirements.md new file mode 100644 index 0000000..54ce120 --- /dev/null +++ b/design-toolkit/templates/requirements.md @@ -0,0 +1,39 @@ + + +--- +artifact: requirements +version: +produced_by: requirement-analysis +scope_class: small | medium | large +effort_tier: +--- + +## Problem statement + + +## Goals +- G1: +- G2: + +## Actors +- : + +## Constraints +- + +## Non-goals +- + +## Requirements & acceptance criteria +- R1: + - AC1.1: + - AC1.2: ... + +## Assumptions +- A1 [assumed|confirmed]: + +## Open questions +- Q1 [blocking|non-blocking]: diff --git a/design-toolkit/templates/research.md b/design-toolkit/templates/research.md new file mode 100644 index 0000000..3882acb --- /dev/null +++ b/design-toolkit/templates/research.md @@ -0,0 +1,41 @@ + + +--- +artifact: research +version: +produced_by: research +reads_version: +coverage: +--- + +## Themes +- T1: + - sources: [S1, S3] + - relevance: + - maps_to: [G1, G2] # goal IDs from requirements.md +- T2: ... + +## Evidence & citations +- S1 [resolvable]: +- S2 [resolvable]: + +## Competitor notes +- : (sources: [S2]) + +## Pattern catalog +- P1: (sources: [S4]) + +## Constraints +- (sources: [S5]) + +## Contradictions +- C1: vs + +## Goal coverage +- G1 → [T1] | G2 → [T2] | G3 → no-research-needed + +## Gaps +- GAP1: [reason] diff --git a/design-toolkit/templates/review-record.md b/design-toolkit/templates/review-record.md new file mode 100644 index 0000000..572e5f4 --- /dev/null +++ b/design-toolkit/templates/review-record.md @@ -0,0 +1,82 @@ + + +--- +artifact: review-record +version: review--NN +produced_by: user-review +reads_versions: + prototype: -NN — the exact bytes reviewed> + audit-report.md: -NN> +feature: +date: +gate: PrimaryUserApprovalGate +verdict: APPROVED | REQUEST-CHANGES | REJECTED +player_url: http://localhost:8765/play.html# +--- + +# Gate record — + +## Decision + +**** on the **Nth presentation**, . + +User instruction, verbatim: *""*. + +| Field | Value | +|---|---| +| Flow | | +| Prototype at decision | `` | +| Audit of record | `` — | +| Reviewed at | `` (Run Local rule V4) | +| Passes to approval | | + +## What was approved + + + +## Verification at approval + +| Check | Result | +|---|---| +| Audit | | +| Assertions (rendering-class) | | +| Console | | +| Screenshots | | + +## Change requests (if `request-changes`) + +| ID | Verbatim ask | Target state | Spec link | Status | +|---|---|---|---|---| +| CR1 | *""* | `UI_PLANNING` | R-x3 / F2 | open → revision-log | + +_No request is dropped (V3). Anything not actioned is recorded as `deferred` +with a reason._ + +## Deltas ratified by this decision + +| # | Delta | Class | Evidence | +|---|---|---|---| +| 1 | | bug-fix only \| **feature** | | + +## Known limitations presented + + + +## Opens carried forward + +| ID | Question | Ships as | +|---|---|---| + +## Validations waived + +| Rule | Why | Granted by | Rides on | +|---|---|---|---| + +## Freeze hashes + +| Deliverable file | sha256 | +|---|---| diff --git a/design-toolkit/templates/revision-log.md b/design-toolkit/templates/revision-log.md new file mode 100644 index 0000000..eb7b9dd --- /dev/null +++ b/design-toolkit/templates/revision-log.md @@ -0,0 +1,86 @@ + + +--- +artifact: revision-log +version: rev--NN +produced_by: revision +reads_versions: + review-record.md: review--NN + audit-report.md: audit--NN +iteration: +loop: L_REVISION (/3) # L_AUDIT_FIX (/3) if this is an audit-fix cycle +feature: +--- + +# Iteration , + +## Change set + +| # | Change item | Raised by | Class + sweep | Root cause | Target state | Status | +|---|---|---|---|---|---|---| +| CR1 | *""* | user-review \| self-audit | | | `UI_PLANNING` → `PROTOTYPE` | resolved \| deferred \| superseded | + +_Every item carries a target state and a status (V1). Nothing exits `open` (V2)._ + +## Conflicts — Conflict Mini-Gate + +| # | Conflict | Side A | Side B | Ships as | Gate outcome | +|---|---|---|---|---|---| +| o-x1 | | | | | pending user ruling \| ruled | + +_No conflict is resolved inside the prototype (R8, V6)._ + +## Dependency order (upstream → downstream) + +1. `` → () +2. `PROTOTYPE` → proto--NN () +3. `SELF_AUDIT` → audit--NN +4. `USER_REVIEW` → gate reverts to `pending` (stale-approval rule §5) + +## Superseded by this revision + +| Component / rule / string | Superseded by | Removed from | +|---|---|---| + +## Constraints recorded + + + +## Deliberately not changed + +| Item | Why not | +|---|---| + +_Recorded so silence is not mistaken for oversight (V2)._ + +## Impact analysis + +| Artifact | Effect | +|---|---| +| requirements.md | unchanged | +| ui-plan.md | **ui--NN** (supersedes -NN) | +| prototype | **proto--NN** | +| audit-report.md | **audit--NN** | + +## Re-validation + +| Check | Result | +|---|---| +| Re-audit on the rebuilt bytes | `audit--NN` PASS N / N — or **WAIVED**, rider: debt # | +| Rendering-class assertions | N / N | +| Class sweeps from R2 | | + +## Validation self-check + +- **V1** ✅ / ❌ — every item has a target state and a status. +- **V2** ✅ / ❌ — no item left `open`. +- **V3** ✅ / ❌ — iteration incremented; `L_REVISION /3`, `L_AUDIT_FIX /3`. +- **V4** ✅ / ❌ — every item names its class and sweep result. +- **V5** ✅ / ❌ — superseded components removed; carried items re-verified against current bytes. +- **V6** ✅ / ❌ — conflicts recorded with both sides; none resolved in the bytes. +- **V7** ✅ / ❌ — return edge passes through `SELF_AUDIT`, or a waiver names its rider. + +**Exit:** dispatch to → `SELF_AUDIT` → `USER_REVIEW`. diff --git a/design-toolkit/templates/screen-registry.csv b/design-toolkit/templates/screen-registry.csv new file mode 100644 index 0000000..6424d31 --- /dev/null +++ b/design-toolkit/templates/screen-registry.csv @@ -0,0 +1,3 @@ +screen_id,flow,screen_name,purpose,data_content,key_components,states,entry_from,navigates_to,status,notes +S-FLOW-01,01 Flow Name,Screen Name,What this screen is for in one line,"the data it shows","the components it is built from","happy, loading",app launch,S-FLOW-02 | S-OTHER-01 (condition),todo,"free notes — frozen version, open questions, anything a later reader needs" +S-FLOW-02,01 Flow Name,Second Screen,…,"…","…","happy, error{invalid-input}",S-FLOW-01,S-FLOW-01 (back) | S-OTHER-01,todo,"" diff --git a/design-toolkit/templates/state-machines.json b/design-toolkit/templates/state-machines.json new file mode 100644 index 0000000..df1caaa --- /dev/null +++ b/design-toolkit/templates/state-machines.json @@ -0,0 +1,54 @@ +{ + "_note": "STATE 12 / E5 — per-screen state machines. The NODE set is derived from the registry's `states` column (tools/stategraph.mjs fails the run if a machine adds or drops one). The EDGE set is AUTHORED WITH EVIDENCE: transitions live in the prototype's control flow and cannot be derived, so each carries `evidence` as file:line and the tool resolves that line against the frozen bytes. An unevidenced arrow looks like a spec and is a guess.", + + "meta": { + "version": "state-machines-01", + "derived_from_registry_sha": "", + "date": "" + }, + + "screens": { + "S-FLOW-01": { + "initial": "happy", + "states": { + "happy": { + "hook": "flow.html?view=main", + "note": "reachable by default entry" + }, + "loading": { + "hook": "flow.html?view=main&load=1", + "entry_only": true, + "note": "only ever built on arrival — no in-screen path back into it" + }, + "empty": { + "hook": null, + "unimplemented": true, + "reason": "declared in the registry; the frozen bytes never render it — S9 fails if this reason is missing" + } + }, + "transitions": [ + { + "from": "loading", + "to": "happy", + "trigger": "data settles", + "kind": "system", + "evidence": "flow.html:412" + } + ], + "_node_flags": [ + "entry_only — real, but only ever built on arrival (no in-screen path in)", + "terminal — no outbound change by design; the way out is leaving the screen", + "unimplemented — the registry declares it and the bytes never render it. Drawn dashed, kept, and REQUIRES a `reason`. Deleting it would make the deliverable agree with itself by deleting the disagreement." + ] + } + }, + + "id_conflicts": [ + { + "screen": "", + "prototype_view": "", + "prototype_sid": "", + "note": "measured by tools/stateprobe.mjs, not asserted. Recorded, not reconciled — renumbering is a registry decision." + } + ] +} diff --git a/design-toolkit/templates/state-vocabulary.md b/design-toolkit/templates/state-vocabulary.md new file mode 100644 index 0000000..454d8d8 --- /dev/null +++ b/design-toolkit/templates/state-vocabulary.md @@ -0,0 +1,74 @@ +# State Vocabulary — + +_Owner: STATE 12 `flow-visualization` (E5). Established ._ + +The registry's `states` column is a **closed vocabulary**, not free text. This file +is the term set, the qualifier rule, and the original → normalized mapping. + +**Why a closed set.** On the run this toolkit was extracted from, the registry +carried 59 distinct free-text labels across 48 screens — including three spellings +of "empty for a new user". Each was locally sensible. The set was not a state +machine, and no tool could tell whether two labels meant one concept or two. +**Normalize first, then generate**: generating first freezes N private +vocabularies into a deliverable. + +## Syntax + +``` + a state with no further distinction +{} the same state, with the case that produced it +``` + +The qualifier is kebab-case and is **never dropped**: `error{wrong-code}` and +`error{unchecked-terms}` are different screens' different recoveries, and a +developer needs both. + +`tools/navgraph.mjs` enforces the term set (`N11-state-vocab`) and the syntax +(`N11-state-syntax`). `tools/stategraph.mjs` enforces the same set (`S1-vocab`). +Both **import** it from `CANON_STATES` in `tools/config.mjs`, which is the single +definition — adding a term means editing that constant and this file, and nothing +else. Two steps, deliberately: the constant is what the tools check, and this file +is where the justification lives. + +## Canonical states (14) + +| State | Means | +|---|---| +| `happy` | the normal path for this screen | +| `loading` | content in flight, screen already committed | +| `empty` | screen is correct and has nothing to show | +| `error` | an operation failed and the user can retry or correct | +| `fail` | a terminal negative outcome (not retryable in place) | +| `success` | a terminal positive outcome | +| `in-progress` | work in flight that the user started and can watch | +| `timeout` | an operation exceeded its window | +| `guest` | signed-out degradation of the screen | +| `locked` | the user is blocked from the content by a gate (level, purchase, capacity, quota) | +| `confirm` | a blocking confirmation awaiting a user decision | +| `filtered` | a list narrowed by user filter or search, **with** results | +| `offline` | no connectivity | +| `permission-denied` | an OS or role permission blocks the screen | + +A vocabulary is a set of **permitted** terms, not an inventory of used ones — +declaring a term with zero uses is correct. + +`filtered` means **narrowed with results**. A filter that returns nothing is +`empty`, with the filter as the qualifier (`empty{category}`). + +## Adding a term + +**Adding a canon term costs a justification, written here.** Fold it into an +existing term unless doing so would be a false statement about the screen. A term +only one screen would ever use is a **qualifier**, not a canon term. + +| Term added | Date | Why folding it in would have been false | +|---|---|---| +| | | | + +## Mapping — original → normalized + +Preserve the originals. The rewrite must lose nothing. + +| Original label | Normalized | Screens | +|---|---|---| +| | | | diff --git a/design-toolkit/templates/traceability.md b/design-toolkit/templates/traceability.md new file mode 100644 index 0000000..bfa0320 --- /dev/null +++ b/design-toolkit/templates/traceability.md @@ -0,0 +1,62 @@ + + +--- +artifact: traceability +version: trace--NN +produced_by: prototype +reads_versions: + requirements-.md: + ux-plan-.md: + flows-.md: + ui-plan-.md: +feature: +--- + +# Traceability — (-NN>) + +Every prototype element traces to a spec entry (V2), and every flow state is +represented (V1). Files: `artifacts/prototype/`. + +## Requirement → task → flow → component → prototype element + +| Req | Task | Flow | UI component | Prototype element / hook | +|---|---|---|---|---| +| R-x1 | TK1 | F1 | | ``, ``, `?hook=` | + +## Flow state → prototype representation (V1) + +| node | Representation | Hook | +|---|---|---| +| | | `?view=…` | + +_Every node in `flows.md`, including recovery and non-happy-path states._ + +## Transition → wiring (V4) + +| Flow transition | Wired as | Destination paints | +|---|---|---| +| (D) | `` / `goFlow(...)` | yes — | + +## Decision → implementation + +| Decision | Where it lives | +|---|---| +| D-x1 | `` | + +## Superseded — stripped, not left dead (B7) + +| Removed | Superseded by | Selectors / keys stripped | +|---|---|---| +| | | `.a`, `.b`, `strKey1`, `fnName()` | + +## Un-specced additions + + + +## Verification record (B8) + + diff --git a/design-toolkit/templates/ui-plan.md b/design-toolkit/templates/ui-plan.md new file mode 100644 index 0000000..c075c22 --- /dev/null +++ b/design-toolkit/templates/ui-plan.md @@ -0,0 +1,107 @@ + + +--- +artifact: ui-plan +version: ui--NN +produced_by: ui-planning +reads_versions: + flows-.md: + ux-plan-.md: + research-.md: + design-system: "" +feature: +inherits: +supersedes: +--- + +# UI Plan — + +## Inherited, reused verbatim + + + +## STRICT colour allowlist (V5) + +``` + +BANNED: +``` + +Write the same set into `toolkit.config.json` → `audit.colorAllowlist` / +`colorBanned`. That is where STATE 08's harness reads it; an allowlist that lives +only in this document is an allowlist nothing enforces. + +The **BANNED** list is not optional. `SELF_AUDIT` enforces this allowlist by +machine hex-extraction, and the permanent lesson attached to that rule is that +an audit must check **non-DS absence, not just DS presence** — an allowlist +alone cannot catch a value that was never supposed to exist. + +Naming note: this "V5" is the **`SELF_AUDIT` hex-conformance rule id**. It is not +a validation rule of this state — this state's rules are +V1–V4 — and it is a different V5 from the rendering-class rule defined in +[`skills/08`](../skills/08-self-audit/SKILL.md). + +## Component inventory → DS mapping (reuse-first) + +| Comp | Surface | DS mapping | new? | +|---|---|---|---| +| | | `` | reuse | +| | | `` + | reuse+variant | +| | | | **new**, justified: | + + + +## Layout rules () + + + +## Motion spec + +| Element | Default | Reduced | +|---|---|---| +| | | | + + + +## Contrast + + + +## Token reference resolution (V4) + + + +## Superseded + +| Component | Replaced by | Strip in prototype | +|---|---|---| +| | | yes | + +## Extension Note (informational, non-blocking) + + + +## Open decisions + +- o-: + +## Validation self-check + +- **V1** ✅/❌ +- **V2** ✅/❌ +- **V3** ✅/❌ +- **V4** ✅/❌ + +**Exit:** validation passes → `PROTOTYPE` (). diff --git a/design-toolkit/templates/ux-plan.md b/design-toolkit/templates/ux-plan.md new file mode 100644 index 0000000..c53ae79 --- /dev/null +++ b/design-toolkit/templates/ux-plan.md @@ -0,0 +1,72 @@ + + +--- +artifact: ux-plan +version: -NN> +produced_by: ux-planning +reads_versions: + requirements.md: + research.md: + product-review.md: +feature: +coverage: / +--- + +# UX Plan — + +## Primary tasks (→ requirements) + +| Task | User intent | Reqs | +|---|---|---| +| TASK-A | | R1, R4 | +| TASK-B | ... | R2 | + +## Information architecture + + + +## Navigation model + + + +## State enumeration + +### TASK-A +| State | Kind | Trigger | Strategy | +|---|---|---|---| +| happy | happy | | | +| loading | non-happy | | ... | +| empty | non-happy | | ... | +| error | non-happy | | ... | +| interrupted | non-happy | | ... | +| permission-denied | non-happy | | ... | + +### TASK-B +... + +## Edge-case matrix + +| | loading | empty | error | interrupted | offline | permission-denied | +|---|---|---|---|---|---|---| +| TASK-A | ✅ | ✅ | ✅ | ✅ | n/a — | ✅ | +| TASK-B | ✅ | ✅ | ✅ | ✅ | ✅ | n/a — | + +## Accessibility strategy + +- Interactive target floor: — **state the number here**; it becomes an + acceptance criterion the audit checks against, so an unrealistic one becomes + debt later. +- Contrast posture, focus order, keyboard reachability, screen-reader + expectations, motion opt-out, script/locale and per-glyph font handling. + +## UX risks + +- U1: + +## Open decisions + +- o-: diff --git a/design-toolkit/toolkit.config.json b/design-toolkit/toolkit.config.json new file mode 100644 index 0000000..7d43e9f --- /dev/null +++ b/design-toolkit/toolkit.config.json @@ -0,0 +1,82 @@ +{ + "$schema": "./tools/config.schema.json", + + "product": { + "name": "", + "slug": "next-product", + "platform": "mobile", + "viewport": { "width": 393, "height": 852 }, + "locales": ["en"], + "scripts": [], + "note": "viewport is the review/capture viewport for the prototype and the audit harness. `scripts` lists every writing system the product renders, so STATE 08 can prove each one resolves on a stack that carries a face for it — e.g. [{\"name\":\"Khmer\",\"range\":\"\\u1780-\\u17FF\",\"fontMatch\":\"Khmer\"}]. Empty = single-script product, check off." + }, + + "paths": { + "artifacts": "artifacts", + "reference": "reference", + "prototype": "artifacts/prototype", + "shots": "artifacts/shots", + "state": "state/machine_state.yaml", + "registry": "reference/screen-registry.csv", + "lanes": "reference/nav-lanes.json", + "stateMachines": "reference/state-machines.json", + "vocabulary": "reference/state-vocabulary.md", + "edgeAnnotations": "reference/edge-annotations.json" + }, + + "screens": { + "idPattern": "^S-[A-Z0-9]+-[0-9]+[A-Z]?$", + "flowSectionFormat": "FLOW-XXX • Journey Name" + }, + + "review": { + "port": 8765, + "player": "play.html", + "liveReloadWhenState": "USER_REVIEW", + "harnessFiles": ["run-local.sh", "serve.py"], + "note": "harnessFiles are the files in the prototype dir that are review chrome, not product surface. STATE 08's palette sweep and STATE 12's network sweep both exclude this one list — they used to keep separate lists, and the palette sweep reported the player's own colours as findings on every run. `player` is added automatically; do not repeat it here." + }, + + "prototype": { + "viewSelector": ".view", + "activeClass": "active", + "screenSelector": ".screen", + "sidSelector": "#sid", + "minVisibleNodes": 3, + "note": "The contract every harness reads. A flow state is a `viewSelector` element that carries `activeClass` when shown, `data-view` and `data-sid` attributes, and prints its screen id at `sidSelector`. minVisibleNodes is the paint threshold — keep it LOW. An empty state is sparse by design (an illustration, a headline, one line of copy), and a threshold tuned to a busy screen reports the correct rendering of an empty one as a failure. Raise it only if you have a genuinely blank screen it fails to catch." + }, + + "audit": { + "chrome": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", + "debugPort": 9333, + "servePort": 8791, + "tapTargetFloorPx": 44, + "colorAllowlist": [], + "colorBanned": [], + "benignConsole": ["favicon.ico"], + "note": "colorAllowlist is written by STATE 06 (ui-plan) and enforced by STATE 08. Empty = enforcement off." + }, + + "flowPages": { + "_note": "Screen-id prefix → the prototype page that implements it. Only needed when the page is not `.html` — e.g. { \"ONB\": \"index.html\" }. A prefix with no page is reported as N9, never silently skipped." + }, + + "designSystem": { + "name": "", + "sourceId": "", + "note": "Name the DS by source id. skills/06 recorded failure mode #1: a plan built on the wrong design system validates perfectly against it." + }, + + "figma": { + "fileKey": "", + "pages": {} + }, + + "loops": { + "L_CLARIFY": 3, + "L_RESEARCH": 2, + "L_UX_EDGE": 2, + "L_REVISION": 3, + "L_AUDIT_FIX": 3 + } +} diff --git a/design-toolkit/tools/README.md b/design-toolkit/tools/README.md new file mode 100644 index 0000000..82d9e8a --- /dev/null +++ b/design-toolkit/tools/README.md @@ -0,0 +1,121 @@ +# `tools/` — the validation engine + +[← Repository root](../README.md) · [Validation Engine](../VALIDATION_ENGINE.md) · [Architecture](../ARCHITECTURE.md) + +--- + +## Purpose + +Turn claims into exit codes. Nine Node ≥22 scripts, **zero dependencies**, all config-driven. + +Nothing product-specific lives in this folder. Every tool reads [`toolkit.config.json`](../toolkit.config.json) through [`config.mjs`](config.mjs). **Change a convention in the config, never in a tool.** + +| File | Runs at | Answers | +|---|---|---| +| [`smoke.mjs`](smoke.mjs) | 07 | Does this view paint, any console errors, any target under the floor? | +| [`audit.mjs`](audit.mjs) | 08 | The rendering-class audit: paint, targets, overflow, spill, contrast, script fonts, source sweeps. | +| [`navgraph.mjs`](navgraph.mjs) | 12 | Which screen leads to which screen — derived from the registry. | +| [`stategraph.mjs`](stategraph.mjs) | 12 | Within a screen, which states exist and what moves between them. | +| [`stateprobe.mjs`](stateprobe.mjs) | 12 | Does each state's hook actually **paint**? | +| [`annotate.mjs`](annotate.mjs) | 12 | Per edge: nav kind, motion, API call, guard — each with a resolved citation. | +| [`linkcheck.mjs`](linkcheck.mjs) | CI | Does every internal documentation link resolve, and every anchor name a heading that exists? | +| [`mermaidcheck.mjs`](mermaidcheck.mjs) | CI | Is every Mermaid block well formed, or does it render as a grey error box? | +| [`cdp.mjs`](cdp.mjs) | — | Headless Chrome driver. Not a validator. | +| [`config.mjs`](config.mjs) | — | Root resolution, defaults merge, absolute paths, shared arg parsing. Not a validator. | +| [`config.schema.json`](config.schema.json) | — | JSON Schema for `toolkit.config.json`, for editor completion. | + +## Inputs + +| Source | What comes from it | +|---|---| +| [`toolkit.config.json`](../toolkit.config.json) | viewport · paths · ports · Chrome path · tap-target floor · colour allowlist and ban list · review-chrome files · benign console entries · locales · scripts · the prototype harness contract | +| the repository's `*.md` files | what `linkcheck.mjs` and `mermaidcheck.mjs` read. They take no reference input — the documentation is the input | +| [`artifacts/prototype/`](../artifacts/) | the bytes being driven or swept | +| [`reference/screen-registry.csv`](../reference/) | the navigation model's single source | +| [`reference/state-machines.json`](../reference/) | per-screen transitions with `file:line` evidence, and the hook per state | +| [`reference/edge-annotations.json`](../reference/) | the six annotation fields per edge and frame | +| [`reference/audit-plan.json`](../reference/) | what STATE 08 drives, and the pass matrix. Optional — falls back to the state machines' hooks | +| `artifacts/navgraph.json` | `annotate.mjs` reads the derived edge set | + +## Outputs + +| Tool | JSON | Markdown | Other | +|---|---|---|---| +| `smoke.mjs` | — | — | stdout PASS/FAIL per view | +| `audit.mjs` | `artifacts/audit-data.json` | — | `artifacts/shots/*.png` | +| `navgraph.mjs` | `artifacts/navgraph.json` | `artifacts/navmap-report.md` | — | +| `stategraph.mjs` | `artifacts/stategraph.json` | `artifacts/statemap-report.md` | — | +| `stateprobe.mjs` | `artifacts/stateprobe.json` | — | optional screenshots | +| `annotate.mjs` | `artifacts/annotations.json` | `artifacts/annotate-report.md` | — | +| `linkcheck.mjs` | `--json `, off by default | — | stdout findings + a resolved/total count | +| `mermaidcheck.mjs` | `--json `, off by default | — | stdout findings + a block count | + +**Exit codes, universally:** `0` no findings at or above `--fail-on` · `1` findings · `2` tool error. + +The `1` / `2` distinction is load-bearing. A `2` means the check **did not run**, which is unevaluable, not passing. + +## Examples + +```bash +# STATE 07 — before handing anything to the audit +node tools/smoke.mjs "signin:main,error,reset" "home:dash,stack" + +# STATE 08 — then READ artifacts/shots/ +node tools/audit.mjs --shots artifacts/shots + +# STATE 12 — order matters: annotate reads navgraph.json +node tools/navgraph.mjs --fail-on major +node tools/stategraph.mjs --fail-on major +node tools/stateprobe.mjs +node tools/annotate.mjs --fail-on major + +# CI — no browser needed, so these run on every push +node tools/linkcheck.mjs --fail-on major +node tools/mermaidcheck.mjs --fail-on major +``` + +**Running against a different project root:** + +```bash +node tools/navgraph.mjs --root ../other-product --fail-on major +TOOLKIT_ROOT=../other-product node tools/audit.mjs +``` + +**As a gate check:** + +```bash +set -e +node tools/navgraph.mjs --fail-on major --quiet +node tools/stategraph.mjs --fail-on major --quiet +node tools/stateprobe.mjs --quiet +node tools/annotate.mjs --fail-on major --quiet +echo "READY FOR DEVELOPMENT — scoped to: " +``` + +**Typical output:** + +``` +navgraph: 48 screens · 106 edges · 46 cross-feature · findings 0 blocking / 2 major / 7 advisory + → artifacts/navgraph.json + → artifacts/navmap-report.md + MAJOR N9-deeplink SET: set.html exposes no query hook at all +``` + +## Best practices + +- **A failing probe is a hypothesis, not a finding.** Confirm at source before writing anything into a report. One audit's first run reported 60 failures with 3 real; one state probe reported 37 and **all 37 were the harness**. The catalogue of known false positives is in [VALIDATION_ENGINE.md § 10](../VALIDATION_ENGINE.md#10--the-false-positive-catalogue). +- **Correct the instrument; never waive an unconfirmed failure.** Record the correction, because an uncorrected harness re-reports the same noise next run. +- **Read the screenshots.** `audit.mjs` prints the reminder for a reason: four of one flow's six real defects were screenshot-only finds. +- **Keep `minVisibleNodes` low.** An empty state is sparse by design. A threshold tuned to a busy screen reports correct empty states as failures and blinds the check that catches genuinely blank ones. +- **Filter benign console entries by name**, never wholesale. `audit.benignConsole` exists so a missing favicon does not read as a product defect and a real 404 still does. +- **New product-specific value?** It goes in `toolkit.config.json` and comes through `config.mjs`. A hardcoded value in a tool is how a toolkit fossilises around its first product. +- **Keep dependencies at zero.** A verification layer that rots because of a transitive dependency is not a verification layer. +- **Two sweeps over the same directory must read one exclusion list.** `audit.mjs` sweeps the prototype dir for palette conformance and `annotate.mjs` sweeps it for network calls; both must skip the review chrome. They kept separate lists, they drifted, and the palette sweep reported the player's own colours on every run. The list is now `review.harnessFiles`, resolved once in `config.mjs` with the player always included. +- **A new validator must**: take `--root`, read its config through `config.mjs`, use the shared `SEVERITIES` ladder, distinguish exit `1` from exit `2`, and write both a JSON and a human-readable output. + +## Related + +- [`VALIDATION_ENGINE.md`](../VALIDATION_ENGINE.md) — every tool in detail: checks, output, failure classes, fixes +- [`WORKFLOW_GUIDE.md`](../WORKFLOW_GUIDE.md) — which state runs which tool, and what its exit criteria are +- [`docs/method-rules.md`](../docs/method-rules.md) — the M, W and E rules these tools enforce +- [`toolkit.config.json`](../toolkit.config.json) — everything the tools read diff --git a/design-toolkit/tools/annotate.mjs b/design-toolkit/tools/annotate.mjs new file mode 100644 index 0000000..710e5b2 --- /dev/null +++ b/design-toolkit/tools/annotate.mjs @@ -0,0 +1,322 @@ +#!/usr/bin/env node +/** + * annotate.mjs — Developer-annotation validator (STATE 12 / DWF-05, E6). + * + * navgraph.mjs answers "which screen leads to which screen". + * stategraph.mjs answers "within a screen, which states exist and what moves between them". + * This answers the question a developer asks *at the connector*: when the app takes this + * route, what kind of navigation is it, what moves on screen, what call does it make, and + * what has to be true first — plus, per frame, who is allowed in and what the OS must grant. + * + * Two inputs: + * artifacts/navgraph.json — the edge set (derived; this tool never invents an edge) + * reference/edge-annotations.json — the four fields per edge + two per frame, each one + * carrying the artifact or `file.html:line` it came from + * + * The load-bearing rule is E6's: **`UNKNOWN` is a legal value and a guessed value is not.** + * A blank field fails (V12). An `api` field filled with a plausible-looking endpoint is worse + * than an empty one, because the developer will build it — so this tool re-runs the network + * sweep itself rather than trusting the recorded claim, and it resolves every cited line + * against the frozen bytes. + * + * Usage: + * node tools/annotate.mjs [--root ] [--json ] [--md ] + * [--fail-on blocking|major|advisory] [--quiet] + * + * Exit codes: 0 = no findings at or above --fail-on, 1 = findings, 2 = tool error. + */ + +import fs from 'node:fs'; +import path from 'node:path'; +import { loadConfig, parseArgs, SEVERITIES } from './config.mjs'; + +// ---------------------------------------------------------------- args + config + +const { arg, has } = parseArgs(); +const CFG = loadConfig(arg('--root', null)); + +const ROOT = CFG.root; +const ARTIFACTS = CFG.paths.artifacts; +const NAVGRAPH = path.join(ARTIFACTS, 'navgraph.json'); +const ANNOTATIONS = CFG.paths.edgeAnnotations; +const PROTO_DIR = CFG.paths.prototype; +const OUT_JSON = arg('--json', path.join(ARTIFACTS, 'annotations.json')); +const OUT_MD = arg('--md', path.join(ARTIFACTS, 'annotate-report.md')); +const QUIET = has('--quiet'); + +const FAIL_ON = arg('--fail-on', 'blocking'); + +/** E6's closed value sets. Adding a value costs a justification in skills/12 §E6. */ +const NAV_KINDS = new Set(['push', 'replace', 'modal', 'sheet', 'tab', 'back', 'deep-link', 'UNKNOWN']); + +/** Files that live in the prototype dir but are review chrome, not product surface. + * Resolved in config.mjs (`review.harnessFiles`, always including the player) so + * this sweep and audit.mjs's palette sweep cannot drift apart. */ +const HARNESS_FILES = new Set(CFG.review.harnessFiles); +const AUTH_KINDS = new Set(['guest-ok', 'auth-required', 'premium', 'UNKNOWN']); + +/** Anything that opens a socket or issues a request. Kept broad on purpose. */ +const NETWORK_RE = /\bfetch\s*\(|XMLHttpRequest|WebSocket|sendBeacon|EventSource|\baxios\b|\$\.ajax\s*\(/; + +// ---------------------------------------------------------------- helpers + +const findings = []; +const finding = (severity, code, subject, detail) => findings.push({ severity, code, subject, detail }); + +const protoCache = new Map(); +function protoLines(file) { + if (!protoCache.has(file)) { + const p = path.join(PROTO_DIR, file); + protoCache.set(file, fs.existsSync(p) ? fs.readFileSync(p, 'utf8').split('\n') : null); + } + return protoCache.get(file); +} + +/** + * A source string is one of: + * `file.html:1234` a line in the frozen bytes + * `file.html:12,34` / `12-34` several lines / a range in one file + * `flows-x.md D3` a ratified guard in a flow document + * free text (`sweep 2026-…`, `o-n1`, …) — legal, and reported as unresolvable-by-tool + * Returns {kind, ok, detail}. + */ +function resolveSource(src) { + const cites = String(src).split('·').map((s) => s.trim()).filter(Boolean); + let sawResolvable = false; + for (const cite of cites) { + const m = cite.match(/^([a-z0-9_-]+\.html):([0-9,\-\s]+)/i); + if (m) { + sawResolvable = true; + const lines = protoLines(m[1]); + if (!lines) return { ok: false, detail: `cited file \`${m[1]}\` is not in artifacts/prototype/` }; + for (const part of m[2].split(',')) { + for (const n of part.split('-')) { + const num = parseInt(n.trim(), 10); + if (!Number.isFinite(num)) continue; + if (num < 1 || num > lines.length) + return { ok: false, detail: `\`${m[1]}:${num}\` is past the end of the file (${lines.length} lines)` }; + if (!lines[num - 1].trim()) + return { ok: false, detail: `\`${m[1]}:${num}\` is a blank line — the citation has drifted` }; + } + } + continue; + } + const d = cite.match(/^(flows[a-z0-9-]*\.md)\s+(D[0-9]+[a-z]?)/i); + if (d) { + sawResolvable = true; + const p = path.join(ARTIFACTS, d[1]); + if (!fs.existsSync(p)) return { ok: false, detail: `cited flow document \`${d[1]}\` does not exist` }; + const txt = fs.readFileSync(p, 'utf8'); + if (!new RegExp(`\\b${d[2]}\\b`).test(txt)) + return { ok: false, detail: `\`${d[1]}\` contains no guard \`${d[2]}\`` }; + } + } + return { ok: true, resolvable: sawResolvable }; +} + +function checkField(subject, name, field, opts = {}) { + if (!field || typeof field !== 'object') { + finding('blocking', 'E0-missing-field', subject, `no \`${name}\` annotation at all`); + return false; + } + const v = field.value; + if (v === undefined || v === null || String(v).trim() === '') { + finding('blocking', 'E1-blank', subject, `\`${name}\` is blank — V12 requires a value; UNKNOWN is legal, blank is not`); + return false; + } + if (!field.source || !String(field.source).trim()) { + finding('major', 'E2-uncited', subject, `\`${name}\` = \`${v}\` carries no source — an annotation that cannot be traced is an assertion`); + return false; + } + if (opts.enum && !opts.enum.has(v)) { + finding('major', 'E3-enum', subject, `\`${name}\` = \`${v}\` is outside the closed set (${[...opts.enum].join(' · ')})`); + return false; + } + const r = resolveSource(field.source); + if (!r.ok) finding('major', 'E4-evidence', subject, `\`${name}\`: ${r.detail}`); + return r.ok; +} + +// ---------------------------------------------------------------- build + +function build() { + if (!fs.existsSync(NAVGRAPH)) throw new Error(`missing ${path.relative(ROOT, NAVGRAPH)} — run navgraph.mjs first`); + if (!fs.existsSync(ANNOTATIONS)) throw new Error(`missing ${path.relative(ROOT, ANNOTATIONS)}`); + const nav = JSON.parse(fs.readFileSync(NAVGRAPH, 'utf8')); + const spec = JSON.parse(fs.readFileSync(ANNOTATIONS, 'utf8')); + + // -- A0: coverage. The edge set is navgraph's; this file may not add or drop one. + const key = (e) => `${e.from}→${e.to}${e.label ? ` (${e.label})` : ''}`; + const navKeys = nav.edges.map(key); + const annKeys = (spec.edges || []).map(key); + const seen = new Set(); + for (const k of annKeys) { + if (seen.has(k)) finding('major', 'E5-duplicate', k, 'annotated twice — one edge, one annotation'); + seen.add(k); + } + for (const k of navKeys) if (!seen.has(k)) finding('blocking', 'E6-uncovered', k, 'edge in navgraph.json with no annotation'); + const navSet = new Set(navKeys); + for (const k of annKeys) if (!navSet.has(k)) finding('major', 'E7-orphan', k, 'annotated edge that navgraph.json does not derive — fix the registry, not this file'); + + // -- per-edge fields + const byIndex = new Map(annKeys.map((k, i) => [k, spec.edges[i]])); + const edges = []; + for (const e of nav.edges) { + const a = byIndex.get(key(e)); + if (!a) continue; + const subject = key(e); + checkField(subject, 'nav', a.nav, { enum: NAV_KINDS }); + checkField(subject, 'anim', a.anim); + checkField(subject, 'api', a.api); + checkField(subject, 'guard', a.guard); + if (a.nav?.value === 'UNKNOWN') + finding('major', 'E8-no-call-site', subject, + `the registry derives this route and the frozen bytes contain no call site for it. ${a.nav.note || ''}`.trim()); + if (a.hook_only) + finding('advisory', 'E13-hook-only', subject, + `the route exists as a URL hook with no in-screen control behind it — navigable by QA, unreachable by a student. ${a.nav?.note || ''}`.trim()); + edges.push({ ...e, ...a }); + } + + // -- per-frame fields + const frames = {}; + for (const n of nav.nodes) { + const f = (spec.frames || {})[n.id]; + if (!f) { finding('blocking', 'E9-frame-uncovered', n.id, 'registry screen with no frame annotation'); continue; } + checkField(n.id, 'auth', f.auth, { enum: AUTH_KINDS }); + checkField(n.id, 'perm', f.perm); + frames[n.id] = { id: n.id, name: n.name, flow: n.flow, ...f }; + } + for (const id of Object.keys(spec.frames || {})) + if (!nav.nodes.some((n) => n.id === id)) finding('major', 'E10-frame-orphan', id, 'annotated frame that is not a registry screen'); + + // -- A5: re-run the network sweep rather than trusting the recorded `api` claim + const netHits = []; + for (const file of fs.readdirSync(PROTO_DIR).filter((f) => f.endsWith('.html'))) { + if (HARNESS_FILES.has(file)) continue; // review harness, not the app surface + (protoLines(file) || []).forEach((l, i) => { if (NETWORK_RE.test(l)) netHits.push(`${file}:${i + 1}`); }); + } + const simulated = edges.filter((e) => /^none \(simulated\)/.test(e.api?.value || '')); + if (netHits.length && simulated.length) + finding('blocking', 'E11-api-claim', 'api column', + `${simulated.length} edges claim \`none (simulated)\` and the sweep found ${netHits.length} network call site(s): ${netHits.slice(0, 5).join(', ')}`); + + // -- E12: an anim value naming an animation the cited file does not declare + for (const e of edges) { + const v = e.anim?.value || ''; + const m = v.match(/^([a-z][a-z0-9-]*)\s/i); + const src = String(e.anim?.source || '').match(/^([a-z0-9_-]+\.html):/i); + if (!m || !src || /^none/.test(v) || /^transform/.test(v) || /^UNKNOWN/.test(v)) continue; + const lines = protoLines(src[1]); + if (lines && !lines.some((l) => l.includes(`@keyframes ${m[1]}`))) + finding('major', 'E12-anim-undeclared', key(e), `\`${m[1]}\` is not declared in \`${src[1]}\``); + } + + // -- counts + const tally = (arr, f) => arr.reduce((a, x) => { const k = f(x); a[k] = (a[k] || 0) + 1; return a; }, {}); + const counts = { + edges: edges.length, + frames: Object.keys(frames).length, + nav: tally(edges, (e) => e.nav?.value), + anim: tally(edges, (e) => e.anim?.value), + api: tally(edges, (e) => e.api?.value), + auth: tally(Object.values(frames), (f) => f.auth?.value), + perm: tally(Object.values(frames), (f) => f.perm?.value), + unknown: { + nav: edges.filter((e) => e.nav?.value === 'UNKNOWN').length, + anim: edges.filter((e) => e.anim?.value === 'UNKNOWN').length, + api: edges.filter((e) => e.api?.value === 'UNKNOWN').length, + guard: edges.filter((e) => e.guard?.value === 'UNKNOWN').length, + auth: Object.values(frames).filter((f) => f.auth?.value === 'UNKNOWN').length, + perm: Object.values(frames).filter((f) => f.perm?.value === 'UNKNOWN').length, + }, + guardless: edges.filter((e) => e.guard?.value === 'none').length, + networkCallSites: netHits.length, + }; + + return { + generated_by: 'tools/annotate.mjs', + inputs: { + navgraph: path.relative(ROOT, NAVGRAPH), + annotations: path.relative(ROOT, ANNOTATIONS), + version: spec.version, + }, + rules: spec.rules || [], + counts, + edges, + frames, + findings, + }; +} + +// ---------------------------------------------------------------- report + +function report(g) { + const L = []; + const T = (o) => Object.entries(o).sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])); + L.push('# Developer Annotations — derivation report (E6)', ''); + L.push(`_Generated by \`${g.generated_by}\` from \`${g.inputs.navgraph}\` + \`${g.inputs.annotations}\` (\`${g.inputs.version}\`)._`, ''); + L.push('## Counts', ''); + L.push('| Metric | Value |', '|---|---|'); + L.push(`| Edges annotated | ${g.counts.edges} |`); + L.push(`| Frames annotated | ${g.counts.frames} |`); + L.push(`| Edges with a guard | ${g.counts.edges - g.counts.guardless} |`); + L.push(`| \`UNKNOWN\` values | nav ${g.counts.unknown.nav} · anim ${g.counts.unknown.anim} · api ${g.counts.unknown.api} · guard ${g.counts.unknown.guard} · auth ${g.counts.unknown.auth} · perm ${g.counts.unknown.perm} |`); + L.push(`| Network call sites in the prototype set | **${g.counts.networkCallSites}** |`); + L.push(''); + L.push('## Distribution', ''); + for (const [name, dist] of [['nav', g.counts.nav], ['anim', g.counts.anim], ['api', g.counts.api], ['auth (frames)', g.counts.auth], ['perm (frames)', g.counts.perm]]) { + L.push(`**${name}**`, '', '| Value | Count |', '|---|---|'); + for (const [k, v] of T(dist)) L.push(`| \`${k}\` | ${v} |`); + L.push(''); + } + L.push('## Findings', ''); + if (!g.findings.length) L.push('None.', ''); + else { + L.push('| Severity | Code | Subject | Detail |', '|---|---|---|---|'); + for (const s of SEVERITIES) for (const f of g.findings.filter((x) => x.severity === s)) + L.push(`| ${s} | \`${f.code}\` | ${f.subject} | ${f.detail} |`); + L.push(''); + } + L.push('## Edge annotations', ''); + let flow = null; + for (const e of g.edges) { + const f = e.from.split('-')[1]; + if (f !== flow) { flow = f; L.push(`### ${flow}`, '', '| Edge | nav | anim | api | guard |', '|---|---|---|---|---|'); } + const cell = (x) => `\`${x.value}\`
      ${x.source}`; + L.push(`| ${e.from} → ${e.to}${e.label ? ` ${e.label}` : ''} | ${cell(e.nav)} | ${cell(e.anim)} | ${cell(e.api)} | ${cell(e.guard)} |`); + } + L.push(''); + L.push('## Frame annotations', ''); + L.push('| Screen | auth | perm |', '|---|---|---|'); + for (const fr of Object.values(g.frames)) + L.push(`| ${fr.id} · ${fr.name} | \`${fr.auth.value}\` | \`${fr.perm.value}\` |`); + L.push(''); + return L.join('\n'); +} + +// ---------------------------------------------------------------- main + +let g; +try { + g = build(); +} catch (e) { + console.error(`annotate: ${e.message}`); + process.exit(2); +} + +fs.writeFileSync(OUT_JSON, JSON.stringify(g, null, 2)); +fs.writeFileSync(OUT_MD, report(g)); + +const cut = SEVERITIES.indexOf(FAIL_ON); +const failing = g.findings.filter((f) => SEVERITIES.indexOf(f.severity) <= cut); + +if (!QUIET) { + const c = (n) => g.findings.filter((f) => f.severity === n).length; + console.log(`annotate: ${g.counts.edges} edges · ${g.counts.frames} frames · ${g.counts.networkCallSites} network call sites`); + console.log(`findings: ${c('blocking')} blocking / ${c('major')} major / ${c('advisory')} advisory`); + for (const f of g.findings) console.log(` [${f.severity}] ${f.code} ${f.subject} — ${f.detail}`); + console.log(`wrote ${path.relative(ROOT, OUT_JSON)} · ${path.relative(ROOT, OUT_MD)}`); +} + +process.exit(failing.length ? 1 : 0); diff --git a/design-toolkit/tools/audit.mjs b/design-toolkit/tools/audit.mjs new file mode 100644 index 0000000..29bde1a --- /dev/null +++ b/design-toolkit/tools/audit.mjs @@ -0,0 +1,332 @@ +#!/usr/bin/env node +/** + * audit.mjs — STATE 08 `SELF_AUDIT` harness. + * + * Method rules carried from skills/08, and the reason each exists: + * M1 every assertion reads COMPUTED render state, never DOM presence + * (a node can exist, lay out and accept a click while painting nothing) + * M2 screenshots are evidence, not decoration + * M3 a failing assertion is a hypothesis until the probe itself is verified + * M4 sweep the source for the classes that do not show up on one screen + * + * Nothing about a specific product lives in this file. What to drive comes from + * `reference/audit-plan.json` (or, absent that, the hooks in + * `reference/state-machines.json`); the palette, tap-target floor, viewport and + * scripts come from `toolkit.config.json`. + * + * Usage: + * node tools/audit.mjs [--root ] [--plan ] [--shots ] + * [--json ] [--quiet] + * + * Exit codes: 0 = no defects, 1 = defects, 2 = tool error. + */ + +import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs'; +import path from 'node:path'; +import { launch, newPage, serve } from './cdp.mjs'; +import { loadConfig, parseArgs } from './config.mjs'; + +const { arg, has } = parseArgs(); +const CFG = loadConfig(arg('--root', null)); + +const PROTO = CFG.paths.prototype; +const SHOTS = arg('--shots', CFG.paths.shots); +const OUT = arg('--json', path.join(CFG.paths.artifacts, 'audit-data.json')); +const PLAN_FILE = arg('--plan', path.join(CFG.paths.reference, 'audit-plan.json')); +const QUIET = has('--quiet'); + +const FLOOR = CFG.audit.tapTargetFloorPx; +const ALLOW = new Set((CFG.audit.colorAllowlist || []).map((h) => h.toUpperCase())); +const SCRIPTS = CFG.product.scripts || []; +const BENIGN = CFG.audit.benignConsole || []; + +const die = (m) => { console.error(`audit: ${m}`); process.exit(2); }; + +if (!existsSync(PROTO)) die(`prototype dir not found: ${PROTO}`); +mkdirSync(SHOTS, { recursive: true }); + +// ------------------------------------------------------------------ the plan +// +// A plan is a list of URLs to drive and what each one claims to be. Deriving it +// beats maintaining it: STATE 07 B2 already requires a hook per flow state, and +// STATE 12's state-machines.json records them. The explicit file wins when present. + +function loadPlan() { + if (existsSync(PLAN_FILE)) return JSON.parse(readFileSync(PLAN_FILE, 'utf8')); + + const sm = CFG.paths.stateMachines; + if (!existsSync(sm)) { + die(`no ${path.relative(CFG.root, PLAN_FILE)} and no ${path.relative(CFG.root, sm)} — ` + + `nothing to drive. Write the plan (templates/audit-plan.json) or author the state machines first.`); + } + const spec = JSON.parse(readFileSync(sm, 'utf8')); + const screens = [], states = []; + for (const [id, m] of Object.entries(spec.screens || {})) { + for (const [state, node] of Object.entries(m.states || {})) { + if (!node.hook) continue; + const row = { id, state, url: node.hook, label: `${id}·${state}` }; + (state.startsWith('happy') ? screens : states).push(row); + } + } + return { + passes: [{ name: 'base', query: '' }], + screens, + states, + _derived: 'reference/state-machines.json hooks', + }; +} + +const plan = loadPlan(); +const passes = plan.passes?.length ? plan.passes : [{ name: 'base', query: '' }]; + +// ------------------------------------------------------------------ the probe +// +// Runs in the page. Everything it returns is computed style or measured geometry. + +const probeScreen = (opt) => { + const C = opt.contract; + const on = document.querySelector(`${C.viewSelector}.${C.activeClass}`) || + document.querySelector(C.screenSelector) || document.body; + const out = { + view: on.getAttribute?.('data-view') ?? null, + sid: on.getAttribute?.('data-sid') ?? null, + painted: false, small: [], overflow: false, spill: [], contrast: [], + script: [], contrastSkipped: 0, + }; + + const cs = getComputedStyle(on), r = on.getBoundingClientRect(); + out.painted = cs.display !== 'none' && cs.visibility === 'visible' && cs.opacity !== '0' && + r.width > opt.minW && r.height > opt.minH; + + // M1 — tap targets, measured as hit area on rendered elements only. + document.querySelectorAll('button,a,input,select,textarea,[role="switch"],[role="button"],[role="tab"],[tabindex="0"]').forEach((el) => { + const b = el.getBoundingClientRect(); + if (b.width === 0 || b.height === 0) return; + if (el.closest('[hidden]')) return; + if (getComputedStyle(el).visibility === 'hidden') return; + if (el.getAttribute('tabindex') === '-1') return; + if (b.width < opt.floor - 0.5 || b.height < opt.floor - 0.5) { + out.small.push(`${el.id || el.className || el.tagName} ${Math.round(b.width)}x${Math.round(b.height)}`); + } + }); + + // Content taller than its own box with overflow visible paints over its neighbours. + // Structural assertions never see this; a screenshot does. + on.querySelectorAll?.('[class]').forEach((el) => { + if (getComputedStyle(el).overflow !== 'visible') return; + if (el.getBoundingClientRect().height === 0) return; + if (el.scrollHeight > el.clientHeight + 2 && el.clientHeight > 0) { + out.spill.push(`${el.className} ${el.scrollHeight}>${el.clientHeight}`); + } + }); + + const sc = document.querySelector(C.screenSelector); + if (sc && sc.scrollWidth > sc.clientWidth + 1) out.overflow = true; + if (document.documentElement.scrollWidth > document.documentElement.clientWidth + 1) out.overflow = true; + + // M4 — every script must resolve on a stack that carries a face for it. CSS falls + // back PER GLYPH, so a token applied correctly over a stack with no such face is + // still a defect. + for (const s of opt.scripts) { + const re = new RegExp(`[${s.range}]`); + const walker = document.createTreeWalker(on, NodeFilter.SHOW_TEXT); + let n, seen = 0; + while ((n = walker.nextNode()) && seen < 400) { + if (!re.test(n.nodeValue || '')) continue; + const el = n.parentElement; if (!el) continue; + seen++; + const ff = getComputedStyle(el).fontFamily; + if (!new RegExp(s.fontMatch, 'i').test(ff)) { + out.script.push(`${s.name}: ${el.className || el.tagName} :: ${ff.slice(0, 60)}`); + } + } + } + + // Contrast, on COMPOSITED backgrounds. A semi-transparent layer over a colour is + // not that colour, and a gradient ancestor is not machine-readable as one — those + // are counted and left to the screenshot rather than asserted (M3). + const lum = (c) => { + const m = (c || '').match(/\d+(\.\d+)?/g); if (!m) return null; + const [r0, g0, b0] = m.slice(0, 3).map(Number).map((v) => { + v /= 255; return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4); + }); + return 0.2126 * r0 + 0.7152 * g0 + 0.0722 * b0; + }; + const parse = (c) => { const m = (c || '').match(/[\d.]+/g); return m ? { r: +m[0], g: +m[1], b: +m[2], a: m[3] === undefined ? 1 : +m[3] } : null; }; + const over = (fg, bg) => ({ r: fg.r * fg.a + bg.r * (1 - fg.a), g: fg.g * fg.a + bg.g * (1 - fg.a), b: fg.b * fg.a + bg.b * (1 - fg.a), a: 1 }); + const bgOf = (el) => { + const layers = []; let e = el; + while (e) { + const s = getComputedStyle(e); + if (/gradient/.test(s.backgroundImage)) return 'GRADIENT'; + const c = parse(s.backgroundColor); + if (c && c.a > 0) { layers.push(c); if (c.a >= 0.999) break; } + e = e.parentElement; + } + if (!layers.length) return getComputedStyle(document.body).backgroundColor; + let base = layers[layers.length - 1]; + if (base.a < 0.999) base = over(base, { r: 255, g: 255, b: 255, a: 1 }); + for (let i = layers.length - 2; i >= 0; i--) base = over(layers[i], base); + return `rgb(${Math.round(base.r)}, ${Math.round(base.g)}, ${Math.round(base.b)})`; + }; + [...on.querySelectorAll('p,b,h1,h2,h3,li,span')].slice(0, 30).forEach((el) => { + if (!el.textContent.trim()) return; + if (el.children.length) return; + const bg = bgOf(el); + if (bg === 'GRADIENT') { out.contrastSkipped++; return; } + const f = lum(getComputedStyle(el).color), g = lum(bg); + if (f == null || g == null) return; + const ratio = (Math.max(f, g) + 0.05) / (Math.min(f, g) + 0.05); + const size = parseFloat(getComputedStyle(el).fontSize); + const need = size >= 18.66 ? 3 : 4.5; + if (ratio < need) out.contrast.push(`${el.className || el.tagName} ${ratio.toFixed(2)}:1 need ${need}`); + }); + + return out; +}; + +// ------------------------------------------------------------------ M4 source sweeps +// +// Classes that are invisible on any single screen: off-palette values, duplicate +// keys in string/config objects, and network calls the docs claim do not exist. + +/** Files that live in the prototype dir but are review chrome, not product surface. + * Resolved in config.mjs (`review.harnessFiles`, always including the player), so + * this sweep and annotate.mjs's network sweep read one list. Without the + * exclusion the palette sweep reports the player's own chrome as off-palette on + * every run — 11 hexes on the first reference run, all confirmed at source, none + * of them app surface. A recurring false positive teaches a reader to stop + * reading the report (M3). */ +const HARNESS_FILES = new Set(CFG.review.harnessFiles); + +async function sweepSource() { + const { readdirSync } = await import('node:fs'); + const files = readdirSync(PROTO) + .filter((f) => /\.(html|js|css)$/.test(f)) + .filter((f) => !HARNESS_FILES.has(f)); + const findings = []; + const hexes = new Map(); + for (const f of files) { + const src = readFileSync(path.join(PROTO, f), 'utf8'); + + // Palette: strip CSS id selectors first — `#feed` is not a colour (a recorded + // false positive that cost a re-run). + const scrubbed = src.replace(/[#.][A-Za-z_][\w-]*\s*(?=[{,:.\s])/g, ' '); + for (const m of scrubbed.matchAll(/#[0-9A-Fa-f]{6}\b/g)) { + const hex = m[0].toUpperCase(); + hexes.set(hex, (hexes.get(hex) || 0) + 1); + } + + // Duplicate keys in object literals — the later definition silently wins, and + // one locale can hide the defect completely. + const keys = new Map(); + for (const m of src.matchAll(/^\s{2,}([A-Za-z_]\w*)\s*:\s*['"`]/gm)) { + keys.set(m[1], (keys.get(m[1]) || 0) + 1); + } + // Counted per file; a key legitimately repeats once per locale object, so the + // report states the count and the reviewer rules it (M6, never auto-resolved). + const dupes = [...keys].filter(([, n]) => n > (CFG.product.locales?.length || 1)); + if (dupes.length) findings.push({ file: f, kind: 'duplicate-keys', detail: dupes.map(([k, n]) => `${k}×${n}`).join(', ') }); + + if (/\b(fetch|XMLHttpRequest|WebSocket|sendBeacon|EventSource)\s*\(/.test(src)) { + findings.push({ file: f, kind: 'network-call-site', detail: 'page issues a real request — the handoff must say so' }); + } + } + const offPalette = ALLOW.size ? [...hexes].filter(([h]) => !ALLOW.has(h)) : []; + if (offPalette.length) { + findings.push({ file: '(set)', kind: 'off-palette', detail: offPalette.map(([h, n]) => `${h}×${n}`).join(', ') }); + } + return { findings, hexCount: hexes.size, files: files.length }; +} + +// ------------------------------------------------------------------ run + +const PORT = CFG.audit.servePort + 6, DBG = CFG.audit.debugPort + 4; +const srv = serve(PROTO, PORT); +await new Promise((r) => setTimeout(r, 700)); +const { proc } = await launch(DBG); + +const results = { product: CFG.product.slug, checks: [], defects: [], shots: 0, runs: 0, sweeps: null }; +const add = (id, ok, detail) => { + results.checks.push({ id, ok, detail }); + if (!ok) results.defects.push({ id, detail }); +}; + +const opt = { + floor: FLOOR, + scripts: SCRIPTS, + contract: CFG.prototype, + minW: Math.min(200, CFG.product.viewport.width * 0.5), + minH: Math.min(400, CFG.product.viewport.height * 0.45), +}; + +async function drive(url, label, shot) { + const page = await newPage(DBG); + await page.init(); + + // A failed request logs "Failed to load resource" with NO url attached, so the + // console alone cannot tell an app defect from environment noise. Capture the + // network response, which carries the url, and filter benign entries BY NAME + // (M3: the alternative is reporting a missing favicon as a product defect). + const netErrors = []; + page.on((m) => { + if (m.method !== 'Network.responseReceived') return; + const { status, url: u } = m.params.response; + if (status < 400) return; + if (!u.includes('127.0.0.1')) return; // external host — not this build + if (BENIGN.some((b) => u.includes(b))) return; + netErrors.push(`${status} ${u}`); + }); + + await page.goto(`http://127.0.0.1:${PORT}/${url.replace(/^\//, '')}`); + const r = await page.eval(probeScreen, opt); + const errs = page.consoleErrors() + .filter((e) => e && !/Failed to load resource/i.test(e)) + .filter((e) => !BENIGN.some((b) => String(e).includes(b))) + .concat(netErrors); + results.runs++; + if (shot) { await page.shot(path.join(SHOTS, `${shot}.png`)); results.shots++; } + await page.close(); + return { r, errs, label }; +} + +const rows = [...(plan.screens || []), ...(plan.states || [])]; +if (!rows.length) die('the plan drives nothing — no screens and no states'); + +for (const pass of passes) { + if (!QUIET) console.log(`— pass: ${pass.name} ${pass.query ? `(${pass.query})` : ''} —————————————`); + for (const row of rows) { + const sep = row.url.includes('?') ? '&' : '?'; + const url = pass.query ? `${row.url}${sep}${pass.query}` : row.url; + const tag = `${row.label || row.id}${pass.name === 'base' ? '' : ` [${pass.name}]`}`; + const shot = `${(row.label || row.id).toLowerCase().replace(/[^\w-]+/g, '-')}${pass.name === 'base' ? '' : `-${pass.name.replace(/\W+/g, '-')}`}`; + const { r, errs } = await drive(url, tag, shot); + + add(`${tag} paints`, r.painted, `painted=${r.painted} view=${r.view}`); + add(`${tag} no console errors`, errs.length === 0, errs.join(' | ')); + add(`${tag} ${FLOOR}px targets`, r.small.length === 0, r.small.slice(0, 4).join(', ')); + add(`${tag} no h-overflow`, !r.overflow, r.overflow ? 'scrollWidth > clientWidth' : ''); + add(`${tag} no content spill`, r.spill.length === 0, r.spill.slice(0, 3).join(' | ')); + add(`${tag} contrast`, r.contrast.length === 0, r.contrast.slice(0, 3).join(' | ')); + if (SCRIPTS.length) add(`${tag} script fonts`, r.script.length === 0, r.script.slice(0, 3).join(' | ')); + if (row.id && r.sid) add(`${tag} id matches registry`, r.sid === row.id, `page prints ${r.sid}`); + if (!QUIET) process.stdout.write(r.painted ? '.' : 'X'); + } + if (!QUIET) console.log(''); +} + +results.sweeps = await sweepSource(); +for (const f of results.sweeps.findings) add(`sweep ${f.kind} · ${f.file}`, false, f.detail); + +proc.kill(); srv.kill(); + +writeFileSync(OUT, JSON.stringify(results, null, 1)); +const pass = results.checks.length - results.defects.length; +console.log(`\n${pass} / ${results.checks.length} checks · ${results.runs} runs · ${results.shots} screenshots`); +console.log(`wrote ${path.relative(CFG.root, OUT)} · screenshots in ${path.relative(CFG.root, SHOTS)}`); +if (results.defects.length) { + console.log(`\n${results.defects.length} defect(s) — per M3, confirm each at source before writing it into audit-report.md:`); + for (const d of results.defects.slice(0, 40)) console.log(` ✗ ${d.id}${d.detail ? ` — ${d.detail}` : ''}`); +} +console.log('\nM2: the screenshots are part of this audit. Read them before writing the verdict.'); +process.exit(results.defects.length ? 1 : 0); diff --git a/design-toolkit/tools/cdp.mjs b/design-toolkit/tools/cdp.mjs new file mode 100644 index 0000000..1bec39e --- /dev/null +++ b/design-toolkit/tools/cdp.mjs @@ -0,0 +1,116 @@ +/* Minimal CDP driver — no dependencies (Node ≥22 global WebSocket/fetch). + Used by the STATE 08 audit, the STATE 12 state probe, and build-time smoke runs. + Rule from skills/08 M1: assertions read COMPUTED render state (visibility, + geometry, colour), never mere DOM presence. + + Product-specific values — browser binary and viewport — come from + toolkit.config.json, never from this file. */ +import { spawn } from 'node:child_process'; +import { loadConfig, parseArgs } from './config.mjs'; + +/* This module is a library, but it is only ever imported into a CLI process that + was handed the same argv. Reading `--root` from that argv is what makes the + flag mean the same thing here as in the tool that imported it. Without it the + viewport and the Chrome path came from cwd's config while every path came from + --root's config — two configs that agree until the day they do not, and the + symptom is an audit measuring the wrong viewport with no finding to show for + it (TK-3). */ +const CFG = loadConfig(parseArgs().root); +const CHROME = process.env.TOOLKIT_CHROME || CFG.audit.chrome; +const VP = CFG.product.viewport; + +export async function launch(port = CFG.audit.debugPort, { width = VP.width, height = VP.height } = {}) { + const proc = spawn(CHROME, [ + '--headless=new', `--remote-debugging-port=${port}`, '--disable-gpu', + '--no-first-run', '--no-default-browser-check', '--hide-scrollbars', + '--disable-features=Translate,MediaRouter', `--window-size=${width},${height}`, + `--user-data-dir=/tmp/toolkit-${CFG.product.slug}-chrome`, 'about:blank' + ], { stdio: 'ignore' }); + for (let i = 0; i < 100; i++) { + try { const r = await fetch(`http://127.0.0.1:${port}/json/version`); if (r.ok) break; } + catch { await new Promise(r => setTimeout(r, 100)); } + } + return { proc, port }; +} + +export async function newPage(port) { + const r = await fetch(`http://127.0.0.1:${port}/json/new?about:blank`, { method: 'PUT' }); + const t = await r.json(); + return connect(t.webSocketDebuggerUrl, t.id, port); +} + +function connect(wsUrl, targetId, port) { + const ws = new WebSocket(wsUrl); + let id = 0; + const waiters = new Map(); + const events = []; + const listeners = []; + const ready = new Promise((res, rej) => { ws.onopen = res; ws.onerror = rej; }); + ws.onmessage = (m) => { + const msg = JSON.parse(m.data); + if (msg.id && waiters.has(msg.id)) { + const { res, rej } = waiters.get(msg.id); waiters.delete(msg.id); + msg.error ? rej(new Error(msg.error.message)) : res(msg.result); + } else if (msg.method) { + events.push(msg); + listeners.forEach(fn => fn(msg)); + } + }; + const send = async (method, params = {}) => { + await ready; + const mid = ++id; + return new Promise((res, rej) => { waiters.set(mid, { res, rej }); ws.send(JSON.stringify({ id: mid, method, params })); }); + }; + return { + send, events, targetId, + on: (fn) => listeners.push(fn), + async init() { + await send('Page.enable'); await send('Runtime.enable'); await send('Log.enable'); + // Without this the shared user-data-dir serves a stale ds.css and the audit measures + // the PREVIOUS build — a fix can look like it did not land (probe discipline, M3). + await send('Network.enable'); await send('Network.setCacheDisabled', { cacheDisabled: true }); + await send('Emulation.setDeviceMetricsOverride', { + width: VP.width, height: VP.height, deviceScaleFactor: 2, + mobile: CFG.product.platform === 'mobile', + }); + }, + async goto(url, settle = 420) { + const loaded = new Promise(res => { + const fn = (m) => { if (m.method === 'Page.loadEventFired') res(); }; + listeners.push(fn); + }); + await send('Page.navigate', { url }); + await Promise.race([loaded, new Promise(r => setTimeout(r, 6000))]); + await new Promise(r => setTimeout(r, settle)); + }, + async eval(fn, arg) { + const expr = `(${fn.toString()})(${JSON.stringify(arg ?? null)})`; + const r = await send('Runtime.evaluate', { expression: expr, returnByValue: true, awaitPromise: true }); + if (r.exceptionDetails) throw new Error(r.exceptionDetails.exception?.description || 'eval error'); + return r.result.value; + }, + async shot(path) { + const r = await send('Page.captureScreenshot', { format: 'png' }); + const { writeFile } = await import('node:fs/promises'); + await writeFile(path, Buffer.from(r.data, 'base64')); + }, + consoleErrors() { + return events + .filter(e => (e.method === 'Runtime.consoleAPICalled' && e.params.type === 'error') || + (e.method === 'Runtime.exceptionThrown') || + (e.method === 'Log.entryAdded' && e.params.entry.level === 'error')) + .map(e => e.params.entry?.text || + e.params.exceptionDetails?.exception?.description || + (e.params.args || []).map(a => a.value ?? a.description).join(' ')); + }, + async close() { + try { await fetch(`http://127.0.0.1:${port}/json/close/${targetId}`); } catch {} + try { ws.close(); } catch {} + } + }; +} + +export function serve(dir, port = 8788) { + const p = spawn('python3', ['-m', 'http.server', String(port), '--bind', '127.0.0.1', '-d', dir], { stdio: 'ignore' }); + return p; +} diff --git a/design-toolkit/tools/config.mjs b/design-toolkit/tools/config.mjs new file mode 100644 index 0000000..9b2c7c8 --- /dev/null +++ b/design-toolkit/tools/config.mjs @@ -0,0 +1,159 @@ +/** + * config.mjs — the one place a tool learns where this product keeps its files. + * + * Every tool in this toolkit is product-agnostic. What differs between products + * is paths, viewport, palette and ports — all of which live in + * `toolkit.config.json` at the project root, never in a tool. + * + * Usage in a tool: + * import { loadConfig } from './config.mjs'; + * const cfg = loadConfig(argRoot); // argRoot = the tool's --root flag, or null + * cfg.paths.registry // absolute path + * cfg.product.viewport.width + * + * Resolution order for the root: --root flag → $TOOLKIT_ROOT → nearest ancestor + * of cwd containing toolkit.config.json → cwd. + */ + +import fs from 'node:fs'; +import path from 'node:path'; + +const CONFIG_NAME = 'toolkit.config.json'; + +const DEFAULTS = { + product: { + name: 'Unnamed product', + slug: 'product', + platform: 'mobile', + viewport: { width: 393, height: 852 }, + locales: ['en'], + scripts: [], + }, + paths: { + artifacts: 'artifacts', + reference: 'reference', + prototype: 'artifacts/prototype', + shots: 'artifacts/shots', + state: 'state/machine_state.yaml', + registry: 'reference/screen-registry.csv', + lanes: 'reference/nav-lanes.json', + stateMachines: 'reference/state-machines.json', + vocabulary: 'reference/state-vocabulary.md', + edgeAnnotations: 'reference/edge-annotations.json', + }, + screens: { + idPattern: '^S-[A-Z0-9]+-[0-9]+[A-Z]?$', + flowSectionFormat: 'FLOW-XXX • Journey Name', + }, + review: { + port: 8765, + player: 'play.html', + liveReloadWhenState: 'USER_REVIEW', + // Files that live in the prototype dir and are review chrome, not product + // surface. `player` is always added to this set — see resolution below. + harnessFiles: ['run-local.sh', 'serve.py'], + }, + prototype: { + viewSelector: '.view', + activeClass: 'active', + screenSelector: '.screen', + sidSelector: '#sid', + minVisibleNodes: 3, + }, + audit: { + chrome: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', + debugPort: 9333, + servePort: 8791, + tapTargetFloorPx: 44, + colorAllowlist: [], + colorBanned: [], + benignConsole: ['favicon.ico'], + }, + flowPages: {}, // screen-id prefix → prototype page, when it is not `.html` + designSystem: { name: '', sourceId: '' }, + figma: { fileKey: '', pages: {} }, + loops: { L_CLARIFY: 3, L_RESEARCH: 2, L_UX_EDGE: 2, L_REVISION: 3, L_AUDIT_FIX: 3 }, +}; + +/** Shallow-per-section merge: a product overrides keys, never whole sections. */ +function merge(base, over) { + const out = { ...base }; + for (const [k, v] of Object.entries(over || {})) { + out[k] = v && typeof v === 'object' && !Array.isArray(v) && typeof base[k] === 'object' + ? merge(base[k], v) + : v; + } + return out; +} + +export function findRoot(explicit = null) { + if (explicit) return path.resolve(explicit); + if (process.env.TOOLKIT_ROOT) return path.resolve(process.env.TOOLKIT_ROOT); + let dir = process.cwd(); + for (let i = 0; i < 12; i++) { + if (fs.existsSync(path.join(dir, CONFIG_NAME))) return dir; + const up = path.dirname(dir); + if (up === dir) break; + dir = up; + } + return process.cwd(); +} + +export function loadConfig(explicitRoot = null) { + const root = findRoot(explicitRoot); + const file = path.join(root, CONFIG_NAME); + let raw = {}; + if (fs.existsSync(file)) { + try { + raw = JSON.parse(fs.readFileSync(file, 'utf8')); + } catch (e) { + throw new Error(`${CONFIG_NAME} is not valid JSON: ${e.message}`); + } + } + delete raw.$schema; + const cfg = merge(DEFAULTS, raw); + + // The review player is harness chrome by definition, so it is always in the + // set — a product should not have to remember to list it. Resolved once, here, + // because two tools sweep the prototype dir for two different things and both + // must exclude the SAME files. Them disagreeing is what produced TK-1: the + // palette sweep reported the player's own colours as off-palette on every run, + // while the network sweep beside it already knew to skip the file. + cfg.review.harnessFiles = [...new Set([cfg.review.player, ...(cfg.review.harnessFiles || [])])]; + + // Resolve every path to absolute, once, here — so no tool ever joins a path itself. + const abs = {}; + for (const [k, v] of Object.entries(cfg.paths)) abs[k] = path.resolve(root, v); + + return { ...cfg, root, configFile: fs.existsSync(file) ? file : null, paths: abs, rel: cfg.paths }; +} + +/** Shared arg parsing so every tool takes the same flags. */ +export function parseArgs(argv = process.argv.slice(2)) { + const arg = (flag, dflt = null) => { + const i = argv.indexOf(flag); + return i === -1 ? dflt : argv[i + 1]; + }; + const has = (flag) => argv.includes(flag); + return { argv, arg, has, root: arg('--root', null), quiet: has('--quiet') }; +} + +export const SEVERITIES = ['blocking', 'major', 'advisory']; + +/** + * The closed state vocabulary (E5). Defined once, here, because it is enforced + * by two separate tools — `navgraph.mjs` (`N11-state-vocab`) and + * `stategraph.mjs` (`S1-vocab`) — and documented in a third place, the product's + * vocabulary file (`paths.vocabulary`). Three copies of a set is three chances + * for two of them to disagree, and a vocabulary that disagrees with itself is + * not a closed set. + * + * It is a toolkit constant, not a product setting. A per-product term set would + * make every product's state machine private again, which is the failure E5 + * exists to prevent. Adding a term costs a justification written into the + * product's vocabulary file AND an edit here — deliberately two steps. + */ +export const CANON_STATES = new Set([ + 'happy', 'loading', 'empty', 'error', 'fail', 'success', 'in-progress', + 'timeout', 'guest', 'locked', 'confirm', 'filtered', 'offline', 'permission-denied', +]); diff --git a/design-toolkit/tools/config.schema.json b/design-toolkit/tools/config.schema.json new file mode 100644 index 0000000..e7bbe68 --- /dev/null +++ b/design-toolkit/tools/config.schema.json @@ -0,0 +1,108 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "toolkit.config.json", + "description": "Everything a product owns. No tool in this toolkit contains a product-specific value; they all read this file via tools/config.mjs.", + "type": "object", + "properties": { + "product": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "slug": { "type": "string", "pattern": "^[a-z0-9-]+$" }, + "platform": { "enum": ["mobile", "desktop", "tablet", "responsive"] }, + "viewport": { + "type": "object", + "properties": { "width": { "type": "number" }, "height": { "type": "number" } }, + "required": ["width", "height"] + }, + "locales": { "type": "array", "items": { "type": "string" } }, + "scripts": { + "type": "array", + "description": "Every writing system the product renders. STATE 08 proves each resolves on a stack carrying a face for it — CSS falls back per glyph.", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "range": { "type": "string", "description": "character-class body, e.g. \\u1780-\\u17FF" }, + "fontMatch": { "type": "string", "description": "regex the computed font-family must match" } + }, + "required": ["name", "range", "fontMatch"] + } + } + }, + "required": ["slug", "viewport"] + }, + "paths": { + "type": "object", + "description": "All relative to the repo root. Resolved to absolute once, in config.mjs.", + "properties": { + "artifacts": { "type": "string" }, + "reference": { "type": "string" }, + "prototype": { "type": "string" }, + "shots": { "type": "string" }, + "state": { "type": "string" }, + "registry": { "type": "string" }, + "lanes": { "type": "string" }, + "stateMachines": { "type": "string" }, + "vocabulary": { "type": "string" }, + "edgeAnnotations": { "type": "string" } + } + }, + "screens": { + "type": "object", + "properties": { + "idPattern": { "type": "string" }, + "flowSectionFormat": { "type": "string" } + } + }, + "review": { + "type": "object", + "properties": { + "port": { "type": "number" }, + "player": { "type": "string" }, + "liveReloadWhenState": { "type": "string" }, + "harnessFiles": { + "type": "array", + "items": { "type": "string" }, + "description": "Files in the prototype dir that are review chrome, not product surface. Excluded from the STATE 08 palette sweep and the STATE 12 network sweep — both read this one list. `player` is always included; do not repeat it." + } + } + }, + "audit": { + "type": "object", + "properties": { + "chrome": { "type": "string" }, + "debugPort": { "type": "number" }, + "servePort": { "type": "number" }, + "tapTargetFloorPx": { "type": "number", "description": "The number STATE 04 commits to and STATE 08 checks. Set it to what you will actually build." }, + "colorAllowlist": { "type": "array", "items": { "type": "string" } }, + "colorBanned": { "type": "array", "items": { "type": "string" } }, + "benignConsole": { "type": "array", "items": { "type": "string" }, "description": "Filter known-benign console entries BY NAME, never wholesale." } + } + }, + "designSystem": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "sourceId": { "type": "string", "description": "A DS reference without an id is unverifiable — and a plan built on the wrong design system validates perfectly against it." } + } + }, + "figma": { + "type": "object", + "properties": { + "fileKey": { "type": "string" }, + "pages": { "type": "object" } + } + }, + "loops": { + "type": "object", + "properties": { + "L_CLARIFY": { "type": "number" }, + "L_RESEARCH": { "type": "number" }, + "L_UX_EDGE": { "type": "number" }, + "L_REVISION": { "type": "number" }, + "L_AUDIT_FIX": { "type": "number" } + } + } + } +} diff --git a/design-toolkit/tools/linkcheck.mjs b/design-toolkit/tools/linkcheck.mjs new file mode 100644 index 0000000..43b3c68 --- /dev/null +++ b/design-toolkit/tools/linkcheck.mjs @@ -0,0 +1,198 @@ +#!/usr/bin/env node +/** + * linkcheck.mjs — documentation integrity: every internal link resolves. + * + * Why this is a tool and not a chore. This repository's documentation is a + * navigable set, not a pile of files: a skill README points at its spec, the + * spec points back, the workflow guide points at both. A broken link in that set + * is the same class of defect as a dead deep-link hook in a prototype — the + * structure claims a destination that is not there — and the toolkit's own rule + * is that a claim nobody re-checks is a claim that rots. `M6`: record what you + * cannot verify; do not assert it. + * + * Scope, stated because a scope claim belongs inside the claim: + * - Internal links only. `http(s):` and `mailto:` targets are NOT fetched — + * network state is not a property of this repository, and a check that fails + * on someone else's outage teaches readers to ignore it. + * - Links inside fenced code blocks are skipped. They are examples, not links. + * - Anchors are resolved against the target file's headings, using GitHub's + * slug rule including its `-1`, `-2` disambiguation for repeated headings. + * + * Usage: + * node tools/linkcheck.mjs [--root ] [--fail-on ] + * [--json ] [--quiet] + * + * Findings: + * D1-missing blocking link target file or directory does not exist + * D2-anchor blocking fragment has no matching heading in the target + * D3-dir advisory link to a directory that has no README.md to render + * + * Exit codes: 0 = nothing at or above --fail-on, 1 = findings, 2 = tool error. + */ + +import fs from 'node:fs'; +import path from 'node:path'; +import { loadConfig, parseArgs, SEVERITIES } from './config.mjs'; + +const { arg, has } = parseArgs(); +const QUIET = has('--quiet'); +const FAIL_ON = arg('--fail-on', 'blocking'); +const OUT_JSON = arg('--json', null); + +const die = (m) => { console.error(`linkcheck: ${m}`); process.exit(2); }; + +if (!SEVERITIES.includes(FAIL_ON)) die(`--fail-on must be one of ${SEVERITIES.join(', ')}`); + +let ROOT; +try { ROOT = loadConfig(arg('--root', null)).root; } catch (e) { die(e.message); } +if (!fs.existsSync(ROOT)) die(`root not found: ${ROOT}`); + +const SKIP_DIRS = new Set(['.git', 'node_modules', '.DS_Store']); +const rel = (p) => path.relative(ROOT, p) || '.'; + +const findings = []; +const F = (severity, code, subject, detail) => findings.push({ severity, code, subject, detail }); + +// ------------------------------------------------------------------ discovery + +function walk(dir, out = []) { + let entries; + try { entries = fs.readdirSync(dir, { withFileTypes: true }); } + catch (e) { die(`cannot read ${rel(dir)}: ${e.message}`); } + for (const e of entries) { + if (SKIP_DIRS.has(e.name)) continue; + const p = path.join(dir, e.name); + if (e.isDirectory()) walk(p, out); + else if (e.name.endsWith('.md')) out.push(p); + } + return out; +} + +const files = walk(ROOT).sort(); +if (!files.length) die(`no markdown files under ${rel(ROOT)}`); + +// ------------------------------------------------------------------ parsing +// +// One pass per file yields both the heading set and the link list, because both +// need the same fenced-block state and reading the file twice invites the two +// passes to disagree about where a fence started. + +/** GitHub's heading slug: lowercase, drop everything that is not word/space/hyphen, + * trim, then replace each space with a hyphen. Repeats get `-1`, `-2`, … in + * document order. + * + * The per-character replacement is the part that is easy to get wrong, and + * getting it wrong is worse than not checking. `## 1 · High-level architecture` + * loses the `·` and keeps BOTH surrounding spaces, so the anchor is + * `#1--high-level-architecture` with two hyphens. Collapsing whitespace here + * reports 167 correct links as broken — which is exactly the recurring false + * positive that teaches a reader to stop reading the report (M3). */ +const slugify = (h) => h.toLowerCase().replace(/[^\w\s-]/g, '').trim().replace(/\s/g, '-'); + +const LINK_RE = /\[([^\]]*)\]\(([^)\s]+)\)/g; + +function parse(file) { + let src; + try { src = fs.readFileSync(file, 'utf8'); } + catch (e) { die(`cannot read ${rel(file)}: ${e.message}`); } + + const anchors = new Set(); + const seen = new Map(); + const links = []; + let fence = null; + + src.split('\n').forEach((line, i) => { + const f = /^\s*(```+|~~~+)/.exec(line); + if (f) { + if (fence === null) fence = f[1][0]; + else if (f[1][0] === fence) fence = null; + return; + } + if (fence !== null) return; + + const h = /^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(line); + if (h) { + const base = slugify(h[2]); + const n = seen.get(base) ?? 0; + seen.set(base, n + 1); + anchors.add(n === 0 ? base : `${base}-${n}`); + return; + } + + for (const m of line.matchAll(LINK_RE)) links.push({ target: m[2], line: i + 1 }); + }); + + return { anchors, links }; +} + +const parsed = new Map(files.map((f) => [f, parse(f)])); + +// ------------------------------------------------------------------ resolution + +let checked = 0; + +for (const file of files) { + const { links } = parsed.get(file); + const where = (l) => `${rel(file)}:${l.line}`; + + for (const l of links) { + if (/^(https?:|mailto:|tel:|data:)/i.test(l.target)) continue; // out of scope, by design + checked++; + + // A bare fragment resolves inside this file. + if (l.target.startsWith('#')) { + const frag = decodeURIComponent(l.target.slice(1)); + if (!parsed.get(file).anchors.has(frag)) + F('blocking', 'D2-anchor', where(l), `no heading in this file produces "#${frag}"`); + continue; + } + + const [relPath, frag] = l.target.split('#'); + const abs = path.resolve(path.dirname(file), decodeURIComponent(relPath)); + + if (!fs.existsSync(abs)) { + F('blocking', 'D1-missing', where(l), `target does not exist: ${l.target}`); + continue; + } + + if (fs.statSync(abs).isDirectory()) { + if (!fs.existsSync(path.join(abs, 'README.md'))) + F('advisory', 'D3-dir', where(l), + `${l.target} is a directory with no README.md — it renders as a file listing`); + continue; + } + + if (!frag) continue; + if (!abs.endsWith('.md')) continue; // a fragment on a non-markdown target is not ours to resolve + + const target = parsed.get(abs); + if (!target) continue; // outside the scanned tree + if (!target.anchors.has(decodeURIComponent(frag))) + F('blocking', 'D2-anchor', where(l), `${relPath} has no heading producing "#${frag}"`); + } +} + +// ------------------------------------------------------------------ report + +const order = (s) => SEVERITIES.indexOf(s); +findings.sort((a, b) => order(a.severity) - order(b.severity) || a.subject.localeCompare(b.subject)); + +const counts = Object.fromEntries(SEVERITIES.map((s) => [s, findings.filter((f) => f.severity === s).length])); + +if (!QUIET) { + for (const f of findings) console.log(`${f.severity.padEnd(8)} ${f.code.padEnd(12)} ${f.subject} — ${f.detail}`); + const broken = counts.blocking + counts.major; + console.log(`\n${checked - broken}/${checked} internal links resolve · ` + + `${counts.blocking} blocking · ${counts.major} major · ${counts.advisory} advisory ` + + `· ${files.length} files`); +} + +if (OUT_JSON) { + try { + fs.mkdirSync(path.dirname(path.resolve(OUT_JSON)), { recursive: true }); + fs.writeFileSync(OUT_JSON, JSON.stringify({ root: ROOT, files: files.length, checked, counts, findings }, null, 2)); + } catch (e) { die(`cannot write ${OUT_JSON}: ${e.message}`); } +} + +const gate = SEVERITIES.slice(0, SEVERITIES.indexOf(FAIL_ON) + 1); +process.exit(findings.some((f) => gate.includes(f.severity)) ? 1 : 0); diff --git a/design-toolkit/tools/mermaidcheck.mjs b/design-toolkit/tools/mermaidcheck.mjs new file mode 100644 index 0000000..28a1a79 --- /dev/null +++ b/design-toolkit/tools/mermaidcheck.mjs @@ -0,0 +1,159 @@ +#!/usr/bin/env node +/** + * mermaidcheck.mjs — documentation integrity: every Mermaid block is well formed. + * + * Why this exists. The diagrams in this repository are load-bearing: the state + * machine, the artifact pipeline and the gate sequence are explained by a diagram + * first and by prose second. A block that fails to parse renders on GitHub as a + * grey error box, and the reader loses the explanation without being told they + * lost anything — a silent failure, which is the class this toolkit exists to + * make loud. + * + * Scope, stated plainly: this is a **syntax smell** check, not a Mermaid parser. + * It catches the three mistakes that actually shipped here — an unclosed fence, + * an unrecognised diagram type, and an unbalanced quote — and it flags one more + * as advisory. It cannot prove a block renders. Rendering is proved by looking at + * the page (`M2`), and this check is what stops you looking for the wrong reason. + * + * Usage: + * node tools/mermaidcheck.mjs [--root ] [--fail-on ] + * [--json ] [--quiet] + * + * Findings: + * D4-type blocking first token is not a recognised diagram type + * D5-quotes major odd number of `"` on a line — an unterminated label + * D6-unclosed blocking a ```mermaid fence that never closes + * D7-parens advisory parentheses inside an unquoted square-bracket label + * + * Exit codes: 0 = nothing at or above --fail-on, 1 = findings, 2 = tool error. + */ + +import fs from 'node:fs'; +import path from 'node:path'; +import { loadConfig, parseArgs, SEVERITIES } from './config.mjs'; + +const { arg, has } = parseArgs(); +const QUIET = has('--quiet'); +const FAIL_ON = arg('--fail-on', 'blocking'); +const OUT_JSON = arg('--json', null); + +const die = (m) => { console.error(`mermaidcheck: ${m}`); process.exit(2); }; + +if (!SEVERITIES.includes(FAIL_ON)) die(`--fail-on must be one of ${SEVERITIES.join(', ')}`); + +let ROOT; +try { ROOT = loadConfig(arg('--root', null)).root; } catch (e) { die(e.message); } +if (!fs.existsSync(ROOT)) die(`root not found: ${ROOT}`); + +/** Every diagram type used or plausibly usable here. A type outside this set is + * far more often a typo than a new Mermaid feature — but when it IS a new + * feature, adding it is one line, and the finding told you to look. */ +const TYPES = new Set([ + 'flowchart', 'graph', 'stateDiagram', 'stateDiagram-v2', 'sequenceDiagram', + 'classDiagram', 'erDiagram', 'journey', 'gantt', 'pie', 'quadrantChart', + 'requirementDiagram', 'gitGraph', 'mindmap', 'timeline', 'sankey-beta', + 'xychart-beta', 'block-beta', 'packet-beta', 'architecture-beta', 'C4Context', +]); + +/** Node shapes whose own delimiters contain brackets or parentheses. These must be + * recognised BEFORE the label scan, or every cylinder `db[(Store)]` and stadium + * `s([Go])` reports as an unquoted paren. That false positive is not + * hypothetical: the throwaway version of this script produced twelve of them on + * its first run, and every one was a valid shape. A check that cries wolf gets + * skimmed, and a skimmed check is not a check (`M3`). */ +const COMPOUND_SHAPE = /^\s*[\w-]+\s*(\[\(|\(\[|\[\[|\(\(|\{\{|\[\/|\[\\|>)/; + +const SKIP_DIRS = new Set(['.git', 'node_modules']); +const rel = (p) => path.relative(ROOT, p) || '.'; + +const findings = []; +const F = (severity, code, subject, detail) => findings.push({ severity, code, subject, detail }); + +function walk(dir, out = []) { + let entries; + try { entries = fs.readdirSync(dir, { withFileTypes: true }); } + catch (e) { die(`cannot read ${rel(dir)}: ${e.message}`); } + for (const e of entries) { + if (SKIP_DIRS.has(e.name)) continue; + const p = path.join(dir, e.name); + if (e.isDirectory()) walk(p, out); + else if (e.name.endsWith('.md')) out.push(p); + } + return out; +} + +const files = walk(ROOT).sort(); +let blocks = 0; + +for (const file of files) { + let lines; + try { lines = fs.readFileSync(file, 'utf8').split('\n'); } + catch (e) { die(`cannot read ${rel(file)}: ${e.message}`); } + + let open = false, startLine = 0, body = []; + + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + + if (!open && /^\s*```+\s*mermaid\s*$/.test(line)) { + open = true; startLine = i + 1; body = []; + continue; + } + if (open && /^\s*```+\s*$/.test(line)) { + open = false; blocks++; + checkBlock(file, startLine, body); + continue; + } + if (open) body.push({ text: line, line: i + 1 }); + } + + if (open) + F('blocking', 'D6-unclosed', `${rel(file)}:${startLine}`, + 'a ```mermaid fence opens here and never closes — everything below it renders as diagram source'); +} + +function checkBlock(file, startLine, body) { + const at = (n) => `${rel(file)}:${n}`; + + const first = body.find((b) => b.text.trim() && !b.text.trim().startsWith('%%')); + const type = first ? first.text.trim().split(/[\s:]+/)[0] : ''; + if (!TYPES.has(type)) + F('blocking', 'D4-type', at(first ? first.line : startLine), + `"${type || '(empty block)'}" is not a recognised diagram type`); + + for (const b of body) { + if ((b.text.match(/"/g) || []).length % 2) + F('major', 'D5-quotes', at(b.line), + `odd number of quotes — unterminated label: ${b.text.trim().slice(0, 72)}`); + + if (!/^(flowchart|graph)$/.test(type)) continue; + if (COMPOUND_SHAPE.test(b.text)) continue; + const m = /^\s*[\w-]+\[([^"\]]*)\]/.exec(b.text); + if (m && /[()]/.test(m[1])) + F('advisory', 'D7-parens', at(b.line), + `parentheses in an unquoted label — quote it: ${b.text.trim().slice(0, 72)}`); + } +} + +// ------------------------------------------------------------------ report + +const order = (s) => SEVERITIES.indexOf(s); +findings.sort((a, b) => order(a.severity) - order(b.severity) || a.subject.localeCompare(b.subject)); + +const counts = Object.fromEntries(SEVERITIES.map((s) => [s, findings.filter((f) => f.severity === s).length])); + +if (!QUIET) { + for (const f of findings) console.log(`${f.severity.padEnd(8)} ${f.code.padEnd(12)} ${f.subject} — ${f.detail}`); + console.log(`\n${blocks} mermaid blocks in ${files.length} files · ` + + `${counts.blocking} blocking · ${counts.major} major · ${counts.advisory} advisory`); +} + +if (OUT_JSON) { + try { + fs.mkdirSync(path.dirname(path.resolve(OUT_JSON)), { recursive: true }); + fs.writeFileSync(OUT_JSON, JSON.stringify({ root: ROOT, files: files.length, blocks, counts, findings }, null, 2)); + } catch (e) { die(`cannot write ${OUT_JSON}: ${e.message}`); } +} + +const gate = SEVERITIES.slice(0, SEVERITIES.indexOf(FAIL_ON) + 1); +process.exit(findings.some((f) => gate.includes(f.severity)) ? 1 : 0); diff --git a/design-toolkit/tools/navgraph.mjs b/design-toolkit/tools/navgraph.mjs new file mode 100644 index 0000000..c773fcb --- /dev/null +++ b/design-toolkit/tools/navgraph.mjs @@ -0,0 +1,482 @@ +#!/usr/bin/env node +/** + * navgraph.mjs — Navigation graph extractor + validator (STATE 12 / DWF-05). + * + * Reads the canonical screen registry (and, when present, the prototype pages + * and per-flow handoffs) and derives the machine-checkable navigation model + * that the Figma flow visualization is generated from and validated against. + * + * It is deliberately a *derivation*, not an authoring surface: every edge it + * emits is traceable to a registry cell. If the diagram and this output + * disagree, the diagram is wrong. + * + * Usage: + * node tools/navgraph.mjs [--root ] [--json ] [--md ] + * [--fail-on blocking|major|advisory] [--quiet] + * + * Exit codes: 0 = no findings at or above --fail-on, 1 = findings, 2 = tool error. + */ + +import fs from 'node:fs'; +import path from 'node:path'; +import { loadConfig, parseArgs, SEVERITIES, CANON_STATES } from './config.mjs'; + +// ---------------------------------------------------------------- args + config + +const { arg, has } = parseArgs(); +const CFG = loadConfig(arg('--root', null)); + +const ROOT = CFG.root; +const REGISTRY = CFG.paths.registry; +const LANES = CFG.paths.lanes; +const PROTO_DIR = CFG.paths.prototype; +const ARTIFACTS = CFG.paths.artifacts; +const OUT_JSON = arg('--json', path.join(ARTIFACTS, 'navgraph.json')); +const OUT_MD = arg('--md', path.join(ARTIFACTS, 'navmap-report.md')); +const QUIET = has('--quiet'); + +/** Severity ladder (from config.mjs). `--fail-on` names the lowest rung that fails. */ +const FAIL_ON = arg('--fail-on', 'blocking'); + +// Tokens that are legitimately not screens. Anything else that fails to parse +// is reported, never silently dropped. +const EXTERNALS = new Set([ + 'app launch', 'app-launch', 'cold launch', 'exit', 'app exit', 'os back', + 'deep link', 'push notification', 'external', 'browser', 'system', +]); + +// A screen that terminates on purpose declares it here, with the reason. +// Absence from this map is what turns a terminal into a finding. +const TERMINAL_JUSTIFICATIONS = {}; + +// ---------------------------------------------------------------- csv + +function parseCSV(text) { + const rows = []; + let row = [], field = '', q = false; + for (let i = 0; i < text.length; i++) { + const c = text[i]; + if (q) { + if (c === '"') { + if (text[i + 1] === '"') { field += '"'; i++; } else q = false; + } else field += c; + } else if (c === '"') q = true; + else if (c === ',') { row.push(field); field = ''; } + else if (c === '\n') { row.push(field); rows.push(row); row = []; field = ''; } + else if (c === '\r') { /* skip */ } + else field += c; + } + if (field.length || row.length) { row.push(field); rows.push(row); } + const head = rows.shift().map((h) => h.trim()); + return rows + .filter((r) => r.some((c) => c.trim() !== '')) + .map((r) => Object.fromEntries(head.map((h, i) => [h, (r[i] ?? '').trim()]))); +} + +// ---------------------------------------------------------------- ids + +const ID_RE = /\b(?:S-)?([A-Z]{3,8}-\d{1,2}[A-Z]?)\b/g; + +const norm = (id) => id.replace(/^S-/, '').toUpperCase(); +const full = (id) => `S-${norm(id)}`; + +/** Split a registry nav cell into tokens, then each token into ids + label. */ +function parseNavCell(cell) { + const out = { edges: [], externals: [], unparsed: [] }; + if (!cell) return out; + for (const raw of cell.split('|').map((t) => t.trim()).filter(Boolean)) { + const labelMatch = raw.match(/\(([^)]*)\)/); + const label = labelMatch ? labelMatch[1].trim() : ''; + const ids = [...raw.matchAll(ID_RE)].map((m) => m[1]); + if (ids.length) { + for (const id of ids) out.edges.push({ id: full(id), label, token: raw }); + // A token like "START-02/03 skip" carries a second id our pattern cannot + // see. Report the residue rather than pretending the token was clean. + const residue = raw.replace(ID_RE, '').replace(/\([^)]*\)/g, '').trim(); + if (/\d/.test(residue)) out.unparsed.push(raw); + } else if (EXTERNALS.has(raw.toLowerCase())) { + out.externals.push(raw); + } else { + out.unparsed.push(raw); + } + } + return out; +} + +const allStatesEarly = (nodes) => { + const h = {}; + for (const n of nodes.values()) for (const s of n.states) h[s] = (h[s] || 0) + 1; + return h; +}; + +const parseStates = (cell) => + (cell || '') + .split(',') + .map((s) => s.trim()) + .filter(Boolean); + +// ---------------------------------------------------------------- lanes + +/** + * E1 swimlanes. The registry has no actor column, so lanes come from an + * explicit override file. Anything unassigned is reported as unassigned — + * it is never guessed into a lane, because a wrong lane reads as a ruling. + */ +function loadLanes() { + if (!fs.existsSync(LANES)) return { map: {}, present: false }; + try { + const j = JSON.parse(fs.readFileSync(LANES, 'utf8')); + const map = {}; + for (const [lane, ids] of Object.entries(j.lanes || {})) + for (const id of ids) map[full(id)] = lane; + return { map, present: true, order: j.order || Object.keys(j.lanes || {}) }; + } catch (e) { + return { map: {}, present: false, error: String(e.message) }; + } +} + +// ---------------------------------------------------------------- deep links + +/** + * Which prototype page implements which screen-id prefix. + * + * Derived, not hardcoded: for prefix `ONB` the page is `onb.html` unless + * `toolkit.config.json` → `flowPages` says otherwise. A prefix with no page is + * NOT silently skipped — it becomes an N9 finding, because "this flow cannot be + * re-driven after handoff" is exactly what E4 exists to report. + */ +function flowPageMap(prefixes) { + const override = CFG.flowPages || {}; + const map = {}; + for (const prefix of prefixes) { + map[prefix] = override[prefix] || `${prefix.toLowerCase()}.html`; + } + return map; +} + +/** E4: the query-param hooks each prototype page actually reads. */ +function scanDeepLinks(prefixes) { + const hooks = {}; + if (!fs.existsSync(PROTO_DIR)) return hooks; + for (const [prefix, file] of Object.entries(flowPageMap(prefixes))) { + const p = path.join(PROTO_DIR, file); + if (!fs.existsSync(p)) continue; + const src = fs.readFileSync(p, 'utf8'); + const params = new Set( + [...src.matchAll(/\.get\(['"]([a-zA-Z_][\w]*)['"]\)/g)].map((m) => m[1]), + ); + hooks[prefix] = { page: file, params: [...params].sort() }; + } + return hooks; +} + +// ---------------------------------------------------------------- build + +function build() { + if (!fs.existsSync(REGISTRY)) { + console.error(`navgraph: registry not found at ${REGISTRY}`); + process.exit(2); + } + const rows = parseCSV(fs.readFileSync(REGISTRY, 'utf8')); + const lanes = loadLanes(); + const prefixes = [...new Set(rows.map((r) => norm(r.screen_id).split('-')[0]))]; + const hooks = scanDeepLinks(prefixes); + + const nodes = new Map(); + for (const r of rows) { + const id = full(r.screen_id); + nodes.set(id, { + id, + name: r.screen_name, + flow: r.flow, + prefix: norm(id).split('-')[0], + status: r.status, + states: parseStates(r.states), + lane: lanes.map[id] || null, + purpose: r.purpose, + raw: { entry_from: r.entry_from, navigates_to: r.navigates_to }, + out: [], in: [], + }); + } + + const edges = []; + const findings = []; + const F = (sev, code, subject, detail) => + findings.push({ severity: sev, code, subject, detail }); + + const entryPoints = new Set(); + const unparsedCells = []; + + for (const r of rows) { + const from = full(r.screen_id); + const node = nodes.get(from); + + const nav = parseNavCell(r.navigates_to); + for (const e of nav.edges) { + if (!nodes.has(e.id)) { + F('blocking', 'N1-broken-edge', `${from} → ${e.id}`, + `navigates_to names a screen that is not in the registry (token: "${e.token}")`); + continue; + } + edges.push({ from, to: e.id, label: e.label, source: 'navigates_to' }); + } + for (const x of nav.unparsed) + unparsedCells.push({ screen: from, field: 'navigates_to', token: x }); + + const ent = parseNavCell(r.entry_from); + if (ent.externals.length) entryPoints.add(from); + for (const e of ent.edges) { + if (!nodes.has(e.id)) { + F('blocking', 'N1-broken-edge', `${e.id} → ${from}`, + `entry_from names a screen that is not in the registry (token: "${e.token}")`); + continue; + } + node.declaredEntries ??= []; + node.declaredEntries.push({ id: e.id, label: e.label }); + } + for (const x of ent.unparsed) + unparsedCells.push({ screen: from, field: 'entry_from', token: x }); + } + + // dedupe edges (same from/to keeps the first label, records the rest) + const seen = new Map(); + for (const e of edges) { + const k = `${e.from}→${e.to}`; + if (!seen.has(k)) seen.set(k, { ...e, labels: e.label ? [e.label] : [] }); + else if (e.label && !seen.get(k).labels.includes(e.label)) seen.get(k).labels.push(e.label); + } + const E = [...seen.values()]; + + for (const e of E) { + nodes.get(e.from).out.push(e.to); + nodes.get(e.to).in.push(e.from); + e.crossFlow = nodes.get(e.from).flow !== nodes.get(e.to).flow; + } + + // N3 — declared entry_from with no matching navigates_to edge (and back) + for (const n of nodes.values()) { + for (const d of n.declaredEntries || []) { + if (!E.some((e) => e.from === d.id && e.to === n.id)) + F('major', 'N3-asymmetric', `${d.id} → ${n.id}`, + `${n.id}.entry_from claims ${d.id}, but ${d.id}.navigates_to does not name ${n.id}`); + } + } + for (const e of E) { + const t = nodes.get(e.to); + const declared = (t.declaredEntries || []).some((d) => d.id === e.from); + if (!declared) + F('advisory', 'N3b-backedge', `${e.from} → ${e.to}`, + `${e.from}.navigates_to names ${e.to}, but ${e.to}.entry_from does not name ${e.from}`); + } + + // N2 — reachability. An inbound-only-declared screen is reachable in the + // product and broken in the registry; that is a different defect from a + // screen nothing routes to at all, and it gets a different severity. + for (const n of nodes.values()) { + if (n.in.length || entryPoints.has(n.id)) continue; + if ((n.declaredEntries || []).length) + F('major', 'N2b-inbound-only-declared', n.id, + `reachable only via entry_from (${n.declaredEntries.map((d) => d.id).join(', ')}); ` + + 'no source screen names it in navigates_to, so the forward edge cannot be drawn'); + else + F('blocking', 'N2-orphan', n.id, + 'no inbound edge and no external entry point — screen is unreachable'); + } + + // N4 — unjustified terminals + for (const n of nodes.values()) { + if (n.out.length === 0 && !TERMINAL_JUSTIFICATIONS[n.id]) + F('major', 'N4-terminal', n.id, + 'no outbound edge and no terminal justification recorded'); + } + + // N8 — lane coverage + const unassigned = [...nodes.values()].filter((n) => !n.lane); + if (unassigned.length) + F(lanes.present ? 'major' : 'advisory', 'N8-lane', `${unassigned.length} screens`, + lanes.present + ? `no lane in reference/nav-lanes.json: ${unassigned.map((n) => n.id).join(', ')}` + : 'reference/nav-lanes.json absent — swimlane layout (E1) cannot be generated'); + + // N9 — deep-link hook coverage + for (const prefix of [...new Set([...nodes.values()].map((n) => n.prefix))].sort()) { + if (!hooks[prefix]) + F('advisory', 'N9-deeplink', prefix, + `no prototype page resolved for prefix ${prefix} — deep-link column (E4) will be empty`); + else if (!hooks[prefix].params.length) + F('major', 'N9-deeplink', prefix, + `${hooks[prefix].page} exposes no query hook at all — no screen in this flow is ` + + 'directly addressable, so its states cannot be re-driven after handoff'); + else if (!hooks[prefix].params.includes('view')) + F('advisory', 'N9-deeplink', prefix, + `${hooks[prefix].page} exposes no ?view hook — screens in this flow are not directly addressable`); + } + + // N11 — state vocabulary. E5 needs a closed set; free-text state labels + // cannot be diagrammed as a shared state machine. Syntax is `canon` or + // `canon{qualifier}`. The term set is `CANON_STATES` in config.mjs — one + // definition, because stategraph.mjs enforces the same set and the product's + // vocabulary file documents it. See reference/state-vocabulary.md for the + // original → normalized mapping. + const STATE_RE = /^([a-z-]+)(?:\{([a-z0-9-]+)\})?$/; + const offVocab = [], malformed = []; + for (const s of Object.keys(allStatesEarly(nodes))) { + const m = STATE_RE.exec(s); + if (!m) { malformed.push(s); continue; } + if (!CANON_STATES.has(m[1])) offVocab.push(s); + } + if (offVocab.length) + F('advisory', 'N11-state-vocab', `${offVocab.length} labels`, + `state labels outside the canonical set: ${offVocab.map((s) => `"${s}"`).join(', ')}`); + if (malformed.length) + F('advisory', 'N11-state-syntax', `${malformed.length} labels`, + `not \`canon\` or \`canon{qualifier}\`: ${malformed.map((s) => `"${s}"`).join(', ')}`); + + for (const u of unparsedCells) + F('advisory', 'N10-unparsed', u.screen, + `${u.field} token not fully machine-readable: "${u.token}"`); + + // E3 — heatmap (in-degree, weighted by distinct source flows) + const heat = [...nodes.values()] + .map((n) => ({ + id: n.id, name: n.name, flow: n.flow, + inDegree: n.in.length, + outDegree: n.out.length, + sourceFlows: new Set(n.in.map((i) => nodes.get(i).flow)).size, + })) + .sort((a, b) => b.inDegree - a.inDegree || b.sourceFlows - a.sourceFlows); + + // E2 — cross-feature map + const cross = E.filter((e) => e.crossFlow).map((e) => ({ + from: e.from, to: e.to, + fromFlow: nodes.get(e.from).flow, toFlow: nodes.get(e.to).flow, + labels: e.labels, + })); + + // E5 — state inventory + const stateInventory = [...nodes.values()].map((n) => ({ + id: n.id, states: n.states, count: n.states.length, + })); + const allStates = {}; + for (const n of nodes.values()) + for (const s of n.states) allStates[s] = (allStates[s] || 0) + 1; + + return { + meta: { + root: path.relative(process.cwd(), ROOT) || '.', + registry: path.relative(ROOT, REGISTRY), + screens: nodes.size, + edges: E.length, + crossFlowEdges: cross.length, + flows: [...new Set([...nodes.values()].map((n) => n.flow))].sort(), + entryPoints: [...entryPoints], + lanesFile: lanes.present, + }, + nodes: [...nodes.values()].map(({ raw, declaredEntries, ...n }) => n), + edges: E, + crossFlow: cross, + heat, + states: { perScreen: stateInventory, histogram: allStates }, + deepLinks: hooks, + findings, + }; +} + +// ---------------------------------------------------------------- report + +function report(g) { + const sev = (s) => g.findings.filter((f) => f.severity === s); + const L = []; + L.push('# Navigation Graph Report'); + L.push(''); + L.push(`_Derived from \`${g.meta.registry}\` by \`tools/navgraph.mjs\`. Every edge below`); + L.push('traces to a registry cell — this file is evidence, not authoring._'); + L.push(''); + L.push('| Metric | Value |'); + L.push('|---|---|'); + L.push(`| Screens | ${g.meta.screens} |`); + L.push(`| Flows | ${g.meta.flows.length} |`); + L.push(`| Navigation edges | ${g.meta.edges} |`); + L.push(`| Cross-feature edges | ${g.meta.crossFlowEdges} |`); + L.push(`| Entry points | ${g.meta.entryPoints.join(', ') || '—'} |`); + for (const s of SEVERITIES) + L.push(`| ${s[0].toUpperCase() + s.slice(1)} findings | ${sev(s).length} |`); + L.push(''); + + L.push('## Findings'); + L.push(''); + if (!g.findings.length) L.push('None.'); + else { + L.push('| Severity | Code | Subject | Detail |'); + L.push('|---|---|---|---|'); + for (const f of SEVERITIES) + for (const x of sev(f)) + L.push(`| ${f} | ${x.code} | \`${x.subject}\` | ${x.detail} |`); + } + L.push(''); + + L.push('## Navigation heatmap (E3)'); + L.push(''); + L.push('| Screen | Name | Flow | In | Out | Source flows |'); + L.push('|---|---|---|---|---|---|'); + for (const h of g.heat.slice(0, 15)) + L.push(`| \`${h.id}\` | ${h.name} | ${h.flow} | **${h.inDegree}** | ${h.outDegree} | ${h.sourceFlows} |`); + L.push(''); + + L.push('## Cross-feature edges (E2)'); + L.push(''); + if (!g.crossFlow.length) L.push('None.'); + else { + L.push('| From | To | From flow | To flow | Label |'); + L.push('|---|---|---|---|---|'); + for (const c of g.crossFlow) + L.push(`| \`${c.from}\` | \`${c.to}\` | ${c.fromFlow} | ${c.toFlow} | ${c.labels.join(' · ') || '—'} |`); + } + L.push(''); + + L.push('## State inventory (E5)'); + L.push(''); + L.push('| State | Screens |'); + L.push('|---|---|'); + for (const [s, n] of Object.entries(g.states.histogram).sort((a, b) => b[1] - a[1])) + L.push(`| ${s} | ${n} |`); + L.push(''); + + L.push('## Deep-link hooks (E4)'); + L.push(''); + L.push('| Flow prefix | Page | Query hooks |'); + L.push('|---|---|---|'); + for (const [p, h] of Object.entries(g.deepLinks)) + L.push(`| ${p} | \`${h.page}\` | ${h.params.map((x) => `\`?${x}\``).join(' ')} |`); + L.push(''); + + return L.join('\n'); +} + +// ---------------------------------------------------------------- main + +const g = build(); +fs.mkdirSync(path.dirname(OUT_JSON), { recursive: true }); +fs.writeFileSync(OUT_JSON, JSON.stringify(g, null, 2)); +fs.writeFileSync(OUT_MD, report(g)); + +const cut = SEVERITIES.indexOf(FAIL_ON); +if (cut === -1) { + console.error(`navgraph: --fail-on must be one of ${SEVERITIES.join('|')}`); + process.exit(2); +} +const failing = g.findings.filter((f) => SEVERITIES.indexOf(f.severity) <= cut); + +if (!QUIET) { + const c = (n) => g.findings.filter((f) => f.severity === n).length; + console.log( + `navgraph: ${g.meta.screens} screens · ${g.meta.edges} edges · ` + + `${g.meta.crossFlowEdges} cross-feature · ` + + `findings ${SEVERITIES.map((s) => `${c(s)} ${s}`).join(' / ')}`, + ); + console.log(` → ${path.relative(ROOT, OUT_JSON)}`); + console.log(` → ${path.relative(ROOT, OUT_MD)}`); + for (const f of failing.filter((f) => f.severity !== 'advisory')) + console.log(` ${f.severity.toUpperCase()} ${f.code} ${f.subject}: ${f.detail}`); +} +process.exit(failing.length ? 1 : 0); diff --git a/design-toolkit/tools/smoke.mjs b/design-toolkit/tools/smoke.mjs new file mode 100644 index 0000000..b0582ee --- /dev/null +++ b/design-toolkit/tools/smoke.mjs @@ -0,0 +1,90 @@ +/* Build-time smoke run: for each (file, view) pair — does the view actually PAINT, + are there console errors, and is any interactive target below the tap-target floor? + Run it from STATE 07 (skills/07 B8) before handing anything to the audit. + + Usage: node tools/smoke.mjs [--root ] "home:dash,stack" "auth:landing,phone" ... + Floor, ports and prototype dir come from toolkit.config.json. */ +import { launch, newPage, serve } from './cdp.mjs'; +import { loadConfig, parseArgs } from './config.mjs'; + +const { argv, arg } = parseArgs(); +const CFG = loadConfig(arg('--root', null)); +const FLOOR = CFG.audit.tapTargetFloorPx; +const BENIGN = CFG.audit.benignConsole || []; + +// Drop `--root ` before reading positional specs, so a path that happens to +// contain a colon cannot be mistaken for a `:` pair. +const rootIdx = argv.indexOf('--root'); +const positional = argv.filter((_, i) => rootIdx === -1 || (i !== rootIdx && i !== rootIdx + 1)); + +const specs = positional.filter(s => s.includes(':')).map(s => { + const [file, views] = s.split(':'); + return { file, views: views.split(',') }; +}); + +if (!specs.length) { + console.error('usage: node tools/smoke.mjs ":[,...]" ...'); + process.exit(2); +} + +const PORT = CFG.audit.servePort, DBG = CFG.audit.debugPort + 2; +const srv = serve(CFG.paths.prototype, PORT); +await new Promise(r => setTimeout(r, 700)); +const { proc } = await launch(DBG); + +let pass = 0, fail = 0; +const problems = []; + +for (const { file, views } of specs) { + for (const view of views) { + const page = await newPage(DBG); + await page.init(); + const netErrors = []; + page.on((m) => { // see tools/audit.mjs — a bare + if (m.method !== 'Network.responseReceived') return; // console error carries no url + const { status, url: u } = m.params.response; + if (status < 400 || !u.includes('127.0.0.1')) return; + if (BENIGN.some((b) => u.includes(b))) return; + netErrors.push(`${status} ${u}`); + }); + const url = `http://127.0.0.1:${PORT}/${file}.html?view=${view}`; + await page.goto(url); + const r = await page.eval(({ floor, C }) => { + const on = document.querySelector(`${C.viewSelector}.${C.activeClass}`); + const out = { view: on && on.getAttribute('data-view'), sid: on && on.getAttribute('data-sid'), painted: false, small: [], overflow: 0, text: '' }; + if (!on) return out; + const cs = getComputedStyle(on), rc = on.getBoundingClientRect(); + out.painted = cs.display !== 'none' && cs.visibility === 'visible' && rc.width > 100 && rc.height > 100; + out.text = (on.innerText || '').trim().slice(0, 60); + // Tap-target floor — measure the hit area, including any ::after expansion + // (skills/08 §B: an element box below the floor is a hypothesis, not a finding). + document.querySelectorAll('button,a,input,[role="switch"],[role="button"],[tabindex="0"]').forEach(el => { + if (!el.offsetParent && getComputedStyle(el).position !== 'fixed') return; + const b = el.getBoundingClientRect(); + if (b.width === 0 || b.height === 0) return; + if (b.width < floor - 0.5 || b.height < floor - 0.5) { + out.small.push((el.id || el.className || el.tagName) + ' ' + Math.round(b.width) + 'x' + Math.round(b.height)); + } + }); + if (document.documentElement.scrollWidth > document.documentElement.clientWidth + 1) out.overflow = 1; + return out; + }, { floor: FLOOR, C: CFG.prototype }); + const errs = page.consoleErrors() + .filter((e) => e && !/Failed to load resource/i.test(e)) + .concat(netErrors); + const ok = r.painted && r.view === view && errs.length === 0 && r.small.length === 0 && !r.overflow; + if (ok) pass++; else { + fail++; + problems.push({ file, view, ...r, errs }); + } + console.log(`${ok ? 'PASS' : 'FAIL'} ${file}:${view} ${r.sid || '-'} ${r.painted ? 'painted' : 'BLANK'}` + + (r.small.length ? ` small:${r.small.join('|')}` : '') + (r.overflow ? ' H-OVERFLOW' : '') + + (errs.length ? ` errs:${errs.join(' ~ ')}` : '')); + await page.close(); + } +} + +console.log(`\n${pass} pass / ${fail} fail`); +if (problems.length) console.log(JSON.stringify(problems, null, 1).slice(0, 4000)); +proc.kill(); srv.kill(); +process.exit(fail ? 1 : 0); diff --git a/design-toolkit/tools/stategraph.mjs b/design-toolkit/tools/stategraph.mjs new file mode 100644 index 0000000..a08f903 --- /dev/null +++ b/design-toolkit/tools/stategraph.mjs @@ -0,0 +1,391 @@ +#!/usr/bin/env node +/** + * stategraph.mjs — Per-screen state-machine extractor + validator (STATE 12 / DWF-05, E5). + * + * navgraph.mjs answers "which screen leads to which screen". This answers the + * question one level down: *within* a screen, which states exist, what moves + * the screen between them, and how does a developer or QA reach each one. + * + * Two inputs, and the split matters: + * reference/screen-registry.csv — the canonical state SET per screen (owned by the + * registry; this tool never invents a state) + * reference/state-machines.json — the transitions between those states, each one + * carrying a `evidence` file:line into the frozen + * prototype, and each state carrying the `hook` + * that drives it + * + * So the node set is derived and the edge set is authored-with-evidence. Every + * authored claim is then checked back against the bytes: a transition whose + * evidence line does not exist is a finding, and a hook whose parameter the page + * never reads is a finding. An unverifiable diagram is the thing this file exists + * to prevent. + * + * Usage: + * node tools/stategraph.mjs [--root ] [--json ] [--md ] + * [--fail-on blocking|major|advisory] [--quiet] + * + * Exit codes: 0 = no findings at or above --fail-on, 1 = findings, 2 = tool error. + */ + +import fs from 'node:fs'; +import path from 'node:path'; +import { loadConfig, parseArgs, SEVERITIES, CANON_STATES } from './config.mjs'; + +// ---------------------------------------------------------------- args + config + +const { arg, has } = parseArgs(); +const CFG = loadConfig(arg('--root', null)); + +const ROOT = CFG.root; +const REGISTRY = CFG.paths.registry; +const MACHINES = CFG.paths.stateMachines; +const VOCAB = CFG.paths.vocabulary; +const PROTO_DIR = CFG.paths.prototype; +const ARTIFACTS = CFG.paths.artifacts; +const OUT_JSON = arg('--json', path.join(ARTIFACTS, 'stategraph.json')); +const OUT_MD = arg('--md', path.join(ARTIFACTS, 'statemap-report.md')); +const QUIET = has('--quiet'); + +const FAIL_ON = arg('--fail-on', 'blocking'); + +/* The term set is `CANON_STATES` in config.mjs — imported, not restated. + navgraph.mjs enforces the same set, and the product's vocabulary file + (`paths.vocabulary`) documents it; adding a term means editing that constant + and that file. */ + +/** How a transition is caused. A trigger must declare one, so the diagram can class it. */ +const TRIGGER_KINDS = new Set([ + 'user', // the student did something on this screen + 'system', // time, a simulated response, a settle + 'entry', // the state the screen is built in on arrival (guard on entry data) + 'data', // a stored/profile value the screen reads +]); + +// ---------------------------------------------------------------- csv + +function parseCSV(text) { + const rows = []; + let row = [], field = '', q = false; + for (let i = 0; i < text.length; i++) { + const c = text[i]; + if (q) { + if (c === '"') { + if (text[i + 1] === '"') { field += '"'; i++; } else q = false; + } else field += c; + } else if (c === '"') q = true; + else if (c === ',') { row.push(field); field = ''; } + else if (c === '\n') { row.push(field); rows.push(row); row = []; field = ''; } + else if (c === '\r') { /* skip */ } + else field += c; + } + if (field.length || row.length) { row.push(field); rows.push(row); } + const head = rows.shift().map((h) => h.trim()); + return rows + .filter((r) => r.some((c) => c.trim() !== '')) + .map((r) => Object.fromEntries(head.map((h, i) => [h, (r[i] ?? '').trim()]))); +} + +const parseStates = (cell) => + (cell || '').split(',').map((s) => s.trim()).filter(Boolean); + +// ---------------------------------------------------------------- sources + +const srcCache = new Map(); +function source(file) { + if (srcCache.has(file)) return srcCache.get(file); + const p = path.join(PROTO_DIR, file); + const v = fs.existsSync(p) + ? { text: fs.readFileSync(p, 'utf8'), lines: fs.readFileSync(p, 'utf8').split('\n').length } + : null; + srcCache.set(file, v); + return v; +} + +/** "home.html:1183" → {file,line} · a bare "home.html" is not enough to check. */ +function parseEvidence(ev) { + const m = String(ev || '').match(/^([\w.-]+\.html):(\d+)(?:-(\d+))?$/); + return m ? { file: m[1], from: +m[2], to: m[3] ? +m[3] : +m[2] } : null; +} + +/** "study.html?view=reward&skip=1" → the params it asks the page to read. */ +function parseHook(hook) { + const m = String(hook || '').match(/^([\w.-]+\.html)(?:\?(.*))?$/); + if (!m) return null; + const params = m[2] + ? m[2].split('&').map((kv) => kv.split('=')[0]).filter(Boolean) + : []; + return { file: m[1], params }; +} + +// ---------------------------------------------------------------- build + +function build() { + if (!fs.existsSync(REGISTRY)) throw new Error(`registry not found: ${REGISTRY}`); + if (!fs.existsSync(MACHINES)) throw new Error(`state machines not found: ${MACHINES}`); + + const rows = parseCSV(fs.readFileSync(REGISTRY, 'utf8')); + const spec = JSON.parse(fs.readFileSync(MACHINES, 'utf8')); + + const findings = []; + const F = (sev, code, subject, detail) => + findings.push({ severity: sev, code, subject, detail }); + + const registry = new Map(); + for (const r of rows) { + const id = (r.screen_id || '').trim(); + if (!id) continue; + registry.set(id, { + id, + flow: r.flow || '', + name: r.screen_name || '', + states: parseStates(r.states), + }); + } + + const machines = []; + + for (const [id, reg] of registry) { + const m = spec.screens?.[id]; + if (!m) { + F('blocking', 'S0-missing-machine', id, + `${reg.states.length} state(s) in the registry and no machine authored — E5 cannot draw this screen`); + continue; + } + + const declared = new Set(Object.keys(m.states || {})); + const regStates = new Set(reg.states); + + // S1 — the node set is the registry's, not the author's. + for (const s of regStates) + if (!declared.has(s)) + F('blocking', 'S1-node-missing', id, `registry declares '${s}'; the machine has no such node`); + for (const s of declared) + if (!regStates.has(s)) + F('blocking', 'S1-node-extra', id, `machine declares '${s}'; the registry does not — a state the registry has never seen`); + + // S1b — every node still has to be vocabulary-legal (N11 one level down). + for (const s of declared) { + const base = s.match(/^([a-z-]+)(?:\{([a-z0-9-]+)\})?$/); + if (!base) F('major', 'S1-syntax', id, `'${s}' is not or {qualifier}`); + else if (!CANON_STATES.has(base[1])) + F('major', 'S1-vocab', id, `'${s}' uses non-canon term '${base[1]}'`); + } + + // S2 — an initial state, and it must be a node. + if (!m.initial) F('blocking', 'S2-no-initial', id, 'no initial state declared'); + else if (!declared.has(m.initial)) + F('blocking', 'S2-bad-initial', id, `initial '${m.initial}' is not one of the screen's states`); + + // S3 — transitions land on declared nodes and name a legal trigger kind. + const T = m.transitions || []; + for (const t of T) { + if (!declared.has(t.from)) F('blocking', 'S3-bad-endpoint', id, `transition from unknown state '${t.from}'`); + if (!declared.has(t.to)) F('blocking', 'S3-bad-endpoint', id, `transition to unknown state '${t.to}'`); + if (!t.trigger) F('major', 'S3-no-trigger', id, `${t.from} → ${t.to} has no trigger`); + if (!TRIGGER_KINDS.has(t.kind)) + F('major', 'S3-bad-kind', id, `${t.from} → ${t.to} kind '${t.kind}' is not one of ${[...TRIGGER_KINDS].join('/')}`); + } + + // S4 — every transition's evidence resolves to a real line of the frozen bytes. + for (const t of T) { + if (!t.evidence) { F('major', 'S4-no-evidence', id, `${t.from} → ${t.to} cites no evidence`); continue; } + const e = parseEvidence(t.evidence); + if (!e) { F('major', 'S4-bad-evidence', id, `${t.from} → ${t.to} evidence '${t.evidence}' is not file.html:line`); continue; } + const src = source(e.file); + if (!src) F('major', 'S4-no-file', id, `${t.from} → ${t.to} cites ${e.file}, which is not in the prototype set`); + else if (e.to > src.lines) + F('major', 'S4-line-out-of-range', id, `${t.from} → ${t.to} cites ${t.evidence}; ${e.file} has ${src.lines} lines`); + } + + // S5 — a state that claims a hook must claim one the page actually reads. + for (const [s, node] of Object.entries(m.states || {})) { + if (!node.hook) continue; + const h = parseHook(node.hook); + if (!h) { F('major', 'S5-bad-hook', id, `'${s}' hook '${node.hook}' is not page.html?a=b`); continue; } + const src = source(h.file); + if (!src) { F('major', 'S5-no-file', id, `'${s}' hook targets ${h.file}, not in the prototype set`); continue; } + for (const p of h.params) { + if (!new RegExp(`get\\(['"]${p}['"]\\)`).test(src.text)) + F('major', 'S5-dead-hook', id, `'${s}' hook asks for ?${p}=, which ${h.file} never reads`); + } + } + + // S6 — reachability. A state nobody can get to is a claim, not a state. + const adj = new Map([...declared].map((s) => [s, []])); + for (const t of T) if (adj.has(t.from) && declared.has(t.to)) adj.get(t.from).push(t.to); + const seen = new Set([m.initial]); + const stack = [m.initial]; + while (stack.length) { + const cur = stack.pop(); + for (const nxt of adj.get(cur) || []) if (!seen.has(nxt)) { seen.add(nxt); stack.push(nxt); } + } + for (const s of declared) { + if (seen.has(s)) continue; + // A state reachable only by URL is legitimate (QA entry), but it must say so. + if (m.states[s]?.entry_only) continue; + // A state the registry declares and the bytes never render is the one case + // worth surfacing rather than silently drawing: the diagram would otherwise + // assert a screen behaviour that does not exist. + if (m.states[s]?.unimplemented) continue; + F('blocking', 'S6-unreachable', id, `'${s}' has no inbound transition and is not marked entry_only`); + } + + // S7 — a non-terminal state should have a way out, or say why it has none. + for (const s of declared) { + const out = (adj.get(s) || []).length; + if (out === 0 && !m.states[s]?.terminal && !m.states[s]?.unimplemented) + F('advisory', 'S7-dead-end', id, `'${s}' has no outbound transition and is not marked terminal`); + } + + // S9 — registry says the state exists; the prototype does not render it. + for (const [s, node] of Object.entries(m.states || {})) { + if (!node.unimplemented) continue; + if (!node.reason) + F('major', 'S9-no-reason', id, `'${s}' is marked unimplemented with no reason — the absence must be evidenced`); + else + F('advisory', 'S9-unimplemented', id, `'${s}' is declared in the registry and not rendered by the prototype — ${node.reason}`); + } + + machines.push({ + id, flow: reg.flow, name: reg.name, + initial: m.initial, + note: m.note || null, + states: Object.entries(m.states || {}).map(([s, n]) => ({ + state: s, hook: n.hook || null, note: n.note || null, + entry_only: !!n.entry_only, terminal: !!n.terminal, + unimplemented: !!n.unimplemented, reason: n.reason || null, + reachable: seen.has(s), + })), + transitions: T.map((t) => ({ ...t })), + }); + } + + // A machine authored for a screen the registry does not have. + for (const id of Object.keys(spec.screens || {})) + if (!registry.has(id)) + F('blocking', 'S0-unknown-screen', id, 'machine authored for a screen id the registry does not contain'); + + // S8 — the registry id and the id the prototype prints in its `sid()` readout + // disagree. Every state below was authored against the REGISTRY id; the drift is + // carried here rather than resolved, because renumbering is a registry decision. + for (const c of spec.id_conflicts || []) + F('advisory', 'S8-id-drift', c.screen, + `registry ${c.screen} is implemented by the '${c.prototype_view}' view, which prints '${c.prototype_sid}' — ${c.note}`); + + const stateUse = {}; + for (const m of machines) for (const s of m.states) stateUse[s.state] = (stateUse[s.state] || 0) + 1; + + return { + generated_by: 'tools/stategraph.mjs', + inputs: { + registry: path.relative(ROOT, REGISTRY), + machines: path.relative(ROOT, MACHINES), + vocabulary: fs.existsSync(VOCAB) ? path.relative(ROOT, VOCAB) : null, + }, + counts: { + screens: machines.length, + states: machines.reduce((a, m) => a + m.states.length, 0), + transitions: machines.reduce((a, m) => a + m.transitions.length, 0), + multiState: machines.filter((m) => m.states.length > 1).length, + singleState: machines.filter((m) => m.states.length === 1).length, + hooked: machines.reduce((a, m) => a + m.states.filter((s) => s.hook).length, 0), + }, + stateUse, + id_conflicts: spec.id_conflicts || [], + machines, + findings, + }; +} + +// ---------------------------------------------------------------- report + +function report(g) { + const sev = (s) => g.findings.filter((f) => f.severity === s); + const L = []; + L.push('# Screen State Machines — derivation report', ''); + L.push(`_Generated by \`${g.generated_by}\` from \`${g.inputs.registry}\` + \`${g.inputs.machines}\`._`, ''); + L.push('## Counts', ''); + L.push('| Metric | Value |', '|---|---|'); + L.push(`| Screens | ${g.counts.screens} |`); + L.push(`| States | ${g.counts.states} |`); + L.push(`| Transitions | ${g.counts.transitions} |`); + L.push(`| Multi-state screens | ${g.counts.multiState} |`); + L.push(`| Single-state screens | ${g.counts.singleState} |`); + L.push(`| States with a QA hook | ${g.counts.hooked} |`); + L.push(''); + L.push('## Findings', ''); + if (!g.findings.length) L.push('None.', ''); + else { + L.push('| Severity | Code | Screen | Detail |', '|---|---|---|---|'); + for (const s of SEVERITIES) + for (const f of sev(s)) L.push(`| ${s} | \`${f.code}\` | ${f.subject} | ${f.detail} |`); + L.push(''); + } + if (g.id_conflicts.length) { + L.push('## Registry ↔ prototype id drift', ''); + L.push('Every machine below is authored against the **registry** id. Where the prototype’s'); + L.push('own `sid()` readout prints a different id for the view that implements it, the pair is'); + L.push('recorded here rather than reconciled — renumbering is a registry decision, not this tool’s.', ''); + L.push('| Registry id | Prototype view | Prints | Note |', '|---|---|---|---|'); + for (const c of g.id_conflicts) + L.push(`| ${c.screen} | \`${c.prototype_view}\` | \`${c.prototype_sid}\` | ${c.note} |`); + L.push(''); + } + L.push('## Per-screen machines', ''); + let flow = null; + for (const m of g.machines) { + if (m.flow !== flow) { flow = m.flow; L.push(`### ${flow}`, ''); } + L.push(`**${m.id} · ${m.name}** — initial \`${m.initial}\`, ${m.states.length} state(s), ${m.transitions.length} transition(s)`, ''); + if (m.note) L.push(`_${m.note}_`, ''); + L.push('| State | Hook | Flags |', '|---|---|---|'); + for (const s of m.states) { + const flags = [ + s.entry_only ? 'entry-only' : '', + s.terminal ? 'terminal' : '', + s.unimplemented ? 'NOT IMPLEMENTED' : '', + ].filter(Boolean).join(', '); + L.push(`| \`${s.state}\` | ${s.hook ? `\`${s.hook}\`` : '—'} | ${flags || '—'} |`); + } + L.push(''); + if (m.transitions.length) { + L.push('| From | → | To | Trigger | Kind | Evidence |', '|---|---|---|---|---|---|'); + for (const t of m.transitions) + L.push(`| \`${t.from}\` | → | \`${t.to}\` | ${t.trigger} | ${t.kind} | \`${t.evidence}\` |`); + L.push(''); + } + } + L.push('## State usage across the product', ''); + L.push('| State | Screens |', '|---|---|'); + for (const [s, n] of Object.entries(g.stateUse).sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))) + L.push(`| \`${s}\` | ${n} |`); + L.push(''); + return L.join('\n'); +} + +// ---------------------------------------------------------------- main + +let g; +try { + g = build(); +} catch (e) { + console.error(`stategraph: ${e.message}`); + process.exit(2); +} + +fs.writeFileSync(OUT_JSON, JSON.stringify(g, null, 2)); +fs.writeFileSync(OUT_MD, report(g)); + +const cut = SEVERITIES.indexOf(FAIL_ON); +const failing = g.findings.filter((f) => SEVERITIES.indexOf(f.severity) <= cut); + +if (!QUIET) { + const c = (n) => g.findings.filter((f) => f.severity === n).length; + console.log( + `stategraph: ${g.counts.screens} screens · ${g.counts.states} states · ` + + `${g.counts.transitions} transitions · ${g.counts.hooked} hooked`); + console.log(`findings: ${c('blocking')} blocking / ${c('major')} major / ${c('advisory')} advisory`); + for (const f of g.findings) console.log(` [${f.severity}] ${f.code} ${f.subject} — ${f.detail}`); + console.log(`wrote ${path.relative(ROOT, OUT_JSON)} · ${path.relative(ROOT, OUT_MD)}`); +} + +process.exit(failing.length ? 1 : 0); diff --git a/design-toolkit/tools/stateprobe.mjs b/design-toolkit/tools/stateprobe.mjs new file mode 100644 index 0000000..9220087 --- /dev/null +++ b/design-toolkit/tools/stateprobe.mjs @@ -0,0 +1,161 @@ +#!/usr/bin/env node +/** + * stateprobe.mjs — drives every hook in reference/state-machines.json and checks + * that the state it claims to reach actually PAINTS (STATE 12 / E5). + * + * stategraph.mjs proves the hook parameter is read by the page. That is not the + * same claim — a hook that seeds state is not a hook that shows it, and one screen + * passed 84/84 DOM assertions while rendering nothing. So this probe reads computed + * visibility and geometry of the active view, never DOM presence. + * + * It also reads back the prototype's own screen-id readout for every load, which + * independently confirms (or refutes) the registry ↔ prototype id drift recorded + * in `id_conflicts` — the drift is measured here, not asserted from the source. + * + * The selectors it looks for are the prototype contract in toolkit.config.json → + * `prototype`. Paths, ports and the paint threshold come from the same file. + * + * Usage: node tools/stateprobe.mjs [--root ] [--port ] [--shots ] + * Exit codes: 0 = every hook painted, 1 = at least one did not, 2 = tool error. + */ + +import fs from 'node:fs'; +import path from 'node:path'; +import { launch, newPage, serve } from './cdp.mjs'; +import { loadConfig, parseArgs } from './config.mjs'; + +const { arg } = parseArgs(); +const CFG = loadConfig(arg('--root', null)); + +const ROOT = CFG.root; +const MACHINES = CFG.paths.stateMachines; +const PROTO = CFG.paths.prototype; +const OUT = arg('--json', path.join(CFG.paths.artifacts, 'stateprobe.json')); +const SHOTS = arg('--shots', null); +const PORT = +arg('--port', CFG.audit.servePort); +const CDP = +arg('--cdp', CFG.audit.debugPort + 8); + +const spec = JSON.parse(fs.readFileSync(MACHINES, 'utf8')); + +// One load per distinct URL; a URL can be claimed by several states. +const byUrl = new Map(); +for (const [id, m] of Object.entries(spec.screens)) { + for (const [state, node] of Object.entries(m.states || {})) { + if (!node.hook) continue; + if (!byUrl.has(node.hook)) byUrl.set(node.hook, []); + byUrl.get(node.hook).push({ screen: id, state }); + } +} + +const isLoadingClaim = (claims) => claims.every((c) => c.state.startsWith('loading')); + +const results = []; +const srv = serve(PROTO, PORT); +await new Promise((r) => setTimeout(r, 400)); +const { proc } = await launch(CDP); + +try { + let n = 0; + for (const [hook, claims] of byUrl) { + const page = await newPage(CDP); + await page.init(); + // Network 4xx is captured with its URL, because the console message for a failed + // fetch carries none — and some of it is environment noise rather than an app + // defect: an offline webfont CDN, /favicon.ico. Counting those as failures is the + // harness being wrong about the app, which is exactly what M3 exists to prevent. + const netErrors = []; + page.on((m) => { + if (m.method !== 'Network.responseReceived') return; + const { status, url } = m.params.response; + if (status < 400) return; + if (!url.includes('127.0.0.1')) return; // external CDN — not this build + if (/\/favicon\.ico$/.test(url)) return; // never authored, never shipped + netErrors.push(`${status} ${url}`); + }); + // A loading claim has to be measured BEFORE the simulated fetch settles, or the + // probe reports the state that replaced it. + const settle = isLoadingClaim(claims) ? 120 : 480; + await page.goto(`http://127.0.0.1:${PORT}/${hook}`, settle); + + const probe = await page.eval((C) => { + const vis = (el) => { + const cs = getComputedStyle(el), r = el.getBoundingClientRect(); + return cs.visibility !== 'hidden' && cs.display !== 'none' && + +cs.opacity > 0.01 && r.width > 0 && r.height > 0; + }; + const active = [...document.querySelectorAll(C.viewSelector)].filter((v) => v.classList.contains(C.activeClass)); + const painted = active.filter(vis); + const sid = document.querySelector(C.sidSelector); + // Anything on screen at all — catches the "active but invisible" class directly. + const screenEl = document.querySelector(C.screenSelector) || document.body; + const sr = screenEl.getBoundingClientRect(); + const inkNodes = [...screenEl.querySelectorAll('*')].filter((el) => { + const r = el.getBoundingClientRect(); + return r.width > 8 && r.height > 8 && vis(el); + }).length; + const name = (v) => v.id || v.getAttribute('data-view') || v.getAttribute('data-sid') || '(unnamed)'; + return { + activeViews: active.map(name), + paintedViews: painted.map(name), + sid: sid ? sid.textContent.trim() : null, + screenBox: { w: Math.round(sr.width), h: Math.round(sr.height) }, + visibleNodes: inkNodes, + }; + }, CFG.prototype); + + // Only script-level errors count from the console — "Failed to load resource" is + // always mirrored by the network capture above, with the URL that decides it. + const errs = page.consoleErrors() + .filter((e) => e && !/Failed to load resource/i.test(e)) + .concat(netErrors); + // Keep the threshold LOW (config: prototype.minVisibleNodes). An empty state is + // sparse by design — an empty screen may paint an illustration, a headline and one + // line of copy and nothing else. A threshold tuned to a busy screen reports the + // correct rendering of an empty one as a failure. That class cost a 37-failure run + // in which every failure was the harness. + const ok = probe.paintedViews.length > 0 && + probe.visibleNodes >= CFG.prototype.minVisibleNodes && + errs.length === 0; + + if (SHOTS) await page.shot(path.join(SHOTS, `${String(++n).padStart(2, '0')}-${hook.replace(/[^\w]+/g, '_').slice(0, 60)}.png`)); + + results.push({ hook, claims, ...probe, consoleErrors: errs, ok }); + await page.close(); + } +} finally { + try { proc.kill(); } catch {} + try { srv.kill(); } catch {} +} + +// The measured id-drift: what the prototype prints vs the registry id claiming it. +const drift = []; +for (const r of results) { + if (!r.sid) continue; + const base = r.sid.split('·')[0].trim(); + for (const c of r.claims) + if (base.startsWith('S-') && base !== c.screen) + drift.push({ hook: r.hook, registry: c.screen, prints: r.sid }); +} + +const failed = results.filter((r) => !r.ok); +fs.writeFileSync(OUT, JSON.stringify({ + generated_by: 'tools/stateprobe.mjs', + counts: { + urls: results.length, + stateClaims: [...byUrl.values()].reduce((a, c) => a + c.length, 0), + painted: results.length - failed.length, + failed: failed.length, + driftObserved: drift.length, + }, + measured_id_drift: drift, + results, +}, null, 2)); + +console.log(`stateprobe: ${results.length} urls · ${results.length - failed.length} painted · ${failed.length} failed · ${drift.length} id-drift observations`); +for (const f of failed) + console.log(` [FAIL] ${f.hook} — painted=${JSON.stringify(f.paintedViews)} nodes=${f.visibleNodes} errs=${f.consoleErrors.length}`); +for (const d of [...new Map(drift.map((d) => [d.registry + d.prints, d])).values()]) + console.log(` [drift] ${d.registry} prints '${d.prints}' (${d.hook})`); +console.log(`wrote ${path.relative(ROOT, OUT)}`); + +process.exit(failed.length ? 1 : 0); From 87f360f1f03b09f500ebdf0bf8b02394b8b42a70 Mon Sep 17 00:00:00 2001 From: Chheng64 Date: Thu, 27 Aug 2026 18:31:57 +0700 Subject: [PATCH 4/7] feat: security certification as a precondition for QA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Security stops being review dimension 4, spent after a full QA cycle, and becomes a machine gate with an artifact: a certificate issued against a named commit, gating Implementation -> QA and re-checked at Tech Review. - Workflows/security-certification.md — freeze the sha, run the configured evidence with exit codes, verify every S06 mitigation at file:line, classify findings, issue certified / not-certified. An unavailable scanner is a recorded gap with a closing condition plus its manual equivalent, never a silent pass. - Templates/security-certificate.md — certified_commit, scope stated inside the claim, automated-evidence table, threat-model verification matrix, waivers carrying user grantor + rider + closing condition. - Checklists/security.md rewritten as the C_SECURITY validator. Adds rotation, not deletion, when a secret reaches a pushed commit. - Implementation implements each S06 mitigation in the slice that creates its surface, appends unplanned surfaces to the threat model as they are built, and completes at a certificate rather than at "tests green". - Backend planning owes a verification method per mitigation; one without is a wish, and certification bounces it. - Code review verifies the certificate is current and spot-checks the highest-exposure claims instead of repeating the pass. - QA treats C_SECURITY as an entry precondition and re-checks it at exit, because loop fixes push commits and stale the certificate. Co-Authored-By: Claude Opus 5 (1M context) --- Checklists/security.md | 36 ++++++++-- Skills/security-reviewer.md | 12 +++- Standards/security.md | 2 +- Templates/security-certificate.md | 101 ++++++++++++++++++++++++++++ Workflows/backend-planning.md | 5 +- Workflows/code-review.md | 8 ++- Workflows/implementation.md | 19 +++++- Workflows/qa.md | 2 + Workflows/security-certification.md | 90 +++++++++++++++++++++++++ 9 files changed, 260 insertions(+), 15 deletions(-) create mode 100644 Templates/security-certificate.md create mode 100644 Workflows/security-certification.md diff --git a/Checklists/security.md b/Checklists/security.md index 3425644..c77f064 100644 --- a/Checklists/security.md +++ b/Checklists/security.md @@ -1,6 +1,25 @@ # Checklist — Security -> **Runs inside:** code-review dimension 4; full pass on auth/payment/data-scoped BRDs. Defensive verification ([security standard](../Standards/security.md)). Residual risk acceptance = user-signed S06/S16 entry, never a silent tick. +> **Gate for:** `C_SECURITY` on the `Implementation → QA` edge — the executable form of [security-certification](../Workflows/security-certification.md). Also runs as code-review dimension 4 ([code-review](../Workflows/code-review.md)), where it **verifies the certificate is current**, rather than repeating it. +> **Standard:** [Standards/security.md](../Standards/security.md) · **Artifact:** [security-certificate](../Templates/security-certificate.md). Defensive verification only. Residual risk acceptance = user-signed S06/S16 entry, never a silent tick. + +## Preconditions +- [ ] `certified_commit` recorded **before** any check ran, and equal to the branch head +- [ ] Scope stated inside the certificate: what it covers, what it does not, diff basis `..` +- [ ] S06 threat model present and covering every new/changed surface in the diff (stale → append S06 first, then certify) + +## Automated evidence (exit codes, not impressions) +- [ ] Secret scan run — tool, version, command, exit code recorded (unavailable → `gap` + closing condition + manual pattern sweep executed) +- [ ] Dependency audit run — findings at/above `fail_on` triaged, not muted +- [ ] SAST / licence checks run where configured; unconfigured recorded as `gap` +- [ ] Typecheck + lint + test suite re-run by the certifier, output referenced +- [ ] **Every hit confirmed at source** before being reported — unconfirmed scanner output is neither a finding nor a waiver +- [ ] Instrument corrected and re-run wherever it was wrong (a broken tool never reads as a clean pass) + +## Threat-model verification (claimed ≠ present) +- [ ] Every S06 mitigation located at `file:line` with its verification method recorded +- [ ] Every threat with no mitigation present → `blocker` finding (never a note) +- [ ] Surfaces added during Implementation appear in the model; additions appended to S06 before certification ## Boundaries - [ ] Every new/changed input surface parses with schema at entry (body/params/headers/webhook/storage/URL state) @@ -19,6 +38,7 @@ - [ ] Server-only modules fenced (`server-only` marker on secret-touching libs) - [ ] Error responses normalized: no stack traces, provider passthrough, or internal state names ([api-design](../Standards/api-design.md) rule 5) - [ ] Responses return needed fields only (no whole-row leaks); no raw PII in logs +- [ ] Secret found in history → rotation started, not just deletion (a deleted secret in a pushed commit is a published secret) ## Injection & abuse - [ ] Queries parameterized; zero string-built queries from input @@ -27,7 +47,13 @@ - [ ] Webhooks: signature verified; duplicate + out-of-order tolerated - [ ] Rate limits on exposed unauthenticated surfaces -## Closure -- [ ] Every S06 security mitigation verified present in code (claimed ≠ implemented) -- [ ] Dependency audit signal triaged (not muted) -- [ ] Vuln found → sibling sweep done + S16 lesson (checklist/standard candidate) +## Verdict & closure +- [ ] Findings classified honestly — `blocker` = auth bypass, injection, secret exposure, data-integrity risk; zero open blockers to certify +- [ ] Every waiver names rule + why + user grantor + rider debt item + closing condition +- [ ] Verdict `certified` / `not-certified` with rationale; certificate written into S14 in the same edit as the S16 entry +- [ ] Vuln found → sibling sweep done, sweep count recorded + S16 lesson (checklist/standard candidate) + +## Currency (re-verification) +- [ ] Branch head moved since issue → certificate marked stale, delta re-verified, re-issued with `supersedes` +- [ ] Delta touching auth / payment / PII / data export / any file carrying an S06 mitigation → **full** pass, not delta +- [ ] At Tech Review: certificate exists, verdict `certified`, `certified_commit` equals the final branch head — else re-open certification before reviewing diff --git a/Skills/security-reviewer.md b/Skills/security-reviewer.md index 88dd9c4..59dc518 100644 --- a/Skills/security-reviewer.md +++ b/Skills/security-reviewer.md @@ -1,7 +1,7 @@ # Skill — Security Reviewer > **Module:** Skills -> **Used by:** [Workflows/code-review.md](../Workflows/code-review.md) (security dimension); backend-planning consultation; standalone security-review BRDs +> **Used by:** [Workflows/security-certification.md](../Workflows/security-certification.md) (**owns** `C_SECURITY` on the Implementation → QA edge); [Workflows/code-review.md](../Workflows/code-review.md) (dimension 4 — verifies the certificate is current); backend-planning consultation (threat model into S06); standalone security-review BRDs > **Matrix row:** Security Reviewer — [permission-matrix.md](../Architecture/permission-matrix.md) (authoritative) ## Role @@ -14,12 +14,14 @@ Thinks like the caller you didn't intend: what can be reached, with what forged/ - Planning consultation: threat pass over backend contracts before they freeze - Verify S06 security mitigations exist in code — mitigation claimed ≠ mitigation present - Rate/abuse posture on exposed endpoints +- **Issue the Security Certificate** before QA: freeze the sha, run the configured evidence, verify every S06 mitigation at `file:line`, classify, verdict — [template](../Templates/security-certificate.md) +- Keep the certificate current: branch head moves → delta re-verification and re-issue; auth/payment/PII/data-export deltas → full pass ## Decision Boundaries -- **Decides:** finding validity and severity; whether a mitigation satisfies its S06 entry. +- **Decides:** finding validity and severity; whether a mitigation satisfies its S06 entry; the certification verdict (`certified` / `not-certified`) and the scope it covers. - **Escalates:** risk-acceptance calls (user only, in writing in S06/S16), auth-model ambiguity (identity vs profile semantics → `Affects: S10`), findings requiring product change (`Affects: S07`/`S03`). -- **Never:** accepts "internal only" as an authz argument; lets raw provider errors reach clients; signs off on secrets in code/logs; downgrades an auth bypass below `blocker`; expands into offensive tooling — verification stays defensive. +- **Never:** accepts "internal only" as an authz argument; lets raw provider errors reach clients; signs off on secrets in code/logs; downgrades an auth bypass below `blocker`; reports unconfirmed scanner output as a finding; certifies a branch rather than a commit; treats an unavailable scanner as a pass; fixes the code it certifies; expands into offensive tooling — verification stays defensive. ## BRD Sections @@ -29,6 +31,10 @@ Append S10, S06, S05, S14; append S16. Findings with attack path + impact + concrete fix, severity honest (`blocker` = auth bypass, injection, secret exposure, data-integrity risk). Verified mitigation matrix against S06. +## Certification boundary + +Reviewer files, implementer fixes, reviewer re-verifies — the same boundary QA holds. A certifier who patches the code loses the only independent read of it. + ## Handoff → **Code Reviewer** (dimension results into S14 verdict). diff --git a/Standards/security.md b/Standards/security.md index dd49928..701b6a7 100644 --- a/Standards/security.md +++ b/Standards/security.md @@ -1,7 +1,7 @@ # Standard — Security > **Module:** Standards · Deviations: none for the floor; risk acceptance is a user-signed S06/S16 decision, never a silent skip. -> **Applies to:** all code; verified at review dimension 4 + [../Checklists/security.md](../Checklists/security.md). Defensive scope only. +> **Applies to:** all code. Enforced **before QA** by `C_SECURITY` — [security-certification](../Workflows/security-certification.md) issues a [Security Certificate](../Templates/security-certificate.md) against a named commit, validated by [../Checklists/security.md](../Checklists/security.md); re-checked at review dimension 4. Defensive scope only. ## Rules diff --git a/Templates/security-certificate.md b/Templates/security-certificate.md new file mode 100644 index 0000000..73e4c32 --- /dev/null +++ b/Templates/security-certificate.md @@ -0,0 +1,101 @@ +# Template — Security Certificate + +> **Module:** Templates +> **Produced by:** [security-certification workflow](../Workflows/security-certification.md) (Security Reviewer), on the `Implementation → QA` edge +> **Lives in:** BRD **S14 · Security Certificate** subsection (append). Guard: `C_SECURITY` ([workflow-state-machine](../Architecture/workflow-state-machine.md) §4) +> **Rule:** a certificate is scoped to the **commit it names**. Branch head moves → certificate stale → delta re-verification, re-issue. A certificate on superseded bytes is not a certificate. + +--- + +```yaml +--- +artifact: security-certificate +version: cert--01 # increments; never overwritten +produced_by: security-certification +certified_commit: # THE load-bearing field — what was checked +branch: feat/- +branch_head_at_issue: # equal to certified_commit, or the certificate is born stale +reads_versions: + threat_model: S06 rev # the threat table this verifies against + authz_matrix: S10 rev + test_run: +supersedes: cert--00 # when re-issued after a delta +verdict: certified | not-certified +issued: +--- +``` + +## 1. Scope of this certificate + +State what it covers **inside the claim** — a clearance written about one surface reads as holding for the set. + +- **Covers:** `` +- **Does not cover:** `` +- **Diff basis:** `..` · `` files, `` surfaces added/changed + +## 2. Automated evidence + +Every row is a command that ran, with its exit code. Unavailable tool = **`gap`**, recorded with what would close it — never a silent skip, never an implied pass. + +| Check | Tool + version | Command | Exit | Result | Gap? | +|---|---|---|---|---|---| +| Secret scan | `` | `` | `0` | clean / `` hits | — | +| Dependency audit | | | | `` high / `` critical | — | +| SAST | | | | | `gap: not configured — closes when ` | +| License check | | | | | | +| Typecheck + lint + tests | | | | | | + +**Every hit is a hypothesis, not a finding.** Confirm at source, correct the instrument, re-run. Unconfirmed scanner output is never reported as a finding and never waived as one. + +## 3. Threat-model verification (S06) + +Mitigation *claimed* ≠ mitigation *present*. Every row is verified in code, at a location. + +| Threat id | Surface / asset | Mitigation (S06) | Implemented at `file:line` | Verified how | Status | +|---|---|---|---|---|---| +| T-01 | | | | test / read / probe | present · missing · partial | + +- Threats with no mitigation present → `blocker` finding, no exceptions. +- Surfaces added during Implementation that no threat row covers → the model is stale: append S06, then certify. + +## 4. Manual verification + +[Checklists/security.md](../Checklists/security.md) run in full for the diff. Record the section results, not just the tick: + +| Section | Result | Notes | +|---|---|---| +| Boundaries | clean / `` findings | | +| AuthN/AuthZ | | | +| Secrets & leakage | | | +| Injection & abuse | | | + +## 5. Findings + +| # | Severity | Attack path | Impact | Location | Fix direction | Status | +|---|---|---|---|---|---|---| +| F-01 | blocker · major · minor | | | `file:line` | | open · fixed in `` · waived | + +Severity floor: **`blocker`** = auth bypass, injection, secret exposure, data-integrity risk. A blocker is never downgraded to ship. + +## 6. Waivers + +A waiver is a legitimate exit; **silence is not.** Every waiver names all five fields or it is not a waiver. + +| Rule / finding | Why accepted | Grantor (user) | Rider debt item | Closing condition | +|---|---|---|---|---| + +## 7. Verdict + +- **Verdict:** `certified` / `not-certified` +- **Rationale:** `` +- **Zero open blockers:** yes / no *(no → `not-certified`, route to Implementation)* +- **Residual risk accepted by:** `` on `` (S06 + S16 entries linked) — required when any waiver exists + +## 8. Currency record + +| Event | Sha | Action | +|---|---|---| +| Issued | `` | full pass | +| Branch moved | `` | delta re-verification: `` re-checked, `` re-run → re-issued as `cert--02` | + +Re-verification is **delta-scoped by default** (changed files + any surface they touch) and **full** when the delta touches auth, payment, PII, data export, or any file carrying an S06 mitigation. diff --git a/Workflows/backend-planning.md b/Workflows/backend-planning.md index 4c6afe7..d61b708 100644 --- a/Workflows/backend-planning.md +++ b/Workflows/backend-planning.md @@ -32,7 +32,8 @@ S10 (edit), S11 (edit), S12 (edit), S04 (append), S05 (append), S16 (append). 3. Data model: schema changes, migration plan, ownership of truth (e.g. auth provider identity ≠ product profile — name the source of truth per entity). 4. Failure planning is the core deliverable: timeouts, retries, idempotency keys for mutations, webhook delay/out-of-order handling, partial-failure recovery mapped to S09 states. 5. Authz matrix: who may call what; default deny. -6. Security pass with Standards/security: input validation boundaries, secrets handling, rate limits on exposed surfaces. High-risk findings → S06 via `Affects:`. +6. **Threat model into S06** — one row per new/changed surface: surface → asset at risk → plausible attacker/abuse → mitigation → **how it will be verified** (test name, code read, probe). This is what [security-certification](security-certification.md) checks against before QA; a mitigation with no verification method is a wish. High-risk findings → S06 via `Affects:`. +7. Security pass with Standards/security: input validation boundaries, secrets handling, rate limits on exposed surfaces. 7. Fill the **API mapping block** of every owned `screens/SCR-.md` ([api-mapping template](../Templates/api-mapping.md)) — screens without server needs get explicit `api: none`. 8. Contracts frozen before implementation — frontend plans against them. @@ -43,6 +44,7 @@ S10 (edit), S11 (edit), S12 (edit), S04 (append), S05 (append), S16 (append). - [ ] Data model + migration plan written; source of truth named per entity - [ ] Idempotency/retry/webhook behavior specified for every mutation + async integration - [ ] Authz matrix present; default deny +- [ ] S06 threat model covers every new/changed surface, each row naming its mitigation **and its verification method** - [ ] Touched-areas list present; conflict check done - [ ] S16 stage-exit entry written @@ -59,6 +61,7 @@ S10 (edit), S11 (edit), S12 (edit), S04 (append), S05 (append), S16 (append). - Designing endpoints from data shape instead of from flows — produces chatty or orphan APIs. - Unbounded queries — no pagination/limits on list surfaces. - Deferring authz ("add permissions later") — authz is contract, not polish. +- A threat row whose mitigation is "validate input" with no schema named and no verification method — unverifiable at certification, so it bounces the branch. ## Best Practices diff --git a/Workflows/code-review.md b/Workflows/code-review.md index b18d934..8fd11d5 100644 --- a/Workflows/code-review.md +++ b/Workflows/code-review.md @@ -12,6 +12,7 @@ Review the full branch diff before it becomes a PR: correctness, standards confo ## Inputs - QA exit: S13 all-pass, zero open blockers +- S14 Security Certificate, `certified`, naming the current branch head (`C_SECURITY` re-checked here) - Full branch diff vs main; S10/S11 (plan conformance basis); S12 (deviation log) - Standards/ + `project-overrides.md` @@ -22,14 +23,14 @@ Review the full branch diff before it becomes a PR: correctness, standards confo ## BRD Sections It May Update -S14 (edit), S16 (append). Specialist roles: S14 (append), S05/S06/S10 (append per matrix). +S14 (edit), S16 (append). **Specialist roles append only, and only where their own matrix row grants it** — Security Reviewer: S05/S06/S10/S14 · Performance Optimizer: S05/S10/S14 · Accessibility Specialist: S05/S07/S08/S14. A specialist writing outside its row routes via S16 `Affects:` instead ([permission-matrix](../Architecture/permission-matrix.md) §3). ## Responsibilities 1. **Plan conformance:** diff ⊆ plan + logged deviations. Unlogged out-of-scope changes → finding (process violation, not just code issue). 2. **Correctness:** logic errors, race conditions, unhandled promise/async paths, state bugs — read the code, don't skim the shape. 3. **Standards conformance:** react/nextjs/typescript/tailwind/naming/structure standards; suppressions justified; boundaries (server/client) sane. -4. **Security dimension:** input validation at boundaries, authz on every new surface, secrets, injection surfaces, raw-error leakage (error language must be normalized). +4. **Security dimension — verify the certificate, don't repeat it:** confirm S14 carries a `certified` certificate whose `certified_commit` equals the final branch head; read its scope, gaps and waivers. Stale or missing → stop, re-open [security-certification](security-certification.md), do not review around it. Current → spot-check the highest-exposure claims (authz on new surfaces, secrets, raw-error leakage) and file anything the certificate missed as a finding **against the certification method**, so the checklist gains the rule. 5. **Performance dimension:** render waste (unstable refs, missing memo where measured), bundle additions, unbounded queries, N+1, missing pagination. 6. **Accessibility dimension:** keyboard reachability, focus management, ARIA correctness, contrast tokens, reduced-motion variants present. 7. **DS conformance:** token references only, no one-off styling, extensions went through design-system workflow. @@ -38,6 +39,7 @@ S14 (edit), S16 (append). Specialist roles: S14 (append), S05/S06/S10 (append pe ## Completion Criteria - [ ] All seven dimensions reviewed — none skipped, each with explicit result (clean or findings) +- [ ] Security certificate present, `certified`, current against the final head; gaps and waivers read and accepted or challenged - [ ] Every finding: location, severity, why it matters, fix direction - [ ] Plan-conformance check done; unlogged deviations flagged - [ ] Verdict written with rationale in S14 @@ -54,6 +56,8 @@ S14 (edit), S16 (append). Specialist roles: S14 (append), S05/S06/S10 (append pe - Style-nit flood drowning the one real blocker — severity discipline is the reviewer's craft. - Re-litigating approved design/plan decisions — gaps route back via S16; taste disagreements don't. - Skipping dimensions on "small" diffs — small diffs hide authz misses and error-leak paths just fine. +- Re-running the whole security pass here instead of verifying the certificate — duplicated work that still misses the stale-sha case, which is the one that actually bites. +- Accepting a certificate whose sha predates the QA-loop fixes. - Fixing while reviewing — reviewer files, implementer fixes; same boundary as QA. - Rubber-stamping own recent code after a loop — re-review the changed area fully. diff --git a/Workflows/implementation.md b/Workflows/implementation.md index f8eb36d..bc4f190 100644 --- a/Workflows/implementation.md +++ b/Workflows/implementation.md @@ -32,9 +32,13 @@ S10 (edit — plan corrections, logged), S11 (edit — same), S12 (edit/append), 2. Compose UI from DS + shadcn/ui per S11 mapping; token references, no hardcoded values; no feature-local styling forks. 3. Implement every S09 state named in the plan — loading/error/empty/interrupted are AC-bearing code, not polish. 4. Write tests alongside code per the S11 test plan; every implemented AC has its named test passing locally. -5. Run typecheck + lint + tests before claiming complete; fix, don't suppress (`any`, `eslint-disable`, `@ts-ignore` need written justification in S12). -6. Keep commits atomic and honest — one logical change each, convention format, no "wip" on shared history. -7. New reusable pattern emerges → note in S16; candidate for toolkit/DS, don't inline-fork it. +5. **Implement each S06 mitigation in the slice that creates its surface** — never "harden later". Authorization, input schemas and error normalization are contract, not polish; a surface merged without them is a finding waiting for the certifier. +6. **New surface, new threat row.** A route, endpoint, webhook, upload, redirect target or storage read the plan did not foresee → append it to the S06 threat model as it is built, with its mitigation. A stale threat model blocks certification. +7. **Run the security scanners locally before pushing** — secret scan and dependency audit from the manifest `security:` block. A secret that reaches a pushed commit is published, and deleting it is not rotating it. +8. Run typecheck + lint + tests before claiming complete; fix, don't suppress (`any`, `eslint-disable`, `@ts-ignore` need written justification in S12). +9. Keep commits atomic and honest — one logical change each, convention format, no "wip" on shared history. +10. New reusable pattern emerges → note in S16; candidate for toolkit/DS, don't inline-fork it. +11. **Exit through certification** ([security-certification](security-certification.md)): the stage is not complete at "tests green" — it is complete when S14 carries a `certified` certificate naming the current branch head. ## Completion Criteria @@ -44,12 +48,17 @@ S10 (edit — plan corrections, logged), S11 (edit — same), S12 (edit/append), - [ ] Zero unjustified suppressions - [ ] S12 current: progress entries + all deviations logged - [ ] Branch pushed; commits follow convention +- [ ] Every S06 mitigation for a surface touched by this branch implemented, at a locatable `file:line` +- [ ] Every surface added beyond plan appended to the S06 threat model with its mitigation +- [ ] Secret scan + dependency audit run locally, clean or triaged (findings not muted) +- [ ] `C_SECURITY`: S14 Security Certificate issued `certified` for the current branch head - [ ] S16 stage-exit entry written (claim: ready for QA) ## Failure & Loops - Plan proves wrong mid-build → small correction: fix + log S12/S16. Contract-level: back-transition to `Dev Planning`. - QA bounces blockers back (`L_QA`, ceiling 3) → fix against S13 bug entries, log S12. +- Certification returns `not-certified` → fix by exposure order, then **re-certify**; the bounce counts against `L_QA`. Fixes push new commits, so the certificate re-issues against the new head — never hand QA a certificate that names an older sha. - Blocked on external dependency → `Blocked` + reason, never stub-and-forget silently. ## Common Mistakes @@ -61,6 +70,10 @@ S10 (edit — plan corrections, logged), S11 (edit — same), S12 (edit/append), - Suppression creep: `any`/`@ts-ignore` without justification. - Giant mixed commits — untraceable in review, unrevertable in rollback. - Building "while I'm here" improvements outside plan scope — new BRD or S16 note; not this branch. +- Adding a surface without adding its threat row — the certifier finds an uncovered endpoint and the stage bounces for a documentation gap. +- "I'll add authz once the flow works" — the flow works, the branch merges, the authz never lands. +- Deleting a leaked secret instead of rotating it. The commit is pushed; the secret is public. +- Muting a dependency-audit signal to get a green run. ## Best Practices diff --git a/Workflows/qa.md b/Workflows/qa.md index 4feb523..2020489 100644 --- a/Workflows/qa.md +++ b/Workflows/qa.md @@ -12,6 +12,7 @@ Verify the implementation against S03 acceptance criteria and S09 states — adv ## Inputs - Implementation exit claim (S12 current, tests green claim) +- **`C_SECURITY` passed** — S14 Security Certificate `certified` for the current branch head ([security-certification](security-certification.md)). QA does not open on uncertified code; a certificate naming an older sha is stale and sends the BRD back before QA starts. - S03 ACs (verbatim test basis), S09 edge-case matrix, S11 test plan - Running app/branch build; prototype (behavior reference) @@ -36,6 +37,7 @@ S13 (edit), S09 (append — newly discovered edge cases), S06 (append), S16 (app ## Completion Criteria +- [ ] `C_SECURITY` held at entry, and still holds at exit (QA-loop fixes push commits → certificate re-issued against the new head) - [ ] Every AC has a row: pass/fail/blocked + evidence pointer — no evidence, no pass - [ ] Every S09 state exercised in the running app, result recorded - [ ] Test suite + typecheck + lint executed by QA, output referenced diff --git a/Workflows/security-certification.md b/Workflows/security-certification.md new file mode 100644 index 0000000..1d6bfca --- /dev/null +++ b/Workflows/security-certification.md @@ -0,0 +1,90 @@ +# Workflow — Security Certification + +> **Module:** Workflows +> **Stage:** exit step of `Implementation` (lifecycle state 06) — runs **before** `QA`, gating the edge via `C_SECURITY` ([workflow-state-machine](../Architecture/workflow-state-machine.md) §4). Not a lifecycle `Status` value; the BRD stays in `Implementation` until the certificate issues. +> **Skill:** [Security Reviewer](../Skills/security-reviewer.md) (Backend/Frontend Engineer fixes; reviewer never fixes what it certifies) +> **Standard:** [Standards/security.md](../Standards/security.md) · **Validator:** [Checklists/security.md](../Checklists/security.md) · **Artifact:** [security-certificate template](../Templates/security-certificate.md) + +## Purpose + +Prove — on the record, against a named commit — that the branch is safe to spend QA and human attention on. Security stops being a late review dimension and becomes a **precondition with an artifact**: what was checked, by what, at which sha, with which threats verified present in code. + +Two failures this exists to prevent: +1. **Late discovery.** An authz miss or a leaked secret found at Tech Review has already consumed a full QA cycle, and the fix re-enters QA behind it. +2. **Claimed ≠ present.** S06 lists a mitigation, nobody ever verified it exists in the code that shipped. + +## Inputs + +- Implementation exit claim: S12 current, typecheck + lint + tests green, branch pushed +- **S06 threat model** — surface → asset → attacker → mitigation → verification method (written at Dev Planning, appended during Implementation when new surfaces appear) +- S10 authz matrix; S11 API contracts (error codes, auth, idempotency) +- Full branch diff `..`; `project-manifest.yaml` `security:` block (scanner commands, `fail_on`, `high_risk_scopes`) +- Open S16 `Affects: S06 / S10` entries + +## Outputs + +- **S14 · Security Certificate** subsection — the certificate per template: certified commit sha, automated evidence with exit codes, threat-model verification matrix, manual verification results, findings, waivers, verdict `certified` / `not-certified` +- S06 (append) — mitigations verified/missing; residual risks accepted by the user in writing +- S16 — certification verdict, waivers with riders, systemic findings routed via `Affects:` +- On `not-certified`: bug entries routed to Implementation (`L_QA` accounting, ceiling 3) + +## BRD Sections It May Update + +S14 (append — the certificate), S06 (append), S10 (append — authz gaps), S05 (append), S16 (append). Per [permission-matrix](../Architecture/permission-matrix.md); no edits to another role's content. + +## Responsibilities + +1. **Freeze the target.** Record `certified_commit` = current branch head before anything runs. Everything below is a claim about *that sha* and nothing else. +2. **Scope the claim.** Name what the certificate covers and what it does not, inside the certificate. A clearance written about one surface gets read as holding for the set. +3. **Run the automated evidence** from the manifest `security:` block — secret scan, dependency audit, SAST/licence when configured, plus typecheck/lint/tests re-run. Record tool, version, command, **exit code**. +4. **Degrade loudly.** A scanner that isn't installed or configured is recorded as `gap: unavailable — closes when `, and its **manual equivalent runs instead** (targeted grep for secret patterns, dependency diff read by hand). Never a silent skip; a gap is a visible line in the certificate, and `fail_on` still applies to what did run. +5. **Treat every hit as a hypothesis.** Confirm at source before reporting: scanners produce false positives at volume, and an unconfirmed finding wastes an Implementation loop. Correct the instrument, re-run, then judge. +6. **Verify the threat model in code.** Every S06 mitigation gets a `file:line` and a verification method. Missing → `blocker`. A surface added during Implementation that no threat row covers means the model is stale: append S06 first, then certify. +7. **Run [Checklists/security.md](../Checklists/security.md) in full over the diff** — boundaries, authN/authZ, secrets & leakage, injection & abuse. Record section results, not just ticks. +8. **Classify honestly.** `blocker` = auth bypass, injection, secret exposure, data-integrity risk. A blocker is never downgraded to ship; it routes back to Implementation. +9. **Waive with all five fields or not at all** — rule, why, grantor (the user, in writing), rider debt item, closing condition. Residual-risk acceptance is a user signature in S06 + S16, never a reviewer's tick. +10. **Issue the verdict** and write the certificate in the same edit as the S16 entry. `certified` → QA may start. `not-certified` → Implementation, with findings ordered by exposure. +11. **Keep it current.** Branch head moves after issue → the certificate is stale. Re-verify the **delta** (changed files + every surface they touch) and re-issue; go **full** when the delta touches auth, payment, PII, data export, or any file carrying an S06 mitigation. + +## Completion Criteria + +- [ ] `certified_commit` recorded and equal to branch head at issue +- [ ] Scope stated inside the certificate — covered and not covered +- [ ] Every configured check ran with tool, version, command and exit code recorded +- [ ] Every unavailable check recorded as a `gap` with its closing condition, and its manual equivalent executed +- [ ] Every scanner hit confirmed at source before being reported; instrument corrected and re-run where it was wrong +- [ ] Every S06 threat has a mitigation verified at `file:line`, or a `blocker` finding +- [ ] Every new/changed surface in the diff appears in the threat model (stale model → S06 appended first) +- [ ] [Checklists/security.md](../Checklists/security.md) run in full over the diff, section results recorded +- [ ] Zero open `blocker` findings +- [ ] Every waiver carries rule + why + user grantor + rider + closing condition +- [ ] Verdict written with rationale; S14 certificate + S16 entry written in the same edit + +Guard: `C_SECURITY` — QA does not start without a `certified` certificate whose `certified_commit` equals the branch head. + +## Failure & Loops + +- `not-certified` → `Implementation` with findings ordered by exposure. Counts against `L_QA` (ceiling 3) — a security bounce is a QA-loop bounce, not a free round. +- Same class of finding returns after a fix → **route the class, not the instance**: sweep for siblings across the branch, record the sweep count, then re-certify. +- Threat model proves wrong at contract level (authz model doesn't hold) → back-transition to `Dev Planning` via S16 `Affects: S10`; do not patch authorization inside a certification round. +- Scanner infrastructure broken (tool errors, not findings) → fix the instrument, re-run ×2, then record as a `gap` with the error; never let a broken tool read as a clean pass. +- User unavailable to sign a required residual-risk acceptance → `Blocked` (`ambiguity: residual-risk acceptance`), resumable; never self-granted. + +## Common Mistakes + +- **Certifying the branch instead of a commit.** "The branch is clean" expires the moment someone pushes; a sha does not. +- Reporting raw scanner output as findings — the first run of a new scanner is mostly instrument noise, and every false positive costs an Implementation round. +- Ticking a mitigation because S06 says it exists. S06 is a plan; the code is the fact. +- Treating an unavailable scanner as a pass. A gap that isn't written down reads as "checked, clean" to everyone downstream. +- Reviewer fixing what it certifies — same boundary as QA: reviewer files, implementer fixes, reviewer re-verifies. +- Downgrading an auth bypass to `major` because the release is close. +- Waiving without a rider — an accepted risk with no debt item and no closing condition is an abandoned risk. +- Re-certifying "the whole thing" on every QA-loop commit, then skipping it entirely when time runs short. Delta re-verification is the sustainable middle, and it is the rule. + +## Best Practices + +- Write the threat model at Dev Planning, then **implement each mitigation in the slice that creates its surface** — certification then verifies, rather than discovering. +- Run the scanners locally during Implementation, not only here; the certificate should confirm what the engineer already knows. +- Keep the manifest `security:` commands honest and current — an aspirational command that fails to run is a gap, and gaps are visible. +- Certify the smallest true scope. A narrow certificate that says exactly what it checked beats a broad one nobody can act on. +- Feed every confirmed finding back: missing checklist item, missing standard rule, or missing test layer → toolkit change or seed BRD. A finding that changes nothing structural will return. From 5eb52a38636bf1548b214f87f37202be06d6486c Mon Sep 17 00:00:00 2001 From: Chheng64 Date: Thu, 27 Aug 2026 18:31:58 +0700 Subject: [PATCH 5/7] feat: clone the design method into the workflows instead of citing it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Executing a design workflow previously loaded a summary of the vendored skill, so the hardened method never reached the run and prototype output showed it. Every design state's skill is now cloned in full. - Workflows/design-review.md — states 09 USER_REVIEW, 10 REVISION and 11 FINAL_OUTPUT, which previously had no workflow file at all. Recovers the Run Local rule and its player-URL evidence, waivers-with-riders, root- cause routing, class-not-instance sweeps, loop counting, the Conflict Mini-Gate, freeze-is-a-hash, and completeness checked against the matrix. - Workflows/ui-workflow.md — skills 06/07/08 in full, including the B7b harness contract that makes registry-to-prototype id drift measurable, the strict colour allowlist, and the recorded failure-mode catalogues. - Workflows/ux-workflow.md — skills 04/05: flow shapes, edge-case matrix, reachability/recovery/boundary tables. - Workflows/flow-visualization.md — skill 12: E1-E7, V1-V13, the derived navigation map and the Developer Handoff Gate, default off. - Templates/prototype/ — the Run Local review player actually shipped (run-local.sh, serve.py, play.html), which the citation had told state 07 to use without providing. - Templates/traceability.md — the seven-table shape state 07 owes. - Screen contract §4a: bind with get_design_context, never get_metadata alone; reading order, chrome/presentation and alignment per bound frame; one arrangement test per designed screen. A node-ID inventory is not a design mapping. - Onboarding step 8b bootstraps the design harness; without it states 08 and 12 cannot run and every rendering-class check exits 2. Clones carry a "Cloned from: @ 4081c24" line. On a vendor upgrade, re-clone — a summarized clone is how this defect happened. Co-Authored-By: Claude Opus 5 (1M context) --- Architecture/design-state-machine.md | 204 ++++++++- Architecture/screen-contract.md | 26 +- Checklists/design-qa.md | 24 +- Checklists/flow-visualization.md | 52 +++ Checklists/ui-review.md | 7 +- Checklists/ux-review.md | 5 + Skills/design-system-engineer.md | 2 +- Skills/ui-designer.md | 10 +- Skills/ux-designer.md | 2 + Templates/design-mapping.md | 5 + Templates/prototype/README.md | 101 ++++ Templates/prototype/play.html | 174 +++++++ Templates/prototype/run-local.sh | 36 ++ Templates/prototype/serve.py | 98 ++++ Templates/traceability.md | 63 +++ Workflows/design-review.md | 608 ++++++++++++++++++++++++ Workflows/design-system-workflow.md | 28 +- Workflows/flow-visualization.md | 379 +++++++++++++++ Workflows/project-onboarding.md | 7 + Workflows/ui-workflow.md | 659 ++++++++++++++++++++++++--- Workflows/ux-workflow.md | 301 +++++++++--- 21 files changed, 2638 insertions(+), 153 deletions(-) create mode 100644 Checklists/flow-visualization.md create mode 100644 Templates/prototype/README.md create mode 100644 Templates/prototype/play.html create mode 100755 Templates/prototype/run-local.sh create mode 100644 Templates/prototype/serve.py create mode 100644 Templates/traceability.md create mode 100644 Workflows/design-review.md create mode 100644 Workflows/flow-visualization.md diff --git a/Architecture/design-state-machine.md b/Architecture/design-state-machine.md index b7bb29f..16bb4bf 100644 --- a/Architecture/design-state-machine.md +++ b/Architecture/design-state-machine.md @@ -2,18 +2,23 @@ > **Module:** Architecture / Foundation > **Status:** Stable -> **Source:** Adapted from "AI Product Design Agent — Workflow Architecture" (UI UX - Workflow.md). Gates, validation rules, retry ceilings, and loop bounds preserved. Artifact store remapped to the Living BRD. -> **Consumed by:** Workflows/ux-workflow, Workflows/ui-workflow, Workflows/design-system-workflow, AI/orchestrator +> **Normative process source:** [`../design-toolkit/docs/workflow.md`](../design-toolkit/docs/workflow.md) — vendored @ `4081c24`, see [VENDORED.md](../design-toolkit/VENDORED.md). Where this file and the vendored spec disagree about **process**, the spec wins. Where they disagree about **where artifacts live**, this file wins (§1). +> **Consumed by:** Workflows/ux-workflow, Workflows/ui-workflow, Workflows/design-review, Workflows/flow-visualization, Workflows/design-system-workflow, AI/orchestrator +> +> **The executable procedure is in the Workflows, not here.** Each vendored skill is **cloned in full** into its workflow file — this file is the machine (states, guards, gates, remapping), those are the method: +> [ux-workflow](../Workflows/ux-workflow.md) 04–05 · [ui-workflow](../Workflows/ui-workflow.md) 06–08 · [design-review](../Workflows/design-review.md) 09–11 · [flow-visualization](../Workflows/flow-visualization.md) 12 -The sub-machine that runs **inside** lifecycle states `Design` → `Design Review` (see [workflow-state-machine.md](workflow-state-machine.md)). Lifecycle states `Analysis`/`Planning` already execute design states 01–03; this file keeps the full catalog so the design flow is auditable end-to-end. +The sub-machine that runs **inside** lifecycle states `Design` → `Design Review` (see [workflow-state-machine.md](workflow-state-machine.md)), plus one conditional state on the `Design Review → Dev Planning` edge. Lifecycle states `Analysis`/`Planning` already execute design states 01–03; this file keeps the full catalog so the design flow is auditable end to end. + +**Twelve states, not eleven.** State 12 `FLOW_VISUALIZATION` is numbered by authoring order, not machine order: it runs *after* state 09 approves and *before* state 11 packages, and only when `C_HANDOFF_REQUIRED` holds. --- -## 1. Artifact Remapping (source doc → Living BRD) +## 1. Artifact Remapping (vendored spec → this toolkit) -Feature knowledge lives in Notion (single source of truth). Only build artifacts live in the repo. +Feature knowledge lives in Notion (single source of truth). Only build artifacts live in the repo. The vendored spec's `artifacts/*.md` store is **not used**; every artifact below has exactly one home here. -| Source artifact | Lives in | +| Vendored artifact | Lives in | |-----------------|----------| | `requirements.md` | BRD S03 (+ S04 assumptions) | | `research.md` | BRD S05 | @@ -21,16 +26,52 @@ Feature knowledge lives in Notion (single source of truth). Only build artifacts | `ux-plan.md` | BRD S07 + S09 | | `flows.md` | BRD S07 (flow subsection; graphs as embeds/links) | | `ui-plan.md` | BRD S08 | -| `prototype/` + `traceability.md` | **Repo**: `design/prototype//` on the BRD branch; link recorded in S08 | +| `prototype/` + `traceability.md` | **Repo**: `design/prototype//` on the BRD branch; link + version id recorded in S08 | | `audit-report.md` | BRD S14 (design-audit subsection) | | `review-record.md` | BRD S14 + `Approvals` property + S16 | | `revision-log.md` | BRD S16 (Decision Log entries, tagged `[Revision]`) | +| `navgraph.json` · `navmap-report.md` | **Repo**: `design/navmap//` — derived, regenerated, committed | +| `flow-visualization.md` | BRD S07 (navigation subsection) + the design file when Figma is bound | | `deliverable/` | Approved prototype (repo, frozen commit) + S07–S09 as handoff spec | | `machine_state` | Notion properties: `Status`, `Stage Owner`, `Approvals`, `Loop Count`, `Blocked Reason` | -## 2. State Catalog (condensed; validations normative) +**Reference inputs** the vendored spec expects the product to own: + +| Vendored reference input | This toolkit's home | +|---|---| +| `reference/screen-registry.csv` | **[Screen Contract](screen-contract.md)** — `screens/registry.md` + `screens/SCR-.md`. State 12 derives from the Screen Contract; no parallel CSV is created. | +| `reference/nav-lanes.json` · `state-vocabulary.md` · `state-machines.json` · `edge-annotations.json` | `design/navmap/` in the project repo, seeded from [`../design-toolkit/templates/`](../design-toolkit/templates/) | +| design-system reference | Project DS in the repo + Figma library when bound ([project-manifest](project-manifest.md) §3) | +| `toolkit.config.json` | `project-manifest.yaml` `design:` block; the vendored [`toolkit.config.json`](../design-toolkit/toolkit.config.json) is the field reference | + +## 2. Artifact Discipline (from `artifact-contracts.md`) + +Applies to every design artifact, wherever §1 puts it: + +- **Versions increment, never overwrite.** A revision creates a new version and names what it supersedes. One prefix per artifact, fixed — a gate record that cannot resolve a version id is the defect `reads_versions` exists to prevent: -Mapping to lifecycle: states 01–02 run under `Analysis`, state 03 under `Planning`, states 04–08 under `Design`, state 09 = `Design Review`, state 10 routes per target, state 11 exits into `Dev Planning`. +| Artifact | Version id | Written by | +|---|---|---| +| requirements (S01–S04) | `req--NN` | state 01 | +| research (S05) | `res--NN` | state 02 | +| product review (S03/S06) | `pr--NN` | state 03 | +| ux plan (S07/S09) | `ux--NN` | state 04 | +| flows (S07) | `flow--NN` | state 05 | +| ui plan (S08) | `ui--NN` | state 06 | +| prototype | `proto--NN` | state 07 | +| traceability | `trace--NN` | state 07 | +| design audit (S14) | `audit--NN` | state 08 | +| gate record (S14) | `review--NN` | state 09 | +| revision entry (S16) | `rev--NN` | state 10 | +| navigation map | `navmap--NN` | state 12 | +| security certificate (S14) | `cert--NN` | `C_SECURITY` | +- **`reads_versions` is load-bearing.** Every audit verdict and gate record names the *exact* versions it consumed — not "the latest". This is the field `FINAL_OUTPUT` checks completion rule 2 against; a record that names its inputs only in prose is not machine-checkable. +- **A gate record carries sha256** of every approved file plus the player URL the review was actually conducted at. An approval is scoped to the bytes it saw (`G3`, `M5`, `P1`). +- **A freeze is a hash, not a copy** (`P2`). A screen in no frozen deliverable is not delivered, however finished it looks. + +## 3. State Catalog (condensed; validations normative) + +Lifecycle mapping: 01–02 under `Analysis`, 03 under `Planning`, 04–08 under `Design`, 09 = `Design Review`, 10 routes per target, **12 on the `Design Review → Dev Planning` edge when `C_HANDOFF_REQUIRED`**, 11 exits into `Dev Planning`. ### 01 `REQUIREMENT_ANALYSIS` — under lifecycle `Analysis` Converts raw request → S01–S04. Validations: ≥1 goal + ≥1 AC; every requirement has a falsifiable AC; no item both `assumed` and `confirmed`; open questions carry severity (`blocking`/`non-blocking`). Exit: valid AND no unresolved blocking question. **Clarification Gate** on blocking ambiguity. Retry ceiling 3 → `Blocked`. @@ -45,36 +86,151 @@ Proceed / re-scope / stop with rationale → S03 prioritized, S06 scored, S16 de UX strategy, no screens → S07 (tasks, IA) + S09 (edge-case matrix). Validations: every primary task has happy path + **≥3 non-happy-path states** (error, empty, loading, interrupted, offline, permission-denied as applicable); accessibility + reduced-motion strategy present; every task traces to a prioritized S03 requirement; no visual design content. Retry ceiling 2 → `partial-coverage` flag only if risk tolerance in S06 allows. ### 05 `FLOW_GENERATION` — under lifecycle `Design` -Flows + transitions → S07 flow subsection. Validations: no unreachable state; no dead end without terminal justification; every S09 non-happy-path state has a recovery route; every decision point has mutually exhaustive branch conditions. Retry ceiling 3; persistent unreachable state → back to `UX_PLANNING`. +Flows + transitions → S07 flow subsection. Validations: no unreachable state; no dead end without terminal justification; every S09 non-happy-path state has a recovery route; every decision point has mutually exhaustive branch conditions. Retry ceiling 3; persistent unreachable state → back to `UX_PLANNING`. **Screen-free by construction** — state 05 rules what a flow *is*; state 12 proves the design file says so. ### 06 `UI_PLANNING` — under lifecycle `Design` -Component inventory + DS mapping → S08. Validations: every flow state maps to a component set; DS reuse preferred — every `new` component justified; no one-off styling where a DS primitive exists; token references resolve to the project design system or are flagged as **Extension Note**. Retry ceiling 2. +Component inventory + DS mapping → S08; screens registered in the Screen Contract. Validations: every flow state maps to a component set; DS reuse preferred — every `new` component justified; no one-off styling where a DS primitive exists; token references resolve to the project design system or are flagged as **Extension Note**. Name the DS by source id — *a plan built on the wrong design system validates perfectly against it*. Retry ceiling 2. ### 07 `PROTOTYPE` — under lifecycle `Design` -Assemble prototype in repo (`design/prototype//`). **Mandatory pre-build gate: check the design system first** — load DS reference, confirm needed tokens/primitives/components exist; reuse, never invent ad-hoc values; genuine gap → Extension Note in S08. Wire all transitions incl. recovery routes. Produce traceability (element → S07/S08 entry + DS token used). Validations: every flow state represented; every element traces to spec (no un-specced additions); DS token usage matches S08; wired transitions match flows; pre-build DS check performed. Retry ceiling 3 → back to `UI_PLANNING` on spec insufficiency. +Assemble prototype in repo (`design/prototype//`). **Mandatory pre-build gate: check the design system first** — load DS reference, confirm needed tokens/primitives/components exist; reuse, never invent ad-hoc values; genuine gap → Extension Note in S08. Wire all transitions incl. recovery routes. Produce traceability (element → S07/S08 entry + DS token used). Validations: every flow state represented; every element traces to spec (no un-specced additions); DS token usage matches S08; wired transitions match flows; pre-build DS check performed. **Build rules `B1`–`B8`, Figma traps `F1`–`F3`** ([method-rules](../design-toolkit/docs/method-rules.md)) — in particular: every state ships a **deep-link hook** recorded in traceability (`B2`), the token layer is the base and the base font stack is checked per script (`B5`), a transition is not wired until its **destination paints** (`B6`), supersession **deletes** (`B7`). Retry ceiling 3 → back to `UI_PLANNING` on spec insufficiency. ### 08 `SELF_AUDIT` — under lifecycle `Design` -Machine self-review before spending human attention → S14 design-audit subsection. Checks: conformance S03→S07→S08→prototype; accessibility + reduced-motion audit executed (never skipped); non-happy-path coverage reachable; findings classified `blocker`/`major`/`minor`; every AC marked met/unmet with evidence; verdict `pass`/`fail` with rationale. `pass` → lifecycle `Design Review`. `fail` → state 10 REVISION. Audit-fix loop ceiling 3. +Machine self-review before spending human attention → S14 design-audit subsection. Checks: conformance S03→S07→S08→prototype; accessibility + reduced-motion audit executed (never skipped); non-happy-path coverage reachable; findings classified `blocker`/`major`/`minor`; every AC marked met/unmet with evidence; verdict `pass`/`fail` with rationale. **Verification rules `M1`–`M6`**: every check is **rendering-class** (computed visibility + geometry, never DOM presence); **look at the render** — screenshots across language × theme × reduced-motion × state; a failing probe is a **hypothesis** — confirm at source, fix the instrument, re-run, never waive unconfirmed; sweep the **source** (duplicate keys, stale placeholder routes, per-glyph font fallback); the verdict is scoped to the bytes it audited. `pass` → lifecycle `Design Review`. `fail` → state 10 REVISION. Audit-fix loop ceiling 3. ### 09 `USER_REVIEW` — lifecycle `Design Review` (human) -**Run Local default:** serve prototype over local HTTP (`design/prototype//run-local.sh [port]`, default 8765; reuse listening server). Review happens against the running prototype, player URL recorded in S14. Present limitations from the audit transparently. Capture `approve` / `request-changes` / `reject`; structure change requests, each linked to a target state; none silently dropped. **Design Gate.** Approve → state 11. Request-changes → state 10. Reject → lifecycle `Analysis`. User unavailable → `Blocked` (resumable). +**Run Local, never a static preview** (`G1`): serve the prototype over local HTTP (`design/prototype//run-local.sh [port]`, default 8765; reuse a listening server), review through the player, record the player URL in S14. **The hook list is the packet** (`G2`) — ship state 07's traceability table with the verdict request. Present limitations at full strength; an acceptance with qualifications is recorded with its qualifications (`G5`). Capture `approve` / `request-changes` / `reject`; structure change requests, each linked to a target state; none silently dropped. Every waiver names its rider debt item, grantor and closing condition (`G6`). Ambiguity is bounded to two clarification rounds, then recorded as a non-blocking note (`G8`). **Design Gate.** Approve → state 12 if `C_HANDOFF_REQUIRED`, else state 11. Request-changes → state 10. Reject → lifecycle `Analysis`. User unavailable → `Blocked` (resumable). ### 10 `REVISION` -Merge audit findings + change requests into one change set; triage each to its **root-cause state** (requirement? flow? UI? prototype?); order upstream-first; dispatch; re-run downstream; every item ends `resolved` or `deferred` with reason — never silently `open`. Dedupe against S16 `seen` entries so rejected changes don't re-enter. Loop ceiling: **3 full revision cycles** → `Blocked` + escalation summary. Conflicting change requests → mini-gate to user before dispatch. +Merge audit findings + change requests into one change set; dedup against S16 `seen` entries (`R1`); triage each to its **root-cause state** — where the fault was *introduced*, not where it is visible (`R3`); **route the class, not the instance** — state the class, sweep for it, record the sweep count (`R2`); dispatch a **bounded scope** naming what changes *and what must not* (`R4`); re-verify aged items against current bytes before dispatch (`R5`); re-validate through `SELF_AUDIT`, or record a waiver with a rider (`R6`); **count the loop out loud every cycle** — one round = one prototype rebuild (`R7`). Every item ends `resolved` or `deferred` with reason — never silently `open`. Loop ceiling: **3 full revision cycles** → `Blocked` + escalation summary. Conflicting change requests → **Conflict Mini-Gate** before dispatch, never resolved in the bytes (`R8`). + +### 12 `FLOW_VISUALIZATION` — on the `Design Review → Dev Planning` edge, when `C_HANDOFF_REQUIRED` +Proves the approved design is *ready for development*, not merely visually complete → `design/navmap//` + S07 navigation subsection + design-file Sections when Figma is bound. **Derive the graph, never draw it** (`W1`) — from the Screen Contract registry, by tool, with an exit code; reconcile against the ratified S07 flows, and record disagreements as findings rather than merging them. One Section per **journey**, `FLOW-XXX • Journey Name` (`W2`); layout is a contract — left→right, uniform pitch, 8pt grid, branches vertical (`W3`); the legend ships in the file (`W4`); connectors regenerate **wholesale**, never hand-patched (`W5`); every frame carries its own metadata including the prototype version it depicts (`W6`); sync is triggered by a **hash diff of the edge set**, not by memory (`W7`); a boundary is a **dated claim** (`W8`); state variants are not optional (`W9`); **the gate passes on the report, not on the picture** (`W10`). Extensions E1–E7: lanes from an explicit assignment file (unassigned → reported, never guessed) · derived cross-feature map · **measured** heat (in-degree + distinct source features) · deep links read out of the implementation, not out of a doc claiming them · normalized state vocabulary before generation · `UNKNOWN` legal, a guessed value is not · provenance block on the overview page. Validations V1–V13 per the vendored skill. **Developer Handoff Gate.** Retry ceiling 3 → back to `FLOW_GENERATION`; registry ↔ prototype route conflict → state 10. ### 11 `FINAL_OUTPUT` — exits into lifecycle `Dev Planning` -Verify approval current (not superseded); freeze prototype commit; S07–S09 constitute the handoff spec; final completeness check: 100% design-relevant ACs met or user-waived. Completeness regression → back to REVISION, never silent shipping. +Verify approval current, and that it **names its bytes** (`P1`); freeze the prototype commit — a freeze is a hash (`P2`); the audit of record must have run on the bytes being frozen (`P4`); S07–S09 constitute the handoff spec; final completeness check against the **traceability matrix**, never from memory (`P3`) — 100% design-relevant ACs `met` or user-waived, and `superseded` is a legitimate status that names its superseding revision. A waiver is a legitimate exit; silence is not (`P6`). **Known limitations ship inside the deliverable at full strength** (`P8`). Close the machine record in the same edit as the freeze (`P7`). Completeness regression → back to REVISION, never silent shipping. + +## 4. Transitions (design-machine edges that leave a lifecycle stage) + +| From | Trigger / condition | To | +|---|---|---| +| `SELF_AUDIT` | verdict `pass` | lifecycle `Design Review` (state 09) | +| `SELF_AUDIT` | verdict `fail` | `REVISION` | +| `USER_REVIEW` | `approve` ∧ `C_HANDOFF_REQUIRED` | `FLOW_VISUALIZATION` | +| `USER_REVIEW` | `approve` ∧ ¬`C_HANDOFF_REQUIRED` | `FINAL_OUTPUT` | +| `USER_REVIEW` | `request-changes` | `REVISION` | +| `USER_REVIEW` | `reject` | lifecycle `Analysis` | +| `FLOW_VISUALIZATION` | Developer Handoff Gate granted ∧ `C_NAVMAP_CLEAN` | `FINAL_OUTPUT` | +| `FLOW_VISUALIZATION` | registry route no flow graph ratified | `FLOW_GENERATION` | +| `FLOW_VISUALIZATION` | registry ↔ prototype route conflict | `REVISION` | +| `FINAL_OUTPUT` | validation pass | lifecycle `Dev Planning` | +| `FINAL_OUTPUT` | completeness regression | `REVISION` | -## 3. Retry vs Back-Transition +Full internal edge list: [vendored spec §3](../design-toolkit/docs/workflow.md). + +## 5. Retry vs Back-Transition - **Retry (self-loop):** fault is inside this state's output — fix here, `entry_count` +1, ceiling per state above. - **Back-transition:** root cause is upstream — route to the owning state. Missing input artifact → back to producing state. Tool/runtime error → retry step ×2 → `Blocked` with diagnostic. -## 4. Deltas from Source Doc +## 6. Conditions + +| Condition | Definition | +|---|---| +| `C_AUDIT_PASS` | S14 design-audit verdict = `pass`, zero `blocker`, run on the current prototype version | +| `C_ALL_CRITERIA_MET` | 100% design-relevant ACs `met`, `waived` (recorded), or `superseded` (naming the revision) | +| `C_HANDOFF_REQUIRED` | The design goes to a build audience that was not in the room, so the navigation map is in scope. Source: `project-manifest.yaml` `design.handoff_required` (**default `false`**), overridable per BRD via a `Handoff Required` property. Set `true` for design-only engagements resuming into build later, multi-flow features, and any BRD whose builder is not its designer. | +| `C_NAVMAP_CLEAN` | Navigation derivation exits clean at the configured severity, or every remaining finding carries a granted waiver + rider debt item | + +## 7. Gates + +| Gate | Location | Blocks | Grantor | +|---|---|---|---| +| Clarification | state 01 | leaving Analysis with blocking ambiguity | user | +| **Direction** | state 03 → 04 | spending design effort on unapproved direction | user | +| **Design** (primary) | state 09 | shipping an unapproved design | user | +| Conflict Mini-Gate | state 10 | dispatching conflicting change requests | user | +| **Developer Handoff** | state 12 → 11 | shipping a design a build team cannot navigate from | user | + +An approval is scoped to the artifact versions it saw. Artifacts change after approval → the gate reverts to `pending` (stale-approval rule, [workflow-state-machine](workflow-state-machine.md) §6). Classify the delta before asking about it: bug-fix-only → scope confirm with byte-level evidence; feature delta → a ruling (`G4`). + +## 8. Loops & Ceilings + +| Loop | Path | Ceiling | On breach | +|---|---|---|---| +| `L_CLARIFY` | state 01 self-loop | 3 | `Blocked` | +| `L_RESEARCH` | state 02 self-loop | 2 | continue with logged `gap` | +| `L_UX_EDGE` | state 04 self-loop | 2 | `partial-coverage` flag (S06 risk tolerance permitting) | +| `L_REVISION` | 09 → 10 → upstream → 08 → 09 | 3 full cycles | `Blocked` + escalation summary | +| `L_AUDIT_FIX` | 08 ↔ 10 | 3 | escalates into `L_REVISION` accounting | + +`L_REVISION` is the primary product loop and maps onto the lifecycle's `L_DESIGN`. It terminates by user `approve` or by ceiling — never silently. + +## 9. Method Rules — the index + +The vendored [`method-rules.md`](../design-toolkit/docs/method-rules.md) is the citable catalogue; each vendored skill carries the full statement of its own set. Cite by code in S14 findings, S16 entries and gate records. + +| Prefix | Owner state | Concerns | +|---|---|---| +| `B1`–`B8` · `F1`–`F3` | 07 PROTOTYPE | build method; Figma plugin-API traps | +| `M1`–`M6` | 08 SELF_AUDIT | verification method | +| `G1`–`G8` | 09 USER_REVIEW | review + gate-record method | +| `R1`–`R8` | 10 REVISION | triage + routing method | +| `P1`–`P8` | 11 FINAL_OUTPUT | packaging + freeze method | +| `W1`–`W10` · `E1`–`E7` | 12 FLOW_VISUALIZATION | navigation mapping + extensions | + +The three that shape the rest: **a DOM-assertion suite is not a substitute for looking at the render** · **a failing probe is a hypothesis, not a finding** · **an approval is scoped to the bytes it saw**. + +## 9b. Cross-State Rules + +Four rules bind more than one state. They are the ones most often broken by a change that looked local. + +| Rule | Statement | Binds states | +|---|---|---| +| **Scope your clearance claims** | "No boundary mocks left" was written about one flow and read as holding for the set. State the scope *inside* the claim. The mirror case: a gap recorded for one flow that a mechanical scan found in three. | 05, 07, 08, 12 | +| **An unruled question is carried, never defaulted** | An unanswered guard is an open decision (`o-`), not a branch invented at build time. An invented value becomes a frozen number nobody owns. | 04, 05, 06, 07 | +| **A shared component is a cross-flow contract** | A component used by more than one flow names its owning plan, or each file re-decides it — and they drift. | 06, 07 | +| **Facts promised at a boundary are contracts** | A fact one flow promises at a `⟂` boundary belongs in **both** flows' decision logs, or two internally consistent flows will disagree. | 05, 10, 11 | + +## 9c. Trimming the Pipeline + +**Legitimately skippable:** + +- **State 12** when the work is not going to a build team — `design.handoff_required: false` (the default here). The skip is logged in S16. +- **State 02 research** for a goal explicitly marked `no-research-needed` — **per goal, not wholesale**. + +**Never skippable:** + +- **State 08 before state 09.** The audit exists so the user never debugs. +- **State 09 before state 11.** The gate exists so the machine never ships on its own authority. + +A "small feature" uses smaller *content*, never fewer *states*. + +## 10. Verification Harness + +Vendored under [`../design-toolkit/tools/`](../design-toolkit/tools/) (Node, no install). Rules that name a tool are evidenced by its exit code, not by assertion: + +| Tool | Serves | Use | +|---|---|---| +| `audit.mjs` | 08 | rendering-class audit sweep (visibility, geometry, tap targets, palette, console) | +| `smoke.mjs` · `stateprobe.mjs` · `cdp.mjs` | 07, 08 | drive every view headless; confirm destinations paint (`B6`) | +| `linkcheck.mjs` · `mermaidcheck.mjs` | 07, 08, 12 | dead links + diagram syntax | +| `navgraph.mjs` | 12 | derive the navigation graph from the registry (`W1`) | +| `stategraph.mjs` | 12 | per-screen state machines from the normalized vocabulary (`E5`) | +| `annotate.mjs` | 12 | developer annotations with cited evidence (`E6`) | +| `config.mjs` · `config.schema.json` | all | config resolution; field reference for the manifest `design:` block | + +Tools read the **generated** `toolkit.config.json` at the project root (manifest `design:` block + the BRD's S08 allowlist) — never the vendored file (see [VENDORED.md](../design-toolkit/VENDORED.md)). + +**Full catalogue — what each tool checks, its exit codes, its failure-and-fix table, the false-positive catalogue, the waiver rule and the run order: [validation-engine.md](validation-engine.md).** Three things from it that bind every state: exit `2` means the check **did not run** (unevaluable, not passing) · a failing probe is a hypothesis until confirmed at source · a failing check that has not been confirmed at source **is not eligible for a waiver**. + +## 11. Deltas from the Vendored Spec -1. Artifact store → Living BRD sections + repo prototype dir (§1). No loose `.md` files. -2. `machine_state` → Notion properties; resumable across sessions by construction. -3. `HALT_BLOCKED`/`HALT_STOPPED` → lifecycle `Blocked`/`Stopped`. -4. States 01–03 execute under lifecycle Analysis/Planning — one pass, not duplicated work; the design stage trusts their outputs and back-transitions if they prove malformed. -5. Skill-per-state → states map to toolkit Skills (UX Designer: 04–05; UI Designer: 06–07; DS Engineer: 06–07 support; orchestrator: 08–11 routing). -6. Validation rules → mirrored as Checklists/ items in Phase 4 (ux-review, ui-review, design-qa); this file stays normative. +1. **Artifact store** → Living BRD sections + repo directories (§1). No loose `artifacts/*.md`. +2. **Reference inputs** → the Screen Contract is the registry; state 12 derives from it rather than from a parallel `screen-registry.csv` (§1). +3. **`machine_state`** → Notion properties; resumable across sessions by construction. +4. **`HALT_BLOCKED`/`HALT_STOPPED`** → lifecycle `Blocked`/`Stopped`. +5. **States 01–03** execute under lifecycle Analysis/Planning — one pass, not duplicated work; the design stage trusts their outputs and back-transitions if they prove malformed. +6. **Skill-per-state → toolkit Skills:** UX Designer 04–05; UI Designer 06–07; DS Engineer supports 06–07; UI Designer + FE Engineer 12; orchestrator routes 08–12. +7. **`handoff_required` defaults to `false`** here, where the vendored spec leaves it unset. The lifecycle already carries design→dev traceability in the Screen Contract, so the navigation map is opt-in per project or per BRD (§6) — a fourth human gate is never imposed silently. +8. **`toolkit.config.json` → `project-manifest.yaml` `design:` block.** One config per project, not two. +9. **Validation rules** are mirrored as executable Checklists items ([ux-review](../Checklists/ux-review.md), [ui-review](../Checklists/ui-review.md), [design-qa](../Checklists/design-qa.md), [flow-visualization](../Checklists/flow-visualization.md)); this file plus the vendored spec stay normative. diff --git a/Architecture/screen-contract.md b/Architecture/screen-contract.md index e169a2e..1ff24f6 100644 --- a/Architecture/screen-contract.md +++ b/Architecture/screen-contract.md @@ -39,7 +39,7 @@ Five mapping blocks, filled by the stage that owns each ([../Templates/design-ma | Block | Filled at | Owner | Content | |-------|-----------|-------|---------| -| **Design** | UI planning / prototype | UI Designer | Figma frame + component refs (when manifest has Figma) · DS components + tokens used · states designed | +| **Design** | UI planning / prototype | UI Designer | Figma frame + component refs (when manifest has Figma) · **Reading order · Chrome / presentation · Alignment** per bound frame (§4a) · DS components + tokens used · states designed · deviations from the frame as findings with the ruling that allowed them | | **Prototype** | Prototype | UI Designer | prototype route, interactive behaviors wired, recovery routes reachable | | **Frontend** | Dev Planning | FE Engineer | frontend route, page component file, shared components, layout, state mgmt refs (S10/S11 pointers) | | **API** | Dev Planning | BE/FS Engineer | required APIs (S11 spec names), request/response models, error states → screen states | @@ -47,12 +47,30 @@ Five mapping blocks, filled by the stage that owns each ([../Templates/design-ma Screens with no API dependencies state `api: none` explicitly — absence is declared, never implied. +**The registry is the spine.** Design state 12 derives the **entire** navigation model from these cells ([validation-engine §5](validation-engine.md)). Two consequences: if the diagram and the derivation disagree, **the diagram is wrong**; and a cell carrying prose where an id belongs is a finding (`N10-unparsed`), not a stylistic quibble — it silently drops an edge. Two separators, **not interchangeable**: `states` is **comma**-separated; `entry_from` and `navigates_to` are **pipe**-separated. + +**Navigation fields (v1.7, additive).** The Prototype block may carry three extra lines — `entry_from:`, `navigates_to:` (target `SCR-id` + condition per route), `states:` (from the project's normalized state vocabulary). They are **optional and do not affect `C_CONTRACT`**: a screen without them is a complete contract. They exist because design state 12 ([flow-visualization](../Workflows/flow-visualization.md)) derives the navigation map from this registry, and a missing route field is *reported as a finding* against the map, never guessed. Projects with `design.handoff_required: true` fill them at prototype time; everyone else can ignore them. + ## 4. Figma-Optional Rule **No healthy Figma binding** — `manifest.resources.figma.product_design_file` skipped, null, or `health: unreachable` ([project-manifest](project-manifest.md) §3) — → Design block maps to **prototype + DS components only**; Figma fields marked `n/a (no figma in manifest)`. Contract validation adapts: the "exists in Figma" check becomes "exists in served prototype". When a healthy binding exists, both prototype and Figma mappings are required and must agree — divergence is a design-qa finding. Binding added or restored later: existing `n/a` Design blocks on `verified` screens stay valid as-is; screens not yet past Design Review acquire Figma mappings at their next design touch. +## 4a. Binding Method — the frame governs arrangement (v1.11) + +Added after BRD-RP-002 F-29 (2026-08-27): five screens carried every node ID of their frames and still were not arranged like them, because the contracts inventoried nodes and described layout in prose, the frames were read through `get_metadata` (names and x/y only), and nothing executable checked arrangement. The rules below make the frame's authority over arrangement measurable. + +1. **Bind with `get_design_context` (layout + screenshot), never `get_metadata` alone.** Metadata cannot show `text-center`, `justify-center`, that a "Mobile header" instance is only the status bar, or that a close control sits above the title. The screenshot is read, not just captured (`M2`). +2. **Three mandatory fields per bound frame in the Design block:** + - `Reading order:` — top-to-bottom list of the frame's elements, node IDs attached (this is what the arrangement test pins); + - `Chrome / presentation:` — bar or no bar, capsule position, sheet vs page, what sits behind a sheet, safe-area; + - `Alignment:` — per text block (centred / start) and per block (vertically centred / anchored). + A node-ID table without these three is **not** a design mapping (§7). +3. **Precedence, stated per authority.** The frame governs arrangement and hierarchy (which action is primary); the design system governs tokens, skins, type steps and motion; copy comes from the handoff/catalogue. Where the frame draws something the DS cannot express, the DS is extended **additively** and the extension is named in the contract. +4. **Deviation = finding + ruling, before landing.** A screen that departs from its frame on arrangement or hierarchy carries a finding row with the Product Owner's ruling; "composition choice" notes and ethics arguments in the contract are not rulings (`M6`, extended to layout). +5. **One arrangement test per designed screen bound to the product design file** — reading order, alignment and roles asserted on the rendered tree (`readingOrder()` pattern), so the next drift fails a test instead of waiting for a screenshot. Validation check 7 (§6) enforces presence; the fidelity review (`M7`, [ui-workflow](../Workflows/ui-workflow.md) C.4) checks content. + ## 5. Ownership & Edit Rules - Contract files follow the same role discipline as BRD sections: each block edited by its owning role (table §3); cross-block findings route via owning BRD's S16 `Affects:`. @@ -60,7 +78,7 @@ Binding added or restored later: existing `n/a` Design blocks on `verified` scre - Contract changes after Design Gate approval = design change → stale-approval rule fires on the owning BRD. - **Rebind fallout:** a registry mutation replacing or unbinding a resource that Design/API blocks reference ([project-manifest](project-manifest.md) §3) marks those mappings invalid, regresses the affected screens' status (logged in the owning BRD's S16), and fires the stale-approval rule — a swapped design file is a design change, never silent. -## 6. Validation (the six checks — guard `C_CONTRACT`) +## 6. Validation (the seven checks — guard `C_CONTRACT`) Run at Dev Planning entry, automatically, per owning BRD ([../Checklists/screen-contract.md](../Checklists/screen-contract.md) is the executable form): @@ -70,6 +88,7 @@ Run at Dev Planning entry, automatically, per owning BRD ([../Checklists/screen- 4. Every Frontend mapping references approved DS components only (no unmapped/one-off components). 5. Every API dependency is documented (API block ↔ S11 contract, or explicit `api: none`). 6. Every screen has QA coverage (ACs + edge cases + a11y + responsive entries). +7. Every screen at `designed` or beyond whose Design block binds a frame of the **product design file** has an arrangement test naming the screen ID and `readingOrder` (§4a rule 5) — executable form: the project's `arrangement:check` gate. **Any check fails → workflow stops; validator reports the exact missing mappings; orchestrator routes to the owning stage (registry gap → UX/UI; mapping gap → the block's owner). No partial pass.** @@ -80,3 +99,6 @@ Run at Dev Planning entry, automatically, per owning BRD ([../Checklists/screen- - Reusing a retired SCR-ID. - Contract updated after approval without the stale-approval consequence. - `api:` block silently absent instead of explicit `none`. +- **Node inventory as design mapping** — every Figma node ID listed, reading order / chrome / alignment unspecified; the screen then takes the DS defaults and passes every gate while looking nothing like the frame (F-29). +- Reading a frame through `get_metadata` alone and binding from it. +- A recorded "composition choice" standing in for a Product Owner ruling on a frame deviation. diff --git a/Checklists/design-qa.md b/Checklists/design-qa.md index 96cec96..2279e8d 100644 --- a/Checklists/design-qa.md +++ b/Checklists/design-qa.md @@ -1,26 +1,42 @@ # Checklist — Design QA (Self-Audit) > **Gate for:** design state 08 ([ui-workflow](../Workflows/ui-workflow.md) audit step) → `Design Review`. The machine gating itself before spending human attention. Verdict `pass` requires every box. +> **Normative rules:** `M1`–`M7` (+ `B2`, `B6`, `B8`) in [method-rules](../design-toolkit/docs/method-rules.md); vendored [skill 08](../design-toolkit/skills/08-self-audit/SKILL.md). +> +> **A DOM-assertion suite is not a substitute for looking at the render.** "N/N assertions passed" is a statement about the suite, not about the product. ## Prototype completeness - [ ] Every S07 flow state represented in the prototype (walk the list, tick each) -- [ ] Every transition wired per flows — including all recovery routes +- [ ] Every transition wired per flows — including all recovery routes — **and every destination paints** (`B6`), no boundary mock outliving its boundary - [ ] Every S09 state **reachable by interaction** in the served prototype (not just built) +- [ ] Deep-link hook present per state/variant/error case and recorded in the traceability map (`B2`) - [ ] `run-local.sh` serves it; player walkable start-to-finish without console errors ## Conformance -- [ ] Every prototype element traces to a spec entry (zero un-specced additions) -- [ ] DS pre-build check evidence: every element maps to DS token/primitive/component or a logged Extension Note +- [ ] Every prototype element traces to a spec entry (zero un-specced additions) — and zero leftovers from a superseded rebuild (`B7`) +- [ ] DS pre-build check evidence: every element maps to DS token/primitive/component or a logged Extension Note; the DS is named by source id - [ ] Zero hardcoded values where a DS entry exists (grep the prototype for raw hex/px against token list) - [ ] Cross-state consistency: naming, hierarchy, spacing rhythm, motion language uniform +- [ ] **Arrangement fidelity (`M7`)**: every screen bound to a product-file frame compared to its render on chrome · reading order · alignment · hierarchy · presentation, from the contract's §4a fields, each recorded `match` / `deviates (F-nn + ruling)`; the arrangement test exists per screen (`arrangement:check` green) + +## Audit method (`M1`–`M4`) +- [ ] Tool runs recorded with their **exit codes** — an exit `2` is *unevaluable*, never counted as a pass ([validation-engine](../Architecture/validation-engine.md) §2) +- [ ] Every check is **rendering-class** — computed visibility and geometry, never DOM presence (`M1`) +- [ ] **Screenshots read**, across language × theme × reduced-motion × state (`M2`) — not just captured +- [ ] Every rendered number read against its own copy (`B8`) — progress fills, counters, ceremony states +- [ ] Every failing probe **confirmed at source** before it is reported; harness corrected and re-run; nothing waived unconfirmed (`M3`) +- [ ] **Source swept**, not just the surface (`M4`): duplicate string/config keys across files *and* locales, stale placeholder routes, per-glyph font fallback on the base stack ## Audit dimensions - [ ] Accessibility audit executed (not skipped): keyboard walk complete, focus visible + managed, contrast token-pairs verified, semantics correct - [ ] Reduced-motion variant exercised (OS flag / emulation) — every animation has its fallback - [ ] Every design-relevant AC marked met/unmet **with evidence** - [ ] Findings classified `blocker`/`major`/`minor` in S14 design-audit subsection +- [ ] Conflicts between approved artifacts **recorded as findings with a recommendation**, never silently resolved (`M6`) +- [ ] Frame deviations on arrangement/hierarchy carry a **Product Owner ruling**, not a "composition choice" (`M6` extended to layout, `M7`) ## Verdict - [ ] Zero unresolved `blocker` findings -- [ ] Known limitations listed transparently (they go in the gate package) +- [ ] Verdict **scoped to the bytes audited**: `reads_versions` names the exact prototype version (`M5`) — targeted assertions from a revision round are not an audit +- [ ] Known limitations listed transparently at full strength (they go in the gate package) - [ ] Verdict `pass`/`fail` recorded with rationale in S14 + S16 diff --git a/Checklists/flow-visualization.md b/Checklists/flow-visualization.md new file mode 100644 index 0000000..6698fb4 --- /dev/null +++ b/Checklists/flow-visualization.md @@ -0,0 +1,52 @@ +# Checklist — Flow Visualization (Developer Handoff Gate) + +> **Gate for:** design state 12 ([flow-visualization](../Workflows/flow-visualization.md)) on the `Design Review → Dev Planning` edge — **only when `C_HANDOFF_REQUIRED`** ([design-state-machine](../Architecture/design-state-machine.md) §6). Normative rules: `W1`–`W10`, `E1`–`E7` in [method-rules](../design-toolkit/docs/method-rules.md); V-rules in the vendored [skill 12](../design-toolkit/skills/12-flow-visualization/SKILL.md). +> +> **The gate passes on the report, not on the picture** (`W10`). A map that renders beautifully over a derivation reporting broken routes is the failure this gate exists to prevent. + +## Preconditions +- [ ] `Approvals` contains `design` — state 12 maps approved bytes, never bytes ahead of the gate +- [ ] Prototype versions cited here are the versions the audit of record ran on +- [ ] Registry export regenerated this run from the Screen Contract (no hand edits in the derived CSV) + +## Derivation (`W1`) +- [ ] Run order honoured: `navgraph` → `stategraph` → `stateprobe` → `annotate` (**annotate reads `navgraph.json`**) ([validation-engine](../Architecture/validation-engine.md) §11) +- [ ] Graph **derived by tool**, not drawn — `navgraph.mjs` run recorded with its exit code +- [ ] Every connector traces to a registry cell +- [ ] Derivation reconciled against ratified S07 flows; disagreements recorded as findings, not merged +- [ ] Committed derivation **re-derives identically** from the current registry (V13) + +## Coverage +- [ ] Every Screen Contract row owned by this BRD has a frame in a Section (V1) +- [ ] Every derived navigation path exists as a connector (V2); directions match derived edges (V8) +- [ ] No orphan screens (V3); no broken connectors — endpoints exist at current coordinates (V4) +- [ ] All branches terminate; every decision node's branch set is exhaustive (V5) +- [ ] Entry + exit screens identified per Section (V6) +- [ ] State variants drawn, not left to the prototype (`W9`) + +## Presentation contract +- [ ] Section per **journey**, named `FLOW-XXX • Journey Name` (V7, `W2`) — not per feature +- [ ] Layout: left→right traversal order, uniform pitch, 8pt grid, branches vertical (`W3`) +- [ ] Connector styles carry meaning **and the legend ships in the file** (`W4`) +- [ ] Connectors regenerated wholesale this run — zero hand-patched arrows (`W5`) +- [ ] Every frame stamps ID, name, route, feature, flow, version, status **and the prototype version it depicts** (`W6`) + +## Extensions +- [ ] Lane coverage reported; unassigned screens **reported, never guessed into a lane** (V9, `E1`) +- [ ] Cross-feature map derived, not authored (`E2`) +- [ ] Heat **measured** — in-degree + distinct source features (`E3`) +- [ ] Deep-link addressability reported per flow, read out of the implementation (V10, `E4`); a flow with no hooks is a major finding with a rider +- [ ] State vocabulary normalized **before** generation; edge set carries `file:line` evidence the tool resolves (V11, `E5`) +- [ ] No blank annotation field — `UNKNOWN` legal and counted, guessed values not (V12, `E6`) +- [ ] Overview page ships its provenance block: registry sha, derivation run, prototype versions, date (`E7`) + +## Freshness & boundaries +- [ ] Sync recorded as an **edge-set hash diff**, not as a claim (`W7`) +- [ ] Every boundary re-dated this run (`W8`) + +## Gate record +- [ ] Report presented at the gate (not the picture) +- [ ] Findings clean at the configured severity, **or** every remaining finding carries a granted waiver with a rider debt item, a grantor and a closing condition +- [ ] Gate record names registry sha, derivation run, prototype versions — in `reads_versions`, not only in prose +- [ ] `figma: n/a (no binding)` stated explicitly when the design file is unbound (loud degradation, never silent skip) +- [ ] S07 navigation subsection + S14 gate record + S16 entry written diff --git a/Checklists/ui-review.md b/Checklists/ui-review.md index e82a204..dd88be8 100644 --- a/Checklists/ui-review.md +++ b/Checklists/ui-review.md @@ -1,9 +1,13 @@ # Checklist — UI Review -> **Gate for:** design state 06 exit ([ui-workflow](../Workflows/ui-workflow.md)) before prototype assembly. +> **Gate for:** design state 06 exit ([ui-workflow](../Workflows/ui-workflow.md)) before prototype assembly. Normative source: vendored [skill 06](../design-toolkit/skills/06-ui-planning/SKILL.md). +> +> **Failure mode #1: a plan built on the wrong design system validates perfectly against it.** Confirm the source id before ticking anything below. ## Coverage +- [ ] Design system named by **source id** in S08 (library/repo + version), not by nickname - [ ] Every S07 flow state maps to a component set (zero unmapped states) +- [ ] Every flow-implied screen registered in the Screen Contract (`SCR-` row + contract file, overlays included) — an unregistered screen is invisible to handoff mapping - [ ] Layout + hierarchy rules defined per state - [ ] Loading/empty/error states have specified UI (skeleton/placeholder/recovery presentation), not just "shows error" @@ -19,4 +23,5 @@ - [ ] Variants expressed as DS variant APIs (`cva`), not boolean-prop explosions - [ ] Motion specified by DS motion tokens + reduced-motion variant named per animated element - [ ] Component inventory consumable by [development-plan](../Templates/development-plan.md) without interpretation +- [ ] Every component used by more than one flow names its owning plan (shared components are cross-flow contracts, or each file re-decides them and they drift) - [ ] S16 stage-exit entry written diff --git a/Checklists/ux-review.md b/Checklists/ux-review.md index eccb978..e36dfb4 100644 --- a/Checklists/ux-review.md +++ b/Checklists/ux-review.md @@ -20,6 +20,11 @@ - [ ] Every decision point: mutually exhaustive branches (no gaps, no overlaps) - [ ] Transitions annotated with triggers + guards +## Decisions carried, not defaulted +- [ ] Every unanswered guard recorded as an open decision (`o-`) — zero branches invented at planning time +- [ ] Facts promised at a flow boundary appear in **both** flows' decision logs +- [ ] Clearance claims state their scope inside the claim ("no dead ends in FLOW-03", not "no dead ends") + ## Strategy - [ ] Accessibility strategy present, feature-specific (focus order, announcements, motion risks) — not boilerplate - [ ] Reduced-motion behavior decided at strategy level diff --git a/Skills/design-system-engineer.md b/Skills/design-system-engineer.md index db71fef..b7f64cc 100644 --- a/Skills/design-system-engineer.md +++ b/Skills/design-system-engineer.md @@ -1,7 +1,7 @@ # Skill — Design System Engineer > **Module:** Skills -> **Used by:** [Workflows/design-system-workflow.md](../Workflows/design-system-workflow.md); supports ui-workflow on DS questions +> **Used by:** [Workflows/design-system-workflow.md](../Workflows/design-system-workflow.md); supports ui-workflow on DS questions (design system named by **source id** before any plan validates against it) > **Matrix row:** Design System Engineer — [permission-matrix.md](../Architecture/permission-matrix.md) (authoritative) ## Role diff --git a/Skills/ui-designer.md b/Skills/ui-designer.md index cdd87fb..d8d5fbd 100644 --- a/Skills/ui-designer.md +++ b/Skills/ui-designer.md @@ -1,7 +1,7 @@ # Skill — UI Designer > **Module:** Skills -> **Used by:** [Workflows/ui-workflow.md](../Workflows/ui-workflow.md) (design states 06–08); REVISION targets for visual/component changes +> **Used by:** [Workflows/ui-workflow.md](../Workflows/ui-workflow.md) (design states 06–08) · [Workflows/design-review.md](../Workflows/design-review.md) (presents at states 09–11) · [Workflows/flow-visualization.md](../Workflows/flow-visualization.md) (state 12, when handoff is in scope); REVISION targets for visual/component changes > **Matrix row:** UI Designer — [permission-matrix.md](../Architecture/permission-matrix.md) (authoritative) ## Role @@ -15,13 +15,15 @@ Turns flows into concrete, design-system-conformant interfaces and a running pro - Define layout/hierarchy rules per state; tokens by reference - Assemble the prototype: all states (incl. non-happy), all transitions (incl. recovery), served via run-local - Maintain the traceability map (element → spec → DS asset) -- Run self-audit (state 08): conformance, a11y, reduced-motion, AC evidence, verdict +- Run self-audit (state 08) **rendering-class**: computed visibility + geometry, screenshots read across language × theme × motion × state, source swept, AC evidence, verdict scoped to the bytes audited +- Ship a deep-link hook per state/variant/error case — the hook table is the review packet +- Own the navigation map (state 12) when `handoff_required`: derive it from the Screen Contract, never draw it ## Decision Boundaries - **Decides:** component decomposition, layout, DS asset selection, visual hierarchy within DS constraints. - **Escalates:** DS gaps (Extension Note → Design System Engineer), missing/ambiguous flow states (back to UX, never invent), spec insufficiency (back-transition). -- **Never:** invents ad-hoc hex/spacing/type where a DS entry exists; adds un-specced elements; forks feature-local styling; skips the a11y audit; self-certifies `pass` with open blockers. +- **Never:** invents ad-hoc hex/spacing/type where a DS entry exists; adds un-specced elements; forks feature-local styling; skips the a11y audit; self-certifies `pass` with open blockers; reports an unconfirmed probe failure as a finding; hand-patches a derived connector. ## BRD Sections @@ -34,5 +36,5 @@ S08 + prototype + traceability meeting ui-workflow completion criteria; S14 audi ## Handoff → **User (Design Gate)** via orchestrator with the running prototype URL + known limitations. -→ **Frontend Engineer** (Dev Planning) after approval: traceability map + DS mapping precise enough that implementation is assembly, not interpretation. +→ **Frontend Engineer** (Dev Planning) after approval: traceability map + DS mapping precise enough that implementation is assembly, not interpretation; plus the navigation map + report when the Developer Handoff Gate ran. → **Design System Engineer** for open Extension Notes. diff --git a/Skills/ux-designer.md b/Skills/ux-designer.md index 39a001a..de62637 100644 --- a/Skills/ux-designer.md +++ b/Skills/ux-designer.md @@ -16,6 +16,8 @@ Owns what the user experiences structurally: tasks, IA, states, transitions, rec - Build flows: triggers, guards, mutually exhaustive branches, recovery routes, no dead ends - Define accessibility + reduced-motion strategy at feature level - Preserve user intent across interruptions (auth boundaries, async waits, redirects) +- Carry unruled guards as open decisions (`o-`) instead of defaulting a branch +- Ratify (or refuse) routes that design state 12's derivation reports as unratified — flows are ruled here, never in the design file ## Decision Boundaries diff --git a/Templates/design-mapping.md b/Templates/design-mapping.md index 586879d..ba4adfe 100644 --- a/Templates/design-mapping.md +++ b/Templates/design-mapping.md @@ -11,6 +11,9 @@ ## Design - **Figma frame:** - **Figma components used:** +- **Reading order:** +- **Chrome / presentation:** · safe-area> +- **Alignment:** - **DS components:**