@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.
- package/LICENSE +21 -0
- package/README.md +82 -0
- package/dist/.claude-plugin/plugin.json +11 -0
- package/dist/.codex-plugin/plugin.toml +9 -0
- package/dist/.cursor-plugin/plugin.json +9 -0
- package/dist/.gemini-plugin/plugin.json +11 -0
- package/dist/.opencode-plugin/plugin.json +11 -0
- package/dist/.windsurf-plugin/plugin.json +11 -0
- package/dist/README.md +57 -0
- package/dist/agents/rc-experiment.md +203 -0
- package/dist/agents/rc-ideation.md +224 -0
- package/dist/agents/rc-literature.md +228 -0
- package/dist/agents/rc-plan.md +189 -0
- package/dist/agents/rc-polisher.md +166 -0
- package/dist/agents/rc-rebuttal.md +194 -0
- package/dist/agents/rc-reviewer.md +187 -0
- package/dist/agents/rc-update-spec.md +231 -0
- package/dist/agents/rc-verify.md +234 -0
- package/dist/agents/rc-writer.md +161 -0
- package/dist/skills/experiment-design/SKILL.md +331 -0
- package/dist/skills/full-research-workflow/SKILL.md +363 -0
- package/dist/skills/literature-search/SKILL.md +244 -0
- package/dist/skills/paper-polish/SKILL.md +320 -0
- package/dist/skills/sanity-check/SKILL.md +449 -0
- package/dist/skills/submission-sprint/SKILL.md +361 -0
- package/package.json +35 -0
|
@@ -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"
|