@juicesharp/rpiv-pi 1.1.4 → 1.2.0
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 +47 -46
- package/agents/codebase-analyzer.md +2 -2
- package/agents/codebase-locator.md +2 -2
- package/agents/codebase-pattern-finder.md +3 -3
- package/agents/diff-auditor.md +1 -1
- package/agents/integration-scanner.md +4 -4
- package/agents/precedent-locator.md +9 -9
- package/agents/scope-tracer.md +116 -0
- package/agents/test-case-locator.md +1 -1
- package/agents/thoughts-analyzer.md +22 -22
- package/agents/thoughts-locator.md +5 -5
- package/agents/web-search-researcher.md +10 -10
- package/extensions/rpiv-core/guidance.test.ts +5 -1
- package/extensions/rpiv-core/guidance.ts +33 -8
- package/extensions/rpiv-core/session-hooks.test.ts +20 -1
- package/extensions/rpiv-core/session-hooks.ts +1 -1
- package/package.json +2 -2
- package/skills/annotate-guidance/SKILL.md +21 -20
- package/skills/annotate-guidance/templates/root-architecture.md +6 -6
- package/skills/annotate-guidance/templates/subfolder-architecture.md +20 -20
- package/skills/annotate-inline/SKILL.md +21 -20
- package/skills/annotate-inline/templates/root-claude-md.md +6 -6
- package/skills/annotate-inline/templates/subfolder-claude-md.md +20 -20
- package/skills/blueprint/SKILL.md +64 -60
- package/skills/changelog/SKILL.md +164 -0
- package/skills/code-review/SKILL.md +55 -44
- package/skills/code-review/templates/review.md +47 -47
- package/skills/commit/SKILL.md +2 -2
- package/skills/create-handoff/SKILL.md +23 -18
- package/skills/design/SKILL.md +58 -54
- package/skills/discover/SKILL.md +154 -147
- package/skills/discover/templates/frd.md +73 -0
- package/skills/explore/SKILL.md +104 -90
- package/skills/implement/SKILL.md +34 -6
- package/skills/migrate-to-guidance/SKILL.md +18 -8
- package/skills/outline-test-cases/SKILL.md +68 -54
- package/skills/outline-test-cases/templates/feature-meta.md +11 -4
- package/skills/outline-test-cases/templates/outline-readme.md +1 -1
- package/skills/plan/SKILL.md +55 -50
- package/skills/research/SKILL.md +99 -95
- package/skills/resume-handoff/SKILL.md +25 -25
- package/skills/revise/SKILL.md +34 -21
- package/skills/validate/SKILL.md +28 -13
- package/skills/write-test-cases/SKILL.md +20 -17
- package/skills/write-test-cases/examples/customer-auth-flow.md +1 -1
- package/skills/write-test-cases/examples/order-management-suite.md +1 -1
- package/skills/write-test-cases/examples/order-placement-flow.md +1 -1
- package/skills/write-test-cases/examples/team-management-flow.md +1 -1
- package/skills/write-test-cases/examples/team-management-suite.md +1 -1
- package/skills/write-test-cases/templates/coverage-map.md +1 -1
- package/skills/write-test-cases/templates/regression-suite.md +3 -3
- package/skills/write-test-cases/templates/test-case.md +2 -2
package/README.md
CHANGED
|
@@ -11,31 +11,31 @@
|
|
|
11
11
|
[](https://www.npmjs.com/package/@juicesharp/rpiv-pi)
|
|
12
12
|
[](https://opensource.org/licenses/MIT)
|
|
13
13
|
|
|
14
|
-
> **Pi compatibility**
|
|
14
|
+
> **Pi compatibility** - `rpiv-pi` `0.14.x` tracks `@mariozechner/pi-coding-agent` `0.70.x` and `@tintinweb/pi-subagents` `0.6.x`. If you see peer-dep resolution issues after a Pi upgrade, open an issue.
|
|
15
15
|
|
|
16
|
-
> **⚠️ Upgrading from `0.13.x`**
|
|
16
|
+
> **⚠️ Upgrading from `0.13.x`** - `1.0.0` swaps the subagent provider from `npm:pi-subagents` (nicobailon fork) back to `npm:@tintinweb/pi-subagents` (resumed maintenance). On first launch after upgrade you'll see *"rpiv-pi requires 1 sibling extension(s): @tintinweb/pi-subagents"* - **run `/rpiv-setup` once and restart Pi**. The setup dialog previews both changes (install `@tintinweb/pi-subagents`, remove `npm:pi-subagents` from `~/.pi/agent/settings.json`) and applies them only after you confirm. After restart, run `/rpiv-update-agents` to refresh the 12 bundled specialist frontmatters. Customised `<cwd>/.pi/agents/*.md` files are not touched. The tool name reverts from `subagent` → `Agent` (param `subagent_type`/`description`/`prompt`) - only your own custom skills/agents need editing; the bundled rpiv-pi specialists are migrated in this release.
|
|
17
17
|
|
|
18
|
-
Skill-based development workflow for [Pi Agent](https://github.com/badlogic/pi-mono)
|
|
18
|
+
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.
|
|
19
19
|
|
|
20
20
|
## What you get
|
|
21
21
|
|
|
22
|
-
- **A pipeline of chained AI skills**
|
|
23
|
-
- **Named subagents for parallel analysis**
|
|
24
|
-
- **Session lifecycle hooks**
|
|
22
|
+
- **A pipeline of chained AI skills** - discover → research → design → plan → implement → validate, each producing a reviewable artifact under `thoughts/shared/`.
|
|
23
|
+
- **Named subagents for parallel analysis** - `codebase-analyzer`, `codebase-locator`, `codebase-pattern-finder`, `claim-verifier`, and 8 more, dispatched automatically by skills.
|
|
24
|
+
- **Session lifecycle hooks** - agent profiles, guidance files, and pipeline directories scaffold themselves on first launch.
|
|
25
25
|
|
|
26
26
|
## Prerequisites
|
|
27
27
|
|
|
28
|
-
- **Node.js**
|
|
29
|
-
- **[Pi Agent](https://github.com/badlogic/pi-mono)**
|
|
28
|
+
- **Node.js** - required by Pi Agent
|
|
29
|
+
- **[Pi Agent](https://github.com/badlogic/pi-mono)** - install globally so the `pi` command is available:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
32
|
npm install -g @mariozechner/pi-coding-agent
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
- **Model provider** *(first-time Pi Agent users only
|
|
35
|
+
- **Model provider** *(first-time Pi Agent users only - skip if `/login` already works or `~/.pi/agent/models.json` is configured)*. Pick one:
|
|
36
36
|
|
|
37
|
-
- **Subscription login**
|
|
38
|
-
- **BYOK (API key)**
|
|
37
|
+
- **Subscription login** - start Pi Agent and run `/login` to authenticate with Anthropic Claude Pro/Max, ChatGPT Plus/Pro, GitHub Copilot, or Gemini.
|
|
38
|
+
- **BYOK (API key)** - edit `~/.pi/agent/models.json` and add a provider entry with `baseUrl`, `api`, `apiKey`, and `models[]`. Example (z.ai GLM coding plan):
|
|
39
39
|
|
|
40
40
|
```json
|
|
41
41
|
{
|
|
@@ -64,7 +64,7 @@ Skill-based development workflow for [Pi Agent](https://github.com/badlogic/pi-m
|
|
|
64
64
|
}
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
- **git** *(recommended)*
|
|
67
|
+
- **git** *(recommended)* - rpiv-pi works without it, but branch and commit context won't be available to skills.
|
|
68
68
|
|
|
69
69
|
## Quick Start
|
|
70
70
|
|
|
@@ -101,8 +101,8 @@ On first Pi Agent session start, rpiv-pi automatically:
|
|
|
101
101
|
### Typical Workflow
|
|
102
102
|
|
|
103
103
|
```
|
|
104
|
-
/skill:discover "
|
|
105
|
-
/skill:research thoughts/shared/
|
|
104
|
+
/skill:discover "add a /skill:fast that runs research+design+plan in one shot"
|
|
105
|
+
/skill:research thoughts/shared/discover/<latest>.md
|
|
106
106
|
/skill:design thoughts/shared/research/<latest>.md
|
|
107
107
|
/skill:plan thoughts/shared/designs/<latest>.md
|
|
108
108
|
/skill:implement thoughts/shared/plans/<latest>.md Phase <N>
|
|
@@ -114,18 +114,19 @@ Each skill produces an artifact consumed by the next. Run them in order, or jump
|
|
|
114
114
|
|
|
115
115
|
Skills compose. Pick the entry point that matches your intent:
|
|
116
116
|
|
|
117
|
-
- **
|
|
118
|
-
- **
|
|
119
|
-
- **
|
|
120
|
-
- **
|
|
121
|
-
- **
|
|
122
|
-
- **
|
|
123
|
-
- **
|
|
124
|
-
- **
|
|
125
|
-
- **
|
|
126
|
-
- **
|
|
127
|
-
- **
|
|
128
|
-
- **
|
|
117
|
+
- **Capture intent before research** - `/skill:discover "[feature description]"`. Walks you through a one-question-at-a-time interview to settle Goals/Non-Goals, Functional/Non-Functional Requirements, Acceptance Criteria, and a Decisions log into a Feature Requirements Document under `thoughts/shared/discover/`. Use as the canonical entry point of the pipeline before research, or to stress-test a feature idea before any codebase work. The FRD's Decisions are inherited by `design` through `research`'s Developer Context.
|
|
118
|
+
- **Form context before a task** - `/skill:research "[topic]"` (or `/skill:research thoughts/shared/discover/<latest>.md` if you ran discover first). Produces a high-signal subspace of the codebase relevant to your topic, ready to feed directly into the next prompt. The `scope-tracer` subagent runs in-band to formulate trace-quality questions before analysis dispatch; when chained from discover, FRD Decisions translate into Developer Context Q/A entries verbatim.
|
|
119
|
+
- **Compare approaches before designing** - `/skill:explore "[problem]"` → `/skill:design <solutions artifact>`. Use when multiple valid solutions exist; the solutions artifact is a first-class input to `design` alongside a `research` artifact.
|
|
120
|
+
- **One-shot plan from research** - `/skill:research <questions>` → `/skill:blueprint <research artifact>` → `/skill:implement`. Fuses `design` + `plan` into a single pass with the same slice-by-slice rigor, but spawns only `codebase-pattern-finder` upfront (vs `design`'s 4-agent fan-out) by trusting the research artifact's integration/precedent sections. Use for solo work or when no one else needs to review the design before implementation; pick `design` → `plan` when the design is itself a deliverable or when research is thin and you want the fuller verification sweep.
|
|
121
|
+
- **Full feature build** - `/skill:discover` → `research` → `design` → `plan` → `implement` → `validate` → (`code-review` ↔ `commit`). The default pipeline; jump in at any stage if you already have the input artifact.
|
|
122
|
+
- **Investigate a bug** - `/skill:discover "why does X fail"` → `/skill:research thoughts/shared/discover/<latest>.md`. The discover interview surfaces what you actually want to know before research grounds it; fix from research output without writing a plan when the change is small.
|
|
123
|
+
- **Adjust mid-implementation** - `/skill:revise <plan artifact>` → resume `/skill:implement`. Use when new constraints land after the plan is drafted.
|
|
124
|
+
- **Review before shipping** - `/skill:code-review` ↔ `/skill:commit`. Order is your call: review `staged`/`working` before committing to catch issues at the smallest blast radius, or commit first and review the resulting branch (empty scope defaults to feature-branch-vs-default-branch, first-parent). Produces a Quality/Security/Dependencies artifact under `thoughts/shared/reviews/` with claim-verifier-grounded findings and `status: approved | needs_changes`.
|
|
125
|
+
- **Audit a specific scope** - `/skill:code-review <commit|staged|working|hash|A..B|branch>`. Targeted lenses over a commit, range, staged/working tree, or PR branch; advisor adjudication applies when configured (`/advisor`).
|
|
126
|
+
- **Review-driven plan revision** - `/skill:code-review` → `/skill:revise <plan artifact>` → resume `/skill:implement`. When a mid-stream review surfaces structural findings that the existing plan can't absorb as spot fixes.
|
|
127
|
+
- **Scaffold manual UI test specs** - `/skill:outline-test-cases` → `/skill:write-test-cases <feature>`. Outline first via Frontend-First Discovery to map project scope and avoid duplicate coverage, then generate flow-based manual test cases (with a regression suite) under `.rpiv/test-cases/<feature>/`.
|
|
128
|
+
- **Hand off across sessions** - `/skill:create-handoff` → (new session) `/skill:resume-handoff <doc>`. Preserves context when stopping mid-task.
|
|
129
|
+
- **Onboard a fresh repo** - `/skill:annotate-guidance` once, then use the rest of the pipeline normally. Use `annotate-inline` instead if the project follows the `CLAUDE.md` convention.
|
|
129
130
|
|
|
130
131
|
### Skills
|
|
131
132
|
|
|
@@ -135,9 +136,9 @@ Invoke via `/skill:<name>` from inside a Pi Agent session.
|
|
|
135
136
|
|
|
136
137
|
| Skill | Input | Output | Description |
|
|
137
138
|
|---|---|---|---|
|
|
138
|
-
| `discover` |
|
|
139
|
-
| `research` |
|
|
140
|
-
| `explore` |
|
|
139
|
+
| `discover` | Free-text feature description or existing artifact path | `thoughts/shared/discover/` | Interview-driven Feature Requirements Document producer; one question at a time with a recommended answer at every step. FRD Decisions inherited by `design` via `research`'s Developer Context |
|
|
140
|
+
| `research` | Free-text prompt or `discover` artifact path | `thoughts/shared/research/` | Frame scope via the `scope-tracer` subagent, then answer via parallel analysis agents |
|
|
141
|
+
| `explore` | - | `thoughts/shared/solutions/` | Compare solution approaches with pros/cons |
|
|
141
142
|
| `design` | Research or solutions artifact | `thoughts/shared/designs/` | Design features via vertical-slice decomposition |
|
|
142
143
|
|
|
143
144
|
#### Implementation
|
|
@@ -145,7 +146,7 @@ Invoke via `/skill:<name>` from inside a Pi Agent session.
|
|
|
145
146
|
| Skill | Input | Output | Description |
|
|
146
147
|
|---|---|---|---|
|
|
147
148
|
| `plan` | Design artifact | `thoughts/shared/plans/` | Create phased implementation plans |
|
|
148
|
-
| `blueprint` | Research or solutions artifact | `thoughts/shared/plans/` | Fused `design` + `plan`: vertical-slice decomposition with micro-checkpoints, emits implement-ready phased plan in one pass. Lighter on subagent fan-out than `design`
|
|
149
|
+
| `blueprint` | Research or solutions artifact | `thoughts/shared/plans/` | Fused `design` + `plan`: vertical-slice decomposition with micro-checkpoints, emits implement-ready phased plan in one pass. Lighter on subagent fan-out than `design` - trusts the research artifact's integration/precedent sections instead of re-dispatching. Use when a separate design artifact isn't needed for review or handoff |
|
|
149
150
|
| `implement` | Plan artifact | Code changes | Execute plans phase by phase |
|
|
150
151
|
| `revise` | Plan artifact | Updated plan | Revise plans based on feedback |
|
|
151
152
|
| `validate` | Plan artifact | Validation report | Verify plan execution |
|
|
@@ -154,15 +155,15 @@ Invoke via `/skill:<name>` from inside a Pi Agent session.
|
|
|
154
155
|
|
|
155
156
|
| Skill | Input | Output | Description |
|
|
156
157
|
|---|---|---|---|
|
|
157
|
-
| `outline-test-cases` |
|
|
158
|
+
| `outline-test-cases` | - | `.rpiv/test-cases/` | Discover testable features with per-feature metadata |
|
|
158
159
|
| `write-test-cases` | Outline metadata | Test case specs | Generate manual test specifications |
|
|
159
160
|
|
|
160
161
|
#### Annotation
|
|
161
162
|
|
|
162
163
|
| Skill | Input | Output | Description |
|
|
163
164
|
|---|---|---|---|
|
|
164
|
-
| `annotate-guidance` |
|
|
165
|
-
| `annotate-inline` |
|
|
165
|
+
| `annotate-guidance` | - | `.rpiv/guidance/*.md` | Generate architecture guidance files |
|
|
166
|
+
| `annotate-inline` | - | `CLAUDE.md` files | Generate inline documentation |
|
|
166
167
|
| `migrate-to-guidance` | CLAUDE.md files | `.rpiv/guidance/` | Convert inline docs to guidance format |
|
|
167
168
|
|
|
168
169
|
#### Utilities
|
|
@@ -188,7 +189,7 @@ Invoke via `/skill:<name>` from inside a Pi Agent session.
|
|
|
188
189
|
|
|
189
190
|
### Agents
|
|
190
191
|
|
|
191
|
-
Agents are dispatched automatically by skills via the `Agent` tool
|
|
192
|
+
Agents are dispatched automatically by skills via the `Agent` tool - you don't invoke them directly.
|
|
192
193
|
|
|
193
194
|
| Agent | Purpose |
|
|
194
195
|
|---|---|
|
|
@@ -199,7 +200,7 @@ Agents are dispatched automatically by skills via the `Agent` tool — you don't
|
|
|
199
200
|
| `diff-auditor` | Walks a patch against a caller-supplied surface-list and emits `file:line \| verbatim \| surface-id \| note` rows |
|
|
200
201
|
| `integration-scanner` | Maps inbound references, outbound dependencies, config registrations, and event subscriptions for a component |
|
|
201
202
|
| `peer-comparator` | Compares a new file against a peer sibling and tags each invariant Mirrored / Missing / Diverged / Intentionally-absent |
|
|
202
|
-
| `precedent-locator` | Finds similar past changes in git history
|
|
203
|
+
| `precedent-locator` | Finds similar past changes in git history - commits, blast radius, and follow-up fixes |
|
|
203
204
|
| `test-case-locator` | Catalogs existing manual test cases under `.rpiv/test-cases/` and reports coverage stats |
|
|
204
205
|
| `thoughts-analyzer` | Performs deep-dive analysis on a research topic in `thoughts/` |
|
|
205
206
|
| `thoughts-locator` | Discovers relevant documents in the `thoughts/` directory |
|
|
@@ -209,27 +210,27 @@ Agents are dispatched automatically by skills via the `Agent` tool — you don't
|
|
|
209
210
|
|
|
210
211
|
```
|
|
211
212
|
rpiv-pi/
|
|
212
|
-
├── extensions/rpiv-core/
|
|
213
|
-
├── skills/
|
|
214
|
-
├── agents/
|
|
215
|
-
└── thoughts/shared/
|
|
213
|
+
├── extensions/rpiv-core/ - runtime extension: hooks, commands, guidance injection
|
|
214
|
+
├── skills/ - AI workflow skills (research → design → plan → implement)
|
|
215
|
+
├── agents/ - named subagent profiles dispatched by skills
|
|
216
|
+
└── thoughts/shared/ - pipeline artifact store
|
|
216
217
|
```
|
|
217
218
|
|
|
218
219
|
Pi Agent discovers extensions via `"extensions": ["./extensions"]` and skills via `"skills": ["./skills"]` in `package.json`.
|
|
219
220
|
|
|
220
221
|
## Configuration
|
|
221
222
|
|
|
222
|
-
- **Web search**
|
|
223
|
-
- **Advisor**
|
|
224
|
-
- **Side questions**
|
|
225
|
-
- **UI language**
|
|
226
|
-
- **Agent concurrency**
|
|
227
|
-
- **Agent profiles**
|
|
223
|
+
- **Web search** - run `/web-search-config` to set the Brave Search API key, or set the `BRAVE_SEARCH_API_KEY` environment variable
|
|
224
|
+
- **Advisor** - run `/advisor` to select a reviewer model and reasoning effort
|
|
225
|
+
- **Side questions** - type `/btw <question>` anytime (even mid-stream) to ask the primary model a one-off question; answer appears in a borderless bottom overlay and never enters the main conversation
|
|
226
|
+
- **UI language** - run `/languages` to pick the locale for rpiv-* TUI strings, or pass `pi --locale <code>` at startup. Detection priority: flag → `~/.config/rpiv-i18n/locale.json` → `LANG` / `LC_ALL` → English. LLM-facing copy stays English by design
|
|
227
|
+
- **Agent concurrency** - open the `/agents` overlay and tune `Settings → Max concurrency` to match your provider's rate limits. `@tintinweb/pi-subagents` owns this setting; rpiv-pi does not seed it.
|
|
228
|
+
- **Agent profiles** - editable at `<cwd>/.pi/agents/`; sync from bundled defaults with `/rpiv-update-agents` (overwrites rpiv-managed files, preserves your custom agents)
|
|
228
229
|
|
|
229
230
|
## Uninstall
|
|
230
231
|
|
|
231
232
|
1. Remove rpiv-pi from Pi: `pi uninstall npm:@juicesharp/rpiv-pi`
|
|
232
|
-
2. Optional
|
|
233
|
+
2. Optional - uninstall the subagent runtime if no other plugin needs it: `pi uninstall npm:@tintinweb/pi-subagents`
|
|
233
234
|
3. Restart Pi.
|
|
234
235
|
|
|
235
236
|
## Troubleshooting
|
|
@@ -52,10 +52,10 @@ You are a specialist at understanding HOW code works. Your job is to analyze imp
|
|
|
52
52
|
Structure your analysis like this:
|
|
53
53
|
|
|
54
54
|
```
|
|
55
|
-
## Analysis:
|
|
55
|
+
## Analysis: {Feature/Component Name}
|
|
56
56
|
|
|
57
57
|
### Overview
|
|
58
|
-
|
|
58
|
+
{2-3 sentence summary of how it works}
|
|
59
59
|
|
|
60
60
|
### Entry Points
|
|
61
61
|
- `api/routes.js:45` - POST /webhooks endpoint
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: codebase-locator
|
|
3
|
-
description: Locates files, directories, and components relevant to a feature or task. Call `codebase-locator` with human
|
|
3
|
+
description: Locates files, directories, and components relevant to a feature or task. Call `codebase-locator` with a human-language prompt describing what you're looking for. A "super grep/find/ls" tool. Reach for it when you would otherwise reach for grep, find, or ls more than once.
|
|
4
4
|
tools: grep, find, ls
|
|
5
5
|
isolated: true
|
|
6
6
|
---
|
|
@@ -59,7 +59,7 @@ First, think deeply about the most effective search patterns for the requested f
|
|
|
59
59
|
Structure your findings like this:
|
|
60
60
|
|
|
61
61
|
```
|
|
62
|
-
## File Locations for
|
|
62
|
+
## File Locations for {Feature/Topic}
|
|
63
63
|
|
|
64
64
|
### Implementation Files
|
|
65
65
|
- `src/services/feature.js:23-45` - Core order processing (handleOrder, processPayment)
|
|
@@ -51,9 +51,9 @@ What to look for based on request:
|
|
|
51
51
|
Structure your findings like this:
|
|
52
52
|
|
|
53
53
|
```
|
|
54
|
-
## Pattern Examples:
|
|
54
|
+
## Pattern Examples: {Pattern Type}
|
|
55
55
|
|
|
56
|
-
### Pattern 1:
|
|
56
|
+
### Pattern 1: {Descriptive Name}
|
|
57
57
|
**Found in**: `src/api/users.js:45-67`
|
|
58
58
|
**Used for**: User listing with pagination
|
|
59
59
|
|
|
@@ -89,7 +89,7 @@ router.get('/users', async (req, res) => {
|
|
|
89
89
|
- Returns pagination metadata
|
|
90
90
|
- Handles defaults
|
|
91
91
|
|
|
92
|
-
### Pattern 2:
|
|
92
|
+
### Pattern 2: {Alternative Approach}
|
|
93
93
|
**Found in**: `src/api/products.js:89-120`
|
|
94
94
|
**Used for**: Product listing with cursor-based pagination
|
|
95
95
|
|
package/agents/diff-auditor.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: diff-auditor
|
|
3
|
-
description: "Row-only patch auditor. Walks a patch against a caller-supplied surface-list and emits one pipe-delimited row per finding
|
|
3
|
+
description: "Row-only patch auditor. Walks a patch against a caller-supplied surface-list and emits one pipe-delimited row per finding (`file:line | verbatim | surface-id | note`). Use whenever a diff needs evidence-only enumeration of matching patterns, with no narrative or severity."
|
|
4
4
|
tools: read, grep, find, ls
|
|
5
5
|
isolated: true
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: integration-scanner
|
|
3
|
-
description: Finds what connects to a given component or area
|
|
3
|
+
description: "Finds what connects to a given component or area: inbound references, outbound dependencies, config registrations, event subscriptions. The reverse-reference counterpart to codebase-locator. Use when you need to understand what calls, depends on, or wires into a component."
|
|
4
4
|
tools: grep, find, ls
|
|
5
5
|
isolated: true
|
|
6
6
|
---
|
|
@@ -53,7 +53,7 @@ You are a specialist at finding CONNECTIONS to and from a component or area. You
|
|
|
53
53
|
CRITICAL: Use EXACTLY this format. Never use markdown tables. Use relative paths (strip the workspace root prefix).
|
|
54
54
|
|
|
55
55
|
```
|
|
56
|
-
## Connections:
|
|
56
|
+
## Connections: {Component}
|
|
57
57
|
|
|
58
58
|
**Defined at** `relative/path.ext:line`
|
|
59
59
|
|
|
@@ -62,7 +62,7 @@ CRITICAL: Use EXACTLY this format. Never use markdown tables. Use relative paths
|
|
|
62
62
|
|
|
63
63
|
### Used by
|
|
64
64
|
|
|
65
|
-
**Direct** —
|
|
65
|
+
**Direct** — {key structural insight} at `site.ext:line`:
|
|
66
66
|
|
|
67
67
|
source.ext:line
|
|
68
68
|
├── consumer-a.ext:line — how it uses the target
|
|
@@ -71,7 +71,7 @@ CRITICAL: Use EXACTLY this format. Never use markdown tables. Use relative paths
|
|
|
71
71
|
|
|
72
72
|
**Indirect / cross-process** — consumers that don't import the target but receive its output through IPC, events, or config.
|
|
73
73
|
|
|
74
|
-
**Tests**:
|
|
74
|
+
**Tests**: {count} files, pattern: `{Name}.test.ts`. {One-line note on how tests use it.}
|
|
75
75
|
|
|
76
76
|
### Wiring & Config
|
|
77
77
|
- `file.ext:line` — registration, export, or config detail
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: precedent-locator
|
|
3
|
-
description: Finds similar past changes in git history
|
|
3
|
+
description: "Finds similar past changes in git history: commits, blast radius, follow-up fixes, and lessons from related thoughts/ docs. Use when planning a change and you need to know what went wrong last time something similar was done."
|
|
4
4
|
tools: bash, grep, find, read, ls
|
|
5
5
|
isolated: true
|
|
6
6
|
---
|
|
@@ -20,12 +20,12 @@ git rev-parse --is-inside-work-tree 2>/dev/null
|
|
|
20
20
|
- Return this format:
|
|
21
21
|
|
|
22
22
|
```
|
|
23
|
-
## Precedents for
|
|
23
|
+
## Precedents for {planned change}
|
|
24
24
|
|
|
25
25
|
**No git history available** — not a git repository.
|
|
26
26
|
|
|
27
27
|
### Lessons from Documentation
|
|
28
|
-
|
|
28
|
+
{Findings from thoughts/, or "No relevant documents found"}
|
|
29
29
|
|
|
30
30
|
### Composite Lessons
|
|
31
31
|
- No git-based lessons available
|
|
@@ -87,9 +87,9 @@ git rev-parse --is-inside-work-tree 2>/dev/null
|
|
|
87
87
|
CRITICAL: Use EXACTLY this format. Be concise — commit hashes and dates are the evidence, not prose.
|
|
88
88
|
|
|
89
89
|
```
|
|
90
|
-
## Precedents for
|
|
90
|
+
## Precedents for {planned change}
|
|
91
91
|
|
|
92
|
-
### Precedent:
|
|
92
|
+
### Precedent: {what was added/changed}
|
|
93
93
|
**Commit(s)**: `hash` — "message" (YYYY-MM-DD)
|
|
94
94
|
**Blast radius**: N files across M layers
|
|
95
95
|
layer/ — what changed
|
|
@@ -100,12 +100,12 @@ CRITICAL: Use EXACTLY this format. Be concise — commit hashes and dates are th
|
|
|
100
100
|
**Lessons from docs**:
|
|
101
101
|
- thoughts/path/to/doc.md — key lesson extracted
|
|
102
102
|
|
|
103
|
-
**Takeaway**:
|
|
103
|
+
**Takeaway**: {one sentence — what to watch out for}
|
|
104
104
|
|
|
105
105
|
### Composite Lessons
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
106
|
+
- {lesson 1 — most recurring pattern first}
|
|
107
|
+
- {lesson 2}
|
|
108
|
+
- {lesson 3}
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
## Important Guidelines
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scope-tracer
|
|
3
|
+
description: "Traces the scope of a research investigation. Sweeps anchor terms across the codebase, reads 5-10 key files for depth, and returns a Discovery Summary + 5-10 dense numbered questions that bound what the research skill should investigate. Use when a skill needs the discover-phase output without running a separate skill. Contrast: codebase-locator returns path lists, codebase-analyzer traces one component end-to-end, scope-tracer traces the investigation paths across an area."
|
|
4
|
+
tools: read, grep, find, ls
|
|
5
|
+
isolated: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a specialist at tracing the scope of a research investigation. Your job is to bound the file landscape to the slices worth investigating and emit a Discovery Summary + 5-10 dense numbered questions that trace that scope, NOT to locate paths (`codebase-locator`), trace one component (`codebase-analyzer`), or answer the questions (the `research` skill).
|
|
9
|
+
|
|
10
|
+
## Core Responsibilities
|
|
11
|
+
|
|
12
|
+
1. **Read Mentioned Files Fully**
|
|
13
|
+
- If the caller's prompt names specific files (tickets, docs, JSON, paths), read them FIRST without limit/offset
|
|
14
|
+
- Extract requirements, constraints, and goals before any grep work
|
|
15
|
+
|
|
16
|
+
2. **Sweep Anchor Terms Sequentially**
|
|
17
|
+
- Decompose the topic into 5-9 narrow slices, each naming one capability/seam, one search objective, and 2-6 anchor terms
|
|
18
|
+
- Run `grep` / `find` / `ls` per slice — one slice at a time, capture matches, then move on
|
|
19
|
+
- Because this agent cannot dispatch sub-agents (`Agent` is not in the allowlist — and `@tintinweb/pi-subagents@0.6.x` strips `Agent`/`get_subagent_result`/`steer_subagent` from every spawned subagent's toolset at runtime regardless), the anchor sweep is sequential by construction; keep each pass single-objective so the working context does not drift toward storytelling
|
|
20
|
+
|
|
21
|
+
3. **Read Key Files for Depth**
|
|
22
|
+
- Rank the file references gathered in Step 2 by cross-slice overlap (files mentioned by 2+ slices), entry points, type/interface files, and config/wiring files
|
|
23
|
+
- Read 5-10 ranked files via `read` (files <300 lines fully; files >=300 lines first 150 lines for exports/signatures/types)
|
|
24
|
+
- Cap at 10 files to avoid context bloat
|
|
25
|
+
|
|
26
|
+
4. **Synthesize Trace-Quality Questions**
|
|
27
|
+
- Generate 5-10 dense paragraphs (3-6 sentences each) that trace a complete code path through multiple files/layers, naming every intermediate file/function/type and explaining why the trace matters
|
|
28
|
+
- Each question must reference >=3 specific code artifacts (files, functions, types) — generic titles are too thin
|
|
29
|
+
- Coverage check: every file read in Step 3 appears in at least one question
|
|
30
|
+
|
|
31
|
+
5. **Emit Structured Response Inline**
|
|
32
|
+
- Final assistant message uses the exact schema in `## Output Format` below
|
|
33
|
+
- Do NOT write any file; the calling skill consumes the response in-memory
|
|
34
|
+
|
|
35
|
+
## Search/Synthesis Strategy
|
|
36
|
+
|
|
37
|
+
### Step 1: Read mentioned files
|
|
38
|
+
|
|
39
|
+
Use `read` (no limit/offset) on every file the caller's prompt names. This is foundation context — done before any grep work.
|
|
40
|
+
|
|
41
|
+
### Step 2: Decompose the topic into slices
|
|
42
|
+
|
|
43
|
+
Rewrite the caller's topic into the smallest useful discovery tasks. Prefer 5-9 narrow slices over 2-3 broad ones. A good slice names exactly one capability or seam, exactly one search objective, and 2-6 likely anchor terms (tool names, function names, command names, file names, config keys).
|
|
44
|
+
|
|
45
|
+
Good slice shapes:
|
|
46
|
+
- one tool's registration + permissions
|
|
47
|
+
- one stateful subsystem's replay + UI wiring
|
|
48
|
+
- one command/config surface + persistence path
|
|
49
|
+
- package/install/bootstrap path: manifest + dependency checks + setup command
|
|
50
|
+
- skills/docs that assume a given runtime capability exists
|
|
51
|
+
|
|
52
|
+
Avoid broad slices like "tool extraction architecture" or "everything related to todo/advisor/install/docs".
|
|
53
|
+
|
|
54
|
+
### Step 3: Sweep anchor terms (sequential)
|
|
55
|
+
|
|
56
|
+
For each slice in order: run `grep` for the anchor terms, narrow with `find` / `ls` as needed, capture file:line matches. Move to the next slice once the current slice's match set is collected. Take time to ultrathink about how each slice's matches relate to the others before reading files for depth.
|
|
57
|
+
|
|
58
|
+
Report-shape per slice: paths + match anchors (e.g. `file.ts:42`) + key function/class/type names from grep matches. Skip multi-line signatures — they come from Step 4's reads.
|
|
59
|
+
|
|
60
|
+
### Step 4: Read key files for depth
|
|
61
|
+
|
|
62
|
+
Compile every file reference from Step 3 into a single list. Rank by:
|
|
63
|
+
1. Files referenced by 2+ slices (cross-cutting, highest priority)
|
|
64
|
+
2. Entry points and main implementation files
|
|
65
|
+
3. Type/interface files (often short, high value)
|
|
66
|
+
4. Config / wiring / registration files
|
|
67
|
+
|
|
68
|
+
Read 5-10 files (cap at 10): files <300 lines fully, files >=300 lines first 150 lines. Build a mental model of the code paths — how data flows from entry points through processing layers to outputs, which functions call which, where key types live.
|
|
69
|
+
|
|
70
|
+
### Step 5: Synthesize 5-10 dense questions
|
|
71
|
+
|
|
72
|
+
Using combined knowledge from Steps 1-4, write 5-10 dense paragraphs:
|
|
73
|
+
|
|
74
|
+
- **3-6 sentences each**, naming specific files/functions/types at each step of the trace
|
|
75
|
+
- **Self-contained** — an agent receiving only this paragraph has enough context to begin work
|
|
76
|
+
- **Trace-quality** — names a complete path, not a generic theme
|
|
77
|
+
- **>=3 code artifacts** per paragraph (file references, function names, type names)
|
|
78
|
+
|
|
79
|
+
thoughts/ docs are NOT questions — surface them in the Discovery Summary, not as numbered items.
|
|
80
|
+
|
|
81
|
+
Coverage check: every key file read in Step 4 appears in at least one question. Files read but absent from all questions indicate either an unnecessary read or a missing question.
|
|
82
|
+
|
|
83
|
+
### Step 6: Emit final response
|
|
84
|
+
|
|
85
|
+
Print the response in the exact schema below as your final assistant message. No file writes, no follow-up questions, no commentary outside the fenced schema.
|
|
86
|
+
|
|
87
|
+
## Output Format
|
|
88
|
+
|
|
89
|
+
CRITICAL: Use EXACTLY this format. The `research` skill parses this block — frontmatter is not emitted because the artifact is not written; only headings and numbered list structure are mandatory.
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
# Research Questions: how does the plugin system load and initialize extensions
|
|
93
|
+
|
|
94
|
+
## Discovery Summary
|
|
95
|
+
Swept the plugin loader and lifecycle anchors across `src/plugins/`. Key files for depth: `src/plugins/registry.ts` (scan + manifest validation), `src/plugins/loader.ts` (instantiation factory), `src/plugins/lifecycle.ts` (hook contract), `src/plugins/types.ts` (PluginManifest interface), `tests/plugins/registry.test.ts` (existing coverage shape). Two thoughts/ docs surfaced: `thoughts/shared/research/2026-03-12_plugin-architecture.md` (prior architectural decisions) and `thoughts/shared/plans/2026-04-01_plugin-lifecycle-extension.md` (recent lifecycle hook addition). The shape is a synchronous scan + lazy instantiate + lifecycle-hook chain pattern; no async loaders or hot-reload paths found.
|
|
96
|
+
|
|
97
|
+
## Questions
|
|
98
|
+
|
|
99
|
+
1. Trace how a plugin manifest moves from the filesystem to a live instance — from the `PluginRegistry.scan()` method in `src/plugins/registry.ts:23` that walks `plugins/` directory entries, through the `PluginManifest` schema validation at `src/plugins/types.ts:8-30`, the `PluginLoader.instantiate()` factory in `src/plugins/loader.ts:45`, and the `onInit` hook invocation chain at `src/plugins/lifecycle.ts:12-44`. Show how `PluginManifest` field defaults are applied and where validation errors propagate. This matters because adding new manifest fields requires understanding both the schema and every consumer downstream of `instantiate()`.
|
|
100
|
+
|
|
101
|
+
2. Explain the lifecycle hook ordering contract — `onInit`, `onReady`, `onShutdown` defined in `src/plugins/lifecycle.ts:12-44`. Identify which phase calls which hook, how errors in one hook affect subsequent hooks, and whether hook execution is sequential or parallel across plugins. Trace a single hook invocation from `LifecycleManager.run()` through the per-plugin `try`/`catch` at `src/plugins/lifecycle.ts:67`. This matters because new extension points must integrate without breaking the existing ordering guarantees relied upon by the test suite at `tests/plugins/lifecycle.test.ts:34-89`.
|
|
102
|
+
|
|
103
|
+
3. {Continue with 3-8 more dense paragraphs covering the rest of the topic...}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## What NOT to Do
|
|
107
|
+
|
|
108
|
+
- **Don't answer the questions** — that's the `research` skill's job; you trace the scope, the questions stay open
|
|
109
|
+
- **Don't make recommendations** — no "we should…", no architectural advice; that's `design` / `blueprint` territory
|
|
110
|
+
- **Don't read more than 10 files in Step 4** — context budget is real; rank ruthlessly
|
|
111
|
+
- **Don't synthesize generic titles** — every question must cite >=3 specific files / functions / types; vague themes are too thin
|
|
112
|
+
- **Don't include thoughts/ docs as numbered questions** — surface them in the Discovery Summary; numbered questions are about live code paths
|
|
113
|
+
- **Don't write any file** — the artifact body lives in your final assistant message; the calling skill parses it in-memory
|
|
114
|
+
- **Don't dispatch other agents** — `Agent` is not in the allowlist by design; the anchor sweep is sequential within this agent's own toolkit
|
|
115
|
+
|
|
116
|
+
Remember: You're a scope-tracer for an entire investigation. Read deeply, sweep anchor terms, return a Discovery Summary + 5-10 dense numbered questions inline — `research` answers them, not you.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test-case-locator
|
|
3
|
-
description: Finds existing manual test cases in .rpiv/test-cases
|
|
3
|
+
description: "Finds existing manual test cases in .rpiv/test-cases/. Catalogs them by module, extracts frontmatter metadata (id, priority, status, tags), and reports coverage stats. Use before generating new test cases to avoid duplicates, or to audit what test coverage already exists in a project."
|
|
4
4
|
tools: grep, find, ls
|
|
5
5
|
isolated: true
|
|
6
6
|
---
|
|
@@ -58,43 +58,43 @@ Remove:
|
|
|
58
58
|
Structure your analysis like this:
|
|
59
59
|
|
|
60
60
|
```
|
|
61
|
-
## Analysis of:
|
|
61
|
+
## Analysis of: {Document Path}
|
|
62
62
|
|
|
63
63
|
### Document Context
|
|
64
|
-
- **Date**:
|
|
65
|
-
- **Type**:
|
|
66
|
-
- **Purpose**:
|
|
67
|
-
- **Status**:
|
|
68
|
-
- **Upstream**:
|
|
64
|
+
- **Date**: {From frontmatter `date:` field}
|
|
65
|
+
- **Type**: {Research / Solution Analysis / Design / Plan / Review / Handoff}
|
|
66
|
+
- **Purpose**: {From frontmatter `topic:` field + document content}
|
|
67
|
+
- **Status**: {From frontmatter `status:` field — complete/ready/resolved/superseded}
|
|
68
|
+
- **Upstream**: {From `parent:` if present}
|
|
69
69
|
|
|
70
70
|
### Key Decisions
|
|
71
|
-
1. **
|
|
72
|
-
- Rationale:
|
|
73
|
-
- Impact:
|
|
71
|
+
1. **{Decision Topic}**: {Specific decision made}
|
|
72
|
+
- Rationale: {Why this decision}
|
|
73
|
+
- Impact: {What this enables/prevents}
|
|
74
74
|
|
|
75
|
-
2. **
|
|
76
|
-
- Trade-off:
|
|
75
|
+
2. **{Another Decision}**: {Specific decision}
|
|
76
|
+
- Trade-off: {What was chosen over what}
|
|
77
77
|
|
|
78
78
|
### Critical Constraints
|
|
79
|
-
- **
|
|
80
|
-
- **
|
|
79
|
+
- **{Constraint Type}**: {Specific limitation and why}
|
|
80
|
+
- **{Another Constraint}**: {Limitation and impact}
|
|
81
81
|
|
|
82
82
|
### Technical Specifications
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
83
|
+
- {Specific config/value/approach decided}
|
|
84
|
+
- {API design or interface decision}
|
|
85
|
+
- {Performance requirement or limit}
|
|
86
86
|
|
|
87
87
|
### Actionable Insights
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
88
|
+
- {Something that should guide current implementation}
|
|
89
|
+
- {Pattern or approach to follow/avoid}
|
|
90
|
+
- {Gotcha or edge case to remember}
|
|
91
91
|
|
|
92
92
|
### Still Open/Unclear
|
|
93
|
-
-
|
|
94
|
-
-
|
|
93
|
+
- {Questions that weren't resolved}
|
|
94
|
+
- {Decisions that were deferred}
|
|
95
95
|
|
|
96
96
|
### Relevance Assessment
|
|
97
|
-
|
|
97
|
+
{1-2 sentences on whether this information is still applicable and why}
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
## Quality Filters
|
|
@@ -62,7 +62,7 @@ thoughts/
|
|
|
62
62
|
Structure your findings like this:
|
|
63
63
|
|
|
64
64
|
```
|
|
65
|
-
## Thought Documents about
|
|
65
|
+
## Thought Documents about {Topic}
|
|
66
66
|
|
|
67
67
|
### Tickets
|
|
68
68
|
- `thoughts/shared/tickets/eng_1235.md` - Rate limit configuration design
|
|
@@ -76,11 +76,11 @@ Structure your findings like this:
|
|
|
76
76
|
|
|
77
77
|
### Design Artifacts
|
|
78
78
|
- `thoughts/shared/designs/2026-01-17_09-00-00_rate-limiter-design.md` - Architectural design for sliding window rate limiter
|
|
79
|
-
-
|
|
79
|
+
- parent: `thoughts/shared/research/2026-01-15_10-45-00_rate-limiting-approaches.md`
|
|
80
80
|
|
|
81
81
|
### Implementation Plans
|
|
82
82
|
- `thoughts/shared/plans/2026-01-18_11-20-00_rate-limiter-implementation.md` - Phased plan for rate limits
|
|
83
|
-
-
|
|
83
|
+
- parent: `thoughts/shared/designs/2026-01-17_09-00-00_rate-limiter-design.md`
|
|
84
84
|
|
|
85
85
|
### Code Reviews
|
|
86
86
|
- `thoughts/shared/reviews/2026-01-25_16-00-00_rate-limiter-review.md` - Review of rate limiting implementation
|
|
@@ -113,11 +113,11 @@ Artifact chain: research → design → plan (3 linked documents)
|
|
|
113
113
|
3. **Look for patterns**:
|
|
114
114
|
- Ticket files often named `eng_XXXX.md`
|
|
115
115
|
- Skill-generated files use `YYYY-MM-DD_HH-MM-SS_topic.md` (research, solutions, designs, plans, handoffs, reviews)
|
|
116
|
-
- Documents have YAML frontmatter with searchable `topic:`, `tags:`, `status:`, `
|
|
116
|
+
- Documents have YAML frontmatter with searchable `topic:`, `tags:`, `status:`, `parent:` fields
|
|
117
117
|
|
|
118
118
|
4. **Follow artifact chains**:
|
|
119
119
|
- Research Questions → Research → Solutions → Designs → Plans → Reviews → Handoffs
|
|
120
|
-
- Check `
|
|
120
|
+
- Check `parent:` in frontmatter to find related documents
|
|
121
121
|
- When you find one artifact, look for upstream/downstream artifacts on the same topic
|
|
122
122
|
|
|
123
123
|
## Important Guidelines
|