tlc-claude-code 1.2.0 → 1.2.2

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/CLAUDE.md CHANGED
@@ -27,15 +27,41 @@ Instead, use TLC's file-based system:
27
27
  | Test status | `.planning/phases/{N}-TESTS.md` |
28
28
  | Config | `.tlc.json` |
29
29
 
30
- ## Before Starting Work
30
+ ## FIRST THING - Always Run /tlc
31
31
 
32
- Always run `/tlc:progress` or `/tlc` to understand current state.
32
+ **MANDATORY: Before ANY work, run `/tlc`**
33
+
34
+ This single command handles everything automatically:
35
+
36
+ ```
37
+ /tlc ← ALWAYS run this first, every time
38
+ ```
39
+
40
+ **What happens:**
41
+
42
+ | Scenario | /tlc Does |
43
+ |----------|-----------|
44
+ | No `.tlc.json` | "Welcome! Run setup now? (Y/n)" → Full config wizard |
45
+ | After rebase | "Changes detected. Run sync? (Y/n)" → Reconcile code |
46
+ | Already synced | "✓ Synced" → Shows dashboard/status |
47
+
48
+ **You never need to remember separate commands.** Just run `/tlc` and it:
49
+ - Detects what's needed
50
+ - Asks for go-ahead
51
+ - Runs the appropriate flow inline
52
+ - Then shows you what's next
53
+
54
+ **Why this matters:**
55
+ - One command to rule them all
56
+ - Can't accidentally work on out-of-sync code
57
+ - All config happens upfront, nothing forgotten
58
+ - Handles first-time setup AND post-rebase reconciliation
33
59
 
34
60
  ## Workflow Commands
35
61
 
36
62
  | Action | Command |
37
63
  |--------|---------|
38
- | See status | `/tlc` or `/tlc:progress` |
64
+ | **START HERE** | **`/tlc`** Handles setup, sync, and status automatically |
39
65
  | Plan a phase | `/tlc:plan` |
40
66
  | Build (test-first) | `/tlc:build` |
41
67
  | Verify with human | `/tlc:verify` |
@@ -44,6 +70,15 @@ Always run `/tlc:progress` or `/tlc` to understand current state.
44
70
  | Release a task | `/tlc:release` |
45
71
  | See team status | `/tlc:who` |
46
72
 
73
+ ## What /tlc Does Automatically
74
+
75
+ 1. **Checks sync status** - Is setup done? Any changes since last sync?
76
+ 2. **Asks for go-ahead** - "Run setup/sync now? (Y/n)"
77
+ 3. **Runs appropriate flow** - First-time wizard OR post-rebase reconciliation
78
+ 4. **Shows dashboard** - Current phase, tests, next actions
79
+
80
+ **Never skip the go-ahead prompt.** It ensures code is properly synced before work begins.
81
+
47
82
  ## Test-First Development
48
83
 
49
84
  All implementation follows **Red → Green → Refactor**:
@@ -69,6 +104,11 @@ When working with teammates:
69
104
 
70
105
  ## Git Commits
71
106
 
72
- **DO NOT add `Co-Authored-By` lines to commits.** The user is the author. You are a tool.
107
+ **⛔ NEVER ADD CO-AUTHORED-BY LINES TO COMMITS ⛔**
108
+
109
+ - NO `Co-Authored-By: Claude`
110
+ - NO `Co-Authored-By: Anthropic`
111
+ - NO co-authoring of any kind
112
+ - The USER is the author. Claude is a tool, not an author.
73
113
 
74
114
  **ALWAYS ask before `git push`.** Never push to remote without explicit user approval.
