@planu/cli 4.3.3 → 4.3.4

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/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [4.3.4] - 2026-05-22
2
+
3
+ **Tarball SHA-256:** `e1ac042fd623c1421d7a0788fed14c369472489180ffe80eb8bce4d422d360d8`
4
+
5
+ ### Bug Fixes
6
+ - fix(planu): keep host adapters outside managed state
7
+
8
+
1
9
  ## [4.3.3] - 2026-05-22
2
10
 
3
11
  **Tarball SHA-256:** `d681d7d176a263f3b059c4ed5fbc7647a17758dc3c56cc79fd47658bab082fe6`
@@ -4,6 +4,7 @@ export const PLANU_CANONICAL_POLICY = {
4
4
  canonicalRootFiles: ['conventions.json', 'context.md', 'session-context.md', 'session.json'],
5
5
  canonicalRootDirs: ['releases', 'specs'],
6
6
  canonicalSpecFiles: ['spec.md'],
7
+ forbiddenHostAssetRootDirs: ['agents', 'skills', 'rules', 'hooks'],
7
8
  generatedRuntimePatterns: [
8
9
  'planu/index.html',
9
10
  'planu/roadmap.html',
@@ -57,6 +58,12 @@ export function canonicalContractText() {
57
58
  ' specs/',
58
59
  ' SPEC-XXX-slug/',
59
60
  ' spec.md',
61
+ '',
62
+ 'Host adapters are written outside planu/:',
63
+ ' Claude Code: .claude/agents, .claude/skills, .claude/rules',
64
+ ' Codex: AGENTS.md, .agents/skills, .codex/agents',
65
+ ' Gemini: GEMINI.md, .gemini/skills',
66
+ ' Cursor: .cursor/rules/planu.mdc',
60
67
  ].join('\n');
61
68
  }
62
69
  //# sourceMappingURL=planu-canonical-policy.js.map
@@ -13,6 +13,7 @@ import { join } from 'node:path';
13
13
  import { detectCodexWorkspace } from './workspace-scope.js';
14
14
  import { buildRulesForHost } from '../../engine/host-rules-templates/index.js';
15
15
  import { assertEnglishOnlyArtifactText } from '../../engine/spec-language/english-only.js';
16
+ import { generateImplementerRole, generateReviewerRole, generateSpecWriterRole, } from '../../engine/ai-integration/codex/agent-roles-generator.js';
16
17
  const CODEX_CONFIG_TOML = `# .openai/config.toml — Planu Codex workspace configuration
17
18
  # Auto-generated by Planu init_project. Safe to customize.
18
19
 
@@ -69,6 +70,7 @@ export async function scaffoldCodexConfig(projectPath, planuVersion = '1.96.0')
69
70
  await mkdir(openaiDir, { recursive: true });
70
71
  await writeIfMissing(join(openaiDir, 'config.toml'), CODEX_CONFIG_TOML);
71
72
  await writeIfMissing(join(projectPath, 'AGENTS.md'), AGENTS_MD_CONTENT);
73
+ await scaffoldCodexAgentRoles(projectPath);
72
74
  await injectRulesBlock(join(projectPath, 'AGENTS.md'), planuVersion);
73
75
  }
74
76
  // ---------------------------------------------------------------------------
@@ -86,6 +88,15 @@ async function writeIfMissing(filePath, content) {
86
88
  await writeFile(filePath, content, 'utf-8');
87
89
  }
88
90
  }
91
+ async function scaffoldCodexAgentRoles(projectPath) {
92
+ const agentsDir = join(projectPath, '.codex', 'agents');
93
+ await mkdir(agentsDir, { recursive: true });
94
+ await Promise.all([
95
+ writeIfMissing(join(agentsDir, 'spec-writer.toml'), generateSpecWriterRole()),
96
+ writeIfMissing(join(agentsDir, 'implementer.toml'), generateImplementerRole()),
97
+ writeIfMissing(join(agentsDir, 'reviewer.toml'), generateReviewerRole()),
98
+ ]);
99
+ }
89
100
  const PLANU_RULES_BLOCK_REGEX = /<!-- planu:rules:start[\s\S]*?<!-- planu:rules:end -->/;
90
101
  const PLANU_RULES_START_REGEX = /<!-- planu:rules:start[^>]* -->/;
91
102
  /**
@@ -47,6 +47,7 @@ export interface PlanuCanonicalPathPolicy {
47
47
  readonly canonicalRootFiles: readonly string[];
48
48
  readonly canonicalRootDirs: readonly string[];
49
49
  readonly canonicalSpecFiles: readonly string[];
50
+ readonly forbiddenHostAssetRootDirs: readonly string[];
50
51
  readonly generatedRuntimePatterns: readonly string[];
51
52
  readonly legacyMergeBeforeDeleteFiles: readonly string[];
52
53
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planu/cli",
3
- "version": "4.3.3",
3
+ "version": "4.3.4",
4
4
  "description": "Planu — MCP Server for Spec Driven Development with native Rust acceleration for hot paths. Cross-platform (Linux/macOS/Windows, x64/arm64, glibc/musl).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -32,14 +32,14 @@
32
32
  "packageName": "@planu/core"
33
33
  },
34
34
  "optionalDependencies": {
35
- "@planu/core-darwin-arm64": "4.3.3",
36
- "@planu/core-darwin-x64": "4.3.3",
37
- "@planu/core-linux-arm64-gnu": "4.3.3",
38
- "@planu/core-linux-arm64-musl": "4.3.3",
39
- "@planu/core-linux-x64-gnu": "4.3.3",
40
- "@planu/core-linux-x64-musl": "4.3.3",
41
- "@planu/core-win32-arm64-msvc": "4.3.3",
42
- "@planu/core-win32-x64-msvc": "4.3.3"
35
+ "@planu/core-darwin-arm64": "4.3.4",
36
+ "@planu/core-darwin-x64": "4.3.4",
37
+ "@planu/core-linux-arm64-gnu": "4.3.4",
38
+ "@planu/core-linux-arm64-musl": "4.3.4",
39
+ "@planu/core-linux-x64-gnu": "4.3.4",
40
+ "@planu/core-linux-x64-musl": "4.3.4",
41
+ "@planu/core-win32-arm64-msvc": "4.3.4",
42
+ "@planu/core-win32-x64-msvc": "4.3.4"
43
43
  },
44
44
  "engines": {
45
45
  "node": ">=24.0.0"