@pareto4/pp-core 1.5.1 → 1.5.3

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.
Files changed (158) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/agents/pp-advisor-researcher.md +1 -1
  3. package/agents/pp-ai-researcher.md +1 -1
  4. package/agents/pp-assumptions-analyzer.md +1 -1
  5. package/agents/pp-code-fixer.md +2 -2
  6. package/agents/pp-codebase-mapper.md +2 -2
  7. package/agents/pp-debug-session-manager.md +1 -1
  8. package/agents/pp-debugger.md +2 -2
  9. package/agents/pp-doc-classifier.md +1 -1
  10. package/agents/pp-doc-synthesizer.md +1 -1
  11. package/agents/pp-doc-verifier.md +1 -1
  12. package/agents/pp-doc-writer.md +12 -12
  13. package/agents/pp-domain-researcher.md +1 -1
  14. package/agents/pp-eval-planner.md +1 -1
  15. package/agents/pp-executor.md +4 -4
  16. package/agents/pp-framework-selector.md +1 -1
  17. package/agents/pp-intel-updater.md +13 -13
  18. package/agents/pp-pattern-mapper.md +1 -1
  19. package/agents/pp-phase-researcher.md +4 -4
  20. package/agents/pp-plan-checker.md +2 -2
  21. package/agents/pp-planner.md +6 -6
  22. package/agents/pp-project-researcher.md +3 -3
  23. package/agents/pp-research-synthesizer.md +2 -2
  24. package/agents/pp-roadmapper.md +2 -2
  25. package/agents/pp-ui-checker.md +1 -1
  26. package/agents/pp-ui-researcher.md +1 -1
  27. package/agents/pp-user-profiler.md +1 -1
  28. package/agents/pp-verifier.md +4 -4
  29. package/bin/install.js +47 -23
  30. package/commands/pp-autonomous.md +3 -3
  31. package/commands/pp-capture.md +1 -1
  32. package/commands/pp-code-review.md +1 -1
  33. package/commands/pp-config.md +4 -4
  34. package/commands/pp-debug.md +1 -1
  35. package/commands/pp-docs-update.md +2 -2
  36. package/commands/pp-execute-phase.md +1 -1
  37. package/commands/pp-explore.md +1 -1
  38. package/commands/pp-forensics.md +2 -2
  39. package/commands/pp-graphify.md +8 -8
  40. package/commands/pp-health.md +1 -1
  41. package/commands/pp-help.md +2 -2
  42. package/commands/pp-import.md +4 -4
  43. package/commands/pp-manager.md +2 -2
  44. package/commands/pp-mempalace-capture.md +2 -2
  45. package/commands/pp-mempalace-recall.md +4 -4
  46. package/commands/pp-mvp-phase.md +2 -2
  47. package/commands/pp-ns-manage.md +4 -4
  48. package/commands/pp-ns-workflow.md +1 -1
  49. package/commands/pp-plan-review-convergence.md +5 -5
  50. package/commands/pp-pr-branch.md +1 -1
  51. package/commands/pp-profile-user.md +1 -1
  52. package/commands/pp-progress.md +5 -5
  53. package/commands/pp-quick.md +5 -5
  54. package/commands/pp-review-backlog.md +2 -2
  55. package/commands/pp-settings.md +2 -2
  56. package/commands/pp-sketch.md +1 -1
  57. package/commands/pp-spike.md +1 -1
  58. package/commands/pp-surface.md +4 -4
  59. package/commands/pp-ultraplan-phase.md +1 -1
  60. package/commands/pp-undo.md +2 -2
  61. package/commands/pp-update.md +4 -4
  62. package/commands/pp-workspace.md +4 -4
  63. package/commands/pp-workstreams.md +8 -8
  64. package/gemini-extension.json +1 -1
  65. package/package.json +1 -1
  66. package/pp-core/references/agent-contracts.md +1 -1
  67. package/pp-core/references/artifact-types.md +2 -2
  68. package/pp-core/references/context-budget.md +2 -2
  69. package/pp-core/references/doc-conflict-engine.md +2 -2
  70. package/pp-core/references/edge-probe.md +2 -2
  71. package/pp-core/references/gates.md +1 -1
  72. package/pp-core/references/git-integration.md +3 -3
  73. package/pp-core/references/model-profiles.md +8 -8
  74. package/pp-core/references/planner-human-verify-mode.md +1 -1
  75. package/pp-core/references/planning-config.md +7 -7
  76. package/pp-core/references/prohibition-probe.md +2 -2
  77. package/pp-core/references/project-skills-discovery.md +1 -1
  78. package/pp-core/references/thinking-models-debug.md +1 -1
  79. package/pp-core/references/thinking-models-execution.md +1 -1
  80. package/pp-core/references/thinking-models-planning.md +1 -1
  81. package/pp-core/references/thinking-models-research.md +1 -1
  82. package/pp-core/references/thinking-models-verification.md +1 -1
  83. package/pp-core/references/ui-brand.md +3 -3
  84. package/pp-core/references/universal-anti-patterns.md +4 -4
  85. package/pp-core/references/workstream-flag.md +8 -8
  86. package/pp-core/templates/README.md +4 -4
  87. package/pp-core/templates/claude-md.md +2 -2
  88. package/pp-core/templates/codebase/architecture.md +2 -2
  89. package/pp-core/templates/codebase/structure.md +1 -1
  90. package/pp-core/templates/copilot-instructions.md +3 -3
  91. package/pp-core/templates/dev-preferences.md +1 -1
  92. package/pp-core/templates/research.md +1 -1
  93. package/pp-core/templates/summary-complex.md +1 -1
  94. package/pp-core/workflows/add-tests.md +2 -2
  95. package/pp-core/workflows/add-todo.md +1 -1
  96. package/pp-core/workflows/ai-integration-phase.md +3 -3
  97. package/pp-core/workflows/audit-milestone.md +1 -1
  98. package/pp-core/workflows/autonomous.md +9 -9
  99. package/pp-core/workflows/debug.md +1 -1
  100. package/pp-core/workflows/diagnose-issues.md +2 -2
  101. package/pp-core/workflows/discuss-phase/modes/chain.md +2 -2
  102. package/pp-core/workflows/discuss-phase-assumptions.md +2 -2
  103. package/pp-core/workflows/do.md +4 -4
  104. package/pp-core/workflows/docs-update.md +5 -5
  105. package/pp-core/workflows/eval-review.md +3 -3
  106. package/pp-core/workflows/execute-phase.md +5 -5
  107. package/pp-core/workflows/execute-plan.md +1 -1
  108. package/pp-core/workflows/explore.md +2 -2
  109. package/pp-core/workflows/extract-learnings.md +1 -1
  110. package/pp-core/workflows/forensics.md +1 -1
  111. package/pp-core/workflows/health.md +2 -2
  112. package/pp-core/workflows/help/modes/brief.md +2 -2
  113. package/pp-core/workflows/help/modes/default.md +7 -7
  114. package/pp-core/workflows/help/modes/full.md +16 -16
  115. package/pp-core/workflows/help.md +1 -1
  116. package/pp-core/workflows/import.md +11 -11
  117. package/pp-core/workflows/inbox.md +4 -4
  118. package/pp-core/workflows/ingest-docs.md +5 -5
  119. package/pp-core/workflows/list-workspaces.md +4 -4
  120. package/pp-core/workflows/manager.md +6 -6
  121. package/pp-core/workflows/map-codebase.md +2 -2
  122. package/pp-core/workflows/mvp-phase.md +12 -12
  123. package/pp-core/workflows/new-milestone.md +9 -9
  124. package/pp-core/workflows/new-project.md +12 -12
  125. package/pp-core/workflows/new-workspace.md +5 -5
  126. package/pp-core/workflows/next.md +4 -4
  127. package/pp-core/workflows/note.md +1 -1
  128. package/pp-core/workflows/plan-phase.md +13 -13
  129. package/pp-core/workflows/plan-review-convergence.md +3 -3
  130. package/pp-core/workflows/plant-seed.md +1 -1
  131. package/pp-core/workflows/pr-branch.md +2 -2
  132. package/pp-core/workflows/profile-user.md +2 -2
  133. package/pp-core/workflows/progress.md +1 -1
  134. package/pp-core/workflows/quick.md +15 -15
  135. package/pp-core/workflows/reapply-patches.md +6 -6
  136. package/pp-core/workflows/remove-workspace.md +1 -1
  137. package/pp-core/workflows/review.md +3 -3
  138. package/pp-core/workflows/scan.md +1 -1
  139. package/pp-core/workflows/secure-phase.md +4 -4
  140. package/pp-core/workflows/session-report.md +1 -1
  141. package/pp-core/workflows/settings-advanced.md +6 -6
  142. package/pp-core/workflows/settings-integrations.md +2 -2
  143. package/pp-core/workflows/settings.md +2 -2
  144. package/pp-core/workflows/ship.md +2 -2
  145. package/pp-core/workflows/sketch-wrap-up.md +2 -2
  146. package/pp-core/workflows/sketch.md +2 -2
  147. package/pp-core/workflows/spec-phase.md +4 -4
  148. package/pp-core/workflows/spike-wrap-up.md +2 -2
  149. package/pp-core/workflows/spike.md +2 -2
  150. package/pp-core/workflows/sync-skills.md +6 -6
  151. package/pp-core/workflows/thread.md +1 -1
  152. package/pp-core/workflows/ui-phase.md +4 -4
  153. package/pp-core/workflows/ui-review.md +4 -4
  154. package/pp-core/workflows/ultraplan-phase.md +6 -6
  155. package/pp-core/workflows/undo.md +6 -6
  156. package/pp-core/workflows/update.md +12 -12
  157. package/pp-core/workflows/validate-phase.md +4 -4
  158. package/pp-core/workflows/verify-work.md +5 -5
