@rune-kit/rune 2.2.6 → 2.3.1

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 (91) hide show
  1. package/README.md +395 -389
  2. package/compiler/__tests__/tier-override.test.js +158 -0
  3. package/compiler/adapters/antigravity.js +3 -8
  4. package/compiler/adapters/codex.js +3 -8
  5. package/compiler/adapters/cursor.js +3 -8
  6. package/compiler/adapters/generic.js +3 -8
  7. package/compiler/adapters/openclaw.js +4 -9
  8. package/compiler/adapters/opencode.js +3 -8
  9. package/compiler/adapters/windsurf.js +3 -8
  10. package/compiler/bin/rune.js +34 -1
  11. package/compiler/emitter.js +94 -5
  12. package/compiler/transforms/branding.js +10 -3
  13. package/docs/ARCHITECTURE.md +3 -3
  14. package/docs/SKILL-TEMPLATE.md +15 -0
  15. package/docs/VISION.md +3 -3
  16. package/docs/guides/index.html +14 -14
  17. package/docs/index.html +82 -13
  18. package/docs/script.js +33 -6
  19. package/docs/skills/index.html +832 -832
  20. package/docs/style.css +62 -0
  21. package/extensions/ai-ml/PACK.md +7 -0
  22. package/extensions/content/PACK.md +7 -0
  23. package/extensions/mobile/PACK.md +9 -9
  24. package/extensions/zalo/PACK.md +9 -0
  25. package/package.json +8 -6
  26. package/skills/adversary/SKILL.md +12 -0
  27. package/skills/audit/SKILL.md +526 -467
  28. package/skills/autopsy/SKILL.md +12 -0
  29. package/skills/ba/SKILL.md +349 -342
  30. package/skills/brainstorm/SKILL.md +11 -0
  31. package/skills/completion-gate/SKILL.md +260 -249
  32. package/skills/context-engine/SKILL.md +77 -1
  33. package/skills/context-pack/SKILL.md +160 -0
  34. package/skills/cook/SKILL.md +648 -958
  35. package/skills/cook/references/deviation-rules.md +19 -0
  36. package/skills/cook/references/error-recovery.md +37 -0
  37. package/skills/cook/references/exit-conditions.md +31 -0
  38. package/skills/cook/references/loop-detection.md +39 -0
  39. package/skills/cook/references/mid-run-signals.md +31 -0
  40. package/skills/cook/references/output-format.md +40 -0
  41. package/skills/cook/references/pack-detection.md +82 -0
  42. package/skills/cook/references/pause-resume-template.md +38 -0
  43. package/skills/cook/references/rfc-template.md +52 -0
  44. package/skills/cook/references/sharp-edges.md +24 -0
  45. package/skills/cook/references/subagent-status.md +38 -0
  46. package/skills/db/SKILL.md +12 -0
  47. package/skills/debug/SKILL.md +392 -362
  48. package/skills/deploy/SKILL.md +10 -0
  49. package/skills/deploy/references/post-deploy-integration.md +192 -0
  50. package/skills/design/SKILL.md +9 -0
  51. package/skills/docs/SKILL.md +12 -0
  52. package/skills/docs-seeker/SKILL.md +11 -0
  53. package/skills/fix/SKILL.md +281 -249
  54. package/skills/incident/SKILL.md +10 -0
  55. package/skills/launch/SKILL.md +12 -0
  56. package/skills/logic-guardian/SKILL.md +11 -0
  57. package/skills/marketing/SKILL.md +13 -0
  58. package/skills/mcp-builder/SKILL.md +13 -0
  59. package/skills/onboard/SKILL.md +50 -2
  60. package/skills/perf/SKILL.md +11 -0
  61. package/skills/plan/SKILL.md +342 -688
  62. package/skills/plan/references/completeness-scoring.md +36 -0
  63. package/skills/plan/references/outcome-block.md +40 -0
  64. package/skills/plan/references/plan-templates.md +193 -0
  65. package/skills/plan/references/wave-planning.md +44 -0
  66. package/skills/plan/references/workflow-registry.md +52 -0
  67. package/skills/preflight/SKILL.md +360 -280
  68. package/skills/rescue/SKILL.md +11 -0
  69. package/skills/research/SKILL.md +149 -150
  70. package/skills/retro/SKILL.md +11 -0
  71. package/skills/review/SKILL.md +489 -396
  72. package/skills/review-intake/SKILL.md +11 -0
  73. package/skills/safeguard/SKILL.md +12 -0
  74. package/skills/scaffold/SKILL.md +10 -0
  75. package/skills/scope-guard/SKILL.md +11 -0
  76. package/skills/scout/SKILL.md +9 -0
  77. package/skills/sentinel/SKILL.md +296 -425
  78. package/skills/sentinel/references/config-protection.md +52 -0
  79. package/skills/sentinel/references/destructive-commands.md +39 -0
  80. package/skills/sentinel/references/domain-hooks.md +73 -0
  81. package/skills/sentinel/references/framework-patterns.md +46 -0
  82. package/skills/sentinel/references/owasp-patterns.md +69 -0
  83. package/skills/sentinel/references/secret-patterns.md +40 -0
  84. package/skills/sentinel/references/skill-content-guard.md +54 -0
  85. package/skills/session-bridge/SKILL.md +56 -2
  86. package/skills/skill-forge/SKILL.md +47 -2
  87. package/skills/skill-router/{SKILL.md → skill.md} +446 -365
  88. package/skills/surgeon/SKILL.md +12 -0
  89. package/skills/team/SKILL.md +34 -1
  90. package/skills/test/SKILL.md +585 -427
  91. package/skills/watchdog/references/webhook-health-checks.md +243 -0
