ai-developer-skill-os 9.1.2 → 9.3.0

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.
Files changed (63) hide show
  1. package/.agents/AGENTS.md +139 -42
  2. package/.agents/DEV_PROFILE.md +95 -0
  3. package/.agents/registry/capability-graph.yml +171 -334
  4. package/.agents/registry/graph.json +37 -19
  5. package/.agents/registry/index.yaml +59 -13
  6. package/.agents/registry/skills-index.yml +204 -447
  7. package/.agents/rules/coding.md +23 -0
  8. package/.agents/rules/global.md +44 -30
  9. package/.agents/skills/_template/SKILL.md +2 -377
  10. package/.agents/skills/qk-access-policy/SKILL.md +98 -473
  11. package/.agents/skills/qk-agent-observability/SKILL.md +3 -439
  12. package/.agents/skills/qk-ai-builder/SKILL.md +132 -565
  13. package/.agents/skills/qk-api-consumer/SKILL.md +256 -0
  14. package/.agents/skills/qk-api-consumer/capability.yaml +21 -0
  15. package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +29 -0
  16. package/.agents/skills/qk-api-lifecycle/SKILL.md +133 -456
  17. package/.agents/skills/qk-bug-resolution/SKILL.md +128 -561
  18. package/.agents/skills/qk-code-review/SKILL.md +142 -420
  19. package/.agents/skills/qk-context-loader/SKILL.md +99 -471
  20. package/.agents/skills/qk-data-engineer/SKILL.md +119 -340
  21. package/.agents/skills/qk-data-lifecycle/SKILL.md +89 -488
  22. package/.agents/skills/qk-db-optimizer/SKILL.md +102 -488
  23. package/.agents/skills/qk-design-system-engineering/SKILL.md +76 -461
  24. package/.agents/skills/qk-devops-platform/SKILL.md +77 -463
  25. package/.agents/skills/qk-docs/SKILL.md +88 -494
  26. package/.agents/skills/qk-engineering-standard/SKILL.md +4 -588
  27. package/.agents/skills/qk-fe-api-integration/SKILL.md +343 -343
  28. package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +29 -29
  29. package/.agents/skills/qk-feature-delivery/SKILL.md +137 -445
  30. package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
  31. package/.agents/skills/qk-frontend-architecture/SKILL.md +5 -479
  32. package/.agents/skills/qk-help/evals/scorecard.yaml +13 -13
  33. package/.agents/skills/qk-orchestrator/SKILL.md +63 -502
  34. package/.agents/skills/qk-orchestrator/references/routing-table.md +10 -14
  35. package/.agents/skills/qk-product-specification/SKILL.md +70 -479
  36. package/.agents/skills/qk-production-release/SKILL.md +80 -537
  37. package/.agents/skills/qk-project-audit/SKILL.md +174 -0
  38. package/.agents/skills/qk-project-bootstrap/SKILL.md +243 -471
  39. package/.agents/skills/qk-project-health/SKILL.md +97 -496
  40. package/.agents/skills/qk-project-memory/SKILL.md +76 -21
  41. package/.agents/skills/qk-refactor/SKILL.md +167 -384
  42. package/.agents/skills/qk-security-audit/SKILL.md +141 -463
  43. package/.agents/skills/qk-security-audit/capability.yaml +1 -2
  44. package/.agents/skills/qk-system-evolution/SKILL.md +343 -343
  45. package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +26 -26
  46. package/.agents/skills/qk-test-engineering/SKILL.md +119 -509
  47. package/.agents/skills/qk-ui-audit/SKILL.md +73 -537
  48. package/.agents/skills/qk-ui-builder/SKILL.md +521 -482
  49. package/.agents/skills/qk-ui-system-builder/SKILL.md +68 -514
  50. package/.agents/skills/qk-upgrade/SKILL.md +301 -0
  51. package/.agents/skills/qk-upgrade/capability.yaml +24 -0
  52. package/.agents/skills/qk-upgrade/evals/scorecard.yaml +26 -0
  53. package/.agents/skills/qk-validation-gate/SKILL.md +4 -603
  54. package/.agents/skills/qk-web-quality-gate/SKILL.md +85 -463
  55. package/.agents/workflows/bug-resolution.yml +6 -6
  56. package/.agents/workflows/context-discovery.yml +94 -0
  57. package/.agents/workflows/feature-delivery.yml +8 -4
  58. package/.agents/workflows/refactor.yml +6 -3
  59. package/.agents/workflows/shared/quality-gate.yml +94 -0
  60. package/.agents/workflows/skin-governance.yml +115 -0
  61. package/README.md +152 -67
  62. package/package.json +2 -2
  63. package/tooling/build-registry.js +30 -8
