# ui/designs Content-Repo Collection Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Establish `ui/designs/` as a standard content-repo collection (alongside `specs/` and `plans/`) — concretely in `wiggleverse-ecomm-content`, and centrally in the engineering repo's schema docs so it binds all `*-content` repos. **Architecture:** Docs/convention change only, two repos, one PR each. The collection convention's canonical home is the engineering repo's `schemas/` docs (the `content` descriptor description strings in `app.schema.json` + `schemas/README.md` changelog), so the central change is a docs-only minor schema bump (1.2 → 1.3). No tooling changes: the spec-linkage gate, backfill verb, and GUIDE/TEMPLATE Design field are tracked separately as `wiggleverse-dev-claude-plugin#93`. **Tech Stack:** Markdown, JSON Schema (description strings only), git + Gitea PRs over SSH. **Anchor:** `wiggleverse/wiggleverse-ecomm#8` (type/task, ELIGIBLE R2b). Related: `wiggleverse/wiggleverse-dev-claude-plugin#93`. --- ### Task 1: `ui/designs/` collection in wiggleverse-ecomm-content **Files:** - Create: `/Users/benstull/git/wiggleverse.org/wiggleverse/wiggleverse-ecomm-content/ui/designs/README.md` - Modify: `/Users/benstull/git/wiggleverse.org/wiggleverse/wiggleverse-ecomm-content/README.md` (layout table, lines 10–14) - [ ] **Step 1: Branch** ```bash git -C /Users/benstull/git/wiggleverse.org/wiggleverse/wiggleverse-ecomm-content checkout -b ui-designs-collection ``` - [ ] **Step 2: Create the collection README** `ui/designs/README.md`: ```markdown # ui/designs — UI-design artifacts Standard content-repo collection (alongside `specs/` and `plans/`) holding this app's UI-design artifacts — primarily Claude Design outputs generated from a Solution Design (rubric: `engineering/solution-design/claude-design-vs-code.md`). A Solution Design with a UX-involving slice references its design artifact here by path. The spec-linkage gate and the backfill gesture for adding that reference once a design exists are tracked in `wiggleverse/wiggleverse-dev-claude-plugin#93`. Suggested layout: one subfolder per design, named for the spec/slice it serves, e.g. `ui/designs/SD-0001-slice-3-storefront/`. ``` - [ ] **Step 3: Add the layout-table row** In the top-level `README.md`, extend the table: ```markdown | Path | Holds | | --- | --- | | `specs/` | reviewed Solution-Design specs (submitted at session finalize) | | `plans/` | archived implementation plans | | `ui/designs/` | UI-design artifacts (Claude Design outputs), referenced from specs | ``` - [ ] **Step 4: Commit, push, PR, merge** ```bash git -C …/wiggleverse-ecomm-content add ui/designs/README.md README.md git -C …/wiggleverse-ecomm-content commit -m "content: add ui/designs/ collection (ecomm#8)" git -C …/wiggleverse-ecomm-content push -u origin ui-designs-collection ``` PR via Gitea API (default per-host token, NOT the issue-scoped one — TOKENS.md), then merge; body cites `wiggleverse/wiggleverse-ecomm#8` + plugin `#93`. ### Task 2: Standardize centrally in engineering schemas docs **Files:** - Modify: `/Users/benstull/git/wiggleverse.org/wiggleverse/engineering/schemas/app.schema.json` (lines 13, 94, 181, 184) - Modify: `/Users/benstull/git/wiggleverse.org/wiggleverse/engineering/schemas/README.md` (repos[] bullets + changelog) - [ ] **Step 1: Branch** ```bash git -C /Users/benstull/git/wiggleverse.org/wiggleverse/engineering checkout -b ui-designs-collection ``` - [ ] **Step 2: Schema description strings + enum** 1. `schemaVersion.enum`: `["1.0", "1.1", "1.2"]` → `["1.0", "1.1", "1.2", "1.3"]` 2. `content` property description (line 94): "…where this app's reviewed specs/ and archived plans/ collections live…" → "…where this app's reviewed specs/, archived plans/, and ui/designs/ collections live…" 3. `$defs.content` description (line 181): "(reviewed specs/, archived plans/)" → "(reviewed specs/, archived plans/, ui/designs/ UI-design artifacts)"; and "The specs/ and plans/ collection subdirs are appended by the submit tooling" → "The specs/, plans/, and ui/designs/ collection subdirs are conventions (specs/ and plans/ are appended by the submit tooling; ui/designs/ holds Claude Design outputs referenced from specs)" 4. `$defs.content.subdir` description (line 184): "under which the specs/ and plans/ collections live" → "under which the specs/, plans/, and ui/designs/ collections live" - [ ] **Step 3: schemas/README.md** Changelog entry above 1.2: ```markdown - **1.3** — docs-only: the content-repo collection convention gains a third standard collection, `ui/designs/` — UI-design artifacts (Claude Design outputs generated from a Solution Design), referenced from specs. Like `specs/`/`plans/`, the subdir is a convention, not a schema field; no validation change (the spec-linkage gate/backfill tooling is wiggleverse-dev-claude-plugin#93). Existing files stay valid. ``` If the repos[] bullet list documents the `content` descriptor, name the three collections there too; if 1.2 never added a `content` bullet, add one. - [ ] **Step 4: Validate JSON, commit, push, PR, merge** ```bash python3 -m json.tool /Users/benstull/git/wiggleverse.org/wiggleverse/engineering/schemas/app.schema.json > /dev/null && echo OK git -C …/engineering add schemas/app.schema.json schemas/README.md git -C …/engineering commit -m "schemas: 1.3 — ui/designs/ standard content collection (ecomm#8, plugin#93)" git -C …/engineering push -u origin ui-designs-collection ``` PR + merge (default token for `/pulls`). ### Task 3: Cross-link and close out - [ ] **Step 1: Comment on plugin #93** noting the location is now standard (link both merged PRs) — its gate/backfill work can assume `ui/designs/` exists. - [ ] **Step 2: Close ecomm#8** with a comment naming both merged PRs. - [ ] **Step 3: Checkpoint the transcript** (`publish-transcript.sh` on the `--INPROGRESS` file).