Skip to content

Commit 357e0c9

Browse files
committed
Merge branch 'swc-1668/poc-components' into marissahuysentruyt/swc-1670-progress-circle
2 parents 4ab4846 + e0f8847 commit 357e0c9

32 files changed

Lines changed: 836 additions & 91 deletions

File tree

.ai/README.md

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,11 +219,61 @@ Skills are used on-demand. When a task matches a skill’s purpose, the agent re
219219
- Use when: On the analyze-rendering-and-styling step for one or more components; creating one markdown file per component at `CONTRIBUTOR-DOCS/03_project-planning/03_components/[component-name]/rendering-and-styling-migration-analysis.md`
220220
- Provides: Workflow summary (specs from CSS + SWC, three-way DOM comparison, CSS⇒SWC mapping table, summary). Full instructions in `CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_analyze-rendering-and-styling/cursor_prompt.md`
221221

222-
#### Washing machine migration workflow
222+
#### Migration — phase 1: prep (`migration-prep`)
223223

224-
- **purpose**: End-to-end 1st-gen → 2nd-gen migration sequence (phases, checklists, links to step docs and style guides)
225-
- **Doc**: `CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_washing-machine-workflow.md`
226-
- Use when: Planning or executing a component migration in the 2nd-gen component migration workstream
224+
- **purpose**: Understand the component, plan breaking changes, and define scope before any refactoring begins
225+
- **How to invoke**: Say "start migration prep for [component]", "plan the migration for [component]", or "phase 1 migration for [component]"
226+
- Use when: Beginning a 1st-gen → 2nd-gen component migration; before any files are created or code is moved
227+
- Provides: Research checklist (1st-gen API, usage, tests), breaking-change analysis, scope definition, written plan for review
228+
229+
#### Migration — phase 2: setup (`migration-setup`)
230+
231+
- **purpose**: Create the 2nd-gen file and folder structure, wire up exports, and confirm the build passes before implementation begins
232+
- **How to invoke**: Say "set up 2nd-gen structure for [component]", "create the file structure for [component]", or "phase 2 migration for [component]"
233+
- Use when: After prep is complete; creating the scaffolding a component needs before any logic is ported
234+
- Provides: File/folder creation checklist, export wiring steps, build-passes verification
235+
236+
#### Migration — phase 3: API (`migration-api`)
237+
238+
- **purpose**: Move properties, methods, and types from 1st-gen to 2nd-gen while maintaining a clear public API
239+
- **How to invoke**: Say "migrate the API for [component]", "port properties and methods for [component]", or "phase 3 migration for [component]"
240+
- Use when: Scaffolding is in place and it's time to define the component's public contract in 2nd-gen
241+
- Provides: Property/method porting workflow, type definition guidance, API contract review
242+
243+
#### Migration — phase 4: styling (`migration-styling`)
244+
245+
- **purpose**: Migrate CSS to the 2nd-gen structure, apply Spectrum 2 tokens, and ensure stylelint passes
246+
- **How to invoke**: Say "migrate styling for [component]", "port CSS for [component]", or "phase 4 migration for [component]"
247+
- Use when: API is in place; translating 1st-gen CSS to 2nd-gen with Spectrum 2 design tokens
248+
- Provides: CSS migration checklist, token mapping guidance, stylelint validation steps
249+
250+
#### Migration — phase 5: accessibility (`migration-a11y`)
251+
252+
- **purpose**: Implement WCAG-aligned semantics, ARIA, keyboard support, and focus management, and document accessibility behavior
253+
- **How to invoke**: Say "migrate accessibility for [component]", "implement a11y for [component]", or "phase 5 migration for [component]"
254+
- Use when: Styling is complete; hardening the component's accessibility implementation
255+
- Provides: WCAG checklist, ARIA pattern guidance, keyboard/focus requirements, a11y documentation template
256+
257+
#### Migration — phase 6: testing (`migration-testing`)
258+
259+
- **purpose**: Write unit tests, accessibility tests, and Storybook play functions for a migrated component
260+
- **How to invoke**: Say "write tests for [component] migration", "add migration tests for [component]", or "phase 6 migration for [component]"
261+
- Use when: Implementation is feature-complete; adding test coverage before review
262+
- Provides: Test coverage checklist, unit/a11y/play-function patterns, test-running verification
263+
264+
#### Migration — phase 7: documentation (`migration-documentation`)
265+
266+
- **purpose**: Write JSDoc, Storybook stories, and usage docs so the component is usable and understandable by others
267+
- **How to invoke**: Say "write docs for [component] migration", "document [component] for 2nd-gen", or "phase 7 migration for [component]"
268+
- Use when: Tests pass; creating the Storybook stories and usage documentation for the migrated component
269+
- Provides: JSDoc guidelines, stories scaffolding, README/usage doc structure, documentation checklist
270+
271+
#### Migration — phase 8: review (`migration-review`)
272+
273+
- **purpose**: Run final checks, verify lint/tests/build/Storybook, update the workstream status table, and open a PR
274+
- **How to invoke**: Say "review [component] migration", "final checks for [component]", or "phase 8 migration for [component]"
275+
- Use when: Documentation is complete; preparing the migration for code review and merge
276+
- Provides: Pre-PR checklist (lint, tests, build, Storybook), workstream status update steps, PR description guidance
227277

