Skip to content

docs: update logo to social-preview, normalize product name, add i18n aria-labels#12

Merged
singyichen merged 4 commits intomainfrom
docs/logo-and-i18n-update
Mar 26, 2026
Merged

docs: update logo to social-preview, normalize product name, add i18n aria-labels#12
singyichen merged 4 commits intomainfrom
docs/logo-and-i18n-update

Conversation

@singyichen
Copy link
Copy Markdown
Owner

Summary

  • Replace icon-colored.svg with social-preview.svg as README logo in both README.md and README.zh-TW.md
  • Normalize product name from LabelSuite to Label Suite across all docs and assets
  • Add data-i18n-aria-label support to login and dashboard prototypes for accessible i18n
  • Record second main branch violation incident in lessons-learned.md

Test plan

  • README.md displays social-preview.svg logo
  • README.zh-TW.md displays social-preview.svg logo
  • Product name reads Label Suite consistently across all modified files
  • prototype/pages/login.html — aria-labels switch correctly on language toggle
  • prototype/pages/dashboard.html — aria-labels switch correctly on language toggle
  • lessons-learned.md contains 2026-03-26 incident entry

🤖 Generated with Claude Code

singyichen and others added 2 commits March 26, 2026 09:23
…el Suite

- Replace icon-colored.svg with social-preview.svg in README.md and README.zh-TW.md
- Normalize product name from LabelSuite to Label Suite across all docs and assets
- Add aria-label i18n support (data-i18n-aria-label) to login and dashboard prototypes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add 2026-03-26 incident entry documenting root cause (lessons-learned.md
not in auto-memory path) and remediation (moved rule to auto-memory).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Normalize product name to Label Suite, update logo, add i18n aria-labels, and document workflow violation

📝 Documentation ✨ Enhancement

Grey Divider

Walkthroughs

Description
• Normalize product name from LabelSuite to Label Suite across all documentation and code
• Replace README logo from icon-colored.svg to social-preview.svg in both English and
  Traditional Chinese versions
• Add data-i18n-aria-label support to login and dashboard prototypes for accessible
  internationalization
• Document second main branch violation incident and move prevention rules to auto-memory system
Diagram
flowchart LR
  A["Product Name<br/>LabelSuite"] -->|normalize| B["Label Suite"]
  C["README Logo<br/>icon-colored.svg"] -->|replace| D["social-preview.svg"]
  E["Prototypes<br/>login/dashboard"] -->|add i18n support| F["aria-label attributes"]
  G["Lessons Learned<br/>First incident"] -->|document| H["Second violation<br/>+ prevention rules"]
  B --> I["All docs & files"]
  D --> J["README.md<br/>README.zh-TW.md"]
  F --> K["Language toggle<br/>support"]
  H --> L["Auto-memory system"]
Loading

Grey Divider

File Changes

1. README.md 📝 Documentation +6/-6

Update logo and normalize product name

README.md


2. README.zh-TW.md 📝 Documentation +6/-6

Update logo and normalize product name

README.zh-TW.md


3. prototype/index.html 📝 Documentation +1/-1

Normalize product name in title

prototype/index.html


View more (12)
4. prototype/pages/login.html ✨ Enhancement +5/-5

Add i18n aria-labels and normalize product name

prototype/pages/login.html


5. prototype/pages/dashboard.html ✨ Enhancement +6/-6

Add i18n aria-labels and normalize product name

prototype/pages/dashboard.html


6. .claude/agents/nlp-research-advisor.md 📝 Documentation +1/-1

Normalize system name in project context

.claude/agents/nlp-research-advisor.md


7. .specify/memory/lessons-learned.md 📝 Documentation +27/-2

Document second main branch violation incident

.specify/memory/lessons-learned.md


8. assets/logo/README.md 📝 Documentation +6/-6

Normalize product name in logo documentation

assets/logo/README.md


9. design-system/labelsuite/MASTER.md 📝 Documentation +1/-1

Normalize project name in design system

design-system/labelsuite/MASTER.md


10. docs/diagrams/thesis/thesis-ch1-introduction.d2 📝 Documentation +1/-1

Normalize product name in diagram

docs/diagrams/thesis/thesis-ch1-introduction.d2


11. docs/research/interviews/README.md 📝 Documentation +1/-1

Normalize product name in research directory

docs/research/interviews/README.md


12. docs/research/tool-analysis.md 📝 Documentation +12/-12

Normalize product name in tool comparison tables

docs/research/tool-analysis.md


13. docs/thesis/outline.md 📝 Documentation +6/-6

Normalize product name in thesis outline

docs/thesis/outline.md


14. docs/thesis/outline.zh-TW.md 📝 Documentation +7/-7

Normalize product name in Traditional Chinese thesis outline

docs/thesis/outline.zh-TW.md


15. specs/001-sso-login/spec.md 📝 Documentation +1/-1

Normalize product name in SSO specification

specs/001-sso-login/spec.md


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review bot commented Mar 26, 2026

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 📐 Spec deviations (0)

Grey Divider


Remediation recommended

