|
10 | 10 |
|
11 | 11 | | Artifact | Status | Notes | |
12 | 12 | |----------|--------|-------| |
13 | | -| component-catalog.json | ✅ Accurate | 120 components, 747 modifiers | |
| 13 | +| component-catalog.json | ✅ Accurate | 120 components, 747 modifiers, 114 with use cases | |
14 | 14 | | utility-classes.json | ✅ Accurate | 229 utility classes | |
| 15 | +| component-use-cases.json | ✅ Accurate | 94 component use cases defined | |
15 | 16 | | schemas/*.json | ✅ Accurate | No hallucinated or incomplete modifiers | |
16 | | -| CLAUDE.md | ✅ Accurate | All class names verified | |
| 17 | +| CLAUDE.md | ✅ Accurate | All class names and HTML examples verified | |
17 | 18 | | llms.txt | ✅ Accurate | All links verified | |
18 | 19 | | ai-component-index.md | ✅ Accurate | Component count updated to 120 | |
| 20 | +| design-tokens.json | ✅ Accurate | 1,522 tokens from SAP theming (P2.1) | |
| 21 | +| modifier-rules.json | ✅ Accurate | 8 components with mutual exclusion rules (P2.2) | |
| 22 | +| html-examples.json | ✅ Fixed | 10 patterns, fixed side-nav classes (P2.3) | |
| 23 | +| accessibility.json | ✅ Accurate | 72 components with ARIA metadata (P1.1) | |
19 | 24 |
|
20 | 25 | --- |
21 | 26 |
|
22 | 27 | ## Fixes Applied |
23 | 28 |
|
24 | | -### 1. Fixed generate-ai-metadata.js |
| 29 | +### Round 1 (2026-02-14 AM) |
| 30 | + |
| 31 | +#### 1. Fixed generate-ai-metadata.js |
25 | 32 |
|
26 | 33 | **Issue**: Script was including modifiers from imported component files (not mixins), causing hallucination. |
27 | 34 |
|
|
34 | 41 |
|
35 | 42 | **Also fixed**: Filter out incomplete modifiers ending with `-` (from Sass interpolation patterns like `&--accent-color-#{$set-name}`) |
36 | 43 |
|
37 | | -### 2. Fixed CLAUDE.md |
| 44 | +#### 2. Fixed CLAUDE.md utility class |
38 | 45 |
|
39 | 46 | **Issue**: Incorrect utility class name |
40 | 47 | - **Before**: `sap-flex--align-center` |
41 | 48 | - **After**: `sap-flex--align-items-center` |
42 | 49 |
|
43 | | -### 3. Fixed ai-component-index.md |
| 50 | +#### 3. Fixed ai-component-index.md |
44 | 51 |
|
45 | 52 | **Issue**: Component count showed 117 instead of 120 |
46 | 53 |
|
|
49 | 56 | - Line 25: Package table |
50 | 57 | - Line 421: Statistics section |
51 | 58 |
|
52 | | -### 4. Fixed generate-utility-classes.js |
| 59 | +#### 4. Fixed generate-utility-classes.js |
53 | 60 |
|
54 | 61 | **Issue**: Missing shadow utility classes from `$sap-box-shadow-types` |
55 | 62 |
|
56 | 63 | **Added**: |
57 | 64 | - `sap-has-shadow-color` |
58 | 65 | - `sap-has-shadow-inverted-color` |
59 | 66 |
|
| 67 | +### Round 2 (2026-02-14 PM) |
| 68 | + |
| 69 | +#### 5. Fixed CLAUDE.md Checkbox Example |
| 70 | + |
| 71 | +**Issue**: Wrong HTML structure for checkbox component |
| 72 | + |
| 73 | +**Before** (incorrect): |
| 74 | +```html |
| 75 | +<div class="fd-checkbox"> |
| 76 | + <input type="checkbox" class="fd-checkbox__input" id="cb1"> |
| 77 | + <label class="fd-checkbox__label" for="cb1">Option</label> |
| 78 | +</div> |
| 79 | +``` |
| 80 | + |
| 81 | +**After** (correct): |
| 82 | +```html |
| 83 | +<input type="checkbox" class="fd-checkbox" id="cb1"> |
| 84 | +<label class="fd-checkbox__label" for="cb1"> |
| 85 | + <span class="fd-checkbox__checkmark" aria-hidden="true"></span> |
| 86 | + <span class="fd-checkbox__label-container"> |
| 87 | + <span class="fd-checkbox__text">Option</span> |
| 88 | + </span> |
| 89 | +</label> |
| 90 | +``` |
| 91 | + |
| 92 | +#### 6. Fixed CLAUDE.md Radio Example |
| 93 | + |
| 94 | +**Issue**: Wrong HTML structure for radio component |
| 95 | + |
| 96 | +**Before** (incorrect): |
| 97 | +```html |
| 98 | +<div class="fd-radio"> |
| 99 | + <input type="radio" class="fd-radio__input" id="r1" name="group"> |
| 100 | + <label class="fd-radio__label" for="r1">Option</label> |
| 101 | +</div> |
| 102 | +``` |
| 103 | + |
| 104 | +**After** (correct): |
| 105 | +```html |
| 106 | +<input type="radio" class="fd-radio" id="r1" name="group"> |
| 107 | +<label class="fd-radio__label" for="r1"> |
| 108 | + <span class="fd-radio__text">Option</span> |
| 109 | +</label> |
| 110 | +``` |
| 111 | + |
| 112 | +#### 7. Fixed CLAUDE.md Select Example |
| 113 | + |
| 114 | +**Issue**: Missing required attributes and incorrect button structure |
| 115 | + |
| 116 | +**Before** (incomplete): |
| 117 | +```html |
| 118 | +<div class="fd-select"> |
| 119 | + <div class="fd-select__control"> |
| 120 | + <span class="fd-select__text-content">Select an option</span> |
| 121 | + <span class="fd-select__button"> |
| 122 | + <span class="sap-icon--slim-arrow-down"></span> |
| 123 | + </span> |
| 124 | + </div> |
| 125 | +</div> |
| 126 | +``` |
| 127 | + |
| 128 | +**After** (correct): |
| 129 | +```html |
| 130 | +<div class="fd-select"> |
| 131 | + <div class="fd-select__control" role="combobox" aria-expanded="false" aria-haspopup="listbox" tabindex="0"> |
| 132 | + <span class="fd-select__text-content">Select an option</span> |
| 133 | + <span class="fd-button fd-button--transparent fd-select__button"> |
| 134 | + <i class="sap-icon--slim-arrow-down" role="presentation"></i> |
| 135 | + </span> |
| 136 | + </div> |
| 137 | +</div> |
| 138 | +``` |
| 139 | + |
| 140 | +### Round 3 (2026-02-14 PM) - P2 Files Validation |
| 141 | + |
| 142 | +#### 8. Fixed html-examples.json Navigation Shell |
| 143 | + |
| 144 | +**Issue**: Wrong class names for side navigation component |
| 145 | + |
| 146 | +**Before** (incorrect): |
| 147 | +```html |
| 148 | +<nav class="fd-side-nav"> |
| 149 | + <div class="fd-side-nav__main-navigation"> |
| 150 | + <ul class="fd-nested-list"> |
| 151 | + <li class="fd-nested-list__item"> |
| 152 | + <a class="fd-nested-list__link is-selected" href="#"> |
| 153 | + <span class="sap-icon--home"></span> |
| 154 | + <span class="fd-nested-list__title">Home</span> |
| 155 | + </a> |
| 156 | + </li> |
| 157 | + </ul> |
| 158 | + </div> |
| 159 | +</nav> |
| 160 | +``` |
| 161 | + |
| 162 | +**After** (correct): |
| 163 | +```html |
| 164 | +<nav class="fd-side-nav" aria-roledescription="Main Navigation"> |
| 165 | + <div class="fd-side-nav__container fd-side-nav__container--top"> |
| 166 | + <ul class="fd-navigation-list level-1" role="tree" aria-roledescription="Navigation List Tree"> |
| 167 | + <li class="fd-navigation-list__item" role="none"> |
| 168 | + <a class="fd-navigation-list__content is-selected" role="treeitem" tabindex="0"> |
| 169 | + <div class="fd-navigation-list__content-container"> |
| 170 | + <span class="fd-navigation-list__icon"> |
| 171 | + <i class="sap-icon--home" role="presentation"></i> |
| 172 | + </span> |
| 173 | + <span class="fd-navigation-list__text">Home</span> |
| 174 | + </div> |
| 175 | + </a> |
| 176 | + </li> |
| 177 | + </ul> |
| 178 | + </div> |
| 179 | +</nav> |
| 180 | +``` |
| 181 | + |
60 | 182 | --- |
61 | 183 |
|
62 | 184 | ## Verification Results |
|
67 | 189 | ✅ All schemas: No trailing hyphen modifiers anywhere |
68 | 190 | ✅ utility-classes.json: Contains sap-has-shadow-color and sap-has-shadow-inverted-color |
69 | 191 | ✅ CLAUDE.md: Contains sap-flex--align-items-center |
| 192 | +✅ CLAUDE.md: Checkbox example matches packages/styles/stories/Components/Forms/checkbox/inline.example.html |
| 193 | +✅ CLAUDE.md: Radio example matches packages/styles/stories/Components/Forms/radio/primary.example.html |
| 194 | +✅ CLAUDE.md: Select example matches packages/styles/stories/Components/select/cozy.example.html |
70 | 195 | ✅ ai-component-index.md: Shows 120 components in all locations |
| 196 | +✅ component-catalog.json: 114 of 120 components have use cases (95%) |
| 197 | +
|
| 198 | +Round 3 - P2 Files: |
| 199 | +✅ design-tokens.json: 1,522 tokens extracted from @sap-theming/theming-base-content |
| 200 | +✅ modifier-rules.json: Button mutually exclusive modifiers verified against source SCSS |
| 201 | +✅ html-examples.json: Fixed navigation-shell to use fd-navigation-list classes |
| 202 | +✅ accessibility.json: 72 components with ARIA data verified against story files |
| 203 | +✅ icon-tab-bar roles (tab, tablist, tabpanel) verified against stories |
| 204 | +✅ button aria-pressed verified against stories |
| 205 | +✅ action-bar roles (menu, menuitem) verified against stories |
71 | 206 | ``` |
72 | 207 |
|
73 | 208 | --- |
|
80 | 215 | | Utility classes | 227 | 229 (added missing) | |
81 | 216 | | Hallucinated modifiers | 4 (fieldset) | 0 | |
82 | 217 | | Incomplete modifiers | 8 (trailing `-`) | 0 | |
| 218 | +| HTML examples with errors | 4 | 0 | |
| 219 | +| Components with use cases | 20 | 114 | |
| 220 | +| Design tokens | N/A | 1,522 | |
| 221 | +| Components with accessibility | N/A | 72 | |
| 222 | +| Complete HTML patterns | N/A | 10 | |
| 223 | + |
| 224 | +--- |
| 225 | + |
| 226 | +## Validation Method |
| 227 | + |
| 228 | +All HTML examples in CLAUDE.md were cross-referenced against: |
| 229 | +1. Source SCSS files in `packages/styles/src/` |
| 230 | +2. Story HTML files in `packages/styles/stories/Components/` |
| 231 | +3. Component schemas in `docs/schemas/` |
| 232 | + |
| 233 | +Button modifiers verified against `_button-types.scss`: |
| 234 | +- ✅ fd-button--emphasized |
| 235 | +- ✅ fd-button--positive |
| 236 | +- ✅ fd-button--negative |
| 237 | +- ✅ fd-button--transparent |
| 238 | +- ✅ fd-button--ghost |
| 239 | +- ✅ fd-button--compact |
83 | 240 |
|
84 | 241 | --- |
85 | 242 |
|
86 | 243 | ## Conclusion |
87 | 244 |
|
88 | | -All AI documentation artifacts are now accurate and verified against source code. The generator scripts have been fixed to prevent future hallucinations. |
| 245 | +All AI documentation artifacts are now accurate and verified against source code. The generator scripts have been fixed to prevent future hallucinations. HTML examples in CLAUDE.md and html-examples.json have been corrected to match actual component structures. |
| 246 | + |
| 247 | +### P2 Files Added |
| 248 | +- **design-tokens.json**: 1,522 CSS custom properties extracted from SAP theming |
| 249 | +- **modifier-rules.json**: Mutually exclusive modifier rules for 8 components |
| 250 | +- **html-examples.json**: 10 complete HTML patterns for complex components |
| 251 | +- **accessibility.json**: ARIA patterns extracted from 72 components |
0 commit comments