refactor: consolidate design folders under design/#16
Conversation
- design-system/ → design/system/ - pencil/ → design/wireframes/ - prototype/ → design/prototype/ Update all path references in CLAUDE.md, SKILL.md, scripts/pencil-save.sh, and design/system/MASTER.md. NOTE: Pencil app repository path must be updated to design/wireframes/ in Windsurf settings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix: translate prototype QA description to English - Add design/prototype/pages/profile.html - Add specs/002-profile-settings/spec.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Review Summary by QodoConsolidate design folders and add profile settings prototype with bilingual support
WalkthroughsDescription• Consolidate design folders under design/ hierarchy for better organization - Move design-system/ → design/system/ - Move pencil/ → design/wireframes/ - Move prototype/ → design/prototype/ • Add profile settings page prototype with bilingual (ZH/EN) support - Create design/prototype/pages/profile.html with full UI implementation - Add specs/002-profile-settings/spec.md with user stories and acceptance criteria • Update all path references across documentation and scripts - Update CLAUDE.md, SKILL.md, scripts/pencil-save.sh, design/system/MASTER.md - Add Pencil wireframe convention and workflow documentation Diagramflowchart LR
A["design-system/<br/>pencil/<br/>prototype/"] -->|"Reorganize"| B["design/system/<br/>design/wireframes/<br/>design/prototype/"]
B -->|"Add prototype"| C["design/prototype/<br/>pages/profile.html"]
B -->|"Add spec"| D["specs/002-profile-settings/<br/>spec.md"]
C -->|"Bilingual UI"| E["ZH/EN Support<br/>with i18n"]
D -->|"User Stories"| F["P1: Profile Edit<br/>P2: Language Switch"]
File Changes1. design/prototype/pages/profile.html
|
Code Review by Qodo
1.
|
- fix: replace innerHTML with DOM API in previewAvatar() to prevent XSS - fix: update deploy-prototype.yml paths from prototype/ to design/prototype/ - fix: update design_system.py persist path from design-system/ to design/system/ - fix: update search.py help text and output paths to design/system/ - fix: update CLAUDE.md wireframe paths from pencil/ to design/wireframes/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add ui-ux-pro-max pre-generation reminder in CLAUDE.md - Update design/system/MASTER.md with revised design system rules - Update design/wireframes/design-system.pen wireframe - Update SKILL.md with design system path adjustments Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- fix: update stale pencil/pages/ path to design/wireframes/pages/ in CLAUDE.md workflow section - fix: add Pattern C (Header + Sidebar + Content) to MASTER.md for Profile pages, resolving inconsistency between profile.html sidebar layout and Pattern A spec Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update docstrings at lines 471 and 493 - Update format_page_override_md output at line 822 All changed from design-system/ to design/system/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…profile wireframe Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix Desktop EN frame x position: 1520 → 1500 - Add Mobile ZH frame at x:3000 (390×844) - Add Mobile EN frame at x:4500 (390×844) - Add Component ZH placeholder frame at x:6000 (1440×960) - Add Component EN placeholder frame at x:7500 (1440×960) Follows Pencil Wireframe Convention: 6 frames per page Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update pencil/ paths to design/wireframes/ - Add Pattern C (Header + Sidebar + Content) to Page Shell Patterns - Update Pencil Wireframe Convention to specify 6 frames per page - Update SDD workflow sequence Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…upload Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…plates Update plan-template.md and agent-file-template.md to include design/prototype/ and design/wireframes/ in Traditional Chinese allowed directories, per constitution amendment procedure Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mobile Add nav-profile link to mobile hamburger menu with zh-TW/en i18n strings, ensuring profile page is reachable on screens narrower than 640px Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ter_md - SKILL.md: update --persist documentation to show design/system/<project-slug>/ paths instead of design/system/ to match actual persist_design_system output - design_system.py: compute project_slug in format_master_md and use it in the generated LOGIC header so page override paths point to correct location Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Line 823 was hardcoding design/system/MASTER.md; now uses project_slug to match the actual persist path design/system/<project-slug>/MASTER.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| @@ -87,13 +87,13 @@ def format_output(result): | |||
| if args.persist: | |||
| project_slug = args.project_name.lower().replace(' ', '-') if args.project_name else "default" | |||
There was a problem hiding this comment.
🟡 Persistence confirmation message shows wrong directory when --project-name is omitted
When --persist is used without --project-name, the confirmation message at search.py:88 computes project_slug = "default", but the actual persist_design_system() function at design_system.py:507-508 derives the slug from design_system["project_name"], which the generator sets to query.upper() (at design_system.py:198). For example, running python3 search.py "beauty spa" --design-system --persist prints ✅ Design system persisted to design/system/default/ while the files are actually written to design/system/beauty-spa/. The PR updated the path prefix on these lines but preserved the pre-existing slug mismatch.
Prompt for agents
In .claude/skills/ui-ux-pro-max/scripts/search.py line 88, the project_slug for the confirmation message is computed independently from the actual persistence logic in design_system.py. To fix this, either:
1. (Preferred) Have generate_design_system() return the persist result dict (which already contains the actual design_system_dir path) and use that path in the print messages instead of recomputing the slug. This requires changing generate_design_system() to return both the formatted output string and the persist result.
2. (Simpler) Replicate the exact same fallback logic: change line 88 from
project_slug = args.project_name.lower().replace(' ', '-') if args.project_name else "default"
to
project_slug = args.project_name.lower().replace(' ', '-') if args.project_name else args.query.upper().lower().replace(' ', '-')
This mirrors the generator's fallback at design_system.py:198 (project_name or query.upper()) and then the slug derivation at design_system.py:508.
Was this helpful? React with 👍 or 👎 to provide feedback.
Summary
design-system/→design/system/pencil/→design/wireframes/prototype/→design/prototype/CLAUDE.md,SKILL.md,scripts/pencil-save.sh, anddesign/system/MASTER.mddesign/prototype/pages/profile.htmlandspecs/002-profile-settings/spec.mdTest Plan
design/CLAUDE.md,SKILL.md,scripts/pencil-save.sh,design/system/MASTER.md🤖 Generated with Claude Code