Skip to content

Commit 6aceb8e

Browse files
committed
Enforce Theme V2 only CSS governance and remove V1 as migration source - PR_26152_030-theme-v2-only-css-governance
1 parent be10fb6 commit 6aceb8e

3 files changed

Lines changed: 222 additions & 17 deletions

File tree

docs/dev/PROJECT_INSTRUCTIONS.md

Lines changed: 48 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,30 @@ Use that phrase as a compact IA and copywriting anchor:
147147

148148
## GAMEFOUNDRYSTUDIO THEME V2 GOVERNANCE
149149

150-
`theme/v2` is the only approved styling surface for new GameFoundryStudio work.
151-
152-
Existing CSS is deprecated and compatibility-only.
150+
`theme/v2` is the only approved styling surface for GameFoundryStudio work.
151+
152+
V1/legacy CSS is deprecated and out of play.
153+
154+
### Theme V2 Only CSS Rule
155+
156+
- Theme V2 is the only active styling system.
157+
- V1/legacy CSS is deprecated and out of play.
158+
- V1/legacy CSS must not be used as a source.
159+
- V1/legacy CSS must not be copied.
160+
- V1/legacy CSS must not be ported.
161+
- V1/legacy CSS must not be compared as the desired target.
162+
- V1/legacy CSS must not be extended.
163+
- V1/legacy CSS must not be reintroduced through aliases, duplicate selectors, wrapper selectors, compatibility classes, or fallback imports.
164+
- New CSS must be authored directly in Theme V2 only when approved as reusable Theme V2 design-system styling.
165+
- Pages not migrated to Theme V2 may temporarily retain their existing references until their migration PR.
166+
- Pages that have migrated to Theme V2 must not reference V1/legacy CSS.
167+
- Migration means replacing the page with Theme V2 usage, not copying V1 styles into Theme V2.
168+
169+
If Theme V2 lacks a needed pattern:
170+
1. Document the design-system gap.
171+
2. Request approval.
172+
3. Implement the reusable pattern directly in Theme V2.
173+
4. Do not solve it by using V1.
153174

154175
Rules:
155176
- Do not extend deprecated CSS.
@@ -166,18 +187,21 @@ Rules:
166187
- No hardcoded font sizes.
167188
- No hardcoded z-index values.
168189
- No duplicate component styling.
169-
- No copy/paste of deprecated selectors into `theme/v2`.
190+
- No copy/paste, porting, aliasing, or wrapper recreation of deprecated selectors into `theme/v2`.
170191
- No one-off classes for a single page or tool unless approved and promoted into `theme/v2`.
171192
- New UI work must first attempt to use existing `theme/v2` tokens and classes.
172193
- Missing styling requirements must be reported as design-system gaps.
173194
- Design-system gaps should be documented rather than solved locally.
174195

175196
Allowed:
176-
- Adding reusable `theme/v2` tokens.
177-
- Adding reusable `theme/v2` component classes.
197+
- Adding approved reusable `theme/v2` tokens.
198+
- Adding approved reusable `theme/v2` component classes.
178199
- Toggling approved `theme/v2` classes from JavaScript.
179-
- Removing deprecated CSS.
180-
- Consolidating duplicate CSS into `theme/v2`.
200+
- Ownership cleanup inside Theme V2.
201+
- Consolidation inside Theme V2.
202+
- Removing deprecated dependencies.
203+
- Migrating page families to Theme V2.
204+
- Documenting historical legacy behavior.
181205

182206
### Theme V2 File Ownership
183207

@@ -215,19 +239,25 @@ Rules:
215239
When a style is missing:
216240
1. Document the gap.
217241
2. Identify affected pages/tools.
218-
3. Add reusable `theme/v2` pattern.
219-
4. Reuse everywhere.
220-
5. Do not implement locally.
242+
3. Request approval.
243+
4. Add the approved reusable `theme/v2` pattern directly in Theme V2.
244+
5. Reuse everywhere.
245+
6. Do not implement locally or solve it by using V1/legacy CSS.
221246

222247
### Theme V2 Consolidation Rule
223248

