learnship 1.9.7 → 1.9.9

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "learnship",
3
3
  "description": "Agentic engineering done right — 42 structured workflows, persistent memory across sessions, integrated learning partner, and impeccable UI design system. Works with Claude Code, Windsurf, Cursor, Gemini CLI, OpenCode, and Codex.",
4
- "version": "1.9.7",
4
+ "version": "1.9.9",
5
5
  "author": {
6
6
  "name": "Favio Vazquez",
7
7
  "email": "favio.vazquezp@gmail.com"
@@ -2,7 +2,7 @@
2
2
  "name": "learnship",
3
3
  "displayName": "learnship",
4
4
  "description": "Agentic engineering done right — 42 structured workflows, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
5
- "version": "1.9.7",
5
+ "version": "1.9.9",
6
6
  "logo": "assets/logo.png",
7
7
  "author": {
8
8
  "name": "Favio Vazquez",
package/bin/install.js CHANGED
@@ -497,6 +497,7 @@ function copyDir(srcDir, destDir, pathPrefix, platform) {
497
497
  } else if (entry.name.endsWith('.md')) {
498
498
  let c = fs.readFileSync(src, 'utf8');
499
499
  c = replacePaths(c, pathPrefix, platform);
500
+ if (entry.name === 'new-project.md') c = rewriteNewProject(c, platform);
500
501
  if (platform === 'opencode') c = convertToOpencode(c);
501
502
  // gemini agents converted separately; body ${VAR} escaping done there
502
503
  fs.writeFileSync(dest, c);
@@ -525,6 +526,38 @@ function replacePaths(content, pathPrefix, platform) {
525
526
  return c;
526
527
  }
527
528
 
529
+ /** Rewrite new-project.md markers with exact platform-specific content at install time */
530
+ function rewriteNewProject(content, platform) {
531
+ const dirName = getDirName(platform);
532
+ const label = getPlatformLabel(platform);
533
+
534
+ // Platform label block
535
+ const platformLabel = `You are running on **${label}**. Platform config directory: \`${dirName}/\``;
536
+ content = content.replace('<!-- LEARNSHIP_PLATFORM_LABEL -->', platformLabel);
537
+
538
+ // Gitignore command — exact single line, no conditionals
539
+ const gitignoreCmd = `grep -q '${dirName}/' .gitignore 2>/dev/null || echo '${dirName}/' >> .gitignore`;
540
+ content = content.replace('<!-- LEARNSHIP_GITIGNORE_CMD -->', gitignoreCmd);
541
+
542
+ // Platforms that support real parallel subagents (verified against official docs)
543
+ // Windsurf: no subagents at all
544
+ // Gemini CLI: subagents exist but parallel execution is not yet shipped (GitHub issues #14963/#17749)
545
+ const supportsParallel = platform === 'claude' || platform === 'opencode' || platform === 'codex';
546
+
547
+ // Parallel execution block
548
+ let parallelBlock;
549
+ if (supportsParallel) {
550
+ parallelBlock = `**Group D — Parallel execution:**\n\n${label} supports real parallel subagents. Ask:\n\n"Do you want to enable parallel subagent execution?"\n- **No** (recommended default) — Plans execute sequentially, one at a time. Safer, easier to follow.\n- **Yes** — Each independent plan in a wave gets its own dedicated subagent with a fresh context budget. Faster, but uses more tokens.`;
551
+ } else if (platform === 'gemini') {
552
+ parallelBlock = `**Group D — Parallel execution:**\n\nGemini CLI supports subagents but only runs them sequentially — parallel execution is not yet available. Parallelization is automatically set to \`false\`.`;
553
+ } else {
554
+ parallelBlock = `**Group D — Parallel execution:**\n\n${label} does not support real subagents. Parallelization is automatically set to \`false\`.`;
555
+ }
556
+ content = content.replace('<!-- LEARNSHIP_PARALLEL_BLOCK -->', parallelBlock);
557
+
558
+ return content;
559
+ }
560
+
528
561
  /** Install Claude Code / Windsurf commands (commands/learnship/ → target/commands/learnship/) */
529
562
  function installClaudeCommands(srcDir, targetDir, pathPrefix) {
530
563
  const destDir = path.join(targetDir, 'commands', 'learnship');
@@ -1235,6 +1268,7 @@ if (process.env.LEARNSHIP_TEST_MODE) {
1235
1268
  installCodexAgents,
1236
1269
  parseJsonc,
1237
1270
  replacePaths,
1271
+ rewriteNewProject,
1238
1272
  toHomePrefix,
1239
1273
  LEARNSHIP_CODEX_MARKER,
1240
1274
  CODEX_AGENT_SANDBOX,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "learnship",
3
- "version": "1.9.7",
3
+ "version": "1.9.9",
4
4
  "description": "Agentic engineering done right — 42 structured workflows, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
5
5
  "author": "Favio Vazquez",
6
6
  "homepage": "https://faviovazquez.github.io/learnship/",
@@ -8,27 +8,7 @@ Initialize a new project with full context gathering, optional research, require
8
8
 
9
9
  ## Step 1: Setup
10
10
 
11
- **Detect the current platform** by inspecting the path of the file you are currently reading (this file). The install path uniquely identifies the platform:
12
-
13
- | If this file's path contains | Platform |
14
- |---|---|
15
- | `/.claude/` | Claude Code |
16
- | `/.codeium/` | Windsurf |
17
- | `/.config/opencode/` or `/.opencode/` | OpenCode |
18
- | `/.gemini/` | Gemini CLI |
19
- | `/.codex/` | Codex CLI |
20
-
21
- Set `PLATFORM` accordingly. If you cannot determine the path, ask: "Which platform are you running? (Windsurf / Claude Code / OpenCode / Gemini CLI / Codex CLI)"
22
-
23
- Platform determines:
24
- - Which directory to add to `.gitignore` (so AI config files aren't tracked)
25
- - Whether to ask the parallelization question (Group D below)
26
- - The gitignore directory by platform:
27
- - **Claude Code** → `.claude/`
28
- - **Windsurf** → `.windsurf/`
29
- - **OpenCode** → `.opencode/`
30
- - **Gemini CLI** → `.gemini/`
31
- - **Codex CLI** → `.codex/`
11
+ <!-- LEARNSHIP_PLATFORM_LABEL -->
32
12
 
33
13
  Check if `.planning/PROJECT.md` already exists:
34
14
 
@@ -49,22 +29,11 @@ test -d .git && echo "HAS_GIT" || echo "NO_GIT"
49
29
  git init
50
30
  ```
51
31
 
52
- Add the platform config directory to `.gitignore` so AI platform files are not tracked in the project repo. Use the platform-specific directory detected above:
32
+ Add the platform config directory to `.gitignore` so AI platform files are not tracked in the project repo:
53
33
  ```bash
54
- # For Claude Code:
55
- grep -q '.claude/' .gitignore 2>/dev/null || echo '.claude/' >> .gitignore
56
- # For Windsurf:
57
- # grep -q '.windsurf/' .gitignore 2>/dev/null || echo '.windsurf/' >> .gitignore
58
- # For OpenCode:
59
- # grep -q '.opencode/' .gitignore 2>/dev/null || echo '.opencode/' >> .gitignore
60
- # For Gemini CLI:
61
- # grep -q '.gemini/' .gitignore 2>/dev/null || echo '.gemini/' >> .gitignore
62
- # For Codex CLI:
63
- # grep -q '.codex/' .gitignore 2>/dev/null || echo '.codex/' >> .gitignore
34
+ <!-- LEARNSHIP_GITIGNORE_CMD -->
64
35
  ```
65
36
 
66
- Run only the line matching the detected platform.
67
-
68
37
  Create the planning directory:
69
38
  ```bash
70
39
  mkdir -p .planning/research
@@ -98,15 +67,7 @@ Ask: "Which workflow agents should be enabled?"
98
67
  - **Plan Check** (recommended) — Verify plans achieve their goals before execution
99
68
  - **Verifier** (recommended) — Confirm deliverables match phase goals after execution
100
69
 
101
- **Group D — Parallel execution:**
102
-
103
- **If PLATFORM is `WINDSURF`:** Skip this question entirely. Set `parallelization: false` automatically. Windsurf does not support real subagents.
104
-
105
- **If PLATFORM is `CLAUDE`, `OPENCODE`, `GEMINI`, or `CODEX`:** Ask this question — these platforms support real subagents:
106
-
107
- Ask: "Do you want to enable parallel subagent execution?"
108
- - **No** (recommended default) — Plans execute sequentially, one at a time. Safer, easier to follow.
109
- - **Yes** — Each independent plan in a wave gets its own dedicated subagent with a fresh context budget. Faster, but uses more tokens.
70
+ <!-- LEARNSHIP_PARALLEL_BLOCK -->
110
71
 
111
72
  Ask: "Commit planning docs to git?"
112
73
  - **Yes** (recommended) — Planning docs tracked in version control
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "learnship",
3
- "version": "1.9.7",
3
+ "version": "1.9.9",
4
4
  "description": "Learn as you build. Build with intent. — A multi-platform agentic engineering system for Windsurf, Claude Code, Cursor, OpenCode, Gemini CLI, and Codex: spec-driven workflows, integrated learning, and production-grade design.",
5
5
  "keywords": [
6
6
  "agentic",