@calibrate-ds/cli 0.1.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 (201) hide show
  1. package/dist/__tests__/component-slug.test.d.ts +2 -0
  2. package/dist/__tests__/component-slug.test.d.ts.map +1 -0
  3. package/dist/__tests__/component-slug.test.js +54 -0
  4. package/dist/__tests__/component-slug.test.js.map +1 -0
  5. package/dist/__tests__/lock-changes.test.d.ts +2 -0
  6. package/dist/__tests__/lock-changes.test.d.ts.map +1 -0
  7. package/dist/__tests__/lock-changes.test.js +81 -0
  8. package/dist/__tests__/lock-changes.test.js.map +1 -0
  9. package/dist/__tests__/permissions.test.d.ts +2 -0
  10. package/dist/__tests__/permissions.test.d.ts.map +1 -0
  11. package/dist/__tests__/permissions.test.js +67 -0
  12. package/dist/__tests__/permissions.test.js.map +1 -0
  13. package/dist/__tests__/stamp-in-lock.test.d.ts +2 -0
  14. package/dist/__tests__/stamp-in-lock.test.d.ts.map +1 -0
  15. package/dist/__tests__/stamp-in-lock.test.js +102 -0
  16. package/dist/__tests__/stamp-in-lock.test.js.map +1 -0
  17. package/dist/__tests__/status-logic.test.d.ts +2 -0
  18. package/dist/__tests__/status-logic.test.d.ts.map +1 -0
  19. package/dist/__tests__/status-logic.test.js +74 -0
  20. package/dist/__tests__/status-logic.test.js.map +1 -0
  21. package/dist/__tests__/team-roster.test.d.ts +2 -0
  22. package/dist/__tests__/team-roster.test.d.ts.map +1 -0
  23. package/dist/__tests__/team-roster.test.js +97 -0
  24. package/dist/__tests__/team-roster.test.js.map +1 -0
  25. package/dist/ai/claude-provider.d.ts +13 -0
  26. package/dist/ai/claude-provider.d.ts.map +1 -0
  27. package/dist/ai/claude-provider.js +335 -0
  28. package/dist/ai/claude-provider.js.map +1 -0
  29. package/dist/ai/enhance-doc.d.ts +24 -0
  30. package/dist/ai/enhance-doc.d.ts.map +1 -0
  31. package/dist/ai/enhance-doc.js +272 -0
  32. package/dist/ai/enhance-doc.js.map +1 -0
  33. package/dist/ai/openai-provider.d.ts +13 -0
  34. package/dist/ai/openai-provider.d.ts.map +1 -0
  35. package/dist/ai/openai-provider.js +345 -0
  36. package/dist/ai/openai-provider.js.map +1 -0
  37. package/dist/ai/prompt-utils.d.ts +23 -0
  38. package/dist/ai/prompt-utils.d.ts.map +1 -0
  39. package/dist/ai/prompt-utils.js +67 -0
  40. package/dist/ai/prompt-utils.js.map +1 -0
  41. package/dist/commands/ai.d.ts +8 -0
  42. package/dist/commands/ai.d.ts.map +1 -0
  43. package/dist/commands/ai.js +576 -0
  44. package/dist/commands/ai.js.map +1 -0
  45. package/dist/commands/apply.d.ts +4 -0
  46. package/dist/commands/apply.d.ts.map +1 -0
  47. package/dist/commands/apply.js +98 -0
  48. package/dist/commands/apply.js.map +1 -0
  49. package/dist/commands/assign.d.ts +5 -0
  50. package/dist/commands/assign.d.ts.map +1 -0
  51. package/dist/commands/assign.js +180 -0
  52. package/dist/commands/assign.js.map +1 -0
  53. package/dist/commands/ci.d.ts +4 -0
  54. package/dist/commands/ci.d.ts.map +1 -0
  55. package/dist/commands/ci.js +84 -0
  56. package/dist/commands/ci.js.map +1 -0
  57. package/dist/commands/context.d.ts +19 -0
  58. package/dist/commands/context.d.ts.map +1 -0
  59. package/dist/commands/context.js +297 -0
  60. package/dist/commands/context.js.map +1 -0
  61. package/dist/commands/diff.d.ts +2 -0
  62. package/dist/commands/diff.d.ts.map +1 -0
  63. package/dist/commands/diff.js +119 -0
  64. package/dist/commands/diff.js.map +1 -0
  65. package/dist/commands/doctor.d.ts +5 -0
  66. package/dist/commands/doctor.d.ts.map +1 -0
  67. package/dist/commands/doctor.js +348 -0
  68. package/dist/commands/doctor.js.map +1 -0
  69. package/dist/commands/document-system.d.ts +5 -0
  70. package/dist/commands/document-system.d.ts.map +1 -0
  71. package/dist/commands/document-system.js +84 -0
  72. package/dist/commands/document-system.js.map +1 -0
  73. package/dist/commands/document.d.ts +6 -0
  74. package/dist/commands/document.d.ts.map +1 -0
  75. package/dist/commands/document.js +276 -0
  76. package/dist/commands/document.js.map +1 -0
  77. package/dist/commands/export.d.ts +11 -0
  78. package/dist/commands/export.d.ts.map +1 -0
  79. package/dist/commands/export.js +74 -0
  80. package/dist/commands/export.js.map +1 -0
  81. package/dist/commands/generate-components.d.ts +4 -0
  82. package/dist/commands/generate-components.d.ts.map +1 -0
  83. package/dist/commands/generate-components.js +62 -0
  84. package/dist/commands/generate-components.js.map +1 -0
  85. package/dist/commands/generate-composites.d.ts +2 -0
  86. package/dist/commands/generate-composites.d.ts.map +1 -0
  87. package/dist/commands/generate-composites.js +31 -0
  88. package/dist/commands/generate-composites.js.map +1 -0
  89. package/dist/commands/generate-tokens.d.ts +2 -0
  90. package/dist/commands/generate-tokens.d.ts.map +1 -0
  91. package/dist/commands/generate-tokens.js +48 -0
  92. package/dist/commands/generate-tokens.js.map +1 -0
  93. package/dist/commands/help-topics.d.ts +2 -0
  94. package/dist/commands/help-topics.d.ts.map +1 -0
  95. package/dist/commands/help-topics.js +324 -0
  96. package/dist/commands/help-topics.js.map +1 -0
  97. package/dist/commands/implement.d.ts +5 -0
  98. package/dist/commands/implement.d.ts.map +1 -0
  99. package/dist/commands/implement.js +595 -0
  100. package/dist/commands/implement.js.map +1 -0
  101. package/dist/commands/import-tokens.d.ts +2 -0
  102. package/dist/commands/import-tokens.d.ts.map +1 -0
  103. package/dist/commands/import-tokens.js +42 -0
  104. package/dist/commands/import-tokens.js.map +1 -0
  105. package/dist/commands/init.d.ts +6 -0
  106. package/dist/commands/init.d.ts.map +1 -0
  107. package/dist/commands/init.js +410 -0
  108. package/dist/commands/init.js.map +1 -0
  109. package/dist/commands/inspect-component.d.ts +2 -0
  110. package/dist/commands/inspect-component.d.ts.map +1 -0
  111. package/dist/commands/inspect-component.js +146 -0
  112. package/dist/commands/inspect-component.js.map +1 -0
  113. package/dist/commands/log.d.ts +4 -0
  114. package/dist/commands/log.d.ts.map +1 -0
  115. package/dist/commands/log.js +109 -0
  116. package/dist/commands/log.js.map +1 -0
  117. package/dist/commands/onboarding.d.ts +9 -0
  118. package/dist/commands/onboarding.d.ts.map +1 -0
  119. package/dist/commands/onboarding.js +63 -0
  120. package/dist/commands/onboarding.js.map +1 -0
  121. package/dist/commands/plan.d.ts +3 -0
  122. package/dist/commands/plan.d.ts.map +1 -0
  123. package/dist/commands/plan.js +108 -0
  124. package/dist/commands/plan.js.map +1 -0
  125. package/dist/commands/prompt.d.ts +5 -0
  126. package/dist/commands/prompt.d.ts.map +1 -0
  127. package/dist/commands/prompt.js +77 -0
  128. package/dist/commands/prompt.js.map +1 -0
  129. package/dist/commands/prune.d.ts +2 -0
  130. package/dist/commands/prune.d.ts.map +1 -0
  131. package/dist/commands/prune.js +95 -0
  132. package/dist/commands/prune.js.map +1 -0
  133. package/dist/commands/remove.d.ts +2 -0
  134. package/dist/commands/remove.d.ts.map +1 -0
  135. package/dist/commands/remove.js +76 -0
  136. package/dist/commands/remove.js.map +1 -0
  137. package/dist/commands/scaffold.d.ts +2 -0
  138. package/dist/commands/scaffold.d.ts.map +1 -0
  139. package/dist/commands/scaffold.js +47 -0
  140. package/dist/commands/scaffold.js.map +1 -0
  141. package/dist/commands/scan.d.ts +2 -0
  142. package/dist/commands/scan.d.ts.map +1 -0
  143. package/dist/commands/scan.js +91 -0
  144. package/dist/commands/scan.js.map +1 -0
  145. package/dist/commands/stamp.d.ts +11 -0
  146. package/dist/commands/stamp.d.ts.map +1 -0
  147. package/dist/commands/stamp.js +147 -0
  148. package/dist/commands/stamp.js.map +1 -0
  149. package/dist/commands/status.d.ts +7 -0
  150. package/dist/commands/status.d.ts.map +1 -0
  151. package/dist/commands/status.js +219 -0
  152. package/dist/commands/status.js.map +1 -0
  153. package/dist/commands/team.d.ts +7 -0
  154. package/dist/commands/team.d.ts.map +1 -0
  155. package/dist/commands/team.js +173 -0
  156. package/dist/commands/team.js.map +1 -0
  157. package/dist/index.d.ts +3 -0
  158. package/dist/index.d.ts.map +1 -0
  159. package/dist/index.js +303 -0
  160. package/dist/index.js.map +1 -0
  161. package/dist/onboarding/content.d.ts +39 -0
  162. package/dist/onboarding/content.d.ts.map +1 -0
  163. package/dist/onboarding/content.js +82 -0
  164. package/dist/onboarding/content.js.map +1 -0
  165. package/dist/utils/component-slug.d.ts +10 -0
  166. package/dist/utils/component-slug.d.ts.map +1 -0
  167. package/dist/utils/component-slug.js +13 -0
  168. package/dist/utils/component-slug.js.map +1 -0
  169. package/dist/utils/framework-registry.d.ts +41 -0
  170. package/dist/utils/framework-registry.d.ts.map +1 -0
  171. package/dist/utils/framework-registry.js +82 -0
  172. package/dist/utils/framework-registry.js.map +1 -0
  173. package/dist/utils/gitignore.d.ts +4 -0
  174. package/dist/utils/gitignore.d.ts.map +1 -0
  175. package/dist/utils/gitignore.js +67 -0
  176. package/dist/utils/gitignore.js.map +1 -0
  177. package/dist/utils/lock-changes.d.ts +14 -0
  178. package/dist/utils/lock-changes.d.ts.map +1 -0
  179. package/dist/utils/lock-changes.js +26 -0
  180. package/dist/utils/lock-changes.js.map +1 -0
  181. package/dist/utils/logger.d.ts +9 -0
  182. package/dist/utils/logger.d.ts.map +1 -0
  183. package/dist/utils/logger.js +32 -0
  184. package/dist/utils/logger.js.map +1 -0
  185. package/dist/utils/permissions.d.ts +17 -0
  186. package/dist/utils/permissions.d.ts.map +1 -0
  187. package/dist/utils/permissions.js +37 -0
  188. package/dist/utils/permissions.js.map +1 -0
  189. package/dist/utils/status-logic.d.ts +16 -0
  190. package/dist/utils/status-logic.d.ts.map +1 -0
  191. package/dist/utils/status-logic.js +32 -0
  192. package/dist/utils/status-logic.js.map +1 -0
  193. package/dist/utils/storybook-setup.d.ts +5 -0
  194. package/dist/utils/storybook-setup.d.ts.map +1 -0
  195. package/dist/utils/storybook-setup.js +104 -0
  196. package/dist/utils/storybook-setup.js.map +1 -0
  197. package/dist/utils/team-roster.d.ts +35 -0
  198. package/dist/utils/team-roster.d.ts.map +1 -0
  199. package/dist/utils/team-roster.js +99 -0
  200. package/dist/utils/team-roster.js.map +1 -0
  201. package/package.json +44 -0
