peaks-loop 4.0.38 → 4.0.39
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/CHANGELOG.md +19 -0
- package/README-en.md +1 -1
- package/README.md +1 -1
- package/dist/cli/commands/code-review-commands.js +43 -1
- package/dist/cli/commands/code-runtime-commands.js +16 -4
- package/dist/cli/commands/core/skill-command.d.ts +44 -0
- package/dist/cli/commands/core/skill-command.js +67 -3
- package/dist/cli/commands/dispatch-commands.js +42 -12
- package/dist/services/code/auto-compact-orchestrator.js +2 -2
- package/dist/services/context/auto-compact-dispatcher.js +3 -1
- package/dist/services/hooks/auto-compact-hook-install.d.ts +14 -1
- package/dist/services/hooks/auto-compact-hook-install.js +39 -15
- package/dist/services/lint/detect-ocr-18.d.ts +7 -1
- package/dist/services/lint/detect-ocr-18.js +81 -8
- package/dist/services/lint/ocr-18-acquire.d.ts +113 -0
- package/dist/services/lint/ocr-18-acquire.js +350 -0
- package/dist/services/lint/ocr-multilang-adapter.js +3 -0
- package/dist/services/web/playwright-loader.js +5 -24
- package/dist/services/workflow/provision-dispatch-node.d.ts +42 -0
- package/dist/services/workflow/provision-dispatch-node.js +66 -0
- package/dist/services/workspace/workspace-claude-settings-materializer.js +65 -6
- package/dist/shared/npm-cache.d.ts +2 -0
- package/dist/shared/npm-cache.js +31 -0
- package/package.json +5 -5
- package/skills/bee/peaks-perf-audit/SKILL.md +24 -0
- package/skills/bee/peaks-prd/SKILL.md +24 -0
- package/skills/bee/peaks-qa/SKILL.md +24 -0
- package/skills/bee/peaks-rd/SKILL.md +24 -0
- package/skills/bee/peaks-reviewer/SKILL.md +24 -0
- package/skills/bee/peaks-sc/SKILL.md +24 -0
- package/skills/bee/peaks-security-audit/SKILL.md +24 -0
- package/skills/bee/peaks-txt/SKILL.md +24 -0
- package/skills/bee/peaks-ui/SKILL.md +24 -0
- package/skills/peaks-audit/SKILL.md +24 -0
- package/skills/peaks-code/SKILL.md +24 -0
- package/skills/peaks-content/SKILL.md +24 -0
- package/skills/peaks-doctor/SKILL.md +24 -0
- package/skills/peaks-final-review/SKILL.md +24 -0
- package/skills/peaks-ide/SKILL.md +24 -0
- package/skills/peaks-issue-fix-orchestrator/SKILL.md +24 -0
- package/skills/peaks-resume/SKILL.md +24 -0
- package/skills/peaks-slice-decompose/SKILL.md +24 -0
- package/skills/peaks-solo/SKILL.md +24 -0
- package/skills/peaks-sop/SKILL.md +24 -0
- package/skills/peaks-status/SKILL.md +24 -0
- package/skills/peaks-test/SKILL.md +24 -0
|
@@ -3,6 +3,30 @@ name: peaks-doctor
|
|
|
3
3
|
description: Orchestrate peaks-loop's L3 doctor (peaks audit + peaks doctor + peaks openspec from-doctor) for project health. Use when the user asks for a project health check, doctor report, audit, or wants to convert doctor findings into OpenSpec change records. Coordinates the L2 audit framework + the L3.2 doctor + the L3.3 from-doctor proposal generator. Triggers on `/peaks-doctor`, "peaks doctor", "项目健康", "doctor report", "health check", "check the project", "audit my repo".
|
|
4
4
|
visibility: internal
|
|
5
5
|
---
|
|
6
|
+
|
|
7
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
8
|
+
|
|
9
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
10
|
+
|
|
11
|
+
**Skill header.** While this skill is active, open every turn with
|
|
12
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
13
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
14
|
+
|
|
15
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
16
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
17
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
18
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
19
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
20
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
21
|
+
|
|
22
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
23
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
24
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
25
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
26
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
27
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
28
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
29
|
+
<!-- /peaks:loop-hygiene -->
|
|
6
30
|
---
|
|
7
31
|
|
|
8
32
|
# Peaks-Loop Doctor
|
|
@@ -3,6 +3,30 @@ name: peaks-final-review
|
|
|
3
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
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
7
|
+
|
|
8
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
9
|
+
|
|
10
|
+
**Skill header.** While this skill is active, open every turn with
|
|
11
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
12
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
13
|
+
|
|
14
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
15
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
16
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
17
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
18
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
19
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
20
|
+
|
|
21
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
22
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
23
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
24
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
25
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
26
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
27
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
28
|
+
<!-- /peaks:loop-hygiene -->
|
|
29
|
+
|
|
6
30
|
## Single-scope-axis naming convention
|
|
7
31
|
|
|
8
32
|
> **Read once at the top of this file; the rest of the skill is written against it.**
|
|
@@ -3,6 +3,30 @@ name: peaks-ide
|
|
|
3
3
|
description: Orchestrate peaks-loop's IDE-aware behavior (hooks + statusline + handle) for a user's specific IDE. Detects the current state (which IDE the user is on, what peaks has already installed), plans the install / switch / status / uninstall actions, and invokes the existing peaks CLI primitives. Triggers on `/peaks-ide`, "set up peaks for my IDE", "switch peaks to Trae", "what did peaks install", "uninstall peaks hooks". Sits between the user and `peaks hooks install` / `peaks statusline install` / `peaks hook handle` — those are the CLI primitives; this skill is the user-facing surface.
|
|
4
4
|
visibility: internal
|
|
5
5
|
---
|
|
6
|
+
|
|
7
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
8
|
+
|
|
9
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
10
|
+
|
|
11
|
+
**Skill header.** While this skill is active, open every turn with
|
|
12
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
13
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
14
|
+
|
|
15
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
16
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
17
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
18
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
19
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
20
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
21
|
+
|
|
22
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
23
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
24
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
25
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
26
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
27
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
28
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
29
|
+
<!-- /peaks:loop-hygiene -->
|
|
6
30
|
---
|
|
7
31
|
|
|
8
32
|
# Peaks-Loop IDE Setup (peaks-ide)
|
|
@@ -3,6 +3,30 @@ name: peaks-issue-fix-orchestrator
|
|
|
3
3
|
description: End-to-end orchestrator that surveys open issues in a target repo, classifies them by difficulty, mines reference merged-PRs, fixes each issue with real commits (with Repository + AI-modified declaration), writes normalized PR description files, and emits a one-line submit script. Use when the user wants to drive a "fix N open issues and prepare PRs" run on an upstream repo (any language; primarily Python + TypeScript). Reuses Loop Engineering primitives: 4-layer asset model, Darwin ratchet, karpathy-engineered red lines, Human-NL-Choice-Only. Triggers on `/peaks-issue-fix-orchestrator`, "fix 30 issues", "dogfood on <repo>", "open-issue sweep on <repo>".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
7
|
+
|
|
8
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
9
|
+
|
|
10
|
+
**Skill header.** While this skill is active, open every turn with
|
|
11
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
12
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
13
|
+
|
|
14
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
15
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
16
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
17
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
18
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
19
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
20
|
+
|
|
21
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
22
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
23
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
24
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
25
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
26
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
27
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
28
|
+
<!-- /peaks:loop-hygiene -->
|
|
29
|
+
|
|
6
30
|
# peaks-issue-fix-orchestrator
|
|
7
31
|
|
|
8
32
|
peaks-issue-fix-orchestrator is the **user-facing skill** that turns a natural-language "dogfood on this repo, fix 30 open issues" request into a reproducible batch fix run. The LLM orchestrates the survey, classification, reference-PR mining, per-batch fix+commit, per-branch relocation, normalized PR body authoring, and submit-script emission. The user only describes a target and picks among a few multi-choice options.
|
|
@@ -3,6 +3,30 @@ name: peaks-resume
|
|
|
3
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
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
7
|
+
|
|
8
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
9
|
+
|
|
10
|
+
**Skill header.** While this skill is active, open every turn with
|
|
11
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
12
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
13
|
+
|
|
14
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
15
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
16
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
17
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
18
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
19
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
20
|
+
|
|
21
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
22
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
23
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
24
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
25
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
26
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
27
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
28
|
+
<!-- /peaks:loop-hygiene -->
|
|
29
|
+
|
|
6
30
|
# Peaks-Loop Code Resume (wrapper)
|
|
7
31
|
|
|
8
32
|
Peaks-Loop Code 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).
|
|
@@ -3,6 +3,30 @@ name: peaks-slice-decompose
|
|
|
3
3
|
description: Run multi-pass slice decomposition on a PRD-ready request and emit a v2 envelope with passes, cross-pass edges, and an LLM-arbitration trace. Use when a PRD is ready and the caller needs service-level and/or file-level cuts in one artifact.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
7
|
+
|
|
8
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
9
|
+
|
|
10
|
+
**Skill header.** While this skill is active, open every turn with
|
|
11
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
12
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
13
|
+
|
|
14
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
15
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
16
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
17
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
18
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
19
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
20
|
+
|
|
21
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
22
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
23
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
24
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
25
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
26
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
27
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
28
|
+
<!-- /peaks:loop-hygiene -->
|
|
29
|
+
|
|
6
30
|
## Single-scope-axis naming convention
|
|
7
31
|
|
|
8
32
|
> **Read once at the top of this file; the rest of the skill is written against it.**
|
|
@@ -14,6 +14,30 @@ metadata:
|
|
|
14
14
|
red_lines: [RL-1, RL-8, HC-7, HC-8, HC-9, HC-10, HC-11]
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
18
|
+
|
|
19
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
20
|
+
|
|
21
|
+
**Skill header.** While this skill is active, open every turn with
|
|
22
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
23
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
24
|
+
|
|
25
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
26
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
27
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
28
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
29
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
30
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
31
|
+
|
|
32
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
33
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
34
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
35
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
36
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
37
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
38
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
39
|
+
<!-- /peaks:loop-hygiene -->
|
|
40
|
+
|
|
17
41
|
# peaks-solo — Dispatcher (分诊员)
|
|
18
42
|
|
|
19
43
|
> peaks-solo 是 Peaks-Loop 的 dispatcher,不是 orchestrator。读取技能池 → 分诊 → 转交 leaf 或自规划 → 回头问沉淀。**不持有 implementation surface**。
|
|
@@ -3,6 +3,30 @@ name: peaks-sop
|
|
|
3
3
|
description: Authoring skill for user-defined SOPs (standard operating procedures) in Peaks. Use when a user wants to create, edit, debug, or register their own gated workflow — ordered phases plus gates that block advancement until conditions are met — by describing it in natural language instead of hand-writing JSON or memorizing CLI commands. DOMAIN-AGNOSTIC: not just software/release flows — equally for content publishing, compliance and approval checklists, data pipelines, onboarding, ops runbooks, or any personal repeatable procedure, wherever "don't enter the next stage until X is true" applies and X is checkable via a file, file content, or a command.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
7
|
+
|
|
8
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
9
|
+
|
|
10
|
+
**Skill header.** While this skill is active, open every turn with
|
|
11
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
12
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
13
|
+
|
|
14
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
15
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
16
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
17
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
18
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
19
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
20
|
+
|
|
21
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
22
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
23
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
24
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
25
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
26
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
27
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
28
|
+
<!-- /peaks:loop-hygiene -->
|
|
29
|
+
|
|
6
30
|
# Peaks-Loop SOP Authoring
|
|
7
31
|
|
|
8
32
|
Peaks-Loop SOP turns a natural-language workflow description into a validated, registered custom SOP, then helps the user debug it until each gate behaves as intended. The user describes the process in plain language; this skill drives the `peaks sop` CLI on their behalf — they never have to hand-write `sop.json` or remember the command sequence.
|
|
@@ -3,6 +3,30 @@ name: peaks-status
|
|
|
3
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
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
7
|
+
|
|
8
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
9
|
+
|
|
10
|
+
**Skill header.** While this skill is active, open every turn with
|
|
11
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
12
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
13
|
+
|
|
14
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
15
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
16
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
17
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
18
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
19
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
20
|
+
|
|
21
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
22
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
23
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
24
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
25
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
26
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
27
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
28
|
+
<!-- /peaks:loop-hygiene -->
|
|
29
|
+
|
|
6
30
|
# Peaks-Loop Code Status (wrapper)
|
|
7
31
|
|
|
8
32
|
Peaks-Loop Code 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.
|
|
@@ -3,6 +3,30 @@ name: peaks-test
|
|
|
3
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
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
7
|
+
|
|
8
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
9
|
+
|
|
10
|
+
**Skill header.** While this skill is active, open every turn with
|
|
11
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
12
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
13
|
+
|
|
14
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
15
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
16
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
17
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
18
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
19
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
20
|
+
|
|
21
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
22
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
23
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
24
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
25
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
26
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
27
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
28
|
+
<!-- /peaks:loop-hygiene -->
|
|
29
|
+
|
|
6
30
|
# Peaks-Loop Code Test (wrapper)
|
|
7
31
|
|
|
8
32
|
Peaks-Loop Code 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.
|