224249
During migration, allowed:
225-
- moving existing reusable CSS into `theme/v2` ownership files
226-
- renaming ownership locations
227-
- removing duplicates
228-
- normalizing existing patterns
250+
- ownership cleanup inside Theme V2
251+
- consolidation inside Theme V2
252+
- removing deprecated dependencies
253+
- migration of page families to Theme V2
254+
- documentation of historical legacy behavior
229255

230256
During migration, not allowed:
257+
- restoring legacy CSS
258+
- copying, porting, or using V1/legacy CSS as a source
259+
- comparing V1/legacy CSS as the desired target
260+
- reintroducing deprecated selectors through aliases, duplicate selectors, wrapper selectors, compatibility classes, or fallback imports
231261
- creating new component designs
232262
- creating new visual patterns
233263
- creating new utility systems
@@ -236,8 +266,9 @@ During migration, not allowed:
236266

237267
If a required pattern does not exist:
238268
1. Document it as a Design System Gap.
239-
2. Stop.
240-
3. Request approval before implementation.
269+
2. Request approval before implementation.
270+
3. Implement it directly in Theme V2 after approval.
271+
4. Do not solve it by reactivating, copying, porting, or extending V1/legacy CSS.
241272

242273
Exception documentation is required for any approved deviation and must include:
243274
- File.
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# Theme V2 Legacy Reference Inventory - PR_26152_030-theme-v2-only-css-governance
2+
3+
## Scope
4+
5+
- Audited GameFoundryStudio HTML stylesheet links only.
6+
- Classified remaining V1/legacy CSS references by page family only as `not migrated yet` or `violation`.
7+
- Did not classify V1/legacy CSS as a source for Theme V2.
8+
- Did not recommend copying, porting, or comparing V1/legacy CSS into Theme V2.
9+
10+
## Summary
11+
12+
| Page family | Remaining V1/legacy references | Classification |
13+
| --- | ---: | --- |
14+
| Account | 4 | not migrated yet |
15+
| Tools index | 2 | not migrated yet |
16+
| Tool families | 20 | not migrated yet |
17+
| Games | 2 | not migrated yet |
18+
| Other not-yet-migrated content | 22 | not migrated yet |
19+
20+
Violation count: 0.
21+
22+
Families checked with no remaining V1/legacy CSS references:
23+
- Home
24+
- Admin
25+
- Company migrated pages
26+
- Samples: no GameFoundryStudio sample HTML pages found.
27+
28+
## Account
29+
30+
| Classification | Page | V1/legacy CSS reference |
31+
| --- | --- | --- |
32+
| not migrated yet | `GameFoundryStudio/account/index.html` | `../assets/css/styles.css` |
33+
| not migrated yet | `GameFoundryStudio/account/preferences.html` | `../assets/css/styles.css` |
34+
| not migrated yet | `GameFoundryStudio/account/profile.html` | `../assets/css/styles.css` |
35+
| not migrated yet | `GameFoundryStudio/account/security.html` | `../assets/css/styles.css` |
36+
37+
## Tools Index
38+
39+
| Classification | Page | V1/legacy CSS reference |
40+
| --- | --- | --- |
41+
| not migrated yet | `GameFoundryStudio/tools.html` | `assets/css/styles.css` |
42+
| not migrated yet | `GameFoundryStudio/tools/index.html` | `../assets/css/styles.css` |
43+
44+
## Tool Families
45+
46+
| Classification | Page | V1/legacy CSS reference |
47+
| --- | --- | --- |
48+
| not migrated yet | `GameFoundryStudio/tools/ai-assistant.html` | `../assets/css/styles.css` |
49+
| not migrated yet | `GameFoundryStudio/tools/animation-studio.html` | `../assets/css/styles.css` |
50+
| not migrated yet | `GameFoundryStudio/tools/asset-studio.html` | `../assets/css/styles.css` |
51+
| not migrated yet | `GameFoundryStudio/tools/builder.html` | `../assets/css/styles.css` |
52+
| not migrated yet | `GameFoundryStudio/tools/code-studio.html` | `../assets/css/styles.css` |
53+
| not migrated yet | `GameFoundryStudio/tools/creator.html` | `../assets/css/styles.css` |
54+
| not migrated yet | `GameFoundryStudio/tools/game-builder.html` | `../assets/css/styles.css` |
55+
| not migrated yet | `GameFoundryStudio/tools/game-design-studio.html` | `../assets/css/styles.css` |
56+
| not migrated yet | `GameFoundryStudio/tools/groups/configuration-admin.html` | `../../assets/css/styles.css` |
57+
| not migrated yet | `GameFoundryStudio/tools/input-studio.html` | `../assets/css/styles.css` |
58+
| not migrated yet | `GameFoundryStudio/tools/localization-studio/index.html` | `../../assets/css/styles.css` |
59+
| not migrated yet | `GameFoundryStudio/tools/localization-studio/index.html` | `css/localization-studio.css` |
60+
| not migrated yet | `GameFoundryStudio/tools/midi-studio.html` | `../assets/css/styles.css` |
61+
| not migrated yet | `GameFoundryStudio/tools/object-vector-studio.html` | `../assets/css/styles.css` |
62+
| not migrated yet | `GameFoundryStudio/tools/palette-manager.html` | `../assets/css/styles.css` |
63+
| not migrated yet | `GameFoundryStudio/tools/particle-studio.html` | `../assets/css/styles.css` |
64+
| not migrated yet | `GameFoundryStudio/tools/publisher.html` | `../assets/css/styles.css` |
65+
| not migrated yet | `GameFoundryStudio/tools/sound-studio.html` | `../assets/css/styles.css` |
66+
| not migrated yet | `GameFoundryStudio/tools/storage-inspector.html` | `../assets/css/styles.css` |
67+
| not migrated yet | `GameFoundryStudio/tools/world-vector-studio.html` | `../assets/css/styles.css` |
68+
69+
## Games
70+
71+
| Classification | Page | V1/legacy CSS reference |
72+
| --- | --- | --- |
73+
| not migrated yet | `GameFoundryStudio/arcade/index.html` | `../assets/css/styles.css` |
74+
| not migrated yet | `GameFoundryStudio/games.html` | `assets/css/styles.css` |
75+
76+
## Other Not-Yet-Migrated Content
77+
78+
| Classification | Page | V1/legacy CSS reference |
79+
| --- | --- | --- |
80+
| not migrated yet | `GameFoundryStudio/assets.html` | `assets/css/styles.css` |
81+
| not migrated yet | `GameFoundryStudio/cloud/index.html` | `../assets/css/styles.css` |
82+
| not migrated yet | `GameFoundryStudio/cloud.html` | `assets/css/styles.css` |
83+
| not migrated yet | `GameFoundryStudio/community/index.html` | `../assets/css/styles.css` |
84+
| not migrated yet | `GameFoundryStudio/community.html` | `assets/css/styles.css` |
85+
| not migrated yet | `GameFoundryStudio/configuration-admin.html` | `assets/css/styles.css` |
86+
| not migrated yet | `GameFoundryStudio/contact.html` | `assets/css/styles.css` |
87+
| not migrated yet | `GameFoundryStudio/cookie-policy.html` | `assets/css/styles.css` |
88+
| not migrated yet | `GameFoundryStudio/disclaimer.html` | `assets/css/styles.css` |
89+
| not migrated yet | `GameFoundryStudio/docs/index.html` | `../assets/css/styles.css` |
90+
| not migrated yet | `GameFoundryStudio/docs.html` | `assets/css/styles.css` |
91+
| not migrated yet | `GameFoundryStudio/faq.html` | `assets/css/styles.css` |
92+
| not migrated yet | `GameFoundryStudio/learn/index.html` | `../assets/css/styles.css` |
93+
| not migrated yet | `GameFoundryStudio/learn.html` | `assets/css/styles.css` |
94+
| not migrated yet | `GameFoundryStudio/marketplace/index.html` | `../assets/css/styles.css` |
95+
| not migrated yet | `GameFoundryStudio/marketplace.html` | `assets/css/styles.css` |
96+
| not migrated yet | `GameFoundryStudio/privacy-policy.html` | `assets/css/styles.css` |
97+
| not migrated yet | `GameFoundryStudio/publish/index.html` | `../assets/css/styles.css` |
98+
| not migrated yet | `GameFoundryStudio/publish.html` | `assets/css/styles.css` |
99+
| not migrated yet | `GameFoundryStudio/reference.html` | `assets/css/styles.css` |
100+
| not migrated yet | `GameFoundryStudio/support.html` | `assets/css/styles.css` |
101+
| not migrated yet | `GameFoundryStudio/terms.html` | `assets/css/styles.css` |
102+
103+
## Violations
104+
105+
No `violation` references were found.
106+
107+
Migrated Theme V2 families checked with no V1/legacy stylesheet references:
108+
- Home: `GameFoundryStudio/index.html`
109+
- Admin: `GameFoundryStudio/admin/*.html`
110+
- Company migrated pages: `about.html`, `mission.html`, `vision.html`, `release-notes.html`, `roadmap.html`
111+
112+
## Notes
113+
114+
- Pages classified as `not migrated yet` may temporarily retain their existing references until their migration PR.
115+
- Once a page migrates to Theme V2, any remaining V1/legacy CSS reference becomes a `violation`.
116+
- Theme V2 gaps must be documented and resolved directly inside Theme V2 after approval.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Theme V2 Only CSS Governance Validation - PR_26152_030-theme-v2-only-css-governance
2+
3+
## Scope
4+
5+
- Documentation/report validation only.
6+
- Changed governance language for GameFoundryStudio Theme V2 CSS.
7+
- Added the legacy-reference inventory report.
8+
- Did not change runtime pages, HTML, JavaScript, or CSS implementation.
9+
- Playwright impacted: No. This PR is docs/workflow only.
10+
11+
## Validation Commands
12+
13+
- `Select-String -Path docs\dev\PROJECT_INSTRUCTIONS.md -Pattern '### Theme V2 Only CSS Rule' -SimpleMatch`
14+
- `Test-Path docs\dev\reports\theme_v2_only_css_governance_validation.md`
15+
- `Test-Path docs\dev\reports\theme_v2_legacy_reference_inventory.md`
16+
- Targeted GameFoundryStudio HTML stylesheet-link inventory script.
17+
- Changed-file guard: fail if `git diff --name-only` contains `.css`, `.html`, or `.js`.
18+
- Page-migration guard: fail if `git diff --name-only` contains any `GameFoundryStudio/*.html` or nested GameFoundryStudio HTML page.
19+
- `git diff --check`
20+
21+
## Results
22+
23+
- PASS: Theme V2 Only CSS Rule exists in `docs/dev/PROJECT_INSTRUCTIONS.md`.
24+
- PASS: `docs/dev/reports/theme_v2_only_css_governance_validation.md` exists.
25+
- PASS: `docs/dev/reports/theme_v2_legacy_reference_inventory.md` exists.
26+
- PASS: Remaining V1/legacy CSS references are reported by page family.
27+
- PASS: Inventory classifications use only `not migrated yet` and `violation`.
28+
- PASS: No `.css`, `.html`, or `.js` files changed.
29+
- PASS: No page migration occurred.
30+
- PASS: `git diff --check` passed.
31+
32+
## Legacy Reference Inventory Summary
33+
34+
- Account: 4 remaining references, all `not migrated yet`.
35+
- Tools index: 2 remaining references, all `not migrated yet`.
36+
- Tool families: 20 remaining references, all `not migrated yet`.
37+
- Games: 2 remaining references, all `not migrated yet`.
38+
- Other not-yet-migrated content: 22 remaining references, all `not migrated yet`.
39+
- Violations: 0.
40+
41+
## Lanes
42+
43+
Lanes executed:
44+
- contract documentation/static validation because this PR changes CSS governance docs and reports only.
45+
46+
Lanes skipped:
47+
- runtime, integration, engine, samples, and recovery/UAT because no CSS, HTML, JavaScript, runtime, engine, sample, or UAT behavior changed.
48+
49+
Samples decision:
50+
- SKIP because this is documentation/report validation only and no samples were changed.
51+
52+
Expected PASS behavior:
53+
- Governance states Theme V2 is the only active styling system.
54+
- Remaining V1/legacy CSS references are inventoried by page family and classified only as `not migrated yet` or `violation`.
55+
- No implementation files change.
56+
57+
Expected WARN behavior:
58+
- Existing not-yet-migrated page families may still reference V1/legacy CSS until their migration PR.

0 commit comments

Comments
 (0)