@@ -1,482 +1,521 @@
1
- →-→-→-→
2
- →#→ →─→─→ →I→d→e→n→t→i→t→y→ →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
3
- →n→a→m→e→:→ →q→k→-→u→i→-→b→u→i→l→d→e→r→
4
- →v→e→r→s→i→o→n→:→ →8→.→0→.→0→
5
- →s→t→a→t→u→s→:→ →s→t→a→b→l→e→
6
- →d→e→s→c→r→i→p→t→i→o→n→:→ "→X→â→y→ →d→ự→n→g→,→ →s→ử→a→,→ →a→u→d→i→t→,→ →v→à→ →h→ọ→c→ →U→I→ →—→ →t→ừ→ →F→i→g→m→a→/→ả→n→h→,→ →m→a→p→ →A→P→I→,→ →f→i→x→ →b→u→g→ →U→I→,→ →đ→ế→n→ →r→e→d→e→s→i→g→n→ →c→ấ→u→ →t→r→ú→c→.→"
7
- →p→l→a→t→f→o→r→m→s→:→ [→a→n→t→i→g→r→a→v→i→t→y→,→ →c→l→a→u→d→e→-→c→o→d→e→,→ →c→u→r→s→o→r→,→ →w→i→n→d→s→u→r→f→,→ →k→i→l→o→-→c→o→d→e→]
8
-
9
- →#→ →─→─→ →V→8→:→ →C→l→a→s→s→i→f→i→c→a→t→i→o→n→ →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
10
- →t→y→p→e→:→ →c→a→p→a→b→i→l→i→t→y→
11
-
12
- →i→n→t→e→n→t→:→
13
- → →-→ →u→i→-→d→e→v→e→l→o→p→m→e→n→t→
14
- → →-→ →f→r→o→n→t→e→n→d→-→d→e→s→i→g→n→
15
-
16
- →c→o→m→p→l→e→x→i→t→y→:→
17
- → →l→e→v→e→l→:→ →h→i→g→h→
18
- → → →c→r→i→t→e→r→i→a→:→
19
- → → → →f→i→l→e→s→_→a→f→f→e→c→t→e→d→:→ →"1→-→1→0→"
20
- → → → →h→a→s→_→b→e→h→a→v→i→o→r→_→c→h→a→n→g→e→:→ →t→r→u→e→
21
- → → → →h→a→s→_→e→x→t→e→r→n→a→l→_→d→e→p→e→n→d→e→n→c→y→:→ →t→r→u→e→
22
- → → → →h→a→s→_→b→r→e→a→k→i→n→g→_→c→h→a→n→g→e→:→ →f→a→l→s→e→
23
-
24
- →t→r→i→g→g→e→r→s→:→
25
- → →-→ →"→b→u→i→l→d→ →u→i→"
26
- → →-→ →"→l→à→m→ →g→i→a→o→ →d→i→ệ→n→"
27
- → →-→ →"→d→e→s→i→g→n→ →u→i→"
28
- → →-→ →"→c→s→s→"
29
- → →-→ →"→g→i→a→o→ →d→i→ệ→n→"
30
-
31
- →#→ →─→─→ →V→8→:→ →R→e→f→e→r→e→n→c→e→s→ →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
32
- →w→o→r→k→f→l→o→w→:→ →f→e→a→t→u→r→e→-→d→e→l→i→v→e→r→y→
33
-
34
- →r→u→l→e→s→:→
35
- → → →-→ →g→l→o→b→a→l→
36
- →-→ →c→o→d→i→n→g→
37
-
38
- →t→o→o→l→s→:→
39
- → → →-→ →f→i→l→e→s→y→s→t→e→m→
40
- → →-→ →t→e→r→m→i→n→a→l→
41
-
42
- →r→e→l→a→t→e→d→_→s→k→i→l→l→s→:→
43
- → → →-→ →q→k→-→u→i→-→s→y→s→t→e→m→-→b→u→i→l→d→e→r→
44
-
45
- →k→n→o→w→l→e→d→g→e→_→s→c→o→p→e→:→
46
- → → →o→w→n→s→:→
47
- → → → → →-→ →u→i→-→c→o→m→p→o→n→e→n→t→s→
48
- → → → →-→ →s→t→y→l→i→n→g→ →e→x→e→c→u→t→i→o→n→
49
- → → → → →-→ →c→o→m→p→o→n→e→n→t→ →i→m→p→l→e→m→e→n→t→a→t→i→o→n→
50
- → → →d→o→e→s→_→n→o→t→_→o→w→n→:→
51
- → → → → →-→ →c→h→o→o→s→e→ →p→r→o→d→u→c→t→ →v→i→s→u→a→l→ →d→i→r→e→c→t→i→o→n→
52
- → → → →-→ →d→e→f→i→n→e→ →b→r→a→n→d→ →i→d→e→n→t→i→t→y→
53
- → → →-→ →c→r→e→a→t→e→ →d→e→s→i→g→n→ →s→y→s→t→e→m→ →r→u→l→e→s→
54
- →c→o→n→f→l→i→c→t→s→_→w→i→t→h→:→
55
- → → → → →-→ →q→k→-→f→r→o→n→t→e→n→d→-→a→r→c→h→i→t→e→c→t→u→r→e→
56
- →r→e→f→e→r→e→n→c→e→s→:→
57
- → →-→ →d→e→s→i→g→n→-→s→y→s→t→e→m→
58
-
59
- →k→n→o→w→l→e→d→g→e→_→d→e→p→e→n→d→e→n→c→i→e→s→:→
60
- → → →-→ →d→e→s→i→g→n→-→i→n→t→e→l→l→i→g→e→n→c→e→
61
- → →-→ →c→o→m→p→o→n→e→n→t→-→p→a→t→t→e→r→n→s→
62
-
63
- →#→ →─→─→ →V→8→:→ →V→e→r→i→f→i→c→a→t→i→o→n→ →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
64
- →v→e→r→i→f→i→c→a→t→i→o→n→:→
65
- → →r→e→q→u→i→r→e→d→:→ →t→r→u→e→
66
- → → →s→t→r→a→t→e→g→y→:→ →f→e→a→t→u→r→e→
67
-
68
- →s→e→l→e→c→t→i→o→n→:→
69
- → →p→r→i→o→r→i→t→y→:→ →m→e→d→i→u→m→
70
- → →c→o→n→f→i→d→e→n→c→e→_→t→h→r→e→s→h→o→l→d→:→ →0→.→8→0→
71
-
72
- →e→x→a→m→p→l→e→s→:→ →[→]→
73
- →l→e→a→r→n→i→n→g→s→:→ →[→]→
74
-
75
- →#→ →─→─→ →V→7→ →R→u→n→t→i→m→e→ →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
76
- →e→x→e→c→u→t→i→o→n→_→m→o→d→e→:→ →d→e→t→e→r→m→i→n→i→s→t→i→c→
77
- →c→o→s→t→:→ →h→i→g→h→
78
- →l→a→t→e→n→c→y→:→ →s→l→o→w→
79
- →r→i→s→k→:→ →l→o→w→
80
- →s→i→d→e→_→e→f→f→e→c→t→s→:→ →e→d→i→t→_→f→i→l→e→s→
81
- →p→r→o→d→u→c→e→s→:→ →[→c→o→d→e→,→ →r→e→p→o→r→t→]→
82
- →c→o→n→s→u→m→e→s→:→ →[→d→e→s→i→g→n→-→m→d→,→ →d→e→s→i→g→n→-→a→s→s→e→t→,→ →s→o→u→r→c→e→-→c→o→d→e→,→ →a→p→i→-→s→c→h→e→m→a→]→
83
-
84
- →t→o→k→e→n→_→b→u→d→g→e→t→:→
85
- →m→a→x→_→f→i→l→e→s→_→r→e→a→d→:→ →5→
86
- →m→a→x→_→l→i→n→e→s→_→p→e→r→_→r→e→a→d→:→ →1→5→0→
87
- → → →m→a→x→_→s→h→e→l→l→_→c→o→m→m→a→n→d→s→:→ →0→
88
- → → →s→t→o→p→_→e→a→r→l→y→:→ →t→r→u→e→
89
-
90
- →e→x→i→t→_→c→o→d→e→s→:→ →[→S→U→C→C→E→S→S→,→ →B→L→O→C→K→E→D→,→ →F→A→I→L→E→D→,→ →P→A→R→T→I→A→L→]→
91
- →-→-→-→
92
-
93
- →#→ →q→k→-→u→i→-→b→u→i→l→d→e→r→ →—→ →U→I→ →B→u→i→l→d→e→r→ →&→ →A→u→d→i→t→o→r→
94
-
95
- →>→ →*→*→L→a→n→g→u→a→g→e→ →r→u→l→e→:→*→*→ →C→o→d→e→,→ →i→d→e→n→t→i→f→i→e→r→s→,→ →f→i→l→e→ →n→a→m→e→s→ →→→ →E→n→g→l→i→s→h→.→ →E→x→p→l→a→n→a→t→i→o→n→s→,→ →s→u→m→m→a→r→i→e→s→ →→→ →V→i→e→t→n→a→m→e→s→e→.→
96
-
97
- →-→-→-→
98
-
99
- →#→#→ →V→e→r→b→s→
100
-
101
- →|→ →V→e→r→b→ →|→ →T→r→i→g→g→e→r→ →|→ →B→e→h→a→v→i→o→r→ →|→
102
- →|→-→-→-→-→-→-→|→-→-→-→-→-→-→-→-→-→|→-→-→-→-→-→-→-→-→-→-→|→
103
- →|→ →*→(→d→e→f→a→u→l→t→)→*→ →|→ →`→.→/→q→k→-→u→i→-→b→u→i→l→d→e→r→`→ →|→ →B→u→i→l→d→ →o→r→ →e→d→i→t→ →U→I→ →f→r→o→m→ →d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →|→
104
- →|→ →`→-→-→a→u→d→i→t→`→ →|→ →`→.→/→q→k→-→u→i→-→b→u→i→l→d→e→r→ →-→-→a→u→d→i→t→`→ →|→ →S→c→o→r→e→ →U→I→ →a→g→a→i→n→s→t→ →a→n→t→i→-→s→l→o→p→ →c→h→e→c→k→l→i→s→t→,→ →n→o→ →e→d→i→t→s→ →|→
105
- →|→ →`→-→-→r→e→d→e→s→i→g→n→`→ →|→ →`→.→/→q→k→-→u→i→-→b→u→i→l→d→e→r→ →-→-→r→e→d→e→s→i→g→n→`→ →|→ →R→e→b→u→i→l→d→ →s→t→r→u→c→t→u→r→e→,→ →k→e→e→p→ →c→o→p→y→/→I→A→/→b→r→a→n→d→ →|→
106
- →|→ →`→-→-→s→t→u→d→y→`→ →|→ →`→.→/→q→k→-→u→i→-→b→u→i→l→d→e→r→ →-→-→s→t→u→d→y→ →<→s→c→r→e→e→n→s→h→o→t→\→|→U→R→L→>→`→ →|→ →E→x→t→r→a→c→t→ →d→e→s→i→g→n→ →D→N→A→ →→→ →`→d→e→s→i→g→n→.→m→d→`→ →|→
107
-
108
- →-→-→-→
109
-
110
- →#→#→ →P→r→e→c→o→n→d→i→t→i→o→n→s→
111
- →-→ →[→ →]→ →`→D→E→S→I→G→N→.→m→d→`→ →e→x→i→s→t→s→ →w→i→t→h→ →c→o→l→o→r→ →t→o→k→e→n→s→,→ →s→p→a→c→i→n→g→ →s→c→a→l→e→,→ →t→y→p→o→g→r→a→p→h→y→
112
- →-→ →[→ →]→ →F→o→r→ →d→e→f→a→u→l→t→/→e→d→i→t→:→ →d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →o→r→ →t→a→r→g→e→t→ →c→o→m→p→o→n→e→n→t→ →s→p→e→c→i→f→i→e→d→
113
- →-→ →[→ →]→ →F→o→r→ →`→-→-→a→u→d→i→t→`→:→ →t→a→r→g→e→t→ →U→I→ →f→i→l→e→(→s→)→ →s→p→e→c→i→f→i→e→d→
114
- →-→ →[→ →]→ →F→o→r→ →`→-→-→r→e→d→e→s→i→g→n→`→:→ →t→a→r→g→e→t→ →p→a→g→e→ →+→ →b→r→a→n→d→/→c→o→p→y→ →c→o→n→t→e→x→t→ →p→r→o→v→i→d→e→d→
115
- →-→ [ ] →F→o→r→ →`→-→-→s→t→u→d→y→`→:→ →s→c→r→e→e→n→s→h→o→t→ →f→i→l→e→ →o→r→ →p→u→b→l→i→c→ →U→R→L→ →p→r→o→v→i→d→e→d→
116
-
117
- →`→`→`→
118
- →O→n→ →m→i→s→s→i→n→g→ →p→r→e→c→o→n→d→i→t→i→o→n→:→
119
- →E→X→I→T→:→ →B→L→O→C→K→E→D→
120
- → → →M→e→s→s→a→g→e→:→ →"→[→M→i→s→s→i→n→g→ →i→t→e→m→]→.→ →S→e→e→ →E→s→c→a→l→a→t→i→o→n→ →R→u→l→e→s→.→"→
121
- →`→`→`→
122
-
123
- →-→-→-→
124
-
125
- →#→#→ →S→c→o→p→e→
126
-
127
- →#→#→#→ →D→e→f→a→u→l→t→ →v→e→r→b→
128
- →-→ →✅→ →B→u→i→l→d→ →n→e→w→ →U→I→ →f→r→o→m→ →F→i→g→m→a→/→ả→n→h→/→d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→
129
- →-→ →✅→ →S→ử→a→ →t→e→x→t→,→ →t→h→ê→m→ →n→ộ→i→ →d→u→n→g→,→ →m→a→p→ →A→P→I→ →k→e→y→ →v→à→o→ →c→o→m→p→o→n→e→n→t→
130
- →-→ →✅→ →F→i→x→ →U→I→ →b→u→g→:→ →p→a→d→d→i→n→g→,→ →m→à→u→,→ →h→i→ể→n→ →t→h→ị→,→ →r→e→s→p→o→n→s→i→v→e→
131
- →-→ →✅→ →G→e→n→e→r→a→t→e→ →s→t→r→i→c→t→ →U→I→ →t→ừ→ →D→E→S→I→G→N→.→m→d→ →t→o→k→e→n→s→
132
-
133
- →#→#→#→ →`→-→-→a→u→d→i→t→`→
134
- →-→ →✅→ →S→c→o→r→e→ →U→I→ →a→g→a→i→n→s→t→ →a→n→t→i→-→s→l→o→p→ →c→h→e→c→k→l→i→s→t→ →(→5→8→ →g→a→t→e→s→)→
135
- →-→ →✅→ →D→e→t→e→c→t→ →g→e→n→e→r→i→c→ →A→I→ →a→e→s→t→h→e→t→i→c→s→,→ →h→a→r→d→c→o→d→e→d→ →v→a→l→u→e→s→
136
- →-→ →✅→ →V→e→r→i→f→y→ →A→R→I→A→,→ →c→o→n→t→r→a→s→t→,→ →r→e→s→p→o→n→s→i→v→e→ →s→t→a→t→e→s→
137
- →-→ →⚠→️→ →N→o→t→e→:→ →T→h→i→s→ →u→s→e→s→ →t→h→e→ →5→8→-→g→a→t→e→ →b→i→n→a→r→y→ →s→l→o→p→ →t→e→s→t→ →(→i→n→-→b→u→i→l→d→ →s→e→l→f→-→c→h→e→c→k→)→,→ →w→h→i→c→h→ →i→s→ →d→i→s→t→i→n→c→t→ →f→r→o→m→ →t→h→e→ →p→o→i→n→t→-→b→a→s→e→d→ →s→c→o→r→i→n→g→ →i→n→ →t→h→e→ →s→t→a→n→d→a→l→o→n→e→ →`→q→k→-→u→i→-→a→u→d→i→t→`→ →s→k→i→l→l→.→
138
-
139
- →#→#→#→ →`→-→-→r→e→d→e→s→i→g→n→`→
140
- →-→ →✅→ →T→h→a→y→ →đ→ổ→i→ →c→ấ→u→ →t→r→ú→c→ →p→a→g→e→,→ →g→i→ữ→ →n→ộ→i→ →d→u→n→g→/→I→A→/→b→r→a→n→d→
141
- →-→ →✅→ →P→i→c→k→ →n→e→w→ →m→a→c→r→o→s→t→r→u→c→t→u→r→e→ →+→ →t→h→e→m→e→ →f→i→n→g→e→r→p→r→i→n→t→
142
-
143
- →#→#→#→ →`→-→-→s→t→u→d→y→`→
144
- →-→ →✅→ →E→x→t→r→a→c→t→ →d→e→s→i→g→n→ →D→N→A→ →t→ừ→ →ả→n→h→/→F→i→g→m→a→/→U→R→L→
145
- →-→ →✅→ →E→m→i→t→ →p→o→r→t→a→b→l→e→ →`→d→e→s→i→g→n→.→m→d→`→ →f→o→r→ →h→a→n→d→o→f→f→
146
-
147
- →#→#→ →N→o→n→-→G→o→a→l→s→
148
- →-→ →❌→ →I→n→v→e→n→t→ →d→e→s→i→g→n→ →t→o→k→e→n→s→ →n→o→t→ →i→n→ →D→E→S→I→G→N→.→m→d→
149
- →-→ →❌→ →U→s→e→ →h→a→r→d→c→o→d→e→d→ →h→e→x→ →c→o→l→o→r→s→,→ →p→x→ →s→i→z→e→s→ →n→o→t→ →f→r→o→m→ →t→o→k→e→n→ →s→y→s→t→e→m→
150
- →-→ →❌→ →C→o→p→y→ →g→e→n→e→r→i→c→ →T→a→i→l→w→i→n→d→/→B→o→o→t→s→t→r→a→p→ →t→e→m→p→l→a→t→e→s→
151
- →-→ →❌→ →S→k→i→p→ →l→o→a→d→i→n→g→/→e→r→r→o→r→/→e→m→p→t→y→ →s→t→a→t→e→s→
152
- →-→ →❌→ →C→l→o→n→e→ →p→a→i→d→ →t→e→m→p→l→a→t→e→s→ →o→r→ →v→i→o→l→a→t→e→ →d→e→s→i→g→n→ →c→o→p→y→r→i→g→h→t→
153
-
154
- →-→-→-→
155
-
156
- →#→#→ →P→r→i→o→r→i→t→y→ →O→r→d→e→r→
157
-
158
- →|→ →P→r→i→o→r→i→t→y→ →|→ →T→a→s→k→ →|→ →S→k→i→p→ →T→h→r→e→s→h→o→l→d→ →|→
159
- →|→-→-→-→-→-→-→-→-→-→-→|→-→-→-→-→-→-→|→-→-→-→-→-→-→-→-→-→-→-→-→-→-→-→-→|→
160
- →|→ →P→1→ →|→ →H→T→M→L→ →s→t→r→u→c→t→u→r→e→ →+→ →s→e→m→a→n→t→i→c→ →m→a→r→k→u→p→ →|→ →N→e→v→e→r→ →|→
161
- →|→ →P→2→ →|→ →D→E→S→I→G→N→.→m→d→ →t→o→k→e→n→ →a→p→p→l→i→c→a→t→i→o→n→ →(→c→o→l→o→r→s→,→ →s→p→a→c→i→n→g→,→ →t→y→p→o→g→r→a→p→h→y→)→ →|→ →N→e→v→e→r→ →|→
162
- →|→ →P→3→ →|→ →I→n→t→e→r→a→c→t→i→v→e→ →s→t→a→t→e→s→ →(→h→o→v→e→r→,→ →f→o→c→u→s→,→ →a→c→t→i→v→e→)→ →|→ →B→u→d→g→e→t→ →<→ →3→0→%→ →|→
163
- →|→ →P→4→ →|→ →R→e→s→p→o→n→s→i→v→e→ →b→r→e→a→k→p→o→i→n→t→s→ →(→m→o→b→i→l→e→)→ →|→ →B→u→d→g→e→t→ →<→ →5→0→%→ →|→
164
- →|→ →P→5→ →|→ →L→o→a→d→i→n→g→ →/→ →e→r→r→o→r→ →/→ →e→m→p→t→y→ →s→t→a→t→e→s→ →|→ →B→u→d→g→e→t→ →<→ →6→0→%→ →|→
165
- →|→ →P→6→ →|→ →A→n→i→m→a→t→i→o→n→ →/→ →m→i→c→r→o→-→i→n→t→e→r→a→c→t→i→o→n→s→ →|→ →B→u→d→g→e→t→ →<→ →7→0→%→ →|→
166
- →|→ →P→7→ →|→ →A→R→I→A→ →r→o→l→e→s→ →+→ →k→e→y→b→o→a→r→d→ →n→a→v→i→g→a→t→i→o→n→ →|→ →B→u→d→g→e→t→ →<→ →8→0→%→ →|→
167
-
168
- →-→-→-→
169
-
170
- →#→#→ →W→o→r→k→f→l→o→w→
171
-
172
- →#→#→#→ →P→h→a→s→e→ →1→ →—→ →R→o→u→t→e→ →b→y→ →V→e→r→b→
173
-
174
- →*→*→D→e→c→i→s→i→o→n→:→*→*→
175
- →`→`→`→
176
- →I→F→ →-→-→a→u→d→i→t→
177
- → → →→→ →L→o→a→d→ →s→l→o→p→-→t→e→s→t→ →g→a→t→e→s→ →→→ →g→o→ →t→o→ →A→u→d→i→t→ →p→h→a→s→e→
178
-
179
- →E→L→S→E→ →I→F→ →-→-→r→e→d→e→s→i→g→n→
180
- → →→→ →L→o→a→d→ →m→a→c→r→o→s→t→r→u→c→t→u→r→e→ →i→n→d→e→x→ →→→ →p→i→c→k→ →n→e→w→ →f→i→n→g→e→r→p→r→i→n→t→ →→→ →g→o→ →t→o→ →B→u→i→l→d→ →p→h→a→s→e→
181
-
182
- →E→L→S→E→ →I→F→ →-→-→s→t→u→d→y→
183
- →→→ →L→o→a→d→ →s→t→u→d→y→ →p→r→o→t→o→c→o→l→ →→→ →e→x→t→r→a→c→t→ →D→N→A→ →→→ →e→m→i→t→ →d→e→s→i→g→n→.→m→d→ →→→ →E→X→I→T→:→ →S→U→C→C→E→S→S→
184
-
185
- →E→L→S→E→ →(→d→e→f→a→u→l→t→:→ →b→u→i→l→d→/→e→d→i→t→)→
186
- →→→ →g→o→ →t→o→ →B→u→i→l→d→ →p→h→a→s→e→
187
- →`→`→`→
188
-
189
- →-→-→-→
190
-
191
- →#→#→#→ →P→h→a→s→e→ →2→ →—→ →L→o→a→d→ →D→e→s→i→g→n→ →C→o→n→t→e→x→t→ →(→d→e→f→a→u→l→t→/→e→d→i→t→/→r→e→d→e→s→i→g→n→ →o→n→l→y→)→
192
-
193
- →*→*→L→o→a→d→ →D→i→s→c→i→p→l→i→n→e→ →(→M→A→N→D→A→T→O→R→Y→)→:→*→*→
194
-
195
- →`→`→`→
196
- →E→A→G→E→R→ →(→l→o→a→d→ →e→v→e→r→y→ →b→u→i→l→d→)→:→
197
- →-→ →t→y→p→o→g→r→a→p→h→y→.→m→d→
198
- → → →-→ →c→o→l→o→r→.→m→d→
199
- → → →-→ →l→a→y→o→u→t→-→a→n→d→-→s→p→a→c→e→.→m→d→
200
- →-→ →c→o→p→y→.→m→d→
201
- → →-→ →a→n→t→i→-→p→a→t→t→e→r→n→s→.→m→d→
202
-
203
- →I→N→D→E→X→-→T→H→E→N→-→P→I→C→K→ →(→l→o→a→d→ →i→n→d→e→x→,→ →c→h→o→o→s→e→ →O→N→E→)→:→
204
- → →-→ →m→a→c→r→o→s→t→r→u→c→t→u→r→e→s→.→m→d→ →→→ →p→i→c→k→ →O→N→E→ →→→ →l→o→a→d→ →o→n→l→y→ →t→h→a→t→ →f→i→l→e→
205
-
206
- →C→O→N→D→I→T→I→O→N→A→L→ →(→l→o→a→d→ →o→n→l→y→ →i→f→ →n→e→e→d→e→d→)→:→
207
- →-→ →t→h→e→m→e→s→/→[→n→a→m→e→]→.→m→d→ →→→ →o→n→l→y→ →i→f→ →p→r→o→j→e→c→t→ →h→a→s→ →l→o→c→k→e→d→ →t→h→e→m→e→
208
- →-→ →m→o→t→i→o→n→.→m→d→ →→→ →o→n→l→y→ →i→f→ →a→n→i→m→a→t→i→o→n→ →r→e→q→u→e→s→t→e→d→
209
- → → →-→ →i→n→t→e→r→a→c→t→i→o→n→-→a→n→d→-→s→t→a→t→e→s→.→m→d→ →→→ →o→n→l→y→ →i→f→ →c→o→m→p→l→e→x→ →i→n→t→e→r→a→c→t→i→o→n→s→
210
- →-→ →r→e→s→p→o→n→s→i→v→e→.→m→d→ →→→ →o→n→l→y→ →i→f→ →m→o→b→i→l→e→ →b→r→e→a→k→p→o→i→n→t→s→ →n→e→e→d→e→d→
211
- →-→ →c→o→m→p→o→n→e→n→t→-→c→o→o→k→b→o→o→k→.→m→d→ →→→ →o→n→l→y→ →i→f→ →b→u→i→l→d→i→n→g→ →k→n→o→w→n→ →a→r→c→h→e→t→y→p→e→
212
-
213
- →L→O→A→D→-→A→T→-→E→N→D→ →(→p→o→s→t→-→e→m→i→t→ →o→n→l→y→)→:→
214
- →-→ →s→l→o→p→-→t→e→s→t→.→m→d→ →→→ →r→u→n→ →A→F→T→E→R→ →b→u→i→l→d→ →c→o→m→p→l→e→t→e→s→
215
- →`→`→`→
216
-
217
- →*→*→S→t→e→p→s→:→*→*→
218
- →1→.→ →R→e→a→d→ →`→D→E→S→I→G→N→.→m→d→`→ →→→ →e→x→t→r→a→c→t→ →t→o→k→e→n→s→:→ →c→o→l→o→r→s→ →(→H→S→L→)→,→ →s→p→a→c→i→n→g→,→ →f→o→n→t→s→,→ →r→a→d→i→u→s→,→ →s→h→a→d→o→w→s→
219
- →2→.→ →L→o→a→d→ →e→a→g→e→r→ →r→e→f→e→r→e→n→c→e→s→ →(→t→y→p→o→g→r→a→p→h→y→,→ →c→o→l→o→r→,→ →l→a→y→o→u→t→,→ →c→o→p→y→,→ →a→n→t→i→-→p→a→t→t→e→r→n→s→)→
220
- →3→.→ →C→h→e→c→k→ →`→.→a→g→e→n→t→s→/→m→e→m→o→r→y→/→u→i→-→d→i→v→e→r→s→i→f→i→c→a→t→i→o→n→.→j→s→o→n→`→ →f→o→r→ →l→a→s→t→ →t→h→e→m→e→/→m→a→c→r→o→s→t→r→u→c→t→u→r→e→ →u→s→e→d→
221
- →4→.→ →I→f→ →r→e→d→e→s→i→g→n→:→ →r→e→a→d→ →`→r→e→f→e→r→e→n→c→e→s→/→m→a→c→r→o→s→t→r→u→c→t→u→r→e→s→.→m→d→`→ →i→n→d→e→x→ →→→ →p→i→c→k→ →O→N→E→ →d→i→f→f→e→r→e→n→t→ →f→r→o→m→ →l→a→s→t→ →→→ →l→o→a→d→ →o→n→l→y→ →t→h→a→t→ →f→i→l→e→
222
- →5→.→ →I→f→ →p→r→o→j→e→c→t→ →h→a→s→ →l→o→c→k→e→d→ →t→h→e→m→e→:→ →l→o→a→d→ →`→r→e→f→e→r→e→n→c→e→s→/→t→h→e→m→e→s→/→[→n→a→m→e→]→.→m→d→`→
223
-
224
- →*→*→D→i→v→e→r→s→i→f→i→c→a→t→i→o→n→ →r→u→l→e→:→*→*→ →c→o→n→s→e→c→u→t→i→v→e→ →b→u→i→l→d→s→ →m→u→s→t→ →u→s→e→ →d→i→f→f→e→r→e→n→t→ →t→h→e→m→e→ →+→ →m→a→c→r→o→s→t→r→u→c→t→u→r→e→ →f→r→o→m→ →`→u→i→-→d→i→v→e→r→s→i→f→i→c→a→t→i→o→n→.→j→s→o→n→`→.→
225
-
226
- →-→-→-→
227
-
228
- →#→#→#→ →P→h→a→s→e→ →3→ →—→ →B→u→i→l→d→ →o→r→ →E→d→i→t→
229
-
230
- →*→*→S→t→e→p→s→:→*→*→
231
- →1→.→ →F→o→r→ →n→e→w→ →U→I→:→ →c→r→e→a→t→e→ →c→o→m→p→o→n→e→n→t→ →f→r→o→m→ →d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →u→s→i→n→g→ →D→E→S→I→G→N→.→m→d→ →t→o→k→e→n→s→
232
- →2→.→ →F→o→r→ →e→d→i→t→:→ →m→o→d→i→f→y→ →e→x→i→s→t→i→n→g→ →c→o→m→p→o→n→e→n→t→ →p→e→r→ →u→s→e→r→ →r→e→q→u→e→s→t→ →(→t→e→x→t→,→ →A→P→I→ →m→a→p→p→i→n→g→,→ →l→a→y→o→u→t→)→
233
- →3→.→ →A→p→p→l→y→ →t→h→e→m→e→ →+→ →m→a→c→r→o→s→t→r→u→c→t→u→r→e→ →f→i→n→g→e→r→p→r→i→n→t→
234
- →4→.→ →H→a→n→d→l→e→ →a→l→l→ →3→ →U→I→ →s→t→a→t→e→s→:→ →L→o→a→d→i→n→g→,→ →S→u→c→c→e→s→s→,→ →E→r→r→o→r→
235
-
236
- →*→*→A→P→I→ →m→a→p→p→i→n→g→ →r→u→l→e→:→*→*→
237
- →-→ →B→i→n→d→ →A→P→I→ →r→e→s→p→o→n→s→e→ →t→o→ →c→o→m→p→o→n→e→n→t→ →p→r→o→p→s→ →v→i→a→ →g→e→n→e→r→a→t→e→d→ →T→y→p→e→S→c→r→i→p→t→ →i→n→t→e→r→f→a→c→e→s→
238
- →-→ →N→E→V→E→R→ →h→a→r→d→c→o→d→e→ →A→P→I→ →U→R→L→s→ →i→n→ →c→o→m→p→o→n→e→n→t→
239
- →-→ →U→s→e→ →e→x→i→s→t→i→n→g→ →A→P→I→ →c→l→i→e→n→t→ →p→a→t→t→e→r→n→ →f→r→o→m→ →p→r→o→j→e→c→t→
240
-
241
- →-→-→-→
242
-
243
- →#→#→#→ →P→h→a→s→e→ →4→ →—→ →S→e→l→f→-→A→u→d→i→t→ →(→A→n→t→i→-→S→l→o→p→ →C→h→e→c→k→)→
244
-
245
- →*→*→C→h→e→c→k→l→i→s→t→ →(→m→u→s→t→ →p→a→s→s→ →A→L→L→)→:→*→*→
246
- →-→ →[→ →]→ →N→o→ →h→a→r→d→c→o→d→e→d→ →c→o→l→o→r→s→ →—→ →o→n→l→y→ →D→E→S→I→G→N→.→m→d→ →t→o→k→e→n→s→
247
- →-→ →[→ →]→ →N→o→ →f→o→n→t→-→s→i→z→e→ →i→n→ →p→x→ →w→i→t→h→o→u→t→ →t→o→k→e→n→ →—→ →u→s→e→ →r→e→m→/→t→o→k→e→n→
248
- →-→ →[→ →]→ →N→o→ →`→m→a→r→g→i→n→:→ →a→u→t→o→`→ →s→o→u→p→ →—→ →u→s→e→ →p→r→o→p→e→r→ →g→r→i→d→/→f→l→e→x→
249
- →-→ →[→ →]→ →A→l→l→ →i→n→t→e→r→a→c→t→i→v→e→ →e→l→e→m→e→n→t→s→ →h→a→v→e→ →h→o→v→e→r→ →+→ →f→o→c→u→s→ →s→t→a→t→e→
250
- →-→ [ ] →M→o→b→i→l→e→ →v→i→e→w→p→o→r→t→ →w→o→r→k→s→ →(→n→o→ →h→o→r→i→z→o→n→t→a→l→ →o→v→e→r→f→l→o→w→)→
251
- →-→ [ ] →N→o→ →`→!→i→m→p→o→r→t→a→n→t→`→ →o→v→e→r→r→i→d→e→s→ →(→e→x→c→e→p→t→ →r→e→s→e→t→s→)→
252
- →-→ [ ] →N→o→ →i→n→l→i→n→e→ →s→t→y→l→e→s→ →e→x→c→e→p→t→ →d→y→n→a→m→i→c→ →v→a→l→u→e→s→
253
- →-→ [ ] →L→o→a→d→i→n→g→ →s→t→a→t→e→ →i→m→p→l→e→m→e→n→t→e→d→ →(→s→k→e→l→e→t→o→n→ →o→r→ →s→p→i→n→n→e→r→)→
254
- →-→ [ ] →E→r→r→o→r→ →s→t→a→t→e→ →i→m→p→l→e→m→e→n→t→e→d→ (→c→l→e→a→r→ →m→e→s→s→a→g→e→)
255
- →-→ [ ] →E→m→p→t→y→ →s→t→a→t→e→ →i→m→p→l→e→m→e→n→t→e→d→ (→h→e→l→p→f→u→l→ →i→l→l→u→s→t→r→a→t→i→o→n→/→t→e→x→t→)
256
-
257
- →*→*→D→e→c→i→s→i→o→n→:→*→*→
258
- →`→`→`→
259
- →I→F→ →a→l→l→ →c→h→e→c→k→s→ →p→a→s→s→
260
- → → →→→ →E→X→I→T→:→ →S→U→C→C→E→S→S→
261
-
262
- →E→L→S→E→ →I→F→ →1→–→2→ →m→i→n→o→r→ →f→a→i→l→s→
263
- →→→ →F→i→x→ →i→m→m→e→d→i→a→t→e→l→y→,→ →E→X→I→T→:→ →S→U→C→C→E→S→S→
264
-
265
- →E→L→S→E→ →I→F→ →>→ →2→ →f→a→i→l→s→ →O→R→ →h→a→r→d→c→o→d→e→d→ →c→o→l→o→r→s→ →f→o→u→n→d→
266
- →→→ →F→i→x→ →a→l→l→,→ →r→e→-→a→u→d→i→t→,→ →E→X→I→T→:→ →P→A→R→T→I→A→L→ →i→f→ →s→t→i→l→l→ →o→n→e→ →g→a→p→
267
- →`→`→`→
268
-
269
- →-→-→-→
270
-
271
- →#→#→#→ →P→h→a→s→e→ →5→ →—→ →S→l→o→p→ →T→e→s→t→ →(→p→o→s→t→-→e→m→i→t→)→
272
-
273
- →L→o→a→d→ →`→r→e→f→e→r→e→n→c→e→s→/→s→l→o→p→-→t→e→s→t→.→m→d→`→ →a→n→d→ →v→e→r→i→f→y→ →a→l→l→ →5→8→ →g→a→t→e→s→ →p→a→s→s→.→
274
-
275
- →`→`→`→
276
- →I→F→ →a→l→l→ →5→8→ →g→a→t→e→s→ →p→a→s→s→
277
- →→→ →E→X→I→T→:→ →S→U→C→C→E→S→S→
278
-
279
- →E→L→S→E→ →I→F→ →c→r→i→t→i→c→a→l→ →g→a→t→e→ →f→a→i→l→s→ →(→h→a→r→d→c→o→d→e→d→ →p→u→r→p→l→e→ →g→r→a→d→i→e→n→t→,→ →b→a→n→n→e→d→ →f→o→n→t→)→
280
- →→→ →E→X→I→T→:→ →F→A→I→L→E→D→ →—→ →r→e→b→u→i→l→d→ →r→e→q→u→i→r→e→d→
281
- →`→`→`→
282
-
283
- →-→-→-→
284
-
285
- →#→#→ →C→o→n→f→i→d→e→n→c→e→ →M→o→d→e→l→
286
-
287
- →|→ →L→e→v→e→l→ →|→ →C→o→n→d→i→t→i→o→n→ →|→ →A→c→t→i→o→n→ →|→
288
- →|→-→-→-→-→-→-→-→|→-→-→-→-→-→-→-→-→-→-→-→|→-→-→-→-→-→-→-→-→|→
289
- →|→ →H→I→G→H→ →|→ →D→E→S→I→G→N→.→m→d→ →c→o→m→p→l→e→t→e→,→ →d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →c→l→e→a→r→,→ →A→P→I→ →s→c→h→e→m→a→ →p→r→o→v→i→d→e→d→ →|→ →B→u→i→l→d→ →d→i→r→e→c→t→l→y→ →|→
290
- →|→ →M→E→D→I→U→M→ →|→ →S→o→m→e→ →t→o→k→e→n→s→ →m→i→s→s→i→n→g→ →o→r→ →d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →a→m→b→i→g→u→o→u→s→ →|→ →N→o→t→e→ →g→a→p→s→,→ →p→r→o→c→e→e→d→ →|→
291
- →|→ →L→O→W→ →|→ →D→E→S→I→G→N→.→m→d→ →m→i→s→s→i→n→g→ →o→r→ →d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →t→o→o→ →v→a→g→u→e→ →|→ →E→X→I→T→:→ →B→L→O→C→K→E→D→ →|→
292
-
293
- →-→-→-→
294
-
295
- →#→#→ →S→e→v→e→r→i→t→y→
296
-
297
- →|→ →L→e→v→e→l→ →|→ →D→e→f→i→n→i→t→i→o→n→ →|→ →E→x→a→m→p→l→e→ →|→
298
- →|→-→-→-→-→-→-→-→|→-→-→-→-→-→-→-→-→-→-→-→|→-→-→-→-→-→-→-→-→-→|→
299
- →|→ →C→R→I→T→I→C→A→L→ →|→ →H→a→r→d→c→o→d→e→d→ →A→P→I→ →U→R→L→ →i→n→ →c→o→m→p→o→n→e→n→t→,→ →b→a→n→n→e→d→ →f→o→n→t→ →u→s→e→d→ →|→ →`→a→x→i→o→s→.→g→e→t→(→"→h→t→t→p→:→/→/→l→o→c→a→l→h→o→s→t→"→)→`→ →i→n→ →J→S→X→ →|→
300
- →|→ →H→I→G→H→ →|→ →M→i→s→s→i→n→g→ →e→r→r→o→r→/→l→o→a→d→i→n→g→ →s→t→a→t→e→,→ →h→a→r→d→c→o→d→e→d→ →c→o→l→o→r→ →n→o→t→ →i→n→ →D→E→S→I→G→N→.→m→d→ →|→ →N→o→ →5→0→0→ →h→a→n→d→l→e→r→ →|→
301
- →|→ →M→E→D→I→U→M→ →|→ →M→i→s→s→i→n→g→ →h→o→v→e→r→ →s→t→a→t→e→,→ →s→p→a→c→i→n→g→ →o→f→f→ →b→y→ →1→ →u→n→i→t→ →|→ →B→u→t→t→o→n→ →w→i→t→h→o→u→t→ →f→o→c→u→s→ →r→i→n→g→ →|→
302
- →|→ →L→O→W→ →|→ →C→o→m→m→e→n→t→ →m→i→s→s→i→n→g→,→ →m→i→n→o→r→ →n→a→m→i→n→g→ →i→n→c→o→n→s→i→s→t→e→n→c→y→ →|→ →`→t→e→m→p→`→ →v→a→r→i→a→b→l→e→ →n→a→m→e→ →|→
303
-
304
- →-→-→-→
305
-
306
- →#→#→ →E→v→i→d→e→n→c→e→ →F→o→r→m→a→t→
307
-
308
- →`→`→`→
309
- →[→S→E→V→E→R→I→T→Y→]→ →p→a→t→h→/→t→o→/→C→o→m→p→o→n→e→n→t→.→t→s→x→:→L→I→N→E→
310
- →C→a→t→e→g→o→r→y→:→ → →[→T→O→K→E→N→|→S→E→M→A→N→T→I→C→|→I→N→T→E→R→A→C→T→I→O→N→|→R→E→S→P→O→N→S→I→V→E→|→S→T→A→T→E→|→A→R→I→A→|→S→L→O→P→]→
311
- →R→e→a→s→o→n→:→ → → → → →[→s→p→e→c→i→f→i→c→ →v→i→o→l→a→t→i→o→n→]→
312
- →C→o→n→f→i→d→e→n→c→e→:→ →H→I→G→H→
313
- →F→i→x→:→ → → → → → → → →[→o→n→e→-→l→i→n→e→ →a→c→t→i→o→n→a→b→l→e→ →s→u→g→g→e→s→t→i→o→n→]→
314
- →P→o→i→n→t→s→:→ → → → → →-→N→ →p→t→s→ →(→f→o→r→ →a→u→d→i→t→ →m→o→d→e→)→
315
- →`→`→`→
316
-
317
- →-→-→-→
318
-
319
- →#→#→ →R→e→t→r→y→ →P→o→l→i→c→y→
320
-
321
- →`→`→`→
322
- →B→u→i→l→d→/→E→d→i→t→ →f→a→i→l→s→
323
- →└→─→ →C→h→e→c→k→ →f→a→i→l→u→r→e→ →t→y→p→e→
324
- → → → → → → → →├→─→ →T→o→k→e→n→ →m→i→s→s→i→n→g→ →→→ →i→n→f→e→r→ →f→r→o→m→ →D→E→S→I→G→N→.→m→d→,→ →n→o→t→e→ →a→s→s→u→m→p→t→i→o→n→
325
- → → → → → → → →└→─→ →D→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →u→n→c→l→e→a→r→ →→→ →E→X→I→T→:→ →B→L→O→C→K→E→D→,→ →a→s→k→ →u→s→e→r→
326
-
327
- →S→l→o→p→ →t→e→s→t→ →f→a→i→l→s→
328
- →└→─→ →C→r→i→t→i→c→a→l→ →g→a→t→e→ →(→h→a→r→d→c→o→d→e→d→ →c→o→l→o→r→,→ →b→a→n→n→e→d→ →f→o→n→t→)→
329
- → →└→─→ →E→X→I→T→:→ →F→A→I→L→E→D→ →—→ →d→o→ →n→o→t→ →s→h→i→p→,→ →r→e→b→u→i→l→d→ →r→e→q→u→i→r→e→d→
330
- →`→`→`→
331
-
332
- →-→-→-→
333
-
334
- →#→#→ →E→s→c→a→l→a→t→i→o→n→ →R→u→l→e→s→
335
-
336
- →`→`→`→
337
- →B→L→O→C→K→E→D→:→ →D→E→S→I→G→N→.→m→d→ →m→i→s→s→i→n→g→ →o→r→ →d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →u→n→c→l→e→a→r→
338
- →M→i→s→s→i→n→g→:→
339
- → → →-→ →D→E→S→I→G→N→.→m→d→ →w→i→t→h→ →c→o→l→o→r→/→s→p→a→c→i→n→g→/→t→y→p→o→g→r→a→p→h→y→ →t→o→k→e→n→s→
340
- → → →-→ →D→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →(→F→i→g→m→a→/→ả→n→h→/→w→i→r→e→f→r→a→m→e→)→
341
- →-→ →F→o→r→ →-→-→s→t→u→d→y→:→ →s→c→r→e→e→n→s→h→o→t→ →o→r→ →p→u→b→l→i→c→ →U→R→L→
342
- →Q→u→e→s→t→i→o→n→s→:→
343
- →1→.→ →B→ạ→n→ →c→ó→ →D→E→S→I→G→N→.→m→d→ →c→h→ư→a→?→ →(→c→h→ạ→y→ →q→k→-→p→r→o→j→e→c→t→-→b→o→o→t→s→t→r→a→p→ →n→ế→u→ →c→h→ư→a→)→
344
- →2→.→ →D→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→ →l→à→ →g→ì→?→ →(→F→i→g→m→a→ →l→i→n→k→ →/→ →ả→n→h→ →/→ →m→ô→ →t→ả→)
345
- →3→.→ →C→h→o→ →p→h→é→p→ →t→ạ→o→ →D→E→S→I→G→N→.→m→d→ →m→ớ→i→ →k→h→ô→n→g→?→
346
- →R→e→c→o→m→m→e→n→d→e→d→ →A→s→s→u→m→p→t→i→o→n→s→ →(→i→f→ →p→r→o→c→e→e→d→i→n→g→)→:→
347
- →-→ →U→s→e→ →i→n→d→u→s→t→r→y→-→s→t→a→n→d→a→r→d→:→ →8→p→x→ →s→p→a→c→i→n→g→,→ →I→n→t→e→r→ →f→o→n→t→,→ →n→e→u→t→r→a→l→ →g→r→a→y→ →p→a→l→e→t→t→e→
348
- →`→`→`→
349
-
350
- →-→-→-→
351
-
352
- →#→#→ →H→a→n→d→o→f→f→ →C→o→n→t→r→a→c→t→
353
-
354
- →#→#→#→ →C→o→n→s→u→m→e→s→
355
- →`→`→`→j→s→o→n→
356
- →{→
357
- → → →"→f→r→o→m→"→:→ →"→u→s→e→r→ →o→r→ →q→k→-→o→r→c→h→e→s→t→r→a→t→o→r→"→,→
358
- → →"→r→e→q→u→i→r→e→d→_→f→i→e→l→d→s→"→:→ →[→"→v→e→r→b→"→,→ →"→d→e→s→i→g→n→_→m→d→_→p→a→t→h→"→]→,→
359
- → → →"→o→p→t→i→o→n→a→l→_→f→i→e→l→d→s→"→:→ →[→"→d→e→s→i→g→n→_→r→e→f→e→r→e→n→c→e→"→,→ →"→t→a→r→g→e→t→_→c→o→m→p→o→n→e→n→t→"→,→ →"→a→p→i→_→s→c→h→e→m→a→"→,→ →"→f→r→a→m→e→w→o→r→k→"→]→
360
- →}→
361
- →`→`→`→
362
-
363
- →#→#→#→ →P→r→o→d→u→c→e→s→
364
- →`→`→`→j→s→o→n→
365
- →{→
366
- → → →"→t→o→"→:→ →"→u→s→e→r→ →o→r→ →q→k→-→u→i→-→a→u→d→i→t→ →(→i→f→ →-→-→a→u→d→i→t→)→"→,→
367
- → →"→o→u→t→p→u→t→_→f→i→e→l→d→s→"→:→ →[→"→c→o→m→p→o→n→e→n→t→_→f→i→l→e→s→"→,→ →"→t→o→k→e→n→s→_→u→s→e→d→"→,→ →"→s→t→a→t→e→s→_→i→m→p→l→e→m→e→n→t→e→d→"→,→ →"→s→l→o→p→_→t→e→s→t→_→r→e→s→u→l→t→"→,→ →"→e→x→i→t→_→c→o→d→e→"→]→
368
- →}→
369
- →`→`→`→
370
-
371
- →-→-→-→
372
-
373
- →#→#→ →O→u→t→p→u→t→ →F→o→r→m→a→t→
374
-
375
- →#→#→#→ →D→e→f→a→u→l→t→ →(→b→u→i→l→d→/→e→d→i→t→)→
376
- →`→`→`→
377
- →🎨→ →U→I→ →B→u→i→l→d→e→r→
378
- →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
379
- →C→o→m→p→o→n→e→n→t→:→ → →[→C→o→m→p→o→n→e→n→t→N→a→m→e→]→
380
- →T→h→e→m→e→:→ → → → → → → →[→t→h→e→m→e→ →n→a→m→e→ →f→r→o→m→ →r→e→f→e→r→e→n→c→e→s→/→t→h→e→m→e→s→/→]→
381
- →M→a→c→r→o→s→t→r→u→c→t→u→r→e→:→ →[→m→a→c→r→o→s→t→r→u→c→t→u→r→e→ →n→a→m→e→]→
382
-
383
- →S→t→a→t→e→s→ →i→m→p→l→e→m→e→n→t→e→d→:→
384
- →✅→ →L→o→a→d→i→n→g→ →/→ →✅→ →S→u→c→c→e→s→s→ →/→ →✅→ →E→r→r→o→r→
385
- →✅→ →H→o→v→e→r→ →/→ →✅→ →F→o→c→u→s→ →/→ →✅→ →A→c→t→i→v→e→ →/→ →✅→ →D→i→s→a→b→l→e→d→
386
-
387
- →T→o→k→e→n→s→ →u→s→e→d→:→
388
- →-→ →-→-→c→o→l→o→r→-→p→r→i→m→a→r→y→-→5→0→0→,→ →-→-→s→p→a→c→e→-→4→,→ →-→-→f→o→n→t→-→s→i→z→e→-→b→a→s→e→
389
-
390
- →A→P→I→ →M→a→p→p→i→n→g→:→
391
- → →✅→ →[→e→n→d→p→o→i→n→t→ →→→ →p→r→o→p→]→ →m→a→p→p→e→d→
392
-
393
- →E→x→i→t→ →C→o→d→e→:→ → → →[→S→U→C→C→E→S→S→ →|→ →P→A→R→T→I→A→L→ →|→ →B→L→O→C→K→E→D→ →|→ →F→A→I→L→E→D→]→
394
- →`→`→`→
395
-
396
- →#→#→#→ →`→-→-→a→u→d→i→t→`→
397
- →`→`→`→
398
- →🎨→ →U→I→ →A→u→d→i→t→ →R→e→p→o→r→t→
399
- →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
400
- →C→o→m→p→o→n→e→n→t→:→ → → →[→p→a→t→h→/→t→o→/→c→o→m→p→o→n→e→n→t→]→
401
- →T→h→e→m→e→:→ → → → → → → →[→N→/→A→ →—→ →r→e→a→d→-→o→n→l→y→ →a→u→d→i→t→]→
402
-
403
- →S→c→o→r→e→s→:→
404
- → → →P→1→ →A→c→c→e→s→s→i→b→i→l→i→t→y→:→ → →[→X→/→1→5→]
405
- →P→2→ →L→a→y→o→u→t→:→ → → → → → → → → →[→X→/→1→5→]
406
- → → →P→3→ →T→y→p→o→g→r→a→p→h→y→:→ → → → → →[→X→/→1→5→]→
407
- → → →P→4→ →I→n→t→e→r→a→c→t→i→o→n→s→:→ → → →[→X→/→1→5→]→
408
- → →P→5→ →A→n→t→i→-→S→l→o→p→:→ → → → → → →[X→/→1→5→]
409
- → →P→6→ →P→e→r→f→o→r→m→a→n→c→e→:→ → → → →[X→/→1→0→]
410
- → →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
411
- → →T→o→t→a→l→:→ → → → → → → → → → → → → →[X→/→8→5→]→ →→→ →[→P→A→S→S→ →≥→ →9→0→%→ →|→ →F→A→I→L→ →<→ →9→0→%→]→
412
-
413
- →V→i→o→l→a→t→i→o→n→s→ →(→t→o→p→ →p→r→i→o→r→i→t→y→ →f→i→r→s→t→)→:→
414
- → → →[→S→E→V→E→R→I→T→Y→]→ →f→i→l→e→:→L→I→N→E→ →—→ →r→e→a→s→o→n→ →—→ →F→i→x→:→ →s→u→g→g→e→s→t→i→o→n→ →(→-→X→p→t→s→)→
415
-
416
- →V→e→r→d→i→c→t→:→ → → → → →[→P→A→S→S→ →|→ →F→A→I→L→ →—→ →r→e→q→u→i→r→e→s→ →r→e→d→e→s→i→g→n→]→
417
- →E→x→i→t→ →C→o→d→e→:→ → →[→S→U→C→C→E→S→S→ →|→ →P→A→R→T→I→A→L→ →|→ →F→A→I→L→E→D→]→
418
- →`→`→`→
419
-
420
- →#→#→#→ →`→-→-→r→e→d→e→s→i→g→n→`→
421
- →`→`→`→
422
- →🎨→ →U→I→ →R→e→d→e→s→i→g→n→
423
- →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
424
- →C→o→m→p→o→n→e→n→t→:→ → → →[→C→o→m→p→o→n→e→n→t→N→a→m→e→]→
425
- →O→l→d→ →m→a→c→r→o→s→t→r→u→c→t→u→r→e→:→ →[→o→l→d→ →n→a→m→e→]→
426
- →N→e→w→ →m→a→c→r→o→s→t→r→u→c→t→u→r→e→:→ →[→n→e→w→ →n→a→m→e→]→
427
- →O→l→d→ →t→h→e→m→e→:→ → → →[→o→l→d→ →t→h→e→m→e→]→
428
- →N→e→w→ →t→h→e→m→e→:→ → → →[→n→e→w→ →t→h→e→m→e→]
429
-
430
- →K→e→p→t→:→
431
- →-→ →C→o→p→y→/→I→A→ →s→t→r→u→c→t→u→r→e→
432
- →-→ →B→r→a→n→d→ →c→o→l→o→r→s→
433
- → → →-→ →P→r→i→m→a→r→y→ →u→s→e→r→ →f→l→o→w→
434
-
435
- →C→h→a→n→g→e→d→:→
436
- →-→ →L→a→y→o→u→t→ →f→i→n→g→e→r→p→r→i→n→t→
437
- →-→ →S→e→c→t→i→o→n→ →o→r→d→e→r→i→n→g→
438
- → → →-→ →V→i→s→u→a→l→ →h→i→e→r→a→r→c→h→y→
439
-
440
- →E→x→i→t→ →C→o→d→e→:→ → → →[→S→U→C→C→E→S→S→ →|→ →P→A→R→T→I→A→L→ →|→ →B→L→O→C→K→E→D→ →|→ →F→A→I→L→E→D→]→
441
- →`→`→`→
442
-
443
- →#→#→#→ →`→-→-→s→t→u→d→y→`→
444
- →`→`→`→
445
- →🎨→ →D→e→s→i→g→n→ →S→t→u→d→y→
446
- →─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→─→
447
- →S→o→u→r→c→e→:→ → → → → → →[→s→c→r→e→e→n→s→h→o→t→ →p→a→t→h→ →|→ →U→R→L→]→
448
- →D→N→A→ →e→x→t→r→a→c→t→e→d→:→
449
- →-→ →M→a→c→r→o→s→t→r→u→c→t→u→r→e→:→ →[→n→a→m→e→]→
450
- → → →-→ →T→h→e→m→e→ →a→x→e→s→:→ →[→p→a→p→e→r→ →b→a→n→d→ →/→ →d→i→s→p→l→a→y→ →s→t→y→l→e→ →/→ →a→c→c→e→n→t→ →h→u→e→]→
451
- →-→ →T→y→p→e→ →p→a→i→r→i→n→g→:→ →[→f→o→n→t→1→ →+→ →f→o→n→t→2→]
452
- → →-→ →C→o→l→o→r→ →a→n→c→h→o→r→:→ →[→p→r→i→m→a→r→y→ →/→ →s→e→c→o→n→d→a→r→y→ →/→ →a→c→c→e→n→t→]→
453
-
454
- →O→u→t→p→u→t→:→ →d→e→s→i→g→n→.→m→d→ →w→r→i→t→t→e→n→ →t→o→ →[→p→a→t→h→]
455
- →N→e→x→t→:→ → → → →.→/→q→k→-→u→i→-→b→u→i→l→d→e→r→ →-→-→r→e→d→e→s→i→g→n→ →w→i→t→h→ →e→x→t→r→a→c→t→e→d→ →D→N→A→
456
-
457
- →E→x→i→t→ →C→o→d→e→:→ → → →[→S→U→C→C→E→S→S→ →|→ →B→L→O→C→K→E→D→]→
458
- →`→`→`→
459
-
460
- →-→-→-→
461
-
462
- →#→#→ →E→x→i→t→ →C→o→d→e→s→
463
-
464
- →|→ →C→o→d→e→ →|→ →M→e→a→n→i→n→g→ →|→ →W→h→e→n→ →|→
465
- →|→-→-→-→-→-→-→|→-→-→-→-→-→-→-→-→-→|→-→-→-→-→-→-→|→
466
- →|→ →S→U→C→C→E→S→S→ →|→ →B→u→i→l→d→/→e→d→i→t→/→a→u→d→i→t→/→s→t→u→d→y→ →c→o→m→p→l→e→t→e→d→ →s→u→c→c→e→s→s→f→u→l→l→y→ →|→ →A→l→l→ →c→h→e→c→k→s→ →p→a→s→s→e→d→ →|→
467
- →|→ →P→A→R→T→I→A→L→ →|→ →B→u→i→l→t→ →w→i→t→h→ →m→i→n→o→r→ →g→a→p→s→ →o→r→ →i→n→c→o→m→p→l→e→t→e→ →a→u→d→i→t→ →|→ →B→u→d→g→e→t→ →e→x→h→a→u→s→t→e→d→ →o→r→ →1→-→2→ →f→i→x→e→s→ →p→e→n→d→i→n→g→ →|→
468
- →|→ →B→L→O→C→K→E→D→ →|→ →M→i→s→s→i→n→g→ →D→E→S→I→G→N→.→m→d→,→ →d→e→s→i→g→n→ →r→e→f→e→r→e→n→c→e→,→ →o→r→ →s→c→r→e→e→n→s→h→o→t→ →|→ →C→a→n→n→o→t→ →p→r→o→c→e→e→d→ →|→
469
- →|→ →F→A→I→L→E→D→ →|→ →S→l→o→p→ →t→e→s→t→ →c→r→i→t→i→c→a→l→ →f→a→i→l→u→r→e→ →o→r→ →a→r→c→h→i→t→e→c→t→u→r→a→l→ →c→o→n→f→l→i→c→t→ →|→ →R→e→b→u→i→l→d→ →r→e→q→u→i→r→e→d→ →|→
470
-
471
- →-→-→-→
472
-
473
- →#→#→ →R→e→f→e→r→e→n→c→e→s→
474
-
475
- →-→ →`→r→e→f→e→r→e→n→c→e→s→/→t→h→e→m→e→s→/→`→ →—→ →T→h→e→m→e→ →c→a→t→a→l→o→g→ →(→2→0→ →t→h→e→m→e→s→)→
476
- →-→ →`→r→e→f→e→r→e→n→c→e→s→/→m→a→c→r→o→s→t→r→u→c→t→u→r→e→s→/→`→ →—→ →2→1→ →p→a→g→e→ →s→h→a→p→e→s→
477
- →-→ →`→r→e→f→e→r→e→n→c→e→s→/→s→l→o→p→-→t→e→s→t→.→m→d→`→ →—→ →5→8→ →a→n→t→i→-→s→l→o→p→ →g→a→t→e→s→
478
- →-→ →`→r→e→f→e→r→e→n→c→e→s→/→a→n→t→i→-→p→a→t→t→e→r→n→s→.→m→d→`→ →—→ →N→a→m→e→d→ →t→e→l→l→s→ →t→o→ →a→v→o→i→d→
479
-
480
- →-→-→-→
481
-
482
-
1
+ ---
2
+ # ── Identity ───────────────────────────────────────────────
3
+ name: qk-ui-builder
4
+ version: 9.2.0
5
+ status: stable
6
+ description: "Xây dựng, sửa, audit, hoàn thiện UI component từ Figma/ảnh/mô tả layout responsive, chuẩn token, đầy đủ hover/active/loading states. Dùng skill này khi user nhắc đến: build ui, làm giao diện, css, layout, component, figma, design ui, tạo trang, code giao diện — kể cả khi chỉ gửi ảnh thiết kế hoặc nói 'làm cho tôi cái navbar/card này'."
7
+ platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
+
9
+ # ── V9: Classification ─────────────────────────────────────
10
+ type: capability
11
+
12
+ intent:
13
+ - ui-development
14
+ - frontend-design
15
+
16
+ complexity:
17
+ level: high
18
+ criteria:
19
+ files_affected: "1-10"
20
+ has_behavior_change: true
21
+ has_external_dependency: true
22
+ has_breaking_change: false
23
+
24
+ triggers:
25
+ - "build ui"
26
+ - "làm giao diện"
27
+ - "css"
28
+ - "layout"
29
+ - "component"
30
+ - "figma"
31
+ - "design ui"
32
+ - "tạo trang"
33
+ - "code giao diện"
34
+
35
+
36
+ # ── V8: References ─────────────────────────────────────────
37
+ workflow: feature-delivery
38
+
39
+ rules:
40
+ - global
41
+ - coding
42
+
43
+ tools:
44
+ - filesystem
45
+ - terminal
46
+
47
+ related_skills:
48
+ - qk-ui-system-builder
49
+
50
+ knowledge_scope:
51
+ owns:
52
+ - ui-components
53
+ - styling execution
54
+ - component implementation
55
+ does_not_own:
56
+ - choose product visual direction
57
+ - define brand identity
58
+ - create design system rules
59
+ conflicts_with: []
60
+ references:
61
+ - design-system
62
+
63
+ knowledge_dependencies:
64
+ - design-intelligence
65
+ - component-patterns
66
+
67
+ # ── V8: Verification ───────────────────────────────────────
68
+ verification:
69
+ required: true
70
+ strategy: feature
71
+
72
+ selection:
73
+ priority: medium
74
+ confidence_threshold: 0.80
75
+
76
+ examples: []
77
+ learnings: []
78
+
79
+ # ── V7 Runtime ─────────────────────────────────────────────
80
+ execution_mode: deterministic
81
+ cost: high
82
+ latency: slow
83
+ risk: low
84
+ side_effects: edit_files
85
+ produces: [code, report]
86
+ consumes: [design-md, design-asset, source-code, api-schema]
87
+
88
+ token_budget:
89
+ max_files_read: 5
90
+ max_lines_per_read: 150
91
+ max_shell_commands: 0
92
+ stop_early: true
93
+
94
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
95
+ ---
96
+
97
+ # qk-ui-builder — UI Builder & Auditor
98
+
99
+ > **Language rule:** Code, identifiers, file names English. Explanations, summaries Vietnamese.
100
+
101
+ ---
102
+
103
+ ## Verbs
104
+
105
+ | Verb | Trigger | Behavior |
106
+ |------|---------|----------|
107
+ | *(default)* | `./qk-ui-builder` | Build or edit UI from design reference |
108
+ | `--audit` | `./qk-ui-builder --audit` | Score UI against anti-slop checklist, no edits |
109
+ | `--redesign` | `./qk-ui-builder --redesign` | Rebuild structure, keep copy/IA/brand |
110
+ | `--study` | `./qk-ui-builder --study <screenshot\|URL>` | Extract design DNA `design.md` |
111
+
112
+ ---
113
+
114
+ ## Preconditions
115
+ - [ ] `DESIGN.md` exists with color tokens, spacing scale, typography
116
+ - [ ] For default/edit: design reference or target component specified
117
+ - [ ] For `--audit`: target UI file(s) specified
118
+ - [ ] For `--redesign`: target page + brand/copy context provided
119
+ - [ ] For `--study`: screenshot file or public URL provided
120
+
121
+ ```
122
+ On missing precondition:
123
+ EXIT: BLOCKED
124
+ Message: "[Missing item]. See Escalation Rules."
125
+ ```
126
+
127
+ ---
128
+
129
+ ## Scope
130
+
131
+ ### Default verb
132
+ - ✅ Build new UI from Figma/ảnh/design reference
133
+ - ✅ Sửa text, thêm nội dung, map API key vào component
134
+ - Fix UI bug: padding, màu, hiển thị, responsive
135
+ - Generate strict UI từ DESIGN.md tokens
136
+
137
+ ### `--audit`
138
+ - ✅ Score UI against anti-slop checklist (58 gates)
139
+ - ✅ Detect generic AI aesthetics, hardcoded values
140
+ - Verify ARIA, contrast, responsive states
141
+ - ⚠️ Note: This uses the 58-gate binary slop test (in-build self-check), which is distinct from the point-based scoring in the standalone `qk-ui-audit` skill.
142
+
143
+ ### `--redesign`
144
+ - Thay đổi cấu trúc page, giữ nội dung/IA/brand
145
+ - Pick new macrostructure + theme fingerprint
146
+
147
+ ### `--study`
148
+ - Extract design DNA từ ảnh/Figma/URL
149
+ - Emit portable `design.md` for handoff
150
+
151
+ ## Non-Goals
152
+ - Invent design tokens not in DESIGN.md
153
+ - ❌ Use hardcoded hex colors, px sizes not from token system
154
+ - ❌ Copy generic Tailwind/Bootstrap templates
155
+ - ❌ Skip loading/error/empty states
156
+ - Clone paid templates or violate design copyright
157
+
158
+ ---
159
+
160
+ ## Priority Order
161
+
162
+ | Priority | Task | Skip Threshold |
163
+ |----------|------|----------------|
164
+ | P1 | HTML structure + semantic markup | Never |
165
+ | P2 | DESIGN.md token application (colors, spacing, typography) | Never |
166
+ | P3 | Interactive states (hover, focus, active) | Budget < 30% |
167
+ | P4 | Responsive breakpoints (mobile) | Budget < 50% |
168
+ | P5 | Loading / error / empty states | Budget < 60% |
169
+ | P6 | Animation / micro-interactions | Budget < 70% |
170
+ | P7 | ARIA roles + keyboard navigation | Budget < 80% |
171
+
172
+ ---
173
+
174
+ ## Workflow
175
+
176
+ ### Phase 1 — Route by Verb
177
+
178
+ **Decision:**
179
+ ```
180
+ IF --audit
181
+ Load slop-test gates go to Audit phase
182
+
183
+ ELSE IF --redesign
184
+ Load macrostructure index pick new fingerprint go to Build phase
185
+
186
+ ELSE IF --study
187
+ Load study protocol extract DNA emit design.md EXIT: SUCCESS
188
+
189
+ ELSE (default: build/edit)
190
+ go to Build phase
191
+ ```
192
+
193
+ ---
194
+
195
+ ### Phase 2 — Load Design Context (default/edit/redesign only)
196
+
197
+ **Load Discipline (MANDATORY):**
198
+
199
+ ```
200
+ EAGER (load every build):
201
+ - typography.md
202
+ - color.md
203
+ - layout-and-space.md
204
+ - copy.md
205
+ - anti-patterns.md
206
+
207
+ INDEX-THEN-PICK (load index, choose ONE):
208
+ - macrostructures.md pick ONE load only that file
209
+
210
+ CONDITIONAL (load only if needed):
211
+ - themes/[name].md only if project has locked theme
212
+ - motion.md only if animation requested
213
+ - interaction-and-states.md only if complex interactions
214
+ - responsive.md only if mobile breakpoints needed
215
+ - component-cookbook.md only if building known archetype
216
+
217
+ LOAD-AT-END (post-emit only):
218
+ - slop-test.md run AFTER build completes
219
+ ```
220
+
221
+ **Steps:**
222
+ 1. Read `DESIGN.md` extract tokens: colors (HSL), spacing, fonts, radius, shadows
223
+ 2. Load eager references (typography, color, layout, copy, anti-patterns)
224
+ 3. Check `.agents/memory/ui-diversification.json` for last theme/macrostructure used
225
+ 4. If redesign: read `references/macrostructures.md` index pick ONE different from last load only that file
226
+ 5. If project has locked theme: load `references/themes/[name].md`
227
+
228
+ **Diversification rule:** consecutive builds must use different theme + macrostructure from `ui-diversification.json`.
229
+
230
+ ---
231
+
232
+ ### Phase 3 Build or Edit
233
+
234
+ **Steps:**
235
+ 1. For new UI: create component from design reference using DESIGN.md tokens
236
+ 2. For edit: modify existing component per user request (text, API mapping, layout)
237
+ 3. Apply theme + macrostructure fingerprint
238
+ 4. Handle all 3 UI states: Loading, Success, Error
239
+
240
+ **API mapping rule:**
241
+ - Bind API response to component props via generated TypeScript interfaces
242
+ - NEVER hardcode API URLs in component
243
+ - Use existing API client pattern from project
244
+
245
+ ---
246
+
247
+ ### Phase 4 Self-Audit (Anti-Slop Check)
248
+
249
+ **Checklist (must pass ALL):**
250
+ - [ ] No hardcoded colors only DESIGN.md tokens
251
+ - [ ] No font-size in px without token — use rem/token
252
+ - [ ] No `margin: auto` soup use proper grid/flex
253
+ - [ ] All interactive elements have hover + focus state
254
+ - [ ] Mobile viewport works (no horizontal overflow)
255
+ - [ ] No `!important` overrides (except resets)
256
+ - [ ] No inline styles except dynamic values
257
+ - [ ] Loading state implemented (skeleton or spinner)
258
+ - [ ] Error state implemented (clear message)
259
+ - [ ] Empty state implemented (helpful illustration/text)
260
+
261
+ **Decision:**
262
+ ```
263
+ IF all checks pass
264
+ EXIT: SUCCESS
265
+
266
+ ELSE IF 1–2 minor fails
267
+ Fix immediately, EXIT: SUCCESS
268
+
269
+ ELSE IF > 2 fails OR hardcoded colors found
270
+ Fix all, re-audit, EXIT: PARTIAL if still one gap
271
+ ```
272
+
273
+ ---
274
+
275
+ ### Phase 5 — Slop Test (post-emit)
276
+
277
+ Load `references/slop-test.md` and verify all 58 gates pass.
278
+
279
+ ```
280
+ IF all 58 gates pass
281
+ EXIT: SUCCESS
282
+
283
+ ELSE IF critical gate fails (hardcoded purple gradient, banned font)
284
+ EXIT: FAILED — rebuild required
285
+ ```
286
+
287
+ ---
288
+
289
+ ## Confidence Model
290
+
291
+ | Level | Condition | Action |
292
+ |-------|-----------|--------|
293
+ | HIGH | DESIGN.md complete, design reference clear, API schema provided | Build directly |
294
+ | MEDIUM | Some tokens missing or design reference ambiguous | Note gaps, proceed |
295
+ | LOW | DESIGN.md missing or design reference too vague | EXIT: BLOCKED |
296
+
297
+ ---
298
+
299
+ ## Severity
300
+
301
+ | Level | Definition | Example |
302
+ |-------|-----------|---------|
303
+ | CRITICAL | Hardcoded API URL in component, banned font used | `axios.get("http://localhost")` in JSX |
304
+ | HIGH | Missing error/loading state, hardcoded color not in DESIGN.md | No 500 handler |
305
+ | MEDIUM | Missing hover state, spacing off by 1 unit | Button without focus ring |
306
+ | LOW | Comment missing, minor naming inconsistency | `temp` variable name |
307
+
308
+ ---
309
+
310
+ ## Evidence Format
311
+
312
+ ```
313
+ [SEVERITY] path/to/Component.tsx:LINE
314
+ Category: [TOKEN|SEMANTIC|INTERACTION|RESPONSIVE|STATE|ARIA|SLOP]
315
+ Reason: [specific violation]
316
+ Confidence: HIGH
317
+ Fix: [one-line actionable suggestion]
318
+ Points: -N pts (for audit mode)
319
+ ```
320
+
321
+ ---
322
+
323
+ ## Retry Policy
324
+
325
+ ```
326
+ Build/Edit fails
327
+ └─ Check failure type
328
+ ├─ Token missing infer from DESIGN.md, note assumption
329
+ └─ Design reference unclear EXIT: BLOCKED, ask user
330
+
331
+ Slop test fails
332
+ └─ Critical gate (hardcoded color, banned font)
333
+ └─ EXIT: FAILED — do not ship, rebuild required
334
+ ```
335
+
336
+ ---
337
+
338
+ ## Escalation Rules
339
+
340
+ ```
341
+ BLOCKED: DESIGN.md missing or design reference unclear
342
+ Missing:
343
+ - DESIGN.md with color/spacing/typography tokens
344
+ - Design reference (Figma/ảnh/wireframe)
345
+ - For --study: screenshot or public URL
346
+ Questions:
347
+ 1. Bạn DESIGN.md chưa? (chạy qk-project-bootstrap nếu chưa)
348
+ 2. Design reference là gì? (Figma link / ảnh / mô tả)
349
+ 3. Cho phép tạo DESIGN.md mới không?
350
+ Recommended Assumptions (if proceeding):
351
+ - Use industry-standard: 8px spacing, Inter font, neutral gray palette
352
+ ```
353
+
354
+ ---
355
+
356
+ ## Handoff Contract
357
+
358
+ ### Consumes
359
+ ```json
360
+ {
361
+ "from": "user or qk-orchestrator",
362
+ "required_fields": ["verb", "design_md_path"],
363
+ "optional_fields": ["design_reference", "target_component", "api_schema", "framework"]
364
+ }
365
+ ```
366
+
367
+ ### Produces
368
+ ```json
369
+ {
370
+ "to": "user or qk-ui-audit (if --audit)",
371
+ "output_fields": ["component_files", "tokens_used", "states_implemented", "slop_test_result", "exit_code"]
372
+ }
373
+ ```
374
+
375
+ ---
376
+
377
+ ## Output Format
378
+
379
+ ### Default (build/edit)
380
+ ```
381
+ 🎨 UI Builder
382
+ ─────────────────────────────────────────────────
383
+ Component: [ComponentName]
384
+ Theme: [theme name from references/themes/]
385
+ Macrostructure: [macrostructure name]
386
+
387
+ States implemented:
388
+ Loading / Success / ✅ Error
389
+ ✅ Hover / ✅ Focus / ✅ Active / ✅ Disabled
390
+
391
+ Tokens used:
392
+ - --color-primary-500, --space-4, --font-size-base
393
+
394
+ API Mapping:
395
+ ✅ [endpoint prop] mapped
396
+
397
+ Exit Code: [SUCCESS | PARTIAL | BLOCKED | FAILED]
398
+ ```
399
+
400
+ ### `--audit`
401
+ ```
402
+ 🎨 UI Audit Report
403
+ ─────────────────────────────────────────────────
404
+ Component: [path/to/component]
405
+ Theme: [N/A read-only audit]
406
+
407
+ Scores:
408
+ P1 Accessibility: [X/15]
409
+ P2 Layout: [X/15]
410
+ P3 Typography: [X/15]
411
+ P4 Interactions: [X/15]
412
+ P5 Anti-Slop: [X/15]
413
+ P6 Performance: [X/10]
414
+ ─────────────────
415
+ Total: [X/85] [PASS ≥ 90% | FAIL < 90%]
416
+
417
+ Violations (top priority first):
418
+ [SEVERITY] file:LINE — reason — Fix: suggestion (-Xpts)
419
+
420
+ Verdict: [PASS | FAIL — requires redesign]
421
+ Exit Code: [SUCCESS | PARTIAL | FAILED]
422
+ ```
423
+
424
+ ### `--redesign`
425
+ ```
426
+ 🎨 UI Redesign
427
+ ─────────────────────────────────────────────────
428
+ Component: [ComponentName]
429
+ Old macrostructure: [old name]
430
+ New macrostructure: [new name]
431
+ Old theme: [old theme]
432
+ New theme: [new theme]
433
+
434
+ Kept:
435
+ - Copy/IA structure
436
+ - Brand colors
437
+ - Primary user flow
438
+
439
+ Changed:
440
+ - Layout fingerprint
441
+ - Section ordering
442
+ - Visual hierarchy
443
+
444
+ Exit Code: [SUCCESS | PARTIAL | BLOCKED | FAILED]
445
+ ```
446
+
447
+ ### `--study`
448
+ ```
449
+ 🎨 Design Study
450
+ ─────────────────────────────────────────────────
451
+ Source: [screenshot path | URL]
452
+ DNA extracted:
453
+ - Macrostructure: [name]
454
+ - Theme axes: [paper band / display style / accent hue]
455
+ - Type pairing: [font1 + font2]
456
+ - Color anchor: [primary / secondary / accent]
457
+
458
+ Output: design.md written to [path]
459
+ Next: ./qk-ui-builder --redesign with extracted DNA
460
+
461
+ Exit Code: [SUCCESS | BLOCKED]
462
+ ```
463
+
464
+ ---
465
+
466
+ ## Exit Codes
467
+
468
+ | Code | Meaning | When |
469
+ |------|---------|------|
470
+ | SUCCESS | Build/edit/audit/study completed successfully | All checks passed |
471
+ | PARTIAL | Built with minor gaps or incomplete audit | Budget exhausted or 1-2 fixes pending |
472
+ | BLOCKED | Missing DESIGN.md, design reference, or screenshot | Cannot proceed |
473
+ | FAILED | Slop test critical failure or architectural conflict | Rebuild required |
474
+
475
+ ---
476
+
477
+ ## References
478
+
479
+ - `references/themes/` — Theme catalog (20 themes)
480
+ - `references/macrostructures/` — 21 page shapes
481
+ - `references/slop-test.md` — 58 anti-slop gates
482
+ - `references/anti-patterns.md` — Named tells to avoid
483
+
484
+ ---
485
+
486
+
487
+
488
+
489
+ ---
490
+
491
+ ## Prompt Template — Cách viết yêu cầu để AI build UI đúng ngay
492
+
493
+ ```
494
+ Làm gì: [build / edit / audit / redesign]
495
+ Component: [Tên component hoặc trang cần làm]
496
+ Framework: [React / Vue / Next.js / ...]
497
+ CSS: [Tailwind / SCSS / CSS Modules / ...]
498
+ Tham chiếu: [Link Figma / đính kèm ảnh / mô tả layout]
499
+ Done khi: [Trông như thế nào / hoạt động ra sao]
500
+ ```
501
+
502
+ **Ví dụ đủ thông tin:**
503
+ ```
504
+ Làm gì: build
505
+ Component: ProductCard — hiển thị ảnh, tên, giá, nút Add to Cart
506
+ Framework: React + TypeScript
507
+ CSS: Tailwind CSS
508
+ Tham chiếu: [đính kèm ảnh Figma]
509
+ Done khi: Responsive, có hover state, loading skeleton khi chưa có data
510
+ ```
511
+
512
+ **Ví dụ dùng command với args:**
513
+ ```
514
+ ./qk-ui-builder --fw=react --css=tailwind
515
+ Làm ProductCard theo ảnh đính kèm
516
+ ```
517
+
518
+ **Ví dụ tối giản:**
519
+ ```
520
+ Làm navbar responsive cho app Next.js, logo bên trái, menu bên phải
521
+ ```