@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,449 @@
1
+ ---
2
+ name: sanity-check
3
+ description: Final 6-dimension sanity check (logic/citation/reproducibility/novelty/venue/de-AI). Use before submission for comprehensive audit.
4
+ triggers:
5
+ - "sanity check"
6
+ - "final check"
7
+ - "audit paper"
8
+ - "pre-submission audit"
9
+ - "verify paper ready"
10
+ ---
11
+
12
+ # Sanity Check
13
+
14
+ Final 6-dimension audit without making changes. Verifies paper is submission-ready across all critical dimensions.
15
+
16
+ ## When to Use
17
+
18
+ Use this skill when:
19
+ - User asks to "sanity check the paper"
20
+ - Paper is ready for final audit before submission
21
+ - After submission sprint completes
22
+ - User wants to "verify paper is ready"
23
+
24
+ Do NOT use when:
25
+ - Paper needs changes (use submission-sprint or review skills)
26
+ - User wants specific issue fixed (handle directly)
27
+ - Paper is still being drafted (too early)
28
+
29
+ ## Task-First Protocol
30
+
31
+ Before starting, check if sanity-check task exists:
32
+
33
+ ```powershell
34
+ # Check for existing sanity-check task
35
+ $taskFile = "C:\PythonProject\research_copilot\.rc\tasks\sanity-check.json"
36
+ if (Test-Path $taskFile) {
37
+ $task = Get-Content $taskFile | ConvertFrom-Json
38
+ Write-Host "Found existing sanity-check task for: $($task.paper_file)"
39
+ } else {
40
+ Write-Host "No existing task. Will create one."
41
+ }
42
+ ```
43
+
44
+ Create task if needed:
45
+
46
+ ```powershell
47
+ # Create sanity-check task
48
+ $paperFile = "paper_polished.tex" # Or user-specified file
49
+ rc task create --type sanity-check --paper $paperFile --output .rc/tasks/sanity-check.json
50
+ ```
51
+
52
+ ## Auto-Context Loading
53
+
54
+ Read all context files before audit:
55
+
56
+ ```powershell
57
+ # Load task context
58
+ $taskFile = "C:\PythonProject\research_copilot\.rc\tasks\sanity-check.json"
59
+ if (Test-Path $taskFile) {
60
+ $task = Get-Content $taskFile | ConvertFrom-Json
61
+ Write-Host "Paper file: $($task.paper_file)"
62
+
63
+ # Load PRD for research requirements
64
+ $prdFile = "C:\PythonProject\research_copilot\.rc\prd.md"
65
+ if (Test-Path $prdFile) {
66
+ $prd = Get-Content $prdFile -Raw
67
+ Write-Host "PRD loaded"
68
+ }
69
+
70
+ # Load venue specification
71
+ $venueFile = "C:\PythonProject\research_copilot\.rc\venue\spec.json"
72
+ if (Test-Path $venueFile) {
73
+ $venue = Get-Content $venueFile | ConvertFrom-Json
74
+ Write-Host "Venue: $($venue.name)"
75
+ }
76
+
77
+ # Load novelty spec
78
+ $noveltyFile = "C:\PythonProject\research_copilot\.rc\spec\novelty.md"
79
+ if (Test-Path $noveltyFile) {
80
+ Write-Host "Novelty spec loaded"
81
+ }
82
+
83
+ # Load writing conventions
84
+ $conventionsFile = "C:\PythonProject\research_copilot\.rc\writing\conventions.md"
85
+ if (Test-Path $conventionsFile) {
86
+ Write-Host "Writing conventions loaded"
87
+ }
88
+ }
89
+ ```
90
+
91
+ ## Orchestration Logic
92
+
93
+ Execute 6-dimension audit via @rc-reviewer agent:
94
+
95
+ ```powershell
96
+ # Start task
97
+ rc task start sanity-check
98
+
99
+ Write-Host "Starting 6-dimension sanity check..."
100
+
101
+ # Dispatch to reviewer agent with comprehensive 6-dimension prompt
102
+ Write-Host "Dispatching to @rc-reviewer agent..."
103
+
104
+ # Agent audits 6 dimensions (no changes made):
105
+ # 1. Logic: Claims → Evidence chain complete
106
+ # 2. Citations: All baselines cited, no orphan references
107
+ # 3. Reproducibility: Config/seed/data documented
108
+ # 4. Novelty: Claims match spec/novelty/
109
+ # 5. Venue compliance: Format/length/template correct
110
+ # 6. De-AI: No AI patterns remain
111
+
112
+ # Wait for completion
113
+ $status = rc task status sanity-check
114
+ Write-Host "Task status: $status"
115
+ ```
116
+
117
+ ## 6 Dimensions
118
+
119
+ ### Dimension 1: Logic Integrity
120
+
121
+ Check claims → evidence chain:
122
+
123
+ ```powershell
124
+ # Verify logic dimension
125
+ $logicFile = "C:\PythonProject\research_copilot\.rc\sanity\logic.json"
126
+ if (Test-Path $logicFile) {
127
+ $logic = Get-Content $logicFile | ConvertFrom-Json
128
+
129
+ Write-Host "`nDimension 1: Logic"
130
+ Write-Host "Claims checked: $($logic.claims_checked)"
131
+ Write-Host "Evidence gaps: $($logic.evidence_gaps.Count)"
132
+
133
+ if ($logic.evidence_gaps.Count -eq 0) {
134
+ Write-Host "✓ All claims have supporting evidence"
135
+ } else {
136
+ Write-Host "✗ Evidence gaps found:"
137
+ foreach ($gap in $logic.evidence_gaps) {
138
+ Write-Host " - $($gap.claim) ($($gap.location))"
139
+ }
140
+ }
141
+ }
142
+ ```
143
+
144
+ ### Dimension 2: Citation Completeness
145
+
146
+ Check all baselines cited and no orphan references:
147
+
148
+ ```powershell
149
+ # Verify citations dimension
150
+ $citationsFile = "C:\PythonProject\research_copilot\.rc\sanity\citations.json"
151
+ if (Test-Path $citationsFile) {
152
+ $citations = Get-Content $citationsFile | ConvertFrom-Json
153
+
154
+ Write-Host "`nDimension 2: Citations"
155
+ Write-Host "Total citations: $($citations.total_citations)"
156
+ Write-Host "Orphan references: $($citations.orphan_refs.Count)"
157
+ Write-Host "Missing baseline citations: $($citations.missing_baselines.Count)"
158
+
159
+ if ($citations.orphan_refs.Count -eq 0 -and $citations.missing_baselines.Count -eq 0) {
160
+ Write-Host "✓ All citations complete and referenced"
161
+ } else {
162
+ if ($citations.orphan_refs.Count -gt 0) {
163
+ Write-Host "✗ Orphan references (in .bib but not cited):"
164
+ foreach ($ref in $citations.orphan_refs) {
165
+ Write-Host " - $ref"
166
+ }
167
+ }
168
+ if ($citations.missing_baselines.Count -gt 0) {
169
+ Write-Host "✗ Missing baseline citations:"
170
+ foreach ($baseline in $citations.missing_baselines) {
171
+ Write-Host " - $baseline"
172
+ }
173
+ }
174
+ }
175
+ }
176
+ ```
177
+
178
+ ### Dimension 3: Reproducibility
179
+
180
+ Check config/seed/data documented:
181
+
182
+ ```powershell
183
+ # Verify reproducibility dimension
184
+ $reproducibilityFile = "C:\PythonProject\research_copilot\.rc\sanity\reproducibility.json"
185
+ if (Test-Path $reproducibilityFile) {
186
+ $repro = Get-Content $reproducibilityFile | ConvertFrom-Json
187
+
188
+ Write-Host "`nDimension 3: Reproducibility"
189
+ Write-Host "Config documented: $($repro.config_documented)"
190
+ Write-Host "Seeds documented: $($repro.seeds_documented)"
191
+ Write-Host "Data documented: $($repro.data_documented)"
192
+ Write-Host "Code available: $($repro.code_available)"
193
+
194
+ if ($repro.config_documented -and $repro.seeds_documented -and $repro.data_documented) {
195
+ Write-Host "✓ Reproducibility requirements met"
196
+ } else {
197
+ Write-Host "✗ Missing reproducibility elements:"
198
+ if (-not $repro.config_documented) { Write-Host " - Configuration details" }
199
+ if (-not $repro.seeds_documented) { Write-Host " - Random seeds" }
200
+ if (-not $repro.data_documented) { Write-Host " - Dataset details" }
201
+ }
202
+ }
203
+ ```
204
+
205
+ ### Dimension 4: Novelty Alignment
206
+
207
+ Check claims match spec/novelty/:
208
+
209
+ ```powershell
210
+ # Verify novelty dimension
211
+ $noveltyFile = "C:\PythonProject\research_copilot\.rc\sanity\novelty.json"
212
+ if (Test-Path $noveltyFile) {
213
+ $novelty = Get-Content $noveltyFile | ConvertFrom-Json
214
+
215
+ Write-Host "`nDimension 4: Novelty"
216
+ Write-Host "Novelty claims: $($novelty.claims.Count)"
217
+ Write-Host "Aligned with spec: $($novelty.aligned_with_spec)"
218
+ Write-Host "Misalignments: $($novelty.misalignments.Count)"
219
+
220
+ if ($novelty.aligned_with_spec) {
221
+ Write-Host "✓ Novelty claims match specification"
222
+ } else {
223
+ Write-Host "✗ Novelty misalignments:"
224
+ foreach ($misalignment in $novelty.misalignments) {
225
+ Write-Host " - $($misalignment.claim)"
226
+ Write-Host " Expected: $($misalignment.expected)"
227
+ Write-Host " Found: $($misalignment.found)"
228
+ }
229
+ }
230
+ }
231
+ ```
232
+
233
+ ### Dimension 5: Venue Compliance
234
+
235
+ Check format/length/template correct:
236
+
237
+ ```powershell
238
+ # Verify venue compliance dimension
239
+ $venueFile = "C:\PythonProject\research_copilot\.rc\sanity\venue.json"
240
+ if (Test-Path $venueFile) {
241
+ $venueCheck = Get-Content $venueFile | ConvertFrom-Json
242
+
243
+ Write-Host "`nDimension 5: Venue Compliance"
244
+ Write-Host "Template correct: $($venueCheck.template_correct)"
245
+ Write-Host "Page count: $($venueCheck.page_count)/$($venueCheck.page_limit)"
246
+ Write-Host "Format issues: $($venueCheck.format_issues.Count)"
247
+
248
+ if ($venueCheck.template_correct -and $venueCheck.page_count -le $venueCheck.page_limit -and $venueCheck.format_issues.Count -eq 0) {
249
+ Write-Host "✓ Venue requirements met"
250
+ } else {
251
+ Write-Host "✗ Venue compliance issues:"
252
+ if (-not $venueCheck.template_correct) { Write-Host " - Incorrect template" }
253
+ if ($venueCheck.page_count -gt $venueCheck.page_limit) { Write-Host " - Exceeds page limit" }
254
+ foreach ($issue in $venueCheck.format_issues) {
255
+ Write-Host " - $issue"
256
+ }
257
+ }
258
+ }
259
+ ```
260
+
261
+ ### Dimension 6: De-AI Verification
262
+
263
+ Check no AI patterns remain:
264
+
265
+ ```powershell
266
+ # Verify de-AI dimension
267
+ $deAiFile = "C:\PythonProject\research_copilot\.rc\sanity\de-ai.json"
268
+ if (Test-Path $deAiFile) {
269
+ $deAi = Get-Content $deAiFile | ConvertFrom-Json
270
+
271
+ Write-Host "`nDimension 6: De-AI"
272
+ Write-Host "AI patterns found: $($deAi.patterns_found.Count)"
273
+ Write-Host "Mechanical transitions: $($deAi.mechanical_transitions)"
274
+ Write-Host "Excessive adjectives: $($deAi.excessive_adjectives)"
275
+
276
+ if ($deAi.patterns_found.Count -eq 0) {
277
+ Write-Host "✓ No AI patterns detected"
278
+ } else {
279
+ Write-Host "✗ AI patterns found:"
280
+ foreach ($pattern in $deAi.patterns_found) {
281
+ Write-Host " - $($pattern.type): '$($pattern.text)' ($($pattern.location))"
282
+ }
283
+ }
284
+ }
285
+ ```
286
+
287
+ ## Quality Gates
288
+
289
+ All 6 dimensions must pass:
290
+
291
+ ```powershell
292
+ # Quality gate checks
293
+ $passed = $true
294
+ $dimensions = @()
295
+
296
+ # Check each dimension
297
+ $dimensionFiles = @{
298
+ "Logic" = "C:\PythonProject\research_copilot\.rc\sanity\logic.json"
299
+ "Citations" = "C:\PythonProject\research_copilot\.rc\sanity\citations.json"
300
+ "Reproducibility" = "C:\PythonProject\research_copilot\.rc\sanity\reproducibility.json"
301
+ "Novelty" = "C:\PythonProject\research_copilot\.rc\sanity\novelty.json"
302
+ "Venue" = "C:\PythonProject\research_copilot\.rc\sanity\venue.json"
303
+ "De-AI" = "C:\PythonProject\research_copilot\.rc\sanity\de-ai.json"
304
+ }
305
+
306
+ foreach ($dimension in $dimensionFiles.Keys) {
307
+ $file = $dimensionFiles[$dimension]
308
+
309
+ if (-not (Test-Path $file)) {
310
+ Write-Host "FAIL: $dimension check not completed"
311
+ $passed = $false
312
+ $dimensions += @{ name = $dimension; status = "INCOMPLETE" }
313
+ continue
314
+ }
315
+
316
+ $data = Get-Content $file | ConvertFrom-Json
317
+
318
+ # Dimension-specific pass criteria
319
+ $dimPassed = $false
320
+ switch ($dimension) {
321
+ "Logic" { $dimPassed = $data.evidence_gaps.Count -eq 0 }
322
+ "Citations" { $dimPassed = $data.orphan_refs.Count -eq 0 -and $data.missing_baselines.Count -eq 0 }
323
+ "Reproducibility" { $dimPassed = $data.config_documented -and $data.seeds_documented -and $data.data_documented }
324
+ "Novelty" { $dimPassed = $data.aligned_with_spec }
325
+ "Venue" { $dimPassed = $data.template_correct -and $data.page_count -le $data.page_limit -and $data.format_issues.Count -eq 0 }
326
+ "De-AI" { $dimPassed = $data.patterns_found.Count -eq 0 }
327
+ }
328
+
329
+ if ($dimPassed) {
330
+ $dimensions += @{ name = $dimension; status = "PASS" }
331
+ } else {
332
+ $dimensions += @{ name = $dimension; status = "FAIL" }
333
+ $passed = $false
334
+ }
335
+ }
336
+
337
+ # Overall status
338
+ Write-Host "`n=== SANITY CHECK RESULTS ==="
339
+ foreach ($dim in $dimensions) {
340
+ $icon = if ($dim.status -eq "PASS") { "✓" } else { "✗" }
341
+ Write-Host "$icon $($dim.name): $($dim.status)"
342
+ }
343
+
344
+ if ($passed) {
345
+ Write-Host "`n✓ PAPER READY FOR SUBMISSION"
346
+ rc task complete sanity-check
347
+ } else {
348
+ Write-Host "`n✗ PAPER NOT READY - Issues must be resolved"
349
+ Write-Host "Run submission-sprint to fix remaining issues"
350
+ }
351
+ ```
352
+
353
+ ## Report Format
354
+
355
+ Generate final report:
356
+
357
+ ```markdown
358
+ # Sanity Check Report
359
+
360
+ **Paper**: {paper_file}
361
+ **Date**: {date}
362
+ **Status**: {READY / NOT_READY}
363
+
364
+ ## 6-Dimension Audit
365
+
366
+ ### ✓ 1. Logic Integrity
367
+ - Claims checked: {count}
368
+ - Evidence gaps: 0
369
+ - **Status**: PASS
370
+
371
+ ### ✓ 2. Citation Completeness
372
+ - Total citations: {count}
373
+ - Orphan references: 0
374
+ - Missing baselines: 0
375
+ - **Status**: PASS
376
+
377
+ ### ✓ 3. Reproducibility
378
+ - Configuration documented: Yes
379
+ - Seeds documented: Yes
380
+ - Data documented: Yes
381
+ - Code availability: Yes
382
+ - **Status**: PASS
383
+
384
+ ### ✓ 4. Novelty Alignment
385
+ - Novelty claims: {count}
386
+ - Aligned with spec: Yes
387
+ - Misalignments: 0
388
+ - **Status**: PASS
389
+
390
+ ### ✓ 5. Venue Compliance
391
+ - Template: Correct
392
+ - Page count: {count}/{limit}
393
+ - Format issues: 0
394
+ - **Status**: PASS
395
+
396
+ ### ✓ 6. De-AI Verification
397
+ - AI patterns: 0
398
+ - Mechanical transitions: 0
399
+ - Excessive adjectives: 0
400
+ - **Status**: PASS
401
+
402
+ ## Overall Assessment
403
+
404
+ ✓ **READY FOR SUBMISSION**
405
+
406
+ All 6 dimensions passed. Paper meets submission requirements.
407
+
408
+ ## Files Audited
409
+
410
+ - `paper_polished.tex`: Main paper file
411
+ - `references.bib`: Bibliography
412
+ - `figures/`: All figures
413
+ - `.rc/prd.md`: Research requirements
414
+ - `.rc/spec/novelty.md`: Novelty specification
415
+ - `.rc/venue/spec.json`: Venue requirements
416
+
417
+ ## Next Steps
418
+
419
+ - [ ] Generate submission package
420
+ - [ ] Upload to venue submission system
421
+ - [ ] Prepare supplementary materials (if required)
422
+ ```
423
+
424
+ ## Error Recovery
425
+
426
+ If any dimension fails:
427
+
428
+ ```powershell
429
+ # Show failed dimensions
430
+ Write-Host "Failed dimensions:"
431
+ foreach ($dim in $dimensions) {
432
+ if ($dim.status -eq "FAIL") {
433
+ Write-Host "- $($dim.name)"
434
+
435
+ # Show details
436
+ $file = $dimensionFiles[$dim.name]
437
+ $data = Get-Content $file | ConvertFrom-Json
438
+
439
+ # Print specific issues (dimension-dependent)
440
+ }
441
+ }
442
+
443
+ Write-Host "`nRecommendation: Run submission-sprint to fix issues"
444
+ ```
445
+
446
+ ## Example Usage
447
+
448
+ ```
449
+ User: "Sanity check the paper before submission"