@cloudstreamsoftware/claude-tools 1.0.0 → 1.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 (189) hide show
  1. package/README.md +152 -37
  2. package/agents/INDEX.md +183 -0
  3. package/agents/architect.md +247 -0
  4. package/agents/build-error-resolver.md +555 -0
  5. package/agents/catalyst-deployer.md +132 -0
  6. package/agents/code-reviewer.md +121 -0
  7. package/agents/compliance-auditor.md +148 -0
  8. package/agents/creator-architect.md +395 -0
  9. package/agents/deluge-reviewer.md +98 -0
  10. package/agents/doc-updater.md +471 -0
  11. package/agents/e2e-runner.md +711 -0
  12. package/agents/planner.md +122 -0
  13. package/agents/refactor-cleaner.md +309 -0
  14. package/agents/security-reviewer.md +582 -0
  15. package/agents/tdd-guide.md +302 -0
  16. package/config/versions.json +63 -0
  17. package/dist/hooks/hooks.json +209 -0
  18. package/dist/index.js +47 -0
  19. package/dist/lib/asset-value.js +609 -0
  20. package/dist/lib/client-manager.js +300 -0
  21. package/dist/lib/command-matcher.js +242 -0
  22. package/dist/lib/cross-session-patterns.js +754 -0
  23. package/dist/lib/intent-classifier.js +1075 -0
  24. package/dist/lib/package-manager.js +374 -0
  25. package/dist/lib/recommendation-engine.js +597 -0
  26. package/dist/lib/session-memory.js +489 -0
  27. package/dist/lib/skill-effectiveness.js +486 -0
  28. package/dist/lib/skill-matcher.js +595 -0
  29. package/dist/lib/tutorial-metrics.js +242 -0
  30. package/dist/lib/tutorial-progress.js +209 -0
  31. package/dist/lib/tutorial-renderer.js +431 -0
  32. package/dist/lib/utils.js +380 -0
  33. package/dist/lib/verify-formatter.js +143 -0
  34. package/dist/lib/workflow-state.js +249 -0
  35. package/hooks/hooks.json +209 -0
  36. package/package.json +5 -1
  37. package/scripts/aggregate-sessions.js +290 -0
  38. package/scripts/branch-name-validator.js +291 -0
  39. package/scripts/build.js +101 -0
  40. package/scripts/commands/client-switch.js +231 -0
  41. package/scripts/deprecate-skill.js +610 -0
  42. package/scripts/diagnose.js +324 -0
  43. package/scripts/doc-freshness.js +168 -0
  44. package/scripts/generate-weekly-digest.js +393 -0
  45. package/scripts/health-check.js +270 -0
  46. package/scripts/hooks/credential-check.js +101 -0
  47. package/scripts/hooks/evaluate-session.js +81 -0
  48. package/scripts/hooks/pre-compact.js +66 -0
  49. package/scripts/hooks/prompt-analyzer.js +276 -0
  50. package/scripts/hooks/prompt-router.js +422 -0
  51. package/scripts/hooks/quality-gate-enforcer.js +371 -0
  52. package/scripts/hooks/session-end.js +156 -0
  53. package/scripts/hooks/session-start.js +195 -0
  54. package/scripts/hooks/skill-injector.js +333 -0
  55. package/scripts/hooks/suggest-compact.js +58 -0
  56. package/scripts/lib/asset-value.js +609 -0
  57. package/scripts/lib/client-manager.js +300 -0
  58. package/scripts/lib/command-matcher.js +242 -0
  59. package/scripts/lib/cross-session-patterns.js +754 -0
  60. package/scripts/lib/intent-classifier.js +1075 -0
  61. package/scripts/lib/package-manager.js +374 -0
  62. package/scripts/lib/recommendation-engine.js +597 -0
  63. package/scripts/lib/session-memory.js +489 -0
  64. package/scripts/lib/skill-effectiveness.js +486 -0
  65. package/scripts/lib/skill-matcher.js +595 -0
  66. package/scripts/lib/tutorial-metrics.js +242 -0
  67. package/scripts/lib/tutorial-progress.js +209 -0
  68. package/scripts/lib/tutorial-renderer.js +431 -0
  69. package/scripts/lib/utils.js +380 -0
  70. package/scripts/lib/verify-formatter.js +143 -0
  71. package/scripts/lib/workflow-state.js +249 -0
  72. package/scripts/onboard.js +363 -0
  73. package/scripts/quarterly-report.js +692 -0
  74. package/scripts/setup-package-manager.js +204 -0
  75. package/scripts/sync-upstream.js +391 -0
  76. package/scripts/test.js +108 -0
  77. package/scripts/tutorial-runner.js +351 -0
  78. package/scripts/validate-all.js +201 -0
  79. package/scripts/verifiers/agents.js +245 -0
  80. package/scripts/verifiers/config.js +186 -0
  81. package/scripts/verifiers/environment.js +123 -0
  82. package/scripts/verifiers/hooks.js +188 -0
  83. package/scripts/verifiers/index.js +38 -0
  84. package/scripts/verifiers/persistence.js +140 -0
  85. package/scripts/verifiers/plugin.js +215 -0
  86. package/scripts/verifiers/skills.js +209 -0
  87. package/scripts/verify-setup.js +164 -0
  88. package/skills/INDEX.md +157 -0
  89. package/skills/backend-patterns/SKILL.md +586 -0
  90. package/skills/backend-patterns/catalyst-patterns.md +128 -0
  91. package/skills/bigquery-patterns/SKILL.md +27 -0
  92. package/skills/bigquery-patterns/performance-optimization.md +518 -0
  93. package/skills/bigquery-patterns/query-patterns.md +372 -0
  94. package/skills/bigquery-patterns/schema-design.md +78 -0
  95. package/skills/cloudstream-project-template/SKILL.md +20 -0
  96. package/skills/cloudstream-project-template/structure.md +65 -0
  97. package/skills/coding-standards/SKILL.md +524 -0
  98. package/skills/coding-standards/deluge-standards.md +83 -0
  99. package/skills/compliance-patterns/SKILL.md +28 -0
  100. package/skills/compliance-patterns/hipaa/audit-requirements.md +251 -0
  101. package/skills/compliance-patterns/hipaa/baa-process.md +298 -0
  102. package/skills/compliance-patterns/hipaa/data-archival-strategy.md +387 -0
  103. package/skills/compliance-patterns/hipaa/phi-handling.md +52 -0
  104. package/skills/compliance-patterns/pci-dss/saq-a-requirements.md +307 -0
  105. package/skills/compliance-patterns/pci-dss/tokenization-patterns.md +382 -0
  106. package/skills/compliance-patterns/pci-dss/zoho-checkout-patterns.md +56 -0
  107. package/skills/compliance-patterns/soc2/access-controls.md +344 -0
  108. package/skills/compliance-patterns/soc2/audit-logging.md +458 -0
  109. package/skills/compliance-patterns/soc2/change-management.md +403 -0
  110. package/skills/compliance-patterns/soc2/deluge-execution-logging.md +407 -0
  111. package/skills/consultancy-workflows/SKILL.md +19 -0
  112. package/skills/consultancy-workflows/client-isolation.md +21 -0
  113. package/skills/consultancy-workflows/documentation-automation.md +454 -0
  114. package/skills/consultancy-workflows/handoff-procedures.md +257 -0
  115. package/skills/consultancy-workflows/knowledge-capture.md +513 -0
  116. package/skills/consultancy-workflows/time-tracking.md +26 -0
  117. package/skills/continuous-learning/SKILL.md +84 -0
  118. package/skills/continuous-learning/config.json +18 -0
  119. package/skills/continuous-learning/evaluate-session.sh +60 -0
  120. package/skills/continuous-learning-v2/SKILL.md +126 -0
  121. package/skills/continuous-learning-v2/config.json +61 -0
  122. package/skills/frontend-patterns/SKILL.md +635 -0
  123. package/skills/frontend-patterns/zoho-widget-patterns.md +103 -0
  124. package/skills/gcp-data-engineering/SKILL.md +36 -0
  125. package/skills/gcp-data-engineering/bigquery/performance-optimization.md +337 -0
  126. package/skills/gcp-data-engineering/dataflow/error-handling.md +496 -0
  127. package/skills/gcp-data-engineering/dataflow/pipeline-patterns.md +444 -0
  128. package/skills/gcp-data-engineering/dbt/model-organization.md +63 -0
  129. package/skills/gcp-data-engineering/dbt/testing-patterns.md +503 -0
  130. package/skills/gcp-data-engineering/medallion-architecture/bronze-layer.md +60 -0
  131. package/skills/gcp-data-engineering/medallion-architecture/gold-layer.md +311 -0
  132. package/skills/gcp-data-engineering/medallion-architecture/layer-transitions.md +517 -0
  133. package/skills/gcp-data-engineering/medallion-architecture/silver-layer.md +305 -0
  134. package/skills/gcp-data-engineering/zoho-to-gcp/data-extraction.md +543 -0
  135. package/skills/gcp-data-engineering/zoho-to-gcp/real-time-vs-batch.md +337 -0
  136. package/skills/security-review/SKILL.md +498 -0
  137. package/skills/security-review/compliance-checklist.md +53 -0
  138. package/skills/strategic-compact/SKILL.md +67 -0
  139. package/skills/tdd-workflow/SKILL.md +413 -0
  140. package/skills/tdd-workflow/zoho-testing.md +124 -0
  141. package/skills/tutorial/SKILL.md +249 -0
  142. package/skills/tutorial/docs/ACCESSIBILITY.md +169 -0
  143. package/skills/tutorial/lessons/00-philosophy-and-workflow.md +198 -0
  144. package/skills/tutorial/lessons/01-basics.md +81 -0
  145. package/skills/tutorial/lessons/02-training.md +86 -0
  146. package/skills/tutorial/lessons/03-commands.md +109 -0
  147. package/skills/tutorial/lessons/04-workflows.md +115 -0
  148. package/skills/tutorial/lessons/05-compliance.md +116 -0
  149. package/skills/tutorial/lessons/06-zoho.md +121 -0
  150. package/skills/tutorial/lessons/07-hooks-system.md +277 -0
  151. package/skills/tutorial/lessons/08-mcp-servers.md +316 -0
  152. package/skills/tutorial/lessons/09-client-management.md +215 -0
  153. package/skills/tutorial/lessons/10-testing-e2e.md +260 -0
  154. package/skills/tutorial/lessons/11-skills-deep-dive.md +272 -0
  155. package/skills/tutorial/lessons/12-rules-system.md +326 -0
  156. package/skills/tutorial/lessons/13-golden-standard-graduation.md +213 -0
  157. package/skills/tutorial/lessons/14-fork-setup-and-sync.md +312 -0
  158. package/skills/tutorial/lessons/15-living-examples-system.md +221 -0
  159. package/skills/tutorial/tracks/accelerated/README.md +134 -0
  160. package/skills/tutorial/tracks/accelerated/assessment/checkpoint-1.md +161 -0
  161. package/skills/tutorial/tracks/accelerated/assessment/checkpoint-2.md +175 -0
  162. package/skills/tutorial/tracks/accelerated/day-1-core-concepts.md +234 -0
  163. package/skills/tutorial/tracks/accelerated/day-2-essential-commands.md +270 -0
  164. package/skills/tutorial/tracks/accelerated/day-3-workflow-mastery.md +305 -0
  165. package/skills/tutorial/tracks/accelerated/day-4-compliance-zoho.md +304 -0
  166. package/skills/tutorial/tracks/accelerated/day-5-hooks-skills.md +344 -0
  167. package/skills/tutorial/tracks/accelerated/day-6-client-testing.md +386 -0
  168. package/skills/tutorial/tracks/accelerated/day-7-graduation.md +369 -0
  169. package/skills/zoho-patterns/CHANGELOG.md +108 -0
  170. package/skills/zoho-patterns/SKILL.md +446 -0
  171. package/skills/zoho-patterns/analytics/dashboard-patterns.md +352 -0
  172. package/skills/zoho-patterns/analytics/zoho-to-bigquery-pipeline.md +427 -0
  173. package/skills/zoho-patterns/catalyst/appsail-deployment.md +349 -0
  174. package/skills/zoho-patterns/catalyst/context-close-patterns.md +354 -0
  175. package/skills/zoho-patterns/catalyst/cron-batch-processing.md +374 -0
  176. package/skills/zoho-patterns/catalyst/function-patterns.md +439 -0
  177. package/skills/zoho-patterns/creator/form-design.md +304 -0
  178. package/skills/zoho-patterns/creator/publish-api-patterns.md +313 -0
  179. package/skills/zoho-patterns/creator/widget-integration.md +306 -0
  180. package/skills/zoho-patterns/creator/workflow-automation.md +253 -0
  181. package/skills/zoho-patterns/deluge/api-patterns.md +468 -0
  182. package/skills/zoho-patterns/deluge/batch-processing.md +403 -0
  183. package/skills/zoho-patterns/deluge/cross-app-integration.md +356 -0
  184. package/skills/zoho-patterns/deluge/error-handling.md +423 -0
  185. package/skills/zoho-patterns/deluge/syntax-reference.md +65 -0
  186. package/skills/zoho-patterns/integration/cors-proxy-architecture.md +426 -0
  187. package/skills/zoho-patterns/integration/crm-books-native-sync.md +277 -0
  188. package/skills/zoho-patterns/integration/oauth-token-management.md +461 -0
  189. package/skills/zoho-patterns/integration/zoho-flow-patterns.md +334 -0
