moai-adk 0.15.0__py3-none-any.whl → 0.25.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +1 -2
- moai_adk/__main__.py +85 -2
- moai_adk/cli/__init__.py +0 -1
- moai_adk/cli/commands/__init__.py +0 -1
- moai_adk/cli/commands/analyze.py +127 -0
- moai_adk/cli/commands/backup.py +5 -3
- moai_adk/cli/commands/doctor.py +35 -11
- moai_adk/cli/commands/improve_user_experience.py +348 -0
- moai_adk/cli/commands/init.py +150 -23
- moai_adk/cli/commands/language.py +269 -0
- moai_adk/cli/commands/migrate.py +158 -0
- moai_adk/cli/commands/status.py +13 -12
- moai_adk/cli/commands/update.py +364 -60
- moai_adk/cli/commands/validate_links.py +118 -0
- moai_adk/cli/main.py +3 -2
- moai_adk/cli/prompts/init_prompts.py +79 -82
- moai_adk/core/__init__.py +0 -1
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +439 -0
- moai_adk/core/claude_integration.py +421 -0
- moai_adk/core/command_helpers.py +270 -0
- moai_adk/core/config/__init__.py +6 -0
- moai_adk/core/config/auto_spec_config.py +346 -0
- moai_adk/core/config/migration.py +133 -12
- moai_adk/core/context_manager.py +279 -0
- moai_adk/core/diagnostics/slash_commands.py +0 -1
- moai_adk/core/error_recovery_system.py +1289 -0
- moai_adk/core/git/__init__.py +0 -1
- moai_adk/core/git/branch.py +0 -1
- moai_adk/core/git/branch_manager.py +4 -4
- moai_adk/core/git/checkpoint.py +1 -5
- moai_adk/core/git/commit.py +0 -1
- moai_adk/core/git/event_detector.py +3 -5
- moai_adk/core/git/manager.py +0 -1
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +925 -0
- moai_adk/core/integration/__init__.py +22 -0
- moai_adk/core/integration/engine.py +169 -0
- moai_adk/core/integration/integration_tester.py +225 -0
- moai_adk/core/integration/models.py +88 -0
- moai_adk/core/integration/utils.py +211 -0
- moai_adk/core/issue_creator.py +28 -18
- moai_adk/core/language_config.py +202 -0
- moai_adk/core/language_validator.py +556 -0
- moai_adk/core/mcp/setup.py +113 -0
- moai_adk/core/migration/__init__.py +18 -0
- moai_adk/core/migration/backup_manager.py +208 -0
- moai_adk/core/migration/file_migrator.py +218 -0
- moai_adk/core/migration/version_detector.py +143 -0
- moai_adk/core/migration/version_migrator.py +228 -0
- moai_adk/core/performance/__init__.py +6 -0
- moai_adk/core/performance/cache_system.py +318 -0
- moai_adk/core/performance/parallel_processor.py +116 -0
- moai_adk/core/project/__init__.py +0 -1
- moai_adk/core/project/backup_utils.py +2 -7
- moai_adk/core/project/checker.py +3 -3
- moai_adk/core/project/detector.py +20 -40
- moai_adk/core/project/initializer.py +42 -17
- moai_adk/core/project/phase_executor.py +415 -58
- moai_adk/core/project/validator.py +6 -25
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +64 -110
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/rollback_manager.py +993 -0
- moai_adk/core/session_manager.py +667 -0
- moai_adk/core/spec/confidence_scoring.py +749 -0
- moai_adk/core/spec/ears_template_engine.py +1182 -0
- moai_adk/core/spec/quality_validator.py +721 -0
- moai_adk/core/spec_status_manager.py +488 -0
- moai_adk/core/template/__init__.py +0 -1
- moai_adk/core/template/backup.py +41 -1
- moai_adk/core/template/config.py +11 -12
- moai_adk/core/template/languages.py +0 -1
- moai_adk/core/template/merger.py +79 -22
- moai_adk/core/template/processor.py +614 -40
- moai_adk/core/template_engine.py +36 -27
- moai_adk/foundation/git/commit_templates.py +565 -0
- moai_adk/foundation/trust/trust_principles.py +725 -0
- moai_adk/foundation/trust/validation_checklist.py +1678 -0
- moai_adk/statusline/__init__.py +38 -0
- moai_adk/statusline/alfred_detector.py +107 -0
- moai_adk/statusline/config.py +364 -0
- moai_adk/statusline/enhanced_output_style_detector.py +364 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +228 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +327 -0
- moai_adk/statusline/update_checker.py +135 -0
- moai_adk/statusline/version_reader.py +647 -0
- moai_adk/templates/.git-hooks/pre-commit +66 -0
- moai_adk/templates/.git-hooks/pre-push +116 -4
- moai_adk/templates/.github/workflows/moai-gitflow.yml +1 -7
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +0 -1
- moai_adk/templates/.gitignore +44 -0
- moai_adk/templates/.mcp.json +22 -0
- moai_adk/templates/CLAUDE.md +450 -1071
- moai_adk/utils/__init__.py +0 -1
- moai_adk/utils/banner.py +0 -1
- moai_adk/utils/common.py +308 -0
- moai_adk/utils/link_validator.py +249 -0
- moai_adk/utils/logger.py +4 -9
- moai_adk/utils/safe_file_reader.py +210 -0
- moai_adk/utils/user_experience.py +531 -0
- moai_adk-0.25.4.dist-info/METADATA +2279 -0
- moai_adk-0.25.4.dist-info/RECORD +112 -0
- moai_adk/core/tags/__init__.py +0 -86
- moai_adk/core/tags/ci_validator.py +0 -463
- moai_adk/core/tags/cli.py +0 -283
- moai_adk/core/tags/generator.py +0 -109
- moai_adk/core/tags/inserter.py +0 -99
- moai_adk/core/tags/mapper.py +0 -126
- moai_adk/core/tags/parser.py +0 -76
- moai_adk/core/tags/pre_commit_validator.py +0 -393
- moai_adk/core/tags/reporter.py +0 -956
- moai_adk/core/tags/tags.py +0 -149
- moai_adk/core/tags/validator.py +0 -897
- moai_adk/templates/.claude/agents/alfred/backend-expert.md +0 -319
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
- moai_adk/templates/.claude/agents/alfred/devops-expert.md +0 -464
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
- moai_adk/templates/.claude/agents/alfred/frontend-expert.md +0 -357
- moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -423
- moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -312
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -392
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -361
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -428
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
- moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +0 -571
- moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1525
- moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -802
- moai_adk/templates/.claude/commands/alfred/2-run.md +0 -709
- moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -1009
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
- moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -748
- moai_adk/templates/.claude/hooks/alfred/core/timeout.py +0 -136
- moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +0 -108
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -29
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -100
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
- moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py +0 -271
- moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
- moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +0 -749
- moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -230
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -154
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -174
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -87
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -112
- moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +0 -1
- moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +0 -161
- moai_adk/templates/.claude/settings.json +0 -144
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +0 -70
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +0 -242
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +0 -56
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +0 -444
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +0 -405
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +0 -51
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +0 -355
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +0 -239
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +0 -323
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +0 -286
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +0 -126
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +0 -74
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +0 -269
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +0 -150
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +0 -198
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +0 -431
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +0 -141
- moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +0 -89
- moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +0 -369
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +0 -508
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +0 -481
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +0 -100
- moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +0 -273
- moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +0 -77
- moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +0 -265
- moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +0 -539
- moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +0 -84
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +0 -137
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +0 -219
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +0 -161
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +0 -541
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +0 -622
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +0 -115
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +0 -348
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +0 -211
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +0 -288
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/reference.md +0 -218
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +0 -482
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +0 -477
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +0 -271
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +0 -583
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +0 -526
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +0 -465
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +0 -328
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +0 -312
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +0 -285
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +0 -303
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
- moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +0 -802
- moai_adk/templates/.claude/skills/moai-design-systems/examples.md +0 -1238
- moai_adk/templates/.claude/skills/moai-design-systems/reference.md +0 -673
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -290
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -128
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -433
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -133
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
- moai_adk/templates/.claude/skills/moai-project-documentation.md +0 -622
- moai_adk/templates/.github/workflows/c-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/cpp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/csharp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/dart-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/go-tag-validation.yml +0 -130
- moai_adk/templates/.github/workflows/java-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/javascript-tag-validation.yml +0 -135
- moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/php-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/python-tag-validation.yml +0 -118
- moai_adk/templates/.github/workflows/release.yml +0 -118
- moai_adk/templates/.github/workflows/ruby-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/rust-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/shell-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/swift-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/tag-report.yml +0 -269
- moai_adk/templates/.github/workflows/tag-validation.yml +0 -186
- moai_adk/templates/.github/workflows/typescript-tag-validation.yml +0 -154
- moai_adk/templates/.moai/config.json +0 -115
- moai_adk/templates/workflows/go-tag-validation.yml +0 -30
- moai_adk/templates/workflows/javascript-tag-validation.yml +0 -41
- moai_adk/templates/workflows/python-tag-validation.yml +0 -42
- moai_adk/templates/workflows/typescript-tag-validation.yml +0 -31
- moai_adk-0.15.0.dist-info/METADATA +0 -3079
- moai_adk-0.15.0.dist-info/RECORD +0 -365
- {moai_adk-0.15.0.dist-info → moai_adk-0.25.4.dist-info}/WHEEL +0 -0
- {moai_adk-0.15.0.dist-info → moai_adk-0.25.4.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.15.0.dist-info → moai_adk-0.25.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,673 +0,0 @@
|
|
|
1
|
-
# Design Systems Technical Reference
|
|
2
|
-
|
|
3
|
-
Comprehensive reference material for design system development, covering W3C DTCG 2025.10 specification, WCAG 2.2 accessibility standards, and tooling ecosystem.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## W3C Design Token Community Group (DTCG) 2025.10
|
|
8
|
-
|
|
9
|
-
### Specification Overview
|
|
10
|
-
|
|
11
|
-
**Official Spec**: https://tr.designtokens.org/format/
|
|
12
|
-
**Status**: First stable version (released October 2025)
|
|
13
|
-
**Purpose**: Vendor-agnostic JSON format for sharing design decisions across tools and platforms
|
|
14
|
-
|
|
15
|
-
### Token Format Structure
|
|
16
|
-
|
|
17
|
-
**Basic Token Anatomy**:
|
|
18
|
-
|
|
19
|
-
```json
|
|
20
|
-
{
|
|
21
|
-
"$schema": "https://tr.designtokens.org/format/",
|
|
22
|
-
"$tokens": {
|
|
23
|
-
"token-name": {
|
|
24
|
-
"$value": "value",
|
|
25
|
-
"$type": "type",
|
|
26
|
-
"$description": "optional description"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**Key Properties**:
|
|
33
|
-
- `$value`: The token's value (string, number, array, or object)
|
|
34
|
-
- `$type`: Token type (color, dimension, fontFamily, fontWeight, duration, etc.)
|
|
35
|
-
- `$description`: Optional human-readable description
|
|
36
|
-
- `$extensions`: Optional vendor-specific extensions
|
|
37
|
-
|
|
38
|
-
### Supported Token Types
|
|
39
|
-
|
|
40
|
-
| Type | Example Value | Use Case |
|
|
41
|
-
|------|---------------|----------|
|
|
42
|
-
| `color` | `"#3b82f6"` or `"rgb(59, 130, 246)"` | Text, backgrounds, borders |
|
|
43
|
-
| `dimension` | `"1.5rem"` or `"24px"` | Spacing, sizing, typography |
|
|
44
|
-
| `fontFamily` | `["Inter", "sans-serif"]` | Font stacks |
|
|
45
|
-
| `fontWeight` | `700` or `"bold"` | Font weights |
|
|
46
|
-
| `duration` | `"200ms"` | Animation timing |
|
|
47
|
-
| `cubicBezier` | `[0.4, 0, 0.2, 1]` | Easing functions |
|
|
48
|
-
| `number` | `1.5` | Line heights, opacity |
|
|
49
|
-
| `strokeStyle` | `"solid"` or `"dashed"` | Border styles |
|
|
50
|
-
| `border` | `{ "color": "...", "width": "...", "style": "..." }` | Composite borders |
|
|
51
|
-
| `shadow` | `{ "offsetX": "...", "offsetY": "...", "blur": "...", "color": "..." }` | Box shadows |
|
|
52
|
-
|
|
53
|
-
### Token Aliasing (References)
|
|
54
|
-
|
|
55
|
-
**Syntax**: Use curly braces `{token.path}` to reference other tokens
|
|
56
|
-
|
|
57
|
-
```json
|
|
58
|
-
{
|
|
59
|
-
"color": {
|
|
60
|
-
"primary": {
|
|
61
|
-
"500": { "$value": "#3b82f6", "$type": "color" }
|
|
62
|
-
},
|
|
63
|
-
"semantic": {
|
|
64
|
-
"action": {
|
|
65
|
-
"$value": "{color.primary.500}",
|
|
66
|
-
"$type": "color",
|
|
67
|
-
"$description": "Primary action color"
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
**Benefits**:
|
|
75
|
-
- Single source of truth (change `primary.500`, all aliases update)
|
|
76
|
-
- Semantic naming (abstract away specific values)
|
|
77
|
-
- Multi-theme support (swap referenced tokens per theme)
|
|
78
|
-
|
|
79
|
-
### Theme Support
|
|
80
|
-
|
|
81
|
-
**Using `$extensions` for mode-specific values**:
|
|
82
|
-
|
|
83
|
-
```json
|
|
84
|
-
{
|
|
85
|
-
"color": {
|
|
86
|
-
"background": {
|
|
87
|
-
"$type": "color",
|
|
88
|
-
"$value": "#ffffff",
|
|
89
|
-
"$extensions": {
|
|
90
|
-
"mode": {
|
|
91
|
-
"dark": "#1a1a1a"
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## WCAG 2.2 Accessibility Guidelines
|
|
102
|
-
|
|
103
|
-
### Color Contrast Requirements
|
|
104
|
-
|
|
105
|
-
**Level AA** (Minimum):
|
|
106
|
-
- **Normal text**: 4.5:1 contrast ratio
|
|
107
|
-
- **Large text**: 3:1 contrast ratio (18pt+ or 14pt+ bold)
|
|
108
|
-
- **UI components**: 3:1 contrast ratio (buttons, form borders, icons)
|
|
109
|
-
|
|
110
|
-
**Level AAA** (Enhanced):
|
|
111
|
-
- **Normal text**: 7:1 contrast ratio
|
|
112
|
-
- **Large text**: 4.5:1 contrast ratio
|
|
113
|
-
|
|
114
|
-
**Text Size Definitions**:
|
|
115
|
-
- **Normal text**: < 18pt (24px) or < 14pt bold (18.67px)
|
|
116
|
-
- **Large text**: ≥ 18pt (24px) or ≥ 14pt bold (18.67px)
|
|
117
|
-
|
|
118
|
-
**Exceptions**:
|
|
119
|
-
- Inactive/disabled components
|
|
120
|
-
- Pure decoration (no functional purpose)
|
|
121
|
-
- Logotypes (brand names, logos)
|
|
122
|
-
- Text within images (where image contains significant other content)
|
|
123
|
-
|
|
124
|
-
### Contrast Calculation Formula
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
Contrast Ratio = (L1 + 0.05) / (L2 + 0.05)
|
|
128
|
-
|
|
129
|
-
Where:
|
|
130
|
-
- L1 = relative luminance of lighter color
|
|
131
|
-
- L2 = relative luminance of darker color
|
|
132
|
-
- Luminance = 0.2126 * R + 0.7152 * G + 0.0722 * B
|
|
133
|
-
(R, G, B are sRGB values adjusted for gamma correction)
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
**Practical Examples**:
|
|
137
|
-
|
|
138
|
-
| Foreground | Background | Ratio | AA Pass | AAA Pass |
|
|
139
|
-
|------------|------------|-------|---------|----------|
|
|
140
|
-
| `#000000` (black) | `#ffffff` (white) | 21:1 | ✅ | ✅ |
|
|
141
|
-
| `#767676` (gray) | `#ffffff` (white) | 4.54:1 | ✅ | ❌ |
|
|
142
|
-
| `#ff0000` (red) | `#ffffff` (white) | 4:1 | ❌ | ❌ |
|
|
143
|
-
| `#0000ff` (blue) | `#ffffff` (white) | 8.6:1 | ✅ | ✅ |
|
|
144
|
-
| `#595959` (dark gray) | `#ffffff` (white) | 7.01:1 | ✅ | ✅ |
|
|
145
|
-
|
|
146
|
-
**Tools for Testing**:
|
|
147
|
-
- WebAIM Contrast Checker: https://webaim.org/resources/contrastchecker/
|
|
148
|
-
- Chrome DevTools (Color Picker shows contrast ratio)
|
|
149
|
-
- axe DevTools browser extension
|
|
150
|
-
|
|
151
|
-
### Keyboard Navigation Standards
|
|
152
|
-
|
|
153
|
-
**Essential Requirements**:
|
|
154
|
-
1. **Tab Order**: All interactive elements accessible via Tab key
|
|
155
|
-
2. **Focus Indicators**: Visible focus state (at least 3:1 contrast)
|
|
156
|
-
3. **Escape Key**: Dismisses modals/dropdowns
|
|
157
|
-
4. **Arrow Keys**: Navigate within composite widgets (menus, tabs)
|
|
158
|
-
5. **Enter/Space**: Activate buttons and links
|
|
159
|
-
|
|
160
|
-
**Focus Trap Pattern** (for modals):
|
|
161
|
-
|
|
162
|
-
```
|
|
163
|
-
When modal opens:
|
|
164
|
-
1. Focus moves to first interactive element
|
|
165
|
-
2. Tab cycles through modal elements only
|
|
166
|
-
3. Shift+Tab reverses cycle
|
|
167
|
-
4. Escape closes modal and returns focus
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### ARIA Patterns Reference
|
|
171
|
-
|
|
172
|
-
**Common Roles**:
|
|
173
|
-
|
|
174
|
-
| Role | Purpose | Required Attributes |
|
|
175
|
-
|------|---------|---------------------|
|
|
176
|
-
| `button` | Interactive control | `aria-label` or visible text |
|
|
177
|
-
| `dialog` | Modal window | `aria-labelledby` or `aria-label` |
|
|
178
|
-
| `alert` | Important message | None (implicitly polite) |
|
|
179
|
-
| `alertdialog` | Alert requiring response | `aria-labelledby` or `aria-label` |
|
|
180
|
-
| `menu` | Menu widget | `aria-orientation` |
|
|
181
|
-
| `menuitem` | Menu option | None |
|
|
182
|
-
| `tablist` | Tab navigation | `aria-orientation` |
|
|
183
|
-
| `tab` | Individual tab | `aria-selected`, `aria-controls` |
|
|
184
|
-
| `tabpanel` | Tab content | `aria-labelledby` |
|
|
185
|
-
|
|
186
|
-
**State Attributes**:
|
|
187
|
-
|
|
188
|
-
| Attribute | Values | Use Case |
|
|
189
|
-
|-----------|--------|----------|
|
|
190
|
-
| `aria-expanded` | `true`/`false` | Collapsible sections, dropdowns |
|
|
191
|
-
| `aria-selected` | `true`/`false` | Selected tabs, list items |
|
|
192
|
-
| `aria-checked` | `true`/`false`/`mixed` | Checkboxes, radio buttons |
|
|
193
|
-
| `aria-disabled` | `true`/`false` | Disabled controls |
|
|
194
|
-
| `aria-invalid` | `true`/`false` | Form validation errors |
|
|
195
|
-
| `aria-hidden` | `true`/`false` | Hide from screen readers |
|
|
196
|
-
| `aria-live` | `polite`/`assertive`/`off` | Dynamic content updates |
|
|
197
|
-
|
|
198
|
-
**Live Regions** (for dynamic updates):
|
|
199
|
-
|
|
200
|
-
```html
|
|
201
|
-
<!-- Polite: waits for user pause -->
|
|
202
|
-
<div aria-live="polite" aria-atomic="true">
|
|
203
|
-
Loading complete: 10 items found
|
|
204
|
-
</div>
|
|
205
|
-
|
|
206
|
-
<!-- Assertive: interrupts immediately -->
|
|
207
|
-
<div aria-live="assertive" role="alert">
|
|
208
|
-
Error: Form submission failed
|
|
209
|
-
</div>
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### Motion & Animation Accessibility
|
|
213
|
-
|
|
214
|
-
**`prefers-reduced-motion` media query**:
|
|
215
|
-
|
|
216
|
-
```css
|
|
217
|
-
/* Default: full animations */
|
|
218
|
-
.fade-in {
|
|
219
|
-
animation: fadeIn 300ms ease-in;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/* Reduced motion: instant transition */
|
|
223
|
-
@media (prefers-reduced-motion: reduce) {
|
|
224
|
-
.fade-in {
|
|
225
|
-
animation: none;
|
|
226
|
-
opacity: 1;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
**Safe Animation Principles**:
|
|
232
|
-
- Avoid large/rapid movements (triggers vestibular disorders)
|
|
233
|
-
- Provide instant alternatives for reduced motion users
|
|
234
|
-
- Never rely solely on animation to convey information
|
|
235
|
-
- Test with macOS "Reduce motion" or Windows "Show animations"
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
## Figma MCP Server Reference
|
|
240
|
-
|
|
241
|
-
### Official Documentation
|
|
242
|
-
|
|
243
|
-
**Guide**: https://help.figma.com/hc/en-us/articles/32132100833559
|
|
244
|
-
**GitHub**: https://github.com/figma/mcp-server-guide
|
|
245
|
-
**Blog Announcement**: https://www.figma.com/blog/introducing-figma-mcp-server/
|
|
246
|
-
|
|
247
|
-
### Capabilities
|
|
248
|
-
|
|
249
|
-
**Core Features**:
|
|
250
|
-
1. **Code Generation**: Convert frames to React/Vue/TypeScript code
|
|
251
|
-
2. **Design Token Extraction**: Pull variables (colors, spacing, typography)
|
|
252
|
-
3. **Component Metadata**: Extract layer names, properties, constraints
|
|
253
|
-
4. **Layout Information**: Flex/Grid layouts, auto-layout properties
|
|
254
|
-
5. **Multi-File Support**: Access Figma, FigJam, and Make files
|
|
255
|
-
|
|
256
|
-
### Server Types
|
|
257
|
-
|
|
258
|
-
**Desktop Server** (Local):
|
|
259
|
-
- Endpoint: `http://127.0.0.1:3845/mcp`
|
|
260
|
-
- Requirements: Figma desktop app + Dev/Full seat on paid plan
|
|
261
|
-
- Benefits: Selection-based workflow, no rate limits
|
|
262
|
-
|
|
263
|
-
**Remote Server** (Hosted):
|
|
264
|
-
- Endpoint: `https://mcp.figma.com/mcp`
|
|
265
|
-
- Requirements: Any Figma plan
|
|
266
|
-
- Rate Limits: 6 calls/month (Starter/View), per-minute limits (Dev/Full)
|
|
267
|
-
|
|
268
|
-
### Integration Setup
|
|
269
|
-
|
|
270
|
-
**Claude Desktop Configuration** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
271
|
-
|
|
272
|
-
```json
|
|
273
|
-
{
|
|
274
|
-
"mcpServers": {
|
|
275
|
-
"figma": {
|
|
276
|
-
"command": "npx",
|
|
277
|
-
"args": ["-y", "@figma/mcp-server"],
|
|
278
|
-
"env": {
|
|
279
|
-
"FIGMA_ACCESS_TOKEN": "your-personal-access-token"
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
**VS Code / Cursor Setup**:
|
|
287
|
-
|
|
288
|
-
```json
|
|
289
|
-
{
|
|
290
|
-
"mcp.servers": {
|
|
291
|
-
"figma": {
|
|
292
|
-
"url": "http://127.0.0.1:3845/mcp",
|
|
293
|
-
"auth": {
|
|
294
|
-
"type": "bearer",
|
|
295
|
-
"token": "your-figma-token"
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
### Workflow Patterns
|
|
303
|
-
|
|
304
|
-
**Selection-Based** (Desktop only):
|
|
305
|
-
1. Select frame/component in Figma
|
|
306
|
-
2. Prompt AI: "Generate React component from this design"
|
|
307
|
-
3. MCP extracts selection context
|
|
308
|
-
4. Returns code with design tokens applied
|
|
309
|
-
|
|
310
|
-
**Link-Based** (Desktop + Remote):
|
|
311
|
-
1. Copy Figma frame URL
|
|
312
|
-
2. Prompt AI: "Extract design tokens from https://figma.com/file/..."
|
|
313
|
-
3. MCP fetches node data via API
|
|
314
|
-
4. Returns DTCG-compatible JSON
|
|
315
|
-
|
|
316
|
-
**Code Connect Integration**:
|
|
317
|
-
- Link Figma components to actual codebase components
|
|
318
|
-
- AI references existing code patterns
|
|
319
|
-
- Ensures consistency with established architecture
|
|
320
|
-
|
|
321
|
-
### Best Practices
|
|
322
|
-
|
|
323
|
-
1. **Structure Figma Files**: Use semantic layer names (`PrimaryButton`, not `Rectangle 1`)
|
|
324
|
-
2. **Use Variables**: Define colors/spacing as Figma variables (easier extraction)
|
|
325
|
-
3. **Enable Code Connect**: Link components to code for better AI context
|
|
326
|
-
4. **Document Conventions**: Add descriptions to components for AI guidance
|
|
327
|
-
5. **Version Control**: Sync Figma updates with codebase regularly
|
|
328
|
-
|
|
329
|
-
---
|
|
330
|
-
|
|
331
|
-
## Style Dictionary 4.0 Reference
|
|
332
|
-
|
|
333
|
-
### Official Documentation
|
|
334
|
-
|
|
335
|
-
**Website**: https://styledictionary.com
|
|
336
|
-
**GitHub**: https://github.com/style-dictionary/style-dictionary
|
|
337
|
-
**Migration Guide**: https://styledictionary.com/version-4/migration/
|
|
338
|
-
|
|
339
|
-
### Key Features (v4.0+)
|
|
340
|
-
|
|
341
|
-
**DTCG Compatibility**:
|
|
342
|
-
- Supports both DTCG 2025.10 format (`$value`, `$type`) and original format (`value`, `type`)
|
|
343
|
-
- Cannot mix formats in single instance
|
|
344
|
-
- Forward-compatible with DTCG spec
|
|
345
|
-
|
|
346
|
-
**Type Safety**:
|
|
347
|
-
- Improved TypeScript types
|
|
348
|
-
- Standalone type interfaces via `style-dictionary/types`
|
|
349
|
-
- Better IDE autocomplete
|
|
350
|
-
|
|
351
|
-
**ES Modules**:
|
|
352
|
-
- Native ESM support (no CommonJS conversion)
|
|
353
|
-
- Async configuration
|
|
354
|
-
- Dynamic imports
|
|
355
|
-
|
|
356
|
-
### Configuration Structure
|
|
357
|
-
|
|
358
|
-
**Basic Config** (`style-dictionary.config.js`):
|
|
359
|
-
|
|
360
|
-
```javascript
|
|
361
|
-
export default {
|
|
362
|
-
source: ['tokens/**/*.json'],
|
|
363
|
-
platforms: {
|
|
364
|
-
css: {
|
|
365
|
-
transformGroup: 'css',
|
|
366
|
-
buildPath: 'build/css/',
|
|
367
|
-
files: [{
|
|
368
|
-
destination: 'variables.css',
|
|
369
|
-
format: 'css/variables'
|
|
370
|
-
}]
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
};
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
**Advanced Config** (Multi-platform):
|
|
377
|
-
|
|
378
|
-
```javascript
|
|
379
|
-
export default {
|
|
380
|
-
source: ['tokens/**/*.json'],
|
|
381
|
-
platforms: {
|
|
382
|
-
css: {
|
|
383
|
-
transformGroup: 'css',
|
|
384
|
-
buildPath: 'dist/css/',
|
|
385
|
-
files: [{
|
|
386
|
-
destination: 'variables.css',
|
|
387
|
-
format: 'css/variables',
|
|
388
|
-
options: {
|
|
389
|
-
outputReferences: true // Use CSS var references
|
|
390
|
-
}
|
|
391
|
-
}]
|
|
392
|
-
},
|
|
393
|
-
js: {
|
|
394
|
-
transformGroup: 'js',
|
|
395
|
-
buildPath: 'dist/js/',
|
|
396
|
-
files: [{
|
|
397
|
-
destination: 'tokens.js',
|
|
398
|
-
format: 'javascript/es6'
|
|
399
|
-
}]
|
|
400
|
-
},
|
|
401
|
-
android: {
|
|
402
|
-
transformGroup: 'android',
|
|
403
|
-
buildPath: 'dist/android/',
|
|
404
|
-
files: [{
|
|
405
|
-
destination: 'colors.xml',
|
|
406
|
-
format: 'android/resources'
|
|
407
|
-
}]
|
|
408
|
-
},
|
|
409
|
-
ios: {
|
|
410
|
-
transformGroup: 'ios',
|
|
411
|
-
buildPath: 'dist/ios/',
|
|
412
|
-
files: [{
|
|
413
|
-
destination: 'StyleDictionary.swift',
|
|
414
|
-
format: 'ios-swift/class.swift'
|
|
415
|
-
}]
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
};
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
### Transform Groups
|
|
422
|
-
|
|
423
|
-
**Built-in Transform Groups**:
|
|
424
|
-
|
|
425
|
-
| Group | Transforms | Output Example |
|
|
426
|
-
|-------|-----------|----------------|
|
|
427
|
-
| `css` | `name/cti/kebab`, `size/px`, `color/css` | `--color-primary-500: #3b82f6;` |
|
|
428
|
-
| `js` | `name/cti/camel`, `size/rem`, `color/hex` | `colorPrimary500: '#3b82f6'` |
|
|
429
|
-
| `android` | `name/cti/snake`, `size/dp`, `color/hex8` | `<color name="color_primary_500">#FF3B82F6</color>` |
|
|
430
|
-
| `ios` | `name/ti/camel`, `size/pt`, `color/UIColor` | `UIColor(red: 0.23, green: 0.51, blue: 0.96, alpha: 1)` |
|
|
431
|
-
|
|
432
|
-
### Custom Transforms
|
|
433
|
-
|
|
434
|
-
**Example: PX to REM conversion**:
|
|
435
|
-
|
|
436
|
-
```javascript
|
|
437
|
-
export default {
|
|
438
|
-
transform: {
|
|
439
|
-
'size/pxToRem': {
|
|
440
|
-
type: 'value',
|
|
441
|
-
filter: (token) => token.type === 'dimension' && token.value.endsWith('px'),
|
|
442
|
-
transform: (token) => {
|
|
443
|
-
const px = parseFloat(token.value);
|
|
444
|
-
return `${px / 16}rem`;
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
},
|
|
448
|
-
platforms: {
|
|
449
|
-
css: {
|
|
450
|
-
transforms: ['size/pxToRem', 'name/cti/kebab'],
|
|
451
|
-
// ...
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
};
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
---
|
|
458
|
-
|
|
459
|
-
## Storybook 8 Reference
|
|
460
|
-
|
|
461
|
-
### Official Documentation
|
|
462
|
-
|
|
463
|
-
**Website**: https://storybook.js.org
|
|
464
|
-
**Docs**: https://storybook.js.org/docs/react/get-started/introduction
|
|
465
|
-
**Design Systems**: https://storybook.js.org/blog/4-ways-to-document-your-design-system-with-storybook/
|
|
466
|
-
|
|
467
|
-
### Key Features (v8.x)
|
|
468
|
-
|
|
469
|
-
**Docs Addon** (Automatic Documentation):
|
|
470
|
-
- Auto-generates component docs from TypeScript types
|
|
471
|
-
- Props table extraction
|
|
472
|
-
- Usage examples
|
|
473
|
-
- Code snippets
|
|
474
|
-
|
|
475
|
-
**Component Story Format (CSF3)**:
|
|
476
|
-
- Simplified story syntax
|
|
477
|
-
- TypeScript-first
|
|
478
|
-
- Better IDE support
|
|
479
|
-
|
|
480
|
-
**Accessibility Testing** (a11y addon):
|
|
481
|
-
- Built-in axe-core integration
|
|
482
|
-
- Real-time violation detection
|
|
483
|
-
- WCAG compliance checks
|
|
484
|
-
|
|
485
|
-
### Story Structure
|
|
486
|
-
|
|
487
|
-
**Meta Configuration**:
|
|
488
|
-
|
|
489
|
-
```typescript
|
|
490
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
491
|
-
import { Button } from './Button';
|
|
492
|
-
|
|
493
|
-
const meta: Meta<typeof Button> = {
|
|
494
|
-
title: 'Components/Button', // Sidebar hierarchy
|
|
495
|
-
component: Button,
|
|
496
|
-
tags: ['autodocs'], // Auto-generate docs page
|
|
497
|
-
argTypes: {
|
|
498
|
-
variant: {
|
|
499
|
-
control: 'select',
|
|
500
|
-
options: ['primary', 'secondary', 'outline'],
|
|
501
|
-
description: 'Visual style variant',
|
|
502
|
-
table: {
|
|
503
|
-
defaultValue: { summary: 'primary' }
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
};
|
|
508
|
-
|
|
509
|
-
export default meta;
|
|
510
|
-
type Story = StoryObj<typeof Button>;
|
|
511
|
-
```
|
|
512
|
-
|
|
513
|
-
**Individual Stories**:
|
|
514
|
-
|
|
515
|
-
```typescript
|
|
516
|
-
export const Primary: Story = {
|
|
517
|
-
args: {
|
|
518
|
-
children: 'Click me',
|
|
519
|
-
variant: 'primary'
|
|
520
|
-
}
|
|
521
|
-
};
|
|
522
|
-
|
|
523
|
-
export const WithIcon: Story = {
|
|
524
|
-
args: {
|
|
525
|
-
children: 'Save',
|
|
526
|
-
variant: 'primary',
|
|
527
|
-
icon: <SaveIcon />
|
|
528
|
-
}
|
|
529
|
-
};
|
|
530
|
-
|
|
531
|
-
// Play function for interaction testing
|
|
532
|
-
export const Interactive: Story = {
|
|
533
|
-
args: {
|
|
534
|
-
children: 'Toggle',
|
|
535
|
-
variant: 'primary'
|
|
536
|
-
},
|
|
537
|
-
play: async ({ canvasElement }) => {
|
|
538
|
-
const canvas = within(canvasElement);
|
|
539
|
-
const button = canvas.getByRole('button');
|
|
540
|
-
await userEvent.click(button);
|
|
541
|
-
await expect(button).toHaveFocus();
|
|
542
|
-
}
|
|
543
|
-
};
|
|
544
|
-
```
|
|
545
|
-
|
|
546
|
-
### Addons Reference
|
|
547
|
-
|
|
548
|
-
**Essential Addons**:
|
|
549
|
-
|
|
550
|
-
| Addon | Purpose | Installation |
|
|
551
|
-
|-------|---------|--------------|
|
|
552
|
-
| `@storybook/addon-essentials` | Core features (controls, docs, actions) | Included by default |
|
|
553
|
-
| `@storybook/addon-a11y` | Accessibility testing | `npm i -D @storybook/addon-a11y` |
|
|
554
|
-
| `@storybook/addon-interactions` | User interaction testing | `npm i -D @storybook/addon-interactions` |
|
|
555
|
-
| `@storybook/addon-links` | Story navigation | Included in essentials |
|
|
556
|
-
| `@chromatic-com/storybook` | Visual regression testing | `npm i -D @chromatic-com/storybook` |
|
|
557
|
-
|
|
558
|
-
---
|
|
559
|
-
|
|
560
|
-
## Testing Tools Reference
|
|
561
|
-
|
|
562
|
-
### axe-core / jest-axe
|
|
563
|
-
|
|
564
|
-
**Installation**:
|
|
565
|
-
|
|
566
|
-
```bash
|
|
567
|
-
npm install --save-dev jest-axe @axe-core/react
|
|
568
|
-
```
|
|
569
|
-
|
|
570
|
-
**Setup** (`tests/setup.ts`):
|
|
571
|
-
|
|
572
|
-
```typescript
|
|
573
|
-
import '@testing-library/jest-dom';
|
|
574
|
-
import { toHaveNoViolations } from 'jest-axe';
|
|
575
|
-
|
|
576
|
-
expect.extend(toHaveNoViolations);
|
|
577
|
-
```
|
|
578
|
-
|
|
579
|
-
**Usage in Tests**:
|
|
580
|
-
|
|
581
|
-
```typescript
|
|
582
|
-
import { axe } from 'jest-axe';
|
|
583
|
-
|
|
584
|
-
it('should have no accessibility violations', async () => {
|
|
585
|
-
const { container } = render(<Button>Click me</Button>);
|
|
586
|
-
const results = await axe(container);
|
|
587
|
-
expect(results).toHaveNoViolations();
|
|
588
|
-
});
|
|
589
|
-
```
|
|
590
|
-
|
|
591
|
-
**axe DevTools Configuration**:
|
|
592
|
-
|
|
593
|
-
```typescript
|
|
594
|
-
import { configureAxe } from 'jest-axe';
|
|
595
|
-
|
|
596
|
-
const axe = configureAxe({
|
|
597
|
-
rules: {
|
|
598
|
-
'color-contrast': { enabled: true },
|
|
599
|
-
'label': { enabled: true },
|
|
600
|
-
'button-name': { enabled: true }
|
|
601
|
-
}
|
|
602
|
-
});
|
|
603
|
-
```
|
|
604
|
-
|
|
605
|
-
### Chromatic (Visual Regression)
|
|
606
|
-
|
|
607
|
-
**Official Site**: https://chromatic.com
|
|
608
|
-
**Pricing**: Free for open source, paid for private repos
|
|
609
|
-
|
|
610
|
-
**Setup**:
|
|
611
|
-
|
|
612
|
-
```bash
|
|
613
|
-
npm install --save-dev chromatic
|
|
614
|
-
npx chromatic --project-token=<your-token>
|
|
615
|
-
```
|
|
616
|
-
|
|
617
|
-
**GitHub Actions Integration**:
|
|
618
|
-
|
|
619
|
-
```yaml
|
|
620
|
-
- name: Run Chromatic
|
|
621
|
-
uses: chromaui/action@v1
|
|
622
|
-
with:
|
|
623
|
-
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
|
|
624
|
-
exitZeroOnChanges: true
|
|
625
|
-
```
|
|
626
|
-
|
|
627
|
-
**Review Process**:
|
|
628
|
-
1. Push changes to branch
|
|
629
|
-
2. Chromatic captures screenshots
|
|
630
|
-
3. Compare with baseline
|
|
631
|
-
4. Approve/reject visual changes
|
|
632
|
-
5. Baseline updates on approval
|
|
633
|
-
|
|
634
|
-
---
|
|
635
|
-
|
|
636
|
-
## Version Compatibility Matrix
|
|
637
|
-
|
|
638
|
-
| Tool | Version | DTCG Support | Release Date |
|
|
639
|
-
|------|---------|--------------|--------------|
|
|
640
|
-
| DTCG Spec | 2025.10 | N/A | October 2025 |
|
|
641
|
-
| Style Dictionary | 4.0+ | ✅ Full | 2024 |
|
|
642
|
-
| Figma MCP | Latest | ✅ Variables | 2025 |
|
|
643
|
-
| Storybook | 8.x | N/A | 2024 |
|
|
644
|
-
| axe-core | 4.8+ | N/A | 2024 |
|
|
645
|
-
| React | 18+ | N/A | 2022 |
|
|
646
|
-
| TypeScript | 5.0+ | N/A | 2023 |
|
|
647
|
-
|
|
648
|
-
---
|
|
649
|
-
|
|
650
|
-
## External Resources
|
|
651
|
-
|
|
652
|
-
**Specifications**:
|
|
653
|
-
- W3C DTCG: https://tr.designtokens.org/format/
|
|
654
|
-
- WCAG 2.2: https://www.w3.org/WAI/WCAG22/quickref/
|
|
655
|
-
- ARIA Authoring Practices: https://www.w3.org/WAI/ARIA/apg/
|
|
656
|
-
|
|
657
|
-
**Tools**:
|
|
658
|
-
- Style Dictionary: https://styledictionary.com
|
|
659
|
-
- Figma MCP: https://help.figma.com/hc/en-us/articles/32132100833559
|
|
660
|
-
- Storybook: https://storybook.js.org
|
|
661
|
-
- axe DevTools: https://www.deque.com/axe/devtools/
|
|
662
|
-
- Chromatic: https://chromatic.com
|
|
663
|
-
|
|
664
|
-
**Design Systems Examples**:
|
|
665
|
-
- Shopify Polaris: https://polaris.shopify.com
|
|
666
|
-
- IBM Carbon: https://carbondesignsystem.com
|
|
667
|
-
- GitHub Primer: https://primer.style
|
|
668
|
-
- Salesforce Lightning: https://lightningdesignsystem.com
|
|
669
|
-
|
|
670
|
-
**Color Contrast Tools**:
|
|
671
|
-
- WebAIM Contrast Checker: https://webaim.org/resources/contrastchecker/
|
|
672
|
-
- Coolors Contrast Checker: https://coolors.co/contrast-checker
|
|
673
|
-
- Who Can Use: https://whocanuse.com
|