peaks-loop 3.1.2 → 4.0.0-beta
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 +62 -12
- package/CHANGELOG.md +50 -36
- package/README-en.md +58 -240
- package/README.md +49 -325
- package/agents/karpathy-reviewer.md +3 -3
- package/dist/src/cli/cli-helpers.d.ts +18 -0
- package/dist/src/cli/cli-helpers.js +8 -0
- package/dist/src/cli/commands/adapter-commands.d.ts +30 -0
- package/dist/src/cli/commands/adapter-commands.js +35 -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/contract-commands.js +1 -1
- package/dist/src/cli/commands/core/session-command.js +12 -0
- package/dist/src/cli/commands/core/skill-command.js +4 -4
- package/dist/src/cli/commands/dispatch-commands.js +2 -2
- package/dist/src/cli/commands/job-commands.js +5 -5
- package/dist/src/cli/commands/observability-commands.js +1 -1
- package/dist/src/cli/commands/perf-audit-commands.js +2 -2
- package/dist/src/cli/commands/security-audit-commands.js +2 -2
- package/dist/src/cli/commands/sediment-commands.d.ts +80 -0
- package/dist/src/cli/commands/sediment-commands.js +640 -0
- package/dist/src/cli/commands/session-migrate-skill-name.d.ts +17 -0
- package/dist/src/cli/commands/session-migrate-skill-name.js +41 -0
- package/dist/src/cli/commands/skill-visibility.d.ts +8 -0
- package/dist/src/cli/commands/skill-visibility.js +63 -0
- package/dist/src/cli/commands/slice-commands.js +2 -2
- package/dist/src/cli/commands/solo-commands.d.ts +2 -2
- package/dist/src/cli/commands/solo-commands.js +8 -8
- package/dist/src/cli/commands/sub-agent-commands.d.ts +1 -1
- package/dist/src/cli/commands/sub-agent-commands.js +1 -1
- package/dist/src/cli/commands/understand-commands.js +1 -1
- package/dist/src/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/src/cli/commands/upgrade-commands.js +3 -3
- package/dist/src/cli/commands/user-touchpoint-commands.js +1 -1
- package/dist/src/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/src/cli/commands/verdict-aggregate-command.js +2 -2
- package/dist/src/cli/commands/workflow-commands.js +2 -2
- package/dist/src/cli/commands/workspace/init-command.d.ts +3 -3
- package/dist/src/cli/commands/workspace/init-command.js +7 -7
- package/dist/src/cli/program.js +19 -2
- package/dist/src/services/adapter/adapter.d.ts +27 -0
- package/dist/src/services/adapter/adapter.js +5 -0
- package/dist/src/services/adapter/auto-adapter.d.ts +11 -0
- package/dist/src/services/adapter/auto-adapter.js +15 -0
- package/dist/src/services/adapter/claude-adapter.d.ts +14 -0
- package/dist/src/services/adapter/claude-adapter.js +40 -0
- package/dist/src/services/adapter/codex-adapter.d.ts +14 -0
- package/dist/src/services/adapter/codex-adapter.js +14 -0
- package/dist/src/services/adapter/copilot-adapter.d.ts +14 -0
- package/dist/src/services/adapter/copilot-adapter.js +14 -0
- package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +1 -1
- package/dist/src/services/audit/enforcers/solo-code-ban.js +2 -2
- package/dist/src/services/audit/red-line-catalog.js +1 -1
- package/dist/src/services/audit/scanners/skills-tree-scanner.js +22 -0
- package/dist/src/services/context/auto-compact-dispatcher.d.ts +1 -1
- package/dist/src/services/dispatch/batch-counter.js +1 -1
- package/dist/src/services/dispatch/leak-detector.js +1 -1
- package/dist/src/services/doctor/doctor-service.js +2 -2
- package/dist/src/services/job/job-resource-snapshot.js +29 -1
- package/dist/src/services/memory/project-memory-service.js +1 -1
- package/dist/src/services/migrate-skill-name/migrate.d.ts +17 -0
- package/dist/src/services/migrate-skill-name/migrate.js +152 -0
- package/dist/src/services/migrate-skill-name/schema.d.ts +42 -0
- package/dist/src/services/migrate-skill-name/schema.js +25 -0
- package/dist/src/services/observability/aggregation.d.ts +1 -1
- package/dist/src/services/observability/aggregation.js +1 -1
- package/dist/src/services/perf/perf-baseline-service.d.ts +1 -1
- package/dist/src/services/perf/perf-baseline-service.js +1 -1
- package/dist/src/services/prd/handoff-types.d.ts +1 -1
- package/dist/src/services/prd/handoff-types.js +1 -1
- package/dist/src/services/progress/progress-service.d.ts +1 -1
- package/dist/src/services/progress/progress-service.js +1 -1
- package/dist/src/services/rd/standards-diagnostic.js +1 -1
- package/dist/src/services/recommendations/capability-seed-mappings.js +1 -1
- package/dist/src/services/sc/sc-service.js +1 -1
- package/dist/src/services/sediment/dispose-confirm.d.ts +9 -0
- package/dist/src/services/sediment/dispose-confirm.js +5 -0
- package/dist/src/services/sediment/json-schema.d.ts +247 -0
- package/dist/src/services/sediment/json-schema.js +26 -0
- package/dist/src/services/sediment/manifest-lint.d.ts +13 -0
- package/dist/src/services/sediment/manifest-lint.js +11 -0
- package/dist/src/services/sediment/pool-paths.d.ts +22 -0
- package/dist/src/services/sediment/pool-paths.js +25 -0
- package/dist/src/services/sediment/pool-read.d.ts +20 -0
- package/dist/src/services/sediment/pool-read.js +73 -0
- package/dist/src/services/sediment/pool-rebuild-index.d.ts +15 -0
- package/dist/src/services/sediment/pool-rebuild-index.js +28 -0
- package/dist/src/services/sediment/pool-write.d.ts +14 -0
- package/dist/src/services/sediment/pool-write.js +25 -0
- package/dist/src/services/sediment/promotion-gate.d.ts +12 -0
- package/dist/src/services/sediment/promotion-gate.js +20 -0
- package/dist/src/services/sediment/types.d.ts +52 -0
- package/dist/src/services/sediment/types.js +1 -0
- package/dist/src/services/session/binding-store.d.ts +1 -1
- package/dist/src/services/session/binding-store.js +1 -1
- package/dist/src/services/session/caller-id-types.d.ts +1 -1
- package/dist/src/services/session/session-manager.d.ts +1 -1
- package/dist/src/services/session/session-manager.js +1 -1
- package/dist/src/services/skill/resume-detector.js +1 -1
- package/dist/src/services/skill/skill-scheduler.d.ts +1 -1
- package/dist/src/services/skill/skill-scheduler.js +1 -1
- package/dist/src/services/skillhub/release-diff.d.ts +18 -0
- package/dist/src/services/skillhub/release-diff.js +38 -0
- package/dist/src/services/skillhub/release-export.d.ts +8 -0
- package/dist/src/services/skillhub/release-export.js +31 -0
- package/dist/src/services/skillhub/release-gc-blobs.d.ts +13 -0
- package/dist/src/services/skillhub/release-gc-blobs.js +32 -0
- package/dist/src/services/skillhub/release-import.d.ts +7 -0
- package/dist/src/services/skillhub/release-import.js +59 -0
- package/dist/src/services/skillhub/release-retain.d.ts +23 -0
- package/dist/src/services/skillhub/release-retain.js +89 -0
- package/dist/src/services/skillhub/sqlite-store.d.ts +22 -0
- package/dist/src/services/skillhub/sqlite-store.js +47 -0
- package/dist/src/services/skillhub/tar-runtime.d.ts +21 -0
- package/dist/src/services/skillhub/tar-runtime.js +91 -0
- package/dist/src/services/skillhub/types.d.ts +105 -0
- package/dist/src/services/skillhub/types.js +1 -0
- package/dist/src/services/skills/skill-conformance-service.js +8 -5
- package/dist/src/services/skills/skill-presence-service.d.ts +4 -4
- package/dist/src/services/skills/skill-presence-service.js +2 -2
- package/dist/src/services/skills/skill-registry.js +27 -0
- package/dist/src/services/skills/skill-runbook-service.js +2 -2
- package/dist/src/services/slice/slice-check-service.js +1 -1
- package/dist/src/services/slice/slice-check-types.d.ts +1 -1
- package/dist/src/services/slice/slice-check-types.js +1 -1
- package/dist/src/services/slice/slice-decompose-types.d.ts +1 -1
- package/dist/src/services/slice/slice-decompose-types.js +1 -1
- package/dist/src/services/solo/auto-compact-orchestrator.d.ts +1 -1
- package/dist/src/services/solo/auto-compact-orchestrator.js +2 -2
- package/dist/src/services/solo/dag-orchestrator.d.ts +3 -3
- package/dist/src/services/solo/dag-orchestrator.js +4 -4
- package/dist/src/services/solo/mode-gate.d.ts +2 -2
- package/dist/src/services/solo/post-compact-detector.js +2 -2
- package/dist/src/services/solo/status-line-renderer.d.ts +4 -4
- package/dist/src/services/standards/missing-standards-detector.d.ts +1 -1
- package/dist/src/services/standards/missing-standards-detector.js +1 -1
- package/dist/src/services/standards/project-standards-service.d.ts +1 -1
- package/dist/src/services/standards/project-standards-service.js +4 -4
- package/dist/src/services/understand/understand-types.d.ts +1 -1
- package/dist/src/services/upgrade/1x-detector-service.js +1 -1
- package/dist/src/services/upgrade/upgrade-service.d.ts +34 -0
- package/dist/src/services/upgrade/upgrade-service.js +52 -30
- package/dist/src/services/verdict/verdict-aggregator.d.ts +1 -1
- package/dist/src/services/workflow/workflow-router-service.d.ts +1 -1
- package/dist/src/services/workflow/workflow-router-service.js +3 -3
- package/dist/src/services/workspace/claude-settings-template.d.ts +1 -1
- package/dist/src/services/workspace/claude-settings-template.js +2 -2
- package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +1 -1
- package/dist/src/services/workspace/workspace-claude-settings-materializer.js +1 -1
- package/dist/src/services/workspace/workspace-service.d.ts +4 -4
- package/dist/src/services/workspace/workspace-service.js +2 -2
- package/dist/src/shared/paths.d.ts +1 -1
- package/dist/src/shared/paths.js +1 -1
- package/dist/src/shared/version.d.ts +1 -1
- package/dist/src/shared/version.js +1 -1
- package/dist/src/skills/peaks-maker/index.d.ts +5 -0
- package/dist/src/skills/peaks-maker/index.js +32 -0
- package/package.json +8 -3
- package/scripts/install-skills.mjs +29 -4
- package/skills/{peaks-prd → bee/peaks-prd}/SKILL.md +8 -2
- package/skills/{peaks-prd → bee/peaks-prd}/references/workflow.md +1 -1
- package/skills/{peaks-qa → bee/peaks-qa}/SKILL.md +10 -4
- package/skills/{peaks-qa → bee/peaks-qa}/references/browser-validation-contracts.md +2 -2
- package/skills/{peaks-qa → bee/peaks-qa}/references/external-capability-guidance.md +1 -1
- package/skills/{peaks-qa → bee/peaks-qa}/references/qa-fanout-contract.md +3 -3
- package/skills/{peaks-qa → bee/peaks-qa}/references/qa-sub-agent-dispatch.md +1 -1
- package/skills/{peaks-rd → bee/peaks-rd}/SKILL.md +13 -6
- package/skills/{peaks-rd → bee/peaks-rd}/references/browser-self-test-contracts.md +1 -1
- package/skills/{peaks-rd → bee/peaks-rd}/references/mock-data-placement.md +1 -1
- package/skills/{peaks-rd → bee/peaks-rd}/references/parallel-review-fanout.md +1 -1
- package/skills/{peaks-rd → bee/peaks-rd}/references/rd-runbook.md +1 -1
- package/skills/{peaks-rd → bee/peaks-rd}/references/rd-sub-agent-dispatch.md +2 -2
- package/skills/{peaks-rd → bee/peaks-rd}/references/rd-transition-gates.md +1 -1
- package/skills/{peaks-rd → bee/peaks-rd}/references/skill-presence-and-title.md +1 -1
- package/skills/{peaks-reviewer → bee/peaks-reviewer}/SKILL.md +2 -2
- package/skills/{peaks-sc → bee/peaks-sc}/SKILL.md +7 -1
- package/skills/{peaks-txt → bee/peaks-txt}/SKILL.md +9 -3
- package/skills/{peaks-ui → bee/peaks-ui}/SKILL.md +11 -5
- package/skills/peaks-audit/SKILL.md +1 -1
- package/skills/{peaks-solo → peaks-code}/SKILL.md +9 -9
- package/skills/{peaks-solo → peaks-code}/references/a2a-artifact-mapping.md +2 -2
- package/skills/{peaks-solo → peaks-code}/references/anchoring-and-session-info.md +4 -4
- package/skills/{peaks-solo → peaks-code}/references/artifact-contracts.md +2 -2
- package/skills/{peaks-solo → peaks-code}/references/browser-workflow.md +1 -1
- package/skills/peaks-code/references/command-migration.md +3 -0
- package/skills/{peaks-solo → peaks-code}/references/completion-handoff.md +2 -2
- package/skills/{peaks-solo → peaks-code}/references/context-governance.md +2 -2
- package/skills/{peaks-solo → peaks-code}/references/frontend-only-mode.md +1 -1
- package/skills/{peaks-solo → peaks-code}/references/local-artifact-workspace.md +1 -1
- package/skills/{peaks-solo → peaks-code}/references/micro-cycle.md +9 -9
- package/skills/{peaks-solo → peaks-code}/references/mode-selection-with-stale-presence.md +12 -12
- package/skills/{peaks-solo → peaks-code}/references/mode-selection.md +1 -1
- package/skills/{peaks-solo → peaks-code}/references/openspec-workflow.md +1 -1
- package/skills/{peaks-solo → peaks-code}/references/project-scan-checklist.md +1 -1
- package/skills/{peaks-solo → peaks-code}/references/refactor-mode.md +1 -1
- package/skills/{peaks-solo → peaks-code}/references/resume-detection.md +1 -1
- package/skills/{peaks-solo → peaks-code}/references/runbook.md +5 -5
- package/skills/{peaks-solo → peaks-code}/references/skill-presence-and-title.md +3 -3
- package/skills/{peaks-solo → peaks-code}/references/standards-preflight.md +1 -1
- package/skills/{peaks-solo → peaks-code}/references/step-0-55-1x-detection.md +5 -5
- package/skills/{peaks-solo → peaks-code}/references/sub-agent-dispatch.md +10 -10
- package/skills/{peaks-solo → peaks-code}/references/swarm-dispatch-contract.md +7 -7
- package/skills/{peaks-solo → peaks-code}/references/workflow-gates-and-types.md +3 -3
- package/skills/peaks-doctor/SKILL.md +1 -1
- package/skills/peaks-doctor/references/doctor-check-catalog.md +1 -1
- package/skills/peaks-final-review/SKILL.md +3 -3
- package/skills/peaks-final-review/references/4-dimensions.md +1 -1
- package/skills/peaks-ide/SKILL.md +1 -1
- package/skills/{peaks-solo-resume → peaks-resume}/SKILL.md +14 -14
- package/skills/peaks-sop/SKILL.md +1 -1
- package/skills/{peaks-solo-status → peaks-status}/SKILL.md +13 -13
- package/skills/{peaks-solo-test → peaks-test}/SKILL.md +11 -11
- package/skills/peaks-solo/references/command-migration.md +0 -3
- /package/skills/{peaks-perf-audit → bee/peaks-perf-audit}/SKILL.md +0 -0
- /package/skills/{peaks-perf-audit → bee/peaks-perf-audit}/references/audit-protocol.md +0 -0
- /package/skills/{peaks-prd → bee/peaks-prd}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-prd → bee/peaks-prd}/references/artifact-per-request.md +0 -0
- /package/skills/{peaks-prd → bee/peaks-prd}/references/command-migration.md +0 -0
- /package/skills/{peaks-prd → bee/peaks-prd}/references/prd-for-multi-pass.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/artifact-per-request.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/codegraph-regression-focus.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/command-migration.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/openspec-validation-gate.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-compact-handoff.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-context-governance.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-gstack-integration.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-local-artifacts.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-matt-pocock-integration.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-perf-test-plan.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-refactor-role.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-runbook.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-security-test-plan.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-skill-presence.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-standards-preflight.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-transition-gates.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/reading-handoff-frontmatter.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/regression-gates.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/requirement-boundary-recheck.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/test-case-generation.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/test-report-output.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-and-standards-output.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-per-request.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/browser-action-wrapper.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/code-reviewer-4dim-hint.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/codegraph-project-analysis.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/command-migration.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/compact-handoff.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/external-references.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/frontend-project-generation.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/karpathy-reviewer-prompt.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/library-version-awareness.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/mandatory-perf-baseline.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/matt-pocock-integration.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/ocr-integration.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/openspec-cli.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-context-governance.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-fanout-contracts.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-gstack-integration.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-standards-preflight.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/reading-v2-slice-results.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/refactor-workflow.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/v2-12-fanout-collapse.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/writing-handoff-frontmatter.md +0 -0
- /package/skills/{peaks-reviewer → bee/peaks-reviewer}/references/reviewer-prompt.md +0 -0
- /package/skills/{peaks-reviewer → bee/peaks-reviewer}/references/reviewer-schema.md +0 -0
- /package/skills/{peaks-sc → bee/peaks-sc}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-sc → bee/peaks-sc}/references/artifact-retention.md +0 -0
- /package/skills/{peaks-sc → bee/peaks-sc}/references/command-migration.md +0 -0
- /package/skills/{peaks-sc → bee/peaks-sc}/references/openspec-commit-boundaries.md +0 -0
- /package/skills/{peaks-security-audit → bee/peaks-security-audit}/SKILL.md +0 -0
- /package/skills/{peaks-security-audit → bee/peaks-security-audit}/references/audit-protocol.md +0 -0
- /package/skills/{peaks-txt → bee/peaks-txt}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-txt → bee/peaks-txt}/references/command-migration.md +0 -0
- /package/skills/{peaks-txt → bee/peaks-txt}/references/context-capsule.md +0 -0
- /package/skills/{peaks-ui → bee/peaks-ui}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-ui → bee/peaks-ui}/references/artifact-per-request.md +0 -0
- /package/skills/{peaks-ui → bee/peaks-ui}/references/command-migration.md +0 -0
- /package/skills/{peaks-ui → bee/peaks-ui}/references/workflow.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/boundaries.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/checkpoint-resume.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/codegraph-orchestration.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/cross-date-session-check.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/dag-orchestrator.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/envelope-contract.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/existing-system-extraction.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/external-references.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/external-skill-invocation.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/fanout-mandatory.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/fast-mode.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/gstack-integration.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/headroom-integration.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/job-loop.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/periodic-checkpoint.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/playwright-mcp-multi-terminal.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/project-memory-loading.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/quality-gate-cheatsheet.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/step-0-8-gate.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/workflow.md +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# sub-agent-dispatch.md — peaks sub-agent dispatch orchestrator contract
|
|
2
2
|
|
|
3
3
|
> **Slice**: 2026-06-07-sub-agent-dispatch-decouple (G3 + G6)
|
|
4
|
-
> **Audience**: SKILL.md authors and LLM readers of peaks-
|
|
4
|
+
> **Audience**: SKILL.md authors and LLM readers of peaks-code / peaks-rd / peaks-qa
|
|
5
5
|
> **Status**: stable
|
|
6
6
|
|
|
7
7
|
This reference is the orchestrator-side contract for sub-agent dispatch.
|
|
@@ -20,7 +20,7 @@ the skills compose. For sub-agent dispatch the relationship is:
|
|
|
20
20
|
|
|
21
21
|
| Surface | Who owns | What it does | Who calls it |
|
|
22
22
|
|---|---|---|---|
|
|
23
|
-
| SKILL.md (主面) | peaks-
|
|
23
|
+
| SKILL.md (主面) | peaks-code, peaks-rd, peaks-qa | Tells the LLM when and why to dispatch a sub-agent; what prompt to pass; what artifacts to expect back | LLM (during normal Solo / RD / QA flow) |
|
|
24
24
|
| CLI (副 / 原子) | `peaks sub-agent dispatch` | Validates the role, looks up the current IDE's `subAgentDispatcher`, returns a per-IDE tool-call descriptor + writes a dispatch record | LLM (read from the SKILL.md) |
|
|
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
|
|
|
@@ -157,7 +157,7 @@ system is dead. G6 is the rule that says: **no**.
|
|
|
157
157
|
| Layer | Who | What | Cadence |
|
|
158
158
|
|---|---|---|---|
|
|
159
159
|
| **Sub-agent writes** | The sub-agent itself | Calls `peaks sub-agent heartbeat --record <dispatchRecordPath> --status <state> --progress <pct> --note "<text>"` to append a heartbeat | 30 s default; SKILL.md can override via `heartbeatIntervalSec: 15` |
|
|
160
|
-
| **Dispatcher reads** | peaks-
|
|
160
|
+
| **Dispatcher reads** | peaks-code main loop, during the batch-sync wait | In-process async poller (`BatchHeartbeatPoller`) reads `heartbeats[]` + `lastBeatAt` from each record, emits a single-line status per G6.5 | 10 s (offset from 30 s to avoid jitter) |
|
|
161
161
|
| **User / CLI reads** | Anyone, anytime | `peaks sub-agent list --session-id <sid> --json` (G5 RL-10, future slice) | manual |
|
|
162
162
|
|
|
163
163
|
### Sub-agent prompt template (heartbeat-aware + MCP-decoupled)
|
|
@@ -207,10 +207,10 @@ add it explicitly.
|
|
|
207
207
|
Single line, 80-120 chars:
|
|
208
208
|
|
|
209
209
|
```
|
|
210
|
-
[peaks-
|
|
211
|
-
[peaks-
|
|
210
|
+
[peaks-code] swarm 3/3 running | rd-planning 45% (12s ago) | qa-test-cases 30% (5s ago) | ui-design 20% (2s ago)
|
|
211
|
+
[peaks-code] swarm 3/3 running | rd-planning 70% (8s ago) | qa-test-cases 50% (3s ago) | ui-design 30% (6s ago)
|
|
212
212
|
...
|
|
213
|
-
[peaks-
|
|
213
|
+
[peaks-code] swarm 3/3 done
|
|
214
214
|
```
|
|
215
215
|
|
|
216
216
|
If a sub-agent has not written a heartbeat in 5 minutes, the poller
|
|
@@ -231,7 +231,7 @@ once the poller has read them.
|
|
|
231
231
|
|
|
232
232
|
- AC-33 `peaks sub-agent heartbeat` CLI primitive (implemented)
|
|
233
233
|
- AC-34 Dispatch record schema upgrade (`heartbeats[]` + `lastBeatAt` + `status` aggregate, backward-compat defaults)
|
|
234
|
-
- AC-35 peaks-
|
|
234
|
+
- AC-35 peaks-code main loop batch-sync poller (10 s cadence, 5 min stale)
|
|
235
235
|
- AC-36 SKILL.md fan-out sections include heartbeat instruction
|
|
236
236
|
- AC-37 G6 E2E dogfood (3 heartbeats, 101 → truncated, stale simulation)
|
|
237
237
|
|
|
@@ -243,7 +243,7 @@ once the poller has read them.
|
|
|
243
243
|
- AC-10: dispatch CLI unit tests
|
|
244
244
|
- AC-11 / AC-11b / AC-11c: E2E dogfood on the live repo
|
|
245
245
|
- AC-12: `peaks --help` byte-level delta is `+1` line (`sub-agent <cmd>`)
|
|
246
|
-
- AC-13..AC-19: SKILL.md fan-out rewrites (peaks-
|
|
246
|
+
- AC-13..AC-19: SKILL.md fan-out rewrites (peaks-code 5 spots, peaks-rd 2, peaks-qa 3-way, peaks-ui 1; this reference is the canonical contract)
|
|
247
247
|
- AC-22..AC-24: R-2 path guard, prompt size limit, atomic write
|
|
248
248
|
- AC-25..AC-32: G5 resource lifecycle (RL-1 batch counter, dispatch record schema, reducer dispose, slice archive, cancel dispose)
|
|
249
249
|
- AC-33..AC-37: G6 heartbeat CLI, schema, poller, status line, E2E
|
|
@@ -271,7 +271,7 @@ When writing a SKILL.md that fans out sub-agents:
|
|
|
271
271
|
- RD request #009 in-scope files (implementation contract)
|
|
272
272
|
- `.peaks/memory/sub-agent-resource-lifecycle-red-line.md` (G5 red line)
|
|
273
273
|
- `.peaks/memory/sub-agent-heartbeat-progress-red-line.md` (G6 red line)
|
|
274
|
-
- `skills/peaks-
|
|
274
|
+
- `skills/peaks-code/references/swarm-dispatch-contract.md` (predecessor contract)
|
|
275
275
|
- `skills/peaks-qa/references/qa-fanout-contract.md` (QA-specific fan-out)
|
|
276
276
|
|
|
277
277
|
---
|
|
@@ -330,5 +330,5 @@ The role's required artefact paths (also see peaks-ui/rd/qa SKILL.md and `refere
|
|
|
330
330
|
After every sub-agent dispatch returns, Solo **restores presence** once (not per-agent), then continues to Gate B verification:
|
|
331
331
|
|
|
332
332
|
```bash
|
|
333
|
-
peaks skill presence:set peaks-
|
|
333
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate swarm-converged
|
|
334
334
|
```
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Swarm dispatch contract
|
|
2
2
|
|
|
3
|
-
> Reference for `peaks-
|
|
3
|
+
> Reference for `peaks-code` 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
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-
|
|
9
|
+
> fan-out rule** in `skills/peaks-code/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
|
|
@@ -31,7 +31,7 @@ The previous "Swarm" used `Skill(skill="peaks-rd")` calls. That is **single-stac
|
|
|
31
31
|
This contract (slice #009) replaces the IDE-private sub-agent literal with the IDE-agnostic primitive `peaks sub-agent dispatch <role>`. The CLI returns a JSON `data.toolCall` descriptor; the LLM executes that tool in its own environment. SKILL.md is now free of IDE-private tool names and the same prompt works on every registered IDE. Real concurrent fan-out is achieved by Solo launching N dispatch calls in a single message and the platform scheduling the returned toolCalls concurrently.
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
You are a sub-agent invoked by peaks-
|
|
34
|
+
You are a sub-agent invoked by peaks-code. You are NOT the main Claude session.
|
|
35
35
|
Your job: execute ONE role from the peaks skill family and write its artefact(s).
|
|
36
36
|
Return a compact JSON envelope — do not write prose.
|
|
37
37
|
|
|
@@ -150,7 +150,7 @@ After all sub-agent dispatch calls return and the LLM has invoked the toolCalls,
|
|
|
150
150
|
|
|
151
151
|
1. Restores presence ONCE (not per-agent):
|
|
152
152
|
```
|
|
153
|
-
peaks skill presence:set peaks-
|
|
153
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate swarm-converged
|
|
154
154
|
```
|
|
155
155
|
2. Runs `ls` checks against `sc/swarm-plan.json` — every promised artefact must exist (Gate B hard). If any are missing, apply the degradation rules in "Degradation when swarm roles fail or are absent" (main SKILL.md).
|
|
156
156
|
3. Updates `sc/swarm-plan.json` with the final status of each sub-agent (ok / blocked / skipped / error).
|
|
@@ -158,20 +158,20 @@ 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-Loop Skill: 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-code | 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
|
|
|
165
165
|
## 6. Why not a `peaks-swarm` skill?
|
|
166
166
|
|
|
167
|
-
A skill cannot itself trigger sub-agents — the Skill tool runs in the main loop. The orchestrator (peaks-
|
|
167
|
+
A skill cannot itself trigger sub-agents — the Skill tool runs in the main loop. The orchestrator (peaks-code) has to be in the main loop and has to call `peaks sub-agent dispatch` directly. Putting swarm logic into a separate skill would either re-introduce the "single-stack blocking" anti-pattern or require a custom slash command that bypasses the Skill tool. The current design keeps swarm control in peaks-code where it belongs.
|
|
168
168
|
|
|
169
169
|
## 7. Tests / dogfood
|
|
170
170
|
|
|
171
171
|
- `peaks scan archetype --project <repo> --json` must keep emitting `frontendOnly` and `frontendOnlyReason`. Both fields are read here and by the existing pre-RD scan contract.
|
|
172
172
|
- `peaks request show <rid> --role prd --json` must surface the `--type` chosen at `peaks request init`. Sub-agents pass it through unchanged.
|
|
173
173
|
- `peaks skill presence:set` must remain single-writer-friendly (the sub-agents do not call it).
|
|
174
|
-
- Smoke test: a full-auto peaks-
|
|
174
|
+
- Smoke test: a full-auto peaks-code run on a `legacy-frontend` project with a UI-affecting PRD should produce `sc/swarm-plan.json` containing all three sub-agents and three corresponding artefacts in `ui/`, `rd/`, `qa/`.
|
|
175
175
|
|
|
176
176
|
---
|
|
177
177
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Peaks-Loop Workflow Order + Request Type Classification + Transition Verification Gates
|
|
2
2
|
|
|
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-
|
|
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-code 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
7
|
> **How peaks-loop tooling reads this file**:
|
|
8
|
-
> - `peaks skill runbook peaks-
|
|
8
|
+
> - `peaks skill runbook peaks-code` (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
11
|
## Peaks-Loop Request type classification (MANDATORY before `peaks request init`)
|
|
@@ -170,7 +170,7 @@ find . -maxdepth 1 -name "*.png" -o -name "*.jpg" -o -name "qa-*.js" -o -name "m
|
|
|
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
|
|
173
|
-
# subsequent peaks-rd / peaks-qa / peaks-
|
|
173
|
+
# subsequent peaks-rd / peaks-qa / peaks-code runs perform the project-local
|
|
174
174
|
# preflight described in CLAUDE.md (read coding-style.md, code-review.md, security.md).
|
|
175
175
|
ls <repo>/CLAUDE.md
|
|
176
176
|
# "No such file" → BLOCKED. Run `peaks standards init --project <repo> --apply --json`
|
|
@@ -22,7 +22,7 @@ The doctor workflow is read-only by design. It produces:
|
|
|
22
22
|
- `peaks doctor` report (69 checks: 68 pass, 1 fail — L3:l3-memory-health)
|
|
23
23
|
- Optional OpenSpec change records via `peaks openspec from-doctor`
|
|
24
24
|
|
|
25
|
-
If a doctor finding requires a code change, the workflow hands off to `peaks-rd` (or `peaks-
|
|
25
|
+
If a doctor finding requires a code change, the workflow hands off to `peaks-rd` (or `peaks-code` for the full pipeline). The doctor itself does NOT modify code.
|
|
26
26
|
|
|
27
27
|
## Workflow (5 steps)
|
|
28
28
|
|
|
@@ -24,7 +24,7 @@ Slice L3.2 ships 69 doctor checks. The most user-relevant ones:
|
|
|
24
24
|
|
|
25
25
|
## Skills
|
|
26
26
|
|
|
27
|
-
- **`skill:<required-skill>`** — each required skill (peaks-ide, peaks-prd, peaks-rd, peaks-qa, peaks-sc, peaks-
|
|
27
|
+
- **`skill:<required-skill>`** — each required skill (peaks-ide, peaks-prd, peaks-rd, peaks-qa, peaks-sc, peaks-code, peaks-sop, peaks-txt, peaks-ui, peaks-doctor) must be installed in the bundled skills dir
|
|
28
28
|
|
|
29
29
|
## Doctor self
|
|
30
30
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: peaks-final-review
|
|
3
|
-
description: Final-review skill for Peaks. Use when a workflow needs to assemble 4-dimension business-review evidence (functional-completeness, problem-resolution, no-new-bugs, existing-functionality-intact) for human acceptance at the end of an autonomous slice. Triggers on "/peaks-final-review", "prepare final review", "4-dim review", or peaks-
|
|
3
|
+
description: Final-review skill for Peaks. Use when a workflow needs to assemble 4-dimension business-review evidence (functional-completeness, problem-resolution, no-new-bugs, existing-functionality-intact) for human acceptance at the end of an autonomous slice. Triggers on "/peaks-final-review", "prepare final review", "4-dim review", or peaks-code end-of-workflow handoff.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Single-scope-axis naming convention
|
|
@@ -66,7 +66,7 @@ If any precondition is missing, **STOP** and route back to the responsible skill
|
|
|
66
66
|
### Current call path (today, until a CLI wrapper is built)
|
|
67
67
|
|
|
68
68
|
```ts
|
|
69
|
-
// peaks-
|
|
69
|
+
// peaks-code end-of-workflow, peaks-txt, or any other hand-rolled caller
|
|
70
70
|
import { prepareFinalReview } from './src/services/final-review/final-review-service.js';
|
|
71
71
|
import { auditGoalLlmRunner } from './src/services/audit/llm-runner.js'; // or your provider
|
|
72
72
|
|
|
@@ -85,7 +85,7 @@ const out = await prepareFinalReview('<rid>', {
|
|
|
85
85
|
peaks prepare-final-review --rid <rid> [--session-id <sid>] --json
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
-
`--rid` is required and resolves to `.peaks/_runtime/<sessionId>/audit-goal/<rid>.json`. `--json` is required for machine consumption (peaks-
|
|
88
|
+
`--rid` is required and resolves to `.peaks/_runtime/<sessionId>/audit-goal/<rid>.json`. `--json` is required for machine consumption (peaks-code, peaks-txt, downstream CI). The wrapper will resolve `--session-id` from `.peaks/_runtime/current-change` when omitted, matching the workspace binding pattern used by `peaks request *`.
|
|
89
89
|
|
|
90
90
|
## Output
|
|
91
91
|
|
|
@@ -107,7 +107,7 @@ A pre/post baseline diff shows no unintended drift in the test surface, public A
|
|
|
107
107
|
The service contract (`src/services/final-review/final-review-service.ts:23-31` and `:88-93`):
|
|
108
108
|
|
|
109
109
|
- `allPass === true` iff every dimension's `verdict === 'pass'`.
|
|
110
|
-
- `needsAttention` is the list of dimension names whose verdict is `fail` or `inconclusive`. The LLM does NOT need to populate it — the service enforces presence of all 4 dimensions and the human-facing summarizer (in peaks-
|
|
110
|
+
- `needsAttention` is the list of dimension names whose verdict is `fail` or `inconclusive`. The LLM does NOT need to populate it — the service enforces presence of all 4 dimensions and the human-facing summarizer (in peaks-code or peaks-txt) computes `needsAttention` for display.
|
|
111
111
|
- An `IncompleteFinalReviewError` is thrown when JSON is malformed or any required dimension is missing. That is a **gate failure**, not a `fail` verdict — the LLM call is invalid and must be re-prompted, not surfaced to the human.
|
|
112
112
|
|
|
113
113
|
## Confidence and what it means
|
|
@@ -128,7 +128,7 @@ The audit log is **machine-readable** (so `peaks project dashboard` can read it
|
|
|
128
128
|
- introduce new `peaks <cmd>` CLI commands (dev-preference red line: "Default-no on new CLI commands")
|
|
129
129
|
- bypass the user's confirmation on destructive paths (Switch / Uninstall)
|
|
130
130
|
- write the settings.json directly (the CLI primitives own that)
|
|
131
|
-
- run other peaks skills (peaks-
|
|
131
|
+
- run other peaks skills (peaks-code, peaks-qa, etc.) — those are separate skills with their own scopes
|
|
132
132
|
- handle multi-IDE scenarios in slice #2 (e.g. "I use Claude at work and Trae at home" — the registry is single-IDE per session; a future slice could add multi-IDE)
|
|
133
133
|
|
|
134
134
|
## Reference: the CLI primitives the skill composes
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: peaks-
|
|
3
|
-
description:
|
|
2
|
+
name: peaks-resume
|
|
3
|
+
description: Universal resume primitive for any in-flight Peaks-Loop workflow (orchestrator-agnostic). Detects the current session's deepest completed gate and surfaces a resume option via AskUserQuestion. Use when ANY bee (peaks-code, future peaks-research, future peaks-content, …) needs to recover from /compact or session interruption. Triggers on "/peaks-resume", "continue the unfinished work", "继续完成", "把刚才没做完的收尾". (Replaces peaks-resume as a top-level primitive.)
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Peaks-Loop Solo Resume (wrapper)
|
|
7
7
|
|
|
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-
|
|
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-code` skill (which runs the actual workflow from the matching gate onwards).
|
|
9
9
|
|
|
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-
|
|
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-code`. 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
|
|
|
12
12
|
## Skill presence (MANDATORY first action)
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
peaks skill presence:set peaks-
|
|
15
|
+
peaks skill presence:set peaks-resume --project <repo> --mode <mode> --gate startup
|
|
16
16
|
peaks project memories --project <repo> --json # load durable memory
|
|
17
17
|
```
|
|
18
18
|
|
|
@@ -32,15 +32,15 @@ bash tests/fixtures/skill-resume-mode-detect.sh "$sid" .peaks
|
|
|
32
32
|
|
|
33
33
|
## Step 2: Branch on the detection
|
|
34
34
|
|
|
35
|
-
**If `fresh`**: no in-flight slice. Tell the user "No in-flight slice in this session." Then hand off to `peaks-
|
|
35
|
+
**If `fresh`**: no in-flight slice. Tell the user "No in-flight slice in this session." Then hand off to `peaks-code` for a fresh start (set presence back, then run `peaks workspace init --project <repo> --json` and continue with Step 1 of `peaks-code`).
|
|
36
36
|
|
|
37
|
-
**If `complete`**: the workflow is already done. Tell the user "This session is complete — your previous slice already shipped." Then suggest a fresh start (`peaks-
|
|
37
|
+
**If `complete`**: the workflow is already done. Tell the user "This session is complete — your previous slice already shipped." Then suggest a fresh start (`peaks-code`) or close-out.
|
|
38
38
|
|
|
39
39
|
**If `resume:<gate>`**: surface a resume option via `AskUserQuestion`:
|
|
40
40
|
|
|
41
41
|
| Option | What it does |
|
|
42
42
|
|---|---|
|
|
43
|
-
| Resume from `<gate>` (Recommended) | Hand off to `peaks-
|
|
43
|
+
| Resume from `<gate>` (Recommended) | Hand off to `peaks-code` with the gate already at the matching point. The main loop skips ahead; the existing artifacts are preserved as-is. |
|
|
44
44
|
| Start a fresh slice | Treat the current request as a new slice (new `rid`). Existing artifacts are preserved but not auto-resumed. |
|
|
45
45
|
| Abandon the in-flight slice | Mark the in-flight slice as `deferred` (`peaks request transition <rid> --role rd --state deferred --reason "user abandoned"`) and start fresh. |
|
|
46
46
|
|
|
@@ -50,21 +50,21 @@ bash tests/fixtures/skill-resume-mode-detect.sh "$sid" .peaks
|
|
|
50
50
|
|
|
51
51
|
Use `AskUserQuestion` with a single option (Confirm and resume from `<state>`). Do NOT auto-resume mid-implementation.
|
|
52
52
|
|
|
53
|
-
## Step 3: Hand off to peaks-
|
|
53
|
+
## Step 3: Hand off to peaks-code
|
|
54
54
|
|
|
55
|
-
After the user confirms, **re-assert `peaks-
|
|
55
|
+
After the user confirms, **re-assert `peaks-code` presence** so the status header reads correctly for the rest of the run:
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
peaks skill presence:set peaks-
|
|
58
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate <matching-gate>
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
Then tell the user: "Resuming from `<gate>`. The main peaks-
|
|
61
|
+
Then tell the user: "Resuming from `<gate>`. The main peaks-code skill will take over from there." and yield control. The user's next message will land in the `peaks-code` main loop, which will pick up the workflow from the matching gate.
|
|
62
62
|
|
|
63
63
|
## Hard rules (do NOT skip)
|
|
64
64
|
|
|
65
65
|
- **Never silently auto-resume.** Always use `AskUserQuestion` first. The detection is a discovery; the user's confirmation is the gate.
|
|
66
66
|
- **Never auto-resume mid-implementation.** For `in-flight:<state>`, the only valid option is "Confirm and resume from `<state>`" — never "Start a fresh slice" or "Abandon" without the user's explicit choice.
|
|
67
|
-
- **Never write code or modify files in this skill.** This is a wrapper. The actual work (PRD, RD, QA, SC, TXT) is the main `peaks-
|
|
67
|
+
- **Never write code or modify files in this skill.** This is a wrapper. The actual work (PRD, RD, QA, SC, TXT) is the main `peaks-code` skill's job.
|
|
68
68
|
- **Never add a new `peaks <cmd>`.** Use the existing CLI primitives: `peaks workspace init`, `peaks project dashboard`, `peaks session list`, `peaks skill runbook`, `peaks skill doctor`, `peaks scan archetype`, `peaks request transition`. The detection script (`tests/fixtures/skill-resume-mode-detect.sh`) is the only executable this skill invokes.
|
|
69
69
|
|
|
70
70
|
## Anti-patterns (do NOT do)
|
|
@@ -77,5 +77,5 @@ Then tell the user: "Resuming from `<gate>`. The main peaks-solo skill will take
|
|
|
77
77
|
## Cross-references
|
|
78
78
|
|
|
79
79
|
- The detection logic is canonical at `tests/fixtures/skill-resume-mode-detect.sh` (added in slice 003). The 8 vitest cases in `tests/unit/skill-resume-mode.test.ts` cover all classification outcomes.
|
|
80
|
-
- The SKILL.md prose at `skills/peaks-
|
|
80
|
+
- The SKILL.md prose at `skills/peaks-code/SKILL.md` Step 0.7 (added in slice 003) is the same logic, written for LLM consumption. This wrapper reuses the same script — there is no parallel implementation.
|
|
81
81
|
- The "drives a CLI on the user's behalf" pattern (mirror of `peaks-sop`) is the closest existing precedent for this wrapper.
|
|
@@ -39,7 +39,7 @@ real process.
|
|
|
39
39
|
|
|
40
40
|
If the user invoked this skill directly ("peaks-sop") without mentioning a
|
|
41
41
|
specific project, assume `--project .` (current directory). If they are NOT in
|
|
42
|
-
the middle of a multi-skill peaks-
|
|
42
|
+
the middle of a multi-skill peaks-code/prd/rd/qa pipeline, skip `statusline
|
|
43
43
|
install` — the status bar is for long-running orchestrations; a standalone SOP
|
|
44
44
|
authoring session does not need it.
|
|
45
45
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: peaks-
|
|
3
|
-
description:
|
|
2
|
+
name: peaks-status
|
|
3
|
+
description: Universal status primitive for any in-flight Peaks-Loop workflow (orchestrator-agnostic). Reads the existing CLI primitives (peaks skill presence, peaks session list, peaks project dashboard, peaks request show) and renders a 1-screen status table. Use when the user asks "where are we", "现在到哪了", "what's the current state" for ANY bee (peaks-code, future peaks-research, …). Triggers on "/peaks-status", "现在到哪了", "what is the current state", "show me the dashboard". (Replaces peaks-status as a top-level primitive.)
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Peaks-Loop Solo Status (wrapper)
|
|
7
7
|
|
|
8
|
-
Peaks-Loop Solo Status is a thin wrapper that renders a compact status table for the current peaks-
|
|
8
|
+
Peaks-Loop Solo Status is a thin wrapper that renders a compact status table for the current peaks-code orchestrator state. It is the answer to "I just want to know where we are" — no PRD, no RD, no QA, no full peaks-code orchestration. Just read the existing CLI state and render a 1-screen summary.
|
|
9
9
|
|
|
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-
|
|
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-code` if the user wants to act on the status).
|
|
11
11
|
|
|
12
12
|
## Skill presence (MANDATORY first action)
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
peaks skill presence:set peaks-
|
|
15
|
+
peaks skill presence:set peaks-status --project <repo> --mode <mode> --gate startup
|
|
16
16
|
peaks project memories --project <repo> --json # load durable memory
|
|
17
17
|
```
|
|
18
18
|
|
|
@@ -51,9 +51,9 @@ All 6 calls are read-only. Total cost: sub-second. (The original draft said "5 c
|
|
|
51
51
|
Compact 1-screen format:
|
|
52
52
|
|
|
53
53
|
```
|
|
54
|
-
=== peaks-
|
|
54
|
+
=== peaks-code status ===
|
|
55
55
|
Session: 2026-06-04-session-b60252
|
|
56
|
-
Active: peaks-
|
|
56
|
+
Active: peaks-code (mode: full-auto, gate: qa-validation)
|
|
57
57
|
Workspace: /Users/yuanyuan/.../peaks-loop/.peaks/2026-06-04-session-b60252
|
|
58
58
|
|
|
59
59
|
| Role | State | Artifact |
|
|
@@ -72,9 +72,9 @@ Health: skill-doctor 35/35 pass
|
|
|
72
72
|
If the session is fresh (no in-flight slice), render a different layout:
|
|
73
73
|
|
|
74
74
|
```
|
|
75
|
-
=== peaks-
|
|
75
|
+
=== peaks-code status ===
|
|
76
76
|
Session: 2026-06-04-session-b60252
|
|
77
|
-
Active: peaks-
|
|
77
|
+
Active: peaks-code (mode: full-auto, gate: startup)
|
|
78
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.
|
|
@@ -85,16 +85,16 @@ Health: skill-doctor 35/35 pass
|
|
|
85
85
|
|
|
86
86
|
| Option | What it does |
|
|
87
87
|
|---|---|
|
|
88
|
-
| Continue from the current gate | Hand off to `peaks-
|
|
88
|
+
| Continue from the current gate | Hand off to `peaks-code` with the gate already at the current state. Existing artifacts are preserved. |
|
|
89
89
|
| Open a new slice in this session | Keep the workspace, treat the current request as a new slice (new `rid`). |
|
|
90
90
|
| Just summarize and exit | No further action; the user will decide later. |
|
|
91
91
|
|
|
92
92
|
## Step 4: Hand off (if user picked option 1 or 2)
|
|
93
93
|
|
|
94
|
-
Re-assert `peaks-
|
|
94
|
+
Re-assert `peaks-code` presence so the status header reads correctly for the rest of the run:
|
|
95
95
|
|
|
96
96
|
```bash
|
|
97
|
-
peaks skill presence:set peaks-
|
|
97
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate <matching-gate>
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
Then yield control.
|
|
@@ -116,5 +116,5 @@ Then yield control.
|
|
|
116
116
|
## Cross-references
|
|
117
117
|
|
|
118
118
|
- The "drives a CLI on the user's behalf" pattern (mirror of `peaks-sop`) is the closest existing precedent.
|
|
119
|
-
- `peaks-
|
|
119
|
+
- `peaks-resume` (P2.1) and `peaks-test` (P2.2) are the sibling wrappers. `peaks-resume` focuses on workflow-state introspection + resume decision; `peaks-status` is the broader 5-CLI snapshot. The two are complementary, not redundant.
|
|
120
120
|
- The "read 5 CLI primitives, render 1 table" pattern is intentionally minimal — the wrapper does NOT add a new status-introspection CLI command (would violate the dev-preference.md "default-no on new CLI" rule).
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: peaks-
|
|
3
|
-
description:
|
|
2
|
+
name: peaks-test
|
|
3
|
+
description: Universal test-runner primitive for any in-flight Peaks-Loop workflow (orchestrator-agnostic). Runs the project's test suite on the current repo and reports results. Use when the user asks "run the tests", "跑一下 test", "跑测试" for ANY bee (peaks-code, future peaks-research, …). Triggers on "/peaks-test", "跑一下 test", "跑测试", "run the tests", "test now". (Replaces peaks-test as a top-level primitive.)
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Peaks-Loop Solo Test (wrapper)
|
|
7
7
|
|
|
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-
|
|
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-code orchestration. Just `pnpm vitest run` and a compact summary.
|
|
9
9
|
|
|
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-
|
|
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-code` if the user wants to act on the result).
|
|
11
11
|
|
|
12
12
|
## Skill presence (MANDATORY first action)
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
peaks skill presence:set peaks-
|
|
15
|
+
peaks skill presence:set peaks-test --project <repo> --mode <mode> --gate startup
|
|
16
16
|
peaks project memories --project <repo> --json # load durable memory
|
|
17
17
|
```
|
|
18
18
|
|
|
@@ -50,23 +50,23 @@ Then ask the user what they want to do next via `AskUserQuestion`:
|
|
|
50
50
|
| Option | What it does |
|
|
51
51
|
|---|---|
|
|
52
52
|
| Show the full failure list | Print all failing test names + messages (not just the first 5-10) |
|
|
53
|
-
| Open a slice to fix the failures | Hand off to `peaks-
|
|
53
|
+
| Open a slice to fix the failures | Hand off to `peaks-code` with the failing tests as the slice's "acceptance criteria" |
|
|
54
54
|
| Just summarize and exit | No further action; the user will decide later |
|
|
55
55
|
|
|
56
56
|
## Step 4: Hand off (if user picked option 2)
|
|
57
57
|
|
|
58
|
-
Re-assert `peaks-
|
|
58
|
+
Re-assert `peaks-code` presence so the status header reads correctly for the rest of the run:
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
peaks skill presence:set peaks-
|
|
61
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate qa-validation
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
Then yield control. The user's next message will land in `peaks-
|
|
64
|
+
Then yield control. The user's next message will land in `peaks-code` (in QA validation phase, since the failing tests are the validation surface).
|
|
65
65
|
|
|
66
66
|
## Hard rules (do NOT skip)
|
|
67
67
|
|
|
68
68
|
- **Never silently fix test failures.** The user must choose what to do via `AskUserQuestion`. Silently "auto-fix"ing a failing test would mask the failure.
|
|
69
|
-
- **Never modify source code in this skill.** This is a wrapper. The actual fix (if the user wants one) is `peaks-
|
|
69
|
+
- **Never modify source code in this skill.** This is a wrapper. The actual fix (if the user wants one) is `peaks-code`'s job.
|
|
70
70
|
- **Never add a new `peaks <cmd>`.** Use only existing primitives: `peaks skill presence:set`, `peaks project memories`, `peaks workspace init` (for the handoff), `peaks request transition` (if going to QA-validation). The actual test command is the project's existing test runner, not a `peaks <cmd>`.
|
|
71
71
|
- **Never trust the test runner's exit code as the only signal.** Some failures print partial success (e.g. 100 passed + 1 failed); the wrapper must show the failures, not just say "exit 0".
|
|
72
72
|
|
|
@@ -80,5 +80,5 @@ Then yield control. The user's next message will land in `peaks-solo` (in QA val
|
|
|
80
80
|
## Cross-references
|
|
81
81
|
|
|
82
82
|
- The "drives a CLI on the user's behalf" pattern (mirror of `peaks-sop`) is the closest existing precedent.
|
|
83
|
-
- `peaks-
|
|
83
|
+
- `peaks-resume` (sibling wrapper, P2.1) is the workflow-state introspection variant; `peaks-test` is the test-execution variant.
|
|
84
84
|
- The "harness a project-native test runner" pattern is intentionally minimal — the wrapper should NOT add a new CLI for running tests (would violate the dev-preference.md "default-no on new CLI" rule + the user's explicit ask for "skill-first, CLI-auxiliary").
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|