1. README logo renders huge🐞 Bug ✓ Correctness
Description
README.md and README.zh-TW.md now embed assets/logo/social-preview.svg without any width/height
constraints; since the SVG declares 1280×640 intrinsic dimensions, it will render extremely large in
GitHub’s README view and dominate the page layout.
Code

README.md[R1-3]

<p align="center">
-  <img src="assets/logo/icon-colored.svg" width="96" alt="LabelSuite Logo">
+  <img src="assets/logo/social-preview.svg" alt="Label Suite Logo">
</p>
Evidence
The README uses an unconstrained <img> tag, while the referenced SVG declares explicit width/height
of 1280×640. Without constraints, browsers/GitHub will use the intrinsic size, causing an oversized
header image.

README.md[1-3]
README.zh-TW.md[1-3]
assets/logo/social-preview.svg[1-3]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The README header image now uses `assets/logo/social-preview.svg` without sizing constraints. Because the SVG has intrinsic dimensions (1280×640), it will render excessively large in the README.
### Issue Context
Previously the README used a small icon with `width="96"`. The new social preview asset is intended for repo preview cards, not as an inline header logo at full size.
### Fix Focus Areas
- README.md[1-3]
- README.zh-TW.md[1-3]
### Suggested change
Add an explicit width (and optionally height) or inline CSS, e.g.:
- `<img src="assets/logo/social-preview.svg" width="640" alt="Label Suite Logo">`
Or revert to `icon-colored.svg` for the header and keep `social-preview.svg` for GitHub social preview usage.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Untranslated logo aria-label🐞 Bug ✓ Correctness
Description
prototype/pages/dashboard.html hard-codes aria-label="Label Suite home" on the logo/home link, so
the label remains English even after switching to zh-TW, despite applyLang() supporting
data-i18n-aria-label updates.
Code

prototype/pages/dashboard.html[43]

+      <a href="dashboard.html" class="flex items-center gap-2 cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary rounded-lg" aria-label="Label Suite home">
Evidence
applyLang() only updates aria-labels for elements that opt into the mechanism via
[data-i18n-aria-label]. The logo link lacks that attribute, so its aria-label never updates when
language changes.

prototype/pages/dashboard.html[42-51]
prototype/pages/dashboard.html[395-412]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The dashboard logo/home anchor has a hard-coded `aria-label` and does not participate in the `data-i18n-aria-label` mechanism, leaving screen-reader users with an English label in zh-TW.
### Issue Context
`applyLang()` updates aria-labels only for elements with `[data-i18n-aria-label]`. The PR’s stated goal includes accessible i18n.
### Fix Focus Areas
- prototype/pages/dashboard.html[42-51]
- prototype/pages/dashboard.html[300-389]
### Suggested change
1. Replace the hard-coded aria-label with a `data-i18n-aria-label` key, e.g.:
- `<a ... data-i18n-aria-label="aria-home">` (and remove the fixed `aria-label` or let it be overwritten)
2. Add `aria-home` translations to both `STRINGS['zh-TW']` and `STRINGS['en']` (e.g., `"回到首頁"` / `"Home"` or similar).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Language key breaks persistence🐞 Bug ⛯ Reliability
Description
The prototype language preference localStorage key changed to Label Suite-lang, so any previously
stored preference under the old key will be ignored and the UI will silently fall back to the
default language.
Code

prototype/pages/login.html[R176-177]

+    const STORAGE_KEY = 'Label Suite-lang';
 let currentLang = localStorage.getItem(STORAGE_KEY) || 'zh-TW';
Evidence
Both login and dashboard read localStorage.getItem(STORAGE_KEY) || 'zh-TW'; after renaming
STORAGE_KEY, the previous persisted value will not be found and the default will be used.

prototype/pages/login.html[176-183]
prototype/pages/dashboard.html[392-399]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Renaming the language preference storage key causes silent loss of the user’s previously selected language (it defaults back to `zh-TW`).
### Issue Context
This affects the prototype UX across page loads/navigation.
### Fix Focus Areas
- prototype/pages/login.html[176-183]
- prototype/pages/dashboard.html[392-399]
### Suggested change
Implement backward-compatible read/migration:
- Define `OLD_STORAGE_KEY = 'labelsuite-lang'` (previous key)
- Read `NEW` first, then `OLD`, then default.
- If `OLD` exists and `NEW` doesn’t, write the value into `NEW` (optional) to migrate.
Also consider using a stable, slug-style key (e.g. `label-suite-lang`) to avoid spaces/case sensitivity concerns.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

singyichen and others added 2 commits March 26, 2026 09:59
- Add 1280×200 horizontal banner (icon + title + subtitle, white bg)
- Update README.md and README.zh-TW.md to use banner.svg

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…shboard

- Fix finding 2: add data-i18n-aria-label="aria-home" to dashboard logo
  link with zh-TW/en translations so aria-label updates on language switch
- Fix finding 3: revert STORAGE_KEY from 'Label Suite-lang' back to
  'labelsuite-lang' to preserve cross-page language persistence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@singyichen singyichen merged commit e4239de into main Mar 26, 2026
6 checks passed
@singyichen singyichen deleted the docs/logo-and-i18n-update branch March 26, 2026 03:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant