@buoy-design/cli 0.1.13 → 0.1.14

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 (78) hide show
  1. package/LICENSE +21 -0
  2. package/dist/commands/begin.d.ts.map +1 -1
  3. package/dist/commands/begin.js +18 -0
  4. package/dist/commands/begin.js.map +1 -1
  5. package/dist/commands/check.d.ts +10 -0
  6. package/dist/commands/check.d.ts.map +1 -1
  7. package/dist/commands/check.js +75 -1
  8. package/dist/commands/check.js.map +1 -1
  9. package/dist/commands/ci.d.ts.map +1 -1
  10. package/dist/commands/ci.js +29 -3
  11. package/dist/commands/ci.js.map +1 -1
  12. package/dist/commands/ci.logic.d.ts +8 -2
  13. package/dist/commands/ci.logic.d.ts.map +1 -1
  14. package/dist/commands/ci.logic.js +17 -3
  15. package/dist/commands/ci.logic.js.map +1 -1
  16. package/dist/commands/context.d.ts +9 -0
  17. package/dist/commands/context.d.ts.map +1 -0
  18. package/dist/commands/context.js +217 -0
  19. package/dist/commands/context.js.map +1 -0
  20. package/dist/commands/fix.d.ts +8 -0
  21. package/dist/commands/fix.d.ts.map +1 -0
  22. package/dist/commands/fix.js +224 -0
  23. package/dist/commands/fix.js.map +1 -0
  24. package/dist/commands/index.d.ts +3 -0
  25. package/dist/commands/index.d.ts.map +1 -1
  26. package/dist/commands/index.js +3 -0
  27. package/dist/commands/index.js.map +1 -1
  28. package/dist/commands/skill.d.ts +9 -0
  29. package/dist/commands/skill.d.ts.map +1 -0
  30. package/dist/commands/skill.js +190 -0
  31. package/dist/commands/skill.js.map +1 -0
  32. package/dist/commands/tokens.d.ts.map +1 -1
  33. package/dist/commands/tokens.js +169 -2
  34. package/dist/commands/tokens.js.map +1 -1
  35. package/dist/fix/applier.d.ts +25 -0
  36. package/dist/fix/applier.d.ts.map +1 -0
  37. package/dist/fix/applier.js +211 -0
  38. package/dist/fix/applier.js.map +1 -0
  39. package/dist/fix/index.d.ts +10 -0
  40. package/dist/fix/index.d.ts.map +1 -0
  41. package/dist/fix/index.js +8 -0
  42. package/dist/fix/index.js.map +1 -0
  43. package/dist/fix/safety.d.ts +30 -0
  44. package/dist/fix/safety.d.ts.map +1 -0
  45. package/dist/fix/safety.js +168 -0
  46. package/dist/fix/safety.js.map +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +59 -13
  49. package/dist/index.js.map +1 -1
  50. package/dist/output/fix-formatters.d.ts +36 -0
  51. package/dist/output/fix-formatters.d.ts.map +1 -0
  52. package/dist/output/fix-formatters.js +247 -0
  53. package/dist/output/fix-formatters.js.map +1 -0
  54. package/dist/output/index.d.ts +1 -0
  55. package/dist/output/index.d.ts.map +1 -1
  56. package/dist/output/index.js +1 -0
  57. package/dist/output/index.js.map +1 -1
  58. package/dist/output/reports.d.ts +154 -0
  59. package/dist/output/reports.d.ts.map +1 -0
  60. package/dist/output/reports.js +392 -0
  61. package/dist/output/reports.js.map +1 -0
  62. package/dist/services/context-generator.d.ts +43 -0
  63. package/dist/services/context-generator.d.ts.map +1 -0
  64. package/dist/services/context-generator.js +252 -0
  65. package/dist/services/context-generator.js.map +1 -0
  66. package/dist/services/skill-export.d.ts +96 -0
  67. package/dist/services/skill-export.d.ts.map +1 -0
  68. package/dist/services/skill-export.js +566 -0
  69. package/dist/services/skill-export.js.map +1 -0
  70. package/dist/wizard/ai-guardrails-generator.d.ts +20 -0
  71. package/dist/wizard/ai-guardrails-generator.d.ts.map +1 -0
  72. package/dist/wizard/ai-guardrails-generator.js +259 -0
  73. package/dist/wizard/ai-guardrails-generator.js.map +1 -0
  74. package/dist/wizard/index.d.ts +1 -0
  75. package/dist/wizard/index.d.ts.map +1 -1
  76. package/dist/wizard/index.js +1 -0
  77. package/dist/wizard/index.js.map +1 -1
  78. package/package.json +15 -15
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Context Generator Service
3
+ *
4
+ * Generates design system context for CLAUDE.md files.
5
+ * Helps AI agents understand and follow design system rules.
6
+ */
7
+ /**
8
+ * Generate design system context for CLAUDE.md
9
+ */
10
+ export function generateContext(data, options = {}) {
11
+ const { detailLevel = 'standard', includeTokens = true, includeComponents = true, includeAntiPatterns = true, includeValidation = true, } = options;
12
+ const sections = [];
13
+ let antiPatternCount = 0;
14
+ // Header
15
+ sections.push(generateHeader(data.projectName));
16
+ // Component Usage
17
+ if (includeComponents && data.components.length > 0) {
18
+ sections.push(generateComponentSection(data.components, detailLevel));
19
+ }
20
+ // Token Requirements
21
+ if (includeTokens && data.tokens.length > 0) {
22
+ sections.push(generateTokenSection(data.tokens, detailLevel));
23
+ }
24
+ // Anti-Patterns
25
+ if (includeAntiPatterns) {
26
+ const antiPatterns = generateAntiPatternSection(data.drifts || [], detailLevel);
27
+ if (antiPatterns) {
28
+ sections.push(antiPatterns);
29
+ antiPatternCount = (data.drifts || []).length;
30
+ }
31
+ }
32
+ // Validation
33
+ if (includeValidation) {
34
+ sections.push(generateValidationSection());
35
+ }
36
+ return {
37
+ content: sections.join('\n\n'),
38
+ stats: {
39
+ tokenCount: data.tokens.length,
40
+ componentCount: data.components.length,
41
+ antiPatternCount,
42
+ },
43
+ };
44
+ }
45
+ /**
46
+ * Generate context header
47
+ */
48
+ function generateHeader(projectName) {
49
+ return `## Design System Rules
50
+
51
+ This project uses the ${projectName} Design System. Follow these rules when generating code:`;
52
+ }
53
+ /**
54
+ * Generate component usage section
55
+ */
56
+ function generateComponentSection(components, detailLevel) {
57
+ const lines = ['### Component Usage'];
58
+ lines.push('');
59
+ // Group by framework
60
+ const byFramework = groupByFramework(components);
61
+ const frameworks = Object.keys(byFramework);
62
+ if (frameworks.length === 1) {
63
+ const framework = frameworks[0];
64
+ const comps = byFramework[framework];
65
+ lines.push(`Use components from your ${framework} component library. Check before creating new ones:`);
66
+ lines.push('');
67
+ lines.push(formatComponentList(comps, detailLevel));
68
+ }
69
+ else {
70
+ lines.push('Use existing components from your component libraries:');
71
+ lines.push('');
72
+ for (const framework of frameworks) {
73
+ const comps = byFramework[framework];
74
+ lines.push(`**${capitalize(framework)}:** ${formatComponentList(comps, detailLevel)}`);
75
+ }
76
+ }
77
+ if (detailLevel !== 'minimal') {
78
+ lines.push('');
79
+ lines.push('See full inventory: `buoy status --components`');
80
+ }
81
+ return lines.join('\n');
82
+ }
83
+ /**
84
+ * Generate token requirements section
85
+ */
86
+ function generateTokenSection(tokens, detailLevel) {
87
+ const lines = ['### Token Requirements'];
88
+ lines.push('');
89
+ lines.push('**NEVER hardcode these values:**');
90
+ // Group tokens by category
91
+ const byCategory = groupByCategory(tokens);
92
+ if (byCategory.color && byCategory.color.length > 0) {
93
+ lines.push(`- Colors: Use design tokens or utility classes`);
94
+ }
95
+ if (byCategory.spacing && byCategory.spacing.length > 0) {
96
+ lines.push(`- Spacing: Use spacing scale tokens`);
97
+ }
98
+ if (byCategory.typography && byCategory.typography.length > 0) {
99
+ lines.push(`- Typography: Use font tokens`);
100
+ }
101
+ // Quick reference for standard/comprehensive
102
+ if (detailLevel !== 'minimal') {
103
+ lines.push('');
104
+ lines.push('**Quick Reference:**');
105
+ // Show sample tokens
106
+ if (byCategory.color) {
107
+ const samples = byCategory.color.slice(0, 3);
108
+ for (const token of samples) {
109
+ const value = formatTokenValue(token);
110
+ lines.push(`- ${token.name}: ${value}`);
111
+ }
112
+ }
113
+ if (byCategory.spacing) {
114
+ const spacingValues = byCategory.spacing
115
+ .map((t) => formatTokenValue(t))
116
+ .slice(0, 8)
117
+ .join(', ');
118
+ lines.push(`- Spacing scale: ${spacingValues}`);
119
+ }
120
+ }
121
+ // Comprehensive: show all tokens
122
+ if (detailLevel === 'comprehensive') {
123
+ lines.push('');
124
+ lines.push('**All Tokens:**');
125
+ lines.push('');
126
+ lines.push('| Token | Value | Category |');
127
+ lines.push('|-------|-------|----------|');
128
+ for (const token of tokens.slice(0, 50)) {
129
+ const value = formatTokenValue(token);
130
+ lines.push(`| \`${token.name}\` | ${value} | ${token.category} |`);
131
+ }
132
+ if (tokens.length > 50) {
133
+ lines.push(`| ... | ${tokens.length - 50} more tokens | ... |`);
134
+ }
135
+ }
136
+ return lines.join('\n');
137
+ }
138
+ /**
139
+ * Generate anti-patterns section
140
+ */
141
+ function generateAntiPatternSection(drifts, detailLevel) {
142
+ const lines = ['### Anti-Patterns'];
143
+ lines.push('');
144
+ lines.push('AVOID:');
145
+ // Common anti-patterns always included
146
+ const commonAntiPatterns = [
147
+ '- `<div onClick>` - Use `<Button>` or semantic elements',
148
+ '- Inline styles for colors/spacing - Use tokens or classes',
149
+ '- Creating component variants that already exist',
150
+ '- Arbitrary values (e.g., `p-[13px]`) - Use scale values',
151
+ ];
152
+ lines.push(...commonAntiPatterns);
153
+ // Add project-specific anti-patterns from drift signals
154
+ if (detailLevel !== 'minimal' && drifts.length > 0) {
155
+ const hardcodedTypes = new Set();
156
+ for (const drift of drifts) {
157
+ if (drift.type === 'hardcoded-value') {
158
+ // Extract the type of hardcoded value
159
+ const typeMatch = drift.message.match(/hardcoded (color|spacing|font|radius)/i);
160
+ if (typeMatch) {
161
+ hardcodedTypes.add(typeMatch[1].toLowerCase());
162
+ }
163
+ }
164
+ }
165
+ if (hardcodedTypes.size > 0) {
166
+ lines.push('');
167
+ lines.push('**Detected issues in this codebase:**');
168
+ for (const type of hardcodedTypes) {
169
+ lines.push(`- Hardcoded ${type} values found - use tokens instead`);
170
+ }
171
+ }
172
+ }
173
+ return lines.join('\n');
174
+ }
175
+ /**
176
+ * Generate validation section
177
+ */
178
+ function generateValidationSection() {
179
+ return `### Validation
180
+
181
+ Run before committing:
182
+ \`\`\`bash
183
+ buoy check # Quick validation
184
+ buoy drift check # Detailed drift analysis
185
+ buoy fix --dry-run # See suggested fixes
186
+ \`\`\``;
187
+ }
188
+ // Helper functions
189
+ function groupByFramework(components) {
190
+ const groups = {};
191
+ for (const comp of components) {
192
+ const framework = comp.source.type;
193
+ if (!groups[framework]) {
194
+ groups[framework] = [];
195
+ }
196
+ groups[framework].push(comp);
197
+ }
198
+ return groups;
199
+ }
200
+ function groupByCategory(tokens) {
201
+ const groups = {};
202
+ for (const token of tokens) {
203
+ if (!groups[token.category]) {
204
+ groups[token.category] = [];
205
+ }
206
+ groups[token.category].push(token);
207
+ }
208
+ return groups;
209
+ }
210
+ function formatComponentList(components, detailLevel) {
211
+ const names = [...new Set(components.map((c) => c.name))].sort();
212
+ if (detailLevel === 'minimal') {
213
+ return names.slice(0, 10).join(', ') + (names.length > 10 ? '...' : '');
214
+ }
215
+ if (detailLevel === 'standard') {
216
+ return names.slice(0, 20).join(', ') + (names.length > 20 ? ` (+${names.length - 20} more)` : '');
217
+ }
218
+ // Comprehensive
219
+ return names.join(', ');
220
+ }
221
+ function formatTokenValue(token) {
222
+ const value = token.value;
223
+ if (value.type === 'color') {
224
+ return value.hex;
225
+ }
226
+ if (value.type === 'spacing') {
227
+ return `${value.value}${value.unit}`;
228
+ }
229
+ if (value.type === 'typography') {
230
+ return `${value.fontFamily} ${value.fontSize}`;
231
+ }
232
+ if (value.type === 'raw') {
233
+ return String(value.value);
234
+ }
235
+ return '(complex)';
236
+ }
237
+ function capitalize(str) {
238
+ return str.charAt(0).toUpperCase() + str.slice(1);
239
+ }
240
+ /**
241
+ * Generate minimal context (for quick reference)
242
+ */
243
+ export function generateMinimalContext(data) {
244
+ return generateContext(data, { detailLevel: 'minimal' }).content;
245
+ }
246
+ /**
247
+ * Generate comprehensive context (for full documentation)
248
+ */
249
+ export function generateComprehensiveContext(data) {
250
+ return generateContext(data, { detailLevel: 'comprehensive' }).content;
251
+ }
252
+ //# sourceMappingURL=context-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-generator.js","sourceRoot":"","sources":["../../src/services/context-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * SkillExportService - Generate design system skills for AI agents
3
+ *
4
+ * Exports tokens, components, patterns, and anti-patterns as markdown files
5
+ * optimized for progressive disclosure in AI agent workflows.
6
+ */
7
+ import type { Component, DesignToken, DriftSignal } from '@buoy-design/core';
8
+ export interface SkillExportOptions {
9
+ /** Sections to include in export */
10
+ sections: string[];
11
+ /** Output directory path */
12
+ outputPath: string;
13
+ }
14
+ export interface ScanData {
15
+ tokens: DesignToken[];
16
+ components: Component[];
17
+ drifts: DriftSignal[];
18
+ projectName: string;
19
+ }
20
+ export interface SkillExportResult {
21
+ /** Files to write */
22
+ files: Array<{
23
+ path: string;
24
+ content: string;
25
+ }>;
26
+ /** Statistics about exported content */
27
+ stats: {
28
+ tokens: {
29
+ colors: number;
30
+ spacing: number;
31
+ typography: number;
32
+ total: number;
33
+ };
34
+ components: number;
35
+ patterns: string[];
36
+ };
37
+ }
38
+ /**
39
+ * Service for exporting design system data as AI agent skills
40
+ */
41
+ export declare class SkillExportService {
42
+ constructor(_projectName: string);
43
+ /**
44
+ * Export design system data as skill files
45
+ */
46
+ export(data: ScanData, options: SkillExportOptions): Promise<SkillExportResult>;
47
+ /**
48
+ * Generate the main SKILL.md entry point
49
+ */
50
+ generateSkillMd(data: ScanData): string;
51
+ /**
52
+ * Generate tokens index with category counts
53
+ */
54
+ generateTokensIndex(tokens: DesignToken[]): string;
55
+ /**
56
+ * Generate color tokens markdown
57
+ */
58
+ generateColorTokens(tokens: DesignToken[]): string;
59
+ /**
60
+ * Generate spacing tokens markdown
61
+ */
62
+ generateSpacingTokens(tokens: DesignToken[]): string;
63
+ /**
64
+ * Generate typography tokens markdown
65
+ */
66
+ generateTypographyTokens(tokens: DesignToken[]): string;
67
+ /**
68
+ * Generate component inventory markdown
69
+ */
70
+ generateComponentInventory(components: Component[]): string;
71
+ /**
72
+ * Generate patterns index based on component names
73
+ */
74
+ generatePatternsIndex(components: Component[]): string;
75
+ /**
76
+ * Generate anti-patterns from drift signals
77
+ */
78
+ generateAntiPatterns(drifts: DriftSignal[]): string;
79
+ /**
80
+ * Detect patterns from component names
81
+ */
82
+ private detectPatterns;
83
+ /**
84
+ * Get components that match a pattern
85
+ */
86
+ private getComponentsForPattern;
87
+ /**
88
+ * Capitalize pattern name for display
89
+ */
90
+ private capitalizePattern;
91
+ /**
92
+ * Format drift type for display
93
+ */
94
+ private formatDriftType;
95
+ }
96
+ //# sourceMappingURL=skill-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-export.d.ts","sourceRoot":"","sources":["../../src/services/skill-export.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG7E,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,wCAAwC;IACxC,KAAK,EAAE;QACL,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,kBAAkB;gBACjB,YAAY,EAAE,MAAM;IAKhC;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IA8E7B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAkFvC;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM;IA6DlD;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM;IA+ClD;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM;IAiDpD;;OAEG;IACH,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM;IAgDvD;;OAEG;IACH,0BAA0B,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;IAiD3D;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;IA6CtD;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM;IA2DnD;;OAEG;IACH,OAAO,CAAC,cAAc;IA0DtB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAMxB"}