@rune-kit/rune 2.2.6 → 2.3.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 +1 -1
- package/docs/SKILL-TEMPLATE.md +15 -0
- package/docs/index.html +76 -7
- package/docs/script.js +33 -6
- package/docs/style.css +62 -0
- package/package.json +7 -5
- package/skills/adversary/SKILL.md +12 -0
- package/skills/audit/SKILL.md +63 -1
- package/skills/autopsy/SKILL.md +12 -0
- package/skills/ba/SKILL.md +9 -0
- package/skills/brainstorm/SKILL.md +11 -0
- package/skills/completion-gate/SKILL.md +15 -1
- package/skills/context-engine/SKILL.md +83 -1
- package/skills/context-pack/SKILL.md +160 -0
- package/skills/cook/SKILL.md +657 -958
- package/skills/cook/references/deviation-rules.md +19 -0
- package/skills/cook/references/error-recovery.md +37 -0
- package/skills/cook/references/exit-conditions.md +31 -0
- package/skills/cook/references/loop-detection.md +39 -0
- package/skills/cook/references/mid-run-signals.md +31 -0
- package/skills/cook/references/output-format.md +40 -0
- package/skills/cook/references/pack-detection.md +82 -0
- package/skills/cook/references/pause-resume-template.md +38 -0
- package/skills/cook/references/rfc-template.md +52 -0
- package/skills/cook/references/sharp-edges.md +24 -0
- package/skills/cook/references/subagent-status.md +38 -0
- package/skills/db/SKILL.md +12 -0
- package/skills/debug/SKILL.md +34 -2
- package/skills/deploy/SKILL.md +10 -0
- package/skills/design/SKILL.md +9 -0
- package/skills/docs/SKILL.md +12 -0
- package/skills/docs-seeker/SKILL.md +11 -0
- package/skills/fix/SKILL.md +36 -3
- package/skills/incident/SKILL.md +10 -0
- package/skills/launch/SKILL.md +12 -0
- package/skills/logic-guardian/SKILL.md +11 -0
- package/skills/marketing/SKILL.md +13 -0
- package/skills/mcp-builder/SKILL.md +13 -0
- package/skills/onboard/SKILL.md +54 -2
- package/skills/perf/SKILL.md +11 -0
- package/skills/plan/SKILL.md +342 -688
- package/skills/plan/references/completeness-scoring.md +37 -0
- package/skills/plan/references/outcome-block.md +41 -0
- package/skills/plan/references/plan-templates.md +193 -0
- package/skills/plan/references/wave-planning.md +44 -0
- package/skills/plan/references/workflow-registry.md +53 -0
- package/skills/preflight/SKILL.md +86 -1
- package/skills/rescue/SKILL.md +10 -0
- package/skills/retro/SKILL.md +11 -0
- package/skills/review/SKILL.md +100 -1
- package/skills/review-intake/SKILL.md +11 -0
- package/skills/safeguard/SKILL.md +12 -0
- package/skills/scaffold/SKILL.md +10 -0
- package/skills/scope-guard/SKILL.md +11 -0
- package/skills/scout/SKILL.md +9 -0
- package/skills/sentinel/SKILL.md +307 -425
- package/skills/sentinel/references/config-protection.md +52 -0
- package/skills/sentinel/references/destructive-commands.md +40 -0
- package/skills/sentinel/references/domain-hooks.md +73 -0
- package/skills/sentinel/references/framework-patterns.md +46 -0
- package/skills/sentinel/references/owasp-patterns.md +69 -0
- package/skills/sentinel/references/secret-patterns.md +40 -0
- package/skills/sentinel/references/skill-content-guard.md +55 -0
- package/skills/session-bridge/SKILL.md +60 -2
- package/skills/skill-forge/SKILL.md +47 -2
- package/skills/skill-router/SKILL.md +33 -1
- package/skills/surgeon/SKILL.md +12 -0
- package/skills/team/SKILL.md +35 -1
- package/skills/test/SKILL.md +167 -1
package/skills/review/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: review
|
|
|
3
3
|
description: Code quality review — patterns, security, performance, correctness. Finds bugs, suggests improvements, triggers fix for issues found. Escalates to opus for security-critical code.
|
|
4
4
|
metadata:
|
|
5
5
|
author: runedev
|
|
6
|
-
version: "0.
|
|
6
|
+
version: "0.5.0"
|
|
7
7
|
layer: L2
|
|
8
8
|
model: sonnet
|
|
9
9
|
group: development
|
|
@@ -70,6 +70,28 @@ Determine what to review.
|
|
|
70
70
|
- If context is unclear: use `rune:scout` to identify all files touched by the change
|
|
71
71
|
- List every file in scope before proceeding — do not review files outside the stated scope
|
|
72
72
|
|
|
73
|
+
### Step 1.5: Blast Radius Assessment
|
|
74
|
+
|
|
75
|
+
For each modified function/class, estimate its blast radius before reviewing.
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Use Grep to count direct callers/importers of each modified symbol:
|
|
79
|
+
blast_radius = count(files importing or calling this symbol)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
| Blast Radius | Risk | Review Depth |
|
|
83
|
+
|-------------|------|-------------|
|
|
84
|
+
| 1-5 callers | Low | Standard review |
|
|
85
|
+
| 6-20 callers | Medium | Check all callers for compatibility |
|
|
86
|
+
| 21-50 callers | High | Thorough review + regression test check |
|
|
87
|
+
| 50+ callers | Critical | MUST escalate to adversarial analysis (rune:adversary) even in quick triage |
|
|
88
|
+
|
|
89
|
+
<HARD-GATE>
|
|
90
|
+
Modifying a symbol with 50+ callers + HIGH severity change (logic, types, behavior) → adversarial analysis REQUIRED. Quick review is NOT sufficient for high-blast-radius changes.
|
|
91
|
+
</HARD-GATE>
|
|
92
|
+
|
|
93
|
+
> Source: trailofbits/skills (3.7k★) — quantitative blast radius as escalation threshold.
|
|
94
|
+
|
|
73
95
|
### Step 2: Logic Check (Production-Critical Focus)
|
|
74
96
|
|
|
75
97
|
Read each changed file. Prioritize bugs that **pass CI but break production** — these are the highest-value findings because linters and type checkers already catch the rest.
|
|
@@ -156,6 +178,24 @@ Check for security-relevant issues.
|
|
|
156
178
|
- If any security-sensitive code found (auth logic, input handling, crypto, payment): call `rune:sentinel` for deep scan
|
|
157
179
|
- Sentinel escalation is mandatory — do not skip it for auth or crypto code
|
|
158
180
|
|
|
181
|
+
### Step 4.5: API Pit-of-Success Check
|
|
182
|
+
|
|
183
|
+
For code that exposes APIs, shared utilities, or reusable interfaces, evaluate through 3 adversary personas:
|
|
184
|
+
|
|
185
|
+
| Adversary | Mindset | What They Reveal |
|
|
186
|
+
|-----------|---------|-----------------|
|
|
187
|
+
| **The Scoundrel** | Malicious — controls config, crafts inputs, exploits edge cases | Security holes, privilege escalation, injection surfaces |
|
|
188
|
+
| **The Lazy Developer** | Copy-pastes from docs, skips error handling, uses defaults | Unsafe defaults, missing validation, footgun APIs |
|
|
189
|
+
| **The Confused Developer** | Misunderstands API semantics, passes wrong types, ignores return values | Ambiguous interfaces, poor naming, missing type safety |
|
|
190
|
+
|
|
191
|
+
**Pit-of-Success principle**: Secure, correct usage should be the path of least resistance. If the API makes it EASIER to use it wrong than right → WARN.
|
|
192
|
+
|
|
193
|
+
Check: Does the API have sensible defaults? Does misuse fail loudly (not silently)? Is the happy path obvious from the signature?
|
|
194
|
+
|
|
195
|
+
**Skip if**: Code is internal-only (no external consumers), single-use utility, or test-only.
|
|
196
|
+
|
|
197
|
+
> Source: trailofbits/skills (3.7k★) — 3 adversary types for API review.
|
|
198
|
+
|
|
159
199
|
### Step 5: Test Coverage
|
|
160
200
|
|
|
161
201
|
Identify gaps in test coverage.
|
|
@@ -324,6 +364,36 @@ className="focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500"
|
|
|
324
364
|
- iOS target: solid-background cards (iOS 26 Liquid Glass deprecates this visual language) — should use translucent/blur surfaces
|
|
325
365
|
- Android target: hardcoded hex colors instead of `MaterialTheme.colorScheme` tokens → not adaptive to dynamic color
|
|
326
366
|
|
|
367
|
+
## Weighted Composite Scoring
|
|
368
|
+
|
|
369
|
+
When a review is part of a recurring quality-gate cycle (e.g., sprint review, pre-release gate), produce a **composite quality score** alongside the findings list. This makes review output numeric and comparable across runs.
|
|
370
|
+
|
|
371
|
+
### Formula
|
|
372
|
+
|
|
373
|
+
```
|
|
374
|
+
Quality Score = (Correctness × 0.35) + (Security × 0.30) + (Test Coverage × 0.20) + (Conventions × 0.15)
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Each dimension is scored 0–100 based on findings count and severity:
|
|
378
|
+
- 0 CRITICAL/HIGH findings → 100 for that dimension
|
|
379
|
+
- 1 CRITICAL → dimension capped at 40
|
|
380
|
+
- 1 HIGH → dimension capped at 70
|
|
381
|
+
- Each additional MEDIUM → subtract 5 (floor: 50)
|
|
382
|
+
|
|
383
|
+
### Grade Thresholds
|
|
384
|
+
|
|
385
|
+
| Score | Grade | Verdict |
|
|
386
|
+
|-------|-------|---------|
|
|
387
|
+
| 90–100 | Excellent | APPROVE |
|
|
388
|
+
| 75–89 | Good | APPROVE with notes |
|
|
389
|
+
| 60–74 | Fair | REQUEST CHANGES (MEDIUM issues) |
|
|
390
|
+
| 40–59 | Poor | REQUEST CHANGES (HIGH issues present) |
|
|
391
|
+
| 0–39 | Critical | REQUEST CHANGES (CRITICAL present) |
|
|
392
|
+
|
|
393
|
+
**When to include**: Only when `mode: "scored"` is passed by the caller, or when invoked by `audit`. Default review output uses the standard severity-ranked report without the score.
|
|
394
|
+
|
|
395
|
+
> Source: zubair-trabzada/geo-seo-claude (2.7k★) — weighted composite formula, 5-tier grade thresholds.
|
|
396
|
+
|
|
327
397
|
## Severity Levels
|
|
328
398
|
|
|
329
399
|
```
|
|
@@ -339,8 +409,12 @@ LOW — style inconsistency, naming suggestion, minor refactor opportunity
|
|
|
339
409
|
## Code Review Report
|
|
340
410
|
- **Files Reviewed**: [count]
|
|
341
411
|
- **Findings**: [count by severity]
|
|
412
|
+
- **Review Commit**: [git hash at time of review]
|
|
342
413
|
- **Overall**: APPROVE | REQUEST CHANGES | NEEDS DISCUSSION
|
|
343
414
|
|
|
415
|
+
### Spec Compliance
|
|
416
|
+
- [PASS/FAIL]: [acceptance criteria coverage]
|
|
417
|
+
|
|
344
418
|
### CRITICAL
|
|
345
419
|
- `path/to/file.ts:42` — [description of critical issue]
|
|
346
420
|
|
|
@@ -350,6 +424,9 @@ LOW — style inconsistency, naming suggestion, minor refactor opportunity
|
|
|
350
424
|
### MEDIUM
|
|
351
425
|
- `path/to/file.ts:120` — [description of medium issue]
|
|
352
426
|
|
|
427
|
+
### Blast Radius
|
|
428
|
+
- [High-impact symbols with caller counts]
|
|
429
|
+
|
|
353
430
|
### Positive Notes
|
|
354
431
|
- [good patterns observed]
|
|
355
432
|
|
|
@@ -357,6 +434,18 @@ LOW — style inconsistency, naming suggestion, minor refactor opportunity
|
|
|
357
434
|
[Summary and recommendation]
|
|
358
435
|
```
|
|
359
436
|
|
|
437
|
+
### Review Staleness Detection
|
|
438
|
+
|
|
439
|
+
Track the git commit hash at review time. If code changes after review → review is STALE.
|
|
440
|
+
|
|
441
|
+
```
|
|
442
|
+
Review commit: abc123 → Code changed to def456 → Review is STALE, re-review required
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
When `cook` or `ship` checks review status: compare review commit hash with current HEAD. If different → WARN: "Review is stale — code changed since last review."
|
|
446
|
+
|
|
447
|
+
> Source: garrytan/gstack v0.9.4 (50.9k★) — commit hash staleness tracking for reviews.
|
|
448
|
+
|
|
360
449
|
## Constraints
|
|
361
450
|
|
|
362
451
|
1. MUST read the full diff — not just the files the user pointed at
|
|
@@ -367,6 +456,16 @@ LOW — style inconsistency, naming suggestion, minor refactor opportunity
|
|
|
367
456
|
6. MUST escalate to sentinel if auth/crypto/secrets code is touched
|
|
368
457
|
7. MUST flag untested code paths and recommend tests via rune:test
|
|
369
458
|
|
|
459
|
+
## Returns
|
|
460
|
+
|
|
461
|
+
| Artifact | Format | Location |
|
|
462
|
+
|----------|--------|----------|
|
|
463
|
+
| Code review report | Markdown | inline (chat output) |
|
|
464
|
+
| Severity-ranked findings | Markdown table | inline |
|
|
465
|
+
| Spec compliance verdict | Markdown | inline |
|
|
466
|
+
| Composite quality score | Markdown table | inline (when `mode: "scored"`) |
|
|
467
|
+
| Blast radius assessment | Markdown table | inline |
|
|
468
|
+
|
|
370
469
|
## Sharp Edges
|
|
371
470
|
|
|
372
471
|
| Failure Mode | Severity | Mitigation |
|
|
@@ -233,6 +233,17 @@ How to push back:
|
|
|
233
233
|
- Tests pass after each individual fix
|
|
234
234
|
- Review Intake Report emitted
|
|
235
235
|
|
|
236
|
+
## Returns
|
|
237
|
+
|
|
238
|
+
| Artifact | Format | Location |
|
|
239
|
+
|----------|--------|----------|
|
|
240
|
+
| Review Intake Report | Markdown table | inline |
|
|
241
|
+
| Categorized feedback (P0–P4) | Classified list | inline |
|
|
242
|
+
| Verdict per item (CORRECT/PUSHBACK/YAGNI/DEFER) | Table | inline |
|
|
243
|
+
| Action plan (changes applied) | File list with descriptions | inline |
|
|
244
|
+
|
|
236
245
|
## Cost Profile
|
|
237
246
|
|
|
238
247
|
~2000-5000 tokens depending on feedback volume. Sonnet for evaluation logic, haiku for scout/grep verification.
|
|
248
|
+
|
|
249
|
+
**Scope guardrail:** review-intake processes the feedback items provided — it does not pull new reviews, open PRs, or change architectural decisions without owner confirmation.
|
|
@@ -183,6 +183,18 @@ Known failure modes for this skill. Check these before declaring done.
|
|
|
183
183
|
- Git tag `rune-safeguard-<module>` created
|
|
184
184
|
- Safeguard Report emitted with test count, coverage, and rollback tag
|
|
185
185
|
|
|
186
|
+
## Returns
|
|
187
|
+
|
|
188
|
+
| Artifact | Format | Location |
|
|
189
|
+
|----------|--------|----------|
|
|
190
|
+
| Characterization test file | TypeScript/JS/Python test | `tests/char/<module>.test.*` |
|
|
191
|
+
| Boundary markers | Code comments (@legacy, @bridge) | in-source |
|
|
192
|
+
| Frozen config snapshot | Copies of config files | `.rune/*.frozen.*` |
|
|
193
|
+
| Git rollback tag | Git tag | `rune-safeguard-<module>` |
|
|
194
|
+
| Safeguard Report | Markdown | inline |
|
|
195
|
+
|
|
186
196
|
## Cost Profile
|
|
187
197
|
|
|
188
198
|
~2000-5000 tokens input, ~1000-2000 tokens output. Sonnet for test writing quality.
|
|
199
|
+
|
|
200
|
+
**Scope guardrail:** safeguard builds safety nets only — it does not refactor code. All surgery is delegated to `surgeon` after the safeguard HARD-GATE passes.
|
package/skills/scaffold/SKILL.md
CHANGED
|
@@ -247,6 +247,16 @@ Max 3 fix-verify loops. If still failing after 3 → report failures to user wit
|
|
|
247
247
|
9. MUST respect user's existing project if scaffolding into non-empty directory — warn and ask before overwriting
|
|
248
248
|
10. Generated files MUST be < 500 LOC each — split large files
|
|
249
249
|
|
|
250
|
+
## Returns
|
|
251
|
+
|
|
252
|
+
| Artifact | Format | Location |
|
|
253
|
+
|----------|--------|----------|
|
|
254
|
+
| Project directory structure | Directories + files | Project root (per plan) |
|
|
255
|
+
| Source code | Source files | Per plan file list |
|
|
256
|
+
| Test suite | Source files | Co-located or `tests/` per framework convention |
|
|
257
|
+
| Documentation | Markdown | `README.md`, `ARCHITECTURE.md`, `docs/API.md` as applicable |
|
|
258
|
+
| Scaffold Report | Markdown (inline) | Emitted at session end |
|
|
259
|
+
|
|
250
260
|
## Sharp Edges
|
|
251
261
|
|
|
252
262
|
| Failure Mode | Severity | Mitigation |
|
|
@@ -145,6 +145,17 @@ Known failure modes for this skill. Check these before declaring done.
|
|
|
145
145
|
- Creep severity classified (IN_SCOPE / MINOR CREEP / SIGNIFICANT CREEP)
|
|
146
146
|
- Scope Report emitted with recommendations
|
|
147
147
|
|
|
148
|
+
## Returns
|
|
149
|
+
|
|
150
|
+
| Artifact | Format | Location |
|
|
151
|
+
|----------|--------|----------|
|
|
152
|
+
| Scope Report | Markdown (IN_SCOPE / MINOR CREEP / SIGNIFICANT CREEP) | inline |
|
|
153
|
+
| In-scope file list | Classified list | inline |
|
|
154
|
+
| Out-of-scope drift report | File list with reasons | inline |
|
|
155
|
+
| Recommendations | Actionable list | inline |
|
|
156
|
+
|
|
148
157
|
## Cost Profile
|
|
149
158
|
|
|
150
159
|
~200-500 tokens input, ~100-300 tokens output. Haiku. Lightweight monitor.
|
|
160
|
+
|
|
161
|
+
**Scope guardrail:** scope-guard reports drift and advises — it does not revert files, block commits, or modify code. Override decisions belong to the calling orchestrator or the user.
|
package/skills/scout/SKILL.md
CHANGED
|
@@ -206,6 +206,13 @@ None — pure scanner using Glob, Grep, Read, and Bash tools directly. Does not
|
|
|
206
206
|
- [pattern or potential issue noticed]
|
|
207
207
|
```
|
|
208
208
|
|
|
209
|
+
## Returns
|
|
210
|
+
|
|
211
|
+
| Artifact | Format | Location |
|
|
212
|
+
|----------|--------|----------|
|
|
213
|
+
| Scout Report | Markdown (inline) | Emitted to calling skill |
|
|
214
|
+
| Codebase map | Markdown | `.rune/codebase-map.md` (when called by cook, team, onboard, autopsy) |
|
|
215
|
+
|
|
209
216
|
## Sharp Edges
|
|
210
217
|
|
|
211
218
|
Known failure modes for this skill. Check these before declaring done.
|
|
@@ -230,3 +237,5 @@ Known failure modes for this skill. Check these before declaring done.
|
|
|
230
237
|
## Cost Profile
|
|
231
238
|
|
|
232
239
|
~500-2000 tokens input, ~200-500 tokens output. Always haiku. Cheapest skill in the mesh.
|
|
240
|
+
|
|
241
|
+
**Scope guardrail**: Do not expand the scan to unrelated modules or write files beyond `.rune/codebase-map.md` unless explicitly delegated by the parent agent.
|