@@ -0,0 +1,324 @@
1
+ const RESET = "\x1b[0m";
2
+ const BOLD = "\x1b[1m";
3
+ const DIM = "\x1b[2m";
4
+ const CYAN = "\x1b[36m";
5
+ const YELLOW = "\x1b[33m";
6
+ const GREEN = "\x1b[32m";
7
+ function h(text) { return `\n${BOLD}${text}${RESET}`; }
8
+ function cmd(text) { return ` ${CYAN}${text}${RESET}`; }
9
+ function note(text) { return ` ${DIM}${text}${RESET}`; }
10
+ function ex(text) { return ` ${GREEN}$ ${text}${RESET}`; }
11
+ function warn(text) { return ` ${YELLOW}${text}${RESET}`; }
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ const topics = {
14
+ setup: {
15
+ title: "Project Setup & Scanning",
16
+ body: () => [
17
+ h("What it does"),
18
+ note("Bootstrap a project, fetch the Figma design system, and generate the initial"),
19
+ note("component shells and design tokens."),
20
+ h("Commands"),
21
+ cmd("ptb init"),
22
+ note(" Create ptb.config.json interactively. Re-run safely — preserves existing Figma key."),
23
+ cmd("ptb scan"),
24
+ note(" Fetch the Figma file and save a snapshot to .ptb/latest.json."),
25
+ cmd("ptb generate-components [name]"),
26
+ note(" Scaffold typed React shells from the snapshot. Use '.' for all."),
27
+ cmd("ptb generate-tokens"),
28
+ note(" Write CSS/TS design tokens from the snapshot."),
29
+ cmd("ptb generate components [name]"),
30
+ cmd("ptb generate tokens"),
31
+ note(" Clean aliases for the above two."),
32
+ cmd("ptb import-tokens <path>"),
33
+ note(" Import a token JSON file exported by Figma / Calibrate plugin."),
34
+ h("Typical first-run flow"),
35
+ ex("ptb init"),
36
+ ex("ptb scan"),
37
+ ex("ptb generate-components"),
38
+ ex("ptb generate-tokens"),
39
+ h("Notes"),
40
+ note("• ptb.config.json is committed to git; .ptb/ is gitignored."),
41
+ note("• Re-running ptb scan always overwrites .ptb/latest.json with the latest Figma state."),
42
+ note("• Figma token is read from the env var named in figma.accessTokenEnv."),
43
+ ].join("\n"),
44
+ },
45
+ context: {
46
+ title: "Design Context",
47
+ body: () => [
48
+ h("What it does"),
49
+ note("Inspect rich design intent for any component — variants, token bindings, interaction"),
50
+ note("contracts, typography, and more. This is the data AI uses when implementing."),
51
+ h("Commands"),
52
+ cmd("ptb context component <name>"),
53
+ note(" Print full design context. Use '.' for a summary table of all components."),
54
+ cmd("ptb context component <name> --json"),
55
+ note(" Machine-readable JSON output."),
56
+ cmd("ptb context list"),
57
+ note(" List all exported context files in .ptb/context/."),
58
+ cmd("ptb context resolve <query>"),
59
+ note(" Resolve a fuzzy component name to its context file path."),
60
+ cmd("ptb context open <query>"),
61
+ note(" Print only the file path (useful for piping into an editor)."),
62
+ cmd("ptb export context"),
63
+ note(" Write all component contexts to .ptb/context/. Commit these for AI IDEs."),
64
+ cmd("ptb export context component <name>"),
65
+ note(" Export context for a single component."),
66
+ h("Typical usage"),
67
+ ex("ptb context component Button"),
68
+ ex("ptb export context"),
69
+ ex("git add .ptb/context && git commit -m 'chore: export PTB context'"),
70
+ h("Notes"),
71
+ note("• Context is derived from .ptb/latest.json — run ptb scan first."),
72
+ note("• The contextHash in each file drives ptb status freshness checks."),
73
+ ].join("\n"),
74
+ },
75
+ implement: {
76
+ title: "AI Implementation",
77
+ body: () => [
78
+ h("What it does"),
79
+ note("Use AI to write component implementations from design context. Also plan, prompt,"),
80
+ note("apply, and clean up generated files."),
81
+ h("Commands"),
82
+ cmd("ptb implement component <name>"),
83
+ note(" AI-write a component. Use '.' to implement all in sequence."),
84
+ cmd("ptb implement component <name> --force"),
85
+ note(" Overwrite an existing implementation."),
86
+ cmd("ptb prompt component <name>"),
87
+ note(" Print the AI prompt that would be sent — review before implementing."),
88
+ cmd("ptb prompt component <name> --format json"),
89
+ note(" Output prompt as structured JSON."),
90
+ cmd("ptb plan"),
91
+ note(" List files likely affected by recent design changes."),
92
+ cmd("ptb plan implement <name>"),
93
+ note(" Check implementation readiness for a specific component."),
94
+ cmd("ptb apply"),
95
+ note(" Regenerate only the files affected by design changes since last stamp."),
96
+ cmd("ptb apply --prune"),
97
+ note(" Also remove stale generated folders during apply."),
98
+ cmd("ptb prune"),
99
+ note(" Remove generated folders for components no longer in the design system."),
100
+ h("Typical usage"),
101
+ ex("ptb ai setup # connect an AI provider first"),
102
+ ex("ptb implement component Button"),
103
+ ex("ptb stamp component Button # mark as implemented"),
104
+ ex("ptb implement component . # implement everything"),
105
+ h("Notes"),
106
+ note("• Requires an AI provider. Run: ptb help ai"),
107
+ note("• ptb prompt lets you review exactly what gets sent before spending tokens."),
108
+ note("• ptb apply is safer than running implement . after a partial design change."),
109
+ ].join("\n"),
110
+ },
111
+ document: {
112
+ title: "Documentation Generation",
113
+ body: () => [
114
+ h("What it does"),
115
+ note("Generate MDX documentation, Storybook stories, and system-level AI context files"),
116
+ note("directly from the design system snapshot."),
117
+ h("Commands"),
118
+ cmd("ptb document component <name>"),
119
+ note(" Generate docs for a component. Use '.' for all."),
120
+ cmd("ptb document component <name> --format <mdx|stories|both>"),
121
+ note(" Choose what to generate. Saved to config after first run."),
122
+ cmd("ptb document component <name> --no-ai"),
123
+ note(" Skip AI prose — output deterministic tables and prop lists only."),
124
+ cmd("ptb document component <name> --force"),
125
+ note(" Overwrite existing docs."),
126
+ cmd("ptb document system"),
127
+ note(" Write CLAUDE.md and components.md at the DS package root."),
128
+ cmd("ptb document system --no-ai"),
129
+ note(" Deterministic version of system docs, no AI calls."),
130
+ h("Typical usage"),
131
+ ex("ptb document component Button --format both"),
132
+ ex("ptb document component ."),
133
+ ex("ptb document system"),
134
+ h("Output locations"),
135
+ note("• MDX → <componentDir>/<ComponentName>.stories.mdx"),
136
+ note("• Stories → <componentDir>/<ComponentName>.stories.tsx"),
137
+ note("• System → <dsPackageRoot>/CLAUDE.md + components.md"),
138
+ h("Notes"),
139
+ note("• Storybook must be initialized for stories output. PTB walks up for hoisted deps."),
140
+ note("• --format choice is saved to ptb.config.json and skipped on subsequent runs."),
141
+ ].join("\n"),
142
+ },
143
+ status: {
144
+ title: "Component Status & Tracking",
145
+ body: () => [
146
+ h("What it does"),
147
+ note("Track which components are implemented, stale, or pending. Assign work to"),
148
+ note("developers and stamp components when they match the design."),
149
+ h("Commands"),
150
+ cmd("ptb status"),
151
+ note(" Show freshness of all components (ready / stale / not-implemented)."),
152
+ cmd("ptb status --mine"),
153
+ note(" Show only components assigned to you."),
154
+ cmd("ptb status --team"),
155
+ note(" Show workload grouped by assignee."),
156
+ cmd("ptb status --fail-on-stale"),
157
+ note(" Exit 1 if anything is stale — use in CI."),
158
+ cmd("ptb status --json"),
159
+ note(" Machine-readable output."),
160
+ cmd("ptb diff"),
161
+ note(" Show design changes not yet stamped."),
162
+ cmd("ptb log"),
163
+ note(" History of design changes and stamps from git. -n <number> to limit."),
164
+ cmd("ptb stamp component <name>"),
165
+ note(" Record that a component matches the current design. Use '.' for all."),
166
+ cmd("ptb stamp component <name> -m \"message\""),
167
+ note(" Attach a note to the stamp."),
168
+ cmd("ptb assign <name> [person]"),
169
+ note(" Assign a component to a developer. Defaults to yourself."),
170
+ cmd("ptb assign <name> --clear"),
171
+ note(" Remove the assignment."),
172
+ h("Typical usage"),
173
+ ex("ptb status"),
174
+ ex("ptb assign Button @alice"),
175
+ ex("ptb assign . @alice # assign all pending to alice"),
176
+ ex("ptb stamp component Button -m 'matches Figma v3'"),
177
+ h("Notes"),
178
+ note("• Stamps and assignments are stored in ptb.lock — commit it."),
179
+ note("• Only leads can assign to others or clear others' assignments."),
180
+ note("• ptb status --fail-on-stale is the right thing to run in GitHub Actions."),
181
+ ].join("\n"),
182
+ },
183
+ team: {
184
+ title: "Team Roster & Roles",
185
+ body: () => [
186
+ h("What it does"),
187
+ note("Manage who is on the team, what role they have, and how work is distributed."),
188
+ note("Roles govern which commands require lead access."),
189
+ h("Commands"),
190
+ cmd("ptb join"),
191
+ note(" Register yourself in ptb-team.json. First person to join becomes lead."),
192
+ cmd("ptb team"),
193
+ note(" Show the roster: handles, names, roles, stamp counts, assigned counts."),
194
+ cmd("ptb team role <handle> <lead|member>"),
195
+ note(" Promote or demote a team member. Leads only."),
196
+ h("Roles"),
197
+ note(` ${YELLOW}lead${RESET} Can assign to others, reassign, stamp others' work, set up CI, remove PTB.`),
198
+ note(` ${DIM}member${RESET} Can self-assign, stamp their own assigned components, and join.`),
199
+ h("Lead-only commands"),
200
+ note("• ptb assign <name> --to @other"),
201
+ note("• ptb team role"),
202
+ note("• ptb ci setup"),
203
+ note("• ptb remove"),
204
+ h("Typical usage"),
205
+ ex("ptb join # each dev runs this once"),
206
+ ex("ptb team # view the roster"),
207
+ ex("ptb team role bob-jones lead # promote someone"),
208
+ h("Notes"),
209
+ note("• ptb-team.json is keyed by email — two devs joining on separate branches merge cleanly."),
210
+ note("• Empty roster = everyone is treated as lead (solo bootstrap mode)."),
211
+ note("• Cannot demote the last lead — promote someone else first."),
212
+ ].join("\n"),
213
+ },
214
+ ai: {
215
+ title: "AI Provider Setup",
216
+ body: () => [
217
+ h("What it does"),
218
+ note("Connect and manage AI providers used by ptb implement and ptb document."),
219
+ note("Supports Claude (Anthropic) and OpenAI out of the box."),
220
+ h("Commands"),
221
+ cmd("ptb ai"),
222
+ note(" Show active provider, model, and connection status."),
223
+ cmd("ptb ai setup"),
224
+ note(" Add or reconfigure a provider interactively."),
225
+ cmd("ptb ai list"),
226
+ note(" List all saved providers and which is active."),
227
+ cmd("ptb ai use <provider>"),
228
+ note(" Switch the active provider (claude | openai | mock)."),
229
+ cmd("ptb ai model [model-id]"),
230
+ note(" Change the model for the active provider. Interactive if no model-id given."),
231
+ cmd("ptb ai remove <provider>"),
232
+ note(" Remove a saved provider config."),
233
+ h("Typical usage"),
234
+ ex("ptb ai setup # interactive — picks provider, saves API key"),
235
+ ex("ptb ai list"),
236
+ ex("ptb ai use openai"),
237
+ ex("ptb ai model gpt-4o"),
238
+ h("Supported providers"),
239
+ note("• claude — Anthropic (claude-sonnet-4-5 default)"),
240
+ note("• openai — OpenAI (gpt-4o default)"),
241
+ note("• mock — Dry run, no API key needed"),
242
+ h("Notes"),
243
+ note("• API keys are stored in ptb.config.json under ai.<provider>.apiKey."),
244
+ note("• Do not commit your API key — add ptb.config.json to .gitignore or"),
245
+ note(" use the accessTokenEnv pattern (same as Figma) to read from an env var."),
246
+ ].join("\n"),
247
+ },
248
+ doctor: {
249
+ title: "Health Audit",
250
+ body: () => [
251
+ h("What it does"),
252
+ note("Audit component health, context quality, and token coverage. Use this to"),
253
+ note("understand why an implementation might look wrong or why AI output is thin."),
254
+ h("Commands"),
255
+ cmd("ptb doctor"),
256
+ note(" Overall design system health: snapshot age, component count, token coverage."),
257
+ cmd("ptb doctor component <name>"),
258
+ note(" Deep audit for one component: variants, states, token bindings, context richness."),
259
+ note(" Use '.' for a scorecard of all components."),
260
+ cmd("ptb doctor context <name>"),
261
+ note(" Score context quality as seen by an AI IDE. Use '.' for all."),
262
+ cmd("ptb doctor tokens"),
263
+ note(" Check token coverage and resolution across the design system."),
264
+ h("Typical usage"),
265
+ ex("ptb doctor"),
266
+ ex("ptb doctor component . # audit every component"),
267
+ ex("ptb doctor context Button # score what the AI will see"),
268
+ ex("ptb doctor tokens"),
269
+ h("Notes"),
270
+ note("• Low context score = AI will produce thinner implementations."),
271
+ note("• Run doctor after ptb scan to catch missing variants before implementing."),
272
+ ].join("\n"),
273
+ },
274
+ ci: {
275
+ title: "CI / CD Integration",
276
+ body: () => [
277
+ h("What it does"),
278
+ note("Generate a GitHub Actions workflow that blocks PRs when components are stale."),
279
+ note("The workflow is read-only — it never writes ptb.lock or triggers scans."),
280
+ h("Commands"),
281
+ cmd("ptb ci setup"),
282
+ note(" Create .github/workflows/ptb.yml. Leads only."),
283
+ cmd("ptb ci setup --force"),
284
+ note(" Overwrite an existing ptb.yml."),
285
+ h("What the workflow does"),
286
+ note("• Triggers on push (main/master) and pull_request."),
287
+ note("• Runs your test suite, then ptb status --fail-on-stale."),
288
+ note("• Fails the PR if any component is stale."),
289
+ h("Typical usage"),
290
+ ex("ptb ci setup"),
291
+ ex("git add .github/workflows/ptb.yml"),
292
+ ex("git commit -m 'ci: add PTB design freshness check'"),
293
+ h("Notes"),
294
+ note("• Never run ptb scan in CI — that would overwrite .ptb/latest.json"),
295
+ note(" on every push and cause merge conflicts."),
296
+ note("• ptb status reads ptb.lock (committed) + .ptb/latest.json (gitignored)."),
297
+ note("• If .ptb/latest.json is missing in CI, status exits cleanly with a warning."),
298
+ ].join("\n"),
299
+ },
300
+ };
301
+ // ─────────────────────────────────────────────────────────────────────────────
302
+ const TOPIC_LIST = Object.entries(topics)
303
+ .map(([key, t]) => ` ${CYAN}${key.padEnd(12)}${RESET} ${DIM}${t.title}${RESET}`)
304
+ .join("\n");
305
+ export function helpCommand(topic) {
306
+ if (!topic) {
307
+ console.log(`\n${BOLD}PTB Help Topics${RESET}\n`);
308
+ console.log(TOPIC_LIST);
309
+ console.log(`\n${DIM}Run: ptb help <topic>${RESET}\n`);
310
+ return;
311
+ }
312
+ const entry = topics[topic.toLowerCase()];
313
+ if (!entry) {
314
+ console.log(`\n${YELLOW}Unknown topic '${topic}'.${RESET}\n`);
315
+ console.log(`${BOLD}Available topics:${RESET}\n`);
316
+ console.log(TOPIC_LIST);
317
+ console.log(`\n${DIM}Run: ptb help <topic>${RESET}\n`);
318
+ return;
319
+ }
320
+ console.log(`\n${BOLD}ptb help ${topic.toLowerCase()}${RESET} ${DIM}— ${entry.title}${RESET}`);
321
+ console.log(entry.body());
322
+ console.log();
323
+ }
324
+ //# sourceMappingURL=help-topics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-topics.js","sourceRoot":"","sources":["../../src/commands/help-topics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function implementComponentCommand(name: string, options?: {
2
+ framework?: string;
3
+ force?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=implement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implement.d.ts","sourceRoot":"","sources":["../../src/commands/implement.ts"],"names":[],"mappings":"AA0mBA,wBAAsB,yBAAyB,CAC3C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,iBAuExD"}