rpi-kit 2.2.2 → 2.5.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/.claude-plugin/marketplace.json +3 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.gemini/commands/opsx/apply.toml +149 -0
- package/.gemini/commands/opsx/archive.toml +154 -0
- package/.gemini/commands/opsx/bulk-archive.toml +239 -0
- package/.gemini/commands/opsx/continue.toml +111 -0
- package/.gemini/commands/opsx/explore.toml +170 -0
- package/.gemini/commands/opsx/ff.toml +94 -0
- package/.gemini/commands/opsx/new.toml +66 -0
- package/.gemini/commands/opsx/onboard.toml +547 -0
- package/.gemini/commands/opsx/propose.toml +103 -0
- package/.gemini/commands/opsx/sync.toml +131 -0
- package/.gemini/commands/opsx/verify.toml +161 -0
- package/.gemini/commands/rpi/archive.toml +140 -0
- package/.gemini/commands/rpi/docs-gen.toml +210 -0
- package/.gemini/commands/rpi/docs.toml +153 -0
- package/.gemini/commands/rpi/evolve.toml +411 -0
- package/.gemini/commands/rpi/fix.toml +290 -0
- package/.gemini/commands/rpi/implement.toml +272 -0
- package/.gemini/commands/rpi/init.toml +180 -0
- package/.gemini/commands/rpi/learn.toml +105 -0
- package/.gemini/commands/rpi/new.toml +158 -0
- package/.gemini/commands/rpi/onboarding.toml +236 -0
- package/.gemini/commands/rpi/party.toml +204 -0
- package/.gemini/commands/rpi/plan.toml +623 -0
- package/.gemini/commands/rpi/research.toml +265 -0
- package/.gemini/commands/rpi/review.toml +443 -0
- package/.gemini/commands/rpi/rpi.toml +114 -0
- package/.gemini/commands/rpi/simplify.toml +214 -0
- package/.gemini/commands/rpi/status.toml +194 -0
- package/.gemini/commands/rpi/update.toml +107 -0
- package/.gemini/skills/openspec-apply-change/SKILL.md +156 -0
- package/.gemini/skills/openspec-archive-change/SKILL.md +114 -0
- package/.gemini/skills/openspec-bulk-archive-change/SKILL.md +246 -0
- package/.gemini/skills/openspec-continue-change/SKILL.md +118 -0
- package/.gemini/skills/openspec-explore/SKILL.md +288 -0
- package/.gemini/skills/openspec-ff-change/SKILL.md +101 -0
- package/.gemini/skills/openspec-new-change/SKILL.md +74 -0
- package/.gemini/skills/openspec-onboard/SKILL.md +554 -0
- package/.gemini/skills/openspec-propose/SKILL.md +110 -0
- package/.gemini/skills/openspec-sync-specs/SKILL.md +138 -0
- package/.gemini/skills/openspec-verify-change/SKILL.md +168 -0
- package/CHANGELOG.md +15 -0
- package/README.md +6 -6
- package/agents/atlas.md +40 -0
- package/agents/clara.md +40 -0
- package/agents/forge.md +40 -0
- package/agents/hawk.md +40 -0
- package/agents/luna.md +40 -0
- package/agents/mestre.md +46 -0
- package/agents/nexus.md +52 -0
- package/agents/pixel.md +40 -0
- package/agents/quill.md +40 -0
- package/agents/razor.md +40 -0
- package/agents/sage.md +46 -0
- package/agents/scout.md +40 -0
- package/agents/shield.md +40 -0
- package/bin/cli.js +60 -18
- package/commands/rpi/docs.md +29 -1
- package/commands/rpi/fix.md +301 -0
- package/commands/rpi/implement.md +37 -0
- package/commands/rpi/plan.md +66 -1
- package/commands/rpi/research.md +48 -1
- package/commands/rpi/review.md +48 -1
- package/commands/rpi/rpi.md +1 -1
- package/commands/rpi/simplify.md +31 -1
- package/commands/rpi/status.md +69 -0
- package/marketplace.json +3 -2
- package/package.json +2 -1
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
description = "Multi-agent debate on any topic. Nexus facilitates, 3-5 agents discuss."
|
|
2
|
+
|
|
3
|
+
prompt = """
|
|
4
|
+
# /rpi:party — Party Mode
|
|
5
|
+
|
|
6
|
+
Multi-agent debate facilitated by Nexus. Select 3-5 agents based on the topic, let them argue their perspectives, then synthesize a recommendation with trade-offs.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Step 1: Load config
|
|
11
|
+
|
|
12
|
+
Read `.rpi.yaml` from the project root. Extract:
|
|
13
|
+
- `folder` (default: `rpi/features`)
|
|
14
|
+
- `solutions_dir` (default: `rpi/solutions`)
|
|
15
|
+
- `context_file` (default: `rpi/context.md`)
|
|
16
|
+
- `party_default_agents` (default: `4`)
|
|
17
|
+
|
|
18
|
+
If `.rpi.yaml` doesn't exist, use defaults silently.
|
|
19
|
+
|
|
20
|
+
## Step 2: Parse arguments
|
|
21
|
+
|
|
22
|
+
Parse `$ARGUMENTS` to extract:
|
|
23
|
+
- Optional `{slug}` — a feature name (first word, if it doesn't start with `"`)
|
|
24
|
+
- `{topic}` — the debate topic (quoted string, or everything after the slug)
|
|
25
|
+
|
|
26
|
+
If no topic is provided, ask the user with AskUserQuestion:
|
|
27
|
+
"What topic do you want to debate? (e.g. 'GraphQL vs REST for the API?', 'how to handle token refresh?')"
|
|
28
|
+
|
|
29
|
+
## Step 3: Gather feature context (if slug provided)
|
|
30
|
+
|
|
31
|
+
If a feature slug was provided:
|
|
32
|
+
1. Check if `rpi/features/{slug}/` exists. If not:
|
|
33
|
+
```
|
|
34
|
+
Feature '{slug}' not found. Proceeding without feature context.
|
|
35
|
+
```
|
|
36
|
+
Clear the slug and continue.
|
|
37
|
+
2. If it exists, read available artifacts — store as `$FEATURE_CONTEXT`:
|
|
38
|
+
- `rpi/features/{slug}/REQUEST.md` if it exists
|
|
39
|
+
- `rpi/features/{slug}/research/RESEARCH.md` if it exists
|
|
40
|
+
- `rpi/features/{slug}/plan/PLAN.md` if it exists
|
|
41
|
+
|
|
42
|
+
Read `rpi/context.md` (project context) if it exists — store as `$PROJECT_CONTEXT`.
|
|
43
|
+
|
|
44
|
+
## Step 4: Nexus selects agents
|
|
45
|
+
|
|
46
|
+
Use the Agent tool to launch Nexus for agent selection:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
You are Nexus. Analyze the following debate topic and select 3-5 agents to participate.
|
|
50
|
+
|
|
51
|
+
## Topic
|
|
52
|
+
{topic}
|
|
53
|
+
|
|
54
|
+
## Feature Context
|
|
55
|
+
{$FEATURE_CONTEXT or "No feature context."}
|
|
56
|
+
|
|
57
|
+
## Project Context
|
|
58
|
+
{$PROJECT_CONTEXT or "No project context."}
|
|
59
|
+
|
|
60
|
+
Select agents based on the topic category:
|
|
61
|
+
|
|
62
|
+
- Technical topics (architecture, implementation, patterns, performance) → Mestre + Atlas + Scout
|
|
63
|
+
- Product topics (UX, requirements, scope, user experience) → Clara + Luna + Pixel
|
|
64
|
+
- Security topics (auth, data protection, vulnerabilities, compliance) → Shield + Hawk + Mestre
|
|
65
|
+
- Mixed topics (trade-offs, strategy, cross-cutting concerns) → Mestre + Clara + Atlas + Shield
|
|
66
|
+
|
|
67
|
+
You may adjust the selection if the topic warrants it. Always pick 3-5 agents. For each selected agent, provide a one-line reason why they're relevant.
|
|
68
|
+
|
|
69
|
+
Output format:
|
|
70
|
+
## Selected Agents
|
|
71
|
+
1. {AgentName} — {reason}
|
|
72
|
+
2. {AgentName} — {reason}
|
|
73
|
+
...
|
|
74
|
+
|
|
75
|
+
## Category
|
|
76
|
+
{Technical | Product | Security | Mixed}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Store the output as `$NEXUS_SELECTION`. Parse the selected agent names from it.
|
|
80
|
+
|
|
81
|
+
## Step 5: Launch debate agents in parallel
|
|
82
|
+
|
|
83
|
+
Use the Agent tool to launch all selected agents simultaneously. Each agent receives this prompt (adapted to their persona):
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
You are {AgentName}. You've been called into a Party Mode debate.
|
|
87
|
+
|
|
88
|
+
## Topic
|
|
89
|
+
{topic}
|
|
90
|
+
|
|
91
|
+
## Feature Context
|
|
92
|
+
{$FEATURE_CONTEXT or "No feature context."}
|
|
93
|
+
|
|
94
|
+
## Project Context
|
|
95
|
+
{$PROJECT_CONTEXT or "No project context."}
|
|
96
|
+
|
|
97
|
+
Share your perspective on this topic IN CHARACTER. Be opinionated and specific:
|
|
98
|
+
1. State your position clearly — what do you recommend and why?
|
|
99
|
+
2. Identify trade-offs and risks from your area of expertise
|
|
100
|
+
3. If you disagree with an obvious counter-argument, preemptively address it
|
|
101
|
+
4. Provide concrete examples or references where possible
|
|
102
|
+
|
|
103
|
+
Keep your response focused and under 500 words.
|
|
104
|
+
|
|
105
|
+
Output format:
|
|
106
|
+
## {AgentName}'s Perspective
|
|
107
|
+
{your position and arguments}
|
|
108
|
+
|
|
109
|
+
### Trade-offs
|
|
110
|
+
- {trade-off 1}
|
|
111
|
+
- {trade-off 2}
|
|
112
|
+
|
|
113
|
+
### Recommendation
|
|
114
|
+
{your specific recommendation in 1-2 sentences}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Store each agent's output as `$AGENT_{NAME}_OUTPUT`.
|
|
118
|
+
|
|
119
|
+
## Step 6: Nexus synthesizes debate
|
|
120
|
+
|
|
121
|
+
Launch Nexus agent to produce the final synthesis:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
You are Nexus. Synthesize the Party Mode debate on: {topic}
|
|
125
|
+
|
|
126
|
+
## Agent Perspectives
|
|
127
|
+
{all $AGENT_{NAME}_OUTPUT concatenated}
|
|
128
|
+
|
|
129
|
+
## Feature Context
|
|
130
|
+
{$FEATURE_CONTEXT or "No feature context."}
|
|
131
|
+
|
|
132
|
+
Your task:
|
|
133
|
+
1. Identify points of CONSENSUS — where agents agree
|
|
134
|
+
2. Identify points of DISAGREEMENT — where agents conflict
|
|
135
|
+
3. For each disagreement, evaluate the strength of each position
|
|
136
|
+
4. Produce a clear recommendation with trade-offs
|
|
137
|
+
5. Note any open questions that the team should resolve
|
|
138
|
+
|
|
139
|
+
Output format:
|
|
140
|
+
# Party Mode: {topic}
|
|
141
|
+
|
|
142
|
+
## Participants
|
|
143
|
+
{list of agents and their roles}
|
|
144
|
+
|
|
145
|
+
## Consensus
|
|
146
|
+
{points where agents agree}
|
|
147
|
+
|
|
148
|
+
## Disagreements
|
|
149
|
+
{for each: what each side argues, strength of evidence, resolution}
|
|
150
|
+
|
|
151
|
+
## Recommendation
|
|
152
|
+
{clear recommendation with reasoning}
|
|
153
|
+
|
|
154
|
+
## Trade-offs
|
|
155
|
+
{key trade-offs to be aware of}
|
|
156
|
+
|
|
157
|
+
## Open Questions
|
|
158
|
+
{unresolved items, if any}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Store the output as `$NEXUS_SYNTHESIS`.
|
|
162
|
+
|
|
163
|
+
## Step 7: Present results
|
|
164
|
+
|
|
165
|
+
Output the full `$NEXUS_SYNTHESIS` to the user.
|
|
166
|
+
|
|
167
|
+
## Step 8: Offer to save decision
|
|
168
|
+
|
|
169
|
+
Ask the user with AskUserQuestion:
|
|
170
|
+
"Save this decision to rpi/solutions/decisions/? (y/n)"
|
|
171
|
+
|
|
172
|
+
### If yes:
|
|
173
|
+
|
|
174
|
+
1. Derive a slug from the topic (kebab-case, max 50 chars).
|
|
175
|
+
2. Ensure directory exists: `rpi/solutions/decisions/`
|
|
176
|
+
3. Write to `rpi/solutions/decisions/{topic-slug}.md`:
|
|
177
|
+
```markdown
|
|
178
|
+
# {Topic}
|
|
179
|
+
|
|
180
|
+
## Decision
|
|
181
|
+
{recommendation from Nexus synthesis}
|
|
182
|
+
|
|
183
|
+
## Context
|
|
184
|
+
{summary of the debate — consensus, disagreements, trade-offs}
|
|
185
|
+
|
|
186
|
+
## Participants
|
|
187
|
+
{list of agents involved}
|
|
188
|
+
|
|
189
|
+
## Date
|
|
190
|
+
{YYYY-MM-DD}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
4. Output:
|
|
194
|
+
```
|
|
195
|
+
Decision saved: rpi/solutions/decisions/{topic-slug}.md
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### If no:
|
|
199
|
+
|
|
200
|
+
Output:
|
|
201
|
+
```
|
|
202
|
+
Decision not saved. You can revisit this topic anytime with /rpi:party.
|
|
203
|
+
```
|
|
204
|
+
"""
|