228278
#### Deep understanding
229279

.ai/skills/migration-a11y/SKILL.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: migration-a11y
3+
description: Phase 5 of 1st-gen to 2nd-gen component migration. Use to implement WCAG-aligned semantics, ARIA, keyboard support, and focus management, and document accessibility behavior.
4+
---
5+
6+
# Migration a11y ([Phase 5](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md))
7+
8+
[Phase 5](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md) of the 1st-gen → 2nd-gen component migration. The goal is to implement WCAG-aligned behavior — semantics, ARIA, keyboard support, and focus management — and verify it with assistive technology and automated tests.
9+
10+
See also: [`accessibility-compliance`](../accessibility-compliance/SKILL.md) for general WCAG 2.2 patterns, ARIA reference, and testing tools.
11+
12+
## Mindset
13+
14+
You are an implementer working from evidence, not assumptions. Read the accessibility migration analysis doc first. Every ARIA attribute you add must be justified by the APG pattern or WCAG criterion. If there is no analysis doc yet, stop and create one using the `accessibility-migration-analysis` skill before implementing.
15+
16+
## When to use this skill
17+
18+
- Phase 4 (migration-styling) is complete
19+
- The user asks to "implement accessibility" or "add a11y" for a component
20+
- The user asks to add keyboard support, ARIA, or screen reader behavior
21+
- The user refers to "Phase 5" of the 2nd-gen component migration workstream
22+
23+
## When NOT to use
24+
25+
- Phase 4 is not complete — styling should be in place before a11y testing
26+
- You need general WCAG or ARIA reference — use the [`accessibility-compliance`](../accessibility-compliance/SKILL.md) skill
27+
28+
## How to invoke
29+
30+
- "Implement accessibility for [component]"
31+
- "Add a11y for [component]"
32+
- "Phase 5 for [component] migration"
33+
34+
---
35+
36+
## Workflow
37+
38+
Follow **[Phase 5: Accessibility](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_washing-machine-workflow.md#phase-5-accessibility)** in the washing machine workflow doc — it covers what to do, what to check, common problems, and the quality gate for this phase.

.ai/skills/migration-api/SKILL.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
name: migration-api
3+
description: Phase 3 of 1st-gen to 2nd-gen component migration. Use to move properties, methods, and types from 1st-gen to 2nd-gen while maintaining a clear public API.
4+
---
5+
6+
# Migration API ([Phase 3](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md))
7+
8+
[Phase 3](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md) of the 1st-gen → 2nd-gen component migration. The goal is to migrate properties, methods, and types from 1st-gen to 2nd-gen — keeping the public API clear, types in core, and internal helpers marked appropriately.
9+
10+
## Mindset
11+
12+
You are defining a contract, not writing logic. Every property and type you place here is a public commitment. Put shared things in core, generation-specific things in SWC, and mark anything temporary with a `@todo`. If you are unsure where something belongs, ask the user, and/or use the `ask-questions` skill.
13+
14+
## When to use this skill
15+
16+
- Phase 2 (migration-setup) is complete and the file structure exists
17+
- The user asks to "migrate the API" or "move properties/types" for a component
18+
- The user asks to implement static arrays, debug warnings, or 1st-gen deprecations
19+
- The user refers to "Phase 3" of the 2nd-gen component migration workstream
20+
21+
## When NOT to use
22+
23+
- Phase 2 is not complete — the core/SWC file structure must exist first
24+
- You are implementing `render()` or styles — those are later phases
25+
26+
## How to invoke
27+
28+
- "Migrate the API for [component]"
29+
- "Move properties and types for [component]"
30+
- "Phase 3 for [component] migration"
31+
32+
---
33+
34+
## Workflow
35+
36+
Follow **[Phase 3: API Migration](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_washing-machine-workflow.md#phase-3-api-migration)** in the washing machine workflow doc — it covers what to do, what to check, common problems, and the quality gate for this phase.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: migration-documentation
3+
description: Phase 7 of 1st-gen to 2nd-gen component migration. Use to write JSDoc, Storybook stories, and usage docs so the component is usable and understandable by others.
4+
---
5+
6+
# Migration documentation ([Phase 7](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md))
7+
8+
[Phase 7](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md) of the 1st-gen → 2nd-gen component migration. The goal is JSDoc on the public API, Storybook stories covering the main use cases, and migration notes where the API diverges from 1st-gen.
9+
10+
See also: [`documentation`](../documentation/SKILL.md) for Adobe content writing standards to follow when writing usage docs and migration notes.
11+
12+
## Mindset
13+
14+
You are writing for the next contributor, not for yourself. Every story, JSDoc line, and migration note should answer the question a new engineer would ask six months from now. Avoid restating the implementation. Explain the intent, the constraints, and why the decisions were made. Be sure to follow the `documentation` skill for writing style and content expectations.
15+
16+
## When to use this skill
17+
18+
- Phase 6 (migration-testing) is complete
19+
- The user asks to "document [component]" or "add stories for [component]"
20+
- The user asks to write JSDoc, add Storybook stories, or document migration notes
21+
- The user refers to "Phase 7" of the 2nd-gen component migration workstream
22+
23+
## When NOT to use
24+
25+
- Phase 6 is not complete — tests should pass before documentation is finalized
26+
- You are updating docs for an existing component unrelated to migration
27+
28+
## How to invoke
29+
30+
- "Document [component]"
31+
- "Add stories for [component]"
32+
- "Phase 7 for [component] migration"
33+
34+
---
35+
36+
## Workflow
37+
38+
Follow **[Phase 7: Documentation](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_washing-machine-workflow.md#phase-7-documentation)** in the washing machine workflow doc — it covers what to do, what to check, common problems, and the quality gate for this phase.

.ai/skills/migration-prep/SKILL.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
name: migration-prep
3+
description: Phase 1 of 1st-gen to 2nd-gen component migration. Use to understand the component, plan breaking changes, and define scope before any refactoring begins.
4+
---
5+
6+
# Migration prep (Phase 1)
7+
8+
[Phase 1](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md) of the 1st-gen → 2nd-gen component migration. The goal is to thoroughly understand the component and produce a written migration plan—covering API surface, breaking changes, file layout, and naming decisions—before any code is moved or refactored.
9+
10+
## Mindset
11+
12+
You are a planner, not an implementer. Your job is to produce a written plan the team can review and challenge before a single line of code moves. Resist the urge to start implementing. Remember that a wrong plan caught in review is cheaper than a wrong implementation caught in testing.
13+
14+
## When to use this skill
15+
16+
- You are starting a 1st-gen → 2nd-gen component migration
17+
- The user asks to "prep" or "prepare" a component for migration
18+
- The user asks to plan or scope a component migration before implementation
19+
20+
## When NOT to use
21+
22+
- You are already past Phase 1 (refactoring, creating files, implementing)
23+
24+
## How to invoke
25+
26+
- "Prep [component] for migration"
27+
- "Run migration prep for [component]"
28+
- "Phase 1 for [component] migration"
29+
30+
---
31+
32+
## Workflow
33+
34+
Follow **[Phase 1: Preparation](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_washing-machine-workflow.md#phase-1-preparation)** in the washing machine workflow doc — it covers what to do, what to check, common problems, and the quality gate for this phase.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
name: migration-review
3+
description: Phase 8 of 1st-gen to 2nd-gen component migration. Use to run final checks, verify lint/tests/build/Storybook, update the workstream status table, and open a PR.
4+
---
5+
6+
# Migration review ([Phase 8](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md))
7+
8+
[Phase 8](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md) of the 1st-gen → 2nd-gen component migration. The goal is final checks — lint, tests, build, and Storybook — then updating the workstream status table and opening a PR.
9+
10+
## Mindset
11+
12+
You are a gatekeeper, not a rubber stamp. A passing build and green tests are the minimum expectations. Read the diff as if you are a reviewer who did not write this code. Look for missing edge cases, inconsistent conventions, and anything the automated checks cannot catch. Use the style guides in `CONTRIBUTOR-DOCS/02_style-guide` when enforcing code styles.
13+
14+
## When to use this skill
15+
16+
- All previous phases are complete
17+
- The user asks to "review [component]", "finalize [component]", or "open a PR for [component]"
18+
- The user refers to "Phase 8" of the 2nd-gen component migration workstream
19+
20+
## When NOT to use
21+
22+
- Phase 7 is not complete — documentation and stories should be finalized before review
23+
- You are resolving a lint, test, or build failure that belongs to an earlier phase (e.g. stylelint errors → Phase 4, failing unit or a11y tests → Phase 6)
24+
25+
## How to invoke
26+
27+
- "Review [component] migration"
28+
- "PR review for [component]"
29+
- "Phase 8 for [component] migration"
30+
31+
---
32+
33+
## Workflow
34+
35+
Follow **[Phase 8: Review](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_washing-machine-workflow.md#phase-8-review)** in the washing machine workflow doc — it covers what to do, what to check, common problems, and the quality gate for this phase.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: migration-setup
3+
description: Phase 2 of 1st-gen to 2nd-gen component migration. Use to create the 2nd-gen file and folder structure, wire up exports, and confirm the build passes before implementation begins.
4+
---
5+
6+
# Migration setup (Phase 2)
7+
8+
[Phase 2](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md) of the 1st-gen → 2nd-gen component migration. The goal is to create the core and SWC directory structure, stub out the required files, and confirm the component is importable before any implementation work begins.
9+
10+
## Mindset
11+
12+
You are building a foundation, not a feature. Every file you create here is a contract: the right structure now prevents expensive restructuring later. Stub first, verify the build passes, then stop — implementation comes in later phases.
13+
14+
## When to use this skill
15+
16+
- Phase 1 (migration-prep) is complete and the migration plan is approved
17+
- The user asks to "set up" or "scaffold" a component for 2nd-gen migration
18+
- The user asks to create the core/SWC file structure for a component
19+
- The user refers to "Phase 2" of the 2nd-gen component migration workstream
20+
21+
## When NOT to use
22+
23+
- Phase 1 is not complete — write and get team review on the migration plan first
24+
- You are implementing data model, rendering, or styles — those are later phases
25+
26+
## How to invoke
27+
28+
- "Set up [component] for migration"
29+
- "Scaffold [component] for 2nd-gen"
30+
- "Phase 2 for [component] migration"
31+
- "Create the core and SWC structure for [component]"
32+
33+
---
34+
35+
## Workflow
36+
37+
Follow **[Phase 2: Setup](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_washing-machine-workflow.md#phase-2-setup)** in the washing machine workflow doc — it covers what to do, what to check, common problems, and the quality gate for this phase.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
name: migration-styling
3+
description: Phase 4 of 1st-gen to 2nd-gen component migration. Use to migrate CSS to the 2nd-gen structure, apply Spectrum 2 tokens, and ensure stylelint passes.
4+
---
5+
6+
# Migration styling ([Phase 4](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md))
7+
8+
[Phase 4](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/README.md) of the 1st-gen → 2nd-gen component migration. The goal is to migrate CSS to the 2nd-gen structure, replace hard-coded values with tokens, and ensure the component's CSS passes stylelint with no errors.
9+
10+
## Mindset
11+
12+
You are translating, not redesigning. Your job is not to invent new visual decisions. Use the `rendering-and-styling-migration-analysis.md` file that corresponds to the component you are migrating. When the token you need does not exist, use the `ask-questions` skill to flag it with the user. Refer to the CSS styling guides in `CONTRIBUTOR-DOCS/02_style-guide/` when refactoring the CSS (i.e. change `--spectrum` prefixes to `--swc`; `.spectrum*` classes to `.swc*`; `--mod` prefixes should not exist). The CSS style guides are the preferred way to write the CSS, as opposed to any recommendations you find in the rendering analysis doc.
13+
14+
## When to use this skill
15+
16+
- Phase 3 (migration-api) is complete
17+
- The user asks to "migrate styles" or "migrate CSS" for a component
18+
- The user asks to apply Spectrum 2 tokens or fix stylelint errors
19+
- The user refers to "Phase 4" of the 2nd-gen component migration workstream
20+
21+
## When NOT to use
22+
23+
- Phase 3 is not complete — the API must be migrated first
24+
- You are working on `render()` or template structure — check the workflow doc for rendering context
25+
26+
## How to invoke
27+
28+
- "Migrate styles for [component]"
29+
- "Phase 4 for [component] migration"
30+
- "Apply Spectrum 2 tokens for [component]"
31+
32+
---
33+
34+
## Workflow
35+
36+
Follow **[Phase 4: Styling](../../../CONTRIBUTOR-DOCS/03_project-planning/02_workstreams/02_2nd-gen-component-migration/02_step-by-step/01_washing-machine-workflow.md#phase-4-styling)** in the washing machine workflow doc — it covers what to do, what to check, common problems, and the quality gate for this phase.

0 commit comments

Comments
 (0)