package/docs/style.css CHANGED
@@ -653,6 +653,68 @@ font[style] > font { vertical-align: unset !important; }
653
653
  }
654
654
  @keyframes spin { to { transform: rotate(360deg); } }
655
655
  .pay-hint { font-size: 12px; color: var(--text-muted); text-align: center; margin-top: 12px; line-height: 1.5; }
656
+ /* Success page */
657
+ .pay-success { text-align: center; }
658
+
659
+ .pay-success-badge {
660
+ width: 72px; height: 72px; border-radius: 50%;
661
+ background: var(--accent-dim); color: var(--accent);
662
+ display: flex; align-items: center; justify-content: center;
663
+ margin: 0 auto 20px;
664
+ animation: successPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
665
+ }
666
+
667
+ .pay-success-circle {
668
+ stroke-dasharray: 151; stroke-dashoffset: 151;
669
+ animation: successCircle 0.6s 0.2s ease-out forwards;
670
+ }
671
+ .pay-success-tick {
672
+ stroke-dasharray: 40; stroke-dashoffset: 40;
673
+ animation: successTick 0.4s 0.6s ease-out forwards;
674
+ }
675
+
676
+ @keyframes successPop { 0% { transform: scale(0); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
677
+ @keyframes successCircle { to { stroke-dashoffset: 0; } }
678
+ @keyframes successTick { to { stroke-dashoffset: 0; } }
679
+
680
+ .pay-success-title {
681
+ font-family: var(--font-display); font-size: 26px; font-weight: 700;
682
+ margin-bottom: 6px; color: var(--text-primary);
683
+ }
684
+ .pay-success-sub {
685
+ font-size: 14px; color: var(--text-secondary); margin-bottom: 24px;
686
+ }
687
+
688
+ .pay-success-steps {
689
+ text-align: left; display: flex; flex-direction: column; gap: 14px;
690
+ background: var(--accent-dim); border-radius: var(--radius-md);
691
+ padding: 20px; margin-bottom: 24px;
692
+ }
693
+ .pay-success-step {
694
+ display: flex; align-items: flex-start; gap: 12px;
695
+ }
696
+ .pay-success-num {
697
+ flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%;
698
+ background: var(--accent); color: #fff; font-size: 13px; font-weight: 700;
699
+ display: flex; align-items: center; justify-content: center;
700
+ margin-top: 1px;
701
+ }
702
+ .pay-success-step strong {
703
+ display: block; font-size: 14px; color: var(--text-primary); margin-bottom: 2px;
704
+ }
705
+ .pay-success-step span {
706
+ font-size: 13px; color: var(--text-secondary); line-height: 1.4;
707
+ }
708
+
709
+ .pay-success-done {
710
+ width: 100%; margin-bottom: 12px;
711
+ }
712
+ .pay-success-help {
713
+ font-size: 12px; color: var(--text-secondary); opacity: 0.7;
714
+ }
715
+ .pay-success-help a { color: var(--accent); }
716
+
717
+ /* Legacy (keep for backwards compat) */
656
718
  .pay-success-icon {
657
719
  width: 64px; height: 64px; border-radius: 50%; background: var(--accent);
658
720
  color: #fff; font-size: 32px; display: flex; align-items: center; justify-content: center;
@@ -76,6 +76,13 @@ deep-research → embedding-search: relevance scoring uses embeddings for semant
76
76
  - **Prompt injection**: Web pages may contain adversarial content targeting extraction LLMs — system prompt must block.
77
77
  - **Sandbox escape**: Use rootless Docker or gVisor for high-security code execution environments.
78
78
 
79
+ ## Done When
80
+
81
+ - LLM API client implemented with retry logic, exponential backoff, and structured output validation via Zod/Pydantic
82
+ - RAG pipeline operational: chunking, embedding, vector store, retrieval, and reranking all configured and tested
83
+ - Embedding index metadata includes pinned model version and dimension count to prevent upgrade mismatches
84
+ - AI agent state persists across requests with no cross-session leakage and graceful crash recovery
85
+
79
86
  ## Cost Profile
80
87
 
81
88
  ~24,000–40,000 tokens per full pack run (all 10 skills). Individual skill: ~2,500–5,000 tokens. Sonnet default. Use haiku for code detection scans; escalate to sonnet for pipeline design, extraction strategy, and research loop orchestration.
@@ -84,6 +84,13 @@ Called By ← marketing (L2): when creating blog content
84
84
  | Sitemap includes draft/unpublished pages | MEDIUM | Filter sitemap to `status === 'published'` only; add `noindex` to draft preview pages |
85
85
  | `hreflang` tags point to wrong locale | MEDIUM | Generate hreflang from route params, not hardcoded; test with hreflang validator |
86
86
 
87
+ ## Done When
88
+
89
+ - Blog architecture set up with pagination, RSS feed, and canonical URLs all resolving correctly
90
+ - CMS integration live with preview mode, publish webhooks triggering ISR revalidation and search index updates
91
+ - All translation keys resolved with fallback locale — no raw keys visible in any locale
92
+ - SEO audit passing: valid JSON-LD structured data, complete sitemap (published pages only), and hreflang tags verified
93
+
87
94
  ## Cost Profile
88
95
 
89
96
  ~16,000–28,000 tokens per full pack run (all 7 skills). Individual skill: ~2,000–5,000 tokens. Sonnet default. Use haiku for detection scans and alt-text audits; escalate to sonnet for CMS integration, SEO audit, video pipeline, and content scoring.
@@ -35,15 +35,15 @@ Mobile development has platform-specific pitfalls that web developers hit repeat
35
35
 
36
36
  | Skill | Model | Description |
37
37
  |-------|-------|-------------|
38
- | react-native | sonnet | New Architecture migration, navigation, state management, performance optimization |
39
- | flutter | sonnet | Widget composition, Riverpod/BLoC state, platform channels, adaptive layouts |
40
- | deep-linking | sonnet | Universal Links (iOS), App Links (Android), auth + deep link race condition |
41
- | push-notifications | sonnet | FCM v1, APNs, Expo Notifications, permission handling, delivery debugging |
42
- | ota-updates | sonnet | EAS Update, runtime version management, rollback, bytecode compatibility |
43
- | app-store-prep | sonnet | Screenshots, metadata, privacy manifests, submission checklist |
44
- | native-bridge | sonnet | Expo Modules API, TurboModules, Swift/Kotlin interop, background tasks |
45
- | ios-build-pipeline | sonnet | Certificate generation, provisioning, Xcode archive, IPA export, TestFlight upload |
46
- | app-store-connect | sonnet | Version management, localization, screenshot upload, IAP, review submission |
38
+ | [react-native](skills/react-native.md) | sonnet | New Architecture migration, navigation, state management, performance optimization |
39
+ | [flutter](skills/flutter.md) | sonnet | Widget composition, Riverpod/BLoC state, platform channels, adaptive layouts |
40
+ | [deep-linking](skills/deep-linking.md) | sonnet | Universal Links (iOS), App Links (Android), auth + deep link race condition |
41
+ | [push-notifications](skills/push-notifications.md) | sonnet | FCM v1, APNs, Expo Notifications, permission handling, delivery debugging |
42
+ | [ota-updates](skills/ota-updates.md) | sonnet | EAS Update, runtime version management, rollback, bytecode compatibility |
43
+ | [app-store-prep](skills/app-store-prep.md) | sonnet | Screenshots, metadata, privacy manifests, submission checklist |
44
+ | [native-bridge](skills/native-bridge.md) | sonnet | Expo Modules API, TurboModules, Swift/Kotlin interop, background tasks |
45
+ | [ios-build-pipeline](skills/ios-build-pipeline.md) | sonnet | Certificate generation, provisioning, Xcode archive, IPA export, TestFlight upload |
46
+ | [app-store-connect](skills/app-store-connect.md) | sonnet | Version management, localization, screenshot upload, IAP, review submission |
47
47
 
48
48
  Skill files: `skills/<skill-name>.md`
49
49
 
@@ -107,6 +107,15 @@ Called By ← mcp-builder (L2): when building Zalo-specific MCP server
107
107
  4. Credentials (tokens, cookies, secrets) MUST never be logged or committed
108
108
  5. Webhook signature verification MUST NOT be skipped — even in development
109
109
 
110
+ ## Sharp Edges
111
+
112
+ | Failure Mode | Severity | Mitigation |
113
+ |---|---|---|
114
+ | OAuth2 access token expires (1h) without auto-refresh causing silent API failures | HIGH | Implement token refresh middleware that intercepts 401 responses and retries with new token before propagating errors |
115
+ | zca-js session lost when running personal bot and Zalo app simultaneously on same account | HIGH | Use a dedicated account for bot automation — single-session limit is non-negotiable on Track B |
116
+ | Webhook signature verification skipped in development, then deployed to production unsigned | HIGH | Always validate `X-Zalo-Signature` header from first commit — skip in dev only via explicit `SKIP_WEBHOOK_VERIFY=true` env flag |
117
+ | Rate limit hit causes account ban with no warning (HTTP 429 mishandled as transient error) | HIGH | Implement token bucket per endpoint; treat sustained 429s as ban-risk signal and back off for 60+ seconds |
118
+
110
119
  ## Done When
111
120
 
112
121
  - OA OAuth2 flow working with auto-refresh
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rune-kit/rune",
3
- "version": "2.2.6",
4
- "description": "58-skill mesh for AI coding assistants — 5-layer architecture, 200+ connections, 8 platforms (Claude Code, Cursor, Windsurf, Antigravity, Codex, OpenCode, OpenClaw, Generic)",
3
+ "version": "2.3.1",
4
+ "description": "59-skill mesh for AI coding assistants — 5-layer architecture, 200+ connections, 8 platforms (Claude Code, Cursor, Windsurf, Antigravity, Codex, OpenCode, OpenClaw, Generic)",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "rune": "./compiler/bin/rune.js"
@@ -9,11 +9,12 @@
9
9
  "scripts": {
10
10
  "build": "node compiler/bin/rune.js build",
11
11
  "doctor": "node compiler/bin/rune.js doctor && node scripts/version-sync-check.js",
12
- "test": "node --test compiler/__tests__/*.test.js",
12
+ "test": "node --test compiler/__tests__/*.test.js scripts/__tests__/*.test.js",
13
+ "test:coverage": "c8 --reporter=text --reporter=lcov node --test compiler/__tests__/*.test.js scripts/__tests__/*.test.js",
13
14
  "lint": "biome check .",
14
15
  "lint:fix": "biome check --fix .",
15
16
  "format": "biome format --write .",
16
- "ci": "biome check . && node --test compiler/__tests__/*.test.js && node compiler/bin/rune.js doctor",
17
+ "ci": "biome check . && node --test compiler/__tests__/*.test.js scripts/__tests__/*.test.js && node compiler/bin/rune.js doctor",
17
18
  "version-check": "node scripts/version-sync-check.js",
18
19
  "prepublishOnly": "node scripts/version-sync-check.js"
19
20
  },
@@ -52,11 +53,12 @@
52
53
  "docs/",
53
54
  "references/"
54
55
  ],
55
- "homepage": "https://github.com/rune-kit/rune",
56
+ "homepage": "https://rune-kit.github.io/rune",
56
57
  "bugs": {
57
58
  "url": "https://github.com/rune-kit/rune/issues"
58
59
  },
59
60
  "devDependencies": {
60
- "@biomejs/biome": "^2.4.7"
61
+ "@biomejs/biome": "^2.4.7",
62
+ "c8": "^10.1.3"
61
63
  }
62
64
  }
@@ -266,6 +266,18 @@ Trigger: plan involves auth, crypto, payment, or user data handling.
266
266
  - Findings formatted for consumption by cook Phase 3 (if PROCEED) or plan (if REVISE)
267
267
  - Strength Notes section acknowledges well-designed aspects of the plan
268
268
 
269
+ ## Returns
270
+
271
+ | Artifact | Format | Location |
272
+ |----------|--------|----------|
273
+ | Adversary Report | Markdown | inline (stdout) |
274
+ | Threat findings | Structured list (CRITICAL/HIGH/MEDIUM) | inline |
275
+ | Risk matrix per dimension | Table | inline |
276
+ | Verdict + remediation list | Markdown | inline |
277
+ | Hardened plan notes (if PROCEED) | Text | passed to cook Phase 3 |
278
+
269
279
  ## Cost Profile
270
280
 
271
281
  ~4000-8000 tokens input (plan + codebase context), ~2000-3000 tokens output. Opus model for adversarial depth. Runs once per feature plan — high cost justified by preventing wasted implementation cycles.
282
+
283
+ **Scope guardrail:** adversary reviews THE PLAN only — never audits existing codebase quality or rewrites code.