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,6 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: peaks-ui
|
|
3
|
-
description:
|
|
3
|
+
description: |
|
|
4
|
+
UI and experience role for Peaks-Loop (LLM-only internal role; not user-invocable.
|
|
5
|
+
Triggered by peaks-code via `peaks sub-agent dispatch --role ui`.)
|
|
6
|
+
Use when a workflow touches UI/UX, interaction design, visual direction, design systems,
|
|
7
|
+
frontend page behavior, high-fidelity HTML prototypes, or UI regression seeds.
|
|
8
|
+
visibility: internal
|
|
9
|
+
---
|
|
4
10
|
---
|
|
5
11
|
|
|
6
12
|
# Peaks-Loop UI
|
|
@@ -26,9 +32,9 @@ find . -maxdepth 1 -name '*.png' 2>&1
|
|
|
26
32
|
|
|
27
33
|
UI inherits `peaks-qa`'s hard-block contract: `AskUserQuestion` with three options (logged in / skip / cancel); no silent downgrade, no DOM-state inference.
|
|
28
34
|
|
|
29
|
-
## Sub-agent dispatch (when launched by peaks-
|
|
35
|
+
## Sub-agent dispatch (when launched by peaks-code swarm)
|
|
30
36
|
|
|
31
|
-
When this skill is launched as a sub-agent via `peaks sub-agent dispatch <role>` from `peaks-
|
|
37
|
+
When this skill is launched as a sub-agent via `peaks sub-agent dispatch <role>` from `peaks-code`, these sections are **suspended** for the sub-agent run:
|
|
32
38
|
|
|
33
39
|
- **Session id** — use parent's sid (`.peaks/_runtime/session.json` or `--session-id <parent-sid>`). Do NOT spawn your own session; `peaks session info --active` reads the canonical binding.
|
|
34
40
|
- **Skill presence** — do NOT call `peaks skill presence:set peaks-ui`; Solo owns `.peaks/.active-skill.json`. Marker file at `.peaks/_runtime/<session-id>/system/sub-agent-ui.json` only.
|
|
@@ -217,7 +223,7 @@ Use gstack as a design-review workflow reference for the `Plan → Review → Te
|
|
|
217
223
|
- map browser walkthrough concepts to UI regression seeds when runtime validation is approved;
|
|
218
224
|
- keep accessibility, performance, and visual direction as Peaks-Loop UI acceptance inputs.
|
|
219
225
|
|
|
220
|
-
For frontend work, especially full-auto mode, use the Playwright MCP to inspect the running page or prototype before accepting the UI direction. The LLM checks its own tool list for any Playwright MCP entry in the LLM tool list; if present, it invokes the tools by name directly (browser_navigate / browser_snapshot / browser_take_screenshot / browser_console_messages / browser_network_requests / browser_close) — no peaks-loop envelope. Playwright MCP launches a headed browser on demand; if the tool list is empty, the user installs via `claude mcp add playwright -- npx @playwright/mcp@latest` (Claude Code) or the IDE's own MCP install path. (Chrome DevTools MCP is a secondary surface that connects to an already-running Chrome via `--remote-debugging-port=9222`; it does NOT launch a browser on its own.) If login, CAPTCHA, SSO, or MFA appears, the visible browser is already open; wait for the user to complete login and explicitly confirm completion before continuing. Capture only sanitized visible regressions as UI feedback for design/RD; do not retain login URLs, cookies, headers, tokens, storage state, browser traces, or screenshots/logs containing PII or SSO/MFA material. Canonical browser workflow: `peaks-
|
|
226
|
+
For frontend work, especially full-auto mode, use the Playwright MCP to inspect the running page or prototype before accepting the UI direction. The LLM checks its own tool list for any Playwright MCP entry in the LLM tool list; if present, it invokes the tools by name directly (browser_navigate / browser_snapshot / browser_take_screenshot / browser_console_messages / browser_network_requests / browser_close) — no peaks-loop envelope. Playwright MCP launches a headed browser on demand; if the tool list is empty, the user installs via `claude mcp add playwright -- npx @playwright/mcp@latest` (Claude Code) or the IDE's own MCP install path. (Chrome DevTools MCP is a secondary surface that connects to an already-running Chrome via `--remote-debugging-port=9222`; it does NOT launch a browser on its own.) If login, CAPTCHA, SSO, or MFA appears, the visible browser is already open; wait for the user to complete login and explicitly confirm completion before continuing. Capture only sanitized visible regressions as UI feedback for design/RD; do not retain login URLs, cookies, headers, tokens, storage state, browser traces, or screenshots/logs containing PII or SSO/MFA material. Canonical browser workflow: `peaks-code/references/browser-workflow.md`.
|
|
221
227
|
|
|
222
228
|
## Prototype fidelity gate (MANDATORY — check BEFORE any design work)
|
|
223
229
|
|
|
@@ -344,7 +350,7 @@ Do not own backend architecture, non-UI implementation, runtime hook installatio
|
|
|
344
350
|
|
|
345
351
|
## Sub-agent context governance (slice #010)
|
|
346
352
|
|
|
347
|
-
UI sub-agents follow the same G7 metadata-only + G8.6 share protocol. UI artifacts are large binary-ish; the 1MB artifact size limit (G7.3) applies. Detailed: `skills/peaks-
|
|
353
|
+
UI sub-agents follow the same G7 metadata-only + G8.6 share protocol. UI artifacts are large binary-ish; the 1MB artifact size limit (G7.3) applies. Detailed: `skills/peaks-code/references/context-governance.md`.
|
|
348
354
|
|
|
349
355
|
### G7 — UI sub-agent protocol
|
|
350
356
|
|
|
@@ -36,7 +36,7 @@ Invoke `peaks-audit` when **any** of these are true:
|
|
|
36
36
|
|
|
37
37
|
- A human just expressed a software-development need and no accepted `proposedGoal` exists yet.
|
|
38
38
|
- A previous audit was rejected (any dimension missing, malformed JSON, or the user said "redo the audit").
|
|
39
|
-
- A drift detector (peaks-doctor, peaks-
|
|
39
|
+
- A drift detector (peaks-doctor, peaks-code) flagged that an in-flight slice lost its goal binding.
|
|
40
40
|
- The user typed `/peaks-audit` or said "audit this", "scope this", "what would this take", "is this a good idea".
|
|
41
41
|
|
|
42
42
|
Do NOT invoke peaks-audit when the user is asking for a code review, a test run, or a deployment — those are downstream skills.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: peaks-
|
|
3
|
-
description:
|
|
2
|
+
name: peaks-code
|
|
3
|
+
description: Code-domain loop engineering orchestrator for the Peaks-Loop skill family. Use when the user asks Peaks-Loop to handle a code-repo workflow end-to-end (端到端/全流程/需求开发), especially from a product document (PRD/飞书文档/Feishu doc) through implementation and validation. Coordinates peaks-prd, peaks-rd, peaks-qa, peaks-ui, peaks-sc, and peaks-txt while preserving user confirmation gates. Triggers on `/peaks-code`, "peaks code", "全流程开发", "端到端迭代". General primitives (peaks-resume / peaks-status / peaks-test) are sibling skills, not children.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Single-scope-axis naming convention (2.7.1)
|
|
@@ -29,7 +29,7 @@ This skill is the **primary surface**. The `peaks <cmd>` CLI is **auxiliary**
|
|
|
29
29
|
|
|
30
30
|
## Code-Change Red Line (BLOCKING — read before ANY tool call)
|
|
31
31
|
|
|
32
|
-
**Peaks-Loop Solo is an orchestrator, NOT an implementer. You MUST NOT write, edit, or modify any application source code directly.** Every code change goes through `peaks-
|
|
32
|
+
**Peaks-Loop Solo is an orchestrator, NOT an implementer. You MUST NOT write, edit, or modify any application source code directly.** Every code change goes through `peaks-code → RD → QA → verdict`. **If you catch yourself about to write code, STOP.** Hand off to RD. Before declaring workflow complete, run `peaks workflow verify-pipeline --rid <rid> --project <repo> --json`.
|
|
33
33
|
|
|
34
34
|
## Peaks-Loop Startup sequence (MANDATORY — execute in order)
|
|
35
35
|
|
|
@@ -65,7 +65,7 @@ After every 4th tool call, probe via `peaks solo context-now --project <repo> --
|
|
|
65
65
|
|
|
66
66
|
### Peaks-Loop Step 0: Anchor the workflow (MANDATORY FIRST ACTIONS — no bail-out)
|
|
67
67
|
|
|
68
|
-
Run `peaks workspace init` + `peaks skill presence:set peaks-
|
|
68
|
+
Run `peaks workspace init` + `peaks skill presence:set peaks-code` BEFORE any analysis, role handoff, or mode-selection question. Even "分析下这个项目" / "看一下代码" / one-line questions anchor first.
|
|
69
69
|
|
|
70
70
|
→ see `references/anchoring-and-session-info.md` for the full Step 0 contract + session-conflict resolution.
|
|
71
71
|
|
|
@@ -128,7 +128,7 @@ Use `AskUserQuestion` with `Full auto (Recommended)` first when user did not nam
|
|
|
128
128
|
|
|
129
129
|
### Peaks-Loop Step 2: Re-set skill presence with the chosen mode
|
|
130
130
|
|
|
131
|
-
Re-run `peaks skill presence:set peaks-
|
|
131
|
+
Re-run `peaks skill presence:set peaks-code --mode <mode-value> --gate startup`. Install statusline on first run (`peaks statusline install`). → `references/skill-presence-and-title.md`.
|
|
132
132
|
|
|
133
133
|
### Peaks-Loop Step 2.3: Load project memory (durable, LLM-authored memories)
|
|
134
134
|
|
|
@@ -140,7 +140,7 @@ Extract a short title from the user's first request (8-20 Chinese chars or 4-10
|
|
|
140
140
|
|
|
141
141
|
## Sub-agent session sharing (MANDATORY — one conversation = one sid)
|
|
142
142
|
|
|
143
|
-
When peaks-
|
|
143
|
+
When peaks-code dispatches a sub-agent (peaks-rd, peaks-qa, peaks-ui, peaks-txt, peaks-sc), the prompt MUST include the parent's sid. The sub-agent MUST NOT call `peaks workspace init` (would orphan the parent's binding).
|
|
144
144
|
|
|
145
145
|
## Boundaries
|
|
146
146
|
|
|
@@ -164,7 +164,7 @@ When the project has no live backend (no swagger.json, no API server), Solo must
|
|
|
164
164
|
|
|
165
165
|
## Peaks-Loop Request type classification + Workflow order + Transition verification gates
|
|
166
166
|
|
|
167
|
-
The contract for the 6-type classification table, the 11-step workflow order, and the 7 transition verification gates (A through G with their `ls` / `grep` shell snippets) lives in `references/workflow-gates-and-types.md`. The peaks-
|
|
167
|
+
The contract for the 6-type classification table, the 11-step workflow order, and the 7 transition verification gates (A through G with their `ls` / `grep` shell snippets) lives in `references/workflow-gates-and-types.md`. The peaks-code narrative references those gate numbers (Gate A through Gate G) — keep both files in lockstep when adding or renaming a gate.
|
|
168
168
|
|
|
169
169
|
## Peaks-Loop Default sub-agent fan-out (≥ 2 leaves/topological level → `--from-dag`)
|
|
170
170
|
|
|
@@ -204,7 +204,7 @@ Gather via `peaks standards init/update --project <path> --dry-run`. Standards m
|
|
|
204
204
|
|
|
205
205
|
## Peaks-Loop Refactor mode
|
|
206
206
|
|
|
207
|
-
Read `references/refactor-mode.md` first. Default MVP: `peaks-
|
|
207
|
+
Read `references/refactor-mode.md` first. Default MVP: `peaks-code refactor`. Red lines: understand before changes, ≥95% UT coverage, split broad refactors, strict verifiable specs, 100% acceptance per slice.
|
|
208
208
|
|
|
209
209
|
## Peaks-Loop Quality-gate commands (CLI cheat sheet)
|
|
210
210
|
|
|
@@ -212,7 +212,7 @@ Five CLI commands harden the workflow against silent skips: `peaks request lint`
|
|
|
212
212
|
|
|
213
213
|
## Peaks-Loop Completion handoff
|
|
214
214
|
|
|
215
|
-
After final validation, refresh project-local standards via `peaks standards init/update` (never hand-write). Use Peaks-Loop TXT for the compact handoff capsule. **Presence management is delegated to the last downstream skill** — peaks-
|
|
215
|
+
After final validation, refresh project-local standards via `peaks standards init/update` (never hand-write). Use Peaks-Loop TXT for the compact handoff capsule. **Presence management is delegated to the last downstream skill** — peaks-code does not call `peaks skill presence:clear` itself.
|
|
216
216
|
|
|
217
217
|
## Peaks-Loop Step 11: Memory sediment (BLOCKING on workflow complete)
|
|
218
218
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# A2A artifact mapping (informational)
|
|
2
2
|
|
|
3
|
-
> Reference for `peaks-
|
|
3
|
+
> Reference for `peaks-code` and any other peaks skill that produces durable artefacts in `.peaks/_runtime/<session-id>/`. Maps peaks's on-disk artefact vocabulary onto the A2A (Agent2Agent) protocol's vocabulary so a future peaks consumer (e.g. an external LLM agent or a downstream peaks-loop extension) can read peaks output without having to learn a brand-new schema. This is a **documentation mapping**, not a protocol implementation: peaks-loop does not speak A2A over HTTP, does not host an AgentCard endpoint, and does not advertise its capabilities via A2A's discovery mechanism. It only uses A2A's *concepts* as a shared naming layer.
|
|
4
4
|
|
|
5
5
|
## 1. Why this reference exists
|
|
6
6
|
|
|
@@ -70,7 +70,7 @@ A consumer translating peaks states to A2A should:
|
|
|
70
70
|
|
|
71
71
|
## 5. Worked example: a feature slice from start to finish
|
|
72
72
|
|
|
73
|
-
A user runs `peaks-
|
|
73
|
+
A user runs `peaks-code` for a "add user authentication" feature. Mapping the resulting files to A2A concepts:
|
|
74
74
|
|
|
75
75
|
```
|
|
76
76
|
.peaks/_runtime/<sessionId>/prd/requests/001.md → A2A Artifact (kind=proposal)
|
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
# the "two sessions in .peaks/" confusion that bites Solo, always omit --session-id
|
|
11
11
|
# here and let the CLI auto-generate.
|
|
12
12
|
peaks workspace init --project <repo> --json
|
|
13
|
-
peaks skill presence:set peaks-
|
|
13
|
+
peaks skill presence:set peaks-code --project <repo> --gate startup
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
> `<repo>` is the **git project root** (the directory containing `.git`). In a monorepo / single-repo-multi-package layout, this is the repo root, NOT a sub-package — `.peaks/` lives at the repo root so every package shares one workspace. If unsure, run `git rev-parse --show-toplevel` and use that path. Never let `.peaks/` land inside a sub-package directory.
|
|
17
17
|
|
|
18
18
|
**There is no request too lightweight to skip this.** "分析下这个项目", "看一下代码", "分析项目", "解释一下架构", a one-line question — all of them still create the workspace and set presence first. The workspace is cheap; a missing `.peaks/` is the #1 reported failure.
|
|
19
19
|
|
|
20
|
-
**Anti-bail-out rule (BLOCKING):** You MUST NOT exit the peaks-
|
|
20
|
+
**Anti-bail-out rule (BLOCKING):** You MUST NOT exit the peaks-code workflow, hand control back, or produce a final answer before Step 0 has run. If you catch yourself thinking "this is just analysis, I don't need the workflow" — STOP. Run Step 0, set presence, then continue. A pure-analysis request runs the **lightweight analysis branch** (project scan + standards dry-run + handoff with a Standards-increment section), but it still anchors the workspace and keeps presence active. Declining to anchor is a workflow violation.
|
|
21
21
|
|
|
22
22
|
**Session conflict resolution (read once, internalise):** If `peaks workspace init` returns `code: "CONFLICTING_SESSION"` with a body like
|
|
23
23
|
`{"existingSessionId":"<Y>","requestedSessionId":"<X>"}`, the project is already bound to a different in-flight session `<Y>` (the one you or a prior run was working on). The fix is **NOT** to pass `--allow-session-rebind` to clobber `<Y>` — that destroys an active session's data. Instead: finish or abandon `<Y>` first (use `peaks session list --json` to see what it is, then `peaks session finish --id <Y>` or `peaks session abandon --id <Y>` — see your session command's help for the exact verbs). Only after `<Y>` is closed should you re-run `peaks workspace init`. The same rule applies to `peaks workspace init --session-id "<manually-forged>"` — do not pre-forge session ids; the CLI's auto-generated value is the binding.
|
|
24
24
|
|
|
25
|
-
**Fact-Forcing Gate bypass (slice 2.0.1-bug3):** Claude Code's [Fact-Forcing Gate] fires in two shapes inside peaks-
|
|
25
|
+
**Fact-Forcing Gate bypass (slice 2.0.1-bug3):** Claude Code's [Fact-Forcing Gate] fires in two shapes inside peaks-code Step 0: (1) Bash-side "Quote the user's current instruction verbatim. Then retry the same operation." and (2) Write-side 4-facts prompt. Both block the very first Write to `.peaks/_runtime/<sid>/session.json` and the first `peaks skill presence:set peaks-code` invocation. The default `peaks workspace init` (no flag) materializes `.claude/settings.local.json` in the consumer project root with a PreToolUse hook allow-list that exits 0 for tool calls inside `.peaks/**` and for `peaks <whitelisted-subcommand>` Bash commands. The hook bypasses the gate before it fires.
|
|
26
26
|
|
|
27
27
|
If the bypass is not in effect (e.g. `.claude/` was read-only, or the user passed `--no-claude-hooks`, or the consumer manually deleted the file), the recovery flow is:
|
|
28
28
|
|
|
@@ -31,4 +31,4 @@ If the bypass is not in effect (e.g. `.claude/` was read-only, or the user passe
|
|
|
31
31
|
|
|
32
32
|
**Anti-bail-out rule for the gate:** Do NOT skip Step 0 because the gate fired. The gate is a Claude Code core feature that peaks-loop cannot modify directly; peaks-loop can only sidestep it via the hook allow-list. If the gate still blocks Step 0 after the bypass is in effect, the user has a misconfigured `.claude/settings.json` upstream — surface that as a separate `AskUserQuestion` ("Your `.claude/settings.json` is overriding the local allow-list. May peaks-loop delete the local file and regenerate it?") rather than skipping Step 0.
|
|
33
33
|
|
|
34
|
-
`presence:set` accepts no `--mode` here on purpose — mode is unknown until Step 1. It is re-run with the selected mode in Step 2. Setting presence early guarantees the status header/line shows `peaks-
|
|
34
|
+
`presence:set` accepts no `--mode` here on purpose — mode is unknown until Step 1. It is re-run with the selected mode in Step 2. Setting presence early guarantees the status header/line shows `peaks-code` from the very first turn even if the user never reaches mode selection.
|
|
@@ -13,10 +13,10 @@ Each role produces artifacts with predictable file names so cross-role reference
|
|
|
13
13
|
| PRD | `prd/requests/` | `<request-id>.md` | peaks-prd | peaks-ui, peaks-rd, peaks-qa, peaks-txt |
|
|
14
14
|
| UI | `ui/` | `design-draft.md` | peaks-ui | peaks-rd (implementation), peaks-qa (visual regression) |
|
|
15
15
|
| RD planning | `rd/` | `tech-doc.md` | peaks-rd (planning phase) | peaks-rd (implementation phase) |
|
|
16
|
-
| RD project scan | `rd/` | `project-scan.md` | peaks-
|
|
16
|
+
| RD project scan | `rd/` | `project-scan.md` | peaks-code (pre-RD scan) | peaks-rd, peaks-ui |
|
|
17
17
|
| RD implementation | `rd/requests/` | `<request-id>.md` | peaks-rd | peaks-qa, peaks-sc, peaks-txt |
|
|
18
18
|
| QA test cases | `qa/test-cases/` | `<request-id>.md` | peaks-qa (pre-implementation) | peaks-rd (TDD guidance), peaks-qa (execution) |
|
|
19
|
-
| QA test reports | `qa/test-reports/` | `<request-id>.md` | peaks-qa (post-execution) | peaks-
|
|
19
|
+
| QA test reports | `qa/test-reports/` | `<request-id>.md` | peaks-qa (post-execution) | peaks-code (verdict), peaks-txt |
|
|
20
20
|
| QA requests | `qa/requests/` | `<request-id>.md` | peaks-qa | peaks-txt |
|
|
21
21
|
| SC | `sc/` | `<change-id>-impact.md`, `<slice-id>-retention.md` | peaks-sc | peaks-txt |
|
|
22
22
|
| TXT | `txt/` | `handoff-<request-id>.md` | peaks-txt | user (final deliverable) |
|
|
@@ -9,7 +9,7 @@ Peaks skills standardize on **Playwright MCP** as the controlled headed-browser
|
|
|
9
9
|
| Frontend E2E validation that needs to start, navigate, capture, close | **Playwright MCP** | Headed mode, full lifecycle in one tool. |
|
|
10
10
|
| Live page debugging where the user wants to keep their own Chrome session in front | Chrome DevTools MCP | Stays attached without disrupting the user's tabs. |
|
|
11
11
|
|
|
12
|
-
> **Bug history**: an earlier version of this document recommended Chrome DevTools MCP for "open a headed browser when peaks-
|
|
12
|
+
> **Bug history**: an earlier version of this document recommended Chrome DevTools MCP for "open a headed browser when peaks-code gets a product document link." Dogfood testing in 2026-05 revealed the tool requires a pre-running Chrome with remote debugging enabled — it does NOT launch its own browser. Playwright MCP is the correct tool for the "open on demand" case.
|
|
13
13
|
|
|
14
14
|
> **Slice #016 (2026-06-09)**: peaks-loop no longer manages MCP install / dispatch. Skill bodies instruct the LLM to (a) check its own tool list for any Playwright MCP entry, (b) invoke the tool by name if present, (c) tell the user the install command if absent. There is no peaks-loop MCP indirection layer anymore.
|
|
15
15
|
|
|
@@ -8,9 +8,9 @@ Use Peaks-Loop TXT for the compact handoff capsule: mode, validated decisions, a
|
|
|
8
8
|
|
|
9
9
|
## Workflow completion (no auto-exit)
|
|
10
10
|
|
|
11
|
-
peaks-
|
|
11
|
+
peaks-code does NOT itself call `peaks skill presence:clear --project <repo>` at workflow end. Presence management is delegated to the last downstream skill in the workflow (peaks-rd, peaks-qa, peaks-txt); each of those skills owns its own presence:clear step per its SKILL.md. peaks-code only sets presence: it does not unset it.
|
|
12
12
|
|
|
13
|
-
The user can continue with follow-up requirements naturally — no need to re-invoke `/peaks-
|
|
13
|
+
The user can continue with follow-up requirements naturally — no need to re-invoke `/peaks-code` to do so. The header continues to display whatever skill is active; the user can `/peaks-code` again to re-anchor.
|
|
14
14
|
|
|
15
15
|
Before ending, extract durable memories from this session.
|
|
16
16
|
|
|
@@ -41,7 +41,7 @@ On completion:
|
|
|
41
41
|
### Main LLM reducer view (G7.4.e)
|
|
42
42
|
|
|
43
43
|
```
|
|
44
|
-
[peaks-
|
|
44
|
+
[peaks-code] batch 3/3 done in 47.3s
|
|
45
45
|
- rd → .peaks/_sub_agents/2026-06-06-session-5b1095/artifacts/003-rd-001.md (12KB, sha256:abc123) summary: "wrote RD tech-doc with 4 sub-roles and dispatcher interface"
|
|
46
46
|
- qa-business → .../artifacts/003-qa-business-001.md (8KB, sha256:def456) summary: "wrote 12 API test cases covering happy + 3 error paths"
|
|
47
47
|
- qa-perf → .../artifacts/003-qa-perf-001.md (5KB, sha256:ghi789) summary: "wrote perf baseline; p95 latency target ≤ 200ms"
|
|
@@ -165,7 +165,7 @@ PROTOCOL (mandatory):
|
|
|
165
165
|
|
|
166
166
|
Main LLM view format (G7.4.e):
|
|
167
167
|
```
|
|
168
|
-
[peaks-
|
|
168
|
+
[peaks-code] batch 3/3 done in 47.3s
|
|
169
169
|
- rd → .peaks/_sub_agents/2026-06-06-session-5b1095/artifacts/003-rd-001.md (12KB, sha256:abc123) summary: "wrote RD tech-doc with 4 sub-roles"
|
|
170
170
|
- qa-business → .../artifacts/003-qa-business-001.md (8KB, sha256:def456) summary: "wrote 12 API test cases"
|
|
171
171
|
- qa-perf → .../artifacts/003-qa-perf-001.md (5KB, sha256:ghi789) summary: "p95 latency target ≤ 200ms"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Peaks-Loop Frontend-only development mode
|
|
2
2
|
|
|
3
|
-
> Extracted from `skills/peaks-
|
|
3
|
+
> Extracted from `skills/peaks-code/SKILL.md` on 2026-06-09 (slice 019 — slim skill files to references) to keep SKILL.md under the 800-line cap from `common/coding-style.md`. The content below is the verbatim Frontend-only development mode section that was previously inline; nothing was paraphrased, just relocated.
|
|
4
4
|
|
|
5
5
|
When the project has no live backend (no swagger.json, no API server), Solo must activate frontend-only mode.
|
|
6
6
|
|
|
@@ -28,7 +28,7 @@ The workspace initialization creates this structure under `.peaks/`:
|
|
|
28
28
|
# --active --json` (and the matching read-only primitives for the
|
|
29
29
|
# other two) to discover session-id / active-skill / sop-state.
|
|
30
30
|
.peaks/_runtime/
|
|
31
|
-
├── active-skill.json # orchestrator presence marker (peaks-
|
|
31
|
+
├── active-skill.json # orchestrator presence marker (peaks-code / -rd / -qa / -ui / -sc / -sop / -txt)
|
|
32
32
|
├── session.json # project → session binding (the only single-session source of truth)
|
|
33
33
|
└── sop-state/ # current phase + history; definitions live globally in ~/.peaks
|
|
34
34
|
|
|
@@ -95,7 +95,7 @@ peaks slice check [--rid <rid>] [--project <path>] [--json]
|
|
|
95
95
|
|
|
96
96
|
4 个 check 全绿 + verify-pipeline pass → 才进 `peaks request transition --state qa-handoff`,让 peaks-qa 接管。
|
|
97
97
|
|
|
98
|
-
> **新增 run 017(2026-06-09)**:边界默认走 changed-only suite,原来的全 suite 行为移到 `--run-tests` opt-in。`peaks-
|
|
98
|
+
> **新增 run 017(2026-06-09)**:边界默认走 changed-only suite,原来的全 suite 行为移到 `--run-tests` opt-in。`peaks-test` skill 仍然是手动跑全量的入口。rationale: 全量 30s+ 严重拖慢 workflow;changed-only 命中 99% 真正回归。详见 PRD `.peaks/_runtime/2026-06-07-session-84feb7/prd/requests/002-017-2026-06-09-remove-auto-full-vitest-from-slice-check.md`。
|
|
99
99
|
|
|
100
100
|
## Micro-cycle → 边界 check → QA 的串联
|
|
101
101
|
|
|
@@ -131,21 +131,21 @@ verdict=return-to-rd → RD 修 (new slice 内部走 micro-cycle)
|
|
|
131
131
|
|
|
132
132
|
| 阶段 | 谁负责 | 节奏 |
|
|
133
133
|
|---|---|---|
|
|
134
|
-
| RD slice 内部 | peaks-
|
|
135
|
-
| RD slice 边界 | peaks-
|
|
134
|
+
| RD slice 内部 | peaks-code (main loop) | micro-cycle(5-10s 一个) |
|
|
135
|
+
| RD slice 边界 | peaks-code 调用 `peaks slice check` | 一次 |
|
|
136
136
|
| QA test execution | peaks-qa (sub-agent or inline) | slice 级 |
|
|
137
137
|
| 3-way fan-out (CR + sec + perf) | peaks-rd (sub-agent) | slice 级(RD 内部一次 + 边界 check 一次) |
|
|
138
138
|
| TXT handoff | peaks-txt | slice 级 |
|
|
139
139
|
| SC commit-boundaries | peaks-sc | slice 级 |
|
|
140
140
|
|
|
141
|
-
## 为什么这套比当前 peaks-
|
|
141
|
+
## 为什么这套比当前 peaks-code 的设计合理
|
|
142
142
|
|
|
143
143
|
- **快**:micro-cycle ~100ms(vs 30s 全 suite),改 10 个 bug 从 5 分钟降到 30 秒
|
|
144
144
|
- **稳**:边界 check 不省,4 项检查(tsc + vitest run --changed + 3-way + verify-pipeline)一次全跑;changed-only 模式 1-3s 内出结果,全量用 `--run-tests` opt-in
|
|
145
145
|
- **清晰**:LLM 看到一个 explicit "禁止" 列表 + 强制 sequence,比"建议"更不容易越界
|
|
146
146
|
- **可观测**:micro-cycle 走单测 → 边界跑 verify-pipeline,每步都有 JSON envelope 验证
|
|
147
147
|
|
|
148
|
-
## 跟 peaks-
|
|
148
|
+
## 跟 peaks-code SKILL.md 的对账
|
|
149
149
|
|
|
150
150
|
- `peaks slice check` = 边界命令
|
|
151
151
|
- micro-cycle = slice 内部
|
|
@@ -187,10 +187,10 @@ After RD completes (whether inline or sub-agent), Solo does not stop — it must
|
|
|
187
187
|
**Presence restoration after RD/QA work returns (MANDATORY):** In v1.x, role skills called `peaks skill presence:set <role>` internally and stomped on `.peaks/.active-skill.json`. From v1.3 onward, sub-agents in the Swarm path are forbidden from calling `peaks skill presence:set` (see "Sub-agent dispatch" in each role's SKILL.md), so the main loop's presence file is preserved across the fan-out window by construction. The one place Solo still has to actively restore presence is **once after the fan-out returns** (gate=swarm-converged) and again **after each RD↔QA repair iteration** (gate=repair-cycle-<N>). Use the same command from Step 2 with the current mode and the gate that has just advanced:
|
|
188
188
|
|
|
189
189
|
```bash
|
|
190
|
-
peaks skill presence:set peaks-
|
|
190
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate <current-gate>
|
|
191
191
|
```
|
|
192
192
|
|
|
193
|
-
This keeps the CLAUDE.md status header accurate (`Peaks-Loop Skill: peaks-
|
|
193
|
+
This keeps the CLAUDE.md status header accurate (`Peaks-Loop Skill: peaks-code`) instead of showing a stale role name. Use the current mode and gate values; the gate may have advanced since startup. Skipping this step causes the header to display the last-known gate permanently.
|
|
194
194
|
|
|
195
195
|
**Full-auto auto-proceed rule**: In the `full-auto` profile, when RD transitions to `qa-handoff`, Solo immediately drives QA — by launching a `peaks sub-agent dispatch qa` sub-agent carrying the `peaks-qa` body (swarm path), then executing the returned toolCall, or by running QA inline in the main loop (assisted/strict path). Do not pause, do not ask the user, do not summarize RD results as if they were final. The only valid reason to skip QA is when `--type` is `docs` or `chore` (no acceptance surface).
|
|
196
196
|
|
|
@@ -217,7 +217,7 @@ When `peaks-qa` returns `verdict=return-to-rd`, Solo does NOT manually rewrite R
|
|
|
217
217
|
6. Repeat steps 1-5 until QA returns `verdict=pass`, or the cap below fires.
|
|
218
218
|
**After each repair iteration** (after peaks-rd and peaks-qa both return), Solo MUST restore presence:
|
|
219
219
|
```bash
|
|
220
|
-
peaks skill presence:set peaks-
|
|
220
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate repair-cycle-<N>
|
|
221
221
|
```
|
|
222
222
|
|
|
223
223
|
**Repair cycle cap**: After 3 repair cycles without a passing QA verdict, emit a blocked TXT handoff regardless of remaining issues. Do not loop indefinitely. If a specific issue cannot be resolved within 3 cycles, mark it as a known blocker in the TXT handoff and proceed to the SC phase.
|
|
@@ -297,7 +297,7 @@ reasons array preserved verbatim.
|
|
|
297
297
|
|
|
298
298
|
### Runbook integration
|
|
299
299
|
|
|
300
|
-
When the peaks-
|
|
300
|
+
When the peaks-code main loop sees `qa verdict != pass` or any audit
|
|
301
301
|
prereq missing, the runbook now does:
|
|
302
302
|
|
|
303
303
|
1. Call `aggregateVerdict({ security, perf, karpathy, mut, qa })` with
|
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
|
|
9
9
|
Defect A (from PRD-002, 2026-06-28 session 88b27d):
|
|
10
10
|
|
|
11
|
-
1. session A runs in `full-auto` → `peaks skill presence:set peaks-
|
|
11
|
+
1. session A runs in `full-auto` → `peaks skill presence:set peaks-code --mode full-auto --gate startup` stamps
|
|
12
12
|
`.peaks/_runtime/active-skill.json` with `outerSessionId=outer-A`.
|
|
13
13
|
2. session A closes (Claude window quit).
|
|
14
14
|
3. session B opens (a new Claude window, `outerSessionId=outer-B`).
|
|
15
15
|
4. `peaks skill presence:get --project <path>` still returns `mode=full-auto` because the file is on disk.
|
|
16
|
-
5. peaks-
|
|
16
|
+
5. peaks-code Step 1 reads the presence, sees `mode=full-auto`, **skips** AskUserQuestion.
|
|
17
17
|
6. The user never picked `full-auto` for THIS session — the mode was sticky from the previous one.
|
|
18
18
|
|
|
19
19
|
The fix: presence is only authoritative when its `outerSessionId` matches the current outer session. Otherwise Step 1 must re-ask.
|
|
20
20
|
|
|
21
21
|
## Detection protocol
|
|
22
22
|
|
|
23
|
-
Before deciding to skip Step 1's AskUserQuestion, the LLM driver (or any peaks-
|
|
23
|
+
Before deciding to skip Step 1's AskUserQuestion, the LLM driver (or any peaks-code caller) MUST run:
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
26
|
peaks skill presence:check-stale --project <path> --json
|
|
@@ -35,7 +35,7 @@ The CLI returns a JSON envelope of shape:
|
|
|
35
35
|
"data": {
|
|
36
36
|
"stale": true,
|
|
37
37
|
"reason": "outer-session-mismatch",
|
|
38
|
-
"presence": { "skill": "peaks-
|
|
38
|
+
"presence": { "skill": "peaks-code", "mode": "full-auto", "outerSessionId": "outer-A", ... },
|
|
39
39
|
"currentOuterSessionId": "outer-B",
|
|
40
40
|
"recordedOuterSessionId": "outer-A"
|
|
41
41
|
},
|
|
@@ -79,11 +79,11 @@ Returns the same `stale` / `reason` / `currentOuterSessionId` / `recordedOuterSe
|
|
|
79
79
|
}
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
The hard-pause on `step-1-mode-select` is preserved for ALL modes (defect #1 fix from slice 2026-06-28-solo-mode-bypass-fix). Stale-presence is an additional reason — even when the user names a profile explicitly, peaks-
|
|
82
|
+
The hard-pause on `step-1-mode-select` is preserved for ALL modes (defect #1 fix from slice 2026-06-28-solo-mode-bypass-fix). Stale-presence is an additional reason — even when the user names a profile explicitly, peaks-code can still surface the staleness for visibility.
|
|
83
83
|
|
|
84
84
|
## Auto-clear on session rotation
|
|
85
85
|
|
|
86
|
-
`peaks workspace init` now calls `clearStalePresenceOnRotation` whenever an `outer-session-mismatch` rotation fires. This means in the COMMON path (user reopens Claude → peaks-
|
|
86
|
+
`peaks workspace init` now calls `clearStalePresenceOnRotation` whenever an `outer-session-mismatch` rotation fires. This means in the COMMON path (user reopens Claude → peaks-code auto-runs `peaks workspace init` → rotation clears the stale presence → Step 1 reads no-presence → re-ask). The check-stale CLI is the safety net for the rare case where rotation was suppressed (`--no-rotate-on-outer-mismatch`).
|
|
87
87
|
|
|
88
88
|
The auto-clear respects two guards so it never destroys a user-explicit mode:
|
|
89
89
|
|
|
@@ -92,17 +92,17 @@ The auto-clear respects two guards so it never destroys a user-explicit mode:
|
|
|
92
92
|
|
|
93
93
|
## Worked example (the 88b27d defect)
|
|
94
94
|
|
|
95
|
-
Session A: `peaks skill presence:set peaks-
|
|
95
|
+
Session A: `peaks skill presence:set peaks-code --mode full-auto` (outer A).
|
|
96
96
|
Session A closes. Session B starts (outer B).
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
# 1. Run init (the common entry into peaks-
|
|
99
|
+
# 1. Run init (the common entry into peaks-code).
|
|
100
100
|
peaks workspace init --project . --json
|
|
101
101
|
# → auto-rotates session binding AND auto-clears stale presence
|
|
102
102
|
# nextActions: ["Auto-cleared stale skill presence ..."]
|
|
103
103
|
# data.rotation: { previousSessionId: "session-A", reason: "outer-session-mismatch" }
|
|
104
104
|
|
|
105
|
-
# 2. peaks-
|
|
105
|
+
# 2. peaks-code Step 1 (was: skip AskUserQuestion because presence.mode=full-auto).
|
|
106
106
|
# Now: presence is gone → no-presence → AskUserQuestion fires.
|
|
107
107
|
|
|
108
108
|
peaks skill presence:check-stale --project . --json
|
|
@@ -112,7 +112,7 @@ peaks solo should-pause --step step-1-mode-select --mode full-auto --json
|
|
|
112
112
|
# → { shouldPause: true, reason: "step=step-1-mode-select is a mode/context-selection step → always pause" }
|
|
113
113
|
|
|
114
114
|
# 3. User picks a profile (or repeats "full-auto"). Then:
|
|
115
|
-
peaks skill presence:set peaks-
|
|
115
|
+
peaks skill presence:set peaks-code --mode full-auto --gate startup
|
|
116
116
|
# → re-stamps with outer=B. Future sessions that read this presence
|
|
117
117
|
# see outerSessionId=outer-B matching THEIR outer=B → not stale.
|
|
118
118
|
```
|
|
@@ -120,5 +120,5 @@ peaks skill presence:set peaks-solo --mode full-auto --gate startup
|
|
|
120
120
|
## ACL — what NOT to do
|
|
121
121
|
|
|
122
122
|
- **NEVER** skip Step 1 just because `.peaks/_runtime/active-skill.json` shows a `mode` field. Run `presence:check-stale` first.
|
|
123
|
-
- **NEVER** call `peaks skill presence:clear` from peaks-
|
|
124
|
-
- **NEVER** set the presence `mode` field from inside a sub-agent (peaks-rd, peaks-qa, etc.). Sub-agents may read presence to honour the user's chosen mode but the write authority for Step 1 belongs to the peaks-
|
|
123
|
+
- **NEVER** call `peaks skill presence:clear` from peaks-code to "fix" a stale mode. The auto-clear path is `peaks workspace init`'s job; manual clears destroy user-explicit mode choices that may belong to another live outer session.
|
|
124
|
+
- **NEVER** set the presence `mode` field from inside a sub-agent (peaks-rd, peaks-qa, etc.). Sub-agents may read presence to honour the user's chosen mode but the write authority for Step 1 belongs to the peaks-code driver.
|
|
@@ -18,4 +18,4 @@ Map the user's selection to the `--mode` flag value (used by `peaks skill presen
|
|
|
18
18
|
|
|
19
19
|
> Note: `peaks workflow route --mode solo|team` is a **different** CLI dimension (solo developer vs team flow) and is unrelated to the profile choice here. Do not conflate them.
|
|
20
20
|
|
|
21
|
-
If the user already names a profile in their invocation (e.g. `/peaks-
|
|
21
|
+
If the user already names a profile in their invocation (e.g. `/peaks-code --full-auto`, "用全自动模式"), skip this question and use the named profile directly.
|
|
@@ -24,7 +24,7 @@ Rules Solo applies:
|
|
|
24
24
|
|
|
25
25
|
## Refactor workflow wiring
|
|
26
26
|
|
|
27
|
-
For `peaks-
|
|
27
|
+
For `peaks-code refactor` runs against a repository with `openspec/`:
|
|
28
28
|
|
|
29
29
|
1. RD entry gate — `peaks openspec validate <id>` must pass and `peaks openspec to-rd <id>` must return `acceptance.length > 0`.
|
|
30
30
|
2. Each slice must reference one OpenSpec tasks section as its commit boundary (per `references/openspec-commit-boundaries.md` in peaks-sc).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Peaks-Loop Pre-RD project scan checklist
|
|
2
2
|
|
|
3
|
-
> Extracted from `skills/peaks-
|
|
3
|
+
> Extracted from `skills/peaks-code/SKILL.md` on 2026-06-09 (slice 019 — slim skill files to references) to keep SKILL.md under the 800-line cap from `common/coding-style.md`. The content below is the verbatim Pre-RD project scan checklist that was previously inline; nothing was paraphrased, just relocated.
|
|
4
4
|
|
|
5
5
|
Before handing off to `peaks-rd`, scan the project and record findings to `.peaks/_runtime/<sessionId>/rd/project-scan.md`. RD and UI roles read this before starting work. **project-scan.md is a session-scoped singleton** — check if it already exists before regenerating (e.g. via `ls .peaks/_runtime/<sessionId>/rd/project-scan.md`). If it exists and is complete (has `## Archetype` and `## Project mode` sections), reuse it. Only regenerate if missing or incomplete.
|
|
6
6
|
|
|
@@ -60,4 +60,4 @@ done
|
|
|
60
60
|
**Strict quality guarantee (per user's hard rule: "严格要保证不能比当前的效果差")**:
|
|
61
61
|
- If no in-flight slice is detected, this step is a no-op: zero extra commands beyond the existing Step 0 probe, zero extra token cost.
|
|
62
62
|
- If an in-flight slice is detected, the cost is one `find` + one `grep` loop (sub-millisecond) + one `AskUserQuestion` (one round-trip). The savings are 3-5k tokens (the cost of manually re-reading 3-5 artifact files).
|
|
63
|
-
- The dogfood test in `tests/unit/skill-resume-mode.test.ts` (8 cases, bash-fixture shim — the legacy interface used by `skills/peaks-
|
|
63
|
+
- The dogfood test in `tests/unit/skill-resume-mode.test.ts` (8 cases, bash-fixture shim — the legacy interface used by `skills/peaks-resume`) and `tests/unit/services/skill/resume-detector.test.ts` (24 cases, the canonical TypeScript classifier at `src/services/skill/resume-detector.ts`) together cover: (a) fresh / complete / resume:rd-planning / resume:qa-validation / resume:txt-handoff state-based classifications, (b) the "Other resume triggers" overrides (missing `rd/tech-doc.md` → `rd-planning`; missing `rd/code-review.md` or `rd/security-review.md` → `rd-review-fanout`; missing `qa/test-reports/<rid>.md` → `qa-execution`), (c) the mid-implementation distinction (`spec-locked` / `implemented` / `running` / `blocked` all return `in-flight:<state>`), (d) the primary-vs-abandoned filter (multiple RDs → spec-locked wins; single blocked RD stays primary; 2+ all-abandoned → fresh), (e) the legacy `.peaks/_runtime/<sessionId>/` path fallback, and (f) determinism across two invocations on the same fixture.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Peaks-Loop Default Runbook (orchestrator, full-auto profile)
|
|
2
2
|
|
|
3
|
-
> **Maintenance**: The numbered workflow list in `skills/peaks-
|
|
3
|
+
> **Maintenance**: The numbered workflow list in `skills/peaks-code/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
7
|
> **How peaks-loop tooling reads this file**:
|
|
8
|
-
> - `peaks skill runbook peaks-
|
|
8
|
+
> - `peaks skill runbook peaks-code` (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
|
|
|
11
11
|
## Default runbook — CLI sequence
|
|
@@ -22,7 +22,7 @@ peaks sub-agent dispatch <role> --prompt "<body>" --request-id <rid> --batch-id
|
|
|
22
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
|
-
peaks skill runbook peaks-
|
|
25
|
+
peaks skill runbook peaks-code --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
|
|
@@ -80,7 +80,7 @@ peaks request transition <rid> --role prd --state handed-off --project <repo> --
|
|
|
80
80
|
# sub-agent may also call peaks request init itself (idempotent on the same rid);
|
|
81
81
|
# Solo's call here is the source of truth. Only init roles that are in the
|
|
82
82
|
# swarm plan — roles not in the plan do not get a slot yet.
|
|
83
|
-
peaks skill presence:set peaks-
|
|
83
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate swarm-fan-out
|
|
84
84
|
# for each role in swarm-plan.subAgents:
|
|
85
85
|
# peaks request init --role ui --id <rid> --project <repo> --apply --type <type> --json
|
|
86
86
|
# peaks request init --role rd --id <rid> --project <repo> --apply --type <type> --json
|
|
@@ -99,7 +99,7 @@ peaks skill presence:set peaks-solo --project <repo> --mode <mode> --gate swarm-
|
|
|
99
99
|
peaks sc build-dag --change-id <cid> --project <repo> --json > .peaks/_runtime/<sid>/sc/slice-dag.json
|
|
100
100
|
peaks sub-agent dispatch --from-dag .peaks/_runtime/<sid>/sc/slice-dag.json --batch-id <id> --project <repo> --json
|
|
101
101
|
# 3c. After fan-out, Solo restores presence once and runs Gate B (ls checks):
|
|
102
|
-
peaks skill presence:set peaks-
|
|
102
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode> --gate swarm-converged
|
|
103
103
|
ls .peaks/_runtime/<sid>/prd/requests/<rid>.md # PRD artefact must exist (Gate B hard)
|
|
104
104
|
# feature / refactor → ls .peaks/_runtime/<sid>/rd/tech-doc.md
|
|
105
105
|
# bugfix → ls .peaks/_runtime/<sid>/rd/bug-analysis.md
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
Step 0 already set presence with no mode. Now that the mode is known (user selected or explicitly named), re-run presence:set so the header/status line shows the profile:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
peaks skill presence:set peaks-
|
|
10
|
+
peaks skill presence:set peaks-code --project <repo> --mode <mode-value> --gate startup
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
On the first presence:set in a project, ensure the out-of-band status bar is installed so the user can see at a glance that Peaks is orchestrating — it renders the active skill in Claude Code's terminal status line, independent of model output:
|
|
@@ -16,9 +16,9 @@ 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-Loop Skill: peaks-
|
|
19
|
+
Then display the compact status header: `Peaks-Loop Skill: peaks-code | Peaks-Loop Gate: startup | Next: <one short action>`. Display this header on EVERY turn while the skill is active.
|
|
20
20
|
|
|
21
|
-
Update with `peaks skill presence:set peaks-
|
|
21
|
+
Update with `peaks skill presence:set peaks-code --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
|
|
|
23
23
|
## Step 2.5 — Set session title
|
|
24
24
|
|
|
@@ -13,7 +13,7 @@ Use `standards init` for first-time creation and `standards update` for existing
|
|
|
13
13
|
|
|
14
14
|
Do not hand-write standards file mutations inside the skill.
|
|
15
15
|
|
|
16
|
-
For project-analysis requests such as "分析项目" / "分析下这个项目", Step 0 still applies: the workspace is initialized and `peaks-
|
|
16
|
+
For project-analysis requests such as "分析项目" / "分析下这个项目", Step 0 still applies: the workspace is initialized and `peaks-code` presence is set before any analysis output. These requests run the lightweight analysis branch (project scan + standards dry-run) rather than the full RD/QA pipeline, but they never skip workspace anchoring or exit the workflow. The handoff must include an explicit **Standards increment** section. Report the current `CLAUDE.md` and `.claude/rules/**` status from the dry-run output as incremental deltas, not just a generic preflight note:
|
|
17
17
|
|
|
18
18
|
- whether `CLAUDE.md` is missing, existing, planned, skipped, appended, or review-only;
|
|
19
19
|
- which `.claude/rules/**` files are planned, existing, skipped, appended, or review-only;
|
|
@@ -8,9 +8,9 @@ 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`).
|
|
11
|
-
3. **THIS STEP** — a peaks-
|
|
11
|
+
3. **THIS STEP** — a peaks-code startup sequence probe that detects 1.x state when the user invokes `/peaks-code` directly in a 1.x consumer project, and prompts the user to upgrade.
|
|
12
12
|
|
|
13
|
-
The 1.x user experience is: "I just typed /peaks-
|
|
13
|
+
The 1.x user experience is: "I just typed /peaks-code. Why is it not working in 2.0 mode?" Step 0.55 catches this case and surfaces an `AskUserQuestion` with a one-click upgrade.
|
|
14
14
|
|
|
15
15
|
## Detection algorithm
|
|
16
16
|
|
|
@@ -35,7 +35,7 @@ The CLI returns:
|
|
|
35
35
|
},
|
|
36
36
|
"warnings": [],
|
|
37
37
|
"nextActions": [
|
|
38
|
-
"Detected 1.x state. peaks-
|
|
38
|
+
"Detected 1.x state. peaks-code Step 0.55 should present an AskUserQuestion to invoke `peaks upgrade --to 2.0 --auto --project /path/to/project`."
|
|
39
39
|
]
|
|
40
40
|
}
|
|
41
41
|
```
|
|
@@ -52,8 +52,8 @@ The TS mirror in `src/services/upgrade/1x-detector-service.ts` is the canonical
|
|
|
52
52
|
|
|
53
53
|
| Option | What it does |
|
|
54
54
|
|---|---|
|
|
55
|
-
| Run `peaks upgrade --to 2.0 --auto --project <root>` (Recommended) | Invokes the umbrella. The user sees the 6 sub-step results in the terminal. After the upgrade, re-run peaks-
|
|
56
|
-
| Skip for this session | Continue with the standing 1.x layout. Persist `autoUpgradePrompt: skip-this-session` to `.peaks/preferences.json`. The next time the user invokes peaks-
|
|
55
|
+
| Run `peaks upgrade --to 2.0 --auto --project <root>` (Recommended) | Invokes the umbrella. The user sees the 6 sub-step results in the terminal. After the upgrade, re-run peaks-code with the standing 2.0 layout. Persist `autoUpgradePrompt: opt-in` to `.peaks/preferences.json`. |
|
|
56
|
+
| Skip for this session | Continue with the standing 1.x layout. Persist `autoUpgradePrompt: skip-this-session` to `.peaks/preferences.json`. The next time the user invokes peaks-code in this project, the question re-asks. |
|
|
57
57
|
| Never ask again for this project | Persist `autoUpgradePrompt: skip-forever` to `.peaks/preferences.json`. Step 0.55 becomes a no-op for this project from now on. The user can re-enable later by removing the `autoUpgradePrompt` key from preferences.json. |
|
|
58
58
|
|
|
59
59
|
## Persistence contract
|