@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.
- package/README.md +395 -389
- package/compiler/__tests__/tier-override.test.js +158 -0
- package/compiler/adapters/antigravity.js +3 -8
- package/compiler/adapters/codex.js +3 -8
- package/compiler/adapters/cursor.js +3 -8
- package/compiler/adapters/generic.js +3 -8
- package/compiler/adapters/openclaw.js +4 -9
- package/compiler/adapters/opencode.js +3 -8
- package/compiler/adapters/windsurf.js +3 -8
- package/compiler/bin/rune.js +34 -1
- package/compiler/emitter.js +94 -5
- package/compiler/transforms/branding.js +10 -3
- package/docs/ARCHITECTURE.md +3 -3
- package/docs/SKILL-TEMPLATE.md +15 -0
- package/docs/VISION.md +3 -3
- package/docs/guides/index.html +14 -14
- package/docs/index.html +82 -13
- package/docs/script.js +33 -6
- package/docs/skills/index.html +832 -832
- package/docs/style.css +62 -0
- package/extensions/ai-ml/PACK.md +7 -0
- package/extensions/content/PACK.md +7 -0
- package/extensions/mobile/PACK.md +9 -9
- package/extensions/zalo/PACK.md +9 -0
- package/package.json +8 -6
- package/skills/adversary/SKILL.md +12 -0
- package/skills/audit/SKILL.md +526 -467
- package/skills/autopsy/SKILL.md +12 -0
- package/skills/ba/SKILL.md +349 -342
- package/skills/brainstorm/SKILL.md +11 -0
- package/skills/completion-gate/SKILL.md +260 -249
- package/skills/context-engine/SKILL.md +77 -1
- package/skills/context-pack/SKILL.md +160 -0
- package/skills/cook/SKILL.md +648 -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 +392 -362
- package/skills/deploy/SKILL.md +10 -0
- package/skills/deploy/references/post-deploy-integration.md +192 -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 +281 -249
- 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 +50 -2
- package/skills/perf/SKILL.md +11 -0
- package/skills/plan/SKILL.md +342 -688
- package/skills/plan/references/completeness-scoring.md +36 -0
- package/skills/plan/references/outcome-block.md +40 -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 +52 -0
- package/skills/preflight/SKILL.md +360 -280
- package/skills/rescue/SKILL.md +11 -0
- package/skills/research/SKILL.md +149 -150
- package/skills/retro/SKILL.md +11 -0
- package/skills/review/SKILL.md +489 -396
- 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 +296 -425
- package/skills/sentinel/references/config-protection.md +52 -0
- package/skills/sentinel/references/destructive-commands.md +39 -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 +54 -0
- package/skills/session-bridge/SKILL.md +56 -2
- package/skills/skill-forge/SKILL.md +47 -2
- package/skills/skill-router/{SKILL.md → skill.md} +446 -365
- package/skills/surgeon/SKILL.md +12 -0
- package/skills/team/SKILL.md +34 -1
- package/skills/test/SKILL.md +585 -427
- 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;
|
package/extensions/ai-ml/PACK.md
CHANGED
|
@@ -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
|
|
package/extensions/zalo/PACK.md
CHANGED
|
@@ -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.
|
|
4
|
-
"description": "
|
|
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://
|
|
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.
|