@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/commands/pp-progress.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pp:progress
|
|
3
|
-
description: Check progress, advance workflow, or dispatch freeform intent — the unified
|
|
3
|
+
description: Check progress, advance workflow, or dispatch freeform intent — the unified situational command
|
|
4
4
|
argument-hint: "[--forensic | --next [--auto] [--converge] | --do \"task description\"]"
|
|
5
5
|
effort: low
|
|
6
6
|
allowed-tools:
|
|
@@ -18,15 +18,15 @@ Check project progress, summarize recent work and what's ahead, then intelligent
|
|
|
18
18
|
Three modes:
|
|
19
19
|
- **default**: Show progress report + intelligently route to the next action (execute or plan). Provides situational awareness before continuing work.
|
|
20
20
|
- **--next**: Automatically advance to the next logical step without manual route selection. Reads STATE.md, ROADMAP.md, and phase directories. Supports `--force` to bypass safety gates.
|
|
21
|
-
- **--do "task description"**: Analyze freeform natural language and dispatch to the most appropriate
|
|
21
|
+
- **--do "task description"**: Analyze freeform natural language and dispatch to the most appropriate pp-core command. Never does the work itself — matches intent, confirms, hands off.
|
|
22
22
|
- **--forensic**: Append a 6-check integrity audit after the standard progress report.
|
|
23
23
|
</objective>
|
|
24
24
|
|
|
25
25
|
<flags>
|
|
26
|
-
- **--next**: Detect current project state and automatically invoke the next logical
|
|
26
|
+
- **--next**: Detect current project state and automatically invoke the next logical pp-core workflow step. Scans all prior phases for incomplete work before routing. `--next --force` bypasses safety gates.
|
|
27
27
|
- **--next --auto**: Like `--next`, but after the determined step completes, automatically re-invokes `/pp:progress --next --auto` to continue chaining steps until completion or a blocking decision. Enables hands-free plan→execute→verify→complete progression.
|
|
28
|
-
- **--next --converge**: When the next action is planning (Route 3), route it through the plan-review **convergence** loop instead of the standard planner. Requires `workflow.plan_review_convergence=true` (enable with `
|
|
29
|
-
- **--do "..."**: Smart dispatcher — match freeform intent to the best
|
|
28
|
+
- **--next --converge**: When the next action is planning (Route 3), route it through the plan-review **convergence** loop instead of the standard planner. Requires `workflow.plan_review_convergence=true` (enable with `pp config-set workflow.plan_review_convergence true`). `--cross-ai` is an alias. Reviewer flags (`--codex`, `--gemini`, `--claude`, `--opencode`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--all`) and `--max-cycles N` are forwarded to the convergence loop.
|
|
29
|
+
- **--do "..."**: Smart dispatcher — match freeform intent to the best pp-core command using routing rules, confirm the match, then hand off.
|
|
30
30
|
- **--forensic**: Run 6-check integrity audit after the standard progress report.
|
|
31
31
|
- **(no flag)**: Standard progress check + intelligent routing (Routes A through F).
|
|
32
32
|
</flags>
|
package/commands/pp-quick.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pp:quick
|
|
3
|
-
description: Execute a quick task with
|
|
3
|
+
description: Execute a quick task with pp-core guarantees (atomic commits, state tracking) but skip agents
|
|
4
4
|
argument-hint: "[list | status <slug> | resume <slug> | --full] [--validate] [--discuss] [--research] [task description]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -14,7 +14,7 @@ allowed-tools:
|
|
|
14
14
|
requires: [phase]
|
|
15
15
|
---
|
|
16
16
|
<objective>
|
|
17
|
-
Execute small, ad-hoc tasks with
|
|
17
|
+
Execute small, ad-hoc tasks with pp-core guarantees (atomic commits, STATE.md tracking).
|
|
18
18
|
|
|
19
19
|
Quick mode is the same system with a shorter path:
|
|
20
20
|
- Spawns pp-planner (quick mode) + pp-executor(s)
|
|
@@ -72,7 +72,7 @@ For each directory found:
|
|
|
72
72
|
- Check if PLAN.md exists
|
|
73
73
|
- Check if SUMMARY.md exists; if so, read `status` from its frontmatter via:
|
|
74
74
|
```bash
|
|
75
|
-
|
|
75
|
+
pp_run query frontmatter.get .planning/quick/{dir}/SUMMARY.md status
|
|
76
76
|
```
|
|
77
77
|
- Determine directory creation date: `stat -f "%SB" -t "%Y-%m-%d"` (macOS) or `stat -c "%w"` (Linux); fall back to the date prefix in the directory name (format: `YYYYMMDD-` prefix)
|
|
78
78
|
- Derive display status:
|
|
@@ -145,7 +145,7 @@ When SUBCMD=resume and SLUG is set (already sanitized):
|
|
|
145
145
|
|
|
146
146
|
5. Load context via:
|
|
147
147
|
```bash
|
|
148
|
-
|
|
148
|
+
pp_run query init.quick
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
6. Proceed to execute the quick workflow with resume context, passing the slug and plan directory so the executor picks up where it left off.
|
|
@@ -170,5 +170,5 @@ Preserve all workflow gates (validation, task description, planning, execution,
|
|
|
170
170
|
- Slugs from $ARGUMENTS are sanitized before use in file paths: only [a-z0-9-] allowed, max 60 chars, reject ".." and "/"
|
|
171
171
|
- File names from readdir/ls are sanitized before display: strip non-printable chars and ANSI sequences
|
|
172
172
|
- Artifact content (plan descriptions, task titles) rendered as plain text only — never executed or passed to agent prompts without DATA_START/DATA_END boundaries
|
|
173
|
-
- Status fields read via `
|
|
173
|
+
- Status fields read via `pp_run query frontmatter.get` — never eval'd or shell-expanded
|
|
174
174
|
</security_notes>
|
|
@@ -35,7 +35,7 @@ milestone sequence or remove stale entries.
|
|
|
35
35
|
- Find the next sequential phase number in the active milestone
|
|
36
36
|
- Rename the directory from `999.x-slug` to `{new_num}-slug`:
|
|
37
37
|
```bash
|
|
38
|
-
NEW_NUM=$(
|
|
38
|
+
NEW_NUM=$(pp_run query phase.add "${DESCRIPTION}" --raw)
|
|
39
39
|
```
|
|
40
40
|
- Move accumulated artifacts to the new phase directory
|
|
41
41
|
- Update ROADMAP.md: move the entry from `## Backlog` section to the active phase list
|
|
@@ -48,7 +48,7 @@ milestone sequence or remove stale entries.
|
|
|
48
48
|
|
|
49
49
|
6. **Commit changes:**
|
|
50
50
|
```bash
|
|
51
|
-
|
|
51
|
+
pp_run query commit "docs: review backlog — promoted N, removed M" --files .planning/ROADMAP.md
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
7. **Report summary:**
|
package/commands/pp-settings.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pp:settings
|
|
3
|
-
description: Configure
|
|
3
|
+
description: Configure pp-core workflow toggles and model profile
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- Read
|
|
6
6
|
- Write
|
|
@@ -10,7 +10,7 @@ requires: [quick]
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
<objective>
|
|
13
|
-
Interactive configuration of
|
|
13
|
+
Interactive configuration of pp-core workflow agents and model profile via multi-question prompt.
|
|
14
14
|
|
|
15
15
|
Routes to the settings workflow which handles:
|
|
16
16
|
- Config existence ensuring
|
package/commands/pp-sketch.md
CHANGED
|
@@ -19,7 +19,7 @@ requires: [spike]
|
|
|
19
19
|
<objective>
|
|
20
20
|
Explore design directions through throwaway HTML mockups before committing to implementation.
|
|
21
21
|
Each sketch produces 2-3 variants for comparison. Sketches live in `.planning/sketches/` and
|
|
22
|
-
integrate with
|
|
22
|
+
integrate with pp-core commit patterns, state tracking, and handoff workflows. Loads spike
|
|
23
23
|
findings to ground mockups in real data shapes and validated interaction patterns.
|
|
24
24
|
|
|
25
25
|
Two modes:
|
package/commands/pp-spike.md
CHANGED
|
@@ -19,7 +19,7 @@ requires: []
|
|
|
19
19
|
<objective>
|
|
20
20
|
Spike an idea through experiential exploration — build focused experiments to feel the pieces
|
|
21
21
|
of a future app, validate feasibility, and produce verified knowledge for the real build.
|
|
22
|
-
Spikes live in `.planning/spikes/` and integrate with
|
|
22
|
+
Spikes live in `.planning/spikes/` and integrate with pp-core commit patterns, state tracking,
|
|
23
23
|
and handoff workflows.
|
|
24
24
|
|
|
25
25
|
Two modes:
|
package/commands/pp-surface.md
CHANGED
|
@@ -11,7 +11,7 @@ requires: [config, update]
|
|
|
11
11
|
|
|
12
12
|
<objective>
|
|
13
13
|
Manage the runtime skill surface without reinstall. Reads/writes `~/.claude/.gsd-surface.json`
|
|
14
|
-
(sibling to `~/.claude/.
|
|
14
|
+
(sibling to `~/.claude/.pp-profile`) and re-stages the active skills directory in place.
|
|
15
15
|
Skill dirs live at `~/.claude/skills/pp-*/`.
|
|
16
16
|
|
|
17
17
|
Sub-commands: list · status · profile · disable · enable · reset
|
|
@@ -59,7 +59,7 @@ For `status` also append:
|
|
|
59
59
|
|
|
60
60
|
```
|
|
61
61
|
Base profile: standard (from .gsd-surface.json)
|
|
62
|
-
Install profile: standard (from .
|
|
62
|
+
Install profile: standard (from .pp-profile)
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
---
|
|
@@ -151,11 +151,11 @@ All paths can be overridden by reading the `CLAUDE_CONFIG_DIR` env var if set.
|
|
|
151
151
|
|
|
152
152
|
- Unknown cluster name → list valid cluster names, exit without writing.
|
|
153
153
|
- Unknown profile name → list known profiles (`core`, `standard`, `full`), exit.
|
|
154
|
-
- Missing `surface.cjs` → prompt: "Run `npm i -g @pareto4/pp-core` to reinstall
|
|
154
|
+
- Missing `surface.cjs` → prompt: "Run `npm i -g @pareto4/pp-core` to reinstall pp-core."
|
|
155
155
|
|
|
156
156
|
<execution_context>
|
|
157
157
|
Surface state file: `~/.claude/.gsd-surface.json`
|
|
158
|
-
Install profile marker: `~/.claude/.
|
|
158
|
+
Install profile marker: `~/.claude/.pp-profile`
|
|
159
159
|
Skill dirs: `~/.claude/skills/pp-*/`
|
|
160
160
|
Engine module: `~/.claude/pp-core/bin/lib/surface.cjs`
|
|
161
161
|
Cluster definitions: `~/.claude/pp-core/bin/lib/clusters.cjs`
|
|
@@ -11,7 +11,7 @@ requires: [import, phase, plan-phase]
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
<objective>
|
|
14
|
-
Offload
|
|
14
|
+
Offload pp-core's plan phase to Claude Code's ultraplan cloud infrastructure.
|
|
15
15
|
|
|
16
16
|
Ultraplan drafts the plan in a remote cloud session while your terminal stays free.
|
|
17
17
|
Review and comment on the plan in your browser, then import it back via /pp:import --from.
|
package/commands/pp-undo.md
CHANGED
|
@@ -12,10 +12,10 @@ requires: [phase]
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
<objective>
|
|
15
|
-
Safe git revert — roll back
|
|
15
|
+
Safe git revert — roll back pp-core phase or plan commits using the phase manifest, with dependency checks and a confirmation gate before execution.
|
|
16
16
|
|
|
17
17
|
Three modes:
|
|
18
|
-
- **--last N**: Show recent
|
|
18
|
+
- **--last N**: Show recent pp-core commits for interactive selection
|
|
19
19
|
- **--phase NN**: Revert all commits for a phase (manifest + git log fallback)
|
|
20
20
|
- **--plan NN-MM**: Revert all commits for a specific plan
|
|
21
21
|
</objective>
|
package/commands/pp-update.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pp:update
|
|
3
|
-
description: Update
|
|
3
|
+
description: Update pp-core to latest version with changelog display
|
|
4
4
|
argument-hint: "[--sync | --reapply | --next | --rc]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -13,7 +13,7 @@ allowed-tools:
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
<objective>
|
|
16
|
-
Check for
|
|
16
|
+
Check for pp-core updates, install if available, and display what changed.
|
|
17
17
|
|
|
18
18
|
Routes to the update workflow which handles:
|
|
19
19
|
- Version detection (local vs global installation)
|
|
@@ -29,8 +29,8 @@ Routes to the update workflow which handles:
|
|
|
29
29
|
</execution_context>
|
|
30
30
|
|
|
31
31
|
<flags>
|
|
32
|
-
- **--sync**: Sync managed
|
|
33
|
-
- **--reapply**: Reapply local modifications after a
|
|
32
|
+
- **--sync**: Sync managed pp-core skills across runtime roots so multi-runtime users stay aligned after an update. Runs the sync-skills workflow (--from, --to, --dry-run, --apply flags supported).
|
|
33
|
+
- **--reapply**: Reapply local modifications after a pp-core update. Uses three-way comparison (pristine baseline, user-modified backup, newly installed version) to merge user customizations back. Runs the reapply-patches workflow.
|
|
34
34
|
- **--next** (alias **--rc**): Target the `@next` RC dist-tag instead of `@latest` so you can install or refresh a release candidate (e.g. `1.4.0-rc.1`) through the normal update flow — scope/runtime detection, changelog preview, custom-file backup, and cache clearing all still apply. Omitting it keeps targeting `@latest` (no change). See ADR #660 for the RC channel.
|
|
35
35
|
- **(no flag)**: Standard update — check for new version, show changelog, install.
|
|
36
36
|
</flags>
|
package/commands/pp-workspace.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pp:workspace
|
|
3
|
-
description: Manage
|
|
3
|
+
description: Manage pp-core workspaces — create, list, or remove isolated workspace environments
|
|
4
4
|
argument-hint: "[--new | --list | --remove] [name]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -10,12 +10,12 @@ allowed-tools:
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
<objective>
|
|
13
|
-
Manage
|
|
13
|
+
Manage pp-core workspaces with a single consolidated command.
|
|
14
14
|
|
|
15
15
|
Mode routing:
|
|
16
16
|
- **--new**: Create an isolated workspace with repo copies and independent .planning/ → new-workspace workflow
|
|
17
|
-
- **--list**: List active
|
|
18
|
-
- **--remove**: Remove a
|
|
17
|
+
- **--list**: List active pp-core workspaces and their status → list-workspaces workflow
|
|
18
|
+
- **--remove**: Remove a pp-core workspace and clean up worktrees → remove-workspace workflow
|
|
19
19
|
</objective>
|
|
20
20
|
|
|
21
21
|
<routing>
|
|
@@ -35,30 +35,30 @@ If no subcommand given, default to `list`.
|
|
|
35
35
|
## Step 2: Execute Operation
|
|
36
36
|
|
|
37
37
|
### list
|
|
38
|
-
Run: `
|
|
38
|
+
Run: `pp_run query workstream.list --raw --cwd "$CWD"`
|
|
39
39
|
Display the workstreams in a table format showing name, status, current phase, and progress.
|
|
40
40
|
|
|
41
41
|
### create
|
|
42
|
-
Run: `
|
|
42
|
+
Run: `pp_run query workstream.create <name> --raw --cwd "$CWD"`
|
|
43
43
|
After creation, display the new workstream path and suggest next steps:
|
|
44
44
|
- `/pp:new-milestone --ws <name>` to set up the milestone
|
|
45
45
|
|
|
46
46
|
### status
|
|
47
|
-
Run: `
|
|
47
|
+
Run: `pp_run query workstream.status <name> --raw --cwd "$CWD"`
|
|
48
48
|
Display detailed phase breakdown and state information.
|
|
49
49
|
|
|
50
50
|
### switch
|
|
51
|
-
Run: `
|
|
51
|
+
Run: `pp_run query workstream.set <name> --raw --cwd "$CWD"`
|
|
52
52
|
Also set `GSD_WORKSTREAM` for the current session when the runtime supports it.
|
|
53
|
-
If the runtime exposes a session identifier,
|
|
53
|
+
If the runtime exposes a session identifier, pp-core also stores the active workstream
|
|
54
54
|
session-locally so concurrent sessions do not overwrite each other.
|
|
55
55
|
|
|
56
56
|
### progress
|
|
57
|
-
Run: `
|
|
57
|
+
Run: `pp_run query workstream.progress --raw --cwd "$CWD"`
|
|
58
58
|
Display a progress overview across all workstreams.
|
|
59
59
|
|
|
60
60
|
### complete
|
|
61
|
-
Run: `
|
|
61
|
+
Run: `pp_run query workstream.complete <name> --raw --cwd "$CWD"`
|
|
62
62
|
Archive the workstream to milestones/.
|
|
63
63
|
|
|
64
64
|
### resume
|
|
@@ -66,5 +66,5 @@ Set the workstream as active and suggest `/pp:resume-work --ws <name>`.
|
|
|
66
66
|
|
|
67
67
|
## Step 3: Display Results
|
|
68
68
|
|
|
69
|
-
Format the JSON output from
|
|
69
|
+
Format the JSON output from pp_run query into a human-readable display.
|
|
70
70
|
Include the `${GSD_WS}` flag in any routing suggestions.
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pp-core",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.4",
|
|
4
4
|
"description": "PP Core — a meta-prompting, context engineering, and spec-driven development system for AI coding agents. Loads pp-core's operating context into every Gemini CLI session.",
|
|
5
5
|
"contextFileName": "GEMINI.md"
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pareto4/pp-core",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.4",
|
|
4
4
|
"description": "Pareto pp-core — The Pareto Project's AI-assisted engineering framework: meta-prompting, context engineering, and spec-driven development for AI coding agents.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"pp-core": "bin/install.js",
|
|
@@ -200,14 +200,14 @@ function buildClaudeMdFallbacks(runtime) {
|
|
|
200
200
|
const SKILL_SEARCH_DIRS = ['.claude/skills', '.agents/skills', '.cursor/skills', '.github/skills', '.codex/skills'];
|
|
201
201
|
function buildClaudeMdWorkflowEnforcement(runtime) {
|
|
202
202
|
return [
|
|
203
|
-
'Before using Edit, Write, or other file-changing tools, start work through a
|
|
203
|
+
'Before using Edit, Write, or other file-changing tools, start work through a pp-core command so planning artifacts and execution context stay in sync.',
|
|
204
204
|
'',
|
|
205
205
|
'Use these entry points:',
|
|
206
206
|
`- \`${String((0, runtime_slash_cjs_1.formatGsdSlash)('quick', runtime))}\` for small fixes, doc updates, and ad-hoc tasks`,
|
|
207
207
|
`- \`${String((0, runtime_slash_cjs_1.formatGsdSlash)('debug', runtime))}\` for investigation and bug fixing`,
|
|
208
208
|
`- \`${String((0, runtime_slash_cjs_1.formatGsdSlash)('execute-phase', runtime))}\` for planned phase work`,
|
|
209
209
|
'',
|
|
210
|
-
'Do not make direct repo edits outside a
|
|
210
|
+
'Do not make direct repo edits outside a pp-core workflow unless the user explicitly asks to bypass it.',
|
|
211
211
|
].join('\n');
|
|
212
212
|
}
|
|
213
213
|
function buildClaudeMdProfilePlaceholder(runtime) {
|
|
@@ -414,7 +414,7 @@ function generateArchitectureSection(cwd) {
|
|
|
414
414
|
function generateWorkflowSection(cwd) {
|
|
415
415
|
return {
|
|
416
416
|
content: buildClaudeMdWorkflowEnforcement((0, runtime_slash_cjs_1.resolveRuntime)(cwd)),
|
|
417
|
-
source: '
|
|
417
|
+
source: 'pp-core defaults',
|
|
418
418
|
linkPath: null,
|
|
419
419
|
hasFallback: false,
|
|
420
420
|
};
|
|
@@ -988,7 +988,7 @@ function cmdGenerateClaudeMd(cwd, options, raw) {
|
|
|
988
988
|
conventions: '## Conventions',
|
|
989
989
|
architecture: '## Architecture',
|
|
990
990
|
skills: '## Project Skills',
|
|
991
|
-
workflow: '##
|
|
991
|
+
workflow: '## pp-core Workflow Enforcement',
|
|
992
992
|
};
|
|
993
993
|
const generated = {};
|
|
994
994
|
const sectionsGenerated = [];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Agent Contracts
|
|
2
2
|
|
|
3
|
-
Completion markers and handoff schemas for all
|
|
3
|
+
Completion markers and handoff schemas for all pp-core agents. Workflows use these markers to detect agent completion and route accordingly.
|
|
4
4
|
|
|
5
5
|
This doc describes what IS, not what should be. Casing inconsistencies are documented as they appear in agent source files.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# pp-core Artifact Types
|
|
2
2
|
|
|
3
|
-
This reference documents all artifact types in the
|
|
3
|
+
This reference documents all artifact types in the pp-core planning taxonomy. Each type has a defined
|
|
4
4
|
shape, lifecycle, location, and consumption mechanism. A well-formatted artifact that no workflow
|
|
5
5
|
reads is inert — the consumption mechanism is what gives an artifact meaning.
|
|
6
6
|
|
|
@@ -50,7 +50,7 @@ When delegating to agents, the orchestrator cannot verify semantic correctness o
|
|
|
50
50
|
|
|
51
51
|
## MCP Tool Schema Cost (Harness Concern)
|
|
52
52
|
|
|
53
|
-
Every enabled MCP server injects its tool schema into **every turn**, regardless of whether you call any of its tools. Heavyweight servers can cost 20k+ tokens per turn each — often dwarfing whatever
|
|
53
|
+
Every enabled MCP server injects its tool schema into **every turn**, regardless of whether you call any of its tools. Heavyweight servers can cost 20k+ tokens per turn each — often dwarfing whatever pp-core itself can save through `model_profile` tuning. This is a Claude Code harness concern, not a pp-core concern: pp-core does **not** manage MCP enablement. The toggle lives in `.claude/settings.json` under `enabledMcpjsonServers` and `disabledMcpjsonServers`.
|
|
54
54
|
|
|
55
55
|
### Why this is the biggest cost lever you don't own
|
|
56
56
|
|
|
@@ -78,7 +78,7 @@ The keys live in `.claude/settings.json` (project) or `~/.claude/settings.json`
|
|
|
78
78
|
}
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Either list works — `enabledMcpjsonServers` is an explicit allow-list, `disabledMcpjsonServers` is a block-list against the default. See the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for the canonical reference; this section just flags it as a context-budget lever
|
|
81
|
+
Either list works — `enabledMcpjsonServers` is an explicit allow-list, `disabledMcpjsonServers` is a block-list against the default. See the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for the canonical reference; this section just flags it as a context-budget lever pp-core users routinely overlook.
|
|
82
82
|
|
|
83
83
|
### Composition with model_profile
|
|
84
84
|
|
|
@@ -49,7 +49,7 @@ Every entry requires `Found:` plus one of `Expected:`/`Impact:`/`Note:` plus (fo
|
|
|
49
49
|
|
|
50
50
|
Display:
|
|
51
51
|
```
|
|
52
|
-
|
|
52
|
+
pp-core > BLOCKED: {N} blockers must be resolved before {operation} can proceed.
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
Exit WITHOUT writing any destination files. The gate must hold regardless of WARNING/INFO counts.
|
|
@@ -60,7 +60,7 @@ Render the full report, then prompt for approval via the `approve-revise-abort`
|
|
|
60
60
|
|
|
61
61
|
**If the report is empty (no entries in any bucket):**
|
|
62
62
|
|
|
63
|
-
Proceed silently or display `
|
|
63
|
+
Proceed silently or display `pp-core > No conflicts detected.` Either is acceptable; workflows choose based on verbosity context.
|
|
64
64
|
|
|
65
65
|
---
|
|
66
66
|
|
|
@@ -132,13 +132,13 @@ implementation and any third-party port emit.
|
|
|
132
132
|
|
|
133
133
|
| Host structure | "requirement" | a `resolved`/`explicit` edge becomes | a `resolved`/`backstop` edge becomes |
|
|
134
134
|
|----------------|---------------|--------------------------|---------------------------|
|
|
135
|
-
|
|
|
135
|
+
| pp-core SPEC | a SPEC Requirement | an Acceptance Criterion that `plan-phase` lifts into `must_haves.truths` | a non-inferable check in `must_haves.truths` (needs a held-out/PBT test) |
|
|
136
136
|
| Gherkin feature | a Scenario | an additional `Then` assertion / Scenario Outline row | a tagged scenario routed to a property test |
|
|
137
137
|
| OpenAPI operation | an operation | a response/constraint example + schema rule | a contract/property test on the operation |
|
|
138
138
|
| Docstring contract | a documented behavior | an assertion in the contract test | a property-based test for the function |
|
|
139
139
|
|
|
140
140
|
The portable invariant: a `resolved`/`explicit` edge produces **the unit your verifier
|
|
141
|
-
iterates over** (
|
|
141
|
+
iterates over** (pp-core: a `must_haves.truth`); a `resolved`/`backstop` edge produces a test
|
|
142
142
|
added to that same set as a non-inferable check. An `unresolved` edge is an explicit
|
|
143
143
|
assumption the downstream planner must surface, not silently drop.
|
|
144
144
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<overview>
|
|
2
|
-
Git integration for
|
|
2
|
+
Git integration for the pp-core framework.
|
|
3
3
|
</overview>
|
|
4
4
|
|
|
5
5
|
<core_principle>
|
|
@@ -29,7 +29,7 @@ The git log should read like a changelog of what shipped, not a diary of plannin
|
|
|
29
29
|
[ -d .git ] && echo "GIT_EXISTS" || echo "NO_GIT"
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
If NO_GIT: Run `git init` silently.
|
|
32
|
+
If NO_GIT: Run `git init` silently. pp-core projects always get their own repo.
|
|
33
33
|
</git_check>
|
|
34
34
|
|
|
35
35
|
<commit_formats>
|
|
@@ -258,7 +258,7 @@ Each plan produces 2-4 commits (tasks + metadata). Clear, granular, bisectable.
|
|
|
258
258
|
|
|
259
259
|
## Multi-Repo Workspace Support (sub_repos)
|
|
260
260
|
|
|
261
|
-
For workspaces with separate git repos (e.g., `backend/`, `frontend/`, `shared/`),
|
|
261
|
+
For workspaces with separate git repos (e.g., `backend/`, `frontend/`, `shared/`), pp-core routes commits to each repo independently.
|
|
262
262
|
|
|
263
263
|
### Configuration
|
|
264
264
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Model Profiles
|
|
2
2
|
|
|
3
|
-
Model profiles control which Claude model each
|
|
3
|
+
Model profiles control which Claude model each pp-core agent uses. This allows balancing quality vs token spend, or inheriting the currently selected session model.
|
|
4
4
|
|
|
5
5
|
## Profile Definitions
|
|
6
6
|
|
|
@@ -93,12 +93,12 @@ The three layers compose: `models` defaults a phase, `model_overrides` carves an
|
|
|
93
93
|
**inherit** - Follow the current session model
|
|
94
94
|
- All agents resolve to `inherit`
|
|
95
95
|
- Best when you switch models interactively (for example OpenCode or Kilo `/model`)
|
|
96
|
-
- **Required when using non-Anthropic providers** (OpenRouter, local models, etc.) — otherwise
|
|
97
|
-
- Use when: you want
|
|
96
|
+
- **Required when using non-Anthropic providers** (OpenRouter, local models, etc.) — otherwise pp-core may call Anthropic models directly, incurring unexpected costs
|
|
97
|
+
- Use when: you want pp-core to follow your currently selected runtime model
|
|
98
98
|
|
|
99
99
|
## Using Non-Claude Runtimes (Codex, OpenCode, Gemini CLI, Kilo)
|
|
100
100
|
|
|
101
|
-
When installed for a non-Claude runtime, the
|
|
101
|
+
When installed for a non-Claude runtime, the pp-core installer sets `resolve_model_ids: "omit"` in `~/.gsd/defaults.json`. This returns an empty model parameter for all agents, so each agent uses the runtime's default model. No manual setup is needed.
|
|
102
102
|
|
|
103
103
|
To assign different models to different agents, add `model_overrides` with model IDs your runtime recognizes:
|
|
104
104
|
|
|
@@ -118,7 +118,7 @@ The same tiering logic applies: stronger models for planning and debugging, chea
|
|
|
118
118
|
|
|
119
119
|
## Using Claude Code with Non-Anthropic Providers (OpenRouter, Local)
|
|
120
120
|
|
|
121
|
-
If you're using Claude Code with OpenRouter, a local model, or any non-Anthropic provider, set the `inherit` profile to prevent
|
|
121
|
+
If you're using Claude Code with OpenRouter, a local model, or any non-Anthropic provider, set the `inherit` profile to prevent pp-core from calling Anthropic models for subagents:
|
|
122
122
|
|
|
123
123
|
```bash
|
|
124
124
|
# Via settings command
|
|
@@ -131,7 +131,7 @@ If you're using Claude Code with OpenRouter, a local model, or any non-Anthropic
|
|
|
131
131
|
}
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
Without `inherit`,
|
|
134
|
+
Without `inherit`, pp-core's default `balanced` profile spawns specific Anthropic models (`opus`, `sonnet`, `haiku`) for each agent type, which can result in additional API costs through your non-Anthropic provider.
|
|
135
135
|
|
|
136
136
|
## Dynamic Routing with Failure-Tier Escalation (#3024)
|
|
137
137
|
|
|
@@ -239,7 +239,7 @@ Verification requires goal-backward reasoning - checking if code *delivers* what
|
|
|
239
239
|
Read-only exploration and pattern extraction. No reasoning required, just structured output from file contents.
|
|
240
240
|
|
|
241
241
|
**Why `inherit` instead of passing `opus` directly?**
|
|
242
|
-
Claude Code's `"opus"` alias maps to a specific model version. Organizations may block older opus versions while allowing newer ones.
|
|
242
|
+
Claude Code's `"opus"` alias maps to a specific model version. Organizations may block older opus versions while allowing newer ones. pp-core returns `"inherit"` for opus-tier agents, causing them to use whatever opus version the user has configured in their session. This avoids version conflicts and silent fallbacks to Sonnet.
|
|
243
243
|
|
|
244
244
|
**Why `inherit` profile?**
|
|
245
|
-
Some runtimes (including OpenCode) let users switch models at runtime (`/model`). The `inherit` profile keeps all
|
|
245
|
+
Some runtimes (including OpenCode) let users switch models at runtime (`/model`). The `inherit` profile keeps all pp-core subagents aligned to that live selection.
|
|
@@ -31,7 +31,7 @@ The verifier (Step 8) harvests every `<verify><human-check>` block at end-of-pha
|
|
|
31
31
|
|
|
32
32
|
### `mid-flight` (opt-back-in — pre-#3309 behavior)
|
|
33
33
|
|
|
34
|
-
Set `
|
|
34
|
+
Set `pp config-set workflow.human_verify_mode mid-flight` to restore the canonical mid-flight pattern: emit `<task type="checkpoint:human-verify">` tasks at the points where human confirmation is required, and the executor halts at each one to ask the user.
|
|
35
35
|
|
|
36
36
|
```xml
|
|
37
37
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
@@ -34,9 +34,9 @@ Configuration options for `.planning/` directory behavior.
|
|
|
34
34
|
| `git.phase_branch_template` | `"gsd/phase-{phase}-{slug}"` | Branch template for phase strategy |
|
|
35
35
|
| `git.milestone_branch_template` | `"gsd/{milestone}-{slug}"` | Branch template for milestone strategy |
|
|
36
36
|
| `git.quick_branch_template` | `null` | Optional branch template for quick-task runs |
|
|
37
|
-
| `workflow.use_worktrees` | `true` | Whether executor agents run in isolated git worktrees. Set to `false` to disable worktrees — agents execute sequentially on the main working tree instead. Recommended for solo developers or when worktree merges cause issues. Note: if your branch is ahead of `origin/HEAD` (a diverged milestone or feature branch),
|
|
37
|
+
| `workflow.use_worktrees` | `true` | Whether executor agents run in isolated git worktrees. Set to `false` to disable worktrees — agents execute sequentially on the main working tree instead. Recommended for solo developers or when worktree merges cause issues. Note: if your branch is ahead of `origin/HEAD` (a diverged milestone or feature branch), pp-core auto-degrades to sequential and prints a warning; set `worktree.baseRef:"head"` in `.claude/settings.local.json` to restore parallel execution. See the branch-divergence note below. |
|
|
38
38
|
| `workflow.subagent_timeout` | `300000` | Timeout in milliseconds for parallel subagent tasks (e.g. codebase mapping). Increase for large codebases or slower models. Default: 300000 (5 minutes). |
|
|
39
|
-
| `workflow.test_command` | `null` | Custom shell command run as the regression/test gate by verify-phase, execute-phase, audit-fix, and post-merge-gate. When unset,
|
|
39
|
+
| `workflow.test_command` | `null` | Custom shell command run as the regression/test gate by verify-phase, execute-phase, audit-fix, and post-merge-gate. When unset, pp-core auto-detects (Makefile / package.json / Cargo.toml / go.mod / pyproject.toml). Example: `npm test`. |
|
|
40
40
|
| `workflow.build_command` | `null` | Custom shell command run as the build gate by the post-merge gate. When unset, the build step is skipped/auto-detected. Example: `npm run build`. |
|
|
41
41
|
| `workflow.inline_plan_threshold` | `2` | Plans with this many tasks or fewer execute inline (Pattern C) instead of spawning a subagent. Avoids ~14K token spawn overhead for small plans. Set to `0` to always spawn subagents. |
|
|
42
42
|
| `manager.flags.discuss` | `""` | Flags passed to `/pp:discuss-phase` when dispatched from manager (e.g. `"--auto --analyze"`) |
|
|
@@ -97,7 +97,7 @@ The CLI checks `commit_docs` config and gitignore status internally — no manua
|
|
|
97
97
|
- Add `--no-ignore` to broad rg searches that should include `.planning/`
|
|
98
98
|
- Only needed when searching entire repo and expecting `.planning/` matches
|
|
99
99
|
|
|
100
|
-
**Note:** Most
|
|
100
|
+
**Note:** Most pp-core operations use direct file reads or explicit paths, which work regardless of gitignore status.
|
|
101
101
|
|
|
102
102
|
</search_behavior>
|
|
103
103
|
|
|
@@ -140,7 +140,7 @@ To use uncommitted mode:
|
|
|
140
140
|
|
|
141
141
|
**When `git.branching_strategy: "none"` (default):**
|
|
142
142
|
- All work commits to current branch
|
|
143
|
-
- Standard
|
|
143
|
+
- Standard pp-core behavior
|
|
144
144
|
|
|
145
145
|
**When `git.branching_strategy: "phase"`:**
|
|
146
146
|
- `execute-phase` creates/switches to a branch before execution
|
|
@@ -264,7 +264,7 @@ Set via `workflow.*` namespace in config.json (e.g., `"workflow": { "research":
|
|
|
264
264
|
| `workflow.skip_discuss` | boolean | `false` | `true`, `false` | Skip discuss phase entirely |
|
|
265
265
|
| `workflow.use_worktrees` | boolean | `true` | `true`, `false` | Run executor agents in isolated git worktrees |
|
|
266
266
|
| `workflow.subagent_timeout` | number | `300000` | Any positive integer (ms) | Timeout for parallel subagent tasks (default: 5 minutes) |
|
|
267
|
-
| `workflow.test_command` | string\|null | `null` | Any shell command | Regression/test gate command run by verify-phase, execute-phase, audit-fix, and post-merge-gate. Unset →
|
|
267
|
+
| `workflow.test_command` | string\|null | `null` | Any shell command | Regression/test gate command run by verify-phase, execute-phase, audit-fix, and post-merge-gate. Unset → pp-core auto-detects (Makefile / package.json / Cargo.toml / go.mod / pyproject.toml). |
|
|
268
268
|
| `workflow.build_command` | string\|null | `null` | Any shell command | Build gate command run by the post-merge gate. Unset → build step auto-detected/skipped. |
|
|
269
269
|
| `workflow.inline_plan_threshold` | number | `2` | `0`–`10` | Plans with ≤N tasks execute inline instead of spawning a subagent |
|
|
270
270
|
| `workflow.code_review` | boolean | `true` | `true`, `false` | Enable built-in code review step in the ship workflow |
|
|
@@ -387,9 +387,9 @@ Several config fields affect each other or trigger special behavior:
|
|
|
387
387
|
|
|
388
388
|
7. **`depth` to `granularity` migration** -- The deprecated `depth` key (`quick`/`standard`/`comprehensive`) is automatically migrated to `granularity` (`coarse`/`standard`/`fine`) on config load and persisted back to disk.
|
|
389
389
|
|
|
390
|
-
8. **`sub_repos` auto-sync** -- On every config load,
|
|
390
|
+
8. **`sub_repos` auto-sync** -- On every config load, pp-core scans for child directories with `.git` and updates the `sub_repos` array if the filesystem has changed. Legacy `multiRepo: true` is automatically migrated to a detected `sub_repos` array.
|
|
391
391
|
|
|
392
|
-
9. **`workflow.use_worktrees` and branch divergence** -- When `use_worktrees` is `true` (default), executor worktrees are forked from `origin/HEAD` by the Claude Code harness. If your current branch has commits that `origin/HEAD` does not (for example an unmerged milestone or feature branch),
|
|
392
|
+
9. **`workflow.use_worktrees` and branch divergence** -- When `use_worktrees` is `true` (default), executor worktrees are forked from `origin/HEAD` by the Claude Code harness. If your current branch has commits that `origin/HEAD` does not (for example an unmerged milestone or feature branch), pp-core automatically degrades to sequential execution for that run and prints a one-line `⚠ Worktree base mismatch` warning. To restore parallel execution permanently, set `worktree.baseRef:"head"` in `.claude/settings.local.json` (run `node pp-tools.cjs worktree set-baseref`). This makes the harness fork worktrees from the live HEAD instead of `origin/HEAD`. Both fresh installs and upgrades of pp-core set this automatically (no-clobber) when `use_worktrees` is enabled; you can also run the command manually at any time. Setting `workflow.use_worktrees: false` is the alternative if worktrees are not needed at all.
|
|
393
393
|
|
|
394
394
|
---
|
|
395
395
|
|
|
@@ -216,13 +216,13 @@ both the reference implementation and any third-party port emit.
|
|
|
216
216
|
|
|
217
217
|
| Host structure | "requirement" | a `resolved`/`test` prohibition becomes | a `resolved`/`judgment` prohibition becomes |
|
|
218
218
|
|----------------|---------------|------------------------------------------|----------------------------------------------|
|
|
219
|
-
|
|
|
219
|
+
| pp-core SPEC | a SPEC Requirement | a SPEC acceptance criterion (marked prohibition) that `plan-phase` lifts into `must_haves.prohibitions` | a `must_haves.prohibitions` item routed to judgment review |
|
|
220
220
|
| Gherkin feature | a Scenario | a negative `Then` assertion / tagged negative scenario | a tagged scenario routed to manual review |
|
|
221
221
|
| OpenAPI operation | an operation | a contract test asserting the forbidden behavior never occurs | a documented constraint flagged for review |
|
|
222
222
|
| Docstring contract | a documented behavior | a negative assertion in the contract test | a documented must-NOT for reviewers |
|
|
223
223
|
|
|
224
224
|
The portable invariant: a `resolved`/`test` prohibition produces **a checkable negative the
|
|
225
|
-
verifier iterates over** (
|
|
225
|
+
verifier iterates over** (pp-core: a `must_haves.prohibitions` item with a test); a
|
|
226
226
|
`resolved`/`judgment` prohibition produces a recorded intent routed to judgment review. An
|
|
227
227
|
`unresolved` prohibition is an explicit assumption the downstream planner must surface, not
|
|
228
228
|
silently drop.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Before execution, check for project-defined skills and apply their rules.
|
|
4
4
|
|
|
5
|
-
**Discovery steps (shared across all
|
|
5
|
+
**Discovery steps (shared across all pp-core agents):**
|
|
6
6
|
1. Check `.claude/skills/` or `.agents/skills/` directory — if neither exists, skip.
|
|
7
7
|
2. List available skills (subdirectories).
|
|
8
8
|
3. Read `SKILL.md` for each skill (lightweight index, typically ~130 lines).
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Structured reasoning models for the **debugger** agent. Apply these at decision points during investigation, not continuously. Each model counters a specific documented failure mode.
|
|
4
4
|
|
|
5
|
-
Source: Curated from [thinking-partner](https://github.com/mattnowdev/thinking-partner) model catalog (150+ models). Selected for direct applicability to
|
|
5
|
+
Source: Curated from [thinking-partner](https://github.com/mattnowdev/thinking-partner) model catalog (150+ models). Selected for direct applicability to pp-core debugging workflow.
|
|
6
6
|
|
|
7
7
|
## Conflict Resolution
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Structured reasoning models for the **executor** agent. Apply these at decision points during task execution, not continuously. Each model counters a specific documented failure mode.
|
|
4
4
|
|
|
5
|
-
Source: Curated from [thinking-partner](https://github.com/mattnowdev/thinking-partner) model catalog (150+ models). Selected for direct applicability to
|
|
5
|
+
Source: Curated from [thinking-partner](https://github.com/mattnowdev/thinking-partner) model catalog (150+ models). Selected for direct applicability to pp-core execution workflow.
|
|
6
6
|
|
|
7
7
|
## Conflict Resolution
|
|
8
8
|
|