@juicesharp/rpiv-pi 0.11.3 → 0.11.5
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 +2 -0
- package/package.json +2 -2
- package/skills/code-review/SKILL.md +1 -1
- package/skills/code-review/templates/review.md +100 -52
package/README.md
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@juicesharp/rpiv-pi)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
|
+
> ⚠ **Pi compatibility** — `rpiv-pi` `0.11.x` supports **`@mariozechner/pi-coding-agent` ≤ 0.67.67**. Newer Pi releases introduce breaking changes and are unsupported on this line. Pin Pi to `0.67.67` (`npm i -g @mariozechner/pi-coding-agent@0.67.67`) or wait for the next `rpiv-pi` major.
|
|
7
|
+
|
|
6
8
|
Skill-based development workflow for [Pi Agent](https://github.com/badlogic/pi-mono) — discover, research, design, plan, implement, and validate. rpiv-pi extends Pi Agent with a pipeline of chained AI skills, named subagents for parallel analysis, and session lifecycle hooks for automatic context injection.
|
|
7
9
|
|
|
8
10
|
## Prerequisites
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juicesharp/rpiv-pi",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.5",
|
|
4
4
|
"description": "Skill-based development workflow for Pi Agent — discover, research, design, plan, implement, validate",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
]
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@mariozechner/pi-coding-agent": "
|
|
47
|
+
"@mariozechner/pi-coding-agent": "<=0.67.67",
|
|
48
48
|
"@tintinweb/pi-subagents": "*",
|
|
49
49
|
"@juicesharp/rpiv-ask-user-question": "*",
|
|
50
50
|
"@juicesharp/rpiv-todo": "*",
|
|
@@ -382,7 +382,7 @@ Before writing the artifact, spawn ONE `codebase-analyzer` whose sole job is to
|
|
|
382
382
|
[paste the full reconciled severity map — each finding with its file:line citation, verbatim line quote per the citation contract, and severity tier]
|
|
383
383
|
|
|
384
384
|
For EACH finding:
|
|
385
|
-
1.
|
|
385
|
+
1. `grep -n` the verbatim quote in the cited file. Absent → Falsified. Present at a different line → rewrite the citation to the actual line, then continue. Present at cited line → continue.
|
|
386
386
|
2. If the finding makes a claim about behavior reachable elsewhere (consumer filters, dispatch registrations, peer aggregates, upstream guards, downstream sinks), Read those referenced files too. Do NOT trust the patch-only view.
|
|
387
387
|
3. If the finding claims a state is "stranded" / a predicate is "false-promise" / a precondition is "missing" — construct a concrete 2–3 line reproducer trace: "caller at A:L invokes B:L with entity in state X; guard at C:L rejects; exit path would require D which the code does not provide." If you cannot construct it, the finding is Weakened.
|
|
388
388
|
4. If the finding was marked `resolved-by: <hash>` in Step 5, Read the resolving commit's changes on the reviewed branch (via `git show <hash> -- <file>`) and confirm the resolution is actually present at TIP.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- Emitted by code-review SKILL.md Step 7. Placeholders in [brackets] are filled at emission; section-omission rules live inline in SKILL.md. -->
|
|
2
2
|
---
|
|
3
|
-
template_version:
|
|
3
|
+
template_version: 2
|
|
4
4
|
date: [ISO 8601 w/ tz]
|
|
5
5
|
reviewer: [User]
|
|
6
6
|
repository: [Repo]
|
|
@@ -9,94 +9,142 @@ commit: [Short hash]
|
|
|
9
9
|
review_type: [commit | pr | staged | working]
|
|
10
10
|
scope: "[What was reviewed]"
|
|
11
11
|
status: [approved | needs_changes | requesting_changes]
|
|
12
|
-
|
|
13
|
-
verification:
|
|
12
|
+
severity: { critical: [C], important: [I], suggestion: [S] }
|
|
13
|
+
verification: { verified: [V], weakened: [W], falsified: [F] }
|
|
14
|
+
blockers_count: [B]
|
|
14
15
|
tags: [code-review, relevant-components]
|
|
15
16
|
---
|
|
16
17
|
|
|
17
|
-
# Code Review — [Scope]
|
|
18
|
+
# Code Review — [Scope]
|
|
18
19
|
|
|
19
|
-
Status
|
|
20
|
+
**Commit:** `[hash]` · **Status:** `[status]` · **Findings:** [C]🔴 · [I]🟡 · [S]🔵 · **Verification:** [V]✓ / [W]− / [F]✗
|
|
20
21
|
|
|
21
|
-
Top
|
|
22
|
-
1. [ID] — [one-line headline]
|
|
23
|
-
2. [ID] — [one-line headline]
|
|
22
|
+
## Top Blockers
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
1. **[ID]** — [one-line headline]
|
|
25
|
+
2. **[ID]** — [one-line headline]
|
|
26
|
+
|
|
27
|
+
---
|
|
26
28
|
|
|
27
29
|
## Legend
|
|
28
|
-
🔴 fix before merge · 🟡 fix soon · 🔵 nice to have · 💭 discuss
|
|
29
|
-
IDs: I=interaction Q=quality S=security G=gap
|
|
30
|
-
verification: ✓ verified − weakened (demoted) ✗ falsified (dropped)
|
|
31
|
-
annotations: [precedent-weighted] [cascade: <kind>] [subsumed-by <ID>]
|
|
32
30
|
|
|
33
|
-
|
|
31
|
+
```text
|
|
32
|
+
Severity 🔴 fix before merge 🟡 fix soon 🔵 nice to have 💭 discuss
|
|
33
|
+
ID prefix I interaction Q quality S security G gap
|
|
34
|
+
Verify ✓ verified − weakened (demoted) ✗ falsified (dropped)
|
|
35
|
+
Annotate [precedent-weighted] [cascade: <kind>] [subsumed-by <ID>]
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
34
39
|
|
|
35
40
|
## 🔴 Critical
|
|
36
41
|
|
|
37
|
-
|
|
38
|
-
- where file:line
|
|
39
|
-
- code `<verbatim line from the file>`
|
|
40
|
-
- why [1–2 lines: mechanism, not symptom]
|
|
41
|
-
- fix [one sentence, imperative]
|
|
42
|
-
- alt [optional: alternative fix]
|
|
42
|
+
### [ID] 🔴 [short headline] `[annotation?]`
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
**Where**
|
|
45
|
+
`[file:line]`
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
**Code**
|
|
48
|
+
```[lang]
|
|
49
|
+
[verbatim line(s) from the file]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Why**
|
|
53
|
+
[1–2 sentences: mechanism, not symptom]
|
|
54
|
+
|
|
55
|
+
**Fix**
|
|
56
|
+
[one sentence, imperative]
|
|
57
|
+
|
|
58
|
+
**Alt**
|
|
59
|
+
[optional: alternative fix]
|
|
60
|
+
|
|
61
|
+
---
|
|
47
62
|
|
|
48
63
|
## 🟡 Important
|
|
49
64
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
65
|
+
### [ID] 🟡 [short headline] `[annotation?]`
|
|
66
|
+
|
|
67
|
+
**Where**
|
|
68
|
+
`[file:line]`
|
|
69
|
+
|
|
70
|
+
**Code**
|
|
71
|
+
```[lang]
|
|
72
|
+
[verbatim line(s)]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Why**
|
|
76
|
+
[mechanism]
|
|
55
77
|
|
|
56
|
-
|
|
78
|
+
**Fix**
|
|
79
|
+
[action]
|
|
80
|
+
|
|
81
|
+
---
|
|
57
82
|
|
|
58
83
|
## 🔵 Suggestions
|
|
59
84
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
85
|
+
### [ID] 🔵 [short headline]
|
|
86
|
+
|
|
87
|
+
**Where**
|
|
88
|
+
`[file:line]`
|
|
63
89
|
|
|
64
|
-
|
|
90
|
+
**Fix**
|
|
91
|
+
[action]
|
|
92
|
+
|
|
93
|
+
---
|
|
65
94
|
|
|
66
95
|
## 💭 Discussion
|
|
67
96
|
|
|
68
|
-
|
|
69
|
-
- where file:line
|
|
70
|
-
- why [what the reviewer wants the author to consider]
|
|
97
|
+
### [ID] 💭 [question / architectural concern]
|
|
71
98
|
|
|
72
|
-
|
|
99
|
+
**Where**
|
|
100
|
+
`[file:line]`
|
|
101
|
+
|
|
102
|
+
**Why**
|
|
103
|
+
[what the reviewer wants the author to consider]
|
|
104
|
+
|
|
105
|
+
---
|
|
73
106
|
|
|
74
107
|
## Pattern Analysis
|
|
75
|
-
Peer: `<peer file>` · Mirrored [M] · Missing [Mi] · Diverged [D] · Intentionally-absent [A]
|
|
76
|
-
Missing/Diverged rows drive: [finding IDs]
|
|
77
108
|
|
|
78
|
-
|
|
109
|
+
| Peer | Mirrored | Missing | Diverged | Intentional |
|
|
110
|
+
| --------------- | -------: | ------: | -------: | ----------: |
|
|
111
|
+
| `[peer file]` | [M] | [Mi] | [D] | [A] |
|
|
112
|
+
|
|
113
|
+
**Missing/Diverged rows drive:** [finding IDs]
|
|
114
|
+
|
|
115
|
+
**Key divergences from peer**
|
|
116
|
+
- [divergence one]
|
|
117
|
+
- [divergence two]
|
|
118
|
+
|
|
119
|
+
---
|
|
79
120
|
|
|
80
121
|
## Impact
|
|
81
122
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
123
|
+
| Consumer | Change | Findings |
|
|
124
|
+
| --------------- | ---------------- | -------- |
|
|
125
|
+
| `[file:line]` | [change class] | [IDs] |
|
|
85
126
|
|
|
86
|
-
|
|
127
|
+
---
|
|
87
128
|
|
|
88
129
|
## Precedents
|
|
89
|
-
[hash] "[commit subject]" [30d follow-ups | NOT ancestor of [TIP] | note]
|
|
90
130
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
131
|
+
| Commit | Subject | Follow-ups |
|
|
132
|
+
| --------- | ---------------- | ------------------------------------------------------- |
|
|
133
|
+
| `[hash]` | [commit subject] | [30d follow-ups, or "NOT ancestor of [TIP]", or note] |
|
|
134
|
+
|
|
135
|
+
**Recurring lessons (most → least frequent)**
|
|
94
136
|
|
|
95
|
-
|
|
137
|
+
1. [composite lesson]
|
|
138
|
+
2. ...
|
|
139
|
+
|
|
140
|
+
---
|
|
96
141
|
|
|
97
142
|
## Recommendation
|
|
98
|
-
> (advisor prose pasted verbatim here when advisor ran; omit the blockquote otherwise)
|
|
99
143
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
144
|
+
> (advisor prose pasted verbatim here as a blockquote when advisor ran; omit the blockquote otherwise)
|
|
145
|
+
|
|
146
|
+
| # | ID | Action | Alt / Note |
|
|
147
|
+
| - | ------ | --------------------------- | ----------------- |
|
|
148
|
+
| 1 | [ID] | [action, one sentence] | [alternative] |
|
|
149
|
+
| 2 | [ID] | [action] | — |
|
|
150
|
+
| 3 | [ID] | [action] | — |
|