peaks-cli 1.0.23 → 1.0.24
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/dist/src/cli/commands/core-artifact-commands.js +31 -1
- package/dist/src/services/skills/skill-presence-service.d.ts +2 -0
- package/dist/src/services/skills/skill-presence-service.js +22 -1
- package/dist/src/services/standards/project-standards-service.js +21 -0
- package/dist/src/shared/version.d.ts +1 -1
- package/dist/src/shared/version.js +1 -1
- package/output-styles/peaks-skill-swarm.md +34 -34
- package/package.json +1 -1
- package/skills/peaks-prd/SKILL.md +10 -10
- package/skills/peaks-qa/SKILL.md +48 -36
- package/skills/peaks-rd/SKILL.md +53 -53
- package/skills/peaks-sc/SKILL.md +9 -9
- package/skills/peaks-solo/SKILL.md +102 -99
- package/skills/peaks-txt/SKILL.md +17 -17
- package/skills/peaks-ui/SKILL.md +14 -14
package/skills/peaks-rd/SKILL.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: peaks-rd
|
|
3
|
-
description: Research and development skill for Peaks. Use for engineering analysis, refactor planning, project scanning, code standards, unit-test coverage gates, implementation contracts, task graphs, and RD handoffs. Always use this for Peaks refactor workflows.
|
|
3
|
+
description: Research and development skill for Peaks. Use for engineering analysis, refactor planning, project scanning, code standards, unit-test coverage gates, implementation contracts, task graphs, and RD handoffs. Always use this for Peaks-Cli refactor workflows.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Peaks RD
|
|
6
|
+
# Peaks-Cli RD
|
|
7
7
|
|
|
8
|
-
Peaks RD owns engineering analysis, implementation planning, and refactor execution contracts.
|
|
8
|
+
Peaks-Cli RD owns engineering analysis, implementation planning, and refactor execution contracts.
|
|
9
9
|
|
|
10
10
|
## Skill presence (MANDATORY first action)
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ Before any analysis or tool call, immediately run:
|
|
|
15
15
|
peaks skill presence:set peaks-rd --mode <mode> --gate startup
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
Then display: `Peaks Skill: peaks-rd | Gate: startup | Next: <one short action>`. Update with `peaks skill presence:set peaks-rd --mode <mode> --gate <gate>` when gates change. When the role's work ends, run `peaks skill presence:clear`.
|
|
18
|
+
Then display: `Peaks-Cli Skill: peaks-rd | Peaks-Cli Gate: startup | Next: <one short action>`. Update with `peaks skill presence:set peaks-rd --mode <mode> --gate <gate>` when gates change. When the role's work ends, run `peaks skill presence:clear`.
|
|
19
19
|
|
|
20
20
|
## Responsibilities
|
|
21
21
|
|
|
@@ -110,25 +110,25 @@ peaks mcp call --capability context7.docs-lookup --tool <name> --args-json '{...
|
|
|
110
110
|
|
|
111
111
|
# 6. record red-line scope, slice contract, coverage status into the RD artifact, then implement
|
|
112
112
|
|
|
113
|
-
# 6.5 BEFORE tech-doc: verify EVERY path in the tech-doc against actual project structure (Gate A2)
|
|
113
|
+
# 6.5 BEFORE tech-doc: verify EVERY path in the tech-doc against actual project structure (Peaks-Cli Gate A2)
|
|
114
114
|
# ls every directory path in the tech-doc — zero "No such file" allowed
|
|
115
115
|
# This is the most common RD failure mode. Do not skip it.
|
|
116
116
|
|
|
117
|
-
# 6.6 BEFORE implementation: verify CLAUDE.md + .claude/rules/ exist (Gate A3)
|
|
117
|
+
# 6.6 BEFORE implementation: verify CLAUDE.md + .claude/rules/ exist (Peaks-Cli Gate A3)
|
|
118
118
|
# Missing standards files → run `peaks standards init --project .` first
|
|
119
119
|
# Without project rules, security review and code review triggers won't fire.
|
|
120
120
|
|
|
121
121
|
# 7. AFTER implementation, BEFORE QA handoff — RUN THESE GATES:
|
|
122
|
-
# Gate B2: unit tests exist and pass → npx vitest run (or project equivalent)
|
|
123
|
-
# Gate B3: code review evidence → .peaks/<id>/rd/code-review.md
|
|
124
|
-
# Gate B4: security review evidence → .peaks/<id>/rd/security-review.md
|
|
125
|
-
# Gate B5 (NEW): RD artifact body has no unfilled placeholders.
|
|
122
|
+
# Peaks-Cli Gate B2: unit tests exist and pass → npx vitest run (or project equivalent)
|
|
123
|
+
# Peaks-Cli Gate B3: code review evidence → .peaks/<id>/rd/code-review.md
|
|
124
|
+
# Peaks-Cli Gate B4: security review evidence → .peaks/<id>/rd/security-review.md
|
|
125
|
+
# Peaks-Cli Gate B5 (NEW): RD artifact body has no unfilled placeholders.
|
|
126
126
|
peaks request lint <rid> --role rd --project <repo> --session-id <sid> --json
|
|
127
|
-
# Gate B6 (NEW): declared --type still matches the actual diff after implementation.
|
|
127
|
+
# Peaks-Cli Gate B6 (NEW): declared --type still matches the actual diff after implementation.
|
|
128
128
|
peaks scan request-type-sanity --project <repo> --type <type> --json
|
|
129
|
-
# Gate B7 (NEW, repair cycles only): we have not exceeded the 3-cycle cap.
|
|
129
|
+
# Peaks-Cli Gate B7 (NEW, repair cycles only): we have not exceeded the 3-cycle cap.
|
|
130
130
|
peaks request repair-status <rid> --project <repo> --session-id <sid> --json
|
|
131
|
-
# Gate B8 (NEW): every changed file matches the RD red-line scope (no out-of-bounds writes).
|
|
131
|
+
# Peaks-Cli Gate B8 (NEW): every changed file matches the RD red-line scope (no out-of-bounds writes).
|
|
132
132
|
peaks scan diff-vs-scope --rid <rid> --project <repo> --session-id <sid> --json
|
|
133
133
|
# All six non-zero → BLOCKED. Fix and re-check before attempting the qa-handoff transition.
|
|
134
134
|
|
|
@@ -158,14 +158,14 @@ You cannot declare a phase complete from memory. Each gate below is a `ls` or `g
|
|
|
158
158
|
>
|
|
159
159
|
> The escape hatch `--allow-incomplete --reason "<text>"` still exists for one-off exceptions; the bypass is recorded in the artifact transition note.
|
|
160
160
|
|
|
161
|
-
**Gate A — After project-scan read (before any implementation):**
|
|
161
|
+
**Peaks-Cli Gate A — After project-scan read (before any implementation):**
|
|
162
162
|
```bash
|
|
163
163
|
ls .peaks/<id>/rd/project-scan.md
|
|
164
164
|
# Expected output: .peaks/<id>/rd/project-scan.md
|
|
165
165
|
# "No such file" → STOP, create the project-scan first. Do not write code.
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
**Gate A2 — Before tech-doc write: project structure verified (PATH CORRECTNESS — CRITICAL):**
|
|
168
|
+
**Peaks-Cli Gate A2 — Before tech-doc write: project structure verified (PATH CORRECTNESS — CRITICAL):**
|
|
169
169
|
```bash
|
|
170
170
|
# Verify EVERY file path and directory in the tech-doc exists in the actual project.
|
|
171
171
|
# Do not assume paths. Do not guess directory structures. Open the files and verify.
|
|
@@ -177,7 +177,7 @@ ls <every-single-directory-path-in-tech-doc> 2>&1 | grep -c "No such file"
|
|
|
177
177
|
# breaks the implementation, and forces the user to correct the engineer.
|
|
178
178
|
```
|
|
179
179
|
|
|
180
|
-
**Gate A3 — Before implementation: project standards files exist (CLAUDE.md + .claude/rules/):**
|
|
180
|
+
**Peaks-Cli Gate A3 — Before implementation: project standards files exist (CLAUDE.md + .claude/rules/):**
|
|
181
181
|
```bash
|
|
182
182
|
ls CLAUDE.md .claude/rules/common/coding-style.md .claude/rules/common/code-review.md .claude/rules/common/security.md 2>&1 | grep -c "No such file"
|
|
183
183
|
# Expected: 0 (all four files exist)
|
|
@@ -186,14 +186,14 @@ ls CLAUDE.md .claude/rules/common/coding-style.md .claude/rules/common/code-revi
|
|
|
186
186
|
# Without CLAUDE.md and .claude/rules/, code review and security review triggers won't fire.
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
-
**Gate B — Before QA handoff:**
|
|
189
|
+
**Peaks-Cli Gate B — Before QA handoff:**
|
|
190
190
|
```bash
|
|
191
191
|
ls .peaks/<id>/rd/requests/<rid>.md \
|
|
192
192
|
.peaks/<id>/rd/tech-doc.md
|
|
193
193
|
# Both must exist. Missing either → BLOCKED, do not hand off to QA
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
**Gate B2 — Before QA handoff: unit tests exist and pass:**
|
|
196
|
+
**Peaks-Cli Gate B2 — Before QA handoff: unit tests exist and pass:**
|
|
197
197
|
```bash
|
|
198
198
|
# Run the project's test command against changed files. Record the output.
|
|
199
199
|
# Example (adapt to project test runner):
|
|
@@ -202,7 +202,7 @@ npx vitest run --reporter=verbose 2>&1 | tail -20
|
|
|
202
202
|
# Any failing test or zero tests for new code → BLOCKED. Write tests, then re-run.
|
|
203
203
|
```
|
|
204
204
|
|
|
205
|
-
**Gate B3 — Before QA handoff: code review evidence exists:**
|
|
205
|
+
**Peaks-Cli Gate B3 — Before QA handoff: code review evidence exists:**
|
|
206
206
|
```bash
|
|
207
207
|
ls .peaks/<id>/rd/code-review.md 2>&1
|
|
208
208
|
# Expected: .peaks/<id>/rd/code-review.md
|
|
@@ -210,7 +210,7 @@ ls .peaks/<id>/rd/code-review.md 2>&1
|
|
|
210
210
|
# record findings, fix CRITICAL/HIGH issues, then re-check.
|
|
211
211
|
```
|
|
212
212
|
|
|
213
|
-
**Gate B4 — Before QA handoff: security review evidence exists:**
|
|
213
|
+
**Peaks-Cli Gate B4 — Before QA handoff: security review evidence exists:**
|
|
214
214
|
```bash
|
|
215
215
|
ls .peaks/<id>/rd/security-review.md 2>&1
|
|
216
216
|
# Expected: .peaks/<id>/rd/security-review.md
|
|
@@ -218,7 +218,7 @@ ls .peaks/<id>/rd/security-review.md 2>&1
|
|
|
218
218
|
# fix CRITICAL/HIGH issues, record findings, then re-check.
|
|
219
219
|
```
|
|
220
220
|
|
|
221
|
-
**Gate B5 — RD artifact body has no unfilled placeholders:**
|
|
221
|
+
**Peaks-Cli Gate B5 — RD artifact body has no unfilled placeholders:**
|
|
222
222
|
```bash
|
|
223
223
|
peaks request lint <rid> --role rd --project <repo> --session-id <sid> --json
|
|
224
224
|
# Expected: ok=true. exit 0.
|
|
@@ -226,7 +226,7 @@ peaks request lint <rid> --role rd --project <repo> --session-id <sid> --json
|
|
|
226
226
|
# and TBD/TODO marker with line numbers. Fill them in before attempting handoff.
|
|
227
227
|
```
|
|
228
228
|
|
|
229
|
-
**Gate B6 — Declared --type matches the actual diff:**
|
|
229
|
+
**Peaks-Cli Gate B6 — Declared --type matches the actual diff:**
|
|
230
230
|
```bash
|
|
231
231
|
peaks scan request-type-sanity --project <repo> --type <type> --json
|
|
232
232
|
# Expected: consistent=true. exit 0.
|
|
@@ -235,7 +235,7 @@ peaks scan request-type-sanity --project <repo> --type <type> --json
|
|
|
235
235
|
# (`peaks request init` with the corrected --type) or trim the scope.
|
|
236
236
|
```
|
|
237
237
|
|
|
238
|
-
**Gate B7 — Repair cycle cap (only relevant during RD↔QA repair loop):**
|
|
238
|
+
**Peaks-Cli Gate B7 — Repair cycle cap (only relevant during RD↔QA repair loop):**
|
|
239
239
|
```bash
|
|
240
240
|
peaks request repair-status <rid> --project <repo> --session-id <sid> --json
|
|
241
241
|
# Expected: atCap=false. exit 0.
|
|
@@ -243,7 +243,7 @@ peaks request repair-status <rid> --project <repo> --session-id <sid> --json
|
|
|
243
243
|
# handoff via Solo rather than entering a fourth cycle.
|
|
244
244
|
```
|
|
245
245
|
|
|
246
|
-
**Gate B8 — Diff stays inside the declared red-line scope:**
|
|
246
|
+
**Peaks-Cli Gate B8 — Diff stays inside the declared red-line scope:**
|
|
247
247
|
```bash
|
|
248
248
|
peaks scan diff-vs-scope --rid <rid> --project <repo> --session-id <sid> --json
|
|
249
249
|
# Expected: ok=true. exit 0.
|
|
@@ -259,7 +259,7 @@ peaks scan diff-vs-scope --rid <rid> --project <repo> --session-id <sid> --json
|
|
|
259
259
|
|
|
260
260
|
## Project standards preflight
|
|
261
261
|
|
|
262
|
-
Before RD planning or implementation work in a code repository, call the Peaks CLI:
|
|
262
|
+
Before RD planning or implementation work in a code repository, call the Peaks-Cli CLI:
|
|
263
263
|
|
|
264
264
|
- `peaks standards init --project <path> --dry-run`
|
|
265
265
|
- `peaks standards update --project <path> --dry-run`
|
|
@@ -270,17 +270,17 @@ If `CLAUDE.md` is missing, treat creation as the preferred path. If `CLAUDE.md`
|
|
|
270
270
|
|
|
271
271
|
Use gstack as a concrete engineering workflow reference for `Think → Plan → Build → Review → Test → Ship → Reflect`:
|
|
272
272
|
|
|
273
|
-
- map plan engineering review to Peaks RD risk matrices, task graphs, and slice contracts;
|
|
273
|
+
- map plan engineering review to Peaks-Cli RD risk matrices, task graphs, and slice contracts;
|
|
274
274
|
- map build/review discipline to strict spec-first implementation and code-review gates;
|
|
275
275
|
- map investigate/careful/guard concepts to root-cause analysis, risky-action confirmation, and scoped edit boundaries;
|
|
276
|
-
- adapt gstack concepts into Peaks artifacts rather than invoking gstack commands as runtime dependencies.
|
|
276
|
+
- adapt gstack concepts into Peaks-Cli artifacts rather than invoking gstack commands as runtime dependencies.
|
|
277
277
|
|
|
278
|
-
When Peaks RD produces or changes code, dry-run repeatedly instead of only during preflight:
|
|
278
|
+
When Peaks-Cli RD produces or changes code, dry-run repeatedly instead of only during preflight:
|
|
279
279
|
|
|
280
280
|
1. run standards dry-runs before planning or implementation;
|
|
281
|
-
2. run the relevant Peaks dry-run again after each meaningful implementation slice or standards-affecting decision;
|
|
281
|
+
2. run the relevant Peaks-Cli dry-run again after each meaningful implementation slice or standards-affecting decision;
|
|
282
282
|
3. after implementation, run required unit tests, code review, and security review before any completion claim;
|
|
283
|
-
4. only after those checks pass, run the relevant Peaks dry-run before handoff, review, or retention-boundary work;
|
|
283
|
+
4. only after those checks pass, run the relevant Peaks-Cli dry-run before handoff, review, or retention-boundary work;
|
|
284
284
|
5. record commands, results, coverage evidence, reviewer/security findings, dry-run result, and remaining action in the RD handoff capsule.
|
|
285
285
|
|
|
286
286
|
## Requirement boundary red-line self-check
|
|
@@ -291,7 +291,7 @@ Before every code or mock change, RD must write and then enforce a red-line scop
|
|
|
291
291
|
2. name adjacent surfaces that are explicitly out of scope, especially list pages, delete/update flows, unrelated API endpoints, existing data records, authentication, permissions, and shared runtime configuration;
|
|
292
292
|
3. reject any implementation that modifies, deletes, mocks, or replaces out-of-scope behavior just to make validation pass;
|
|
293
293
|
4. for API/mock work, mock only the exact request path and method required by the approved slice, and do not override broader collection/list endpoints unless the requirement explicitly includes them;
|
|
294
|
-
5. before handoff, run `peaks scan diff-vs-scope --rid <rid> --project <repo>` to deterministically verify the diff against the declared patterns (this is **Gate B8**). The CLI auto-allows test files and `.peaks/` artifacts; any other unclassified or out-of-scope file blocks RD completion until the diff is trimmed OR the scope is widened with PRD approval.
|
|
294
|
+
5. before handoff, run `peaks scan diff-vs-scope --rid <rid> --project <repo>` to deterministically verify the diff against the declared patterns (this is **Peaks-Cli Gate B8**). The CLI auto-allows test files and `.peaks/` artifacts; any other unclassified or out-of-scope file blocks RD completion until the diff is trimmed OR the scope is widened with PRD approval.
|
|
295
295
|
|
|
296
296
|
## Mandatory tech-doc output
|
|
297
297
|
|
|
@@ -316,21 +316,21 @@ Before every code or mock change, RD must write and then enforce a red-line scop
|
|
|
316
316
|
|
|
317
317
|
RD cannot mark a development slice complete until all of these are true. Each gate below maps to a hard verification gate in the Transition Verification Gates section — run the corresponding command, see the output.
|
|
318
318
|
|
|
319
|
-
0. the project-scan (`.peaks/<session-id>/rd/project-scan.md`) has been read and its component-library, CSS-framework, and build-tool findings have been applied — no implementation may start before this; **→ verified by Gate A**
|
|
320
|
-
0.5. NO wrong paths in tech-doc — every directory and file path has been verified with `ls` against the actual project; **→ verified by Gate A2**
|
|
321
|
-
0.6. CLAUDE.md and `.claude/rules/common/{coding-style,code-review,security}.md` exist in the project root; **→ verified by Gate A3**
|
|
319
|
+
0. the project-scan (`.peaks/<session-id>/rd/project-scan.md`) has been read and its component-library, CSS-framework, and build-tool findings have been applied — no implementation may start before this; **→ verified by Peaks-Cli Gate A**
|
|
320
|
+
0.5. NO wrong paths in tech-doc — every directory and file path has been verified with `ls` against the actual project; **→ verified by Peaks-Cli Gate A2**
|
|
321
|
+
0.6. CLAUDE.md and `.claude/rules/common/{coding-style,code-review,security}.md` exist in the project root; **→ verified by Peaks-Cli Gate A3**
|
|
322
322
|
1. OpenSpec change artifacts exist and are linked for non-trivial work when the target repo already has `openspec/`, or the user has approved adding it;
|
|
323
|
-
2. unit tests covering the new or changed behavior have been added or updated and run successfully; **→ verified by Gate B2**
|
|
323
|
+
2. unit tests covering the new or changed behavior have been added or updated and run successfully; **→ verified by Peaks-Cli Gate B2**
|
|
324
324
|
3. if the repository is legacy and total UT coverage is below the project target, do not block on historical coverage, but require coverage evidence for newly added or changed code;
|
|
325
325
|
4. for frontend or UI-affecting slices, RD self-test has launched the app and used Playwright MCP for real browser end-to-end validation with visible-browser confirmation (install via `peaks mcp plan/apply --capability playwright-mcp.browser-validation --yes` if not yet present; navigate with `mcp__playwright__browser_navigate`, capture with `browser_snapshot` / `browser_take_screenshot` / `browser_console_messages` / `browser_network_requests`, sanitize route/actions and observations before retention, record acceptance result, close with `browser_close`); if login, CAPTCHA, SSO, or MFA appears, the headed browser is already visible — wait for the user to complete login and explicitly confirm completion before continuing;
|
|
326
|
-
5. code review has been performed with findings recorded and CRITICAL/HIGH issues fixed before progression; unresolved CRITICAL/HIGH findings only allow a blocked handoff; **→ verified by Gate B3** — evidence file must exist at `.peaks/<id>/rd/code-review.md`
|
|
327
|
-
6. security review has been performed for the changed surface, with CRITICAL/HIGH issues fixed before progression and particular attention to user input, file system access, external calls, auth, secrets, and dependency changes; **→ verified by Gate B4** — evidence file must exist at `.peaks/<id>/rd/security-review.md`
|
|
326
|
+
5. code review has been performed with findings recorded and CRITICAL/HIGH issues fixed before progression; unresolved CRITICAL/HIGH findings only allow a blocked handoff; **→ verified by Peaks-Cli Gate B3** — evidence file must exist at `.peaks/<id>/rd/code-review.md`
|
|
327
|
+
6. security review has been performed for the changed surface, with CRITICAL/HIGH issues fixed before progression and particular attention to user input, file system access, external calls, auth, secrets, and dependency changes; **→ verified by Peaks-Cli Gate B4** — evidence file must exist at `.peaks/<id>/rd/security-review.md`
|
|
328
328
|
7. the post-check dry-run has passed and is linked in the handoff;
|
|
329
|
-
8. the tech-doc artifact (`.peaks/<session-id>/rd/tech-doc.md`) is written and linked from the request artifact. **→ verified by Gate B**
|
|
330
|
-
9. the RD request artifact body has no unfilled placeholders, TBD markers, or bare-bullet stubs (`peaks request lint <rid> --role rd`). **→ verified by Gate B5**
|
|
331
|
-
10. the declared `--type` is still consistent with the actual git diff (`peaks scan request-type-sanity --type <type>`). **→ verified by Gate B6**
|
|
332
|
-
11. the repair-cycle counter is below the cap before a repeat handoff (`peaks request repair-status <rid>`). **→ verified by Gate B7**
|
|
333
|
-
12. every changed file matches the RD red-line scope (no out-of-bounds writes); auto-allowed files (tests, .peaks artifacts) don't need an explicit pattern (`peaks scan diff-vs-scope --rid <rid>`). **→ verified by Gate B8**
|
|
329
|
+
8. the tech-doc artifact (`.peaks/<session-id>/rd/tech-doc.md`) is written and linked from the request artifact. **→ verified by Peaks-Cli Gate B**
|
|
330
|
+
9. the RD request artifact body has no unfilled placeholders, TBD markers, or bare-bullet stubs (`peaks request lint <rid> --role rd`). **→ verified by Peaks-Cli Gate B5**
|
|
331
|
+
10. the declared `--type` is still consistent with the actual git diff (`peaks scan request-type-sanity --type <type>`). **→ verified by Peaks-Cli Gate B6**
|
|
332
|
+
11. the repair-cycle counter is below the cap before a repeat handoff (`peaks request repair-status <rid>`). **→ verified by Peaks-Cli Gate B7**
|
|
333
|
+
12. every changed file matches the RD red-line scope (no out-of-bounds writes); auto-allowed files (tests, .peaks artifacts) don't need an explicit pattern (`peaks scan diff-vs-scope --rid <rid>`). **→ verified by Peaks-Cli Gate B8**
|
|
334
334
|
|
|
335
335
|
If any gate fails, return to development for fixes or hand off as blocked. Do not describe the work as done, shippable, or ready for QA.
|
|
336
336
|
|
|
@@ -355,7 +355,7 @@ The 100% coverage target on testable files is meaningful coverage, not a score t
|
|
|
355
355
|
Rules:
|
|
356
356
|
|
|
357
357
|
1. If a missing line or branch is a **defensive guard for an unreachable case** (caller invariant, type system, upstream contract), remove the guard rather than write a test that fabricates the impossible. Simpler code beats higher line count.
|
|
358
|
-
2. If a missing line or branch is **IO / platform glue that cannot be tested cleanly** (real process spawn, homedir-default paths, registry side effects), add the file to `coverage.exclude` in `vitest.config.ts` with a one-line comment explaining why. This is the established Peaks pattern (`mcp-stdio-transport.ts`, `*-types.ts`, `doctor-service.ts`, `artifact-service.ts`, `workspace-service.ts`).
|
|
358
|
+
2. If a missing line or branch is **IO / platform glue that cannot be tested cleanly** (real process spawn, homedir-default paths, registry side effects), add the file to `coverage.exclude` in `vitest.config.ts` with a one-line comment explaining why. This is the established Peaks-Cli pattern (`mcp-stdio-transport.ts`, `*-types.ts`, `doctor-service.ts`, `artifact-service.ts`, `workspace-service.ts`).
|
|
359
359
|
3. If a missing line or branch is **real behavior a caller relies on**, write the test — but frame the assertion around the user-visible behavior ("uses the wall clock when no clock is injected and writes a real timestamp into the artifact body"), not the implementation branch ("covers the `?? defaultClock` fallback"). A test that would only fail if someone deleted a single branch is a smell.
|
|
360
360
|
4. When the only way to reach 100% is to write a test that documents nothing a future maintainer would care about, the right answer is to **lower the target for that file via `coverage.exclude`** or to **simplify the production code to remove the dead branch**, never to write the padding test.
|
|
361
361
|
5. Test names must describe behavior, not coverage targets. Tests titled like "covers line 73" or "exercises the default factory branch" are red flags during code review and must be rewritten or deleted.
|
|
@@ -372,9 +372,9 @@ For non-trivial RD changes, use OpenSpec when the project already has `openspec/
|
|
|
372
372
|
|
|
373
373
|
Create or update `openspec/changes/<change-id>/proposal.md`, `design.md`, `tasks.md`, and `specs/**/spec.md` before implementation slices begin. If the repository uses a different existing OpenSpec layout, follow that layout and record the file paths in the RD handoff.
|
|
374
374
|
|
|
375
|
-
OpenSpec artifacts are durable project specification files, not Peaks runtime swarm artifacts. They may live in the target repository root under `openspec/changes/...`. Swarm/runtime outputs such as task graphs, worker briefs, worker reports, reducer reports, scan reports, validation evidence, and compact handoffs must remain in the configured Peaks artifact workspace outside the target repository.
|
|
375
|
+
OpenSpec artifacts are durable project specification files, not Peaks-Cli runtime swarm artifacts. They may live in the target repository root under `openspec/changes/...`. Swarm/runtime outputs such as task graphs, worker briefs, worker reports, reducer reports, scan reports, validation evidence, and compact handoffs must remain in the configured Peaks-Cli artifact workspace outside the target repository.
|
|
376
376
|
|
|
377
|
-
Peaks PRD/RD/QA gates remain authoritative: OpenSpec structures the durable spec, while Peaks artifacts still carry role handoffs, coverage gates, QA evidence, swarm coordination, and execution state.
|
|
377
|
+
Peaks-Cli PRD/RD/QA gates remain authoritative: OpenSpec structures the durable spec, while Peaks-Cli artifacts still carry role handoffs, coverage gates, QA evidence, swarm coordination, and execution state.
|
|
378
378
|
|
|
379
379
|
## Mock data placement rules (BLOCKING — framework-aware)
|
|
380
380
|
|
|
@@ -429,7 +429,7 @@ Application projects generated through this skill must not contain JavaScript so
|
|
|
429
429
|
|
|
430
430
|
## Artifact and standards output
|
|
431
431
|
|
|
432
|
-
When project identification or scanning produces reports, matrices, maps, plans, or validation files, write them under the configured Peaks artifact workspace. By default, use local non-git storage at `.peaks/<session-id>/rd/` in the target project or the Peaks CLI-provided local workspace. If the artifact workspace is unknown, create or request `.peaks/<session-id>/` before writing generated outputs. Use one session directory consistently so generated outputs stay grouped.
|
|
432
|
+
When project identification or scanning produces reports, matrices, maps, plans, or validation files, write them under the configured Peaks-Cli artifact workspace. By default, use local non-git storage at `.peaks/<session-id>/rd/` in the target project or the Peaks-Cli CLI-provided local workspace. If the artifact workspace is unknown, create or request `.peaks/<session-id>/` before writing generated outputs. Use one session directory consistently so generated outputs stay grouped.
|
|
433
433
|
|
|
434
434
|
Do not default to a git-backed artifact repository, external artifact sync, or automatic commits for intermediate artifacts. Git inclusion or sync requires explicit user confirmation or an active profile that clearly authorizes it. Browser evidence must be sanitized before retention: do not store login URLs, cookies, headers, tokens, storage state, browser traces, or screenshots/logs containing PII or SSO/MFA material.
|
|
435
435
|
|
|
@@ -443,11 +443,11 @@ Before RD work stops, finishes, blocks, or hands off to another role, emit a sho
|
|
|
443
443
|
|
|
444
444
|
## External references
|
|
445
445
|
|
|
446
|
-
**Matt Pocock skills** (`diagnose`, `triage`, `tdd`, `improve-codebase-architecture`, `prototype`): Engineering references only. Inspect before applying; Peaks RD gates remain authoritative.
|
|
446
|
+
**Matt Pocock skills** (`diagnose`, `triage`, `tdd`, `improve-codebase-architecture`, `prototype`): Engineering references only. Inspect before applying; Peaks-Cli RD gates remain authoritative.
|
|
447
447
|
|
|
448
448
|
## Matt Pocock skills integration
|
|
449
449
|
|
|
450
|
-
Engineering methods from `mattpocock/skills` can inform RD work but never replace Peaks gates. Inspect upstream skill content before applying any method.
|
|
450
|
+
Engineering methods from `mattpocock/skills` can inform RD work but never replace Peaks-Cli gates. Inspect upstream skill content before applying any method.
|
|
451
451
|
|
|
452
452
|
- `diagnose` — root-cause investigation before fixing
|
|
453
453
|
- `triage` — prioritize bug surface area
|
|
@@ -455,7 +455,7 @@ Engineering methods from `mattpocock/skills` can inform RD work but never replac
|
|
|
455
455
|
- `improve-codebase-architecture` — opportunistic refactor framing
|
|
456
456
|
- `prototype` — throwaway exploration before committing to a slice
|
|
457
457
|
|
|
458
|
-
These are references only; Peaks RD gates remain authoritative for handoff, acceptance, and slice closure.
|
|
458
|
+
These are references only; Peaks-Cli RD gates remain authoritative for handoff, acceptance, and slice closure.
|
|
459
459
|
|
|
460
460
|
**Understand Anything**: Consume via `peaks understand status/show --json`. Fall back to `peaks codegraph context` or local project scan when absent.
|
|
461
461
|
|
|
@@ -465,14 +465,14 @@ These are references only; Peaks RD gates remain authoritative for handoff, acce
|
|
|
465
465
|
|
|
466
466
|
RD may use `peaks codegraph affected --project <path> <changed-files...> --json` as local project-analysis evidence to inform red-line scope boundaries before writing tech-doc or starting implementation. Treat the output as untrusted supporting evidence — verify against the actual code before relying on it.
|
|
467
467
|
|
|
468
|
-
Do not run upstream installer flows, mutate agent settings, or commit `.codegraph/` artifacts. Peaks RD gates remain authoritative for handoff and acceptance.
|
|
468
|
+
Do not run upstream installer flows, mutate agent settings, or commit `.codegraph/` artifacts. Peaks-Cli RD gates remain authoritative for handoff and acceptance.
|
|
469
469
|
|
|
470
|
-
**Other external resources** (Context7, SearchCode, everything-claude-code, GitNexus, etc.): Use `peaks capabilities --source access-repo/mcp-server --json` for capability discovery before recommending. References only — do not execute upstream installers, do not install upstream resources, do not persist sensitive examples. Peaks RD gates remain authoritative.
|
|
470
|
+
**Other external resources** (Context7, SearchCode, everything-claude-code, GitNexus, etc.): Use `peaks capabilities --source access-repo/mcp-server --json` for capability discovery before recommending. References only — do not execute upstream installers, do not install upstream resources, do not persist sensitive examples. Peaks-Cli RD gates remain authoritative.
|
|
471
471
|
|
|
472
|
-
**OpenSpec and MCP CLI**: Route through Peaks CLI (`peaks openspec show/to-rd/render`, `peaks mcp list/plan/apply/call`). Do not hand-edit `openspec/changes/**` or `~/.claude/settings.json`. Recipes: `references/openspec-mcp-cli.md`.
|
|
472
|
+
**OpenSpec and MCP CLI**: Route through Peaks-Cli CLI (`peaks openspec show/to-rd/render`, `peaks mcp list/plan/apply/call`). Do not hand-edit `openspec/changes/**` or `~/.claude/settings.json`. Recipes: `references/openspec-mcp-cli.md`.
|
|
473
473
|
|
|
474
474
|
## Boundaries
|
|
475
475
|
|
|
476
|
-
Do not bypass PRD/QA artifacts. Do not install hooks, agents, MCP, or settings. Ask the Peaks CLI to handle runtime side effects.
|
|
476
|
+
Do not bypass PRD/QA artifacts. Do not install hooks, agents, MCP, or settings. Ask the Peaks-Cli CLI to handle runtime side effects.
|
|
477
477
|
|
|
478
478
|
Reference: `references/refactor-workflow.md`.
|
package/skills/peaks-sc/SKILL.md
CHANGED
|
@@ -3,9 +3,9 @@ name: peaks-sc
|
|
|
3
3
|
description: Source control, sync, and change-control skill for Peaks. Use when a workflow needs change impact, artifact retention, commit boundaries, GitHub artifact repository pointers, sync state, or rollback evidence.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Peaks SC
|
|
6
|
+
# Peaks-Cli SC
|
|
7
7
|
|
|
8
|
-
Peaks SC records how product, RD, QA, code, and artifacts move together.
|
|
8
|
+
Peaks-Cli SC records how product, RD, QA, code, and artifacts move together.
|
|
9
9
|
|
|
10
10
|
## Skill presence (MANDATORY first action)
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ Before any analysis or tool call, immediately run:
|
|
|
15
15
|
peaks skill presence:set peaks-sc --mode <mode> --gate startup
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
Then display: `Peaks Skill: peaks-sc | Gate: startup | Next: <one short action>`. Update with `peaks skill presence:set peaks-sc --mode <mode> --gate <gate>` when gates change. When the role's work ends, run `peaks skill presence:clear`.
|
|
18
|
+
Then display: `Peaks-Cli Skill: peaks-sc | Peaks-Cli Gate: startup | Next: <one short action>`. Update with `peaks skill presence:set peaks-sc --mode <mode> --gate <gate>` when gates change. When the role's work ends, run `peaks skill presence:clear`.
|
|
19
19
|
|
|
20
20
|
## Responsibilities
|
|
21
21
|
|
|
@@ -44,9 +44,9 @@ Each refactor slice must leave a traceable local artifact boundary in `.peaks/<s
|
|
|
44
44
|
|
|
45
45
|
Use gstack as a concrete source-control and release workflow reference for the `Ship → Reflect` stages:
|
|
46
46
|
|
|
47
|
-
- map `/ship` and `/land-and-deploy` concepts to Peaks commit boundaries, sync state, rollback points, and artifact retention;
|
|
47
|
+
- map `/ship` and `/land-and-deploy` concepts to Peaks-Cli commit boundaries, sync state, rollback points, and artifact retention;
|
|
48
48
|
- map checkpoint discipline to traceable code-plus-artifact slices;
|
|
49
|
-
- do not create PRs, merge, deploy, or mutate shared state unless the active Peaks workflow and user confirmation explicitly allow it.
|
|
49
|
+
- do not create PRs, merge, deploy, or mutate shared state unless the active Peaks-Cli workflow and user confirmation explicitly allow it.
|
|
50
50
|
|
|
51
51
|
## Project memory backup
|
|
52
52
|
|
|
@@ -70,7 +70,7 @@ Concrete rules: `references/openspec-commit-boundaries.md`.
|
|
|
70
70
|
|
|
71
71
|
## Default runbook
|
|
72
72
|
|
|
73
|
-
Use this sequence when SC owns the change-control pass for a refactor or release slice. SC never edits code or tests; it only records boundary evidence through the Peaks CLI.
|
|
73
|
+
Use this sequence when SC owns the change-control pass for a refactor or release slice. SC never edits code or tests; it only records boundary evidence through the Peaks-Cli CLI.
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
76
|
# 0. Confirm SC's own runbook integrity before recording boundary evidence
|
|
@@ -124,14 +124,14 @@ The final two `--apply` calls require explicit authorization. Without it, defaul
|
|
|
124
124
|
|
|
125
125
|
You cannot declare SC complete from memory. Each gate below is a `ls` command you **MUST run** and whose output you **MUST see** before proceeding.
|
|
126
126
|
|
|
127
|
-
**Gate A — After impact + retention + validate + boundary:**
|
|
127
|
+
**Peaks-Cli Gate A — After impact + retention + validate + boundary:**
|
|
128
128
|
```bash
|
|
129
129
|
ls .peaks/<id>/sc/change-control/<rid>.md
|
|
130
130
|
# Expected output: .peaks/<id>/sc/change-control/<rid>.md
|
|
131
131
|
# "No such file" → STOP, write the change-control record first.
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
**Gate B — Before declaring SC complete (verify commit boundary is recorded):**
|
|
134
|
+
**Peaks-Cli Gate B — Before declaring SC complete (verify commit boundary is recorded):**
|
|
135
135
|
```bash
|
|
136
136
|
git log --oneline -5
|
|
137
137
|
# Expected: at least one recent commit whose message references the change-id or slice-id.
|
|
@@ -140,6 +140,6 @@ git log --oneline -5
|
|
|
140
140
|
|
|
141
141
|
## Boundaries
|
|
142
142
|
|
|
143
|
-
Do not implement code or test logic. Do not create GitHub repositories directly from the skill body. Use the Peaks CLI artifact commands.
|
|
143
|
+
Do not implement code or test logic. Do not create GitHub repositories directly from the skill body. Use the Peaks-Cli CLI artifact commands.
|
|
144
144
|
|
|
145
145
|
Reference: `references/artifact-retention.md`.
|