@@ -235,7 +235,7 @@ overrides:
235
235
 
236
236
  ## Step 4: Verify Artifacts (Three Levels)
237
237
 
238
- Use `gsd-tools query` for artifact verification against must_haves in PLAN frontmatter:
238
+ Use `pp-tools query` for artifact verification against must_haves in PLAN frontmatter:
239
239
 
240
240
  ```bash
241
241
  ARTIFACT_RESULT=$(pp_run query verify.artifacts "$PLAN_PATH")
@@ -341,7 +341,7 @@ grep -r -A 3 "<${COMPONENT_NAME}" "${search_path:-src/}" --include="*.tsx" 2>/de
341
341
 
342
342
  Key links are critical connections. If broken, the goal fails even with all artifacts present.
343
343
 
344
- Use `gsd-tools query` for key link verification against must_haves in PLAN frontmatter:
344
+ Use `pp-tools query` for key link verification against must_haves in PLAN frontmatter:
345
345
 
346
346
  ```bash
347
347
  LINKS_RESULT=$(pp_run query verify.key-links "$PLAN_PATH")
@@ -601,7 +601,7 @@ Classify status using this decision tree IN ORDER (most restrictive first):
601
601
 
602
602
  **A ⚠️ PRESENT_BEHAVIOR_UNVERIFIED truth is never FAILED and never VERIFIED.** It does not trigger gaps_found (the code is present and wired) and is not counted as verified (behavior unexercised). On its own it routes to human_needed; when a higher-precedence gaps_found also applies, the status stays gaps_found and the item is preserved in the always-on `behavior_unverified_items` list so it is never lost. Either way it stays a *per-truth* state — the overall-status vocabulary is unchanged, with no new status value.
603
603
 
604
- > **Shared status seam**: the status vocabulary (`passed`, `gaps_found`, `human_needed`) and the per-status routing (next action and next command for each value) are owned by `src/verification.cts` via `pp_run query verification.status`. This agent is the single emitter of the frontmatter status field; consumers (ship.md, execute-phase.md) read routing from that query instead of re-deriving it.
604
+ > **Shared status seam**: the status vocabulary (`passed`, `gaps_found`, `human_needed`) and the per-status routing (next action and next command for each value) are owned by `src/verification.cts` via `pp-tools query verification.status`. This agent is the single emitter of the frontmatter status field; consumers (ship.md, execute-phase.md) read routing from that query instead of re-deriving it.
605
605
 
606
606
  **Score (presence- vs behavior-verified split):**
607
607
 
@@ -700,7 +700,7 @@ Deferred items are informational only — they do not require closure plans.
700
700
  USER_STORY_VALID=$(pp_run query user-story.validate --story "$PHASE_GOAL" --pick valid)
