@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.
Files changed (69) hide show
  1. package/README.md +1 -1
  2. package/docs/SKILL-TEMPLATE.md +15 -0
  3. package/docs/index.html +76 -7
  4. package/docs/script.js +33 -6
  5. package/docs/style.css +62 -0
  6. package/package.json +7 -5
  7. package/skills/adversary/SKILL.md +12 -0
  8. package/skills/audit/SKILL.md +63 -1
  9. package/skills/autopsy/SKILL.md +12 -0
  10. package/skills/ba/SKILL.md +9 -0
  11. package/skills/brainstorm/SKILL.md +11 -0
  12. package/skills/completion-gate/SKILL.md +15 -1
  13. package/skills/context-engine/SKILL.md +83 -1
  14. package/skills/context-pack/SKILL.md +160 -0
  15. package/skills/cook/SKILL.md +657 -958
  16. package/skills/cook/references/deviation-rules.md +19 -0
  17. package/skills/cook/references/error-recovery.md +37 -0
  18. package/skills/cook/references/exit-conditions.md +31 -0
  19. package/skills/cook/references/loop-detection.md +39 -0
  20. package/skills/cook/references/mid-run-signals.md +31 -0
  21. package/skills/cook/references/output-format.md +40 -0
  22. package/skills/cook/references/pack-detection.md +82 -0
  23. package/skills/cook/references/pause-resume-template.md +38 -0
  24. package/skills/cook/references/rfc-template.md +52 -0
  25. package/skills/cook/references/sharp-edges.md +24 -0
  26. package/skills/cook/references/subagent-status.md +38 -0
  27. package/skills/db/SKILL.md +12 -0
  28. package/skills/debug/SKILL.md +34 -2
  29. package/skills/deploy/SKILL.md +10 -0
  30. package/skills/design/SKILL.md +9 -0
  31. package/skills/docs/SKILL.md +12 -0
  32. package/skills/docs-seeker/SKILL.md +11 -0
  33. package/skills/fix/SKILL.md +36 -3
  34. package/skills/incident/SKILL.md +10 -0
  35. package/skills/launch/SKILL.md +12 -0
  36. package/skills/logic-guardian/SKILL.md +11 -0
  37. package/skills/marketing/SKILL.md +13 -0
  38. package/skills/mcp-builder/SKILL.md +13 -0
  39. package/skills/onboard/SKILL.md +54 -2
  40. package/skills/perf/SKILL.md +11 -0
  41. package/skills/plan/SKILL.md +342 -688
  42. package/skills/plan/references/completeness-scoring.md +37 -0
  43. package/skills/plan/references/outcome-block.md +41 -0
  44. package/skills/plan/references/plan-templates.md +193 -0
  45. package/skills/plan/references/wave-planning.md +44 -0
  46. package/skills/plan/references/workflow-registry.md +53 -0
  47. package/skills/preflight/SKILL.md +86 -1
  48. package/skills/rescue/SKILL.md +10 -0
  49. package/skills/retro/SKILL.md +11 -0
  50. package/skills/review/SKILL.md +100 -1
  51. package/skills/review-intake/SKILL.md +11 -0
  52. package/skills/safeguard/SKILL.md +12 -0
  53. package/skills/scaffold/SKILL.md +10 -0
  54. package/skills/scope-guard/SKILL.md +11 -0
  55. package/skills/scout/SKILL.md +9 -0
  56. package/skills/sentinel/SKILL.md +307 -425
  57. package/skills/sentinel/references/config-protection.md +52 -0
  58. package/skills/sentinel/references/destructive-commands.md +40 -0
  59. package/skills/sentinel/references/domain-hooks.md +73 -0
  60. package/skills/sentinel/references/framework-patterns.md +46 -0
  61. package/skills/sentinel/references/owasp-patterns.md +69 -0
  62. package/skills/sentinel/references/secret-patterns.md +40 -0
  63. package/skills/sentinel/references/skill-content-guard.md +55 -0
  64. package/skills/session-bridge/SKILL.md +60 -2
  65. package/skills/skill-forge/SKILL.md +47 -2
  66. package/skills/skill-router/SKILL.md +33 -1
  67. package/skills/surgeon/SKILL.md +12 -0
  68. package/skills/team/SKILL.md +35 -1
  69. package/skills/test/SKILL.md +167 -1
@@ -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.3.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.
@@ -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.
@@ -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.