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 +44 -4
- package/bin/install.js +5 -2
- package/help.md +17 -17
- package/package.json +1 -1
- package/tlc.md +45 -10
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
|
-
##
|
|
30
|
+
## FIRST THING - Always Run /tlc
|
|
31
31
|
|
|
32
|
-
|
|
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
|
-
|
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
**
|
|
104
|
+
**Just one command:**
|
|
102
105
|
```
|
|
103
|
-
/tlc
|
|
104
|
-
/tlc <- Then just keep running this
|
|
106
|
+
/tlc <- Always start here
|
|
105
107
|
```
|
|
106
108
|
|
|
107
|
-
|
|
109
|
+
That's it. `/tlc` handles everything:
|
|
110
|
+
|
|
108
111
|
```
|
|
109
|
-
/tlc
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
|
122
|
-
↓
|
|
123
|
-
/tlc:sync Reconcile incoming code
|
|
123
|
+
git rebase origin/main
|
|
124
124
|
↓
|
|
125
|
-
/tlc
|
|
125
|
+
/tlc ← Detects changes, asks, syncs, continues
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
---
|
package/package.json
CHANGED
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:
|
|
23
|
+
### Step 0: Auto-Sync Check (ALWAYS FIRST)
|
|
12
24
|
|
|
13
|
-
Before anything else, check if
|
|
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 "
|
|
20
|
-
echo "
|
|
21
|
-
|
|
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 "
|
|
28
|
-
|
|
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
|
-
|
|
41
|
-
|
|
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
|
-
|
|
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
|
|