701
701
  ```
702
702
 
703
- If `valid != true`, refuse to verify. Surface the discrepancy and ask the user to run `/gsd mvp-phase ${PHASE}` to set a proper User Story goal. The verb owns the canonical regex `/^As a .+, I want to .+, so that .+\.$/` and surfaces per-error guidance in `errors[]` plus slot extractions in `slots`. Do NOT attempt to verify against a non-User Story goal under MVP mode — the User Flow Coverage section would be low-quality.
703
+ If `valid != true`, refuse to verify. Surface the discrepancy and ask the user to run `/pp:mvp-phase ${PHASE}` to set a proper User Story goal. The verb owns the canonical regex `/^As a .+, I want to .+, so that .+\.$/` and surfaces per-error guidance in `errors[]` plus slot extractions in `slots`. Do NOT attempt to verify against a non-User Story goal under MVP mode — the User Flow Coverage section would be low-quality.
704
704
 
705
705
  **Mode is all-or-nothing per phase** (PRD decision Q1, inherited from Phase 1). The MVP Mode Verification rules apply to the whole phase or not at all.
706
706
 
package/bin/install.js CHANGED
@@ -386,7 +386,7 @@ const _profileArgRaw = (() => {
386
386
  // 1. --minimal / --core-only → 'core' (back-compat alias)
387
387
  // 2. --profile=<name> → named profile
388
388
  // 3. neither → 'full' (default, back-compat)
389
- // Note: when re-running as `gsd update` the marker is read later (after
389
+ // Note: when re-running as `pp update` the marker is read later (after
390
390
  // configDir is resolved) and may override 'full' — see writeActiveProfile call below.
391
391
  const _profileIsCore = _profileArgRaw === 'core';
392
392
  const _requestedProfileName = (hasMinimal || _profileIsCore) ? 'core' : (_profileArgRaw || null);
@@ -534,15 +534,15 @@ function getGlobalDir(runtime, explicitDir = null) {
534
534
  return getGlobalConfigDir(runtime, explicitDir);
535
535
  }
536
536
  const banner = '\n' +
537
- cyan + ' ██████╗ ███████╗██████╗\n' +
538
- ' ██╔════╝ ██╔════╝██╔══██╗\n' +
539
- ' ██║ ███╗███████╗██║ ██║\n' +
540
- ' ██║ ██║╚════██║██║ ██║\n' +
541
- ' ╚██████╔╝███████║██████╔╝\n' +
542
- ' ╚═════╝ ╚══════╝╚═════╝' + reset + '\n' +
537
+ cyan + ' ██████╗ ██████╗ ██████╗ ██████╗ ██████╗ ███████╗\n' +
538
+ ' ██╔══██╗██╔══██╗ ██╔════╝██╔═══██╗██╔══██╗██╔════╝\n' +
539
+ ' ██████╔╝██████╔╝ ██║ ██║ ██║██████╔╝█████╗\n' +
540
+ ' ██╔═══╝ ██╔═══╝ ██║ ██║ ██║██╔══██╗██╔══╝\n' +
541
+ ' ██║ ██║ ╚██████╗╚██████╔╝██║ ██║███████╗\n' +
542
+ ' ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝' + reset + '\n' +
543
543
  '\n' +
544
- ' GSD Core ' + dim + 'v' + pkg.version + reset + '\n' +
545
- ' Git. Ship. Done.\n' +
544
+ ' pp-core ' + dim + 'v' + pkg.version + reset + '\n' +
545
+ ' The Pareto delivery framework.\n' +
546
546
  ' A meta-prompting, context engineering and spec-driven\n' +
547
547
  ' development workflows for Claude Code, OpenCode, Gemini, Kimi CLI, Kilo, Codex, Copilot, Antigravity, Cursor, Windsurf, Augment, Trae, Qwen Code, Hermes Agent, Cline and CodeBuddy.\n';
548
548
 
@@ -601,7 +601,7 @@ if (hasUninstall) {
601
601
 
602
602
  // Show help if requested
603
603
  if (hasHelp) {
604
- console.log(` ${yellow}Usage:${reset} npx ${pkg.name} [options]\n\n ${yellow}Options:${reset}\n ${cyan}-g, --global${reset} Install globally (to config directory)\n ${cyan}-l, --local${reset} Install locally (to current directory)\n ${cyan}--claude${reset} Install for Claude Code only\n ${cyan}--opencode${reset} Install for OpenCode only\n ${cyan}--gemini${reset} Install for Gemini only\n ${cyan}--kilo${reset} Install for Kilo only\n ${cyan}--codex${reset} Install for Codex only\n ${cyan}--kimi${reset} Install for Kimi CLI only\n ${cyan}--copilot${reset} Install for Copilot only\n ${cyan}--antigravity${reset} Install for Antigravity only\n ${cyan}--cursor${reset} Install for Cursor only\n ${cyan}--windsurf${reset} Install for Windsurf only\n ${cyan}--augment${reset} Install for Augment only\n ${cyan}--trae${reset} Install for Trae only\n ${cyan}--qwen${reset} Install for Qwen Code only\n ${cyan}--hermes${reset} Install for Hermes Agent only\n ${cyan}--cline${reset} Install for Cline only\n ${cyan}--codebuddy${reset} Install for CodeBuddy only\n ${cyan}--all${reset} Install for all runtimes\n ${cyan}-u, --uninstall${reset} Uninstall GSD (remove all GSD files)\n ${cyan}-c, --config-dir <path>${reset} Specify custom config directory\n ${cyan}-h, --help${reset} Show this help message\n ${cyan}--force-statusline${reset} Replace existing statusline config\n ${cyan}--portable-hooks${reset} Emit \$HOME-relative hook paths in settings.json\n (for WSL/Docker bind-mount setups; also GSD_PORTABLE_HOOKS=1)\n ${cyan}--profile=<name>${reset} Install a named skill profile. Profiles:\n core — ${PROFILES.core.length} main-loop skills incl. phase (~130 desc tokens)\n standard — ${PROFILES.standard.length} skills incl. phase, review, config (~700)\n full — all skills (default)\n Composable: --profile=core,audit installs union of closures.\n Profile is persisted and respected by \`gsd update\`.\n ${cyan}--minimal${reset} Alias for --profile=core (back-compat).\n Cuts cold-start overhead from ~12k tokens to ~700.\n Alias: --core-only.\n\n ${yellow}Examples:${reset}\n ${dim}# Interactive install (prompts for runtime and location)${reset}\n npx ${pkg.name}\n\n ${dim}# Install for Claude Code globally${reset}\n npx ${pkg.name} --claude --global\n\n ${dim}# Install for Gemini globally${reset}\n npx ${pkg.name} --gemini --global\n\n ${dim}# Install for Kilo globally${reset}\n npx ${pkg.name} --kilo --global\n\n ${dim}# Install for Codex globally${reset}\n npx ${pkg.name} --codex --global\n\n ${dim}# Install for Kimi CLI globally${reset}\n npx ${pkg.name} --kimi --global\n\n ${dim}# Install for Kimi CLI under ~/.kimi-code${reset}\n npx ${pkg.name} --kimi --global --config-dir ~/.kimi-code\n\n ${dim}# Install for Copilot globally${reset}\n npx ${pkg.name} --copilot --global\n\n ${dim}# Install for Copilot locally${reset}\n npx ${pkg.name} --copilot --local\n\n ${dim}# Install for Antigravity globally${reset}\n npx ${pkg.name} --antigravity --global\n\n ${dim}# Install for Antigravity locally${reset}\n npx ${pkg.name} --antigravity --local\n\n ${dim}# Install for Cursor globally${reset}\n npx ${pkg.name} --cursor --global\n\n ${dim}# Install for Cursor locally${reset}\n npx ${pkg.name} --cursor --local\n\n ${dim}# Install for Windsurf globally${reset}\n npx ${pkg.name} --windsurf --global\n\n ${dim}# Install for Windsurf locally${reset}\n npx ${pkg.name} --windsurf --local\n\n ${dim}# Install for Augment globally${reset}\n npx ${pkg.name} --augment --global\n\n ${dim}# Install for Augment locally${reset}\n npx ${pkg.name} --augment --local\n\n ${dim}# Install for Trae globally${reset}\n npx ${pkg.name} --trae --global\n\n ${dim}# Install for Trae locally${reset}\n npx ${pkg.name} --trae --local\n\n ${dim}# Install for Hermes Agent globally${reset}\n npx ${pkg.name} --hermes --global\n\n ${dim}# Install for Hermes Agent locally${reset}\n npx ${pkg.name} --hermes --local\n\n ${dim}# Install for Cline globally${reset}\n npx ${pkg.name} --cline --global\n\n ${dim}# Install for Cline locally${reset}\n npx ${pkg.name} --cline --local\n\n ${dim}# Install for CodeBuddy globally${reset}\n npx ${pkg.name} --codebuddy --global\n\n ${dim}# Install for CodeBuddy locally${reset}\n npx ${pkg.name} --codebuddy --local\n\n ${dim}# Install for all runtimes globally${reset}\n npx ${pkg.name} --all --global\n\n ${dim}# Install to custom config directory${reset}\n npx ${pkg.name} --kilo --global --config-dir ~/.kilo-work\n\n ${dim}# Install to current project only${reset}\n npx ${pkg.name} --claude --local\n\n ${dim}# Uninstall GSD from Cursor globally${reset}\n npx ${pkg.name} --cursor --global --uninstall\n\n ${yellow}Notes:${reset}\n The --config-dir option is useful when you have multiple configurations.\n It takes priority over CLAUDE_CONFIG_DIR / OPENCODE_CONFIG_DIR / GEMINI_CONFIG_DIR / KILO_CONFIG_DIR / CODEX_HOME / KIMI_CONFIG_DIR / COPILOT_CONFIG_DIR / COPILOT_HOME / ANTIGRAVITY_CONFIG_DIR / CURSOR_CONFIG_DIR / WINDSURF_CONFIG_DIR / AUGMENT_CONFIG_DIR / TRAE_CONFIG_DIR / QWEN_CONFIG_DIR / HERMES_HOME / CLINE_CONFIG_DIR / CODEBUDDY_CONFIG_DIR environment variables.\n Kimi CLI defaults to the first existing generic skills root: ${cyan}~/.config/agents/skills${reset}, then ${cyan}~/.agents/skills${reset}; if neither exists, GSD creates ${cyan}~/.config/agents${reset}.\n Use ${cyan}--config-dir ~/.kimi-code${reset} or ${cyan}KIMI_CONFIG_DIR=~/.kimi-code${reset} for brand-specific Kimi installs.\n`);
604
+ console.log(` ${yellow}Usage:${reset} npx ${pkg.name} [options]\n\n ${yellow}Options:${reset}\n ${cyan}-g, --global${reset} Install globally (to config directory)\n ${cyan}-l, --local${reset} Install locally (to current directory)\n ${cyan}--claude${reset} Install for Claude Code only\n ${cyan}--opencode${reset} Install for OpenCode only\n ${cyan}--gemini${reset} Install for Gemini only\n ${cyan}--kilo${reset} Install for Kilo only\n ${cyan}--codex${reset} Install for Codex only\n ${cyan}--kimi${reset} Install for Kimi CLI only\n ${cyan}--copilot${reset} Install for Copilot only\n ${cyan}--antigravity${reset} Install for Antigravity only\n ${cyan}--cursor${reset} Install for Cursor only\n ${cyan}--windsurf${reset} Install for Windsurf only\n ${cyan}--augment${reset} Install for Augment only\n ${cyan}--trae${reset} Install for Trae only\n ${cyan}--qwen${reset} Install for Qwen Code only\n ${cyan}--hermes${reset} Install for Hermes Agent only\n ${cyan}--cline${reset} Install for Cline only\n ${cyan}--codebuddy${reset} Install for CodeBuddy only\n ${cyan}--all${reset} Install for all runtimes\n ${cyan}-u, --uninstall${reset} Uninstall pp-core (remove all pp-core files)\n ${cyan}-c, --config-dir <path>${reset} Specify custom config directory\n ${cyan}-h, --help${reset} Show this help message\n ${cyan}--force-statusline${reset} Replace existing statusline config\n ${cyan}--portable-hooks${reset} Emit \$HOME-relative hook paths in settings.json\n (for WSL/Docker bind-mount setups; also GSD_PORTABLE_HOOKS=1)\n ${cyan}--profile=<name>${reset} Install a named skill profile. Profiles:\n core — ${PROFILES.core.length} main-loop skills incl. phase (~130 desc tokens)\n standard — ${PROFILES.standard.length} skills incl. phase, review, config (~700)\n full — all skills (default)\n Composable: --profile=core,audit installs union of closures.\n Profile is persisted and respected by \`gsd update\`.\n ${cyan}--minimal${reset} Alias for --profile=core (back-compat).\n Cuts cold-start overhead from ~12k tokens to ~700.\n Alias: --core-only.\n\n ${yellow}Examples:${reset}\n ${dim}# Interactive install (prompts for runtime and location)${reset}\n npx ${pkg.name}\n\n ${dim}# Install for Claude Code globally${reset}\n npx ${pkg.name} --claude --global\n\n ${dim}# Install for Gemini globally${reset}\n npx ${pkg.name} --gemini --global\n\n ${dim}# Install for Kilo globally${reset}\n npx ${pkg.name} --kilo --global\n\n ${dim}# Install for Codex globally${reset}\n npx ${pkg.name} --codex --global\n\n ${dim}# Install for Kimi CLI globally${reset}\n npx ${pkg.name} --kimi --global\n\n ${dim}# Install for Kimi CLI under ~/.kimi-code${reset}\n npx ${pkg.name} --kimi --global --config-dir ~/.kimi-code\n\n ${dim}# Install for Copilot globally${reset}\n npx ${pkg.name} --copilot --global\n\n ${dim}# Install for Copilot locally${reset}\n npx ${pkg.name} --copilot --local\n\n ${dim}# Install for Antigravity globally${reset}\n npx ${pkg.name} --antigravity --global\n\n ${dim}# Install for Antigravity locally${reset}\n npx ${pkg.name} --antigravity --local\n\n ${dim}# Install for Cursor globally${reset}\n npx ${pkg.name} --cursor --global\n\n ${dim}# Install for Cursor locally${reset}\n npx ${pkg.name} --cursor --local\n\n ${dim}# Install for Windsurf globally${reset}\n npx ${pkg.name} --windsurf --global\n\n ${dim}# Install for Windsurf locally${reset}\n npx ${pkg.name} --windsurf --local\n\n ${dim}# Install for Augment globally${reset}\n npx ${pkg.name} --augment --global\n\n ${dim}# Install for Augment locally${reset}\n npx ${pkg.name} --augment --local\n\n ${dim}# Install for Trae globally${reset}\n npx ${pkg.name} --trae --global\n\n ${dim}# Install for Trae locally${reset}\n npx ${pkg.name} --trae --local\n\n ${dim}# Install for Hermes Agent globally${reset}\n npx ${pkg.name} --hermes --global\n\n ${dim}# Install for Hermes Agent locally${reset}\n npx ${pkg.name} --hermes --local\n\n ${dim}# Install for Cline globally${reset}\n npx ${pkg.name} --cline --global\n\n ${dim}# Install for Cline locally${reset}\n npx ${pkg.name} --cline --local\n\n ${dim}# Install for CodeBuddy globally${reset}\n npx ${pkg.name} --codebuddy --global\n\n ${dim}# Install for CodeBuddy locally${reset}\n npx ${pkg.name} --codebuddy --local\n\n ${dim}# Install for all runtimes globally${reset}\n npx ${pkg.name} --all --global\n\n ${dim}# Install to custom config directory${reset}\n npx ${pkg.name} --kilo --global --config-dir ~/.kilo-work\n\n ${dim}# Install to current project only${reset}\n npx ${pkg.name} --claude --local\n\n ${dim}# Uninstall pp-core from Cursor globally${reset}\n npx ${pkg.name} --cursor --global --uninstall\n\n ${yellow}Notes:${reset}\n The --config-dir option is useful when you have multiple configurations.\n It takes priority over CLAUDE_CONFIG_DIR / OPENCODE_CONFIG_DIR / GEMINI_CONFIG_DIR / KILO_CONFIG_DIR / CODEX_HOME / KIMI_CONFIG_DIR / COPILOT_CONFIG_DIR / COPILOT_HOME / ANTIGRAVITY_CONFIG_DIR / CURSOR_CONFIG_DIR / WINDSURF_CONFIG_DIR / AUGMENT_CONFIG_DIR / TRAE_CONFIG_DIR / QWEN_CONFIG_DIR / HERMES_HOME / CLINE_CONFIG_DIR / CODEBUDDY_CONFIG_DIR environment variables.\n Kimi CLI defaults to the first existing generic skills root: ${cyan}~/.config/agents/skills${reset}, then ${cyan}~/.agents/skills${reset}; if neither exists, pp-core creates ${cyan}~/.config/agents${reset}.\n Use ${cyan}--config-dir ~/.kimi-code${reset} or ${cyan}KIMI_CONFIG_DIR=~/.kimi-code${reset} for brand-specific Kimi installs.\n`);
605
605
  process.exit(0);
