cc-starter 1.0.0 → 1.0.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/lib/plugins.js CHANGED
@@ -19,7 +19,7 @@ function isClaudeAvailable() {
19
19
  *
20
20
  * - If no plugins are selected, prints a dim note and returns.
21
21
  * - If the `claude` CLI is not found, prints manual-install instructions.
22
- * - Otherwise attempts `claude plugins add` for each plugin, falling back
22
+ * - Otherwise attempts `claude plugin install` for each plugin, falling back
23
23
  * to manual instructions on failure.
24
24
  *
25
25
  * @param {Array<{ name: string, source: string }>} plugins
@@ -37,7 +37,7 @@ export async function installPlugins(plugins) {
37
37
  console.log(chalk.dim(' Install Claude Code first: https://claude.ai/download'));
38
38
  console.log(chalk.dim(' Then install plugins manually:\n'));
39
39
  for (const p of plugins) {
40
- console.log(chalk.dim(` claude plugins add ${p.name}@${p.source}`));
40
+ console.log(chalk.dim(` claude plugin install ${p.name}@${p.source}`));
41
41
  }
42
42
  return;
43
43
  }
@@ -46,6 +46,12 @@ export async function installPlugins(plugins) {
46
46
 
47
47
  console.log(chalk.cyan('\n Installing plugins...\n'));
48
48
 
49
+ // Show what will be installed
50
+ for (const p of plugins) {
51
+ console.log(chalk.white(` ${p.name}`) + chalk.dim(` — ${p.desc}`));
52
+ }
53
+ console.log('');
54
+
49
55
  let installed = 0;
50
56
  let failed = 0;
51
57
 
@@ -53,15 +59,15 @@ export async function installPlugins(plugins) {
53
59
  const ref = `${plugin.name}@${plugin.source}`;
54
60
  try {
55
61
  console.log(chalk.dim(` Installing ${plugin.name}...`));
56
- execSync(`claude plugins add ${ref}`, {
62
+ execSync(`claude plugin install ${ref}`, {
57
63
  stdio: 'inherit',
58
64
  timeout: 30000,
59
65
  });
60
- console.log(chalk.green(` ✓ ${plugin.name} installed`));
66
+ console.log(chalk.green(` ✓ ${plugin.name}`));
61
67
  installed++;
62
68
  } catch {
63
69
  console.log(chalk.yellow(` ⚠ ${plugin.name} — manual install needed:`));
64
- console.log(chalk.dim(` claude plugins add ${ref}`));
70
+ console.log(chalk.dim(` claude plugin install ${ref}`));
65
71
  failed++;
66
72
  }
67
73
  }
package/lib/scaffold.js CHANGED
@@ -119,7 +119,7 @@ function copyClaudeDir(action, cwd) {
119
119
  let skipped = 0;
120
120
 
121
121
  const subdirs = [
122
- { dir: 'rules', files: ['01-general.md', '02-code-standards.md', '03-dev-ops.md'] },
122
+ { dir: 'rules', files: ['01-general.md', '02-code-standards.md', '03-dev-ops.md', '04-token-efficiency.md'] },
123
123
  { dir: 'memory', files: ['MEMORY.md'] },
124
124
  { dir: 'project', files: ['README.md'] },
125
125
  { dir: 'reference', files: ['README.md'] },
package/lib/wizard.js CHANGED
@@ -66,10 +66,10 @@ export async function wizard(techStack = []) {
66
66
  name: 'pluginPreset',
67
67
  message: 'Plugin preset:',
68
68
  choices: [
69
- { name: `Minimal — ${PLUGIN_PRESETS.minimal.length} plugin`, value: 'minimal' },
70
- { name: `Standard — ${PLUGIN_PRESETS.standard.length} plugins`, value: 'standard' },
71
- { name: `Full — ${PLUGIN_PRESETS.full.length} plugins`, value: 'full' },
72
- { name: 'Custom — pick individual plugins', value: 'custom' }
69
+ { name: `Minimal — ${PLUGIN_PRESETS.minimal.map(p => p.name).join(', ')}`, value: 'minimal' },
70
+ { name: `Standard — ${PLUGIN_PRESETS.standard.map(p => p.name).join(', ')}`, value: 'standard' },
71
+ { name: `Full — ${PLUGIN_PRESETS.full.map(p => p.name).join(', ')}`, value: 'full' },
72
+ { name: 'Custom — pick individual plugins', value: 'custom' }
73
73
  ]
74
74
  },
75
75
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-starter",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Claude Code Project Kickstart — scaffolds an optimized dev environment with token-saving scripts, COCOMO estimation, and interactive plugin setup",
5
5
  "type": "module",
6
6
  "bin": {
@@ -34,6 +34,7 @@ See `.claude/rules/` for working rules:
34
34
  - `01-general.md` — Task tracking, planning, verification
35
35
  - `02-code-standards.md` — Code quality, security, testing
36
36
  - `03-dev-ops.md` — Git, environment, deployment
37
+ - `04-token-efficiency.md` — **PFLICHT:** Vibe-Code Scripts nutzen bevor Dateien gelesen werden
37
38
 
38
39
  ### Memory System
39
40
  Persistent memory across sessions in `.claude/memory/`.
@@ -0,0 +1,45 @@
1
+ # Token Efficiency Rules
2
+
3
+ ## PFLICHT: Vibe-Code Scripts BEVOR du große Dateien liest!
4
+
5
+ **Diese Scripts sparen ~90% Tokens. Nutze sie IMMER bevor du eine Datei mit Read öffnest.**
6
+
7
+ ### Verfügbare Commands
8
+
9
+ ```bash
10
+ # Types/Interfaces/Enums einer Datei extrahieren (statt ganze Datei zu lesen)
11
+ node scripts/stats/vibe-code.js types <file>
12
+
13
+ # Verzeichnisstruktur anzeigen (statt jeden Ordner einzeln zu lesen)
14
+ node scripts/stats/vibe-code.js tree [dir]
15
+
16
+ # Imports einer Datei anzeigen (für Dependency-Checks)
17
+ node scripts/stats/vibe-code.js imports <file>
18
+
19
+ # Funktions-Signaturen extrahieren (statt ganze Datei zu lesen)
20
+ node scripts/stats/vibe-code.js functions <file>
21
+ ```
22
+
23
+ ### Wann nutzen
24
+
25
+ | Situation | Statt | Nutze |
26
+ |-----------|-------|-------|
27
+ | Du willst wissen welche Types eine Datei hat | `Read` der ganzen Datei | `vibe-code.js types <file>` |
28
+ | Du brauchst einen Überblick über einen Ordner | Mehrere `Read`/`ls` Aufrufe | `vibe-code.js tree <dir>` |
29
+ | Du willst Abhängigkeiten einer Datei checken | `Read` und manuell suchen | `vibe-code.js imports <file>` |
30
+ | Du willst die API einer Datei verstehen | `Read` der ganzen Datei | `vibe-code.js functions <file>` |
31
+
32
+ ### NIEMALS
33
+
34
+ - Große Dateien (200+ Zeilen) komplett lesen ohne vorher `types` oder `functions` zu checken
35
+ - Ordnerstrukturen manuell mit `ls` oder `Glob` erkunden wenn `tree` das in einem Aufruf erledigt
36
+ - Token verschwenden indem du Code liest den du nicht brauchst
37
+
38
+ ### Token-Tracking
39
+
40
+ Nach der Nutzung werden Einsparungen automatisch in `.vibe-stats.json` getrackt.
41
+ Fortschritt prüfen:
42
+ ```bash
43
+ node scripts/stats/vibe-stats.js summary # Einzeiler: Gesamt-Einsparung
44
+ node scripts/stats/vibe-stats.js report # Detaillierter Report
45
+ ```