tlc-claude-code 1.2.11 → 1.2.13

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.
package/deploy.md CHANGED
@@ -9,12 +9,153 @@ Deploy your TLC project to a remote dev server for team collaboration.
9
9
  ```
10
10
 
11
11
  Commands:
12
- - `setup` - Configure deployment server
12
+ - `setup` - Generate server config and setup instructions
13
13
  - `push` - Deploy current branch
14
14
  - `status` - Check deployment status
15
15
  - `logs` - View deployment logs
16
16
  - `users` - Manage server users
17
17
 
18
+ ---
19
+
20
+ ## Quick Setup (Terminal)
21
+
22
+ Run `/tlc:deploy setup` to generate your server config:
23
+
24
+ ```
25
+ TLC Dev Server Setup
26
+ ════════════════════════════════════════════════════════════════════
27
+
28
+ Project Configuration
29
+ ─────────────────────
30
+ Name: my-awesome-app
31
+ Repo: git@github.com:myorg/my-awesome-app.git
32
+ Domain: (enter your domain)
33
+
34
+ Domain for dev server: myapp.example.com
35
+
36
+ Generating config...
37
+
38
+ ════════════════════════════════════════════════════════════════════
39
+ STEP 1: Run this on your Ubuntu server
40
+ ════════════════════════════════════════════════════════════════════
41
+
42
+ ┌────────────────────────────────────────────────────────────────────┐
43
+ │ │
44
+ │ curl -fsSL https://tlc.dev/install | bash -s -- \ │
45
+ │ --project "my-awesome-app" \ │
46
+ │ --repo "git@github.com:myorg/my-awesome-app.git" \ │
47
+ │ --domain "myapp.example.com" \ │
48
+ │ --webhook-secret "a1b2c3d4e5f6g7h8" │
49
+ │ │
50
+ └────────────────────────────────────────────────────────────────────┘
51
+ [Copy to clipboard]
52
+
53
+ ════════════════════════════════════════════════════════════════════
54
+ STEP 2: Configure DNS
55
+ ════════════════════════════════════════════════════════════════════
56
+
57
+ Add these DNS records pointing to your server IP:
58
+
59
+ *.myapp.example.com → YOUR_SERVER_IP
60
+ dashboard.myapp.example.com → YOUR_SERVER_IP
61
+
62
+ ════════════════════════════════════════════════════════════════════
63
+ STEP 3: Add GitHub Webhook
64
+ ════════════════════════════════════════════════════════════════════
65
+
66
+ Go to: https://github.com/myorg/my-awesome-app/settings/hooks/new
67
+
68
+ Payload URL: https://dashboard.myapp.example.com/api/webhook
69
+ Content type: application/json
70
+ Secret: a1b2c3d4e5f6g7h8
71
+ Events: Just the push event
72
+
73
+ ════════════════════════════════════════════════════════════════════
74
+ STEP 4: Done!
75
+ ════════════════════════════════════════════════════════════════════
76
+
77
+ Once server setup completes, you'll get:
78
+
79
+ Dashboard: https://dashboard.myapp.example.com
80
+ Main branch: https://main.myapp.example.com
81
+ Feature branches: https://{branch}.myapp.example.com
82
+
83
+ Admin credentials will be shown after server setup.
84
+
85
+ ────────────────────────────────────────────────────────────────────
86
+ Config saved to .tlc.json
87
+ ```
88
+
89
+ ### Process
90
+
91
+ 1. **Detect project state**:
92
+ - New project? Use info from `/tlc:new-project` or `/tlc:init`
93
+ - Existing TLC project? Read from `.tlc.json`
94
+ - Legacy project? Read from `package.json` + git remote
95
+ 2. **Ask for domain** if not configured
96
+ 3. **Generate webhook secret** (random 16 chars)
97
+ 4. **Output setup command** with all config embedded
98
+ 5. **Save/update config** in `.tlc.json`
99
+
100
+ ### Upgrading Existing Projects
101
+
102
+ For projects already using TLC but without team features:
103
+
104
+ ```
105
+ > /tlc:deploy setup
106
+
107
+ TLC Dev Server Setup
108
+ ════════════════════════════════════════════════════════════════════
109
+
110
+ Detected existing TLC project: my-awesome-app
111
+ ✓ .tlc.json found
112
+ ✓ .planning/ directory exists
113
+ ✗ No deploy config yet
114
+
115
+ Adding team collaboration features...
116
+
117
+ Project: my-awesome-app
118
+ Repo: git@github.com:myorg/my-awesome-app.git
119
+
120
+ Enter your server domain: _
121
+ ```
122
+
123
+ The setup continues with the same flow - generates config, shows server command, DNS instructions, webhook config.
124
+
125
+ **What gets added to .tlc.json:**
126
+
127
+ ```json
128
+ {
129
+ "project": "my-awesome-app",
130
+ "testFrameworks": { ... }, // existing config preserved
131
+ "deploy": { // NEW: added by setup
132
+ "domain": "myapp.example.com",
133
+ "webhookSecret": "x7k9m2p4q8r1s5t3",
134
+ "dashboardUrl": "https://dashboard.myapp.example.com",
135
+ "configured": false
136
+ }
137
+ }
138
+ ```
139
+
140
+ ```javascript
141
+ // Config generation
142
+ const config = {
143
+ project: packageJson.name,
144
+ repo: getGitRemoteUrl(),
145
+ domain: userInput.domain,
146
+ webhookSecret: crypto.randomBytes(16).toString('hex')
147
+ };
148
+
149
+ // Generate one-liner
150
+ const command = `curl -fsSL https://tlc.dev/install | bash -s -- \\
151
+ --project "${config.project}" \\
152
+ --repo "${config.repo}" \\
153
+ --domain "${config.domain}" \\
154
+ --webhook-secret "${config.webhookSecret}"`;
155
+ ```
156
+
157
+ ---
158
+
18
159
  ## Architecture
19
160
 
20
161
  ```