606
606
  }
607
607
 
@@ -6554,10 +6554,10 @@ function writeHermesCategoryDescription(categoryDir) {
6554
6554
  '---',
6555
6555
  'name: gsd',
6556
6556
  `version: ${pkg.version}`,
6557
- 'description: GSD Core — Git. Ship. Done. Disciplined planning, execution, and shipping workflows. Use any gsd-* skill in this category to drive a project through new-project → discuss-phase → plan-phase → execute-phase → ship.',
6557
+ 'description: pp-core — The Pareto delivery framework. Disciplined planning, execution, and shipping workflows. Use any pp-* skill in this category to drive a project through new-project → discuss-phase → plan-phase → execute-phase → ship.',
6558
6558
  '---',
6559
6559
  '',
6560
- '# GSD Core',
6560
+ '# pp-core',
6561
6561
  '',
6562
6562
  'GSD is a structured development workflow. Skills in this category cover',
6563
6563
  'project initialization, phase planning, execution, code review, and shipping.',
@@ -7714,6 +7714,15 @@ function cleanupOrphanedHooks(settings) {
7714
7714
  'gsd-intel-prune.js', // Removed in v1.9.2
7715
7715
  ];
7716
7716
 
7717
+ // pareto4/pp-core#1: prune the entire predecessor OpenGSD hook namespace.
7718
+ // pp-core ships hooks/pp-*.{js,sh} and deletes the old hooks/gsd-*.{js,sh}
7719
+ // files on install — but the matching settings.json entries were left behind,
7720
+ // dangling (target file removed) and duplicating the freshly-added pp-* hooks.
7721
+ // Any command pointing into hooks/gsd-*.{js,sh,cmd} is therefore stale: pp-core
7722
+ // never registers gsd-* hooks. Match generically rather than enumerating each
7723
+ // basename so future predecessor hooks are covered automatically.
7724
+ const legacyGsdManagedHookRe = /hooks[\\/]gsd-[a-z0-9-]+\.(?:js|sh|cmd)(?=$|["'`\s])/i;
7725
+
7717
7726
  let cleanedHooks = false;
7718
7727
 
7719
7728
  // Check all hook event types (Stop, SessionStart, etc.)
@@ -7724,9 +7733,13 @@ function cleanupOrphanedHooks(settings) {
7724
7733
  // Filter out entries that contain orphaned hooks
7725
7734
  const filtered = hookEntries.filter(entry => {
7726
7735
  if (entry.hooks && Array.isArray(entry.hooks)) {
7727
- // Check if any hook in this entry matches orphaned patterns
7736
+ // Check if any hook in this entry matches orphaned patterns or the
7737
+ // predecessor gsd-* managed-hook namespace.
7728
7738
  const hasOrphaned = entry.hooks.some(h =>
7729
- h.command && orphanedHookPatterns.some(pattern => h.command.includes(pattern))
7739
+ h.command && (
7740
+ orphanedHookPatterns.some(pattern => h.command.includes(pattern)) ||
7741
+ legacyGsdManagedHookRe.test(h.command)
7742
+ )
7730
7743
  );
7731
7744
  if (hasOrphaned) {
7732
7745
  cleanedHooks = true;
@@ -7736,6 +7749,11 @@ function cleanupOrphanedHooks(settings) {
7736
7749
  return true; // Keep this entry
7737
7750
  });
7738
7751
  settings.hooks[eventType] = filtered;
7752
+ // Drop the event key entirely once all its matcher groups are gone, so
7753
+ // no empty hook arrays linger in settings.json.
7754
+ if (settings.hooks[eventType].length === 0) {
7755
+ delete settings.hooks[eventType];
7756
+ }
7739
7757
  }
7740
7758
  }
7741
7759
  }
@@ -7744,16 +7762,21 @@ function cleanupOrphanedHooks(settings) {
7744
7762
  console.log(` ${green}✓${reset} Removed orphaned hook registrations`);
7745
7763
  }
7746
7764
 
7747
- // Fix #330: Update statusLine if it points to old GSD statusline.js path
7748
- // Only match the specific old GSD path pattern (hooks/statusline.js),
7749
- // not third-party statusline scripts that happen to contain 'statusline.js'
7765
+ // Fix #330 + pareto4/pp-core#1: Update statusLine if it points to a stale
7766
+ // managed statusline path — both the pre-rename `hooks/statusline.js` and the
7767
+ // OpenGSD-era `hooks/gsd-statusline.js` (deleted on the pp-core upgrade, which
7768
+ // otherwise leaves the statusline pointing at a missing file). Match only
7769
+ // these specific managed basenames, not third-party scripts that merely
7770
+ // contain 'statusline.js'.
7750
7771
  if (settings.statusLine && settings.statusLine.command &&
7751
- /hooks[\/\\]statusline\.js/.test(settings.statusLine.command)) {
7772
+ /hooks[\/\\](?:gsd-)?statusline\.js/.test(settings.statusLine.command)) {
7773
+ const wasGsd = /hooks[\/\\]gsd-statusline\.js/.test(settings.statusLine.command);
7752
7774
  settings.statusLine.command = settings.statusLine.command.replace(
7753
- /hooks([\/\\])statusline\.js/,
7775
+ /hooks([\/\\])(?:gsd-)?statusline\.js/,
7754
7776
  'hooks$1pp-statusline.js'
7755
7777
  );
7756
- console.log(` ${green}✓${reset} Updated statusline path (hooks/statusline.js → hooks/pp-statusline.js)`);
7778
+ const from = wasGsd ? 'hooks/gsd-statusline.js' : 'hooks/statusline.js';
7779
+ console.log(` ${green}✓${reset} Updated statusline path (${from} → hooks/pp-statusline.js)`);
7757
7780
  }
7758
7781
 
7759
7782
  return settings;
@@ -7863,7 +7886,7 @@ const GSD_UNINSTALL_HOOKS = [
7863
7886
  ];
7864
7887
 
7865
7888
  /**
7866
- * Uninstall GSD from the specified directory for a specific runtime
7889
+ * Uninstall pp-core from the specified directory for a specific runtime
7867
7890
  * Removes only GSD-specific files/directories, preserves user content
7868
7891
  * @param {boolean} isGlobal - Whether to uninstall from global or local
7869
7892
  * @param {string} runtime - Target runtime ('claude', 'opencode', 'gemini', 'codex', 'copilot')
@@ -9490,7 +9513,7 @@ function install(isGlobal, runtime = 'claude', options = {}) {
9490
9513
  // `@$HOME/...` is treated as a literal path relative to the config dir, producing
9491
9514
  // `command/$HOME/...` (file not found). Use the absolute path for OpenCode so
9492
9515
  // @-references resolve correctly (#2376 Windows, #2831 macOS/Linux).
9493
- // gsd update marker re-application (ADR-0010 Deviation 2):
9516
+ // pp update marker re-application (ADR-0010 Deviation 2):
9494
9517
  // Resolve which profile to use for this runtime's install:
9495
9518
  // 1. --minimal / --core-only → back-compat alias for the core profile
9496
9519
  // 2. Explicit --profile=<name> → use it (overrides any marker)
@@ -10178,7 +10201,7 @@ function install(isGlobal, runtime = 'claude', options = {}) {
10178
10201
  }
10179
10202
  }
10180
10203
  }
10181
- console.log(` ${dim}↳${reset} Skipping agents (minimal install — run \`gsd update\` without \`--minimal\` to add full surface)`);
10204
+ console.log(` ${dim}↳${reset} Skipping agents (minimal install — run \`pp update\` without \`--minimal\` to add full surface)`);
10182
10205
  } else if (fs.existsSync(agentsSrc)) {
10183
10206
  fs.mkdirSync(agentsDest, { recursive: true });
10184
10207
 
@@ -12167,6 +12190,7 @@ module.exports = {
12167
12190
  stripGsdFromCodexConfig,
12168
12191
  migrateCodexHooksMapFormat,
12169
12192
  stripStaleGsdHookBlocks,
12193
+ cleanupOrphanedHooks,
12170
12194
  hasUserNamespacedAotHooks,
12171
12195
  parseTomlToObject,
12172
12196
  validateCodexConfigSchema,
@@ -37,12 +37,12 @@ Optional flags:
37
37
  - `--to N` — stop after phase N completes (halt instead of advancing to next phase).
38
38
  - `--only N` — execute only phase N (single-phase mode).
39
39
  - `--interactive` — run discuss inline with questions (not auto-answered), then dispatch plan→execute as background agents. Keeps the main context lean while preserving user input on decisions.
40
- - `--converge` — run each phase's planning step through `gsd-plan-review-convergence` instead of plain `gsd-plan-phase`. Requires `workflow.plan_review_convergence=true`.
40
+ - `--converge` — run each phase's planning step through `pp-plan-review-convergence` instead of plain `pp-plan-phase`. Requires `workflow.plan_review_convergence=true`.
41
41
  - `--cross-ai` — compatibility alias for `--converge`.
42
42
 
43
- When `--converge` or `--cross-ai` is set, reviewer selector flags supported by `gsd-plan-review-convergence` may be passed through: `--codex`, `--gemini`, `--claude`, `--opencode`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--all`, and `--max-cycles N`.
43
+ When `--converge` or `--cross-ai` is set, reviewer selector flags supported by `pp-plan-review-convergence` may be passed through: `--codex`, `--gemini`, `--claude`, `--opencode`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--all`, and `--max-cycles N`.
44
44
 
45
- Project context, phase list, and state are resolved inside the workflow using init commands (`gsd-tools query init.milestone-op`, `gsd-tools query roadmap.analyze`). No upfront context loading needed.
45
+ Project context, phase list, and state are resolved inside the workflow using init commands (`pp_run query init.milestone-op`, `pp_run query roadmap.analyze`). No upfront context loading needed.
46
46
  </context>
47
47
 
48
48
  <process>
@@ -13,7 +13,7 @@ allowed-tools:
13
13
  ---
14
14
 
15
15
  <objective>
16
- Capture ideas, tasks, notes, and seeds to their appropriate destination in the GSD system.
16
+ Capture ideas, tasks, notes, and seeds to their appropriate destination in the pp-core system.
17
17
 
18
18
  Mode routing:
19
19
  - **default** (no flag): Capture as a structured todo for later work → add-todo workflow
@@ -41,7 +41,7 @@ Optional flags parsed from $ARGUMENTS:
41
41
  - `--depth=VALUE` — Depth override (quick|standard|deep). If provided, overrides workflow.code_review_depth config.
42
42
  - `--files=file1,file2,...` — Explicit file list override. Has highest precedence for file scoping per D-08. When provided, workflow skips SUMMARY.md extraction and git diff fallback entirely.
43
43
 
44
- Context files (CLAUDE.md, SUMMARY.md, phase state) are resolved inside the workflow via `gsd-tools query init.phase-op` and delegated to agent via `<files_to_read>` blocks.
44
+ Context files (CLAUDE.md, SUMMARY.md, phase state) are resolved inside the workflow via `pp_run query init.phase-op` and delegated to agent via `<files_to_read>` blocks.
45
45
  </context>
46
46
 
47
47
  <process>
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pp:config
3
- description: Configure GSD settings — workflow toggles, advanced knobs, integrations, and model profile
3
+ description: Configure pp-core settings — workflow toggles, advanced knobs, integrations, and model profile
4
4
  argument-hint: "[--advanced | --integrations | --profile <name>]"
5
5
  allowed-tools:
6
6
  - Read
@@ -11,7 +11,7 @@ requires: [code-review, review, settings]
11
11
  ---
12
12
 
13
13
  <objective>
14
- Configure GSD settings interactively with a single consolidated command.
14
+ Configure pp-core settings interactively with a single consolidated command.
15
15
 
16
16
  Mode routing:
17
17
  - **default** (no flag): Common-case toggles (model, research, plan_check, verifier, branching) → settings workflow
@@ -27,7 +27,7 @@ Mode routing:
27
27
  | (none) | Interactive 5-question common-case config prompt | settings |
28
28
  | --advanced | Power-user knobs: planning, execution, discussion, cross-AI, git, runtime | settings-advanced |
29
29
  | --integrations | API keys (Brave/Firecrawl/Exa), review CLI routing, agent skills | settings-integrations |
30
- | --profile &lt;name&gt; | Switch model profile without interactive prompt | pp-tools query config-set-model-profile |
30
+ | --profile &lt;name&gt; | Switch model profile without interactive prompt | pp_run query config-set-model-profile |
31
31
 
32
32
  </routing>
33
33
 
@@ -45,7 +45,7 @@ Parse the first token of $ARGUMENTS:
45
45
  - If it is `--integrations`: strip the flag, execute settings-integrations workflow
46
46
  - If it starts with `--profile`: extract the profile name (remainder after `--profile`), then:
47
47
  1. Verify `pp-tools` is on PATH via `command -v pp-tools`; if absent, emit the install hint `Install PP via 'npm i -g @pareto4/pp-core'` and stop.
48
- 2. Run: `pp-tools query config-set-model-profile <profile-name> --raw` and display the output verbatim.
48
+ 2. Run: `pp_run query config-set-model-profile <profile-name> --raw` and display the output verbatim.
49
49
  - Otherwise: execute settings workflow (no argument needed)
50
50
  </context>
51
51
 
@@ -22,7 +22,7 @@ Debug issues using scientific method with subagent isolation.
22
22
  </objective>
23
23
 
24
24
  <available_agent_types>
25
- Valid GSD subagent types (use exact names — do not fall back to 'general-purpose'):
25
+ Valid pp-core subagent types (use exact names — do not fall back to 'general-purpose'):
26
26
  - pp-debug-session-manager — manages debug checkpoint/continuation loop in isolated context
27
27
  - pp-debugger — investigates bugs using scientific method
28
28
  </available_agent_types>
@@ -20,7 +20,7 @@ Flag handling rule:
20
20
  - The optional flags documented below are available behaviors, not implied active behaviors
21
21
  - A flag is active only when its literal token appears in `$ARGUMENTS`
22
22
  - If a documented flag is absent from `$ARGUMENTS`, treat it as inactive
23
- - `--force`: skip preservation prompts, regenerate all docs regardless of existing content or GSD markers
23
+ - `--force`: skip preservation prompts, regenerate all docs regardless of existing content or pp-core markers
24
24
  - `--verify-only`: check existing docs for accuracy against codebase, no generation (full verification requires Phase 4 verifier)
25
25
  - If `--force` and `--verify-only` both appear in `$ARGUMENTS`, `--force` takes precedence
26
26
  </objective>
@@ -33,7 +33,7 @@ Flag handling rule:
33
33
  Arguments: $ARGUMENTS
34
34
 
35
35
  **Available optional flags (documentation only — not automatically active):**
36
- - `--force` — Regenerate all docs. Overwrites hand-written and GSD docs alike. No preservation prompts.
36
+ - `--force` — Regenerate all docs. Overwrites hand-written and pp-core docs alike. No preservation prompts.
37
37
  - `--verify-only` — Check existing docs for accuracy against the codebase. No files are written. Reports VERIFY marker count. Full codebase fact-checking requires the pp-doc-verifier agent (Phase 4).
38
38
 
39
39
  **Active flags must be derived from `$ARGUMENTS`:**
@@ -56,7 +56,7 @@ Phase: $ARGUMENTS
56
56
  - If none of these tokens appear, run the standard full-phase execution flow with no flag-specific filtering
57
57
  - Do not infer that a flag is active just because it is documented in this prompt
58
58
 
59
- Context files are resolved inside the workflow via `gsd-tools query init.execute-phase` and per-subagent `<files_to_read>` blocks.
59
+ Context files are resolved inside the workflow via `pp_run query init.execute-phase` and per-subagent `<files_to_read>` blocks.
60
60
  </context>
61
61
 
62
62
  <process>
@@ -12,7 +12,7 @@ allowed-tools:
12
12
  ---
13
13
  <objective>
14
14
  Open-ended Socratic ideation session. Guides the developer through exploring an idea via
15
- probing questions, optionally spawns research, then routes outputs to the appropriate GSD
15
+ probing questions, optionally spawns research, then routes outputs to the appropriate pp-core
16
16
  artifacts (notes, todos, seeds, research questions, requirements, or new phases).
17
17
 
18
18
  Accepts an optional topic argument: `/pp:explore authentication strategy`
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  type: prompt
3
3
  name: pp:forensics
4
- description: Post-mortem investigation for failed GSD workflows — diagnoses what went wrong.
4
+ description: Post-mortem investigation for failed pp-core workflows — diagnoses what went wrong.
5
5
  argument-hint: "[problem description]"
6
6
  allowed-tools:
7
7
  - Read
@@ -13,7 +13,7 @@ requires: [phase, progress, update]
13
13
  ---
14
14
 
15
15
  <objective>
16
- Investigate what went wrong during a GSD workflow execution. Analyzes git history, `.planning/` artifacts, and file system state to detect anomalies and generate a structured diagnostic report.
16
+ Investigate what went wrong during a pp-core workflow execution. Analyzes git history, `.planning/` artifacts, and file system state to detect anomalies and generate a structured diagnostic report.
17
17
 
18
18
  Purpose: Diagnose failed or stuck workflows so the user can understand root cause and take corrective action.
19
19
  Output: Forensic report saved to `.planning/forensics/`, presented inline, with optional issue creation.
@@ -10,14 +10,14 @@ requires: [config, fast, phase, update]
10
10
 
11
11
  **STOP -- DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's command system. Using the Read tool on this file wastes tokens. Begin executing Step 0 immediately.**
12
12
 
13
- **CJS-only (graphify):** `graphify` subcommands are not registered on `pp-tools query (graphify) …` where `<runtime-home>` is your runtime's config directory (e.g. `~/.claude`, `~/.hermes`, `~/.cursor`). See `docs/CLI-TOOLS.md` for details. Other tooling may still use `pp-tools query` where a handler exists.
13
+ **CJS-only (graphify):** `graphify` subcommands are not registered on `pp_run query (graphify) …` where `<runtime-home>` is your runtime's config directory (e.g. `~/.claude`, `~/.hermes`, `~/.cursor`). See `docs/CLI-TOOLS.md` for details. Other tooling may still use `pp_run query` where a handler exists.
14
14
 
15
15
  ## Step 0 -- Banner
16
16
 
17
17
  **Before ANY tool calls**, display this banner:
18
18
 
19
19
  ```
20
- GSD > GRAPHIFY
20
+ pp-core > GRAPHIFY
21
21
  ```
22
22
 
23
23
  Then proceed to Step 1.
@@ -26,7 +26,7 @@ Then proceed to Step 1.
26
26
 
27
27
  Check if graphify is enabled by reading `.planning/config.json` directly using the Read tool.
28
28
 
29
- **DO NOT use the pp-tools query config-get command** -- it hard-exits on missing keys.
29
+ **DO NOT use the pp_run query config-get command** -- it hard-exits on missing keys.
30
30
 
31
31
  1. Read `.planning/config.json` using the Read tool
32
32
  2. If the file does not exist: display the disabled message below and **STOP**
@@ -37,7 +37,7 @@ Check if graphify is enabled by reading `.planning/config.json` directly using t
37
37
  **Disabled message:**
38
38
 
39
39
  ```
40
- GSD > GRAPHIFY
40
+ pp-core > GRAPHIFY
41
41
 
42
42
  Knowledge graph is disabled. To activate:
43
43
 
@@ -63,7 +63,7 @@ Parse `$ARGUMENTS` to determine the operation mode:
63
63
  **Usage message** (shown when no argument or unrecognized argument):
64
64
 
65
65
  ```
66
- GSD > GRAPHIFY
66
+ pp-core > GRAPHIFY
67
67
 
68
68
  Usage: /pp:graphify <mode>
69
69
 
@@ -154,7 +154,7 @@ Parse the JSON output:
154
154
  Display:
155
155
 
156
156
  ```text
157
- GSD > Building knowledge graph...
157
+ pp-core > Building knowledge graph...
158
158
  ```
159
159
 
160
160
  Run the build, copy artifacts, write the diff snapshot, and report the summary in a single foreground Bash call so the whole pipeline survives to completion. Use a `timeout` of `600000` ms (10 minutes), which covers the `graphify.build_timeout` ceiling (default 300 s) with margin:
@@ -184,7 +184,7 @@ If the chain succeeds:
184
184
 
185
185
  ## MVP-Mode Node Rendering
186
186
 
187
- **MVP-mode rendering.** When a phase has `**Mode:** mvp` in ROADMAP.md (resolved via `pp-tools query roadmap.get-phase --pick mode`), render its graph node with two distinct visual signals:
187
+ **MVP-mode rendering.** When a phase has `**Mode:** mvp` in ROADMAP.md (resolved via `pp_run query roadmap.get-phase --pick mode`), render its graph node with two distinct visual signals:
188
188
 
189
189
  1. **Distinct fill color.** Use `#22c55e` (green) for MVP-mode phase nodes. Standard phases keep the default fill color. Two-channel signaling (color + label) handles color-blind and grayscale renders.
190
190
  2. **`MVP` label suffix.** Append ` (MVP)` to the node's label text. Example: a phase originally labeled `Phase 1: User Auth` renders as `Phase 1: User Auth (MVP)`.
@@ -201,4 +201,4 @@ When the phase mode is null/absent, render with the standard color and label —
201
201
  2. DO NOT pass `run_in_background: true` for the build chain -- the operation is fast and must complete in the foreground.
202
202
  3. DO NOT modify graph files directly -- always go through `graphify update .` and the snapshot CLI.
203
203
  4. DO NOT skip the config gate check.
204
- 5. DO NOT use `pp-tools query config-get` for the config gate -- it exits on missing keys.
204
+ 5. DO NOT use `pp_run query config-get` for the config gate -- it exits on missing keys.
@@ -12,7 +12,7 @@ requires: [thread]
12
12
  <objective>
13
13
  Validate `.planning/` directory integrity and report actionable issues. Checks for missing files, invalid configurations, inconsistent state, and orphaned plans.
14
14
 
15
- `--context` runs an orthogonal check: the running session's context utilization. The workflow asks for the model's tokensUsed + contextWindow, calls `gsd-tools query validate.context`, and renders one of three states:
15
+ `--context` runs an orthogonal check: the running session's context utilization. The workflow asks for the model's tokensUsed + contextWindow, calls `pp_run query validate.context`, and renders one of three states:
16
16
 
17
17
  | Utilization | State | Action |
18
18
  |-------------|----------|-------------------------------------------------------|
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: pp:help
3
- description: Show available GSD commands and usage guide
3
+ description: Show available pp-core commands and usage guide
4
4
  argument-hint: "[--brief | --full | <topic> | --brief <topic>]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  ---
8
8
  <objective>
9
- Display GSD help at the tier the user asked for: brief (one-line refresher), default (one-page tour), full (complete reference), a single topic section, or a compact scoped lookup of one topic (`--brief <topic>`: signature + one-line summary).
9
+ Display pp-core help at the tier the user asked for: brief (one-line refresher), default (one-page tour), full (complete reference), a single topic section, or a compact scoped lookup of one topic (`--brief <topic>`: signature + one-line summary).
10
10
 
11
11
  Output ONLY the reference content of the chosen tier. Do NOT add:
12
12
  - Project-specific analysis
@@ -14,10 +14,10 @@ allowed-tools:
14
14
  ---
15
15
 
16
16
  <objective>
17
- Import external plan files into the GSD planning system with conflict detection against PROJECT.md decisions.
17
+ Import external plan files into the pp-core planning system with conflict detection against PROJECT.md decisions.
18
18
 
19
- - **--from**: Import an external plan file, detect conflicts, write as GSD PLAN.md, validate via pp-plan-checker.
20
- - **--from-gsd2**: Reverse-migrate a GSD-2 project (`.gsd/` directory) back to GSD v1 (`.planning/`) format. Runs `gsd-tools.cjs from-gsd2`. Pass `--path <dir>` to migrate a project at a different path.
19
+ - **--from**: Import an external plan file, detect conflicts, write as pp-core PLAN.md, validate via pp-plan-checker.
20
+ - **--from-gsd2**: Reverse-migrate a GSD-2 project (`.gsd/` directory) back to GSD v1 (`.planning/`) format. Runs `pp-tools.cjs from-gsd2`. Pass `--path <dir>` to migrate a project at a different path.
21
21
  </objective>
22
22
 
23
23
  <execution_context>
@@ -36,7 +36,7 @@ If `--from-gsd2` is in $ARGUMENTS:
36
36
  Run the reverse-migration (append `--path <dir>` if provided):
37
37
  ```bash
38
38
  _PP_SHIM_NAME="pp-tools.cjs"; _PP_RUNTIME_ROOT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"; PP_TOOLS="${_PP_RUNTIME_ROOT}/pp-core/bin/${_PP_SHIM_NAME}"; if [ -f "$PP_TOOLS" ]; then pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${_PP_RUNTIME_ROOT}/.claude/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${_PP_RUNTIME_ROOT}/.claude/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif command -v pp-tools >/dev/null 2>&1; then PP_TOOLS="$(command -v pp-tools)"; pp_run() { "$PP_TOOLS" "$@"; }; elif [ -f "$HOME/.claude/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="$HOME/.claude/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${HERMES_HOME:-$HOME/.hermes}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${HERMES_HOME:-$HOME/.hermes}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${CURSOR_CONFIG_DIR:-$HOME/.cursor}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${CURSOR_CONFIG_DIR:-$HOME/.cursor}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${CODEX_HOME:-$HOME/.codex}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${CODEX_HOME:-$HOME/.codex}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${GEMINI_CONFIG_DIR:-$HOME/.gemini}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${GEMINI_CONFIG_DIR:-$HOME/.gemini}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${COPILOT_CONFIG_DIR:-$HOME/.copilot}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${COPILOT_CONFIG_DIR:-$HOME/.copilot}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${WINDSURF_CONFIG_DIR:-$HOME/.codeium/windsurf}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${WINDSURF_CONFIG_DIR:-$HOME/.codeium/windsurf}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${AUGMENT_CONFIG_DIR:-$HOME/.augment}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${AUGMENT_CONFIG_DIR:-$HOME/.augment}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${TRAE_CONFIG_DIR:-$HOME/.trae}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${TRAE_CONFIG_DIR:-$HOME/.trae}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${QWEN_CONFIG_DIR:-$HOME/.qwen}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${QWEN_CONFIG_DIR:-$HOME/.qwen}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${CODEBUDDY_CONFIG_DIR:-$HOME/.codebuddy}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${CODEBUDDY_CONFIG_DIR:-$HOME/.codebuddy}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${CLINE_CONFIG_DIR:-$HOME/.cline}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${CLINE_CONFIG_DIR:-$HOME/.cline}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${GROK_AGENTS_HOME:-$HOME/.agents}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${GROK_AGENTS_HOME:-$HOME/.agents}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${ANTIGRAVITY_CONFIG_DIR:-$HOME/.gemini/antigravity}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${ANTIGRAVITY_CONFIG_DIR:-$HOME/.gemini/antigravity}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${OPENCODE_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/opencode}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${OPENCODE_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/opencode}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; elif [ -f "${KILO_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/kilo}/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${KILO_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/kilo}/pp-core/bin/${_PP_SHIM_NAME}"; pp_run() { node "$PP_TOOLS" "$@"; }; else echo "ERROR: pp-tools.cjs not found at $PP_TOOLS and pp-tools is not on PATH. Run: npx -y @pareto4/pp-core@latest --claude --local" >&2; exit 1; fi
39
- gsd_run from-gsd2
39
+ pp_run from-gsd2
40
40
  ```
41
41
  Present the migration result to the user.
42
42
  Stop here (do not run the standard import workflow).
@@ -19,7 +19,7 @@ Single-terminal command center for managing a milestone. Shows a dashboard of al
19
19
  Designed for power users who want to parallelize work across phases from one terminal: discuss a phase while another plans or executes in the background.
20
20
 
21
21
  **Creates/Updates:**
22
- - No files created directly — dispatches to existing GSD commands via Skill() and background Task agents.
22
+ - No files created directly — dispatches to existing pp-core commands via Skill() and background Task agents.
23
23
  - Reads `.planning/STATE.md`, `.planning/ROADMAP.md`, phase directories for status.
24
24
 
25
25
  **After:** User exits when done managing, or all phases complete and milestone lifecycle is suggested.
@@ -33,7 +33,7 @@ Designed for power users who want to parallelize work across phases from one ter
33
33
  <context>
34
34
  No arguments required. Requires an active milestone with ROADMAP.md and STATE.md.
35
35
 
36
- Project context, phase list, dependencies, and recommendations are resolved inside the workflow using `gsd-tools query init.manager`. No upfront context loading needed.
36
+ Project context, phase list, dependencies, and recommendations are resolved inside the workflow using `pp_run query init.manager`. No upfront context loading needed.
37
37
  </context>
38
38
 
39
39
  <process>
@@ -15,7 +15,7 @@ requires: [config]
15
15
  **Before ANY tool calls**, display this banner:
16
16
 
17
17
  ```
18
- GSD > MEMPALACE CAPTURE
18
+ pp-core > MEMPALACE CAPTURE
19
19
  ```
20
20
 
21
21
  Then proceed to Step 1.
@@ -31,7 +31,7 @@ Check whether the MemPalace capability is enabled by reading `.planning/config.j
31
31
  **Disabled message:**
32
32
 
33
33
  ```
34
- GSD > MEMPALACE CAPTURE
34
+ pp-core > MEMPALACE CAPTURE
35
35
 
36
36
  MemPalace capture is disabled (mempalace.enabled / mempalace.capture_artifacts).
37
37
  Nothing was filed; the loop proceeds normally.
@@ -16,7 +16,7 @@ requires: [config]
16
16
  **Before ANY tool calls**, display this banner:
17
17
 
18
18
  ```
19
- GSD > MEMPALACE RECALL
19
+ pp-core > MEMPALACE RECALL
20
20
  ```
21
21
 
22
22
  Then proceed to Step 1.
@@ -25,7 +25,7 @@ Then proceed to Step 1.
25
25
 
26
26
  Check whether the MemPalace capability is enabled by reading `.planning/config.json` directly with the Read tool.
27
27
 
28
- **DO NOT use `gsd-tools config get-value`** -- it hard-exits on missing keys.
28
+ **DO NOT use `pp-tools config get-value`** -- it hard-exits on missing keys.
29
29
 
30
30
  1. Read `.planning/config.json` with the Read tool.
31
31
  2. If the file does not exist: write the "unavailable" stub (Step 4) and **STOP**.
@@ -34,7 +34,7 @@ Check whether the MemPalace capability is enabled by reading `.planning/config.j
34
34
  **Disabled message:**
35
35
 
36
36
  ```
37
- GSD > MEMPALACE RECALL
37
+ pp-core > MEMPALACE RECALL
38
38
 
39
39
  MemPalace memory is disabled. To activate:
40
40
 
@@ -62,7 +62,7 @@ All calls in this step are side-effect-free. On any error or timeout, stop retri
62
62
  2. **Targeted search:**
63
63
  - Interactive: `mempalace_search(query=<topic>, wing=<wing>)`.
64
64
  - Headless: `mempalace search "<topic>" --wing <wing>`.
65
- 3. **Knowledge-graph facts** (when `config.mempalace.mirror_kg` is true): `mempalace_kg_query` / `mempalace_kg_timeline` for decisions relevant to the topic and their validity windows. Only `augment` is currently wired, so the palace KG *supplements* GSD's native `.planning/graphs/` — do not treat it as the sole source. (`kg_backend`/`replace` are forward-declared and behave as `augment` today.)
65
+ 3. **Knowledge-graph facts** (when `config.mempalace.mirror_kg` is true): `mempalace_kg_query` / `mempalace_kg_timeline` for decisions relevant to the topic and their validity windows. Only `augment` is currently wired, so the palace KG *supplements* pp-core's native `.planning/graphs/` — do not treat it as the sole source. (`kg_backend`/`replace` are forward-declared and behave as `augment` today.)
66
66
  4. **Dedup** the returned drawers/facts; keep the top results.
67
67
 
68
68
  ## Step 4 -- Write MEMORY-RECALL.md
@@ -18,7 +18,7 @@ Guide the user through MVP-mode planning for a phase. The command:
18
18
  1. Prompts for an "As a / I want to / So that" user story (three structured questions)
19
19
  2. Runs SPIDR splitting check — if the story is too large, walks through Spike/Paths/Interfaces/Data/Rules and offers to split into multiple phases
20
20
  3. Writes `**Mode:** mvp` and the reformatted `**Goal:**` to the phase's ROADMAP.md section
21
- 4. Delegates to `/gsd plan-phase <N>` which auto-detects MVP mode via the roadmap field
21
+ 4. Delegates to `/pp:plan-phase <N>` which auto-detects MVP mode via the roadmap field
22
22
 
23
23
  Phase 1 of the vertical-mvp-slice PRD shipped the planner-side machinery; this command is the user entry point for it.
24
24
  </objective>
@@ -36,7 +36,7 @@ Phase 1 of the vertical-mvp-slice PRD shipped the planner-side machinery; this c
36
36
  <context>
37
37
  Phase number: $ARGUMENTS (required — integer or decimal like `2.1`)
38
38
 
39
- The phase must already exist in ROADMAP.md (created via `/gsd new-project`, `/gsd add-phase`, or `/gsd insert-phase`). This command does not create new phases — it converts an existing phase to MVP mode.
39
+ The phase must already exist in ROADMAP.md (created via `/pp:new-project`, `/pp:phase`, or `/pp:phase`). This command does not create new phases — it converts an existing phase to MVP mode.
40
40
  </context>
41
41
 
42
42
  <process>
@@ -14,23 +14,23 @@ Route to the appropriate management skill based on the user's intent.
14
14
 
15
15
  | User wants | Invoke |
16
16
  |---|---|
17
- | Configure GSD settings (basic / advanced / integrations / profile) | pp-config |
17
+ | Configure pp-core settings (basic / advanced / integrations / profile) | pp-config |
18
18
  | Manage workspaces (create / list / remove) | pp-workspace |
19
19
  | Manage parallel workstreams | pp-workstreams |
20
20
  | Continue work in a fresh context thread | pp-thread |
21
21
  | Pause current work | pp-pause-work |
22
22
  | Resume paused work | pp-resume-work |
23
- | Update the GSD installation | pp-update |
23
+ | Update the pp-core installation | pp-update |
24
24
  | Ship completed work | pp-ship |
25
25
  | Process inbox items | pp-inbox |
26
26
  | Create a clean PR branch | pp-pr-branch |
27
- | Undo the last GSD action | pp-undo |
27
+ | Undo the last pp-core action | pp-undo |
28
28
  | Archive accumulated phase directories | pp-cleanup |
29
29
  | Diagnose planning directory health | pp-health |
30
30
  | Open the interactive command center | pp-manager |
31
31
  | Configure workflow toggles and model profile | pp-settings |
32
32
  | Show project statistics | pp-stats |
33
33
  | Toggle which skills are surfaced | pp-surface |
34
- | Show the GSD command guide | pp-help |
34
+ | Show the pp-core command guide | pp-help |
35
35
 
36
36
  Invoke the matched skill directly using the Skill tool.
@@ -30,6 +30,6 @@ absorbs the former next/do commands.
30
30
  | Run all remaining phases autonomously | pp-autonomous |
31
31
  | Execute a trivial task inline | pp-fast |
32
32
  | Plan a phase as a vertical MVP slice | pp-mvp-phase |
33
- | Execute a quick task with GSD guarantees | pp-quick |
33
+ | Execute a quick task with pp-core guarantees | pp-quick |
34
34
 
35
35
  Invoke the matched skill directly using the Skill tool.