@@ -0,0 +1,231 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Client Switch Command
5
+ *
6
+ * Switches to a specific client context by:
7
+ * 1. Loading client configuration from clients/[id]/.claude/CLAUDE.md
8
+ * 2. Setting environment variables from .env.client
9
+ * 3. Displaying client context with compliance requirements
10
+ * 4. Showing recent git activity for the client
11
+ *
12
+ * Usage: /client-switch [client-id]
13
+ * If no client-id provided, lists available clients.
14
+ */
15
+
16
+ const path = require('path');
17
+ const { log, ensureDir } = require('../lib/utils');
18
+ const {
19
+ getClientsDir,
20
+ discoverClients,
21
+ loadClient,
22
+ getComplianceRequirements,
23
+ setClientEnvironment,
24
+ } = require('../lib/client-manager');
25
+
26
+ // Box drawing characters for formatted output
27
+ const BOX = {
28
+ topLeft: '\u2554',
29
+ topRight: '\u2557',
30
+ bottomLeft: '\u255A',
31
+ bottomRight: '\u255D',
32
+ horizontal: '\u2550',
33
+ vertical: '\u2551',
34
+ leftT: '\u2560',
35
+ rightT: '\u2563',
36
+ };
37
+
38
+ /**
39
+ * Draw a box line
40
+ */
41
+ function boxLine(char, width) {
42
+ return char.repeat(width);
43
+ }
44
+
45
+ /**
46
+ * Draw a text line centered in a box
47
+ */
48
+ function centeredLine(text, width) {
49
+ const padding = Math.max(0, width - text.length - 2);
50
+ const leftPad = Math.floor(padding / 2);
51
+ const rightPad = padding - leftPad;
52
+ return `${BOX.vertical} ${' '.repeat(leftPad)}${text}${' '.repeat(rightPad)} ${BOX.vertical}`;
53
+ }
54
+
55
+ /**
56
+ * Draw a left-aligned text line in a box
57
+ */
58
+ function leftLine(text, width) {
59
+ const padding = Math.max(0, width - text.length - 4);
60
+ return `${BOX.vertical} ${text}${' '.repeat(padding)} ${BOX.vertical}`;
61
+ }
62
+
63
+ /**
64
+ * Format client context for display
65
+ */
66
+ function formatClientContext(client) {
67
+ const width = 65;
68
+ const lines = [];
69
+
70
+ // Header
71
+ lines.push(`${BOX.topLeft}${boxLine(BOX.horizontal, width)}${BOX.topRight}`);
72
+ lines.push(centeredLine(`Client Context: ${client.name || client.id}`, width));
73
+ lines.push(`${BOX.leftT}${boxLine(BOX.horizontal, width)}${BOX.rightT}`);
74
+
75
+ // Configuration section
76
+ lines.push(leftLine('', width));
77
+ lines.push(leftLine('\uD83D\uDCCB Configuration', width));
78
+ lines.push(leftLine(` Compliance Mode: ${client.complianceMode.toUpperCase()}`, width));
79
+ if (client.zohoOrg) {
80
+ lines.push(leftLine(` Zoho Org ID: ${client.zohoOrg}`, width));
81
+ }
82
+ lines.push(leftLine(` Project Path: clients/${client.id}/`, width));
83
+ if (client.industry) {
84
+ lines.push(leftLine(` Industry: ${client.industry}`, width));
85
+ }
86
+
87
+ // Compliance requirements
88
+ lines.push(leftLine('', width));
89
+ lines.push(leftLine('\uD83D\uDD12 Compliance Requirements', width));
90
+ const requirements = getComplianceRequirements(client.complianceMode);
91
+ for (const req of requirements.slice(0, 4)) {
92
+ lines.push(leftLine(` - ${req}`, width));
93
+ }
94
+
95
+ // Recent activity
96
+ lines.push(leftLine('', width));
97
+ lines.push(leftLine('\uD83D\uDCCA Recent Activity', width));
98
+ if (client.commits && client.commits.length > 0) {
99
+ for (const commit of client.commits.slice(0, 5)) {
100
+ const msg =
101
+ commit.message.length > 50 ? commit.message.substring(0, 47) + '...' : commit.message;
102
+ lines.push(leftLine(` ${commit.hash} ${msg}`, width));
103
+ }
104
+ } else {
105
+ lines.push(leftLine(' No recent commits found', width));
106
+ }
107
+
108
+ // Reminders based on compliance mode
109
+ if (client.complianceMode !== 'standard') {
110
+ lines.push(leftLine('', width));
111
+ lines.push(leftLine('\u26A0\uFE0F Reminders', width));
112
+ if (client.complianceMode === 'hipaa') {
113
+ lines.push(leftLine(' - All PHI fields must use [PHI] prefix', width));
114
+ lines.push(leftLine(' - Run /compliance-check before any commit', width));
115
+ } else if (client.complianceMode === 'pci-dss') {
116
+ lines.push(leftLine(' - Never store PAN data directly', width));
117
+ lines.push(leftLine(' - Use Zoho Checkout for all payments', width));
118
+ } else if (client.complianceMode === 'soc2') {
119
+ lines.push(leftLine(' - Document all access control changes', width));
120
+ lines.push(leftLine(' - Audit logging must be enabled', width));
121
+ }
122
+ }
123
+
124
+ // Footer
125
+ lines.push(leftLine('', width));
126
+ lines.push(`${BOX.bottomLeft}${boxLine(BOX.horizontal, width)}${BOX.bottomRight}`);
127
+
128
+ return lines.join('\n');
129
+ }
130
+
131
+ /**
132
+ * Format available clients list
133
+ */
134
+ function formatClientList(clients, requestedId) {
135
+ const lines = [];
136
+
137
+ if (requestedId) {
138
+ lines.push(`\u274C Client Not Found: ${requestedId}`);
139
+ lines.push('');
140
+ }
141
+
142
+ if (clients.length === 0) {
143
+ lines.push('No clients found.');
144
+ lines.push('');
145
+ lines.push('To create a new client:');
146
+ lines.push(' 1. Create directory: clients/[CLIENT-ID]/');
147
+ lines.push(' 2. Copy template: templates/client-project/.claude/CLAUDE.md');
148
+ lines.push(' 3. Configure: clients/[CLIENT-ID]/.claude/CLAUDE.md');
149
+ return lines.join('\n');
150
+ }
151
+
152
+ lines.push('Available clients:');
153
+ for (let i = 0; i < clients.length; i++) {
154
+ const client = clients[i];
155
+ const isLast = i === clients.length - 1;
156
+ const prefix = isLast ? '\u2514\u2500\u2500' : '\u251C\u2500\u2500';
157
+
158
+ // Load full client to get compliance mode
159
+ const fullClient = loadClient(client.id);
160
+ const mode = fullClient ? fullClient.complianceMode : 'unknown';
161
+ const configStatus = client.hasConfig ? '' : ' (no config)';
162
+
163
+ lines.push(`${prefix} ${client.id} (${mode})${configStatus}`);
164
+ }
165
+
166
+ if (requestedId) {
167
+ lines.push('');
168
+ lines.push(`Create new client directory: clients/${requestedId}/.claude/CLAUDE.md`);
169
+ }
170
+
171
+ return lines.join('\n');
172
+ }
173
+
174
+ /**
175
+ * Main execution
176
+ */
177
+ function main() {
178
+ // Get client ID from command line arguments
179
+ const args = process.argv.slice(2);
180
+ const clientId = args[0];
181
+
182
+ // If no client ID provided, list available clients
183
+ if (!clientId) {
184
+ const clients = discoverClients();
185
+ log('[ClientSwitch] No client specified. Listing available clients:\n');
186
+ log(formatClientList(clients));
187
+ return;
188
+ }
189
+
190
+ // Try to load the requested client
191
+ const client = loadClient(clientId);
192
+
193
+ if (!client) {
194
+ const clients = discoverClients();
195
+ log(formatClientList(clients, clientId));
196
+ process.exit(1);
197
+ }
198
+
199
+ // Set environment variables for this client
200
+ setClientEnvironment(client);
201
+
202
+ // Display client context
203
+ log('');
204
+ log(formatClientContext(client));
205
+ log('');
206
+
207
+ // Output confirmation for Claude Code
208
+ log(`[ClientSwitch] Active client: ${client.id}`);
209
+ log(`[ClientSwitch] Compliance mode: ${client.complianceMode}`);
210
+ if (client.zohoOrg) {
211
+ log(`[ClientSwitch] Zoho Org: ${client.zohoOrg}`);
212
+ }
213
+
214
+ // Warn if no config file
215
+ if (!client.hasConfig) {
216
+ log('');
217
+ log('\u26A0\uFE0F Warning: No CLAUDE.md configuration found for this client.');
218
+ log(` Create: clients/${clientId}/.claude/CLAUDE.md`);
219
+ log(' Use template: templates/client-project/.claude/CLAUDE.md');
220
+ }
221
+ }
222
+
223
+ // Run if executed directly
224
+ if (require.main === module) {
225
+ main();
226
+ }
227
+
228
+ module.exports = {
229
+ formatClientContext,
230
+ formatClientList,
231
+ };