peaks-loop 4.0.37 → 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 +37 -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/cli/commands/hooks-commands.js +31 -6
- package/dist/services/code/auto-compact-orchestrator.js +2 -2
- package/dist/services/context/auto-compact-dispatcher.js +3 -1
- package/dist/services/context/build-dispatch-system-prompt.d.ts +35 -1
- package/dist/services/context/build-dispatch-system-prompt.js +55 -3
- 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 +9 -1
- package/dist/services/lint/detect-ocr-18.js +114 -10
- 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 +12 -2
- package/dist/services/skills/hooks-codegate-superpowers.d.ts +41 -0
- package/dist/services/skills/hooks-codegate-superpowers.js +95 -0
- package/dist/services/skills/hooks-settings-service.d.ts +16 -0
- package/dist/services/skills/hooks-settings-service.js +46 -13
- 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/claude-settings-template.d.ts +19 -3
- package/dist/services/workspace/claude-settings-template.js +25 -5
- package/dist/services/workspace/workspace-claude-settings-materializer.js +111 -29
- 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
|
@@ -7,6 +7,30 @@ description: |
|
|
|
7
7
|
acceptance criteria, product change proposals, or user-confirmable product artifacts.
|
|
8
8
|
visibility: internal
|
|
9
9
|
---
|
|
10
|
+
|
|
11
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
12
|
+
|
|
13
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
14
|
+
|
|
15
|
+
**Skill header.** While this skill is active, open every turn with
|
|
16
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
17
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
18
|
+
|
|
19
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
20
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
21
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
22
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
23
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
24
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
25
|
+
|
|
26
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
27
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
28
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
29
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
30
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
31
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
32
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
33
|
+
<!-- /peaks:loop-hygiene -->
|
|
10
34
|
---
|
|
11
35
|
|
|
12
36
|
# Peaks-Loop PRD
|
|
@@ -7,6 +7,30 @@ description: |
|
|
|
7
7
|
baseline reports, validation reports, acceptance checks, or refactor verification gates.
|
|
8
8
|
visibility: internal
|
|
9
9
|
---
|
|
10
|
+
|
|
11
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
12
|
+
|
|
13
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
14
|
+
|
|
15
|
+
**Skill header.** While this skill is active, open every turn with
|
|
16
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
17
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
18
|
+
|
|
19
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
20
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
21
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
22
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
23
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
24
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
25
|
+
|
|
26
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
27
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
28
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
29
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
30
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
31
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
32
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
33
|
+
<!-- /peaks:loop-hygiene -->
|
|
10
34
|
---
|
|
11
35
|
|
|
12
36
|
## Single-scope-axis naming convention
|
|
@@ -8,6 +8,30 @@ description: |
|
|
|
8
8
|
Always use this for Peaks-Loop refactor workflows.
|
|
9
9
|
visibility: internal
|
|
10
10
|
---
|
|
11
|
+
|
|
12
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
13
|
+
|
|
14
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
15
|
+
|
|
16
|
+
**Skill header.** While this skill is active, open every turn with
|
|
17
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
18
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
19
|
+
|
|
20
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
21
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
22
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
23
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
24
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
25
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
26
|
+
|
|
27
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
28
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
29
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
30
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
31
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
32
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
33
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
34
|
+
<!-- /peaks:loop-hygiene -->
|
|
11
35
|
---
|
|
12
36
|
|
|
13
37
|
## Single-scope-axis naming convention
|
|
@@ -4,6 +4,30 @@ visibility: internal
|
|
|
4
4
|
description: Third-party independent code-review skill for Peaks. Use as a parallel reviewer to karpathy-reviewer when a workflow needs an out-of-band (non-RD-model) review pass to mitigate single-LLM self-dogfood blind spots. Emits a schema-validated ReviewerEnvelope (no free-form LLM JSON). v2.14.0 G4.
|
|
5
5
|
---
|
|
6
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 -->
|
|
30
|
+
|
|
7
31
|
## Single-scope-axis naming convention
|
|
8
32
|
|
|
9
33
|
> **Read once at the top of this file; the rest of the skill is written against it.**
|
|
@@ -7,6 +7,30 @@ description: |
|
|
|
7
7
|
GitHub artifact repository pointers, sync state, or rollback evidence.
|
|
8
8
|
visibility: internal
|
|
9
9
|
---
|
|
10
|
+
|
|
11
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
12
|
+
|
|
13
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
14
|
+
|
|
15
|
+
**Skill header.** While this skill is active, open every turn with
|
|
16
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
17
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
18
|
+
|
|
19
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
20
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
21
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
22
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
23
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
24
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
25
|
+
|
|
26
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
27
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
28
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
29
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
30
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
31
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
32
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
33
|
+
<!-- /peaks:loop-hygiene -->
|
|
10
34
|
---
|
|
11
35
|
|
|
12
36
|
# Peaks-Loop SC
|
|
@@ -12,6 +12,30 @@ metadata:
|
|
|
12
12
|
- schema: .peaks/project-scan/audit-output-schema.md
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
16
|
+
|
|
17
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
18
|
+
|
|
19
|
+
**Skill header.** While this skill is active, open every turn with
|
|
20
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
21
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
22
|
+
|
|
23
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
24
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
25
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
26
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
27
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
28
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
29
|
+
|
|
30
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
31
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
32
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
33
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
34
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
35
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
36
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
37
|
+
<!-- /peaks:loop-hygiene -->
|
|
38
|
+
|
|
15
39
|
# peaks-security-audit
|
|
16
40
|
|
|
17
41
|
> **Independent security audit skill** — separate from `peaks-rd`'s
|
|
@@ -7,6 +7,30 @@ description: |
|
|
|
7
7
|
assumptions, discarded options, staleness checks, lessons, or reusable project memory.
|
|
8
8
|
visibility: internal
|
|
9
9
|
---
|
|
10
|
+
|
|
11
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
12
|
+
|
|
13
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
14
|
+
|
|
15
|
+
**Skill header.** While this skill is active, open every turn with
|
|
16
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
17
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
18
|
+
|
|
19
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
20
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
21
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
22
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
23
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
24
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
25
|
+
|
|
26
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
27
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
28
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
29
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
30
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
31
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
32
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
33
|
+
<!-- /peaks:loop-hygiene -->
|
|
10
34
|
---
|
|
11
35
|
|
|
12
36
|
# Peaks-Loop TXT
|
|
@@ -7,6 +7,30 @@ description: |
|
|
|
7
7
|
frontend page behavior, high-fidelity HTML prototypes, or UI regression seeds.
|
|
8
8
|
visibility: internal
|
|
9
9
|
---
|
|
10
|
+
|
|
11
|
+
<!-- peaks:loop-hygiene — generated block; keep byte-identical in every SKILL.md -->
|
|
12
|
+
|
|
13
|
+
## Loop hygiene (every turn — MANDATORY)
|
|
14
|
+
|
|
15
|
+
**Skill header.** While this skill is active, open every turn with
|
|
16
|
+
`Peaks-Loop Skill: <skill> | Peaks-Loop Gate: <gate> | Next: <one short action>`.
|
|
17
|
+
Every turn, not only the first — it is how the user knows which skill is driving.
|
|
18
|
+
|
|
19
|
+
**Context is this skill's own business.** Run `peaks skill presence --json` every turn and
|
|
20
|
+
read its `context` block. When `action` is `auto-fire`, `pre-compact`, or `red-line`,
|
|
21
|
+
run `peaks code auto-compact --project .` **yourself**, then continue. Tell the user the
|
|
22
|
+
ratio in one line if it helps, but never hand them the compaction step: asking the user to
|
|
23
|
+
run `/compact` is the regression the zero-pause contract forbids. This holds in **every
|
|
24
|
+
mode** — standard *and* 24h. The mode moves the threshold, never the obligation.
|
|
25
|
+
|
|
26
|
+
**Read before you edit.** Read a file BEFORE your first `Edit` / `Write` / `MultiEdit` on
|
|
27
|
+
it — for every path outside `.peaks/**` (source, tests, docs, config); `.peaks/**` writes
|
|
28
|
+
are exempt. Skipping that read trips a `PreToolUse` gate (ECC's "Fact-Forcing Gate"),
|
|
29
|
+
which denies the edit. **A denial is not a failure and the tool is not broken — your edit
|
|
30
|
+
was not applied.** Read the file, state the facts the gate asks for (importers, affected
|
|
31
|
+
API, data schemas if any, the user's verbatim instruction), then retry the same operation.
|
|
32
|
+
Do not switch tools, do not give up, do not retry blindly.
|
|
33
|
+
<!-- /peaks:loop-hygiene -->
|
|
10
34
|
---
|
|
11
35
|
|
|
12
36
|
# Peaks-Loop UI
|
|
@@ -3,6 +3,30 @@ name: peaks-audit
|
|
|
3
3
|
description: Gate autonomous LLM work on a 6-dimension audit + user-accepted goal. Use IMMEDIATELY after a need is expressed, BEFORE any PRD/RD/QA work starts.
|
|
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-code
|
|
|
3
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
|
+
<!-- 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
|
> **Detached sub-agent mode (Phase A, slice 2026-08-10).** When the orchestrator requires true parallelism with isolated context windows and survives orchestrator session exit, dispatch sub-agents with `--mode detached --vendor <claude|codex|copilot>`. The CLI spawns a real OS process via `ProcessSupervisor` (Windows `DETACHED_PROCESS` + `CREATE_NEW_PROCESS_GROUP`, POSIX `setsid` + `nohup`); the child vendor LLM receives a 5–8KB minimum prompt slice (no orchestrator session history) and self-compacts at 0.85 / 0.95 against the vendor window via the `<peaks-auto-compact>` marker (G8 — unlimited spend authorized). Orchestrator MUST emit one line of prose before every detached dispatch: `⏳ Spawning detached sub-agent via <vendor>: rid=<rid> (ETA ~60s)`. Status is read from `.peaks/_runtime/<sid>/detached/<rid>/status.json`; `LifecycleOwner` enforces 100% cleanup of `pid` / `log.txt` / `status.json` / `owner-session` on every exit path. `--no-throttle --max-concurrent <N>` bypasses `ResourceBudgetGuard` (user accepts risk; default max=8). See `references/sub-agent-dispatch.md` §"Detached Mode" for the full contract. Default mode remains `in-process` for backward compat (existing 106+ dispatch tests untouched).
|
|
7
31
|
---
|
|
8
32
|
|
|
@@ -3,6 +3,30 @@ name: peaks-content
|
|
|
3
3
|
description: Non-code orchestrator for content workflows (draft / edit / publish / archive). Use when a user wants to drive an end-to-end content-production loop (blog post, newsletter, marketing copy, social thread, doc page) where the LLM must coordinate draft / edit / tone / publish / archive stages with explicit gates between them, and where the user only wants to speak natural language and pick options. NOT for free-form chatting; NOT for code review. Reuses the peaks-loop Loop Engineering primitives (Loop Engineering Asset, Bee Asset, Workflow Trace, Evolution Evaluation) but does NOT import peaks-code internals. Triggers on `/peaks-content`, "peaks content", "content workflow", "publish this to <channel>", "edit the draft", "archive the previous version".
|
|
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-content
|
|
7
31
|
|
|
8
32
|
`peaks-content` is the **content-domain** orchestrator for peaks-loop. It drives an end-to-end content-production loop — draft, edit, publish, archive — through LLM-mediated sub-agents (the "bees") so a non-technical user can produce a polished, channel-ready piece of writing by speaking natural language and picking from multi-choice options. The user never types a CLI verb; the user never hand-authors markdown or JSON; the LLM runs every structured operation on the user's behalf.
|
|
@@ -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.
|