package/help.md CHANGED
@@ -92,6 +92,7 @@ Launches the visual dashboard. Detects where you are, shows what's next.
92
92
  | `/tlc:export --list` | Show all supported AI tools |
93
93
  | `/tlc:export --detect` | Detect which AI tool is running |
94
94
  | `/tlc:deploy` | Show deployment status |
95
+ | `/tlc:deploy setup` | Generate server config + copy-paste install command |
95
96
  | `/tlc:deploy start <branch>` | Deploy branch to dev server |
96
97
  | `/tlc:deploy stop <branch>` | Stop branch deployment |
97
98
  | `/tlc:deploy logs <branch>` | View deployment logs |
package/init.md CHANGED
@@ -388,6 +388,28 @@ Next steps:
388
388
  - Run /tlc:quick for ad-hoc tasks with tests
389
389
  ```
390
390
 
391
+ ### Step 13: Offer Dev Server Setup
392
+
393
+ After initialization, offer remote dev server:
394
+
395
+ ```
396
+ ───────────────────────────────────────────────────────────────
397
+ Dev Server (Optional)
398
+ ───────────────────────────────────────────────────────────────
399
+
400
+ Set up a shared dev server for team collaboration?
401
+ • Each branch gets its own preview URL
402
+ • QA and PO can access without local setup
403
+ • Slack notifications for deployments
404
+
405
+ [1] Yes, set up dev server
406
+ [2] Skip for now
407
+
408
+ Choice [1/2]: _
409
+ ```
410
+
411
+ **If [1] selected:** Run the dev server setup flow from `/tlc:deploy setup`.
412
+
391
413
  ## Usage
392
414
 
393
415
  ```
package/new-project.md CHANGED
@@ -380,6 +380,37 @@ npx cypress open
380
380
  Ready to build. Run /tlc:plan to create your first phase.
381
381
  ```
382
382
 
383
+ ### Step 10: Offer Dev Server Setup
384
+
385
+ After project is configured, offer remote dev server:
386
+
387
+ ```
388
+ ───────────────────────────────────────────────────────────────
389
+ Dev Server (Optional)
390
+ ───────────────────────────────────────────────────────────────
391
+
392
+ Set up a shared dev server for team collaboration?
393
+ • Each branch gets its own preview URL
394
+ • QA and PO can access without local setup
395
+ • Slack notifications for deployments
396
+
397
+ [1] Yes, set up dev server
398
+ [2] Skip for now
399
+
400
+ Choice [1/2]: _
401
+ ```
402
+
403
+ **If [1] selected:**
404
+
405
+ 1. Ask for server domain
406
+ 2. Generate webhook secret
407
+ 3. Show setup command for server
408
+ 4. Show DNS instructions
409
+ 5. Show GitHub webhook config
410
+ 6. Save config to `.tlc.json`
411
+
412
+ See `/tlc:deploy setup` for full output format.
413
+
383
414
  ## Usage
384
415
 
385
416
  ```
@@ -392,3 +423,4 @@ Interactive flow that:
392
423
  3. Lets you adjust
393
424
  4. Creates roadmap
394
425
  5. Sets up tests
426
+ 6. Offers dev server setup
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tlc-claude-code",
3
- "version": "1.2.11",
3
+ "version": "1.2.13",
4
4
  "description": "TLC - Test Led Coding for Claude Code",
