Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
02dd104
docs(design-system): proposal, plan & checklist for the WebUI design …
rdisandro Aug 5, 2026
775eb8a
docs(design-system): add self-contained explorer.html review page + l…
rdisandro Aug 5, 2026
2eb4063
Merge remote-tracking branch 'origin/main' into docs/design-system-pr…
rdisandro Aug 19, 2026
e133755
docs(design-system): re-home proposal package to docs/internal/reborn/
rdisandro Aug 19, 2026
a871a06
docs(design-system): track the three-Epic split and refresh phase/PR …
rdisandro Aug 20, 2026
e11332d
docs(design-system): re-home Phase 2 under Epic #7781; #7038 is Phase…
rdisandro Aug 20, 2026
aafd8d8
Merge remote-tracking branch 'origin/main' into docs/design-system-pr…
rdisandro Aug 21, 2026
a6cd697
docs(design-system): resolve the approach audit — one governance owne…
rdisandro Aug 21, 2026
772fc8c
docs(design-system): address the automated review round — WCAG AA, ho…
rdisandro Aug 22, 2026
375ff2b
docs(design-system): fix the MSW public/ trap, the motion kill switch…
rdisandro Aug 22, 2026
49fba2c
docs(design-system): make the Epic ownership table genuinely single-s…
rdisandro Aug 22, 2026
2917534
docs(design-system): give every frontend path an explicit base
rdisandro Aug 22, 2026
eca6478
docs(design-system): remove the last phase→Epic copies, including one…
rdisandro Aug 22, 2026
943d171
docs(design-system): stop asserting a token invariant the tree does n…
rdisandro Aug 22, 2026
1ccce20
docs(design-system): state the invariant-2 backlog in consistent, re-…
rdisandro Aug 22, 2026
27f5827
docs(design-system): match PLAN/CHECKLIST wording to the canonical §7…
rdisandro Aug 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions docs/internal/design/oobe/CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ Legend: `[ ]` not started · `[~]` in progress · `[x]` done. Every code box imp
- [x] Branch merged up to date with `main` (post-#6918 family-folder reorg); the `AUTOMATION-TASKS-CONTRACT.md` moved into `docs/design/oobe/`.
- [ ] **Carousel gate (D-F5)** — *deferred to the implementation PR:* when the carousel is (re)built, it must not return `MOCK_COMPLETED_TASKS` to real users (behind DEV/flag or an empty real projection).
- [x] Contract reconciled to the post-#6918 family-folder names (`ironclaw_event_log` + `ironclaw_event_store` under `crates/events/`; facade `RebornServicesApi` in `ironclaw_assistant`; `src/webui_v2/` confirmed current).
- [ ] Decision round #1 recorded (PROPOSAL §10 items 2, 4, 5).
- [ ] (If approved) first-draft `DESIGN.md` seeded with v2 tokens + card taxonomy (D-F6).
- [ ] Decision round #1 recorded (PROPOSAL §10 items 2 and 4; item 5 settled 2026-08-21).
- [x] D-F6 settled — `DESIGN.md`, tokens and the workbench are owned by [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md); no local seed is landed here (PROPOSAL §5.6).

## F1 — Automation-task backend (D-F1)

Expand Down Expand Up @@ -52,10 +52,12 @@ Legend: `[ ]` not started · `[~]` in progress · `[x]` done. Every code box imp
- [ ] Carousel gate (D-F5) retired — projection is the source of truth.
- [ ] Foundational demoable end-to-end on a fresh account.

## F5 — Design track (D-F6) — optional, parallel
## F5 — Design track pilot (D-F6) — optional, parallel

- [ ] `DESIGN.md` finalized (principles · theming · typography · a11y floors · card taxonomy · REJECT list).
- [ ] (Optional) Storybook workbench for card / action-bar / drawer / mode-pill: smoke play test + token/CSS check + one story per state.
*✎ 2026-08-21: `DESIGN.md`, tokens and the workbench are owned by [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md) (PR #7257) — OOBE contributes the pilot, not the governance (PROPOSAL §5.6).*

- [ ] OOBE card taxonomy + a11y floors contributed **into** that program's `DESIGN.md` (Phase-2 work, issue #7042 under Epic #7781) — no parallel constitution seeded here.
- [ ] Card / action-bar / drawer / mode-pill stories added to the Phase-1 catalog (#7750) once it lands: smoke play test + token/CSS check + one story per state.
- [ ] Design validation gate passes on the OOBE components (1:1 parity vs. mockup; tokens; light+dark; a11y).

## Foundational exit gate
Expand Down
14 changes: 7 additions & 7 deletions docs/internal/design/oobe/PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@

1. **D-F5 carousel gate** ⚠ — the guard for when the carousel returns. Gate the landing carousel behind DEV / a feature flag (or an empty-projection read) so it never exposes mock "done for you" cards to real users. The earlier prototype's *ungated* mock path is exactly what got it rolled back — the first implementation PR that re-adds the carousel must ship it gated.
2. **Contract reconciliation — ✅ done in this PR.** [AUTOMATION-TASKS-CONTRACT.md](AUTOMATION-TASKS-CONTRACT.md) now reflects the post-#6918 family-folder names: event log `ironclaw_event_log` + durable store `ironclaw_event_store` under `crates/events/`; facade `RebornServicesApi` in `crates/product/ironclaw_assistant`; routes in `crates/product/ironclaw_webui/src/webui_v2/` (confirmed current). Docs-only.
3. **Decision round #1** `[decision]` — close PROPOSAL §10 items 2 (suggestion producer), 4 (carousel gating), 5 (DESIGN.md pilot). One thread each.
4. **(Optional) D-F6 seed** — land a first-draft `DESIGN.md` capturing the v2 token system + card taxonomy, if the pilot is approved. Docs-only, unblocks design review of later phases.
3. **Decision round #1** `[decision]` — close PROPOSAL §10 items 2 (suggestion producer) and 4 (carousel gating). One thread each. *(Item 5, the DESIGN.md pilot, is settled — see below.)*
4. **D-F6 — nothing to seed here.** `DESIGN.md` and the workbench are owned by [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md) (PROPOSAL §5.6); OOBE's contribution is its card taxonomy + a11y floors, offered into that program's `DESIGN.md` (the Phase-2 work tracked by issue #7042, under Epic #7781) rather than a local draft.

*Exit criteria: the carousel-gate approach decided; contract reconciled (done); §10.2/§10.4/§10.5 decided. (Implementation is landing behind an off-by-default flag; the docs remain mergeable.)*
*Exit criteria: the carousel-gate approach decided; contract reconciled (done); §10.2/§10.4 decided (§10.5 settled — governance owned elsewhere). (Implementation is landing behind an off-by-default flag; the docs remain mergeable.)*

## Phase F1 — Automation-task backend (D-F1) — the leverage phase

Expand Down Expand Up @@ -53,12 +53,12 @@
- Add the **first-run onboarding CUJ** (PROPOSAL §8.4) to the regression baseline: fresh user → cards → connect → approve → card flips to done → appears in `/automations`.
- **Milestone:** Foundational is feature-complete and demoable on a fresh account; the carousel gate (D-F5) is retired — the projection is the truth.

## Phase F5 — Design track productionization (D-F6) — optional, parallel
## Phase F5 — Design track pilot (D-F6) — optional, parallel

*Runs alongside F1–F4 if the pilot is approved (§10.5).*
*Runs alongside F1–F4. ✎ **2026-08-21:** `DESIGN.md`, tokens and the Storybook workbench are **not** built here — they are owned by [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md) (PR #7257; Phase 1 under Epic #7038 as PR #7750 · Phases 2–3 under Epic #7781, issue #7042 tracking the Phase-2 `DESIGN.md` work). What is left in F5 is OOBE's pilot contribution (PROPOSAL §5.6).*

- Finalize `DESIGN.md` (principles, theming, typography, a11y floors, card component taxonomy, REJECT list).
- Optionally stand up a Storybook workbench for the pure Tier-2/3 card components (card, action bar, drawer, mode pill): smoke play test + token/CSS check + one story per state (PROPOSAL §8.3).
- Contribute the OOBE card taxonomy + a11y floors **into** that program's `DESIGN.md` rather than seeding a parallel one.
- Add stories for the pure Tier-2/3 card components (card, action bar, drawer, mode pill) to the Phase-1 catalog once it lands: smoke play test + token/CSS check + one story per state (PROPOSAL §8.3).
- **Milestone:** the OOBE component family is the design-governance pilot; the validation gate is enforceable on future card work.

---
Expand Down
10 changes: 6 additions & 4 deletions docs/internal/design/oobe/PROPOSAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,9 @@ Each dependency states *what it needs* and *how to build it*; the PLAN sequences

### 5.6 D-F6 — DESIGN.md + design tokens (cross-cutting, APDD design track)

*Needs:* IronClaw has no root `DESIGN.md` and no component workbench; the OOBE cards are a greenfield component family — the natural pilot to seed the APDD design governance track (see the prior APDD kit evaluation, `docs/plans/apdd-governance-kit/`). *Approach:* seed a `DESIGN.md` capturing the v2 token system, theming, a11y floors, and the card component taxonomy; optionally stand up a Storybook workbench for the card/drawer/action-bar components (they are pure Tier-2/3 presentational components — ideal isolation candidates). Deferrable, but cheapest to do while the components are being productionized.
> ✎ **Governance ownership moved (2026-08-21).** The `DESIGN.md` constitution, the `--v2-*` token architecture, and the Storybook workbench are owned by the WebUI design-system program — [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md) (PR #7257; Phase 1 under Epic #7038, shipping as PR #7750 · Phases 2–3 under Epic #7781, with issue #7042 tracking the Phase-2 `DESIGN.md` governance work specifically), whose [PROPOSAL §9](../../reborn/design-system/PROPOSAL.md#9-ownership-boundary-one-canonical-governance-record) records the boundary. **D-F6 no longer stands any of that up.** What survives is its *pilot* half: the OOBE card/drawer/action-bar family is catalogued and judged **through** that system — stories in the Phase-1 catalog, conformance against the Phase-2 `DESIGN.md`. If the cards productionize before Phase 1 lands, they ship as ordinary token-driven components and their stories follow in its wake; they do not fork a second workbench. The original text below is **historical** — kept as the record of why this dependency was raised, superseded in full by the note above.

> *Historical (pre-2026-08-21):* *Needs:* IronClaw has no root `DESIGN.md` and no component workbench; the OOBE cards are a greenfield component family — the natural pilot to seed the APDD design governance track (see the prior APDD kit evaluation, `docs/internal/apdd-governance-kit/` — [PR #7255](https://github.com/nearai/ironclaw/pull/7255), not yet on `main`). *Approach:* seed a `DESIGN.md` capturing the v2 token system, theming, a11y floors, and the card component taxonomy; optionally stand up a Storybook workbench for the card/drawer/action-bar components (they are pure Tier-2/3 presentational components — ideal isolation candidates). Deferrable, but cheapest to do while the components are being productionized.

### 5.7 D-V1 — Cold-start queued OAuth orchestration

Expand Down Expand Up @@ -222,7 +224,7 @@ Following `.claude/rules/testing.md` (integration-first; test through the caller

- **8.1 Backend (integration-first).** Each new event: persistence / replay / projection-visibility / redaction / ordering / transport-serialization tests. The projection: the cross-user isolation test (§7). Each route/facade method: a Reborn integration test through the harness asserting at a seam — not `wait_for_status(Completed)` alone. The `auto`/`bypass` gate-suppression paths: explicit privilege-escalation tests + audit-trail assertions. Modify-rerun: a test that an automated-task modify re-executes and returns fresh evidence.
- **8.2 Frontend.** The prototype already ships `automation-tasks.test.ts` + VM-sandbox stubs (1032 tests green). Add: seam contract tests (the `fetch` shapes match the route DTOs), drawer state-machine tests, connect-flow wiring test (the card's connect calls the shared resolver with the right `extension_name`).
- **8.3 Design validation gate (APDD).** If D-F6 is adopted: `DESIGN.md` conformance (tokens, theming, a11y floors — contrast, focus rings, state-not-by-color-alone), 1:1 parity against the mockup, and — if Storybook is stood up — smoke play test + token/CSS check + one story per card state.
- **8.3 Design validation gate (APDD).** Judged against the design-system program's `DESIGN.md` once it lands (§5.6; Phase 2 sits under Epic #7781 and is tracked by issue #7042): `DESIGN.md` conformance (tokens, theming, a11y floors — contrast, focus rings, state-not-by-color-alone), 1:1 parity against the mockup, and — once the Phase-1 Storybook catalog lands (#7750) — smoke play test + token/CSS check + one story per card state.
- **8.4 CUJ.** Add a first-run onboarding Critical User Journey (fresh user → cards appear → connect a tool → approve → card flips to done → appears in `/automations`) to the regression baseline once Foundational lands.

## 9. Risks
Expand All @@ -242,14 +244,14 @@ Following `.claude/rules/testing.md` (integration-first; test through the caller
2. **[OPEN]** D-F2 suggestion producer — deterministic starter set (recommended) vs. triggers-hosted suggester vs. agent-driven? Bounds the first-run feed.
3. **[OPEN]** D-F4 `auto` semantics — exact definition/bounds of "approved task types" (per-tool, per-action, spend/impact caps)?
4. **[OPEN]** D-F5 — real projection now, or DEV/flag gate first, to unblock PR #6994?
5. **[OPEN]** D-F6 — adopt the APDD design track (DESIGN.md + tokens now, Storybook later) with the OOBE cards as pilot?
5. **[RESOLVED 2026-08-21]** D-F6 — design governance is owned by [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md) (PR #7257, §9); OOBE contributes the card family as a pilot and stands up no `DESIGN.md`, tokens, or workbench of its own (§5.6).
6. **[OPEN]** D-V5 — username-derivation precedence when several sources resolve; fallback when none.
7. **[OPEN]** Enterprise tool config — does the admin-whitelisted set surface to the user as read-only "connected by your workspace," or invisibly?

## 11. How the two reference frameworks are applied

- **PR #6918 (target-architecture) framing** — this package mirrors #6918's document set: an executive **README** (overview + reviewer decisions + doc index), an evidence-backed **PROPOSAL** (this file), a sequenced **PLAN** (waves/gates/PR-sizing), and a **CHECKLIST** (definition of done). It borrows #6918's execution discipline: move-only/behavior-free PRs kept separate from semantic changes, guidance travels with the change, deletions use the un-masking discipline, and `main` stays shippable after every PR (PLAN).
- **APDD kit (product/design governance)** — this package follows the kit's **docs-first feature workflow**: spec → team review (this §10 stays open until folded in) → plan → test plan, with the binding anchors present (*Feedback & Decisions* §10, *Regression Tests* §8, and a *Critical Bug Fix Log* below per Rule 2). The **design track** (D-F6) proposes seeding `DESIGN.md` + tokens + a Storybook workbench for the new component family, exactly the kit's core design governance. The kit's evaluation for IronClaw is recorded at `docs/plans/apdd-governance-kit/`.
- **APDD kit (product/design governance)** — this package follows the kit's **docs-first feature workflow**: spec → team review (this §10 stays open until folded in) → plan → test plan, with the binding anchors present (*Feedback & Decisions* §10, *Regression Tests* §8, and a *Critical Bug Fix Log* below per Rule 2). The **design track** is not ours to seed: `DESIGN.md` + tokens + the Storybook workbench are owned by [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md) (PR #7257), and D-F6 contributes the card family as its pilot (§5.6). The kit's evaluation for IronClaw is proposed at `docs/internal/apdd-governance-kit/` ([PR #7255](https://github.com/nearai/ironclaw/pull/7255) — open, not yet on `main`).

<a name="review-artifact"></a>**Human-review artifact.** A self-contained visual review aid — the 5-layer integration schematic, the dependency graph, the phase timeline, and the shipped-vs-net-new map — lives in this package as [integration-review.html](integration-review.html) ([rendered preview](https://html-preview.github.io/?url=https://github.com/nearai/ironclaw/blob/feat/oobe-chat-automations/docs/design/oobe/integration-review.html)). It renders §3, §5, and §6 for reviewers who prefer the visual.

Expand Down
4 changes: 2 additions & 2 deletions docs/internal/design/oobe/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ Every dependency has an implementation approach in [PLAN.md](PLAN.md); the full
- **D-F3 — Connect wiring:** route each card's connect through the shared `extension_name` resolver + existing OAuth path (no new auth path — CLAUDE.md invariant).
- **D-F4 — Agent-mode persistence + gate semantics:** contract §7; `auto` is the typed generalization of `global_auto_approve`.
- **D-F5 — Carousel de-risk / gating:** the current draft blocker — the landing carousel shows mock cards to *all* users; must read the real projection (empty until tasks exist).
- **D-F6 — DESIGN.md + tokens (cross-cutting):** IronClaw has no `DESIGN.md` yet; the OOBE cards are the natural pilot to seed the APDD design track.
- **D-F6 — DESIGN.md + tokens (cross-cutting):** ✎ *governance ownership moved (2026-08-21)* — `DESIGN.md`, tokens and the Storybook workbench belong to [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md) (PR #7257); OOBE contributes the card family as its **pilot** and stands up none of that itself (PROPOSAL §5.6).

**Vision (additional):**
- **D-V1** cold-start queued OAuth orchestration · **D-V2** reveal-animation infra (`prefers-reduced-motion`) · **D-V3** anticipatory / "no automations yet" projection states (#6993) · **D-V4** composer-docked drawer component · **D-V5** username-derivation source (open decision).
Expand All @@ -97,7 +97,7 @@ Every dependency has an implementation approach in [PLAN.md](PLAN.md); the full
2. **The suggestion producer (D-F2)** — first-login trigger vs. deterministic starter set gated on connected extensions vs. an agent-driven suggester. This is the one genuinely new mechanism and the biggest open design question. (PROPOSAL §5.2)
3. **Agent-mode gate semantics (D-F4)** — `auto` skips the per-action gate for approved task *types*; confirm the typed generalization of `global_auto_approve` and its audit-trail requirements. (PROPOSAL §7)
4. **Carousel gating (D-F5)** — the merge blocker on PR #6994: real projection now, or DEV/flag gate first? (PROPOSAL §5.5)
5. **DESIGN.md pilot (D-F6)** — adopt the APDD design track here (seed `DESIGN.md`, tokens, and — later — a Storybook workbench for the card components), or defer. (PROPOSAL §8.3)
5. ~~**DESIGN.md pilot (D-F6)**~~ — *settled 2026-08-21:* design governance is owned by [`docs/internal/reborn/design-system/`](../../reborn/design-system/README.md); OOBE's part is the pilot card family, catalogued through it. (PROPOSAL §5.6, §8.3)

## How to review

Expand Down
Loading
Loading