@tianhai/pi-workflow-kit 0.16.0 → 0.18.1
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/README.md +51 -39
- package/docs/developer-usage-guide.md +32 -14
- package/docs/lessons.md +18 -0
- package/docs/oversight-model.md +11 -5
- package/docs/plans/2026-06-03-karpathy-guidelines-ab-comparison.md +166 -0
- package/docs/plans/completed/2026-06-03-add-verify-skill-design.md +51 -0
- package/docs/plans/completed/2026-06-03-add-verify-skill-implementation.md +111 -0
- package/docs/plans/completed/2026-06-03-add-verify-skill-progress.md +11 -0
- package/docs/plans/completed/2026-06-03-verify-skill-design.md +176 -0
- package/docs/plans/completed/2026-06-09-code-review-fixes-implementation.md +74 -0
- package/docs/plans/completed/2026-06-09-code-review-fixes-progress.md +14 -0
- package/docs/plans/completed/2026-06-09-incremental-workflow-and-rename-design.md +186 -0
- package/docs/plans/completed/2026-06-09-incremental-workflow-and-rename-implementation.md +675 -0
- package/docs/plans/completed/2026-06-09-incremental-workflow-and-rename-progress.md +18 -0
- package/docs/plans/completed/2026-06-09-incremental-workflow-and-rename-verification-report.md +81 -0
- package/docs/plans/completed/2026-06-09-verification-fixes-implementation.md +69 -0
- package/docs/plans/completed/2026-06-09-verification-fixes-progress.md +14 -0
- package/docs/workflow-phases.md +19 -13
- package/extensions/workflow-guard.ts +10 -9
- package/package.json +2 -1
- package/skills/{brainstorming → pwk-brainstorming}/SKILL.md +17 -6
- package/skills/{design-review → pwk-design-review}/SKILL.md +11 -9
- package/skills/{diagnose → pwk-diagnose}/SKILL.md +1 -1
- package/skills/{executing-tasks → pwk-executing-tasks}/SKILL.md +46 -16
- package/skills/{finalizing → pwk-finalizing}/SKILL.md +9 -2
- package/skills/pwk-verify/SKILL.md +170 -0
- package/skills/{writing-plans → pwk-writing-plans}/SKILL.md +72 -6
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Verify Skill — Draft SKILL.md
|
|
2
|
+
|
|
3
|
+
> **Target path:** `skills/verify/SKILL.md` (to be created during executing-tasks)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
---
|
|
9
|
+
name: verify
|
|
10
|
+
description: "Post-implementation code verification with three expert review passes — security, optimization, and traceability. Use after executing-tasks and before finalizing to catch issues that pass tests but break in production. Runs the 'last prompt' pattern: adversarial security review, dead code and duplication audit, and end-to-end contract verification across every layer. Use this skill whenever the user says 'verify', 'review the code', 'check for issues', 'security review', 'the last prompt', 'audit', or when code has been implemented and needs a quality gate before shipping."
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Verify
|
|
14
|
+
|
|
15
|
+
Three expert review passes over the implemented codebase. Read-only — you **may** write the verification report to `docs/plans/`, but you **may not** modify source code.
|
|
16
|
+
|
|
17
|
+
The core insight: code that passes tests is not code that's ready. Working code can have security holes, dead branches, duplicated logic, and broken contracts between layers — especially when AI generates across many files without maintaining a single mental model of the whole system. This skill catches what tests miss.
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
1. **Check what's been done** — run `git log --oneline` and `git diff --stat` to understand the scope of recent changes. If nothing has been implemented, say "No code changes found. Run `/skill:executing-tasks` first." and stop.
|
|
22
|
+
|
|
23
|
+
2. **Identify the project's layers** — before reviewing, map the codebase's architecture. Look for layer boundaries: UI/handlers/routes → services/business logic → repositories/data access → database/models. Note the patterns: does the project use controllers, handlers, or routes? Services or use cases? Repositories or DAOs? This map drives the traceability pass.
|
|
24
|
+
|
|
25
|
+
3. **Run three expert review passes** — each pass adopts a distinct adversarial framing. Do them sequentially. For each pass, read the relevant code deeply — don't skim. Then write findings.
|
|
26
|
+
|
|
27
|
+
4. **Compile the report** — write all findings to `docs/plans/*-verification-report.md`. Present the report to the user and wait for feedback.
|
|
28
|
+
|
|
29
|
+
5. **Offer to create a remediation plan** — after the report, ask: "Want me to create a fix plan from these findings? Run `/skill:writing-plans` to turn the task list into executable tasks."
|
|
30
|
+
|
|
31
|
+
## Pass 1 — Security Review 🔴
|
|
32
|
+
|
|
33
|
+
**Framing:** A junior developer wrote this code. Now the best security expert on the team is reviewing it — adversarial, suspicious of everything. Trust nothing.
|
|
34
|
+
|
|
35
|
+
**What to look for:**
|
|
36
|
+
|
|
37
|
+
- **Input validation** — every external input (HTTP params, form data, headers, query strings, environment variables) must be validated and sanitized. Unvalidated input is a critical finding.
|
|
38
|
+
- **Authentication & authorization** — every endpoint that handles user data must have auth checks. Are there endpoints that skip auth? Can one user access another user's data by changing an ID?
|
|
39
|
+
- **Injection** — SQL queries built by string concatenation, unsanitized shell commands, template injection, XSS in HTML output. Any raw variable interpolated into a query or command is critical.
|
|
40
|
+
- **Secrets** — API keys, passwords, tokens hardcoded in source files. Check environment variable loading — are defaults set to empty or to actual secrets?
|
|
41
|
+
- **Data exposure** — are sensitive fields (passwords, tokens, PII) logged, returned in API responses, or stored unencrypted?
|
|
42
|
+
- **Dependency risks** — known-vulnerable packages (if `package.json`/`go.mod`/`requirements.txt` is present).
|
|
43
|
+
|
|
44
|
+
**Severity classification:**
|
|
45
|
+
|
|
46
|
+
| Severity | Definition |
|
|
47
|
+
|----------|-----------|
|
|
48
|
+
| Critical | Exploitable right now — auth bypass, injection, data leak |
|
|
49
|
+
| High | Likely exploitable — missing validation on sensitive endpoint, weak auth |
|
|
50
|
+
| Medium | Harder to exploit but real risk — verbose error messages leaking internals, missing rate limits |
|
|
51
|
+
| Low | Best practice violations — missing CSP headers, no HSTS, long session timeouts |
|
|
52
|
+
|
|
53
|
+
## Pass 2 — Optimization Review 🟡
|
|
54
|
+
|
|
55
|
+
**Framing:** A code quality expert looking for waste — things that make the codebase harder to maintain, slower to run, or more confusing than necessary.
|
|
56
|
+
|
|
57
|
+
**What to look for:**
|
|
58
|
+
|
|
59
|
+
- **Dead code** — functions, methods, types, or exports that are never called anywhere in the codebase. Search for definitions and verify they have callers.
|
|
60
|
+
- **Duplication** — the same logic implemented in slightly different ways across multiple files. AI-generated code is especially prone to this — if context was lost between sessions, the AI solved the same sub-problem differently in two places. Flag each pair with file paths and line numbers.
|
|
61
|
+
- **Over-engineering** — abstractions, interfaces, or layers that add complexity without earning their keep (only one implementation, no real variation across the seam).
|
|
62
|
+
- **Under-engineering** — god functions, 200-line blocks, deeply nested conditionals that should be extracted.
|
|
63
|
+
- **Performance concerns** — N+1 queries, unbounded loops, unnecessary copies of large data structures, missing pagination on list endpoints.
|
|
64
|
+
|
|
65
|
+
**Priority classification:**
|
|
66
|
+
|
|
67
|
+
| Priority | Definition |
|
|
68
|
+
|----------|-----------|
|
|
69
|
+
| P0 | Dead code in a critical path or duplicated logic that will diverge |
|
|
70
|
+
| P1 | Significant duplication or over-engineering that increases maintenance cost |
|
|
71
|
+
| P2 | Minor cleanups — long functions, missing pagination, style inconsistencies |
|
|
72
|
+
|
|
73
|
+
## Pass 3 — Traceability Review 🔵
|
|
74
|
+
|
|
75
|
+
**Framing:** An integration expert tracing every user-facing action end-to-end — from UI to database and back. The AI generates code file-by-file, and the seams between files are where bugs hide.
|
|
76
|
+
|
|
77
|
+
**What to look for:**
|
|
78
|
+
|
|
79
|
+
1. **Map every entry point** — list all handlers, routes, controllers, or event listeners that receive external input.
|
|
80
|
+
2. **Trace each call chain** — for each entry point, follow the call: handler → service → repository → database. At each boundary, verify:
|
|
81
|
+
- **Function name** — does the caller use the exact function name the callee exposes?
|
|
82
|
+
- **Argument names** — does the caller pass `userId` when the function expects `user_id`? Does `id` mean the same thing in both layers?
|
|
83
|
+
- **Argument types** — is a string passed where an integer is expected? Is an object shape different from what the next layer destructures?
|
|
84
|
+
- **Return shape** — does the caller expect fields that the callee actually returns? Are response DTOs consistent across layers?
|
|
85
|
+
3. **Check error propagation** — when a database query returns no results, does the service layer handle it? Does the handler return 404 or 500? Do errors propagate cleanly or get swallowed silently?
|
|
86
|
+
4. **Verify the round-trip** — if the UI calls `getUser(id)` and displays `user.name`, trace that `name` actually exists in the DB schema, gets selected by the query, mapped by the repository, passed through the service, included in the response, and rendered by the UI.
|
|
87
|
+
|
|
88
|
+
**This is the pass that catches the most bugs.** AI-generated code will often have a frontend calling `getUserProfile(userId)` and a backend exposing `get_user_profile(user_id)` — both work in isolation, neither works together.
|
|
89
|
+
|
|
90
|
+
**Severity classification:**
|
|
91
|
+
|
|
92
|
+
| Severity | Definition |
|
|
93
|
+
|----------|-----------|
|
|
94
|
+
| Critical | Call chain is completely broken — function doesn't exist or signature is fundamentally wrong |
|
|
95
|
+
| High | Signature mismatch — wrong arg names, wrong types, missing required fields |
|
|
96
|
+
| Medium | Silent error handling — errors swallowed without logging or user feedback |
|
|
97
|
+
| Low | Inconsistent naming conventions that could confuse future developers |
|
|
98
|
+
|
|
99
|
+
## Report Format
|
|
100
|
+
|
|
101
|
+
Write findings to `docs/plans/*-verification-report.md` using this structure:
|
|
102
|
+
|
|
103
|
+
# Verification Report: <feature/topic>
|
|
104
|
+
|
|
105
|
+
**Date:** <ISO date>
|
|
106
|
+
**Scope:** <summary of what was reviewed>
|
|
107
|
+
**Reviewer:** AI verify skill (security + optimization + traceability)
|
|
108
|
+
|
|
109
|
+
## Summary
|
|
110
|
+
|
|
111
|
+
| Pass | Critical | High | Medium | Low |
|
|
112
|
+
|------|----------|------|--------|-----|
|
|
113
|
+
| Security | X | X | X | X |
|
|
114
|
+
| Optimization | — | X | X | X |
|
|
115
|
+
| Traceability | X | X | X | X |
|
|
116
|
+
| **Total** | **X** | **X** | **X** | **X** |
|
|
117
|
+
|
|
118
|
+
## 🔴 Security Findings
|
|
119
|
+
|
|
120
|
+
### [S-001] Critical — <short title>
|
|
121
|
+
|
|
122
|
+
**Location:** `path/to/file.ts:line`
|
|
123
|
+
|
|
124
|
+
**Issue:** <what's wrong and why it matters>
|
|
125
|
+
|
|
126
|
+
**Fix:** <concrete remediation step>
|
|
127
|
+
|
|
128
|
+
### [S-002] High — <short title>
|
|
129
|
+
...
|
|
130
|
+
|
|
131
|
+
## 🟡 Optimization Findings
|
|
132
|
+
|
|
133
|
+
### [O-001] P0 — <short title>
|
|
134
|
+
|
|
135
|
+
**Location:** `path/to/file.ts:line` and `path/to/other.ts:line`
|
|
136
|
+
|
|
137
|
+
**Issue:** <what's wrong>
|
|
138
|
+
|
|
139
|
+
**Fix:** <concrete remediation step>
|
|
140
|
+
|
|
141
|
+
### [O-002] P1 — <short title>
|
|
142
|
+
...
|
|
143
|
+
|
|
144
|
+
## 🔵 Traceability Findings
|
|
145
|
+
|
|
146
|
+
### [T-001] Critical — <short title>
|
|
147
|
+
|
|
148
|
+
**Entry point:** `path/to/handler.ts:line`
|
|
149
|
+
**Call chain:** handler → service → repository → DB
|
|
150
|
+
**Broken at:** <which boundary>
|
|
151
|
+
**Issue:** <what's wrong — e.g., handler passes `userId` but service expects `user_id`>
|
|
152
|
+
|
|
153
|
+
**Fix:** <concrete remediation step>
|
|
154
|
+
|
|
155
|
+
### [T-002] High — <short title>
|
|
156
|
+
...
|
|
157
|
+
|
|
158
|
+
## Remediation Task List
|
|
159
|
+
|
|
160
|
+
Convert findings into actionable tasks:
|
|
161
|
+
|
|
162
|
+
| ID | Priority | Finding | Estimated Effort |
|
|
163
|
+
|----|----------|---------|-----------------|
|
|
164
|
+
| S-001 | Critical | <one-liner> | <small/medium/large> |
|
|
165
|
+
| T-001 | Critical | <one-liner> | <small/medium/large> |
|
|
166
|
+
| O-001 | P0 | <one-liner> | <small/medium/large> |
|
|
167
|
+
| ...
|
|
168
|
+
|
|
169
|
+
## Principles
|
|
170
|
+
|
|
171
|
+
- **Be specific** — every finding must include a file path and line reference. "There might be security issues" is useless.
|
|
172
|
+
- **Be adversarial** — actively look for problems. If you don't find any, say so — but don't phone it in.
|
|
173
|
+
- **Be proportional** — a small config change doesn't need the same depth as a new API endpoint. Adjust your review depth to the scope of changes.
|
|
174
|
+
- **Don't fix anything** — this is read-only. Find and report. The user decides what to fix and when.
|
|
175
|
+
- **Focus on seams** — the traceability pass is where the most value lives. Code within a single file is usually coherent; the bugs hide between files.
|
|
176
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Implementation Plan: Code review findings fix
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Fix 5 findings from the cross-skill code review. All are small — documentation clarity and minor correctness guards.
|
|
6
|
+
|
|
7
|
+
## Task 1: Add explicit fallback documentation in executing-tasks "Find the plan"
|
|
8
|
+
|
|
9
|
+
<!-- tdd: trivial -->
|
|
10
|
+
|
|
11
|
+
Fix finding #1. The primary path expects a design doc with Features table, but the fallback for plans without one is implicit.
|
|
12
|
+
|
|
13
|
+
Files:
|
|
14
|
+
- `skills/pwk-executing-tasks/SKILL.md`
|
|
15
|
+
|
|
16
|
+
Steps:
|
|
17
|
+
1. In step 2 ("Find the plan"), after the fallback sentence, append: "This covers plans created without a brainstorm session (no design doc or Features table)."
|
|
18
|
+
|
|
19
|
+
## Task 2: Add metadata-missing guard in executing-tasks per-task step 2
|
|
20
|
+
|
|
21
|
+
<!-- tdd: trivial -->
|
|
22
|
+
|
|
23
|
+
Fix finding #2. When a plan has no `Design:` / `Feature:` metadata (no Features table), the "Extract metadata" instruction is dangling.
|
|
24
|
+
|
|
25
|
+
Files:
|
|
26
|
+
- `skills/pwk-executing-tasks/SKILL.md`
|
|
27
|
+
|
|
28
|
+
Steps:
|
|
29
|
+
1. In per-task step 2, after "Extract the `Design:` and `Feature:` metadata to know which design doc and feature row this execution covers.", add: "If no `Design:` or `Feature:` metadata is present, the plan covers the entire design (no feature table). Skip design doc reading and proceed directly to task execution."
|
|
30
|
+
|
|
31
|
+
## Task 3: Document worktree handoff behavior for multi-feature plans
|
|
32
|
+
|
|
33
|
+
<!-- tdd: trivial -->
|
|
34
|
+
|
|
35
|
+
Fix finding #3. The worktree glob moves all plan docs, which is correct but should be documented explicitly.
|
|
36
|
+
|
|
37
|
+
Files:
|
|
38
|
+
- `skills/pwk-executing-tasks/SKILL.md`
|
|
39
|
+
|
|
40
|
+
Steps:
|
|
41
|
+
1. In step 3b ("Move plan docs into the worktree"), add a note before the mv commands:
|
|
42
|
+
> When using the feature table, all plan docs for this design move together — completed feature plans, the current feature's plan, and the design doc. This is intentional: the worktree works on one design at a time.
|
|
43
|
+
|
|
44
|
+
## Task 4: Add unstarted-features guard to finalizing
|
|
45
|
+
|
|
46
|
+
<!-- tdd: trivial -->
|
|
47
|
+
|
|
48
|
+
Fix finding #4. Archiving the design doc while features are still `⬜ pending` makes them invisible to future planning.
|
|
49
|
+
|
|
50
|
+
Files:
|
|
51
|
+
- `skills/pwk-finalizing/SKILL.md`
|
|
52
|
+
|
|
53
|
+
Steps:
|
|
54
|
+
1. In step 1 ("Move planning docs"), before the archive commands, add a check:
|
|
55
|
+
> If the design doc has a `## Features` table with any `⬜ pending` or `🔄 planned` features, warn:
|
|
56
|
+
> ```
|
|
57
|
+
> ⚠️ Design doc has N unplanned features. Archive anyway, or go back to plan them?
|
|
58
|
+
> ```
|
|
59
|
+
> Wait for the user to confirm before proceeding.
|
|
60
|
+
|
|
61
|
+
## Task 5: Add verification report to finalizing archive step
|
|
62
|
+
|
|
63
|
+
<!-- tdd: trivial -->
|
|
64
|
+
|
|
65
|
+
Fix finding #5. Verification reports are left behind in `docs/plans/` after finalizing.
|
|
66
|
+
|
|
67
|
+
Files:
|
|
68
|
+
- `skills/pwk-finalizing/SKILL.md`
|
|
69
|
+
|
|
70
|
+
Steps:
|
|
71
|
+
1. In step 1, after the existing `mv` commands, add:
|
|
72
|
+
```
|
|
73
|
+
mv docs/plans/*-verification-report.md docs/plans/completed/ 2>/dev/null || true
|
|
74
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Progress: Code review fixes
|
|
2
|
+
|
|
3
|
+
Plan: docs/plans/2026-06-09-code-review-fixes-implementation.md
|
|
4
|
+
Branch: incremental-workflow-and-rename
|
|
5
|
+
Started: 2026-06-09T23:15:00
|
|
6
|
+
Last updated: 2026-06-09T23:15:00
|
|
7
|
+
|
|
8
|
+
| # | Status | Task | Commit |
|
|
9
|
+
|---|--------|------|--------|
|
|
10
|
+
| 1 | ✅ done | Add explicit fallback docs in executing-tasks "Find the plan" | 1ab7825 |
|
|
11
|
+
| 2 | ✅ done | Add metadata-missing guard in executing-tasks per-task step 2 | 1ab7825 |
|
|
12
|
+
| 3 | ✅ done | Document worktree handoff for multi-feature plans | 1ab7825 |
|
|
13
|
+
| 4 | ✅ done | Add unstarted-features guard to finalizing | 1ab7825 |
|
|
14
|
+
| 5 | ✅ done | Add verification report to finalizing archive step | 1ab7825 |
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Incremental Workflow & Skill Rename
|
|
2
|
+
|
|
3
|
+
## Problem
|
|
4
|
+
|
|
5
|
+
Three issues with the current workflow:
|
|
6
|
+
|
|
7
|
+
1. **Design review runs too early.** The 8 hazard checks evaluate concrete code (missing indexes, raw SQL interpolation, unbounded concurrency). A design doc is too vague to audit effectively — most hazards are invisible until the plan has actual code.
|
|
8
|
+
2. **Large features create context pressure.** Planning all tasks upfront, then executing them all, means a 20-task plan accumulates massive context. Lessons learned mid-execution can't reshape later tasks. The plan goes stale.
|
|
9
|
+
3. **Skills aren't namespaced.** All 7 skills live in a flat namespace, making it hard to discover which skills belong to pi-workflow-kit versus third-party or user-installed skills.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
1. **Move design review after writing-plans.** The plan doc has concrete code, making hazard checks meaningful. Writing-plans already flags high-risk areas — when flagged, suggest design-review before executing.
|
|
14
|
+
2. **Incremental feature-based workflow.** Brainstorm names features. Each feature gets its own plan → execute → optional verify cycle. The brainstorm doc's `## Features` table tracks overall progress.
|
|
15
|
+
3. **Rename all skills with `pwk-` prefix.** All 7 skills and all cross-references updated.
|
|
16
|
+
|
|
17
|
+
## Workflow Change
|
|
18
|
+
|
|
19
|
+
### Before
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
brainstorm → [design-review?] → plan (all tasks) → execute (all tasks) → [verify?] → finalize
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### After
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
brainstorm (name features)
|
|
29
|
+
→ plan next feature
|
|
30
|
+
→ [design-review if hazards flagged]
|
|
31
|
+
→ execute feature
|
|
32
|
+
→ [verify this feature? (optional)]
|
|
33
|
+
→ more features? → loop back to plan
|
|
34
|
+
→ all done?
|
|
35
|
+
→ [verify everything? (optional)]
|
|
36
|
+
→ finalize
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Feature Table
|
|
40
|
+
|
|
41
|
+
Brainstorm doc adds a `## Features` table. Simple features get one row. Complex features get many. The table is the feature-level state machine — it answers "what's next?" at any point.
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
## Features
|
|
45
|
+
|
|
46
|
+
| # | Feature | Status | Observable Behavior |
|
|
47
|
+
|---|---------|--------|---------------------|
|
|
48
|
+
| 1 | User signup | ✅ done | User can create account with email+password |
|
|
49
|
+
| 2 | Email verification | 🔄 planned | User receives and confirms verification email |
|
|
50
|
+
| 3 | Password reset | ⬜ pending | User can reset password via email link |
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Status values: `⬜ pending`, `🔄 planned`, `✅ done`, `⏭ skipped`.
|
|
54
|
+
|
|
55
|
+
### Table maintenance
|
|
56
|
+
|
|
57
|
+
- **Brainstorm** creates the table with all rows as `⬜ pending`
|
|
58
|
+
- **Writing-plans** marks the next feature as `🔄 planned` when it creates a plan for it
|
|
59
|
+
- **Executing-tasks** marks the feature as `✅ done` (or `⏭ skipped`) after completing all its tasks
|
|
60
|
+
- **Any skill can add rows** if a new feature is discovered mid-implementation (human decides, not agent)
|
|
61
|
+
- The table is a living document. If features need merging, splitting, or reordering, the human directs changes during execution
|
|
62
|
+
|
|
63
|
+
## Design Review Changes
|
|
64
|
+
|
|
65
|
+
### Timing
|
|
66
|
+
|
|
67
|
+
Design review moves from after-brainstorm to after-writing-plans.
|
|
68
|
+
|
|
69
|
+
**Trigger mechanism (already exists in writing-plans step 1):** Writing-plans checks for hazards (DB schema changes, auth, external APIs, concurrency, uploads, Redis/MQ). If any apply AND no architectural review section exists → prompt user to run `/skill:pwk-design-review` or type 'proceed' to skip.
|
|
70
|
+
|
|
71
|
+
If the plan doc notes "Simple change — no design review needed" → skip.
|
|
72
|
+
|
|
73
|
+
### Review input
|
|
74
|
+
|
|
75
|
+
Design review reads both the plan doc (concrete code) and the design doc (architectural context). This is better than the current flow — concrete code makes hazards visible.
|
|
76
|
+
|
|
77
|
+
### No mandatory per-feature review
|
|
78
|
+
|
|
79
|
+
Design review is suggested, not mandatory, for each feature. The writing-plans hazard check gates it. Low-risk features skip it entirely.
|
|
80
|
+
|
|
81
|
+
## Verify Changes
|
|
82
|
+
|
|
83
|
+
### Two modes
|
|
84
|
+
|
|
85
|
+
| | Per-feature verify | Full verify |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| **Scope** | One feature's code | All feature code together |
|
|
88
|
+
| **Catches** | Security, dead code, traceability within the feature | Cross-feature integration, duplicated patterns across features, overall consistency |
|
|
89
|
+
| **When** | After each feature (optional, human-initiated) | After all features (optional, human-initiated) |
|
|
90
|
+
| **Cost** | Low — small code surface | Higher — full codebase |
|
|
91
|
+
|
|
92
|
+
Neither is mandatory. The human decides based on risk and complexity.
|
|
93
|
+
|
|
94
|
+
### Executor prompts
|
|
95
|
+
|
|
96
|
+
After completing a feature:
|
|
97
|
+
```
|
|
98
|
+
✅ Feature "<name>" complete.
|
|
99
|
+
⏭ Next: "<next feature name>"
|
|
100
|
+
💡 Options:
|
|
101
|
+
- Plan next feature: /skill:pwk-writing-plans
|
|
102
|
+
- Verify this feature first: /skill:pwk-verify
|
|
103
|
+
- Or just say "continue"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
After all features complete:
|
|
107
|
+
```
|
|
108
|
+
✅ All features complete!
|
|
109
|
+
- Verify everything: /skill:pwk-verify
|
|
110
|
+
- Ship: /skill:pwk-finalizing
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Per-Feature Execution Model
|
|
114
|
+
|
|
115
|
+
### Plan docs
|
|
116
|
+
|
|
117
|
+
One plan doc per feature: `docs/plans/YYYY-MM-DD-<topic>-<feature-name>-implementation.md`
|
|
118
|
+
|
|
119
|
+
### Progress docs
|
|
120
|
+
|
|
121
|
+
One progress doc per feature: `docs/plans/YYYY-MM-DD-<topic>-<feature-name>-progress.md`
|
|
122
|
+
|
|
123
|
+
### Feature loop
|
|
124
|
+
|
|
125
|
+
1. **Writing-plans** reads design doc, identifies next `⬜ pending` feature, marks it `🔄 planned`, writes plan doc for that feature
|
|
126
|
+
2. **Design review** (if triggered) reviews plan doc + design doc
|
|
127
|
+
3. **Executing-tasks** executes the feature's plan, marks feature `✅ done` in design doc table
|
|
128
|
+
4. **Verify** (optional) reviews just the feature's code
|
|
129
|
+
5. **Loop** back to step 1 if more `⬜ pending` features exist
|
|
130
|
+
|
|
131
|
+
### Session boundaries
|
|
132
|
+
|
|
133
|
+
Each plan → execute cycle is a natural session break. The executor suggests `/new` between features for clean context, as it already does for long task runs.
|
|
134
|
+
|
|
135
|
+
## Skill Rename
|
|
136
|
+
|
|
137
|
+
All 7 skills renamed with `pwk-` prefix:
|
|
138
|
+
|
|
139
|
+
| Current | New |
|
|
140
|
+
|---------|-----|
|
|
141
|
+
| brainstorming | pwk-brainstorming |
|
|
142
|
+
| writing-plans | pwk-writing-plans |
|
|
143
|
+
| executing-tasks | pwk-executing-tasks |
|
|
144
|
+
| design-review | pwk-design-review |
|
|
145
|
+
| verify | pwk-verify |
|
|
146
|
+
| finalizing | pwk-finalizing |
|
|
147
|
+
| diagnose | pwk-diagnose |
|
|
148
|
+
|
|
149
|
+
All cross-references between skills updated (e.g. `Run /skill:executing-tasks` → `Run /skill:pwk-executing-tasks`).
|
|
150
|
+
|
|
151
|
+
## Files Changed
|
|
152
|
+
|
|
153
|
+
### Skill files (rename + content updates)
|
|
154
|
+
- `skills/brainstorming/SKILL.md` → `skills/pwk-brainstorming/SKILL.md`
|
|
155
|
+
- `skills/writing-plans/SKILL.md` → `skills/pwk-writing-plans/SKILL.md`
|
|
156
|
+
- `skills/executing-tasks/SKILL.md` → `skills/pwk-executing-tasks/SKILL.md`
|
|
157
|
+
- `skills/design-review/SKILL.md` → `skills/pwk-design-review/SKILL.md`
|
|
158
|
+
- `skills/verify/SKILL.md` → `skills/pwk-verify/SKILL.md`
|
|
159
|
+
- `skills/finalizing/SKILL.md` → `skills/pwk-finalizing/SKILL.md`
|
|
160
|
+
- `skills/diagnose/SKILL.md` → `skills/pwk-diagnose/SKILL.md`
|
|
161
|
+
|
|
162
|
+
### Documentation
|
|
163
|
+
- `docs/workflow-phases.md` — update skill names and flow diagram
|
|
164
|
+
- `docs/oversight-model.md` — update skill names
|
|
165
|
+
- `docs/developer-usage-guide.md` — update skill names
|
|
166
|
+
|
|
167
|
+
### Extension
|
|
168
|
+
- `extensions/workflow-guard.ts` — update skill name references:
|
|
169
|
+
- `SKILL_TO_PHASE` keys: `brainstorming` → `pwk-brainstorming`, `writing-plans` → `pwk-writing-plans`
|
|
170
|
+
- Phase-clearing triggers: `/skill:executing-tasks` → `/skill:pwk-executing-tasks`, `/skill:finalizing` → `/skill:pwk-finalizing`
|
|
171
|
+
- Add `"pwk-verify": "verify"` to `SKILL_TO_PHASE` — enforce write restriction (only `docs/plans/`) during verify phase, matching the skill's read-only claim
|
|
172
|
+
- `tests/workflow-guard.test.ts` — update all skill name references and add test cases for `pwk-verify` phase
|
|
173
|
+
|
|
174
|
+
## Features (implementation slices)
|
|
175
|
+
|
|
176
|
+
1. **Rename skill directories and files** — move all 7 skill folders to `pwk-` prefix names, update frontmatter names
|
|
177
|
+
2. **Update cross-references in all skills** — find-and-replace all `/skill:` references across all 7 skill files
|
|
178
|
+
3. **Add feature table to brainstorming** — update brainstorming skill to produce a `## Features` table in design doc
|
|
179
|
+
4. **Update writing-plans for feature-at-a-time** — detect next `⬜ pending` feature, plan only that feature, mark `🔄 planned`, update file naming to per-feature
|
|
180
|
+
5. **Update executing-tasks for feature loop** — mark feature `✅ done` after all tasks, suggest next feature or verify/finalize
|
|
181
|
+
6. **Move design review trigger** — remove brainstorm's "after design" review suggestion, confirm writing-plans already has the trigger (it does)
|
|
182
|
+
7. **Update executor end-of-feature prompts** — new prompt format with verify option and next feature
|
|
183
|
+
8. **Update workflow-guard extension** — rename skill references, add `pwk-verify` to phase map
|
|
184
|
+
9. **Update documentation** — workflow-phases.md, oversight-model.md, developer-usage-guide.md
|
|
185
|
+
|
|
186
|
+
Simple change — no design review needed.
|