5
5
  "bin": {
6
6
  "tlc": "./bin/tlc.js",
package/tlc.md CHANGED
@@ -64,6 +64,23 @@ fi
64
64
  echo "✓ Synced"
65
65
  ```
66
66
 
67
+ ### Step 0b: Check for Team Features (Existing Projects)
68
+
69
+ For projects that existed before team features, check if dev server is configured:
70
+
71
+ ```bash
72
+ # Check if deploy config exists
73
+ deployDomain=$(jq -r '.deploy.domain // ""' .tlc.json)
74
+
75
+ if [ -z "$deployDomain" ]; then
76
+ # No deploy config - this is an existing project without team setup
77
+ # Show subtle hint in header (not blocking)
78
+ teamHint="│ 💡 Team sharing available: /tlc:deploy setup"
79
+ fi
80
+ ```
81
+
82
+ This adds a non-blocking hint. Users can also access it via Quick Actions [5].
83
+
67
84
  ### Step 1: Show Phase Checklist (ALWAYS SHOW THIS)
68
85
 
69
86
  **This is the core of `/tlc` - always show the current phase status:**
@@ -102,8 +119,9 @@ Phase 2: User Dashboard
102
119
  [2] Go back and fix skipped steps
103
120
  [3] Show all commands (/tlc:help)
104
121
  [4] Full project checklist (/tlc:checklist)
122
+ [5] Set up team dev server (/tlc:deploy setup)
105
123
 
106
- Choice [1/2/3/4]: _
124
+ Choice [1/2/3/4/5]: _
107
125
  ```
108
126
 
109
127
  ### Step 2: Detect Current Phase
@@ -256,6 +274,114 @@ Options:
256
274
  Choice [1/2]: _
257
275
  ```
258
276
 
277
+ ## After Project Setup (First Time)
278
+
279
+ After `/tlc:new-project` or `/tlc:init` completes, show dev server option:
280
+
281
+ ```
282
+ TLC v{{VERSION}}
283
+ ═══════════════════════════════════════════════════════════════
284
+
285
+ ✓ Project configured: my-awesome-app
286
+
287
+ ───────────────────────────────────────────────────────────────
288
+ Dev Server Setup (Optional)
289
+ ───────────────────────────────────────────────────────────────
290
+
291
+ Deploy to a shared dev server for team collaboration?
292
+ Each branch gets its own preview URL.
293
+
294
+ [1] Yes, set up dev server → Shows setup instructions
295
+ [2] Skip for now → Continue to project
296
+
297
+ Choice [1/2]: _
298
+ ```
299
+
300
+ **If [1] selected**, show inline setup panel:
301
+
302
+ ```
303
+ ═══════════════════════════════════════════════════════════════
304
+ TLC Dev Server Setup
305
+ ═══════════════════════════════════════════════════════════════
306
+
307
+ Project: my-awesome-app
308
+ Repo: git@github.com:myorg/my-awesome-app.git
309
+
310
+ Enter your server domain: myapp.example.com
311
+
312
+ ───────────────────────────────────────────────────────────────
313
+ STEP 1: Run on Ubuntu Server
314
+ ───────────────────────────────────────────────────────────────
315
+
316
+ ┌─────────────────────────────────────────────────────────────┐
317
+ │ curl -fsSL https://tlc.dev/install | bash -s -- \ │
318
+ │ --project "my-awesome-app" \ │
319
+ │ --repo "git@github.com:myorg/my-awesome-app.git" \ │
320
+ │ --domain "myapp.example.com" \ │
321
+ │ --webhook-secret "x7k9m2p4q8r1s5t3" │
322
+ └─────────────────────────────────────────────────────────────┘
323
+
324
+ ───────────────────────────────────────────────────────────────
325
+ STEP 2: Configure DNS
326
+ ───────────────────────────────────────────────────────────────
327
+
328
+ Point these to your server:
329
+ *.myapp.example.com → SERVER_IP
330
+ dashboard.myapp.example.com → SERVER_IP
331
+
332
+ ───────────────────────────────────────────────────────────────
333
+ STEP 3: Add Webhook to GitHub
334
+ ───────────────────────────────────────────────────────────────
335
+
336
+ URL: https://dashboard.myapp.example.com/api/webhook
337
+ Secret: x7k9m2p4q8r1s5t3
338
+
339
+ ───────────────────────────────────────────────────────────────
340
+ What You Get
341
+ ───────────────────────────────────────────────────────────────
342
+
343
+ Dashboard: https://dashboard.myapp.example.com
344
+ Main branch: https://main.myapp.example.com
345
+ Feature branches: https://{branch}.myapp.example.com
346
+
347
+ ───────────────────────────────────────────────────────────────
348
+
349
+ Config saved to .tlc.json
350
+
351
+ Press Enter to continue...
352
+ ```
353
+
354
+ ### Config Generation
355
+
356
+ When generating the setup command:
357
+
358
+ ```javascript
359
+ // Read from project
360
+ const projectName = tlcJson.project || packageJson.name;
361
+ const repoUrl = execSync('git remote get-url origin').toString().trim();
362
+
363
+ // Ask user for domain
364
+ const domain = await prompt('Enter your server domain:');
365
+
366
+ // Generate secure webhook secret
367
+ const webhookSecret = crypto.randomBytes(8).toString('hex');
368
+
369
+ // Save to .tlc.json
370
+ tlcJson.deploy = {
371
+ domain: domain,
372
+ webhookSecret: webhookSecret,
373
+ dashboardUrl: `https://dashboard.${domain}`,
374
+ configured: false // Set to true after server confirms
375
+ };
376
+
377
+ // Generate command
378
+ const setupCommand = `curl -fsSL https://tlc.dev/install | bash -s -- \\
379
+ --project "${projectName}" \\
380
+ --repo "${repoUrl}" \\
381
+ --domain "${domain}" \\
382
+ --webhook-secret "${webhookSecret}"`;
383
+ ```
384
+
259
385
  ## All Phases Complete
260
386
 
261
387
  ```