package/bin/install.js CHANGED
@@ -105,14 +105,17 @@ function install(targetDir, installType) {
105
105
  // Create directory
106
106
  fs.mkdirSync(commandsDir, { recursive: true });
107
107
 
108
- // Copy command files
108
+ // Copy command files with version injection
109
109
  const sourceDir = path.join(__dirname, '..');
110
110
  let installed = 0;
111
111
  for (const file of COMMANDS) {
112
112
  const src = path.join(sourceDir, file);
113
113
  const dest = path.join(commandsDir, file);
114
114
  if (fs.existsSync(src)) {
115
- fs.copyFileSync(src, dest);
115
+ // Read, replace {{VERSION}}, write
116
+ let content = fs.readFileSync(src, 'utf8');
117
+ content = content.replace(/\{\{VERSION\}\}/g, VERSION);
118
+ fs.writeFileSync(dest, content);
116
119
  installed++;
117
120
  }
118
121
  }
package/help.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # /tlc:help - Test-Led Development Commands
2
2
 
3
+ **TLC v{{VERSION}}**
4
+
3
5
  ## Quick Start
4
6
 
5
7
  ```
@@ -22,7 +24,8 @@ Launches the visual dashboard. Detects where you are, shows what's next.
22
24
 
23
25
  | Command | What It Does |
24
26
  |---------|--------------|
25
- | `/tlc:sync` | **One command to rule them all.** First-time setup or post-rebase reconciliation |
27
+ | `/tlc` | **Start here.** Auto-detects setup/sync needs, asks, then runs |
28
+ | `/tlc:sync` | Direct access to setup/sync (usually not needed - /tlc handles it) |
26
29
  | `/tlc:new-project` | Start new project (discusses stack, creates roadmap) |
27
30
  | `/tlc:init` | Add TLC to existing code |
28
31
  | `/tlc:import-project` | Import multi-repo microservices architecture |
@@ -98,31 +101,28 @@ Launches the visual dashboard. Detects where you are, shows what's next.
98
101
 
99
102
  ## Workflow
100
103
 
101
- **Simple version:**
104
+ **Just one command:**
102
105
  ```
103
- /tlc:sync <- First time or after rebase
104
- /tlc <- Then just keep running this
106
+ /tlc <- Always start here
105
107
  ```
106
108
 
107
- **Detailed version:**
109
+ That's it. `/tlc` handles everything:
110
+
108
111
  ```
109
- /tlc:sync First-time setup (all config in one go)
110
- Or: post-rebase reconciliation
111
- /tlc:new-project New project (or /tlc:init for existing)
112
-
113
- /tlc Guides you through each phase:
114
- discuss → plan → build → verify
115
-
116
- /tlc:complete Tag release
112
+ /tlc
113
+
114
+ No config? → "Run setup? (Y/n)" Full wizard
115
+
116
+ Rebase detected? "Run sync? (Y/n)" → Reconcile
117
+
118
+ Already synced? → Dashboard + next actions
117
119
  ```
118
120
 
119
121
  **After rebasing:**
120
122
  ```
121
- git rebase origin/main TLC detects changes
122
-
123
- /tlc:sync Reconcile incoming code
123
+ git rebase origin/main
124
124
 
125
- /tlc Continue working
125
+ /tlc Detects changes, asks, syncs, continues
126
126
  ```
127
127
 
128
128
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tlc-claude-code",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "TLC - Test Led Coding for Claude Code",
5
5
  "bin": {
6
6
  "tlc": "./bin/tlc.js",
package/tlc.md CHANGED
@@ -1,31 +1,53 @@
1
1
  # /tlc - Smart Entry Point
2
2
 
3
+ **TLC v{{VERSION}}**
4
+
3
5
  One command. Context-aware. Visual dashboard.
4
6
 
7
+ ## First Response
8
+
9
+ Always start by showing the version:
10
+
11
+ ```
12
+ TLC v1.2.1
13
+ ```
14
+
15
+ Then proceed with sync check and status.
16
+
5
17
  ## What This Does
6
18
 
7
19
  Launches the TLC dashboard - a visual interface showing project state, phases, tests, and next actions.
8
20
 
9
21
  ## Process
10
22
 
11
- ### Step 0: Check Sync Status (ALWAYS FIRST)
23
+ ### Step 0: Auto-Sync Check (ALWAYS FIRST)
12
24
 
13
- Before anything else, check if codebase is synced:
25
+ Before anything else, check if sync is needed and handle it automatically:
14
26
 
15
27
  ```bash
16
28
  # Check if .tlc.json exists
17
29
  if [ ! -f ".tlc.json" ]; then
18
30
  # No TLC config - need first-time setup
19
- echo "No TLC configuration found."
20
- echo "→ Run /tlc:sync to set up TLC"
21
- exit
31
+ echo "Welcome to TLC!"
32
+ echo ""
33
+ echo "No configuration found. Let's set up your project."
34
+ echo "This configures test framework, team settings, quality gates, and more."
35
+ echo ""
36
+ echo "Run setup now? (Y/n)"
37
+ # If yes → Run /tlc:sync inline (first-time flow)
38
+ # Then continue to Step 1
22
39
  fi
23
40
 
24
41
  # Check for rebase marker
25
42
  if [ -f ".tlc-rebase-marker" ]; then
26
43
  echo "⚠️ Rebase detected since last sync."
27
- echo "→ Run /tlc:sync to reconcile changes"
28
- exit
44
+ echo ""
45
+ echo "TLC needs to reconcile incoming changes."
46
+ echo "This ensures new code meets TLC standards."
47
+ echo ""
48
+ echo "Run sync now? (Y/n)"
49
+ # If yes → Run /tlc:sync inline (post-rebase flow)
50
+ # Then continue to Step 1
29
51
  fi
30
52
 
31
53
  # Check if HEAD matches lastSync
@@ -37,12 +59,25 @@ if [ -n "$lastSync" ] && [ "$lastSync" != "$currentHead" ]; then
37
59
  echo " Last sync: ${lastSync:0:7}"
38
60
  echo " Current: ${currentHead:0:7}"
39
61
  echo ""
40
- echo "→ Run /tlc:sync to reconcile changes"
41
- exit
62
+ changedCount=$(git diff --name-only $lastSync $currentHead 2>/dev/null | wc -l)
63
+ echo " $changedCount files changed"
64
+ echo ""
65
+ echo "Run sync now? (Y/n)"
66
+ # If yes → Run /tlc:sync inline (post-rebase flow)
67
+ # Then continue to Step 1
42
68
  fi
69
+
70
+ # If we get here, sync is current
71
+ echo "✓ Synced"
43
72
  ```
44
73
 
45
- Only proceed if synced. This prevents working on out-of-sync code.
74
+ **Key behavior:**
75
+ - Detects if sync needed
76
+ - Asks for confirmation
77
+ - Runs sync flow inline (not separate command)
78
+ - Then continues to dashboard/status
79
+
80
+ User never needs to know about `/tlc:sync` as a separate command - `/tlc` handles everything.
46
81
 
47
82
  ### Step 1: Launch Dashboard
48
83