@research-copilot/plugin 1.1.15

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.
@@ -0,0 +1,361 @@
1
+ ---
2
+ name: submission-sprint
3
+ description: Pre-submission optimization loop (review → fix → review). Use before final submission to close all P0 gaps.
4
+ triggers:
5
+ - "submission sprint"
6
+ - "pre-submit check"
7
+ - "final optimization"
8
+ - "close all gaps"
9
+ - "prepare for submission"
10
+ ---
11
+
12
+ # Submission Sprint
13
+
14
+ Iterative review-fix loop until all P0 (priority 0) gaps are closed. Runs multiple optimization cycles before final submission.
15
+
16
+ ## When to Use
17
+
18
+ Use this skill when:
19
+ - User asks to "run submission sprint"
20
+ - Paper is ready for final pre-submission optimization
21
+ - User wants to "close all gaps before submission"
22
+ - Paper polishing is complete and needs final quality check
23
+
24
+ Do NOT use when:
25
+ - Paper is still being drafted (too early)
26
+ - User wants a single review pass (use review skills)
27
+ - Only specific issues need fixing (handle directly)
28
+
29
+ ## Task-First Protocol
30
+
31
+ Before starting, check if sprint task exists:
32
+
33
+ ```powershell
34
+ # Check for existing sprint task
35
+ $taskFile = "C:\PythonProject\research_copilot\.rc\tasks\submission-sprint.json"
36
+ if (Test-Path $taskFile) {
37
+ $task = Get-Content $taskFile | ConvertFrom-Json
38
+ Write-Host "Found existing sprint task: iteration $($task.current_iteration)"
39
+ } else {
40
+ Write-Host "No existing task. Will create one."
41
+ }
42
+ ```
43
+
44
+ Create task if needed:
45
+
46
+ ```powershell
47
+ # Create submission sprint task
48
+ $paperFile = "paper_polished.tex" # Or user-specified file
49
+ rc task create --type sprint --paper $paperFile --max-iterations 5 --output .rc/tasks/submission-sprint.json
50
+ ```
51
+
52
+ ## Auto-Context Loading
53
+
54
+ Read all context files before starting loop:
55
+
56
+ ```powershell
57
+ # Load task context
58
+ $taskFile = "C:\PythonProject\research_copilot\.rc\tasks\submission-sprint.json"
59
+ if (Test-Path $taskFile) {
60
+ $task = Get-Content $taskFile | ConvertFrom-Json
61
+ Write-Host "Paper file: $($task.paper_file)"
62
+ Write-Host "Max iterations: $($task.max_iterations)"
63
+
64
+ # Load PRD for research requirements
65
+ $prdFile = "C:\PythonProject\research_copilot\.rc\prd.md"
66
+ if (Test-Path $prdFile) {
67
+ $prd = Get-Content $prdFile -Raw
68
+ Write-Host "PRD loaded"
69
+ }
70
+
71
+ # Load venue specification
72
+ $venueFile = "C:\PythonProject\research_copilot\.rc\venue\spec.json"
73
+ if (Test-Path $venueFile) {
74
+ $venue = Get-Content $venueFile | ConvertFrom-Json
75
+ Write-Host "Venue: $($venue.name)"
76
+ }
77
+
78
+ # Load previous review if exists
79
+ $reviewFile = "C:\PythonProject\research_copilot\.rc\sprint\review_latest.json"
80
+ if (Test-Path $reviewFile) {
81
+ $review = Get-Content $reviewFile | ConvertFrom-Json
82
+ Write-Host "Previous review found: $($review.p0_count) P0 gaps"
83
+ }
84
+ }
85
+ ```
86
+
87
+ ## Loop Logic
88
+
89
+ Iterative review-fix cycle:
90
+
91
+ ```powershell
92
+ # Initialize loop
93
+ $iteration = 1
94
+ $maxIterations = 5
95
+ $p0Count = 999 # Start with high number
96
+
97
+ Write-Host "Starting Submission Sprint..."
98
+
99
+ while ($p0Count -gt 0 -and $iteration -le $maxIterations) {
100
+ Write-Host "`n=== Iteration $iteration/$maxIterations ==="
101
+
102
+ # Step 1: Review paper
103
+ Write-Host "Step 1: Reviewing paper..."
104
+ rc task start sprint-review-$iteration
105
+
106
+ # Dispatch to reviewer agent with comprehensive prompt
107
+ Write-Host "Dispatching to @rc-reviewer agent..."
108
+
109
+ # Agent reviews for:
110
+ # - P0 (blocking): Missing citations, logic gaps, incorrect claims
111
+ # - P1 (important): Clarity issues, weak motivation, missing details
112
+ # - P2 (nice-to-have): Style improvements, minor wording
113
+
114
+ # Wait for review completion
115
+ $status = rc task status sprint-review-$iteration
116
+ Write-Host "Review status: $status"
117
+
118
+ # Load review results
119
+ $reviewFile = "C:\PythonProject\research_copilot\.rc\sprint\review_$iteration.json"
120
+ if (-not (Test-Path $reviewFile)) {
121
+ Write-Host "ERROR: Review file not generated"
122
+ break
123
+ }
124
+
125
+ $review = Get-Content $reviewFile | ConvertFrom-Json
126
+ $p0Count = ($review.gaps | Where-Object { $_.priority -eq "P0" }).Count
127
+ $p1Count = ($review.gaps | Where-Object { $_.priority -eq "P1" }).Count
128
+
129
+ Write-Host "Gaps found: $p0Count P0, $p1Count P1"
130
+
131
+ # Mark review task complete
132
+ rc task complete sprint-review-$iteration
133
+
134
+ # Step 2: Check termination condition
135
+ if ($p0Count -eq 0) {
136
+ Write-Host "✓ All P0 gaps closed!"
137
+
138
+ if ($p1Count -le 2) {
139
+ Write-Host "✓ P1 gaps acceptable (≤2)"
140
+ Write-Host "Submission sprint complete!"
141
+ break
142
+ } else {
143
+ Write-Host "WARNING: $p1Count P1 gaps remain (target: ≤2)"
144
+ Write-Host "Consider one more iteration for P1 gaps"
145
+ }
146
+ break
147
+ }
148
+
149
+ # Step 3: Create fix tasks for P0 gaps
150
+ Write-Host "Step 2: Creating fix tasks for P0 gaps..."
151
+
152
+ $p0Gaps = $review.gaps | Where-Object { $_.priority -eq "P0" }
153
+ $fixTasks = @()
154
+
155
+ foreach ($gap in $p0Gaps) {
156
+ $fixTaskId = "sprint-fix-$iteration-$($gap.id)"
157
+
158
+ rc task create `
159
+ --type fix `
160
+ --title "Fix P0 gap: $($gap.title)" `
161
+ --description "$($gap.description)" `
162
+ --location "$($gap.location)" `
163
+ --output ".rc/tasks/$fixTaskId.json"
164
+
165
+ $fixTasks += $fixTaskId
166
+ Write-Host "Created fix task: $fixTaskId"
167
+ }
168
+
169
+ # Step 4: Execute all fix tasks
170
+ Write-Host "Step 3: Executing fix tasks..."
171
+
172
+ foreach ($fixTaskId in $fixTasks) {
173
+ Write-Host "Fixing: $fixTaskId"
174
+ rc task start $fixTaskId
175
+
176
+ # Dispatch to fixer agent
177
+ # Agent reads gap context and applies targeted fix
178
+
179
+ rc task complete $fixTaskId
180
+ }
181
+
182
+ Write-Host "✓ All P0 fixes applied"
183
+
184
+ # Step 5: Increment iteration
185
+ $iteration++
186
+
187
+ # Save iteration state
188
+ $stateFile = "C:\PythonProject\research_copilot\.rc\sprint\state.json"
189
+ @{
190
+ current_iteration = $iteration
191
+ p0_count = $p0Count
192
+ p1_count = $p1Count
193
+ } | ConvertTo-Json | Out-File -FilePath $stateFile -Encoding utf8
194
+ }
195
+
196
+ # Final status
197
+ if ($p0Count -eq 0) {
198
+ Write-Host "`n✓ Submission sprint SUCCESS"
199
+ Write-Host "Paper ready for final sanity check"
200
+ } else {
201
+ Write-Host "`nWARNING: Sprint ended with $p0Count P0 gaps remaining"
202
+ Write-Host "Max iterations ($maxIterations) reached"
203
+ }
204
+ ```
205
+
206
+ ## Termination Condition
207
+
208
+ Loop exits when:
209
+
210
+ 1. **Success**: `P0_COUNT = 0` AND `P1_COUNT ≤ 2`
211
+ 2. **Max iterations**: Reached `max_iterations` (default: 5)
212
+ 3. **Error**: Review or fix task fails
213
+
214
+ ## Quality Gates
215
+
216
+ Before marking sprint complete:
217
+
218
+ ```powershell
219
+ # Quality gate checks
220
+ $passed = $true
221
+
222
+ # Gate 1: Zero P0 gaps
223
+ $reviewFile = "C:\PythonProject\research_copilot\.rc\sprint\review_latest.json"
224
+ if (Test-Path $reviewFile) {
225
+ $review = Get-Content $reviewFile | ConvertFrom-Json
226
+ $p0Count = ($review.gaps | Where-Object { $_.priority -eq "P0" }).Count
227
+
228
+ if ($p0Count -gt 0) {
229
+ Write-Host "FAIL: $p0Count P0 gaps remain"
230
+ $passed = $false
231
+ }
232
+ } else {
233
+ Write-Host "FAIL: No review file found"
234
+ $passed = $false
235
+ }
236
+
237
+ # Gate 2: P1 gaps acceptable
238
+ if (Test-Path $reviewFile) {
239
+ $p1Count = ($review.gaps | Where-Object { $_.priority -eq "P1" }).Count
240
+
241
+ if ($p1Count -gt 2) {
242
+ Write-Host "WARNING: $p1Count P1 gaps remain (target: ≤2)"
243
+ }
244
+ }
245
+
246
+ # Gate 3: Paper still compiles
247
+ $paperFile = "paper_polished.tex"
248
+ if (Test-Path $paperFile) {
249
+ $compileResult = pdflatex -interaction=nonstopmode $paperFile 2>&1
250
+ if ($LASTEXITCODE -ne 0) {
251
+ Write-Host "FAIL: LaTeX compilation failed after fixes"
252
+ $passed = $false
253
+ }
254
+ }
255
+
256
+ if ($passed) {
257
+ Write-Host "All quality gates passed"
258
+ rc task complete submission-sprint
259
+ } else {
260
+ Write-Host "Quality gates failed - manual review needed"
261
+ }
262
+ ```
263
+
264
+ ## Report Format
265
+
266
+ Generate final report after sprint completes:
267
+
268
+ ```markdown
269
+ # Submission Sprint Report
270
+
271
+ **Paper**: {paper_file}
272
+ **Date**: {date}
273
+ **Iterations**: {iteration_count}
274
+ **Final Status**: {READY / NEEDS_WORK}
275
+
276
+ ## Iteration Summary
277
+
278
+ | Iteration | P0 Gaps | P1 Gaps | Fixes Applied |
279
+ |-----------|---------|---------|---------------|
280
+ | 1 | 8 | 12 | 8 |
281
+ | 2 | 3 | 10 | 3 |
282
+ | 3 | 0 | 5 | 0 |
283
+
284
+ ## P0 Gaps Closed
285
+
286
+ 1. **Missing citation for Baseline-X** (§3.2)
287
+ - Fixed: Added \cite{baseline-x-2023}
288
+
289
+ 2. **Logic gap in novelty claim** (§1)
290
+ - Fixed: Added explicit comparison to prior work
291
+
292
+ 3. **Inconsistent metric definition** (§4.1)
293
+ - Fixed: Aligned formula with implementation
294
+
295
+ [... all P0 gaps listed ...]
296
+
297
+ ## Remaining P1 Gaps
298
+
299
+ 1. **Weak motivation in §1** (line 45-48)
300
+ - Suggestion: Strengthen with real-world application
301
+
302
+ 2. **Missing ablation detail** (§4.3)
303
+ - Suggestion: Add table showing component contributions
304
+
305
+ ## Quality Gate Results
306
+
307
+ ✓ P0 gaps: 0 (target: 0)
308
+ ⚠ P1 gaps: 2 (target: ≤2)
309
+ ✓ LaTeX compiles: Yes
310
+ ✓ Page limit: 9/10 pages
311
+ ✓ All figures referenced
312
+
313
+ ## Files Generated
314
+
315
+ - `.rc/sprint/review_1.json`: First review results
316
+ - `.rc/sprint/review_2.json`: Second review results
317
+ - `.rc/sprint/review_3.json`: Final review results
318
+ - `.rc/sprint/state.json`: Sprint state tracking
319
+ - `.rc/sprint/report.md`: This report
320
+
321
+ ## Next Steps
322
+
323
+ - [ ] Run sanity-check skill for final audit
324
+ - [ ] Generate submission package
325
+ - [ ] Upload to venue submission system
326
+ ```
327
+
328
+ ## Error Recovery
329
+
330
+ If sprint fails or gets stuck:
331
+
332
+ ```powershell
333
+ # Check sprint state
334
+ $stateFile = "C:\PythonProject\research_copilot\.rc\sprint\state.json"
335
+ if (Test-Path $stateFile) {
336
+ $state = Get-Content $stateFile | ConvertFrom-Json
337
+ Write-Host "Sprint stuck at iteration $($state.current_iteration)"
338
+ Write-Host "P0 gaps: $($state.p0_count)"
339
+ }
340
+
341
+ # Review latest gaps manually
342
+ $reviewFile = "C:\PythonProject\research_copilot\.rc\sprint\review_latest.json"
343
+ if (Test-Path $reviewFile) {
344
+ $review = Get-Content $reviewFile | ConvertFrom-Json
345
+ $p0Gaps = $review.gaps | Where-Object { $_.priority -eq "P0" }
346
+
347
+ Write-Host "`nRemaining P0 gaps:"
348
+ foreach ($gap in $p0Gaps) {
349
+ Write-Host "- $($gap.title) ($($gap.location))"
350
+ Write-Host " $($gap.description)"
351
+ }
352
+ }
353
+
354
+ # Reset sprint if needed
355
+ Write-Host "`nTo reset sprint: Remove-Item .rc/sprint/* -Force"
356
+ ```
357
+
358
+ ## Example Usage
359
+
360
+ ```
361
+ User: "Run submission sprint to close all gaps"
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@research-copilot/plugin",
3
+ "version": "1.1.15",
4
+ "description": "Research Copilot plugin for Claude Code - AI research automation skills and agents",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "keywords": [
12
+ "claude-code",
13
+ "plugin",
14
+ "research",
15
+ "ai",
16
+ "automation"
17
+ ],
18
+ "author": "ldm2060",
19
+ "license": "MIT",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/ldm2060/research_copilot.git",
23
+ "directory": "packages/plugin"
24
+ },
25
+ "devDependencies": {
26
+ "tsx": "^4.19.0"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "scripts": {
32
+ "build": "tsx build.ts",
33
+ "dev": "pnpm build && pnpm link"
34
+ }
35
+ }