@pareto4/pp-core 1.5.2 → 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.
- 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/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 +2 -2
- 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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Interactive configuration of
|
|
2
|
+
Interactive configuration of pp-core power-user knobs — plan bounce, node repair, subagent timeouts,
|
|
3
3
|
inline plan threshold, cross-AI execution, base branch, branch templates, response language,
|
|
4
4
|
context window, gitignored search, graphify build timeout, runtime model tier overrides, and
|
|
5
5
|
model policy configuration (provider + budget → canonical tier mapping, or manual model ID
|
|
@@ -340,7 +340,7 @@ AskUserQuestion([
|
|
|
340
340
|
|
|
341
341
|
### Section 7 — Runtime Model Tiers
|
|
342
342
|
|
|
343
|
-
This section lets the user inspect and override the built-in model IDs
|
|
343
|
+
This section lets the user inspect and override the built-in model IDs pp-core resolves for each
|
|
344
344
|
profile tier (`opus` / `sonnet` / `haiku`) on their configured runtime.
|
|
345
345
|
|
|
346
346
|
**Step A — Show current runtime and built-in defaults:**
|
|
@@ -571,10 +571,10 @@ the central setter.
|
|
|
571
571
|
### Section 8 — Model Policy
|
|
572
572
|
|
|
573
573
|
This section configures the `model_policy` key in `.planning/config.json`. Model policy
|
|
574
|
-
defines which AI models
|
|
574
|
+
defines which AI models pp-core uses at each cost tier (low / medium / high), independently
|
|
575
575
|
of the `runtime` and `model_profile` selections above. Two paths are offered:
|
|
576
576
|
|
|
577
|
-
- **Known provider:** choose a provider and a budget level;
|
|
577
|
+
- **Known provider:** choose a provider and a budget level; pp-core materializes the canonical
|
|
578
578
|
tier mapping for that provider.
|
|
579
579
|
- **Generic provider:** enter low / medium / high model IDs manually.
|
|
580
580
|
|
|
@@ -604,7 +604,7 @@ AskUserQuestion([
|
|
|
604
604
|
header: "Model Policy",
|
|
605
605
|
multiSelect: false,
|
|
606
606
|
options: [
|
|
607
|
-
{ label: "Known provider", description: "Choose a provider (Claude / OpenAI / Gemini / Qwen) and a budget level —
|
|
607
|
+
{ label: "Known provider", description: "Choose a provider (Claude / OpenAI / Gemini / Qwen) and a budget level — pp-core writes the canonical tier mapping automatically." },
|
|
608
608
|
{ label: "Generic provider", description: "Enter low / medium / high model IDs manually for any provider or custom deployment." },
|
|
609
609
|
{ label: "Keep current", description: "Leave model_policy unchanged." }
|
|
610
610
|
]
|
|
@@ -743,7 +743,7 @@ Display:
|
|
|
743
743
|
|
|
744
744
|
```text
|
|
745
745
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
746
|
-
|
|
746
|
+
pp-core ► ADVANCED SETTINGS UPDATED
|
|
747
747
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
748
748
|
|
|
749
749
|
| Setting | Value |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Interactive configuration of third-party integrations for
|
|
2
|
+
Interactive configuration of third-party integrations for pp-core — search API keys
|
|
3
3
|
(Brave / Firecrawl / Exa), code-review CLI routing (`review.models.<cli>`), and
|
|
4
4
|
agent-skill injection (`agent_skills.<agent-type>`). Writes to
|
|
5
5
|
`.planning/config.json` via `pp-tools` so unrelated keys are
|
|
@@ -263,7 +263,7 @@ output under any circumstance.**
|
|
|
263
263
|
|
|
264
264
|
```text
|
|
265
265
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
266
|
-
|
|
266
|
+
pp-core ► INTEGRATIONS UPDATED
|
|
267
267
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
268
268
|
|
|
269
269
|
Search Integrations
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Interactive configuration of
|
|
2
|
+
Interactive configuration of pp-core workflow agents (research, plan_check, verifier) and model profile selection via multi-question prompt. Updates .planning/config.json with user preferences. Optionally saves settings as global defaults (~/.gsd/defaults.json) for future projects.
|
|
3
3
|
</purpose>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
@@ -540,7 +540,7 @@ Display:
|
|
|
540
540
|
|
|
541
541
|
```
|
|
542
542
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
543
|
-
|
|
543
|
+
pp-core ► SETTINGS UPDATED
|
|
544
544
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
545
545
|
|
|
546
546
|
| Setting | Value |
|
|
@@ -14,7 +14,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
14
14
|
</required_reading>
|
|
15
15
|
|
|
16
16
|
<available_agent_types>
|
|
17
|
-
Valid
|
|
17
|
+
Valid pp-core subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
18
18
|
- pp-mempalace-curator — Ship-time MemPalace curation (diary, KG mirror, cross-project tunnels, wing-scoped prune); dispatched at ship:post when the mempalace capability is enabled.
|
|
19
19
|
</available_agent_types>
|
|
20
20
|
|
|
@@ -419,7 +419,7 @@ Read the `activeHooks` array directly from `SHIP_POST_HOOKS_JSON` in-context (do
|
|
|
419
419
|
```
|
|
420
420
|
|
|
421
421
|
`Agent(subagent_type=ref.agent, prompt="Ship-time capability hook for phase ${PHASE_NUMBER}. Phase dir: ${PHASE_DIR}. Consume: ${consumed_files}. Follow your agent instructions.", model="{balanced_model}")`
|
|
422
|
-
- If `ref.skill` is set, dispatch with `Skill(skill="gsd-${ref.skill}", args="${PHASE_NUMBER} --auto ${GSD_WS}")` (
|
|
422
|
+
- If `ref.skill` is set, dispatch with `Skill(skill="gsd-${ref.skill}", args="${PHASE_NUMBER} --auto ${GSD_WS}")` (Prepend `gsd-` to `ref.skill`).
|
|
423
423
|
|
|
424
424
|
Each dispatch is best-effort: if it errors, record a warning and continue — never re-raise (`onError: skip`).
|
|
425
425
|
</step>
|
|
@@ -14,7 +14,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
14
14
|
<step name="banner">
|
|
15
15
|
```
|
|
16
16
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
17
|
-
|
|
17
|
+
pp-core ► SKETCH WRAP-UP
|
|
18
18
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
19
19
|
```
|
|
20
20
|
</step>
|
|
@@ -240,7 +240,7 @@ pp_run query commit "docs(sketch-wrap-up): package [N] sketch findings into proj
|
|
|
240
240
|
<step name="report">
|
|
241
241
|
```
|
|
242
242
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
243
|
-
|
|
243
|
+
pp-core ► SKETCH WRAP-UP COMPLETE ✓
|
|
244
244
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
245
245
|
|
|
246
246
|
**Curated:** {N} sketches ({included} included, {excluded} excluded)
|
|
@@ -22,7 +22,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
22
22
|
<step name="banner">
|
|
23
23
|
```
|
|
24
24
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
25
|
-
|
|
25
|
+
pp-core ► SKETCHING
|
|
26
26
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
27
27
|
```
|
|
28
28
|
|
|
@@ -313,7 +313,7 @@ After all sketches complete:
|
|
|
313
313
|
|
|
314
314
|
```
|
|
315
315
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
316
|
-
|
|
316
|
+
pp-core ► SKETCH COMPLETE ✓
|
|
317
317
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
318
318
|
|
|
319
319
|
## Design Direction
|
|
@@ -195,7 +195,7 @@ ones). Reference: @~/.claude/pp-core/references/edge-probe.md.
|
|
|
195
195
|
**Runtime coverage compute — resolve and invoke edge-probe.cjs:**
|
|
196
196
|
|
|
197
197
|
```bash
|
|
198
|
-
# Resolve the compiled edge-probe.cjs against the
|
|
198
|
+
# Resolve the compiled edge-probe.cjs against the pp-core install dir via RUNTIME_DIR (#448)
|
|
199
199
|
# — NOT the consuming project's git root — falling back to git toplevel / $HOME/.claude.
|
|
200
200
|
# Mirrors the ui-safety-gate.cjs resolution idiom at autonomous.md:290 / plan-phase.md:631.
|
|
201
201
|
_GSD_RT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"
|
|
@@ -209,10 +209,10 @@ EDGE_PROBE_JS=$(for _c in \
|
|
|
209
209
|
done)
|
|
210
210
|
|
|
211
211
|
# Graceful degradation — never silent skip (RR-04). Build ONLY when $_GSD_RT is a verified
|
|
212
|
-
#
|
|
212
|
+
# pp-core source checkout (has tsconfig.build.json + src/edge-probe.cts), and pin npm to it with
|
|
213
213
|
# --prefix so we never trigger the CONSUMING project's own build:lib (its cwd package scripts:
|
|
214
214
|
# codegen/migrations/writes) during a spec workflow. Real installs ship the compiled .cjs via
|
|
215
|
-
# prepublishOnly, so this build path only matters in a
|
|
215
|
+
# prepublishOnly, so this build path only matters in a pp-core dev checkout (review High).
|
|
216
216
|
if [ -z "$EDGE_PROBE_JS" ]; then
|
|
217
217
|
if [ -f "$_GSD_RT/tsconfig.build.json" ] && [ -f "$_GSD_RT/src/edge-probe.cts" ]; then
|
|
218
218
|
npm --prefix "$_GSD_RT" run build:lib 2>/dev/null || true
|
|
@@ -226,7 +226,7 @@ if [ -z "$EDGE_PROBE_JS" ]; then
|
|
|
226
226
|
done)
|
|
227
227
|
fi
|
|
228
228
|
if [ -z "$EDGE_PROBE_JS" ]; then
|
|
229
|
-
echo "ERROR: edge-probe.cjs not found — reinstall
|
|
229
|
+
echo "ERROR: edge-probe.cjs not found — reinstall pp-core or run \`npm run build:lib\` in your pp-core checkout." >&2
|
|
230
230
|
exit 1
|
|
231
231
|
fi
|
|
232
232
|
fi
|
|
@@ -14,7 +14,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
14
14
|
<step name="banner">
|
|
15
15
|
```
|
|
16
16
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
17
|
-
|
|
17
|
+
pp-core ► SPIKE WRAP-UP
|
|
18
18
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
19
19
|
```
|
|
20
20
|
</step>
|
|
@@ -254,7 +254,7 @@ pp_run query commit "docs(spike-wrap-up): package [N] spike findings into projec
|
|
|
254
254
|
<step name="report">
|
|
255
255
|
```
|
|
256
256
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
257
|
-
|
|
257
|
+
pp-core ► SPIKE WRAP-UP COMPLETE ✓
|
|
258
258
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
259
259
|
|
|
260
260
|
**Processed:** {N} spikes
|
|
@@ -17,7 +17,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
17
17
|
<step name="banner">
|
|
18
18
|
```
|
|
19
19
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
20
|
-
|
|
20
|
+
pp-core ► SPIKING
|
|
21
21
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
22
22
|
```
|
|
23
23
|
|
|
@@ -396,7 +396,7 @@ pp_run query commit "docs(spikes): update conventions" --files .planning/spikes/
|
|
|
396
396
|
<step name="report">
|
|
397
397
|
```
|
|
398
398
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
399
|
-
|
|
399
|
+
pp-core ► SPIKE COMPLETE ✓
|
|
400
400
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
401
401
|
|
|
402
402
|
## Verdicts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# sync-skills — Cross-Runtime
|
|
1
|
+
# sync-skills — Cross-Runtime pp-core Skill Sync
|
|
2
2
|
|
|
3
3
|
**Command:** `/pp-sync-skills`
|
|
4
4
|
|
|
@@ -59,7 +59,7 @@ Use `install.js --skills-root` to resolve paths — this reuses the single autho
|
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
61
|
INSTALL_JS="$(dirname "$0")/../pp-core/bin/install.js"
|
|
62
|
-
# If running from a global install, resolve relative to the
|
|
62
|
+
# If running from a global install, resolve relative to the pp-core package
|
|
63
63
|
INSTALL_JS_GLOBAL="$HOME/.claude/pp-core/bin/install.js"
|
|
64
64
|
[[ ! -f "$INSTALL_JS" ]] && INSTALL_JS="$INSTALL_JS_GLOBAL"
|
|
65
65
|
|
|
@@ -73,7 +73,7 @@ done
|
|
|
73
73
|
**Guard:** If the source skills root does not exist, print:
|
|
74
74
|
```
|
|
75
75
|
error: source skills root not found: <path>
|
|
76
|
-
Is
|
|
76
|
+
Is pp-core installed globally for the '<runtime>' runtime?
|
|
77
77
|
Run: node ~/.claude/pp-core/bin/install.js --global --<runtime>
|
|
78
78
|
```
|
|
79
79
|
Then exit.
|
|
@@ -96,11 +96,11 @@ DST_SKILLS=$(ls -1 "$DEST_ROOT" 2>/dev/null | grep '^gsd-')
|
|
|
96
96
|
# Diff:
|
|
97
97
|
# CREATE — in SRC but not in DST
|
|
98
98
|
# UPDATE — in both; content differs (compare recursively via checksums)
|
|
99
|
-
# REMOVE — in DST but not in SRC (stale
|
|
99
|
+
# REMOVE — in DST but not in SRC (stale pp-core skill no longer in source)
|
|
100
100
|
# SKIP — in both; content identical (already up to date)
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
**Non-
|
|
103
|
+
**Non-pp-core preservation:** Only `gsd-*` entries are ever created, updated, or removed. Entries in the destination that do not start with `gsd-` are never touched.
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
@@ -177,6 +177,6 @@ Sync complete: <N> skills synced to <M> runtime(s).
|
|
|
177
177
|
|
|
178
178
|
## Limitations
|
|
179
179
|
|
|
180
|
-
- Sync copies files verbatim and does not apply runtime-specific content transformations. Use the
|
|
180
|
+
- Sync copies files verbatim and does not apply runtime-specific content transformations. Use the pp-core installer directly for runtimes that require format conversion.
|
|
181
181
|
- Cross-project skills (`.agents/skills/`) are out of scope — this command only touches global runtime skills roots.
|
|
182
182
|
- Bidirectional sync is not supported. Choose one canonical source with `--from`.
|
|
@@ -209,7 +209,7 @@ updated: {today ISO date}
|
|
|
209
209
|
- The value is in Context and Next Steps — a cold-start session can pick up immediately
|
|
210
210
|
- Threads can be promoted to phases or backlog items when they mature:
|
|
211
211
|
/pp-add-phase or /pp-add-backlog with context from the thread
|
|
212
|
-
- Thread files live in .planning/threads/ — no collision with phases or other
|
|
212
|
+
- Thread files live in .planning/threads/ — no collision with phases or other pp-core structures
|
|
213
213
|
- Thread status values: `open`, `in_progress`, `resolved`
|
|
214
214
|
</notes>
|
|
215
215
|
|
|
@@ -9,7 +9,7 @@ UI-SPEC.md locks spacing, typography, color, copywriting, and design system deci
|
|
|
9
9
|
</required_reading>
|
|
10
10
|
|
|
11
11
|
<available_agent_types>
|
|
12
|
-
Valid
|
|
12
|
+
Valid pp-core subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
13
13
|
- pp-ui-researcher — Researches UI/UX approaches
|
|
14
14
|
- pp-ui-checker — Reviews UI implementation quality
|
|
15
15
|
</available_agent_types>
|
|
@@ -115,7 +115,7 @@ If "Update": continue to step 5.
|
|
|
115
115
|
Display:
|
|
116
116
|
```
|
|
117
117
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
-
|
|
118
|
+
pp-core ► UI DESIGN CONTRACT — PHASE {N}
|
|
119
119
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
120
120
|
|
|
121
121
|
◆ Spawning UI researcher... (runs in a subagent — no output until it returns, ~1–5 min; expected, not a freeze)
|
|
@@ -180,7 +180,7 @@ Display blocker details and options. Exit workflow.
|
|
|
180
180
|
Display:
|
|
181
181
|
```
|
|
182
182
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
183
|
-
|
|
183
|
+
pp-core ► VERIFYING UI-SPEC
|
|
184
184
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
185
185
|
|
|
186
186
|
◆ Spawning UI checker... (runs in a subagent — no output until it returns, ~1–5 min; expected, not a freeze)
|
|
@@ -269,7 +269,7 @@ Use AskUserQuestion for the choice.
|
|
|
269
269
|
Display:
|
|
270
270
|
```
|
|
271
271
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
272
|
-
|
|
272
|
+
pp-core ► UI-SPEC READY ✓
|
|
273
273
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
274
274
|
|
|
275
275
|
**Phase {N}: {Name}** — UI design contract approved
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Retroactive 6-pillar visual audit of implemented frontend code. Standalone command that works on any project —
|
|
2
|
+
Retroactive 6-pillar visual audit of implemented frontend code. Standalone command that works on any project — pp-core-managed or not. Produces scored UI-REVIEW.md with actionable findings.
|
|
3
3
|
</purpose>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
@@ -7,7 +7,7 @@ Retroactive 6-pillar visual audit of implemented frontend code. Standalone comma
|
|
|
7
7
|
</required_reading>
|
|
8
8
|
|
|
9
9
|
<available_agent_types>
|
|
10
|
-
Valid
|
|
10
|
+
Valid pp-core subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
11
11
|
- pp-ui-auditor — Audits UI against design requirements
|
|
12
12
|
</available_agent_types>
|
|
13
13
|
|
|
@@ -31,7 +31,7 @@ UI_AUDITOR_MODEL=$(pp_run query resolve-model pp-ui-auditor --raw)
|
|
|
31
31
|
Display banner:
|
|
32
32
|
```
|
|
33
33
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
34
|
-
|
|
34
|
+
pp-core ► UI AUDIT — PHASE {N}: {name}
|
|
35
35
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
36
36
|
```
|
|
37
37
|
|
|
@@ -118,7 +118,7 @@ Display score summary:
|
|
|
118
118
|
|
|
119
119
|
```
|
|
120
120
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
121
|
-
|
|
121
|
+
pp-core ► UI AUDIT COMPLETE ✓
|
|
122
122
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
123
123
|
|
|
124
124
|
**Phase {N}: {Name}** — Overall: {score}/24
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Ultraplan Phase Workflow [BETA]
|
|
2
2
|
|
|
3
|
-
Offload
|
|
3
|
+
Offload pp-core's plan phase to Claude Code's ultraplan cloud infrastructure.
|
|
4
4
|
|
|
5
5
|
⚠ **BETA feature.** Ultraplan is in research preview and may change. This workflow is
|
|
6
6
|
intentionally isolated from /pp:plan-phase so upstream changes to ultraplan cannot
|
|
@@ -14,7 +14,7 @@ Display the stage banner:
|
|
|
14
14
|
|
|
15
15
|
```text
|
|
16
16
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
17
|
-
|
|
17
|
+
pp-core ► ULTRAPLAN PHASE ⚠ BETA
|
|
18
18
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
19
19
|
Ultraplan is in research preview (Claude Code v2.1.91+).
|
|
20
20
|
Use /pp:plan-phase for stable local planning.
|
|
@@ -63,7 +63,7 @@ Use /pp:plan-phase for local planning instead.
|
|
|
63
63
|
Parse phase number from `$ARGUMENTS`. If no phase number is provided, detect the next
|
|
64
64
|
unplanned phase from the roadmap (same logic as /pp:plan-phase).
|
|
65
65
|
|
|
66
|
-
Load
|
|
66
|
+
Load pp-core phase context:
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
69
|
_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 [ -f "${_PP_RUNTIME_ROOT}/.codex/pp-core/bin/${_PP_SHIM_NAME}" ]; then PP_TOOLS="${_PP_RUNTIME_ROOT}/.codex/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; if [ -n "${CLAUDE_ENV_FILE:-}" ] && [ -n "${PP_TOOLS:-}" ]; then printf "export PATH='%s':\"\$PATH\"\n" "${PP_TOOLS%/*}" >> "$CLAUDE_ENV_FILE" 2>/dev/null || true; fi
|
|
@@ -96,7 +96,7 @@ Phase {N}: {phase name}
|
|
|
96
96
|
|
|
97
97
|
<step name="build_prompt">
|
|
98
98
|
|
|
99
|
-
Build the ultraplan prompt from
|
|
99
|
+
Build the ultraplan prompt from pp-core context.
|
|
100
100
|
|
|
101
101
|
1. Read the phase scope from ROADMAP.md — extract the goal, deliverables, and scope for
|
|
102
102
|
the target phase.
|
|
@@ -126,7 +126,7 @@ Plan phase {phase_number}: {phase_name}
|
|
|
126
126
|
|
|
127
127
|
## Output Format
|
|
128
128
|
|
|
129
|
-
Produce a
|
|
129
|
+
Produce a pp-core PLAN.md with the following YAML frontmatter:
|
|
130
130
|
|
|
131
131
|
---
|
|
132
132
|
phase: "{padded_phase}-{phase_slug}"
|
|
@@ -173,7 +173,7 @@ When ◆ ultraplan ready appears in your terminal:
|
|
|
173
173
|
6. Note the file path Claude prints
|
|
174
174
|
7. Run: /pp:import --from <the file path>
|
|
175
175
|
|
|
176
|
-
/pp:import will run conflict detection, convert to
|
|
176
|
+
/pp:import will run conflict detection, convert to pp-core format,
|
|
177
177
|
validate via plan-checker, update ROADMAP.md, and commit.
|
|
178
178
|
|
|
179
179
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Safe git revert workflow. Rolls back
|
|
2
|
+
Safe git revert workflow. Rolls back pp-core phase or plan commits using the phase manifest with dependency checks and a confirmation gate. Uses git revert --no-commit (NEVER git reset) to preserve history.
|
|
3
3
|
</purpose>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
@@ -14,7 +14,7 @@ Display the stage banner:
|
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
17
|
-
|
|
17
|
+
pp-core ► UNDO
|
|
18
18
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
19
19
|
```
|
|
20
20
|
</step>
|
|
@@ -32,7 +32,7 @@ If no valid argument is provided, display usage and exit:
|
|
|
32
32
|
Usage: /pp:undo --last N | --phase NN | --plan NN-MM
|
|
33
33
|
|
|
34
34
|
Modes:
|
|
35
|
-
--last N Show last N
|
|
35
|
+
--last N Show last N pp-core commits for interactive selection
|
|
36
36
|
--phase NN Revert all commits for phase NN
|
|
37
37
|
--plan NN-MM Revert all commits for plan NN-MM
|
|
38
38
|
|
|
@@ -53,11 +53,11 @@ Run:
|
|
|
53
53
|
git log --oneline --no-merges -${COUNT}
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
Filter for
|
|
56
|
+
Filter for pp-core conventional commits matching `type(scope): message` pattern (e.g., `feat(04-01):`, `docs(03):`, `fix(02-03):`).
|
|
57
57
|
|
|
58
58
|
Display a numbered list of matching commits:
|
|
59
59
|
```
|
|
60
|
-
Recent
|
|
60
|
+
Recent pp-core commits:
|
|
61
61
|
1. abc1234 feat(04-01): implement auth endpoint
|
|
62
62
|
2. def5678 docs(03-02): complete plan summary
|
|
63
63
|
3. ghi9012 fix(02-03): correct validation logic
|
|
@@ -265,7 +265,7 @@ Display the completion banner:
|
|
|
265
265
|
|
|
266
266
|
```
|
|
267
267
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
268
|
-
|
|
268
|
+
pp-core ► UNDO COMPLETE ✓
|
|
269
269
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
270
270
|
```
|
|
271
271
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Check for
|
|
2
|
+
Check for pp-core updates via npm, display changelog for versions between installed and latest, obtain user confirmation, and execute clean installation with cache clearing.
|
|
3
3
|
</purpose>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
@@ -9,7 +9,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
9
9
|
<process>
|
|
10
10
|
|
|
11
11
|
<step name="get_installed_version">
|
|
12
|
-
Detect the installed
|
|
12
|
+
Detect the installed pp-core version, scope, runtime, and config dir.
|
|
13
13
|
|
|
14
14
|
First, derive `PREFERRED_CONFIG_DIR` and `PREFERRED_RUNTIME` from the invoking prompt's `execution_context` path — this is the one input only the workflow knows:
|
|
15
15
|
- If the path contains `/pp-core/workflows/update.md`, strip that suffix and store the remainder as `PREFERRED_CONFIG_DIR`.
|
|
@@ -65,7 +65,7 @@ Parse output:
|
|
|
65
65
|
- Line 1 = installed version (`0.0.0` means unknown version)
|
|
66
66
|
- Line 2 = install scope (`LOCAL`, `GLOBAL`, or `UNKNOWN`)
|
|
67
67
|
- Line 3 = target runtime (`claude`, `opencode`, `gemini`, `kilo`, `codex`, `antigravity`)
|
|
68
|
-
- Line 4 = resolved
|
|
68
|
+
- Line 4 = resolved pp-core config dir (e.g. `/Users/me/.claude`, `/Users/me/.gemini`); empty if scope is `UNKNOWN`. Capture this as `GSD_DIR` and pass it to subsequent steps so they don't re-derive the runtime path.
|
|
69
69
|
- If scope is `UNKNOWN`, proceed to install using the `--claude --global` fallback.
|
|
70
70
|
|
|
71
71
|
`update-context` reproduces the previous detection cascade — preferred-config-dir fast path, local-over-global with same-path dedup (so `CWD=$HOME` does not misdetect as LOCAL), env-var overrides (`CLAUDE_CONFIG_DIR`, `OPENCODE_CONFIG_DIR`, `KILO_CONFIG`, `XDG_CONFIG_HOME`, `CODEX_HOME`, …), and semver validation — but as a tested projection rather than ~280 lines of inline bash. Branch coverage lives in `tests/issue-498-update-context.test.cjs`.
|
|
@@ -152,7 +152,7 @@ When `TAG=next`, the "latest" value is the release candidate published under `@n
|
|
|
152
152
|
|
|
153
153
|
**If installed == latest:**
|
|
154
154
|
```
|
|
155
|
-
##
|
|
155
|
+
## pp-core Update
|
|
156
156
|
|
|
157
157
|
**Installed:** X.Y.Z
|
|
158
158
|
**Latest:** X.Y.Z
|
|
@@ -164,7 +164,7 @@ Exit.
|
|
|
164
164
|
|
|
165
165
|
**If installed > latest:**
|
|
166
166
|
```
|
|
167
|
-
##
|
|
167
|
+
## pp-core Update
|
|
168
168
|
|
|
169
169
|
**Installed:** X.Y.Z
|
|
170
170
|
**Latest:** A.B.C
|
|
@@ -197,7 +197,7 @@ curl -fsSL "https://gitlab.com/pareto4/pp-core/-/raw/main/CHANGELOG.md" -o "$CHA
|
|
|
197
197
|
|
|
198
198
|
GSD_CHANGESET_CLI="$GSD_DIR/scripts/changeset/cli.cjs"
|
|
199
199
|
if [ ! -f "$GSD_CHANGESET_CLI" ]; then
|
|
200
|
-
CHANGELOG_PREVIEW="(Changelog CLI not found at $GSD_CHANGESET_CLI — reinstall
|
|
200
|
+
CHANGELOG_PREVIEW="(Changelog CLI not found at $GSD_CHANGESET_CLI — reinstall pp-core to restore preview. Update will still proceed.)"
|
|
201
201
|
else
|
|
202
202
|
EXTRACT_JSON=$(node "$GSD_CHANGESET_CLI" extract \
|
|
203
203
|
--from "$INSTALLED_VERSION" \
|
|
@@ -226,7 +226,7 @@ rm -f "$CHANGELOG_TMP"
|
|
|
226
226
|
3. Display preview and ask for confirmation, using `$CHANGELOG_PREVIEW` from the extract step above:
|
|
227
227
|
|
|
228
228
|
```
|
|
229
|
-
##
|
|
229
|
+
## pp-core Update Available
|
|
230
230
|
|
|
231
231
|
**Installed:** {INSTALLED_VERSION}
|
|
232
232
|
**Latest:** {LATEST_VERSION}
|
|
@@ -238,7 +238,7 @@ rm -f "$CHANGELOG_TMP"
|
|
|
238
238
|
|
|
239
239
|
────────────────────────────────────────────────────────────
|
|
240
240
|
|
|
241
|
-
⚠️ **Note:** The installer performs a clean install of
|
|
241
|
+
⚠️ **Note:** The installer performs a clean install of pp-core folders:
|
|
242
242
|
- `commands/gsd/` will be wiped and replaced
|
|
243
243
|
- `pp-core/` will be wiped and replaced
|
|
244
244
|
- `agents/pp-*` files will be replaced
|
|
@@ -253,7 +253,7 @@ Your custom files in other locations are preserved:
|
|
|
253
253
|
- Custom hooks ✓
|
|
254
254
|
- Your CLAUDE.md files ✓
|
|
255
255
|
|
|
256
|
-
If you've modified any
|
|
256
|
+
If you've modified any pp-core files directly, they'll be automatically backed up to `pp-local-patches/` and can be reapplied with `/pp:update --reapply` after the update.
|
|
257
257
|
```
|
|
258
258
|
|
|
259
259
|
|
|
@@ -269,7 +269,7 @@ Use AskUserQuestion:
|
|
|
269
269
|
|
|
270
270
|
<step name="backup_custom_files">
|
|
271
271
|
Before running the installer, detect and back up any user-added files inside
|
|
272
|
-
|
|
272
|
+
pp-core-managed directories. These are files that exist on disk but are NOT listed
|
|
273
273
|
in `pp-file-manifest.json` — i.e., files the user added themselves that the
|
|
274
274
|
installer does not know about and will delete during the wipe.
|
|
275
275
|
|
|
@@ -341,7 +341,7 @@ JSEOF
|
|
|
341
341
|
Then inform the user:
|
|
342
342
|
|
|
343
343
|
```
|
|
344
|
-
⚠️ Found N custom file(s) inside
|
|
344
|
+
⚠️ Found N custom file(s) inside pp-core-managed directories.
|
|
345
345
|
These have been backed up to pp-user-files-backup/ before the update.
|
|
346
346
|
Restore them after the update if needed.
|
|
347
347
|
```
|
|
@@ -463,7 +463,7 @@ Format completion message (changelog was already shown in confirmation step):
|
|
|
463
463
|
|
|
464
464
|
```
|
|
465
465
|
╔═══════════════════════════════════════════════════════════╗
|
|
466
|
-
║
|
|
466
|
+
║ pp-core Updated: v1.5.10 → v1.5.15 ║
|
|
467
467
|
╚═══════════════════════════════════════════════════════════╝
|
|
468
468
|
|
|
469
469
|
⚠️ Restart your runtime to pick up the new commands.
|
|
@@ -7,7 +7,7 @@ Audit Nyquist validation gaps for a completed phase. Generate missing tests. Upd
|
|
|
7
7
|
</required_reading>
|
|
8
8
|
|
|
9
9
|
<available_agent_types>
|
|
10
|
-
Valid
|
|
10
|
+
Valid pp-core subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
11
11
|
- pp-nyquist-auditor — Validates verification coverage
|
|
12
12
|
</available_agent_types>
|
|
13
13
|
|
|
@@ -33,7 +33,7 @@ Resolve active step hooks from `VERIFY_POST_HOOKS_JSON` where `kind == "step"` a
|
|
|
33
33
|
|
|
34
34
|
If no active validate-phase step hook exists: exit with "Nyquist validation is disabled. Enable via /pp:settings."
|
|
35
35
|
|
|
36
|
-
Display banner: `
|
|
36
|
+
Display banner: `pp-core > VALIDATE PHASE {N}: {name}`
|
|
37
37
|
|
|
38
38
|
## 1. Detect Input State
|
|
39
39
|
|
|
@@ -151,14 +151,14 @@ pp_run query commit "docs(phase-${PHASE}): add/update validation strategy"
|
|
|
151
151
|
|
|
152
152
|
**Compliant:**
|
|
153
153
|
```
|
|
154
|
-
|
|
154
|
+
pp-core > PHASE {N} IS NYQUIST-COMPLIANT
|
|
155
155
|
All requirements have automated verification.
|
|
156
156
|
▶ Next: /pp:audit-milestone ${GSD_WS}
|
|
157
157
|
```
|
|
158
158
|
|
|
159
159
|
**Partial:**
|
|
160
160
|
```
|
|
161
|
-
|
|
161
|
+
pp-core > PHASE {N} VALIDATED (PARTIAL)
|
|
162
162
|
{M} automated, {K} manual-only.
|
|
163
163
|
▶ Retry: /pp:validate-phase {N} ${GSD_WS}
|
|
164
164
|
```
|
|
@@ -12,7 +12,7 @@ User tests, Claude records. One test at a time. Plain text responses.
|
|
|
12
12
|
</purpose>
|
|
13
13
|
|
|
14
14
|
<available_agent_types>
|
|
15
|
-
Valid
|
|
15
|
+
Valid pp-core subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
16
16
|
- pp-planner — Creates detailed plans from phase scope
|
|
17
17
|
- pp-plan-checker — Reviews plan quality before execution
|
|
18
18
|
</available_agent_types>
|
|
@@ -171,7 +171,7 @@ PHASE_GOAL=$(pp_run query roadmap.get-phase "${phase_number}" ${GSD_WS} --pick g
|
|
|
171
171
|
USER_STORY_VALID=$(pp_run query user-story.validate --story "$PHASE_GOAL" --pick valid)
|
|
172
172
|
if [ "$USER_STORY_VALID" != "true" ]; then
|
|
173
173
|
echo "Phase ${phase_number} has '**Mode:** mvp' in ROADMAP.md but the **Goal:** is not in user-story format."
|
|
174
|
-
echo "Run /
|
|
174
|
+
echo "Run /pp:mvp-phase ${phase_number} to set a user-story goal before verifying."
|
|
175
175
|
exit 1
|
|
176
176
|
fi
|
|
177
177
|
```
|
|
@@ -572,7 +572,7 @@ Diagnosis runs automatically - no user prompt. Parallel agents investigate simul
|
|
|
572
572
|
Display:
|
|
573
573
|
```
|
|
574
574
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
575
|
-
|
|
575
|
+
pp-core ► PLANNING FIXES
|
|
576
576
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
577
577
|
|
|
578
578
|
◆ Spawning planner for gap closure... (runs in a subagent — no output until it returns, ~1–5 min; expected, not a freeze)
|
|
@@ -622,7 +622,7 @@ On return:
|
|
|
622
622
|
Display:
|
|
623
623
|
```
|
|
624
624
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
625
|
-
|
|
625
|
+
pp-core ► VERIFYING FIX PLANS
|
|
626
626
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
627
627
|
|
|
628
628
|
◆ Spawning plan checker... (runs in a subagent — no output until it returns, ~1–5 min; expected, not a freeze)
|
|
@@ -728,7 +728,7 @@ Wait for user response.
|
|
|
728
728
|
|
|
729
729
|
```
|
|
730
730
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
731
|
-
|
|
731
|
+
pp-core ► FIXES READY ✓
|
|
732
732
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
733
733
|
|
|
734
734
|
**Phase {X}: {Name}** — {N} gap(s) diagnosed, {M} fix plan(s) created
|