@pareto4/pp-core 1.5.2 → 1.5.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/.claude-plugin/plugin.json +1 -1
- package/agents/pp-advisor-researcher.md +1 -1
- package/agents/pp-ai-researcher.md +1 -1
- package/agents/pp-assumptions-analyzer.md +1 -1
- package/agents/pp-code-fixer.md +2 -2
- package/agents/pp-codebase-mapper.md +2 -2
- package/agents/pp-debug-session-manager.md +1 -1
- package/agents/pp-debugger.md +2 -2
- package/agents/pp-doc-classifier.md +1 -1
- package/agents/pp-doc-synthesizer.md +1 -1
- package/agents/pp-doc-verifier.md +1 -1
- package/agents/pp-doc-writer.md +12 -12
- package/agents/pp-domain-researcher.md +1 -1
- package/agents/pp-eval-planner.md +1 -1
- package/agents/pp-executor.md +4 -4
- package/agents/pp-framework-selector.md +1 -1
- package/agents/pp-intel-updater.md +13 -13
- package/agents/pp-pattern-mapper.md +1 -1
- package/agents/pp-phase-researcher.md +4 -4
- package/agents/pp-plan-checker.md +2 -2
- package/agents/pp-planner.md +6 -6
- package/agents/pp-project-researcher.md +3 -3
- package/agents/pp-research-synthesizer.md +2 -2
- package/agents/pp-roadmapper.md +2 -2
- package/agents/pp-ui-checker.md +1 -1
- package/agents/pp-ui-researcher.md +1 -1
- package/agents/pp-user-profiler.md +1 -1
- package/agents/pp-verifier.md +4 -4
- package/bin/install.js +15 -15
- package/commands/pp-autonomous.md +3 -3
- package/commands/pp-capture.md +1 -1
- package/commands/pp-code-review.md +1 -1
- package/commands/pp-config.md +4 -4
- package/commands/pp-debug.md +1 -1
- package/commands/pp-docs-update.md +2 -2
- package/commands/pp-execute-phase.md +1 -1
- package/commands/pp-explore.md +1 -1
- package/commands/pp-forensics.md +2 -2
- package/commands/pp-graphify.md +8 -8
- package/commands/pp-health.md +1 -1
- package/commands/pp-help.md +2 -2
- package/commands/pp-import.md +4 -4
- package/commands/pp-manager.md +2 -2
- package/commands/pp-mempalace-capture.md +2 -2
- package/commands/pp-mempalace-recall.md +4 -4
- package/commands/pp-mvp-phase.md +2 -2
- package/commands/pp-ns-manage.md +4 -4
- package/commands/pp-ns-workflow.md +1 -1
- package/commands/pp-plan-review-convergence.md +5 -5
- package/commands/pp-pr-branch.md +1 -1
- package/commands/pp-profile-user.md +1 -1
- package/commands/pp-progress.md +5 -5
- package/commands/pp-quick.md +5 -5
- package/commands/pp-review-backlog.md +2 -2
- package/commands/pp-settings.md +2 -2
- package/commands/pp-sketch.md +1 -1
- package/commands/pp-spike.md +1 -1
- package/commands/pp-surface.md +4 -4
- package/commands/pp-ultraplan-phase.md +1 -1
- package/commands/pp-undo.md +2 -2
- package/commands/pp-update.md +4 -4
- package/commands/pp-workspace.md +4 -4
- package/commands/pp-workstreams.md +8 -8
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/pp-core/bin/lib/profile-output.cjs +4 -4
- package/pp-core/references/agent-contracts.md +1 -1
- package/pp-core/references/artifact-types.md +2 -2
- package/pp-core/references/context-budget.md +2 -2
- package/pp-core/references/doc-conflict-engine.md +2 -2
- package/pp-core/references/edge-probe.md +2 -2
- package/pp-core/references/gates.md +1 -1
- package/pp-core/references/git-integration.md +3 -3
- package/pp-core/references/model-profiles.md +8 -8
- package/pp-core/references/planner-human-verify-mode.md +1 -1
- package/pp-core/references/planning-config.md +7 -7
- package/pp-core/references/prohibition-probe.md +2 -2
- package/pp-core/references/project-skills-discovery.md +1 -1
- package/pp-core/references/thinking-models-debug.md +1 -1
- package/pp-core/references/thinking-models-execution.md +1 -1
- package/pp-core/references/thinking-models-planning.md +1 -1
- package/pp-core/references/thinking-models-research.md +1 -1
- package/pp-core/references/thinking-models-verification.md +1 -1
- package/pp-core/references/ui-brand.md +3 -3
- package/pp-core/references/universal-anti-patterns.md +4 -4
- package/pp-core/references/workstream-flag.md +8 -8
- package/pp-core/templates/README.md +4 -4
- package/pp-core/templates/claude-md.md +6 -6
- package/pp-core/templates/codebase/architecture.md +2 -2
- package/pp-core/templates/codebase/structure.md +1 -1
- package/pp-core/templates/copilot-instructions.md +3 -3
- package/pp-core/templates/dev-preferences.md +1 -1
- package/pp-core/templates/research.md +1 -1
- package/pp-core/templates/summary-complex.md +1 -1
- package/pp-core/workflows/add-tests.md +2 -2
- package/pp-core/workflows/add-todo.md +1 -1
- package/pp-core/workflows/ai-integration-phase.md +3 -3
- package/pp-core/workflows/audit-milestone.md +1 -1
- package/pp-core/workflows/autonomous.md +9 -9
- package/pp-core/workflows/debug.md +1 -1
- package/pp-core/workflows/diagnose-issues.md +2 -2
- package/pp-core/workflows/discuss-phase/modes/chain.md +2 -2
- package/pp-core/workflows/discuss-phase-assumptions.md +2 -2
- package/pp-core/workflows/do.md +4 -4
- package/pp-core/workflows/docs-update.md +5 -5
- package/pp-core/workflows/eval-review.md +3 -3
- package/pp-core/workflows/execute-phase.md +5 -5
- package/pp-core/workflows/execute-plan.md +1 -1
- package/pp-core/workflows/explore.md +2 -2
- package/pp-core/workflows/extract-learnings.md +1 -1
- package/pp-core/workflows/forensics.md +1 -1
- package/pp-core/workflows/health.md +2 -2
- package/pp-core/workflows/help/modes/brief.md +2 -2
- package/pp-core/workflows/help/modes/default.md +7 -7
- package/pp-core/workflows/help/modes/full.md +16 -16
- package/pp-core/workflows/help.md +1 -1
- package/pp-core/workflows/import.md +11 -11
- package/pp-core/workflows/inbox.md +4 -4
- package/pp-core/workflows/ingest-docs.md +5 -5
- package/pp-core/workflows/list-workspaces.md +4 -4
- package/pp-core/workflows/manager.md +6 -6
- package/pp-core/workflows/map-codebase.md +2 -2
- package/pp-core/workflows/mvp-phase.md +12 -12
- package/pp-core/workflows/new-milestone.md +9 -9
- package/pp-core/workflows/new-project.md +12 -12
- package/pp-core/workflows/new-workspace.md +5 -5
- package/pp-core/workflows/next.md +4 -4
- package/pp-core/workflows/note.md +1 -1
- package/pp-core/workflows/plan-phase.md +13 -13
- package/pp-core/workflows/plan-review-convergence.md +3 -3
- package/pp-core/workflows/plant-seed.md +1 -1
- package/pp-core/workflows/pr-branch.md +2 -2
- package/pp-core/workflows/profile-user.md +2 -2
- package/pp-core/workflows/progress.md +1 -1
- package/pp-core/workflows/quick.md +15 -15
- package/pp-core/workflows/reapply-patches.md +6 -6
- package/pp-core/workflows/remove-workspace.md +1 -1
- package/pp-core/workflows/review.md +3 -3
- package/pp-core/workflows/scan.md +1 -1
- package/pp-core/workflows/secure-phase.md +4 -4
- package/pp-core/workflows/session-report.md +1 -1
- package/pp-core/workflows/settings-advanced.md +6 -6
- package/pp-core/workflows/settings-integrations.md +2 -2
- package/pp-core/workflows/settings.md +2 -2
- package/pp-core/workflows/ship.md +2 -2
- package/pp-core/workflows/sketch-wrap-up.md +2 -2
- package/pp-core/workflows/sketch.md +2 -2
- package/pp-core/workflows/spec-phase.md +4 -4
- package/pp-core/workflows/spike-wrap-up.md +2 -2
- package/pp-core/workflows/spike.md +2 -2
- package/pp-core/workflows/sync-skills.md +6 -6
- package/pp-core/workflows/thread.md +1 -1
- package/pp-core/workflows/ui-phase.md +4 -4
- package/pp-core/workflows/ui-review.md +4 -4
- package/pp-core/workflows/ultraplan-phase.md +6 -6
- package/pp-core/workflows/undo.md +6 -6
- package/pp-core/workflows/update.md +12 -12
- package/pp-core/workflows/validate-phase.md +4 -4
- package/pp-core/workflows/verify-work.md +5 -5
package/agents/pp-verifier.md
CHANGED
|
@@ -235,7 +235,7 @@ overrides:
|
|
|
235
235
|
|
|
236
236
|
## Step 4: Verify Artifacts (Three Levels)
|
|
237
237
|
|
|
238
|
-
Use `
|
|
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 `
|
|
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 `
|
|
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 `/
|
|
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 `
|
|
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 + '
|
|
538
|
-
'
|
|
539
|
-
' ██║
|
|
540
|
-
' ██║
|
|
541
|
-
'
|
|
542
|
-
'
|
|
537
|
+
cyan + ' ██████╗ ██████╗ ██████╗ ██████╗ ██████╗ ███████╗\n' +
|
|
538
|
+
' ██╔══██╗██╔══██╗ ██╔════╝██╔═══██╗██╔══██╗██╔════╝\n' +
|
|
539
|
+
' ██████╔╝██████╔╝ ██║ ██║ ██║██████╔╝█████╗\n' +
|
|
540
|
+
' ██╔═══╝ ██╔═══╝ ██║ ██║ ██║██╔══██╗██╔══╝\n' +
|
|
541
|
+
' ██║ ██║ ╚██████╗╚██████╔╝██║ ██║███████╗\n' +
|
|
542
|
+
' ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝' + reset + '\n' +
|
|
543
543
|
'\n' +
|
|
544
|
-
'
|
|
545
|
-
'
|
|
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
|
|
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:
|
|
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
|
-
'#
|
|
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.',
|
|
@@ -7886,7 +7886,7 @@ const GSD_UNINSTALL_HOOKS = [
|
|
|
7886
7886
|
];
|
|
7887
7887
|
|
|
7888
7888
|
/**
|
|
7889
|
-
* Uninstall
|
|
7889
|
+
* Uninstall pp-core from the specified directory for a specific runtime
|
|
7890
7890
|
* Removes only GSD-specific files/directories, preserves user content
|
|
7891
7891
|
* @param {boolean} isGlobal - Whether to uninstall from global or local
|
|
7892
7892
|
* @param {string} runtime - Target runtime ('claude', 'opencode', 'gemini', 'codex', 'copilot')
|
|
@@ -9513,7 +9513,7 @@ function install(isGlobal, runtime = 'claude', options = {}) {
|
|
|
9513
9513
|
// `@$HOME/...` is treated as a literal path relative to the config dir, producing
|
|
9514
9514
|
// `command/$HOME/...` (file not found). Use the absolute path for OpenCode so
|
|
9515
9515
|
// @-references resolve correctly (#2376 Windows, #2831 macOS/Linux).
|
|
9516
|
-
//
|
|
9516
|
+
// pp update marker re-application (ADR-0010 Deviation 2):
|
|
9517
9517
|
// Resolve which profile to use for this runtime's install:
|
|
9518
9518
|
// 1. --minimal / --core-only → back-compat alias for the core profile
|
|
9519
9519
|
// 2. Explicit --profile=<name> → use it (overrides any marker)
|
|
@@ -10201,7 +10201,7 @@ function install(isGlobal, runtime = 'claude', options = {}) {
|
|
|
10201
10201
|
}
|
|
10202
10202
|
}
|
|
10203
10203
|
}
|
|
10204
|
-
console.log(` ${dim}↳${reset} Skipping agents (minimal install — run \`
|
|
10204
|
+
console.log(` ${dim}↳${reset} Skipping agents (minimal install — run \`pp update\` without \`--minimal\` to add full surface)`);
|
|
10205
10205
|
} else if (fs.existsSync(agentsSrc)) {
|
|
10206
10206
|
fs.mkdirSync(agentsDest, { recursive: true });
|
|
10207
10207
|
|
|
@@ -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 `
|
|
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 `
|
|
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 (`
|
|
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>
|
package/commands/pp-capture.md
CHANGED
|
@@ -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
|
|
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 `
|
|
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>
|
package/commands/pp-config.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pp:config
|
|
3
|
-
description: Configure
|
|
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
|
|
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 <name> | Switch model profile without interactive prompt |
|
|
30
|
+
| --profile <name> | 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: `
|
|
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
|
|
package/commands/pp-debug.md
CHANGED
|
@@ -22,7 +22,7 @@ Debug issues using scientific method with subagent isolation.
|
|
|
22
22
|
</objective>
|
|
23
23
|
|
|
24
24
|
<available_agent_types>
|
|
25
|
-
Valid
|
|
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
|
|
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
|
|
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 `
|
|
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>
|
package/commands/pp-explore.md
CHANGED
|
@@ -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
|
|
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`
|
package/commands/pp-forensics.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: prompt
|
|
3
3
|
name: pp:forensics
|
|
4
|
-
description: Post-mortem investigation for failed
|
|
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
|
|
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.
|
package/commands/pp-graphify.md
CHANGED
|
@@ -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 `
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 `
|
|
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 `
|
|
204
|
+
5. DO NOT use `pp_run query config-get` for the config gate -- it exits on missing keys.
|
package/commands/pp-health.md
CHANGED
|
@@ -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 `
|
|
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
|
|-------------|----------|-------------------------------------------------------|
|
package/commands/pp-help.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pp:help
|
|
3
|
-
description: Show available
|
|
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
|
|
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
|
package/commands/pp-import.md
CHANGED
|
@@ -14,10 +14,10 @@ allowed-tools:
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<objective>
|
|
17
|
-
Import external plan files into the
|
|
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
|
|
20
|
-
- **--from-gsd2**: Reverse-migrate a GSD-2 project (`.gsd/` directory) back to GSD v1 (`.planning/`) format. Runs `
|
|
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
|
-
|
|
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).
|
package/commands/pp-manager.md
CHANGED
|
@@ -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
|
|
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 `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 `
|
|
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
|
-
|
|
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*
|
|
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
|
package/commands/pp-mvp-phase.md
CHANGED
|
@@ -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 `/
|
|
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 `/
|
|
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>
|
package/commands/pp-ns-manage.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
33
|
+
| Execute a quick task with pp-core guarantees | pp-quick |
|
|
34
34
|
|
|
35
35
|
Invoke the matched skill directly using the Skill tool.
|
|
@@ -15,14 +15,14 @@ requires: [phase, review]
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
<objective>
|
|
18
|
-
Cross-AI plan convergence loop — an outer revision gate around
|
|
18
|
+
Cross-AI plan convergence loop — an outer revision gate around pp-review and pp-planner.
|
|
19
19
|
Repeatedly: review plans with external AI CLIs → if HIGH or actionable non-HIGH concerns remain → replan with --reviews feedback → re-review. Stops when no unresolved HIGH concerns or actionable MEDIUM/LOW findings remain outside PLAN.md, or when max cycles is reached.
|
|
20
20
|
|
|
21
|
-
**Flow:** Skill("
|
|
21
|
+
**Flow:** Skill("pp-plan-phase") → Agent→Skill("pp-review") → check unresolved HIGH + actionable non-HIGH → Skill("pp-plan-phase --reviews") → Agent→Skill("pp-review") → ... → Converge or escalate
|
|
22
22
|
|
|
23
|
-
Replaces
|
|
23
|
+
Replaces pp-plan-phase's internal pp-plan-checker with external AI reviewers (codex, gemini, etc.). Plan-phase runs **inline** (bare Skill at depth 0) so it can spawn pp-planner/pp-plan-checker at depth 1. Review runs inside an isolated Agent (pp-review is a Bash leaf — no sub-agents needed). Orchestrator only does loop control.
|
|
24
24
|
|
|
25
|
-
**Orchestrator role:** Parse arguments, validate phase, run plan-phase inline (Skill at depth 0), spawn an Agent for
|
|
25
|
+
**Orchestrator role:** Parse arguments, validate phase, run plan-phase inline (Skill at depth 0), spawn an Agent for pp-review, check unresolved HIGH and actionable non-HIGH counts, stall detection, escalation gate.
|
|
26
26
|
</objective>
|
|
27
27
|
|
|
28
28
|
<execution_context>
|
|
@@ -51,7 +51,7 @@ Phase number: extracted from $ARGUMENTS (required)
|
|
|
51
51
|
- `--max-cycles N` — Maximum replan→review cycles (default: 3)
|
|
52
52
|
|
|
53
53
|
**Feature gate:** This command requires `workflow.plan_review_convergence=true`. Enable with:
|
|
54
|
-
`
|
|
54
|
+
`pp config-set workflow.plan_review_convergence true`
|
|
55
55
|
</context>
|
|
56
56
|
|
|
57
57
|
<process>
|
package/commands/pp-pr-branch.md
CHANGED
|
@@ -11,7 +11,7 @@ requires: [review]
|
|
|
11
11
|
|
|
12
12
|
<objective>
|
|
13
13
|
Create a clean branch suitable for pull requests by filtering out .planning/ commits
|
|
14
|
-
from the current branch. Reviewers see only code changes, not
|
|
14
|
+
from the current branch. Reviewers see only code changes, not pp-core planning artifacts.
|
|
15
15
|
|
|
16
16
|
This solves the problem of PR diffs being cluttered with PLAN.md, SUMMARY.md, STATE.md
|
|
17
17
|
changes that are irrelevant to code review.
|
|
@@ -13,7 +13,7 @@ allowed-tools:
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
<objective>
|
|
16
|
-
Generate a developer behavioral profile from session analysis (or questionnaire) and produce artifacts (USER-PROFILE.md, `
|
|
16
|
+
Generate a developer behavioral profile from session analysis (or questionnaire) and produce artifacts (USER-PROFILE.md, `pp-dev-preferences` skill config, CLAUDE.md section) that personalize Claude's responses.
|
|
17
17
|
|
|
18
18
|
Routes to the profile-user workflow which orchestrates the full flow: consent gate, session analysis or questionnaire fallback, profile generation, result display, and artifact selection.
|
|
19
19
|
</objective>
|