@rune-kit/rune 2.2.4 → 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/compiler/adapters/openclaw.js +63 -0
- package/compiler/emitter.js +10 -0
- package/docs/EXTENSION-TEMPLATE.md +18 -0
- package/docs/SKILL-TEMPLATE.md +46 -0
- package/docs/guides/index.html +84 -21
- package/docs/index.html +303 -37
- package/docs/script.js +236 -18
- package/docs/style.css +417 -59
- package/extensions/saas/PACK.md +13 -8
- package/extensions/saas/skills/billing-integration.md +82 -3
- package/package.json +7 -5
- package/skills/adversary/SKILL.md +12 -0
- package/skills/audit/SKILL.md +64 -1
- package/skills/autopsy/SKILL.md +12 -0
- package/skills/ba/SKILL.md +63 -1
- package/skills/brainstorm/SKILL.md +11 -0
- package/skills/completion-gate/SKILL.md +51 -2
- package/skills/context-engine/SKILL.md +83 -1
- package/skills/context-pack/SKILL.md +160 -0
- package/skills/cook/SKILL.md +657 -808
- 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 +81 -2
- package/skills/deploy/SKILL.md +56 -1
- 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 +63 -3
- package/skills/git/SKILL.md +55 -1
- package/skills/incident/SKILL.md +10 -0
- package/skills/journal/SKILL.md +51 -3
- 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 -629
- 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 +135 -1
- package/skills/rescue/SKILL.md +10 -0
- package/skills/research/SKILL.md +36 -8
- package/skills/retro/SKILL.md +325 -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 -320
- 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 +131 -4
- 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 +211 -7
package/docs/index.html
CHANGED
|
@@ -26,14 +26,15 @@
|
|
|
26
26
|
<a href="#architecture">Architecture</a>
|
|
27
27
|
<a href="#workflows">Workflows</a>
|
|
28
28
|
<a href="guides/">Guides</a>
|
|
29
|
+
<a href="#mesh">Mesh</a>
|
|
29
30
|
<a href="#pricing">Pricing</a>
|
|
30
|
-
<div class="nav-controls">
|
|
31
|
+
<div class="nav-controls notranslate" translate="no">
|
|
31
32
|
<button class="theme-toggle" id="theme-toggle" aria-label="Toggle light/dark mode" title="Toggle theme">☾</button>
|
|
32
33
|
<div class="lang-dropdown" id="lang-dropdown">
|
|
33
34
|
<button class="lang-toggle" id="lang-btn" aria-label="Translate page" title="Translate page">
|
|
34
35
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10A15.3 15.3 0 0 1 12 2z"/></svg>
|
|
35
36
|
</button>
|
|
36
|
-
<div class="lang-menu" id="lang-menu" hidden>
|
|
37
|
+
<div class="lang-menu notranslate" id="lang-menu" translate="no" hidden>
|
|
37
38
|
<button data-lang="">English</button>
|
|
38
39
|
<button data-lang="vi">Tiếng Việt</button>
|
|
39
40
|
<button data-lang="ja">日本語</button>
|
|
@@ -61,7 +62,7 @@
|
|
|
61
62
|
<canvas id="mesh-canvas"></canvas>
|
|
62
63
|
</div>
|
|
63
64
|
<div class="hero-content">
|
|
64
|
-
<p class="hero-badge">v2.
|
|
65
|
+
<p class="hero-badge">v2.3.0 — 59 skills • 8 platforms • MIT</p>
|
|
65
66
|
<h1>Less skills.<br><span class="accent">Deeper connections.</span></h1>
|
|
66
67
|
<p class="hero-sub">A mesh ecosystem for AI coding assistants. Skills call each other bidirectionally, forming resilient workflows that adapt when things go wrong.</p>
|
|
67
68
|
<div class="hero-actions">
|
|
@@ -322,6 +323,173 @@ claude plugin install rune</code></pre>
|
|
|
322
323
|
</div>
|
|
323
324
|
</section>
|
|
324
325
|
|
|
326
|
+
<!-- HOW THE MESH WORKS -->
|
|
327
|
+
<section class="section" id="mesh">
|
|
328
|
+
<div class="container">
|
|
329
|
+
<h2>How the Mesh Works</h2>
|
|
330
|
+
<p class="section-sub">Skills don't run in isolation. They call each other, forming resilient workflows that adapt when things go wrong.</p>
|
|
331
|
+
|
|
332
|
+
<!-- Mesh Diagram -->
|
|
333
|
+
<div class="mesh-diagram">
|
|
334
|
+
<div class="mesh-tier mesh-tier-free">
|
|
335
|
+
<div class="mesh-tier-header">
|
|
336
|
+
<span class="mesh-tier-badge mesh-badge-free">FREE</span>
|
|
337
|
+
<strong>Core Mesh</strong>
|
|
338
|
+
<span class="mesh-tier-stats">58 skills • 200+ connections</span>
|
|
339
|
+
</div>
|
|
340
|
+
<div class="mesh-layers">
|
|
341
|
+
<div class="mesh-layer">
|
|
342
|
+
<span class="mesh-layer-label">L0</span>
|
|
343
|
+
<div class="mesh-nodes">
|
|
344
|
+
<span class="mesh-node mesh-node-router" title="Routes every action to the right skill">skill-router</span>
|
|
345
|
+
</div>
|
|
346
|
+
</div>
|
|
347
|
+
<div class="mesh-layer">
|
|
348
|
+
<span class="mesh-layer-label">L1</span>
|
|
349
|
+
<div class="mesh-nodes">
|
|
350
|
+
<span class="mesh-node" title="Feature orchestrator — 70% of tasks flow through cook">cook</span>
|
|
351
|
+
<span class="mesh-node">team</span>
|
|
352
|
+
<span class="mesh-node">scaffold</span>
|
|
353
|
+
<span class="mesh-node">launch</span>
|
|
354
|
+
<span class="mesh-node">rescue</span>
|
|
355
|
+
</div>
|
|
356
|
+
</div>
|
|
357
|
+
<div class="mesh-layer">
|
|
358
|
+
<span class="mesh-layer-label">L2</span>
|
|
359
|
+
<div class="mesh-nodes">
|
|
360
|
+
<span class="mesh-node">plan</span>
|
|
361
|
+
<span class="mesh-node">ba</span>
|
|
362
|
+
<span class="mesh-node">debug</span>
|
|
363
|
+
<span class="mesh-node">fix</span>
|
|
364
|
+
<span class="mesh-node">test</span>
|
|
365
|
+
<span class="mesh-node">review</span>
|
|
366
|
+
<span class="mesh-node">sentinel</span>
|
|
367
|
+
<span class="mesh-node">deploy</span>
|
|
368
|
+
<span class="mesh-node mesh-node-more">+19 more</span>
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
<div class="mesh-layer">
|
|
372
|
+
<span class="mesh-layer-label">L3</span>
|
|
373
|
+
<div class="mesh-nodes">
|
|
374
|
+
<span class="mesh-node">scout</span>
|
|
375
|
+
<span class="mesh-node">research</span>
|
|
376
|
+
<span class="mesh-node">verification</span>
|
|
377
|
+
<span class="mesh-node">git</span>
|
|
378
|
+
<span class="mesh-node">docs</span>
|
|
379
|
+
<span class="mesh-node mesh-node-more">+20 more</span>
|
|
380
|
+
</div>
|
|
381
|
+
</div>
|
|
382
|
+
<div class="mesh-layer">
|
|
383
|
+
<span class="mesh-layer-label">L4</span>
|
|
384
|
+
<div class="mesh-nodes">
|
|
385
|
+
<span class="mesh-node">@rune/ui</span>
|
|
386
|
+
<span class="mesh-node">@rune/backend</span>
|
|
387
|
+
<span class="mesh-node">@rune/saas</span>
|
|
388
|
+
<span class="mesh-node">@rune/mobile</span>
|
|
389
|
+
<span class="mesh-node mesh-node-more">+10 packs</span>
|
|
390
|
+
</div>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
<div class="mesh-flow-example">
|
|
394
|
+
<span class="mesh-flow-label">Example flow:</span>
|
|
395
|
+
<code class="mesh-flow">cook → plan → test <span class="mesh-flow-fail">✗</span> → debug → fix → test <span class="mesh-flow-pass">✓</span> → review → sentinel → git</code>
|
|
396
|
+
</div>
|
|
397
|
+
</div>
|
|
398
|
+
|
|
399
|
+
<!-- Connection arrows -->
|
|
400
|
+
<div class="mesh-arrows">
|
|
401
|
+
<div class="mesh-arrow-line"></div>
|
|
402
|
+
<div class="mesh-arrow-labels">
|
|
403
|
+
<span class="mesh-arrow-label">+57 new connections</span>
|
|
404
|
+
<span class="mesh-arrow-desc">Pro skills plug into cook, team, ba, sentinel, git, research</span>
|
|
405
|
+
</div>
|
|
406
|
+
</div>
|
|
407
|
+
|
|
408
|
+
<div class="mesh-tier mesh-tier-pro">
|
|
409
|
+
<div class="mesh-tier-header">
|
|
410
|
+
<span class="mesh-tier-badge mesh-badge-pro">PRO $49</span>
|
|
411
|
+
<strong>Department Skills</strong>
|
|
412
|
+
<span class="mesh-tier-stats">+25 skills • +57 connections into core</span>
|
|
413
|
+
</div>
|
|
414
|
+
<div class="mesh-nodes mesh-nodes-grid">
|
|
415
|
+
<div class="mesh-pack">
|
|
416
|
+
<strong>Product</strong>
|
|
417
|
+
<span>PRDs, roadmaps, KPIs, release comms</span>
|
|
418
|
+
</div>
|
|
419
|
+
<div class="mesh-pack">
|
|
420
|
+
<strong>Sales</strong>
|
|
421
|
+
<span>Pipeline, outreach, account research</span>
|
|
422
|
+
</div>
|
|
423
|
+
<div class="mesh-pack">
|
|
424
|
+
<strong>Data Science</strong>
|
|
425
|
+
<span>SQL exploration, dashboards, ML eval</span>
|
|
426
|
+
</div>
|
|
427
|
+
<div class="mesh-pack">
|
|
428
|
+
<strong>Support</strong>
|
|
429
|
+
<span>Ticket triage, KB, escalation</span>
|
|
430
|
+
</div>
|
|
431
|
+
</div>
|
|
432
|
+
<p class="mesh-tier-note">Pro packs register as <code>Called By ← cook</code> — activated by the same orchestrator as core skills. No configuration needed.</p>
|
|
433
|
+
</div>
|
|
434
|
+
|
|
435
|
+
<!-- Connection arrows -->
|
|
436
|
+
<div class="mesh-arrows">
|
|
437
|
+
<div class="mesh-arrow-line mesh-arrow-line-biz"></div>
|
|
438
|
+
<div class="mesh-arrow-labels">
|
|
439
|
+
<span class="mesh-arrow-label">+54 connections + 13 cross-tier</span>
|
|
440
|
+
<span class="mesh-arrow-desc">Business calls Pro data: finance uses sales pipeline, legal uses product specs</span>
|
|
441
|
+
</div>
|
|
442
|
+
</div>
|
|
443
|
+
|
|
444
|
+
<div class="mesh-tier mesh-tier-biz">
|
|
445
|
+
<div class="mesh-tier-header">
|
|
446
|
+
<span class="mesh-tier-badge mesh-badge-biz">BUSINESS $149</span>
|
|
447
|
+
<strong>Enterprise Skills</strong>
|
|
448
|
+
<span class="mesh-tier-stats">+26 skills • includes all Pro skills</span>
|
|
449
|
+
</div>
|
|
450
|
+
<div class="mesh-nodes mesh-nodes-grid">
|
|
451
|
+
<div class="mesh-pack">
|
|
452
|
+
<strong>Finance</strong>
|
|
453
|
+
<span>Budget from <em>sales pipeline</em> + <em>product roadmap</em></span>
|
|
454
|
+
</div>
|
|
455
|
+
<div class="mesh-pack">
|
|
456
|
+
<strong>Legal</strong>
|
|
457
|
+
<span>Compliance via <em>product specs</em> + <em>support KB</em></span>
|
|
458
|
+
</div>
|
|
459
|
+
<div class="mesh-pack">
|
|
460
|
+
<strong>HR</strong>
|
|
461
|
+
<span>Recruiting, onboarding, role design</span>
|
|
462
|
+
</div>
|
|
463
|
+
<div class="mesh-pack">
|
|
464
|
+
<strong>Enterprise Search</strong>
|
|
465
|
+
<span>Cross-department knowledge from <em>support KB</em> + <em>product docs</em></span>
|
|
466
|
+
</div>
|
|
467
|
+
</div>
|
|
468
|
+
<p class="mesh-tier-note">Business includes Pro because it depends on Pro data. Finance can’t forecast without sales pipeline. Legal can’t audit without product specs. That’s why they’re bundled.</p>
|
|
469
|
+
</div>
|
|
470
|
+
</div>
|
|
471
|
+
|
|
472
|
+
<!-- Key Points -->
|
|
473
|
+
<div class="mesh-points">
|
|
474
|
+
<div class="mesh-point">
|
|
475
|
+
<div class="mesh-point-icon">◆</div>
|
|
476
|
+
<h3>Free is complete</h3>
|
|
477
|
+
<p>The full development workflow — plan, build, test, review, deploy — runs entirely on Free. You never hit a paywall while coding.</p>
|
|
478
|
+
</div>
|
|
479
|
+
<div class="mesh-point">
|
|
480
|
+
<div class="mesh-point-icon">◾</div>
|
|
481
|
+
<h3>Pro extends, not replaces</h3>
|
|
482
|
+
<p>Pro skills plug into the existing mesh via <code>cook</code> and <code>team</code>. Same orchestrator, same quality gates, new department capabilities.</p>
|
|
483
|
+
</div>
|
|
484
|
+
<div class="mesh-point">
|
|
485
|
+
<div class="mesh-point-icon">◾</div>
|
|
486
|
+
<h3>Business needs Pro</h3>
|
|
487
|
+
<p>Finance pulls from sales pipeline. Legal checks product specs. Enterprise search indexes support KB. That’s 13 cross-tier connections — and why Business includes Pro.</p>
|
|
488
|
+
</div>
|
|
489
|
+
</div>
|
|
490
|
+
</div>
|
|
491
|
+
</section>
|
|
492
|
+
|
|
325
493
|
<!-- PRICING -->
|
|
326
494
|
<section class="section section-dark" id="pricing">
|
|
327
495
|
<div class="container">
|
|
@@ -390,30 +558,43 @@ claude plugin install rune</code></pre>
|
|
|
390
558
|
<li>All future Pro packs included</li>
|
|
391
559
|
</ul>
|
|
392
560
|
<button class="btn btn-pro" style="width:100%" onclick="openPayment('rune-pro')">Get Rune Pro — $49</button>
|
|
393
|
-
<p class="pricing-note"
|
|
561
|
+
<p class="pricing-note pricing-guarantee">💰 14-Day Money-Back Guarantee — no questions asked</p>
|
|
394
562
|
</div>
|
|
395
563
|
|
|
396
564
|
<!-- BUSINESS -->
|
|
397
565
|
<div class="pricing-card pricing-biz">
|
|
398
566
|
<div class="pricing-tier">
|
|
399
|
-
<span class="pricing-badge pricing-badge-
|
|
567
|
+
<span class="pricing-badge pricing-badge-best">★ BEST VALUE</span>
|
|
400
568
|
<h3>Rune Business</h3>
|
|
401
569
|
<div class="pricing-price">$149<span class="pricing-period"> lifetime</span></div>
|
|
402
570
|
</div>
|
|
403
|
-
<p class="pricing-desc">Full department coverage
|
|
404
|
-
|
|
571
|
+
<p class="pricing-desc">Full department coverage — every business function, one purchase.</p>
|
|
572
|
+
|
|
573
|
+
<!-- What's Included breakdown -->
|
|
574
|
+
<div class="includes-breakdown">
|
|
575
|
+
<p class="includes-label">What’s Included:</p>
|
|
576
|
+
<div class="includes-box includes-box-pro">
|
|
577
|
+
<strong>Rune Pro</strong> <span class="includes-value">$49 value</span>
|
|
578
|
+
<ul>
|
|
579
|
+
<li>Product Management, Sales, Data Science, Support</li>
|
|
580
|
+
<li>Business memory layer + MCP connectors</li>
|
|
581
|
+
</ul>
|
|
582
|
+
</div>
|
|
583
|
+
<div class="includes-box includes-box-biz">
|
|
584
|
+
<strong>Rune Business</strong> <span class="includes-value">$100 value</span>
|
|
585
|
+
<ul>
|
|
586
|
+
<li>Finance Ops, Legal & Compliance, HR & Recruiting</li>
|
|
587
|
+
<li>Enterprise Search + Priority support</li>
|
|
588
|
+
</ul>
|
|
589
|
+
</div>
|
|
590
|
+
</div>
|
|
591
|
+
|
|
405
592
|
<ul class="pricing-features">
|
|
406
|
-
<li
|
|
407
|
-
<li>
|
|
408
|
-
<li>Legal & Compliance — contract review, policy drafting, audit prep</li>
|
|
409
|
-
<li>HR & Recruiting — job descriptions, candidate screening, onboarding</li>
|
|
410
|
-
<li>Enterprise Search — cross-system knowledge retrieval</li>
|
|
411
|
-
<li>Skill Forge included — build private skills (free in core, enhanced for teams)</li>
|
|
412
|
-
<li>Priority support — direct access to maintainers</li>
|
|
413
|
-
<li>All future Business packs included</li>
|
|
593
|
+
<li>All future Pro + Business packs included</li>
|
|
594
|
+
<li>Lifetime access — no subscriptions ever</li>
|
|
414
595
|
</ul>
|
|
415
596
|
<button class="btn btn-biz" style="width:100%" onclick="openPayment('rune-biz')">Get Rune Business — $149</button>
|
|
416
|
-
<p class="pricing-note"
|
|
597
|
+
<p class="pricing-note pricing-guarantee">💰 14-Day Money-Back Guarantee — no questions asked</p>
|
|
417
598
|
</div>
|
|
418
599
|
</div>
|
|
419
600
|
|
|
@@ -603,7 +784,7 @@ claude plugin install rune</code></pre>
|
|
|
603
784
|
<p class="pay-subtitle">Choose your payment method</p>
|
|
604
785
|
<div class="pay-options">
|
|
605
786
|
<button class="pay-option" onclick="showVNPayment()">
|
|
606
|
-
<
|
|
787
|
+
<img src="https://flagcdn.com/w40/vn.png" width="32" height="21" alt="VN" style="border-radius:3px" />
|
|
607
788
|
<div class="pay-option-info">
|
|
608
789
|
<strong>Vietnam</strong>
|
|
609
790
|
<span>Bank Transfer (VietQR)</span>
|
|
@@ -611,15 +792,15 @@ claude plugin install rune</code></pre>
|
|
|
611
792
|
</div>
|
|
612
793
|
<span class="pay-option-arrow">→</span>
|
|
613
794
|
</button>
|
|
614
|
-
<
|
|
795
|
+
<button class="pay-option" onclick="showIntlPayment()">
|
|
615
796
|
<span class="pay-option-flag">🌐</span>
|
|
616
797
|
<div class="pay-option-info">
|
|
617
798
|
<strong>International</strong>
|
|
618
|
-
<span>
|
|
799
|
+
<span>Card / PayPal (Polar)</span>
|
|
619
800
|
<span class="pay-option-price" id="pay-price-intl">$49 USD</span>
|
|
620
801
|
</div>
|
|
621
802
|
<span class="pay-option-arrow">→</span>
|
|
622
|
-
</
|
|
803
|
+
</button>
|
|
623
804
|
</div>
|
|
624
805
|
</div>
|
|
625
806
|
|
|
@@ -646,7 +827,7 @@ claude plugin install rune</code></pre>
|
|
|
646
827
|
<img id="pay-qr-img" alt="VietQR Payment" />
|
|
647
828
|
</div>
|
|
648
829
|
<div class="pay-details">
|
|
649
|
-
<div class="pay-detail-row"><span>Bank</span><strong>
|
|
830
|
+
<div class="pay-detail-row"><span>Bank</span><strong>TPBank</strong></div>
|
|
650
831
|
<div class="pay-detail-row"><span>Account</span><strong class="pay-mono">04162263666</strong></div>
|
|
651
832
|
<div class="pay-detail-row"><span>Amount</span><strong class="pay-mono" id="pay-detail-amount"></strong></div>
|
|
652
833
|
<div class="pay-detail-row"><span>Content</span><strong class="pay-mono" id="pay-detail-code"></strong></div>
|
|
@@ -658,12 +839,96 @@ claude plugin install rune</code></pre>
|
|
|
658
839
|
</div>
|
|
659
840
|
|
|
660
841
|
<!-- Step 4: Success -->
|
|
661
|
-
<div id="pay-step-4" class="pay-step" hidden>
|
|
662
|
-
<div class="pay-success-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
842
|
+
<div id="pay-step-4" class="pay-step pay-success" hidden>
|
|
843
|
+
<div class="pay-success-badge">
|
|
844
|
+
<svg class="pay-success-check" viewBox="0 0 52 52" width="52" height="52">
|
|
845
|
+
<circle class="pay-success-circle" cx="26" cy="26" r="24" fill="none" stroke="currentColor" stroke-width="2.5"/>
|
|
846
|
+
<path class="pay-success-tick" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M15 27l7 7 15-15"/>
|
|
847
|
+
</svg>
|
|
848
|
+
</div>
|
|
849
|
+
<h3 class="pay-success-title">You're in!</h3>
|
|
850
|
+
<p class="pay-success-sub">A GitHub repo invitation is on its way to <strong id="pay-success-user"></strong></p>
|
|
851
|
+
|
|
852
|
+
<div class="pay-success-steps">
|
|
853
|
+
<div class="pay-success-step">
|
|
854
|
+
<span class="pay-success-num">1</span>
|
|
855
|
+
<div>
|
|
856
|
+
<strong>Check your GitHub email</strong>
|
|
857
|
+
<span>Look for an invite from <code>noreply@github.com</code> — usually within 1 minute</span>
|
|
858
|
+
</div>
|
|
859
|
+
</div>
|
|
860
|
+
<div class="pay-success-step">
|
|
861
|
+
<span class="pay-success-num">2</span>
|
|
862
|
+
<div>
|
|
863
|
+
<strong>Accept the invitation</strong>
|
|
864
|
+
<span>Click "View invitation" to join the private repo</span>
|
|
865
|
+
</div>
|
|
866
|
+
</div>
|
|
867
|
+
<div class="pay-success-step">
|
|
868
|
+
<span class="pay-success-num">3</span>
|
|
869
|
+
<div>
|
|
870
|
+
<strong>Install your packs</strong>
|
|
871
|
+
<span id="pay-success-install">Follow the setup guide in the repo README</span>
|
|
872
|
+
</div>
|
|
873
|
+
</div>
|
|
874
|
+
</div>
|
|
875
|
+
|
|
876
|
+
<button class="btn btn-primary pay-success-done" onclick="closePayment()">Got it</button>
|
|
877
|
+
<p class="pay-success-help">Didn't get the invite? Check spam, or email <a href="mailto:claude@theio.vn">claude@theio.vn</a></p>
|
|
878
|
+
</div>
|
|
879
|
+
|
|
880
|
+
<!-- Step 5: International — GitHub username + Polar checkout -->
|
|
881
|
+
<div id="pay-step-5" class="pay-step" hidden>
|
|
882
|
+
<button class="pay-close" onclick="closePayment()" aria-label="Close">×</button>
|
|
883
|
+
<button class="pay-back" onclick="showPayStep(1)" aria-label="Back">← Back</button>
|
|
884
|
+
<h3 id="pay-title-5">Get Rune Pro</h3>
|
|
885
|
+
<p class="pay-subtitle" id="pay-amount-5">$49 USD</p>
|
|
886
|
+
<label class="pay-label" for="pay-intl-github">GitHub Username</label>
|
|
887
|
+
<input type="text" id="pay-intl-github" class="pay-input" placeholder="your-github-username" autocomplete="off" spellcheck="false" />
|
|
888
|
+
<label class="pay-label" for="pay-intl-email">Email <span style="color:var(--text-muted)">(for receipt)</span></label>
|
|
889
|
+
<input type="email" id="pay-intl-email" class="pay-input" placeholder="you@example.com" />
|
|
890
|
+
<p id="pay-intl-error" class="pay-error" hidden></p>
|
|
891
|
+
<button id="pay-intl-submit" class="btn btn-pro" style="width:100%;margin-top:16px" onclick="startPolarCheckout()">Pay with Card / PayPal</button>
|
|
892
|
+
<p class="pay-hint" style="margin-top:12px">You'll be redirected to Polar's secure checkout page</p>
|
|
893
|
+
</div>
|
|
894
|
+
|
|
895
|
+
<!-- Step 6: Success (Vietnamese — for SePay flow) -->
|
|
896
|
+
<div id="pay-step-6" class="pay-step pay-success notranslate" translate="no" hidden>
|
|
897
|
+
<div class="pay-success-badge">
|
|
898
|
+
<svg class="pay-success-check" viewBox="0 0 52 52" width="52" height="52">
|
|
899
|
+
<circle class="pay-success-circle" cx="26" cy="26" r="24" fill="none" stroke="currentColor" stroke-width="2.5"/>
|
|
900
|
+
<path class="pay-success-tick" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M15 27l7 7 15-15"/>
|
|
901
|
+
</svg>
|
|
902
|
+
</div>
|
|
903
|
+
<h3 class="pay-success-title">Thanh toán thành công!</h3>
|
|
904
|
+
<p class="pay-success-sub">Lời mời truy cập repo đã được gửi đến <strong id="pay-success-user-vn"></strong></p>
|
|
905
|
+
|
|
906
|
+
<div class="pay-success-steps">
|
|
907
|
+
<div class="pay-success-step">
|
|
908
|
+
<span class="pay-success-num">1</span>
|
|
909
|
+
<div>
|
|
910
|
+
<strong>Kiểm tra email GitHub</strong>
|
|
911
|
+
<span>Tìm email mời từ <code>noreply@github.com</code> — thường trong vòng 1 phút</span>
|
|
912
|
+
</div>
|
|
913
|
+
</div>
|
|
914
|
+
<div class="pay-success-step">
|
|
915
|
+
<span class="pay-success-num">2</span>
|
|
916
|
+
<div>
|
|
917
|
+
<strong>Chấp nhận lời mời</strong>
|
|
918
|
+
<span>Nhấn "View invitation" để vào private repo</span>
|
|
919
|
+
</div>
|
|
920
|
+
</div>
|
|
921
|
+
<div class="pay-success-step">
|
|
922
|
+
<span class="pay-success-num">3</span>
|
|
923
|
+
<div>
|
|
924
|
+
<strong>Cài đặt skill packs</strong>
|
|
925
|
+
<span id="pay-success-install-vn">Làm theo hướng dẫn trong README của repo</span>
|
|
926
|
+
</div>
|
|
927
|
+
</div>
|
|
928
|
+
</div>
|
|
929
|
+
|
|
930
|
+
<button class="btn btn-primary pay-success-done" onclick="closePayment()">Xong</button>
|
|
931
|
+
<p class="pay-success-help">Chưa nhận được? Kiểm tra spam, hoặc email <a href="mailto:claude@theio.vn">claude@theio.vn</a></p>
|
|
667
932
|
</div>
|
|
668
933
|
</div>
|
|
669
934
|
</div>
|
|
@@ -675,24 +940,25 @@ claude plugin install rune</code></pre>
|
|
|
675
940
|
(function initTheme() {
|
|
676
941
|
const toggle = document.getElementById('theme-toggle');
|
|
677
942
|
const stored = localStorage.getItem('rune-theme');
|
|
678
|
-
const
|
|
679
|
-
const theme = stored || (prefersDark ? 'dark' : 'dark'); // default dark
|
|
943
|
+
const theme = stored || 'light'; // default light (warm cream)
|
|
680
944
|
|
|
681
|
-
if (theme === '
|
|
682
|
-
document.documentElement.setAttribute('data-theme', '
|
|
945
|
+
if (theme === 'dark') {
|
|
946
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
947
|
+
toggle.innerHTML = '☾'; // moon
|
|
948
|
+
} else {
|
|
683
949
|
toggle.innerHTML = '☀'; // sun
|
|
684
950
|
}
|
|
685
951
|
|
|
686
952
|
toggle.addEventListener('click', () => {
|
|
687
|
-
const
|
|
688
|
-
if (
|
|
953
|
+
const isDark = document.documentElement.getAttribute('data-theme') === 'dark';
|
|
954
|
+
if (isDark) {
|
|
689
955
|
document.documentElement.removeAttribute('data-theme');
|
|
690
|
-
toggle.innerHTML = '☾'; // moon
|
|
691
|
-
localStorage.setItem('rune-theme', 'dark');
|
|
692
|
-
} else {
|
|
693
|
-
document.documentElement.setAttribute('data-theme', 'light');
|
|
694
956
|
toggle.innerHTML = '☀'; // sun
|
|
695
957
|
localStorage.setItem('rune-theme', 'light');
|
|
958
|
+
} else {
|
|
959
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
960
|
+
toggle.innerHTML = '☾'; // moon
|
|
961
|
+
localStorage.setItem('rune-theme', 'dark');
|
|
696
962
|
}
|
|
697
963
|
});
|
|
698
964
|
})();
|