peaks-loop 3.0.0 → 3.0.1
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/marketplace.json +3 -3
- package/CHANGELOG.md +57 -57
- package/README-en.md +2 -2
- package/README.md +2 -2
- package/agents/karpathy-reviewer.md +2 -2
- package/dist/src/cli/commands/agent-commands.js +3 -3
- package/dist/src/cli/commands/audit-commands.d.ts +1 -1
- package/dist/src/cli/commands/audit-commands.js +6 -6
- package/dist/src/cli/commands/classify-classify-commands.js +1 -1
- package/dist/src/cli/commands/code-review-commands.d.ts +3 -3
- package/dist/src/cli/commands/code-review-commands.js +5 -5
- package/dist/src/cli/commands/compact-command.d.ts +21 -0
- package/dist/src/cli/commands/compact-command.js +252 -0
- package/dist/src/cli/commands/context-commands.d.ts +1 -1
- package/dist/src/cli/commands/context-commands.js +1 -1
- package/dist/src/cli/commands/contract-commands.d.ts +1 -1
- package/dist/src/cli/commands/core/session-command.js +17 -7
- package/dist/src/cli/commands/core/skill-command.js +1 -1
- package/dist/src/cli/commands/feedback-commands.js +1 -1
- package/dist/src/cli/commands/hook-handle.d.ts +1 -1
- package/dist/src/cli/commands/hook-handle.js +1 -1
- package/dist/src/cli/commands/legacy-commands.d.ts +1 -1
- package/dist/src/cli/commands/legacy-commands.js +2 -2
- package/dist/src/cli/commands/log-commands.js +2 -2
- package/dist/src/cli/commands/loop-commands.d.ts +1 -1
- package/dist/src/cli/commands/loop-commands.js +1 -1
- package/dist/src/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/src/cli/commands/loop-eval-commands.js +1 -1
- package/dist/src/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/src/cli/commands/playwright-commands.js +2 -2
- package/dist/src/cli/commands/request-commands.js +40 -1
- package/dist/src/cli/commands/role-commands.js +1 -1
- package/dist/src/cli/commands/slice-commands.js +5 -5
- package/dist/src/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/src/cli/commands/upgrade-commands.js +6 -6
- package/dist/src/cli/commands/workspace/init-command.js +2 -2
- package/dist/src/cli/program.js +10 -1
- package/dist/src/services/agent/ecc-agent-service.js +5 -5
- package/dist/src/services/audit/artifact-writer.d.ts +1 -1
- package/dist/src/services/audit/artifact-writer.js +1 -1
- package/dist/src/services/audit/decision-writer.d.ts +1 -1
- package/dist/src/services/audit/decision-writer.js +1 -1
- package/dist/src/services/audit/enforcers/lint-output-style.js +5 -5
- package/dist/src/services/audit/enforcers/mock-placement.d.ts +1 -1
- package/dist/src/services/audit/enforcers/mock-placement.js +1 -1
- package/dist/src/services/audit/enforcers/no-root-pollution.js +1 -1
- package/dist/src/services/audit/red-line-catalog-p2-a.js +2 -2
- package/dist/src/services/audit/red-line-catalog-p2-b.js +2 -2
- package/dist/src/services/audit/static-service.d.ts +1 -1
- package/dist/src/services/audit/static-service.js +5 -5
- package/dist/src/services/audit/types.d.ts +1 -1
- package/dist/src/services/audit/types.js +1 -1
- package/dist/src/services/audit-independent/perf-audit-service.js +1 -1
- package/dist/src/services/audit-independent/security-audit-service.js +1 -1
- package/dist/src/services/classify/classify-service.d.ts +1 -1
- package/dist/src/services/classify/classify-service.js +1 -1
- package/dist/src/services/classify/classify-types.d.ts +1 -1
- package/dist/src/services/classify/classify-types.js +1 -1
- package/dist/src/services/code-review/ecc-bridge.d.ts +2 -2
- package/dist/src/services/code-review/ecc-bridge.js +2 -2
- package/dist/src/services/code-review/ocr-service.d.ts +9 -9
- package/dist/src/services/code-review/ocr-service.js +16 -16
- package/dist/src/services/compact/decision-tables.d.ts +66 -0
- package/dist/src/services/compact/decision-tables.js +127 -0
- package/dist/src/services/compact/request-transition-hook.d.ts +20 -0
- package/dist/src/services/compact/request-transition-hook.js +110 -0
- package/dist/src/services/compact/suggest-service.d.ts +74 -0
- package/dist/src/services/compact/suggest-service.js +203 -0
- package/dist/src/services/config/config-migration.js +1 -1
- package/dist/src/services/config/config-safety.d.ts +1 -1
- package/dist/src/services/config/config-safety.js +1 -1
- package/dist/src/services/config/config-service.d.ts +1 -1
- package/dist/src/services/config/config-service.js +1 -1
- package/dist/src/services/context/auto-compact-dispatcher.js +4 -4
- package/dist/src/services/context/auto-compact-types.d.ts +6 -6
- package/dist/src/services/context/auto-compact-types.js +5 -5
- package/dist/src/services/dispatch/sub-agent-dispatcher.js +1 -1
- package/dist/src/services/dispatch/test-tool-detection.d.ts +1 -1
- package/dist/src/services/dispatch/test-tool-detection.js +1 -1
- package/dist/src/services/doctor/doctor-service.d.ts +1 -1
- package/dist/src/services/doctor/doctor-service.js +5 -5
- package/dist/src/services/hooks/presence-marker-detector.js +5 -5
- package/dist/src/services/ide/adapters/claude-code-adapter.d.ts +1 -1
- package/dist/src/services/ide/adapters/claude-code-adapter.js +2 -2
- package/dist/src/services/ide/adapters/codex-adapter.d.ts +2 -2
- package/dist/src/services/ide/adapters/codex-adapter.js +2 -2
- package/dist/src/services/ide/adapters/cursor-adapter.d.ts +2 -2
- package/dist/src/services/ide/adapters/cursor-adapter.js +2 -2
- package/dist/src/services/ide/adapters/hermes-adapter.d.ts +1 -1
- package/dist/src/services/ide/adapters/hermes-adapter.js +1 -1
- package/dist/src/services/ide/adapters/openclaw-adapter.d.ts +1 -1
- package/dist/src/services/ide/adapters/openclaw-adapter.js +1 -1
- package/dist/src/services/ide/adapters/trae-adapter.d.ts +1 -1
- package/dist/src/services/ide/adapters/trae-adapter.js +1 -1
- package/dist/src/services/ide/ide-types.d.ts +9 -9
- package/dist/src/services/legacy/legacy-detector.d.ts +1 -1
- package/dist/src/services/legacy/legacy-detector.js +1 -1
- package/dist/src/services/log/log-commands-service.d.ts +1 -1
- package/dist/src/services/log/log-commands-service.js +1 -1
- package/dist/src/services/log/logger.d.ts +3 -3
- package/dist/src/services/log/logger.js +3 -3
- package/dist/src/services/log/redact.d.ts +1 -1
- package/dist/src/services/log/redact.js +1 -1
- package/dist/src/services/loop/evaluator-dispatcher.d.ts +1 -1
- package/dist/src/services/loop/evaluator-dispatcher.js +16 -15
- package/dist/src/services/loop/monotonic-guard.js +35 -18
- package/dist/src/services/loop/monotonic-runner.d.ts +3 -0
- package/dist/src/services/loop/monotonic-runner.js +62 -28
- package/dist/src/services/loop/run-driver.js +45 -24
- package/dist/src/services/memory/llm-reranker.d.ts +1 -1
- package/dist/src/services/memory/llm-reranker.js +1 -1
- package/dist/src/services/mut/production-stryker.d.ts +0 -5
- package/dist/src/services/mut/production-stryker.js +19 -10
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.d.ts +1 -1
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/src/services/perf/perf-baseline-service.d.ts +2 -2
- package/dist/src/services/perf/perf-baseline-service.js +2 -2
- package/dist/src/services/prd/handoff-auto-regen.js +1 -1
- package/dist/src/services/prd/project-scan-sediment.js +3 -3
- package/dist/src/services/prd/project-scan-types.d.ts +1 -1
- package/dist/src/services/preferences/preferences-types.d.ts +3 -3
- package/dist/src/services/preferences/preferences-types.js +2 -2
- package/dist/src/services/role/role-registry.d.ts +1 -1
- package/dist/src/services/role/role-registry.js +1 -1
- package/dist/src/services/sc/sc-service.js +3 -3
- package/dist/src/services/skill/resume-detector.js +2 -2
- package/dist/src/services/skills/sync-service.d.ts +3 -3
- package/dist/src/services/skills/sync-service.js +9 -9
- package/dist/src/services/slice/calibration-store.d.ts +1 -1
- package/dist/src/services/slice/calibration-store.js +1 -1
- package/dist/src/services/solo/auto-compact-orchestrator.d.ts +1 -1
- package/dist/src/services/solo/auto-compact-orchestrator.js +7 -7
- package/dist/src/services/solo/dag-orchestrator.js +1 -1
- package/dist/src/services/solo/mode-gate.d.ts +1 -1
- package/dist/src/services/solo/mode-gate.js +4 -4
- package/dist/src/services/solo/user-touchpoint-classifier.js +1 -1
- package/dist/src/services/standards/migrate-claude-rules-service.js +5 -5
- package/dist/src/services/standards/migrate-service.d.ts +3 -3
- package/dist/src/services/standards/migrate-service.js +5 -5
- package/dist/src/services/standards/project-standards-service.js +1 -1
- package/dist/src/services/upgrade/gitignore-migrate-service.d.ts +3 -3
- package/dist/src/services/upgrade/gitignore-migrate-service.js +4 -4
- package/dist/src/services/upgrade/upgrade-service.d.ts +1 -1
- package/dist/src/services/upgrade/upgrade-service.js +5 -5
- package/dist/src/services/verdict/envelopes.d.ts +1 -1
- package/dist/src/services/verdict/envelopes.js +1 -1
- package/dist/src/services/workflow/workflow-loader.js +1 -1
- package/dist/src/services/workspace/migrate-1-4-1-service.d.ts +1 -1
- package/dist/src/services/workspace/migrate-1-4-1-service.js +1 -1
- package/dist/src/services/workspace/migrate-types.d.ts +1 -1
- package/dist/src/services/workspace/migrate-types.js +1 -1
- package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +2 -2
- package/dist/src/services/workspace/workspace-claude-settings-materializer.js +9 -9
- package/dist/src/services/workspace/workspace-service.d.ts +1 -1
- package/dist/src/services/workspace/workspace-service.js +1 -1
- package/dist/src/shared/path-safety.d.ts +1 -1
- package/dist/src/shared/path-safety.js +1 -1
- package/dist/src/shared/version.d.ts +1 -1
- package/dist/src/shared/version.js +1 -1
- package/output-styles/peaks-skill-swarm.md +33 -33
- package/package.json +5 -4
- package/schemas/decomposition-v1.json +1 -1
- package/schemas/decomposition-v2.json +1 -1
- package/schemas/replay-fixture.schema.json +1 -1
- package/schemas/reviewer-envelope.schema.json +1 -1
- package/scripts/install-skills.mjs +11 -11
- package/skills/peaks-audit/SKILL.md +2 -2
- package/skills/peaks-doctor/SKILL.md +4 -4
- package/skills/peaks-final-review/SKILL.md +2 -2
- package/skills/peaks-ide/SKILL.md +3 -3
- package/skills/peaks-perf-audit/SKILL.md +1 -1
- package/skills/peaks-prd/SKILL.md +14 -14
- package/skills/peaks-prd/references/workflow.md +1 -1
- package/skills/peaks-qa/SKILL.md +17 -17
- package/skills/peaks-qa/references/artifact-per-request.md +1 -1
- package/skills/peaks-qa/references/browser-validation-contracts.md +2 -2
- package/skills/peaks-qa/references/codegraph-regression-focus.md +1 -1
- package/skills/peaks-qa/references/external-capability-guidance.md +2 -2
- package/skills/peaks-qa/references/qa-fanout-contract.md +1 -1
- package/skills/peaks-qa/references/qa-gstack-integration.md +3 -3
- package/skills/peaks-qa/references/qa-local-artifacts.md +1 -1
- package/skills/peaks-qa/references/qa-matt-pocock-integration.md +1 -1
- package/skills/peaks-qa/references/qa-runbook.md +3 -3
- package/skills/peaks-qa/references/qa-skill-presence.md +1 -1
- package/skills/peaks-qa/references/qa-standards-preflight.md +2 -2
- package/skills/peaks-qa/references/qa-transition-gates.md +9 -9
- package/skills/peaks-qa/references/regression-gates.md +1 -1
- package/skills/peaks-rd/SKILL.md +13 -13
- package/skills/peaks-rd/references/artifact-and-standards-output.md +1 -1
- package/skills/peaks-rd/references/codegraph-project-analysis.md +1 -1
- package/skills/peaks-rd/references/external-references.md +3 -3
- package/skills/peaks-rd/references/karpathy-reviewer-prompt.md +1 -1
- package/skills/peaks-rd/references/mandatory-perf-baseline.md +1 -1
- package/skills/peaks-rd/references/matt-pocock-integration.md +2 -2
- package/skills/peaks-rd/references/ocr-integration.md +19 -19
- package/skills/peaks-rd/references/openspec-cli.md +2 -2
- package/skills/peaks-rd/references/rd-gstack-integration.md +5 -5
- package/skills/peaks-rd/references/rd-runbook.md +9 -9
- package/skills/peaks-rd/references/rd-standards-preflight.md +1 -1
- package/skills/peaks-rd/references/rd-transition-gates.md +13 -13
- package/skills/peaks-rd/references/skill-presence-and-title.md +1 -1
- package/skills/peaks-reviewer/SKILL.md +2 -2
- package/skills/peaks-sc/SKILL.md +9 -9
- package/skills/peaks-security-audit/SKILL.md +1 -1
- package/skills/peaks-slice-decompose/SKILL.md +2 -2
- package/skills/peaks-solo/SKILL.md +49 -49
- package/skills/peaks-solo/references/a2a-artifact-mapping.md +8 -8
- package/skills/peaks-solo/references/anchoring-and-session-info.md +3 -3
- package/skills/peaks-solo/references/boundaries.md +4 -4
- package/skills/peaks-solo/references/browser-workflow.md +2 -2
- package/skills/peaks-solo/references/codegraph-orchestration.md +1 -1
- package/skills/peaks-solo/references/completion-handoff.md +2 -2
- package/skills/peaks-solo/references/external-references.md +3 -3
- package/skills/peaks-solo/references/external-skill-invocation.md +2 -2
- package/skills/peaks-solo/references/frontend-only-mode.md +1 -1
- package/skills/peaks-solo/references/gstack-integration.md +4 -4
- package/skills/peaks-solo/references/local-artifact-workspace.md +2 -2
- package/skills/peaks-solo/references/micro-cycle.md +4 -4
- package/skills/peaks-solo/references/mode-selection.md +5 -5
- package/skills/peaks-solo/references/openspec-workflow.md +2 -2
- package/skills/peaks-solo/references/playwright-mcp-multi-terminal.md +1 -1
- package/skills/peaks-solo/references/project-memory-loading.md +1 -1
- package/skills/peaks-solo/references/project-scan-checklist.md +1 -1
- package/skills/peaks-solo/references/quality-gate-cheatsheet.md +1 -1
- package/skills/peaks-solo/references/resume-detection.md +1 -1
- package/skills/peaks-solo/references/runbook.md +20 -20
- package/skills/peaks-solo/references/skill-presence-and-title.md +2 -2
- package/skills/peaks-solo/references/standards-preflight.md +2 -2
- package/skills/peaks-solo/references/step-0-55-1x-detection.md +3 -3
- package/skills/peaks-solo/references/sub-agent-dispatch.md +3 -3
- package/skills/peaks-solo/references/swarm-dispatch-contract.md +3 -3
- package/skills/peaks-solo/references/workflow-gates-and-types.md +34 -34
- package/skills/peaks-solo-resume/SKILL.md +2 -2
- package/skills/peaks-solo-status/SKILL.md +4 -4
- package/skills/peaks-solo-test/SKILL.md +4 -4
- package/skills/peaks-sop/SKILL.md +5 -5
- package/skills/peaks-txt/SKILL.md +17 -17
- package/skills/peaks-ui/SKILL.md +17 -17
- package/skills/peaks-ui/references/workflow.md +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Quality-gate commands (CLI cheat sheet)
|
|
2
2
|
|
|
3
|
-
> Body of `## Peaks-
|
|
3
|
+
> Body of `## Peaks-Loop Quality-gate commands`. These commands harden the workflow against silent skips. Use them in the runbook at the points indicated; they all support `--json` and `--session-id`.
|
|
4
4
|
|
|
5
5
|
| Command | Purpose | When to run | Non-zero exit when |
|
|
6
6
|
|---|---|---|---|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Step 0.7 — Detect unfinished work and offer resume
|
|
2
2
|
|
|
3
|
-
> Body of `### Peaks-
|
|
3
|
+
> Body of `### Peaks-Loop Step 0.7`. After Step 0 has anchored the workspace and presence, before Step 1 mode selection, run the resume-detection probe. If the current session has in-flight slice artifacts, the user is most likely "continuing" — surface resume options instead of starting a fresh PRD.
|
|
4
4
|
|
|
5
5
|
**Why this is a separate step** (per `feedback_peaks_solo_natural_language_primary` — a high-frequency request shape, see also the user's "继续完成刚才为完成的" pattern from session `2026-06-04-session-b60252`): the LLM was previously re-reading 3-5 artifact files to determine workflow state, wasting 3-5k tokens per resume request. This step replaces that work with a single deterministic read.
|
|
6
6
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Peaks-
|
|
1
|
+
# Peaks-Loop Default Runbook (orchestrator, full-auto profile)
|
|
2
2
|
|
|
3
3
|
> **Maintenance**: The numbered workflow list in `skills/peaks-solo/SKILL.md` (steps 0-11) is the canonical phase sequence. This runbook is the executable CLI transcription. When updating, keep both in lockstep — a change to one must be reflected in the other.
|
|
4
4
|
>
|
|
5
5
|
> **Why this is a reference, not inline**: the runbook is a stable, copy-pasteable shell (~150 lines of bash) that does not change between skill runs. Inlining it bloats the orchestrator skill body past the 800-line cap (per `common/coding-style.md`). Extracting it here keeps SKILL.md focused on flow / decisions / contracts, while the runbook stays as the canonical place for the CLI sequence.
|
|
6
6
|
>
|
|
7
|
-
> **How peaks-
|
|
7
|
+
> **How peaks-loop tooling reads this file**:
|
|
8
8
|
> - `peaks skill runbook peaks-solo` (CLI) reads the `## Default runbook` section in either SKILL.md or `references/runbook.md` (whichever has the bash code).
|
|
9
9
|
> - The test in `tests/unit/skill-default-runbook.test.ts` looks for `## Default runbook` in SKILL.md first, then falls back to `references/runbook.md` here.
|
|
10
10
|
|
|
@@ -19,21 +19,21 @@ peaks sub-agent dispatch <role> --prompt "<body>" --request-id <rid> --batch-id
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
# 0. Peaks-
|
|
22
|
+
# 0. Peaks-Loop Snapshot + 0.5 Peaks-Loop Workspace + 0.6 Peaks-Loop Project scan + 0.7 Peaks-Loop Existing-system extraction
|
|
23
23
|
peaks doctor --json
|
|
24
24
|
peaks project dashboard --project <repo> --json
|
|
25
25
|
peaks skill runbook peaks-solo --json
|
|
26
26
|
peaks workspace init --project <repo> --json
|
|
27
27
|
peaks workspace reconcile --project <repo> --json
|
|
28
28
|
peaks scan archetype --project <repo> --json
|
|
29
|
-
# → copy archetype, frontendOnly, signals into .peaks/_runtime/<session-id>/rd/project-scan.md (Peaks-
|
|
29
|
+
# → copy archetype, frontendOnly, signals into .peaks/_runtime/<session-id>/rd/project-scan.md (Peaks-Loop Gate A)
|
|
30
30
|
# → copy libraries[] into .peaks/_runtime/<session-id>/rd/project-scan.md under `## Library versions`
|
|
31
31
|
peaks scan libraries --project <repo> --json
|
|
32
32
|
# → if archetype != greenfield AND archetype != unknown:
|
|
33
33
|
peaks scan existing-system --project <repo> --json
|
|
34
|
-
# → copy tokens, sources, conventions, inconsistencies into .peaks/_runtime/<session-id>/system/existing-system.md (Peaks-
|
|
34
|
+
# → copy tokens, sources, conventions, inconsistencies into .peaks/_runtime/<session-id>/system/existing-system.md (Peaks-Loop Gate A.5)
|
|
35
35
|
|
|
36
|
-
# 1. Peaks-
|
|
36
|
+
# 1. Peaks-Loop Standards preflight + apply
|
|
37
37
|
# Run dry-run first to inspect deltas, then APPLY. In full-auto and swarm modes,
|
|
38
38
|
# --apply is the default — Standards files (CLAUDE.md, .claude/rules/**) live INSIDE
|
|
39
39
|
# the target project and are required for downstream skill preflight, so producing
|
|
@@ -43,9 +43,9 @@ peaks standards init --project <repo> --dry-run --json
|
|
|
43
43
|
# or: peaks standards update --project <repo> --dry-run --json
|
|
44
44
|
peaks standards init --project <repo> --apply --json
|
|
45
45
|
# or: peaks standards update --project <repo> --apply --json
|
|
46
|
-
# After apply, verify the files actually exist on disk (see Peaks-
|
|
46
|
+
# After apply, verify the files actually exist on disk (see Peaks-Loop Gate G).
|
|
47
47
|
|
|
48
|
-
# 2. Peaks-
|
|
48
|
+
# 2. Peaks-Loop PRD (Assisted/Strict: [CONFIRM] before confirmed-by-user)
|
|
49
49
|
# Classify the request type from the PRD: feature | bugfix | refactor | docs | config | chore
|
|
50
50
|
# This drives RD/QA gate strictness — see "Mandatory RD QA repair loop" for the matrix.
|
|
51
51
|
peaks request init --role prd --id <rid> --project <repo> --apply --type <type> --json
|
|
@@ -59,7 +59,7 @@ peaks request lint <rid> --role prd --project <repo> --json
|
|
|
59
59
|
peaks request transition <rid> --role prd --state confirmed-by-user --project <repo> --json
|
|
60
60
|
peaks request transition <rid> --role prd --state handed-off --project <repo> --json
|
|
61
61
|
|
|
62
|
-
# 3. Peaks-
|
|
62
|
+
# 3. Peaks-Loop Default sub-agent fan-out (slice 5 contract)
|
|
63
63
|
# Solo computes the swarm plan from --type + frontendOnly + frontend-keyword scan,
|
|
64
64
|
# writes it to .peaks/_runtime/<sid>/sc/swarm-plan.json, then writes the slice
|
|
65
65
|
# DAG to .peaks/_runtime/<sid>/sc/slice-dag.json and launches ONE
|
|
@@ -68,7 +68,7 @@ peaks request transition <rid> --role prd --state handed-off --project <repo> --
|
|
|
68
68
|
# same topological level — that is the canonical "fan-out" signal. The
|
|
69
69
|
# orchestrator emits N parallel `buildToolCall` descriptors in ONE response;
|
|
70
70
|
# the LLM-side runner executes them concurrently.
|
|
71
|
-
# See "Peaks-
|
|
71
|
+
# See "Peaks-Loop Default sub-agent fan-out" above for the default rule and
|
|
72
72
|
# exceptions; the gate logic is single-sourced in references/swarm-dispatch-contract.md.
|
|
73
73
|
# Hard rule: do NOT call Skill(skill="peaks-rd" | "peaks-qa" | "peaks-ui") from
|
|
74
74
|
# the Swarm phase — that's the v1.x anti-pattern. And do NOT issue N sequential
|
|
@@ -107,23 +107,23 @@ ls .peaks/_runtime/<sid>/qa/test-cases/<rid>.md # QA test-cases (
|
|
|
107
107
|
# ui (only when in plan):
|
|
108
108
|
ls .peaks/_runtime/<sid>/ui/design-draft.md 2>&1 # non-blocking (Gate B info)
|
|
109
109
|
# Apply the degradation rules in the main SKILL.md if any artefact is missing.
|
|
110
|
-
# → Peaks-
|
|
110
|
+
# → Peaks-Loop Gate B convergence check. Assisted/Strict: [CONFIRM]
|
|
111
111
|
|
|
112
|
-
# 4. Peaks-
|
|
112
|
+
# 4. Peaks-Loop RD planning artifact (the file required by the prerequisite gate)
|
|
113
113
|
# feature / refactor → write .peaks/_runtime/<id>/rd/tech-doc.md
|
|
114
114
|
# bugfix → write .peaks/_runtime/<id>/rd/bug-analysis.md
|
|
115
115
|
# config → no planning artifact required at this state
|
|
116
116
|
# docs / chore → no planning artifact required
|
|
117
117
|
peaks request transition <rid> --role rd --state implemented --project <repo> --json
|
|
118
118
|
|
|
119
|
-
# 5. Peaks-
|
|
119
|
+
# 5. Peaks-Loop Code review + security review BEFORE qa-handoff transition.
|
|
120
120
|
# Produce the evidence files the CLI gate enforces:
|
|
121
121
|
# - .peaks/_runtime/<id>/rd/code-review.md (CRITICAL/HIGH findings + fixes; required for feature/bugfix/refactor)
|
|
122
122
|
# - .peaks/_runtime/<id>/rd/security-review.md (required for feature/bugfix/refactor/config)
|
|
123
123
|
# Then transition. If --type is docs/chore the gate is empty and the transition is unguarded.
|
|
124
124
|
peaks request transition <rid> --role rd --state qa-handoff --project <repo> --json
|
|
125
125
|
|
|
126
|
-
# 6. Peaks-
|
|
126
|
+
# 6. Peaks-Loop QA validation (AUTO-PROCEED from RD in full-auto)
|
|
127
127
|
# Before each QA transition, produce the evidence files the CLI gate enforces:
|
|
128
128
|
# Before qa:running → .peaks/_runtime/<id>/qa/test-cases/<rid>.md
|
|
129
129
|
peaks request transition <rid> --role qa --state running --project <repo> --json
|
|
@@ -131,9 +131,9 @@ peaks request transition <rid> --role qa --state running --project <repo> --json
|
|
|
131
131
|
# + .peaks/_runtime/<id>/qa/security-findings.md
|
|
132
132
|
# + .peaks/_runtime/<id>/qa/performance-findings.md (feature/refactor only)
|
|
133
133
|
peaks request transition <rid> --role qa --state verdict-issued --project <repo> --json
|
|
134
|
-
# → Peaks-
|
|
134
|
+
# → Peaks-Loop Gate D check. Assisted/Strict: [CONFIRM]
|
|
135
135
|
|
|
136
|
-
# 7. Peaks-
|
|
136
|
+
# 7. Peaks-Loop RD↔QA repair loop — if verdict is return-to-rd, re-run 4 through 6 until QA passes or blocked TXT.
|
|
137
137
|
# Before invoking peaks-rd again, check the cycle count so you don't blow past the cap silently:
|
|
138
138
|
peaks request repair-status <rid> --project <repo> --json
|
|
139
139
|
# → atCap=true → STOP and emit a blocked TXT handoff. Do NOT enter another cycle.
|
|
@@ -143,18 +143,18 @@ peaks request repair-status <rid> --project <repo> --json
|
|
|
143
143
|
peaks scan request-type-sanity --project <repo> --type <type> --json
|
|
144
144
|
# → consistent=false → RD scope-creeped during repair; review before re-handoff.
|
|
145
145
|
|
|
146
|
-
# 8. Peaks-
|
|
146
|
+
# 8. Peaks-Loop SC phase
|
|
147
147
|
peaks sc impact --change-id <cid> --module <module> --file <path> --json
|
|
148
148
|
peaks sc retention --slice-id <rid> --prd <prd> --rd <rd> --qa <qa> --json
|
|
149
149
|
peaks sc validate --slice-id <rid> --json
|
|
150
150
|
peaks sc boundary --slice-id <rid> --artifact <artifact> --code <file> --json
|
|
151
151
|
|
|
152
|
-
# 9. Peaks-
|
|
152
|
+
# 9. Peaks-Loop OpenSpec archive (exit gate; only after QA pass, when openspec/ exists)
|
|
153
153
|
peaks openspec validate <cid> --project <repo> --json
|
|
154
154
|
peaks openspec archive <cid> --project <repo> --apply --json
|
|
155
155
|
peaks workspace reconcile --project <repo> --apply --older-than 7
|
|
156
156
|
|
|
157
|
-
# 10. Peaks-
|
|
157
|
+
# 10. Peaks-Loop TXT handoff — invoke peaks-txt which embeds memory markers and extracts
|
|
158
158
|
# peaks-txt writes the handoff capsule to .peaks/_runtime/<id>/txt/handoff.md. Inside the
|
|
159
159
|
# capsule body, peaks-txt embeds <!-- peaks-memory:start --> blocks for every
|
|
160
160
|
# stable project fact surfaced this session.
|
|
@@ -180,7 +180,7 @@ peaks memory extract --project <repo> --artifact .peaks/_runtime/<id>/txt/handof
|
|
|
180
180
|
# --apply is REQUIRED to write .peaks/memory/; without it the command only
|
|
181
181
|
# previews. The extract regenerates index.json in the same call.
|
|
182
182
|
|
|
183
|
-
# 11. Peaks-
|
|
183
|
+
# 11. Peaks-Loop Final snapshot
|
|
184
184
|
peaks project dashboard --project <repo> --json
|
|
185
185
|
peaks skill doctor --json
|
|
186
186
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Step 2 + 2.5 — Skill presence and session title
|
|
2
2
|
|
|
3
|
-
> Combined body for `### Peaks-
|
|
3
|
+
> Combined body for `### Peaks-Loop Step 2: Re-set skill presence with the chosen mode` and `### Peaks-Loop Step 2.5: Set session title`.
|
|
4
4
|
|
|
5
5
|
## Step 2 — Re-set skill presence
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ On the first presence:set in a project, ensure the out-of-band status bar is ins
|
|
|
16
16
|
peaks statusline install --project <repo> # idempotent; skips if already installed
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
Then display the compact status header: `Peaks-
|
|
19
|
+
Then display the compact status header: `Peaks-Loop Skill: peaks-solo | Peaks-Loop Gate: startup | Next: <one short action>`. Display this header on EVERY turn while the skill is active.
|
|
20
20
|
|
|
21
21
|
Update with `peaks skill presence:set peaks-solo --project <repo> --mode <mode> --gate <gate>` when gates change. The presence file persists across the full workflow lifecycle — do NOT clear it at workflow end.
|
|
22
22
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Project standards preflight
|
|
2
2
|
|
|
3
|
-
> Body of `## Peaks-
|
|
3
|
+
> Body of `## Peaks-Loop Project standards preflight`. Before orchestrating an end-to-end code repository workflow, gather the project standards preflight status from RD and QA by calling the Peaks-Loop CLI:
|
|
4
4
|
|
|
5
5
|
- `peaks standards init --project <path> --dry-run`
|
|
6
6
|
- `peaks standards update --project <path> --dry-run`
|
|
7
7
|
|
|
8
|
-
Use `standards init` for first-time creation and `standards update` for existing `CLAUDE.md` append/review behavior. In `full-auto` and `swarm` profiles, `--apply` runs automatically after `--dry-run` succeeds — these files live inside the target project, are required for downstream skill preflight, and producing them is part of finishing the workflow (Peaks-
|
|
8
|
+
Use `standards init` for first-time creation and `standards update` for existing `CLAUDE.md` append/review behavior. In `full-auto` and `swarm` profiles, `--apply` runs automatically after `--dry-run` succeeds — these files live inside the target project, are required for downstream skill preflight, and producing them is part of finishing the workflow (Peaks-Loop Gate G enforces this). `assisted` and `strict` profiles pause for explicit user confirmation between dry-run and apply.
|
|
9
9
|
|
|
10
10
|
**CRITICAL — Standards must reflect the project scan.** When generating or updating `CLAUDE.md`, the content must reference concrete findings from `.peaks/_runtime/<sessionId>/rd/project-scan.md`: the detected component library (e.g. "This project uses antd 5.x"), CSS solution (e.g. "Uses Less via Umi"), build tool, state management, and routing. Never emit a generic template that says "read .claude/rules/..." without naming the actual project stack. If the project-scan has not been run yet, run it before standards init/update.
|
|
11
11
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Step 0.55 — 1.x → 2.0 detection reference
|
|
2
2
|
|
|
3
|
-
> Body of `### Peaks-
|
|
3
|
+
> Body of `### Peaks-Loop Step 0.55`. Slice: 2026-06-12-solo-step-0-55-1x-detection.
|
|
4
4
|
|
|
5
5
|
## Why this step exists
|
|
6
6
|
|
|
7
|
-
The peaks-
|
|
7
|
+
The peaks-loop 1.x → 2.0 closeout ships:
|
|
8
8
|
|
|
9
9
|
1. A postinstall that auto-detects 1.x state and dispatches the upgrade (slice 1, commit `b6e34e6`).
|
|
10
10
|
2. A standards-migrate path that thins `.claude/rules/**/*.md` and scaffolds `.peaks/standards/` (slice 2, commit `33dd392`).
|
|
@@ -68,7 +68,7 @@ The decision is persisted via `peaks preferences set --project <root> --key auto
|
|
|
68
68
|
## What is NOT in this step
|
|
69
69
|
|
|
70
70
|
- The auto-upgrade execution itself: the umbrella is invoked via the AskUserQuestion's recommended option. The umbrella's behavior (6 sub-commands + write-upgrade-record) is documented in the umbrella's own help text.
|
|
71
|
-
- The postinstall auto-dispatch: that's `scripts/install-skills.mjs:autoUpgrade1xProjectIfPresent`, which fires fire-and-forget on `npm i -g peaks-
|
|
71
|
+
- The postinstall auto-dispatch: that's `scripts/install-skills.mjs:autoUpgrade1xProjectIfPresent`, which fires fire-and-forget on `npm i -g peaks-loop@2.0`. Step 0.55 is the user-invoked path.
|
|
72
72
|
- Re-authoring the 1.x detector heuristics: the implementation is a 1:1 mirror of the canonical `.mjs` version. Drift is prevented by the parity test.
|
|
73
73
|
|
|
74
74
|
## How this integrates with the rest of the workflow
|
|
@@ -25,7 +25,7 @@ the skills compose. For sub-agent dispatch the relationship is:
|
|
|
25
25
|
| Dispatcher 抽象 (per-IDE) | `src/services/dispatch/sub-agent-dispatcher.ts` | Encapsulates the IDE-private tool name (claude-code: `Task`, trae: UNVERIFIED placeholder) and arg shape | CLI (called by the CLI) |
|
|
26
26
|
|
|
27
27
|
This is the **inverse** of the prior shape: SKILL.md used to hardcode
|
|
28
|
-
`Task(subagent_type="general-purpose", ...)`, which made peaks-
|
|
28
|
+
`Task(subagent_type="general-purpose", ...)`, which made peaks-loop
|
|
29
29
|
depend on Claude Code's specific tool name. Adding a new IDE meant
|
|
30
30
|
editing every SKILL.md that mentioned sub-agents. With the new shape,
|
|
31
31
|
the only per-IDE thing in the dispatch chain is the dispatcher — SKILL.md
|
|
@@ -178,7 +178,7 @@ to keep the user informed during the wait.
|
|
|
178
178
|
|
|
179
179
|
**Slice #016 retirement (G3 prompt template — MCP subsystem removed)**:
|
|
180
180
|
The MCP-decouple paragraph from slice #007-007 no longer applies.
|
|
181
|
-
peaks-
|
|
181
|
+
peaks-loop no longer manages MCP install or invocation. Sub-agents
|
|
182
182
|
check their own tool list for `mcp__<server>__*` entries and invoke
|
|
183
183
|
the tool by name directly. The only prompt-template addition that
|
|
184
184
|
remains is the tool-list self-check:
|
|
@@ -304,7 +304,7 @@ The role's required artefact paths (also see peaks-ui/rd/qa SKILL.md and `refere
|
|
|
304
304
|
| `rd-planning` | `.peaks/_runtime/<sessionId>/rd/tech-doc.md` (feature/refactor) or `.peaks/_runtime/<sessionId>/rd/bug-analysis.md` (bugfix) | PRD body, project-scan, existing-system, codegraph |
|
|
305
305
|
| `qa-test-cases` | `.peaks/_runtime/<sessionId>/qa/test-cases/<rid>.md` | PRD body, RD planning artefact, project-scan, codegraph |
|
|
306
306
|
|
|
307
|
-
**Solo launches all sub-agents in the swarm plan in a single message (multiple `peaks sub-agent dispatch` calls in parallel, each followed by execution of the returned toolCall)** — this is what gives real concurrency. Do not sequentialize them. The CLI returns N toolCall descriptors; the LLM fires all N in the same message; the IDE dispatches them concurrently; Solo then waits for all to return, runs `ls` checks against the paths above (Peaks-
|
|
307
|
+
**Solo launches all sub-agents in the swarm plan in a single message (multiple `peaks sub-agent dispatch` calls in parallel, each followed by execution of the returned toolCall)** — this is what gives real concurrency. Do not sequentialize them. The CLI returns N toolCall descriptors; the LLM fires all N in the same message; the IDE dispatches them concurrently; Solo then waits for all to return, runs `ls` checks against the paths above (Peaks-Loop Gate B), and only then advances to RD implementation.
|
|
308
308
|
|
|
309
309
|
**Hard prohibitions on sub-agents** (also passed in each dispatch prompt):
|
|
310
310
|
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> Reference for `peaks-solo` Swarm phase and the role sub-agents (`peaks-ui` / `peaks-rd` planning / `peaks-qa` test-cases). Defines the **mechanism** of fan-out: how Solo launches sub-agents, what the sub-agent prompt must contain, what the sub-agent must return, and how Solo reduces the result.
|
|
4
4
|
|
|
5
|
-
## Peaks-
|
|
5
|
+
## Peaks-Loop Swarm parallel phase (sub-agent fan-out, default)
|
|
6
6
|
|
|
7
7
|
> **Slice 5 (2026-06-23) + slice 2026-06-23-audit-4th #F3:** the
|
|
8
8
|
> previous "conditional swarm" framing is replaced by the **default
|
|
9
|
-
> fan-out rule** in `skills/peaks-solo/SKILL.md` §"Peaks-
|
|
9
|
+
> fan-out rule** in `skills/peaks-solo/SKILL.md` §"Peaks-Loop Default
|
|
10
10
|
> sub-agent fan-out". When the slice DAG has ≥ 2 leaves at the same
|
|
11
11
|
> topological level, dispatch goes through
|
|
12
12
|
> `peaks sub-agent dispatch --from-dag` (NOT one-at-a-time). The
|
|
@@ -158,7 +158,7 @@ After all sub-agent dispatch calls return and the LLM has invoked the toolCalls,
|
|
|
158
158
|
|
|
159
159
|
## 5. Presence restoration (single-shot)
|
|
160
160
|
|
|
161
|
-
Sub-agents are explicitly forbidden from calling `peaks skill presence:set`. That means `.peaks/.active-skill.json` does not move during the fan-out. Solo sets it to `gate=swarm-fan-out` before fan-out and to `gate=swarm-converged` once after all Tasks return. The status header (the `Peaks-
|
|
161
|
+
Sub-agents are explicitly forbidden from calling `peaks skill presence:set`. That means `.peaks/.active-skill.json` does not move during the fan-out. Solo sets it to `gate=swarm-fan-out` before fan-out and to `gate=swarm-converged` once after all Tasks return. The status header (the `Peaks-Loop Skill: peaks-solo | Peaks-Loop Gate: <gate>` line) therefore reads consistently across the fan-out window.
|
|
162
162
|
|
|
163
163
|
If a sub-agent is misbehaving and writes to `.peaks/.active-skill.json` anyway, the next Solo presence-set (after fan-out) overwrites it — the bug self-heals on the next gate advance, but the swarm-phase display may be off. The hard prohibition is there to prevent this; Solo should still treat the file as a single-writer resource.
|
|
164
164
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
# Peaks-
|
|
1
|
+
# Peaks-Loop Workflow Order + Request Type Classification + Transition Verification Gates
|
|
2
2
|
|
|
3
3
|
> **Maintenance**: This reference holds the canonical contract for (a) how Solo sequences the 11 workflow steps, (b) which `--type` to pass to `peaks request init` for which slice shape, and (c) the executable `ls` / `grep` gate commands that physically block progression. SKILL.md keeps the narrative ("what peaks-solo does"); this file keeps the contract.
|
|
4
4
|
>
|
|
5
5
|
> **Why extracted from SKILL.md**: this content is 165 lines of mostly-tabular + bash-block contract — reference data, not orchestration prose. Inlining it bloats SKILL.md past the 800-line cap (per `common/coding-style.md`). The numbers, gate command shapes, and type-classification rules change rarely; the SKILL.md prose around them (orchestration flow, repair-loop intent, swarm fan-out shape) changes more often.
|
|
6
6
|
>
|
|
7
|
-
> **How peaks-
|
|
7
|
+
> **How peaks-loop tooling reads this file**:
|
|
8
8
|
> - `peaks skill runbook peaks-solo` (CLI) and the in-line LLM reading the SKILL.md should reference this file when the gate-machine or type-classification contract is in play.
|
|
9
9
|
> - The test `tests/unit/skill-default-runbook.test.ts` does NOT check this file (it only checks the runbook). Future tests can add a similar fallback for the gates-and-types contract.
|
|
10
10
|
|
|
11
|
-
## Peaks-
|
|
11
|
+
## Peaks-Loop Request type classification (MANDATORY before `peaks request init`)
|
|
12
12
|
|
|
13
13
|
Before initializing any role artifact, classify the request into exactly one of six types. The choice drives RD/QA gate strictness (see "Mandatory RD QA repair loop"). Pick the **primary intent** — if a request could fit two types, the higher-strictness one wins.
|
|
14
14
|
|
|
@@ -25,34 +25,34 @@ Before initializing any role artifact, classify the request into exactly one of
|
|
|
25
25
|
|
|
26
26
|
For ambiguous cases (e.g. "improve login flow"), ask the user to clarify before initializing. The cost of one `AskUserQuestion` round is much lower than running the wrong gate matrix for the whole workflow.
|
|
27
27
|
|
|
28
|
-
When Peaks-
|
|
28
|
+
When Peaks-Loop Solo coordinates development in a code repository, keep this order explicit:
|
|
29
29
|
|
|
30
|
-
0. **Peaks-
|
|
31
|
-
0.5. **Peaks-
|
|
32
|
-
0.6. **Peaks-
|
|
33
|
-
0.7. **Peaks-
|
|
34
|
-
1. **Peaks-
|
|
35
|
-
2. **Peaks-
|
|
30
|
+
0. **Peaks-Loop Snapshot** — `peaks doctor` + `peaks project dashboard` to capture baseline state before anything else;
|
|
31
|
+
0.5. **Peaks-Loop Workspace initialization** — `.peaks/_runtime/<session-id>/` created, directory structure verified;
|
|
32
|
+
0.6. **Peaks-Loop Project scan** — archetype, component library, CSS framework, build tool, state management, routing, data fetching, legacy signals detected and recorded to `.peaks/_runtime/<session-id>/rd/project-scan.md`;
|
|
33
|
+
0.7. **Peaks-Loop Existing-system extraction** (MANDATORY when archetype ∈ {legacy-frontend, legacy-fullstack, frontend-monorepo}; SKIP for greenfield) — extract visual tokens and code conventions from the live codebase to `.peaks/_runtime/<session-id>/system/existing-system.md`. The path lives under `system/` (not `ui/`) because the file also records non-UI conventions (service-layer signatures, hooks, naming) that backend-only or legacy-fullstack work consumes. See `references/existing-system-extraction.md`. UI design-draft and RD implementation MUST treat the extracted tokens and conventions as hard constraints;
|
|
34
|
+
1. **Peaks-Loop Standards preflight** — `peaks standards init/update --dry-run`, must reference concrete project-scan findings (never emit generic templates);
|
|
35
|
+
2. **Peaks-Loop PRD phase** — capture request as canonical artifact, extract scope and acceptance criteria:
|
|
36
36
|
- Full-auto/Swarm: auto-transition to `confirmed-by-user` once the artifact is complete;
|
|
37
37
|
- Assisted/Strict: pause with `AskUserQuestion` for explicit user confirmation before proceeding;
|
|
38
|
-
3. **Peaks-
|
|
38
|
+
3. **Peaks-Loop Swarm parallel phase** — after PRD confirmed, launch UI, RD(planning), QA(test-cases) simultaneously:
|
|
39
39
|
3a. UI design draft and visual direction (MANDATORY when request is frontend/user-visible; skipped for `--type docs|chore|config` or pure-backend requests);
|
|
40
40
|
3b. RD planning artifact — `rd/tech-doc.md` for feature/refactor, `rd/bug-analysis.md` for bugfix, skipped for docs/chore/config;
|
|
41
41
|
3c. QA test-case generation (skipped for docs/chore — no acceptance surface to validate);
|
|
42
|
-
4. **Peaks-
|
|
43
|
-
5. **Peaks-
|
|
44
|
-
6. **Peaks-
|
|
45
|
-
7. **Peaks-
|
|
46
|
-
8. **Peaks-
|
|
47
|
-
9. **Peaks-
|
|
48
|
-
10. **Peaks-
|
|
49
|
-
11. **Peaks-
|
|
42
|
+
4. **Peaks-Loop RD implementation** — consumes the type-appropriate inputs: project-scan + standards + (if UI involved) UI design-draft + RD planning artifact + QA test-cases. Includes unit tests for new/changed behavior (TDD) unless `--type` is docs/chore;
|
|
43
|
+
5. **Peaks-Loop Code review + security review** — CRITICAL/HIGH issues fixed before progression; marked-blocked issues only allow a blocked handoff;
|
|
44
|
+
6. **Peaks-Loop QA validation** (auto-proceed from RD in full-auto) — execute test cases + API checks + Playwright MCP headed browser E2E for frontend + security/perf checks + test report;
|
|
45
|
+
7. **Peaks-Loop RD↔QA repair loop** — if QA verdict is `return-to-rd`, loop back to step 4 (RD implementation) and re-run through QA; max 3 repair cycles, then emit blocked TXT regardless;
|
|
46
|
+
8. **Peaks-Loop SC phase** — change-control evidence: impact, retention, validate, boundary;
|
|
47
|
+
9. **Peaks-Loop OpenSpec archive** — exit gate: validate → archive only after QA verdict=pass (when `openspec/` exists);
|
|
48
|
+
10. **Peaks-Loop TXT handoff capsule** — mode, validated decisions, artifact paths, standards deltas, open questions, next action;
|
|
49
|
+
11. **Peaks-Loop Final snapshot** — `peaks project dashboard` + `peaks skill doctor` to confirm the workflow closed cleanly.
|
|
50
50
|
|
|
51
|
-
### Peaks-
|
|
51
|
+
### Peaks-Loop Transition verification gates (MANDATORY — run the command, see the output)
|
|
52
52
|
|
|
53
53
|
You cannot declare a phase complete from memory. Each gate below is a `ls` command you **MUST run** and whose output you **MUST see** before proceeding. If any file shows "No such file", the phase is incomplete.
|
|
54
54
|
|
|
55
|
-
**Peaks-
|
|
55
|
+
**Peaks-Loop Gate A — After workspace init + project scan:**
|
|
56
56
|
```bash
|
|
57
57
|
ls .peaks/_runtime/<sessionId>/rd/project-scan.md
|
|
58
58
|
# Expected output: .peaks/_runtime/<sessionId>/rd/project-scan.md
|
|
@@ -61,7 +61,7 @@ ls .peaks/_runtime/<sessionId>/rd/project-scan.md
|
|
|
61
61
|
# File present and complete → reuse (project-scan is a session-scoped singleton)
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
**Peaks-
|
|
64
|
+
**Peaks-Loop Gate A.5 — Existing-system extraction (legacy projects only):**
|
|
65
65
|
```bash
|
|
66
66
|
# If project-scan.md `## Archetype` is greenfield → skip this gate
|
|
67
67
|
# Otherwise:
|
|
@@ -70,9 +70,9 @@ ls .peaks/_runtime/<sessionId>/system/existing-system.md
|
|
|
70
70
|
# (see references/existing-system-extraction.md)
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
**Peaks-
|
|
73
|
+
**Peaks-Loop Gate B — After swarm convergence (UI + RD planning + QA test-cases):**
|
|
74
74
|
|
|
75
|
-
Peaks-
|
|
75
|
+
Peaks-Loop Gate B has two sub-checks: a HARD gate (blocks progression) and an INFORMATIONAL check (records degradation but does not block).
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
78
|
# B.hard — REQUIRED before continuing to RD implementation.
|
|
@@ -98,7 +98,7 @@ ls .peaks/_runtime/<sessionId>/ui/design-draft.md 2>&1
|
|
|
98
98
|
# "No such file" + pure backend / docs / chore / config → state skip reason in TXT, proceed.
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
**Peaks-
|
|
101
|
+
**Peaks-Loop Gate C — After RD implementation (before QA handoff):**
|
|
102
102
|
|
|
103
103
|
The CLI gate (`peaks request transition --state qa-handoff`) is the authoritative check; running this `ls` first lets you produce missing files before the CLI rejects the transition.
|
|
104
104
|
|
|
@@ -125,7 +125,7 @@ ls .peaks/_runtime/<sessionId>/rd/requests/<rid>.md
|
|
|
125
125
|
# Missing any required file → DO NOT attempt the qa-handoff transition; CLI will reject with PREREQUISITES_MISSING.
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
**Peaks-
|
|
128
|
+
**Peaks-Loop Gate D — After QA validation:**
|
|
129
129
|
|
|
130
130
|
The CLI gate at `qa:verdict-issued` is the authoritative check; this `ls` lets you produce missing evidence before the CLI rejects the transition.
|
|
131
131
|
|
|
@@ -141,17 +141,17 @@ ls .peaks/_runtime/<sessionId>/qa/requests/<rid>.md
|
|
|
141
141
|
# Missing required file → QA incomplete; do not transition to verdict-issued.
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
-
**Peaks-
|
|
144
|
+
**Peaks-Loop Gate E — Before declaring workflow complete:**
|
|
145
145
|
```bash
|
|
146
146
|
find .peaks/_runtime/<sessionId>/ -type f | sort
|
|
147
147
|
# Verify: files from gates A-D all appear in this list.
|
|
148
148
|
# Any mandatory file missing → NOT complete. Do not emit TXT.
|
|
149
|
-
# Peaks-
|
|
149
|
+
# Peaks-Loop Gate G (CLAUDE.md + .claude/rules/**) must ALSO pass before TXT is emitted.
|
|
150
150
|
```
|
|
151
151
|
|
|
152
|
-
**Peaks-
|
|
152
|
+
**Peaks-Loop Gate F — Root pollution check (BLOCKING before completion):**
|
|
153
153
|
```bash
|
|
154
|
-
# Verify no Peaks-
|
|
154
|
+
# Verify no Peaks-Loop intermediate artifacts leaked to project root.
|
|
155
155
|
ls feishu-doc-*.md *-snapshot.md qa-server.js 2>&1
|
|
156
156
|
# Expected: "No such file or directory" for ALL patterns.
|
|
157
157
|
# Any file found → ROOT POLLUTION. Move it to .peaks/_runtime/<sessionId>/prd/source/
|
|
@@ -162,11 +162,11 @@ ls feishu-doc-*.md *-snapshot.md qa-server.js 2>&1
|
|
|
162
162
|
```bash
|
|
163
163
|
# Extended check for common leak patterns
|
|
164
164
|
find . -maxdepth 1 -name "*.png" -o -name "*.jpg" -o -name "qa-*.js" -o -name "mock-server.*" 2>&1
|
|
165
|
-
# Any Peaks-
|
|
166
|
-
# Legitimate project files (e.g. favicon.png) are fine — only move Peaks-
|
|
165
|
+
# Any Peaks-Loop QA/UI intermediate files here → ROOT POLLUTION. Move and note.
|
|
166
|
+
# Legitimate project files (e.g. favicon.png) are fine — only move Peaks-Loop artifacts.
|
|
167
167
|
```
|
|
168
168
|
|
|
169
|
-
**Peaks-
|
|
169
|
+
**Peaks-Loop Gate G — Project standards present (BLOCKING before workflow completion):**
|
|
170
170
|
```bash
|
|
171
171
|
# After `peaks standards init/update --apply`, verify the files actually landed
|
|
172
172
|
# at the project root. The CLAUDE.md and rules files are required so that
|
|
@@ -180,7 +180,7 @@ ls <repo>/.claude/rules/common/coding-style.md \
|
|
|
180
180
|
<repo>/.claude/rules/common/security.md
|
|
181
181
|
# Any "No such file" → BLOCKED. The standards apply step did not complete; re-run
|
|
182
182
|
# standards init/update with --apply and re-verify.
|
|
183
|
-
# Skipping Peaks-
|
|
183
|
+
# Skipping Peaks-Loop Gate G (e.g. because the user did not explicitly authorize writes) is
|
|
184
184
|
# only acceptable in `assisted`/`strict` modes where the user actively declined; in
|
|
185
185
|
# `full-auto`/`swarm` the absence of these files is a workflow violation.
|
|
186
186
|
```
|
|
@@ -3,9 +3,9 @@ name: peaks-solo-resume
|
|
|
3
3
|
description: Resume an in-flight peaks-solo slice in the current session. Use when the user says "continue the unfinished work", "继续完成", "把刚才没做完的收尾", or invokes `/peaks-solo-resume` directly. Detects the current session's deepest completed gate (via the Step 0.7 detection script at `tests/fixtures/skill-resume-mode-detect.sh`) and surfaces a resume option via `AskUserQuestion`. Triggers on `/peaks-solo-resume`, "继续完成刚才的", "resume the unfinished slice", "把刚才没做完的收尾".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Peaks-
|
|
6
|
+
# Peaks-Loop Solo Resume (wrapper)
|
|
7
7
|
|
|
8
|
-
Peaks-
|
|
8
|
+
Peaks-Loop Solo Resume is a thin wrapper that handles the **most common high-frequency request shape**: "I was in the middle of something, continue it." It detects the current session's deepest completed gate, surfaces a resume option, then yields to the main `peaks-solo` skill (which runs the actual workflow from the matching gate onwards).
|
|
9
9
|
|
|
10
10
|
**This is a transparent wrapper.** The user does not stay in this skill — once the resume option is confirmed, control hands off to `peaks-solo`. The wrapper exists only to (a) detect the in-flight slice without the LLM re-reading 3-5 artifact files, and (b) surface the resume option as a `AskUserQuestion` before the main loop skips ahead.
|
|
11
11
|
|
|
@@ -3,9 +3,9 @@ name: peaks-solo-status
|
|
|
3
3
|
description: Show the current state of the peaks-solo orchestrator in a compact summary. Use when the user says "what's the current state", "现在到哪了", "where are we", or invokes `/peaks-solo-status` directly. Reads the existing CLI primitives (`peaks skill presence`, `peaks session list`, `peaks project dashboard`, `peaks request show`) and renders a 1-screen status table. Triggers on `/peaks-solo-status`, "现在到哪了", "what is the current state", "show me the dashboard", "where are we".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Peaks-
|
|
6
|
+
# Peaks-Loop Solo Status (wrapper)
|
|
7
7
|
|
|
8
|
-
Peaks-
|
|
8
|
+
Peaks-Loop Solo Status is a thin wrapper that renders a compact status table for the current peaks-solo orchestrator state. It is the answer to "I just want to know where we are" — no PRD, no RD, no QA, no full peaks-solo orchestration. Just read the existing CLI state and render a 1-screen summary.
|
|
9
9
|
|
|
10
10
|
**This is a transparent wrapper.** The user does not stay in this skill — the status table is rendered, and control hands off (back to the user, or to `peaks-solo` if the user wants to act on the status).
|
|
11
11
|
|
|
@@ -54,7 +54,7 @@ Compact 1-screen format:
|
|
|
54
54
|
=== peaks-solo status ===
|
|
55
55
|
Session: 2026-06-04-session-b60252
|
|
56
56
|
Active: peaks-solo (mode: full-auto, gate: qa-validation)
|
|
57
|
-
Workspace: /Users/yuanyuan/.../peaks-
|
|
57
|
+
Workspace: /Users/yuanyuan/.../peaks-loop/.peaks/2026-06-04-session-b60252
|
|
58
58
|
|
|
59
59
|
| Role | State | Artifact |
|
|
60
60
|
|------|----------------|-------------------------|
|
|
@@ -75,7 +75,7 @@ If the session is fresh (no in-flight slice), render a different layout:
|
|
|
75
75
|
=== peaks-solo status ===
|
|
76
76
|
Session: 2026-06-04-session-b60252
|
|
77
77
|
Active: peaks-solo (mode: full-auto, gate: startup)
|
|
78
|
-
Workspace: /Users/yuanyuan/.../peaks-
|
|
78
|
+
Workspace: /Users/yuanyuan/.../peaks-loop/.peaks/2026-06-04-session-b60252
|
|
79
79
|
|
|
80
80
|
No in-flight slice. Ready for a new request.
|
|
81
81
|
Health: skill-doctor 35/35 pass
|
|
@@ -3,9 +3,9 @@ name: peaks-solo-test
|
|
|
3
3
|
description: Run the project's test suite on the current repo and report results. Use when the user says "run the tests", "跑一下 test", "跑测试", or invokes `/peaks-solo-test` directly. Runs `pnpm vitest run` (or the project's equivalent test command), captures pass/fail counts and any failures, and surfaces a compact summary. Triggers on `/peaks-solo-test`, "跑一下 test", "跑测试", "run the tests", "test now".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Peaks-
|
|
6
|
+
# Peaks-Loop Solo Test (wrapper)
|
|
7
7
|
|
|
8
|
-
Peaks-
|
|
8
|
+
Peaks-Loop Solo Test is a thin wrapper that runs the project's test suite on the current repo and reports results. It is the answer to "I just want to see if the tests pass" — no PRD, no RD, no QA, no full peaks-solo orchestration. Just `pnpm vitest run` and a compact summary.
|
|
9
9
|
|
|
10
10
|
**This is a transparent wrapper.** The user does not stay in this skill — the test command runs, the result is summarized, and control hands off (back to the user, or to `peaks-solo` if the user wants to act on the result).
|
|
11
11
|
|
|
@@ -18,10 +18,10 @@ peaks project memories --project <repo> --json # load durable memory
|
|
|
18
18
|
|
|
19
19
|
## Step 1: Detect the project's test command
|
|
20
20
|
|
|
21
|
-
The Peaks-
|
|
21
|
+
The Peaks-Loop project standard is `pnpm vitest run` (per `vitest.config.ts` + `package.json` scripts). For other project types, check the package.json scripts first. If the user explicitly named a different command (e.g. "跑 `pnpm test` not vitest"), use that.
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
# Default for peaks-
|
|
24
|
+
# Default for peaks-loop itself + most TS projects with vitest
|
|
25
25
|
pnpm vitest run
|
|
26
26
|
```
|
|
27
27
|
|
|
@@ -3,9 +3,9 @@ name: peaks-sop
|
|
|
3
3
|
description: Authoring skill for user-defined SOPs (standard operating procedures) in Peaks. Use when a user wants to create, edit, debug, or register their own gated workflow — ordered phases plus gates that block advancement until conditions are met — by describing it in natural language instead of hand-writing JSON or memorizing CLI commands. DOMAIN-AGNOSTIC: not just software/release flows — equally for content publishing, compliance and approval checklists, data pipelines, onboarding, ops runbooks, or any personal repeatable procedure, wherever "don't enter the next stage until X is true" applies and X is checkable via a file, file content, or a command.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Peaks-
|
|
6
|
+
# Peaks-Loop SOP Authoring
|
|
7
7
|
|
|
8
|
-
Peaks-
|
|
8
|
+
Peaks-Loop SOP turns a natural-language workflow description into a validated, registered custom SOP, then helps the user debug it until each gate behaves as intended. The user describes the process in plain language; this skill drives the `peaks sop` CLI on their behalf — they never have to hand-write `sop.json` or remember the command sequence.
|
|
9
9
|
|
|
10
10
|
**This is a general workflow-gating tool, not a developer-only tool.** A SOP is any repeatable process with ordered stages where you must not skip ahead until conditions are met. Software release is just one example; content publishing, compliance/approval checklists, data validation pipelines, employee onboarding, ops runbooks, and personal procedures are all first-class — often the more valuable use. When you interview the user, do not assume code: ask about *their* process in *their* domain.
|
|
11
11
|
|
|
@@ -48,7 +48,7 @@ peaks skill presence:set peaks-sop --project <repo> --mode <mode> --gate startup
|
|
|
48
48
|
peaks project memories --project <repo> --json
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
Then display: `Peaks-
|
|
51
|
+
Then display: `Peaks-Loop Skill: peaks-sop | Peaks-Loop Gate: startup | Next: <one short action>`. Update gates with `peaks skill presence:set peaks-sop --project <repo> --mode <mode> --gate <gate>` when they change. When the SOP is registered and the user is satisfied, run `peaks skill presence:clear --project <repo>`.
|
|
52
52
|
|
|
53
53
|
## Responsibilities
|
|
54
54
|
|
|
@@ -186,13 +186,13 @@ peaks skill presence:clear --project <repo>
|
|
|
186
186
|
|
|
187
187
|
You cannot declare a SOP ready from memory. Each gate below is a command you **MUST run** and whose output you **MUST see**.
|
|
188
188
|
|
|
189
|
-
**Peaks-
|
|
189
|
+
**Peaks-Loop Gate A — the manifest lints clean before register:**
|
|
190
190
|
```bash
|
|
191
191
|
peaks sop lint --id <sop-id> --json
|
|
192
192
|
# Expected: ok:true. If ok:false, fix the findings and re-lint — do NOT register a SOP that does not lint.
|
|
193
193
|
```
|
|
194
194
|
|
|
195
|
-
**Peaks-
|
|
195
|
+
**Peaks-Loop Gate B — gates behave as intended before handing off:**
|
|
196
196
|
```bash
|
|
197
197
|
peaks sop check --id <sop-id> --gate <gate-id> --project <repo> --json
|
|
198
198
|
# Confirm each gate returns the verdict the user expects (pass on the good state, fail/blocked otherwise).
|