@rune-kit/rune 2.1.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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +357 -0
  3. package/agents/.gitkeep +0 -0
  4. package/agents/architect.md +29 -0
  5. package/agents/asset-creator.md +11 -0
  6. package/agents/audit.md +11 -0
  7. package/agents/autopsy.md +11 -0
  8. package/agents/brainstorm.md +11 -0
  9. package/agents/browser-pilot.md +11 -0
  10. package/agents/coder.md +29 -0
  11. package/agents/completion-gate.md +11 -0
  12. package/agents/constraint-check.md +11 -0
  13. package/agents/context-engine.md +11 -0
  14. package/agents/cook.md +11 -0
  15. package/agents/db.md +11 -0
  16. package/agents/debug.md +11 -0
  17. package/agents/dependency-doctor.md +11 -0
  18. package/agents/deploy.md +11 -0
  19. package/agents/design.md +11 -0
  20. package/agents/docs-seeker.md +11 -0
  21. package/agents/fix.md +11 -0
  22. package/agents/hallucination-guard.md +11 -0
  23. package/agents/incident.md +11 -0
  24. package/agents/integrity-check.md +11 -0
  25. package/agents/journal.md +11 -0
  26. package/agents/launch.md +11 -0
  27. package/agents/logic-guardian.md +11 -0
  28. package/agents/marketing.md +11 -0
  29. package/agents/onboard.md +11 -0
  30. package/agents/perf.md +11 -0
  31. package/agents/plan.md +11 -0
  32. package/agents/preflight.md +11 -0
  33. package/agents/problem-solver.md +11 -0
  34. package/agents/rescue.md +11 -0
  35. package/agents/research.md +11 -0
  36. package/agents/researcher.md +29 -0
  37. package/agents/review-intake.md +11 -0
  38. package/agents/review.md +11 -0
  39. package/agents/reviewer.md +28 -0
  40. package/agents/safeguard.md +11 -0
  41. package/agents/sast.md +11 -0
  42. package/agents/scanner.md +28 -0
  43. package/agents/scope-guard.md +11 -0
  44. package/agents/scout.md +11 -0
  45. package/agents/sentinel.md +11 -0
  46. package/agents/sequential-thinking.md +11 -0
  47. package/agents/session-bridge.md +11 -0
  48. package/agents/skill-forge.md +11 -0
  49. package/agents/skill-router.md +11 -0
  50. package/agents/surgeon.md +11 -0
  51. package/agents/team.md +11 -0
  52. package/agents/test.md +11 -0
  53. package/agents/trend-scout.md +11 -0
  54. package/agents/verification.md +11 -0
  55. package/agents/video-creator.md +11 -0
  56. package/agents/watchdog.md +11 -0
  57. package/agents/worktree.md +11 -0
  58. package/commands/.gitkeep +0 -0
  59. package/commands/rune.md +168 -0
  60. package/compiler/__tests__/openclaw-adapter.test.js +140 -0
  61. package/compiler/__tests__/parser.test.js +55 -0
  62. package/compiler/adapters/antigravity.js +59 -0
  63. package/compiler/adapters/claude.js +37 -0
  64. package/compiler/adapters/cursor.js +67 -0
  65. package/compiler/adapters/generic.js +60 -0
  66. package/compiler/adapters/index.js +45 -0
  67. package/compiler/adapters/openclaw.js +150 -0
  68. package/compiler/adapters/windsurf.js +60 -0
  69. package/compiler/bin/rune.js +288 -0
  70. package/compiler/doctor.js +153 -0
  71. package/compiler/emitter.js +240 -0
  72. package/compiler/parser.js +208 -0
  73. package/compiler/transformer.js +69 -0
  74. package/compiler/transforms/branding.js +27 -0
  75. package/compiler/transforms/cross-references.js +29 -0
  76. package/compiler/transforms/frontmatter.js +38 -0
  77. package/compiler/transforms/hooks.js +68 -0
  78. package/compiler/transforms/subagents.js +36 -0
  79. package/compiler/transforms/tool-names.js +60 -0
  80. package/contexts/dev.md +34 -0
  81. package/contexts/research.md +43 -0
  82. package/contexts/review.md +55 -0
  83. package/extensions/ai-ml/PACK.md +517 -0
  84. package/extensions/analytics/PACK.md +557 -0
  85. package/extensions/backend/PACK.md +678 -0
  86. package/extensions/chrome-ext/PACK.md +995 -0
  87. package/extensions/content/PACK.md +381 -0
  88. package/extensions/devops/PACK.md +520 -0
  89. package/extensions/ecommerce/PACK.md +280 -0
  90. package/extensions/gamedev/PACK.md +393 -0
  91. package/extensions/mobile/PACK.md +273 -0
  92. package/extensions/saas/PACK.md +805 -0
  93. package/extensions/security/PACK.md +536 -0
  94. package/extensions/trading/PACK.md +597 -0
  95. package/extensions/ui/PACK.md +947 -0
  96. package/package.json +47 -0
  97. package/skills/.gitkeep +0 -0
  98. package/skills/adversary/SKILL.md +271 -0
  99. package/skills/asset-creator/SKILL.md +157 -0
  100. package/skills/audit/SKILL.md +466 -0
  101. package/skills/autopsy/SKILL.md +200 -0
  102. package/skills/ba/SKILL.md +279 -0
  103. package/skills/brainstorm/SKILL.md +266 -0
  104. package/skills/browser-pilot/SKILL.md +168 -0
  105. package/skills/completion-gate/SKILL.md +151 -0
  106. package/skills/constraint-check/SKILL.md +165 -0
  107. package/skills/context-engine/SKILL.md +176 -0
  108. package/skills/cook/SKILL.md +636 -0
  109. package/skills/db/SKILL.md +256 -0
  110. package/skills/debug/SKILL.md +240 -0
  111. package/skills/dependency-doctor/SKILL.md +235 -0
  112. package/skills/deploy/SKILL.md +174 -0
  113. package/skills/design/DESIGN-REFERENCE.md +365 -0
  114. package/skills/design/SKILL.md +462 -0
  115. package/skills/doc-processor/SKILL.md +254 -0
  116. package/skills/docs/SKILL.md +336 -0
  117. package/skills/docs-seeker/SKILL.md +166 -0
  118. package/skills/fix/SKILL.md +192 -0
  119. package/skills/git/SKILL.md +285 -0
  120. package/skills/hallucination-guard/SKILL.md +204 -0
  121. package/skills/incident/SKILL.md +241 -0
  122. package/skills/integrity-check/SKILL.md +169 -0
  123. package/skills/journal/SKILL.md +190 -0
  124. package/skills/launch/SKILL.md +330 -0
  125. package/skills/logic-guardian/SKILL.md +240 -0
  126. package/skills/marketing/SKILL.md +229 -0
  127. package/skills/mcp-builder/SKILL.md +311 -0
  128. package/skills/onboard/SKILL.md +298 -0
  129. package/skills/perf/SKILL.md +297 -0
  130. package/skills/plan/SKILL.md +520 -0
  131. package/skills/preflight/SKILL.md +231 -0
  132. package/skills/problem-solver/SKILL.md +284 -0
  133. package/skills/rescue/SKILL.md +434 -0
  134. package/skills/research/SKILL.md +122 -0
  135. package/skills/review/SKILL.md +354 -0
  136. package/skills/review-intake/SKILL.md +222 -0
  137. package/skills/safeguard/SKILL.md +188 -0
  138. package/skills/sast/SKILL.md +190 -0
  139. package/skills/scaffold/SKILL.md +276 -0
  140. package/skills/scope-guard/SKILL.md +150 -0
  141. package/skills/scout/SKILL.md +232 -0
  142. package/skills/sentinel/SKILL.md +320 -0
  143. package/skills/sentinel-env/SKILL.md +226 -0
  144. package/skills/sequential-thinking/SKILL.md +234 -0
  145. package/skills/session-bridge/SKILL.md +287 -0
  146. package/skills/skill-forge/SKILL.md +317 -0
  147. package/skills/skill-router/SKILL.md +267 -0
  148. package/skills/surgeon/SKILL.md +203 -0
  149. package/skills/team/SKILL.md +397 -0
  150. package/skills/test/SKILL.md +271 -0
  151. package/skills/trend-scout/SKILL.md +145 -0
  152. package/skills/verification/SKILL.md +201 -0
  153. package/skills/video-creator/SKILL.md +201 -0
  154. package/skills/watchdog/SKILL.md +166 -0
  155. package/skills/worktree/SKILL.md +140 -0
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: journal
3
+ description: Persistent state tracking and Architecture Decision Records across sessions. Manages progress state, module health, dependency graphs, and ADRs for any workflow.
4
+ metadata:
5
+ author: runedev
6
+ version: "0.2.0"
7
+ layer: L3
8
+ model: haiku
9
+ group: state
10
+ tools: "Read, Write, Edit, Glob, Grep"
11
+ ---
12
+
13
+ # journal
14
+
15
+ ## Purpose
16
+
17
+ Persistent state tracking and Architecture Decision Records across sessions. Journal manages the state files that allow any workflow to span multiple sessions without losing progress — rescue operations, feature development, deploy decisions, or audit findings. Separate from session-bridge which handles general context injection — journal writes durable, human-readable state that survives compaction.
18
+
19
+ ## Triggers
20
+
21
+ - Called by any skill needing decision persistence or progress tracking
22
+ - Auto-trigger: after surgeon completes a module, after deploy, after audit phases
23
+
24
+ ## Calls (outbound)
25
+
26
+ None — pure L3 state management utility.
27
+
28
+ ## Called By (inbound)
29
+
30
+ - `surgeon` (L2): update progress after each surgery session
31
+ - `rescue` (L1): read state for rescue dashboard
32
+ - `autopsy` (L2): save initial health assessment
33
+ - `cook` (L1): record key architectural decisions made during feature development
34
+ - `deploy` (L2): record deploy decision, rollback plan, and post-deploy status
35
+ - `audit` (L2): save AUDIT-REPORT.md and record health trend entry
36
+ - `incident` (L2): record incident timeline and postmortem
37
+ - `skill-forge` (L2): record skill creation decisions and rationale
38
+
39
+ ## Files Managed
40
+
41
+ ```
42
+ .rune/RESCUE-STATE.md — Human-readable rescue progress (loaded into context)
43
+ .rune/module-status.json — Machine-readable module states
44
+ .rune/dependency-graph.mmd — Mermaid diagram, color-coded by health
45
+ .rune/adr/ — Architecture Decision Records (one per decision)
46
+ ```
47
+
48
+ ## Execution
49
+
50
+ ### Step 1 — Load state
51
+
52
+ Use `Read` to load current rescue state:
53
+
54
+ ```
55
+ Read: .rune/RESCUE-STATE.md
56
+ Read: .rune/module-status.json
57
+ ```
58
+
59
+ If either file does not exist, initialize it with an empty template:
60
+
61
+ - `RESCUE-STATE.md`: create with header `# Rescue State\n\n**Started**: [date]\n**Phase**: 1\n`
62
+ - `module-status.json`: create with `{ "modules": [], "lastUpdated": "[iso-date]" }`
63
+
64
+ Parse `module-status.json` to extract current module states and health scores.
65
+
66
+ ### Step 2 — Update progress
67
+
68
+ For each module that was completed during this session:
69
+
70
+ 1. Locate the module entry in the parsed `module-status.json`
71
+ 2. Update its fields:
72
+ - `status`: set to `"complete"` (or `"in-progress"` / `"blocked"` as appropriate)
73
+ - `healthScore`: set to the post-surgery score (0-100)
74
+ - `completedAt`: set to current ISO timestamp
75
+ 3. Mark the active module pointer in `RESCUE-STATE.md` — update the `**Current Module**` line to the next pending module
76
+
77
+ Use `Write` to save the updated `module-status.json`.
78
+
79
+ Use `Edit` to update the relevant lines in `RESCUE-STATE.md` (current phase, current module, counts of completed vs pending).
80
+
81
+ ### Step 3 — Record decisions
82
+
83
+ For each architectural decision or trade-off made during this session (applies to any workflow — feature development, deploy, rescue, audit):
84
+
85
+ 1. Generate an ADR filename: `.rune/adr/ADR-[NNN]-[slug].md` where NNN is the next sequential number
86
+ 2. Use `Write` to create the ADR file with this format:
87
+
88
+ ```markdown
89
+ # ADR-[NNN]: [Decision Title]
90
+
91
+ **Date**: [YYYY-MM-DD]
92
+ **Status**: Accepted
93
+ **Workflow**: [rescue | cook | deploy | audit | other]
94
+ **Scope**: [affected module, feature, or system area]
95
+
96
+ ## Context
97
+ [Why this decision was needed — what problem or trade-off prompted it]
98
+
99
+ ## Decision
100
+ [What was decided — be specific, not "we chose X" but "we chose X over Y"]
101
+
102
+ ## Rationale
103
+ [Why this approach over alternatives — cite specific constraints or evidence]
104
+
105
+ ## Consequences
106
+ [Impact on files/modules/future work — include rollback path if relevant]
107
+
108
+ ## Rejected Alternatives
109
+ [List what was considered but NOT chosen, and why. This prevents future sessions from re-visiting dead ends.]
110
+ - **[Alternative A]**: Rejected because [specific reason — constraint, performance, complexity]
111
+ - **[Alternative B]**: Rejected because [specific reason]. May reconsider if [condition changes].
112
+ ```
113
+
114
+ ### Step 4 — Update dependency graph
115
+
116
+ If any module dependencies changed during this session (new imports, removed dependencies, refactored interfaces):
117
+
118
+ Use `Read` on `.rune/dependency-graph.mmd` to load the current Mermaid diagram.
119
+
120
+ Use `Edit` to update the affected node entries:
121
+ - Change node color/style to reflect new health status (e.g., `style ModuleName fill:#00d084` for healthy, `fill:#ff6b6b` for broken)
122
+ - Add or remove edges as dependencies changed
123
+
124
+ Use `Write` to save the updated `.rune/dependency-graph.mmd`.
125
+
126
+ ### Step 5 — Save state
127
+
128
+ Use `Write` to finalize any remaining state file changes not already saved in Steps 2-4.
129
+
130
+ Confirm all four managed files are consistent:
131
+ - `RESCUE-STATE.md` reflects current phase and module
132
+ - `module-status.json` has updated scores and timestamps
133
+ - ADR files exist for all decisions made
134
+ - `dependency-graph.mmd` reflects current module relationships
135
+
136
+ ### Step 6 — Report
137
+
138
+ Emit the journal update summary to the calling skill.
139
+
140
+ ## Output Format
141
+
142
+ ```
143
+ ## Journal Update
144
+ - **Phase**: [current rescue phase]
145
+ - **Module**: [current module]
146
+ - **Health**: [before] → [after]
147
+ - **ADRs Written**: [count]
148
+ - **Files Updated**: [list of .rune/ files modified]
149
+ - **Next Module**: [next in queue, or "rescue complete"]
150
+ ```
151
+
152
+ ## Context Recovery (new session)
153
+
154
+ ```
155
+ 1. Read .rune/RESCUE-STATE.md → full rescue history
156
+ 2. Read .rune/module-status.json → module states and health scores
157
+ 3. Read git log → latest changes since last session
158
+ 4. Read CLAUDE.md → project conventions
159
+ → Result: Zero context loss across rescue sessions
160
+ ```
161
+
162
+ ## Constraints
163
+
164
+ 1. MUST record decisions with rationale — not just "decided to use X"
165
+ 2. MUST timestamp all entries
166
+ 3. MUST NOT log sensitive data (secrets, tokens, credentials)
167
+ 4. MUST work for any workflow — never require rescue-specific fields to be present
168
+
169
+ ## Sharp Edges
170
+
171
+ Known failure modes for this skill. Check these before declaring done.
172
+
173
+ | Failure Mode | Severity | Mitigation |
174
+ |---|---|---|
175
+ | ADR written from memory instead of actual session events | HIGH | Only record decisions that were explicitly made in this session — don't reconstruct |
176
+ | RESCUE-STATE.md initialized without content when called from non-rescue workflows | MEDIUM | If caller is not rescue/surgeon, skip RESCUE-STATE.md initialization — use progress.md instead |
177
+ | Overwriting human-written ADR content on re-run | CRITICAL | MUST check if ADR-[NNN].md exists before writing — never overwrite, increment NNN |
178
+ | Empty ADR Rationale field ("decided to use X") | MEDIUM | Constraint 1 blocks this — re-prompt for rationale before writing |
179
+
180
+ ## Done When
181
+
182
+ - All decisions from the session recorded as ADR files with rationale
183
+ - Progress state updated (module status, phase, or deploy event as appropriate)
184
+ - Dependency graph updated if module relationships changed
185
+ - Journal Update summary emitted to calling skill
186
+ - No existing ADR files overwritten
187
+
188
+ ## Cost Profile
189
+
190
+ ~200-500 tokens input, ~100-300 tokens output. Haiku. Pure file management.
@@ -0,0 +1,330 @@
1
+ ---
2
+ name: launch
3
+ description: "Deploy + marketing orchestrator. Use when user says 'launch', 'ship to production', 'deploy and announce', or 'go live'. Runs the full pipeline — pre-flight tests, deployment, live verification, marketing asset creation, and announcement."
4
+ context: fork
5
+ agent: general-purpose
6
+ disable-model-invocation: true
7
+ metadata:
8
+ author: runedev
9
+ version: "0.3.0"
10
+ layer: L1
11
+ model: sonnet
12
+ group: orchestrator
13
+ tools: "Read, Write, Edit, Bash, Glob, Grep"
14
+ ---
15
+
16
+ # launch
17
+
18
+ ## Purpose
19
+
20
+ Orchestrate the full deployment and marketing pipeline. Launch coordinates testing, deployment, live site verification, marketing asset creation, and public announcement. One command to go from "code ready" to "product live and marketed."
21
+
22
+ <HARD-GATE>
23
+ - ALL tests must pass before any deploy attempt. Zero exceptions. Block deploy if any of: tests failing, TypeScript errors present, build fails, or sentinel CRITICAL issues detected.
24
+ </HARD-GATE>
25
+
26
+ ## Triggers
27
+
28
+ - `/rune launch` — manual invocation
29
+ - Called by `team` when delegating launch tasks
30
+
31
+ ## Calls (outbound)
32
+
33
+ - `test` (L2): pre-deployment full test suite
34
+ - `audit` (L2): pre-launch health check — full 7-phase quality gate
35
+ - `deploy` (L2): push to target platform
36
+ - `incident` (L2): if post-launch health check fails → triage and contain
37
+ - `browser-pilot` (L3): verify live site screenshots and performance
38
+ - `marketing` (L2): create launch assets (landing copy, social, SEO)
39
+ - `watchdog` (L3): setup post-deploy monitoring
40
+ - `video-creator` (L3): create launch/demo video content
41
+ - L4 extension packs: domain-specific launch patterns when context matches (e.g., @rune/devops for infrastructure, @rune/ecommerce for storefront)
42
+
43
+ ## Called By (inbound)
44
+
45
+ - User: `/rune launch` direct invocation
46
+ - `team` (L1): when team delegates launch phase
47
+
48
+ ---
49
+
50
+ ## Execution
51
+
52
+ ### Step 0 — Artifact Readiness Check
53
+
54
+ Before starting the pipeline, verify that prerequisite artifacts exist. Scan using `Glob` — do NOT hardcode paths, use discovery patterns.
55
+
56
+ ```
57
+ REQUIRED ARTIFACTS:
58
+ Source code: Glob **/*.{ts,tsx,js,jsx,py,rs,go} — at least 1 match
59
+ Build config: Glob {package.json,Cargo.toml,pyproject.toml,go.mod} — at least 1 match
60
+ Tests: Glob **/*.{test,spec}.* OR **/test_*.* — at least 1 match
61
+
62
+ RECOMMENDED ARTIFACTS (warn if missing, don't block):
63
+ Design system: Glob .rune/design-system.md — if frontend project
64
+ Deploy config: Glob {vercel.json,netlify.toml,Dockerfile,fly.toml,.github/workflows/*} — any 1
65
+ README: Glob README.md
66
+ Environment: Glob .env.example OR .env.production — warn about secrets if .env found
67
+
68
+ BLOCKING CONDITIONS:
69
+ ❌ No source code found → STOP: "Nothing to deploy"
70
+ ❌ No build config found → STOP: "No project config detected — cannot determine build/deploy"
71
+ ❌ No tests found → WARN: "No tests detected — pre-flight will run build-only verification"
72
+ ```
73
+
74
+ Report artifact status before proceeding:
75
+ ```
76
+ ## Artifact Check
77
+ - Source: ✅ [N] files ([language])
78
+ - Build config: ✅ [file]
79
+ - Tests: ✅ [N] test files | ⚠️ No tests found
80
+ - Deploy config: ✅ [platform] | ⚠️ Not found (will detect in Phase 2)
81
+ - Design system: ✅ .rune/design-system.md | ⚠️ Not found (run /rune design first for UI projects)
82
+ ```
83
+
84
+ ### Step 1 — Initialize TodoWrite
85
+
86
+ ```
87
+ TodoWrite([
88
+ { content: "PRE-FLIGHT: Run full test suite and verification", status: "pending", activeForm: "Running pre-flight checks" },
89
+ { content: "DEPLOY: Detect platform and push to production", status: "pending", activeForm: "Deploying to production" },
90
+ { content: "VERIFY LIVE: Check live URL and setup monitoring", status: "pending", activeForm: "Verifying live deployment" },
91
+ { content: "MARKET: Generate landing copy and social assets", status: "pending", activeForm: "Generating marketing assets" },
92
+ { content: "ANNOUNCE: Present all marketing assets to user", status: "pending", activeForm: "Preparing announcement" }
93
+ ])
94
+ ```
95
+
96
+ ---
97
+
98
+ ### Phase 1 — PRE-FLIGHT
99
+
100
+ Mark todo[0] `in_progress`.
101
+
102
+ ```
103
+ REQUIRED SUB-SKILL: rune:verification
104
+ → Invoke `verification` with scope: "full".
105
+ → verification runs: type check, lint, unit tests, integration tests, build.
106
+ → Capture: passed count, failed count, coverage %, build output.
107
+ ```
108
+
109
+ <HARD-GATE>
110
+ Block deploy if ANY of:
111
+ [ ] Tests failing (failed count > 0)
112
+ [ ] TypeScript errors present
113
+ [ ] Build fails
114
+ [ ] sentinel CRITICAL issues detected (invoke rune:sentinel if not already run)
115
+
116
+ If any check fails:
117
+ → STOP immediately
118
+ → Report: "PRE-FLIGHT FAILED — deploy blocked"
119
+ → List all failures with file + line references
120
+ → Do NOT proceed to Phase 2
121
+ </HARD-GATE>
122
+
123
+ Mark todo[0] `completed` only when ALL checks pass.
124
+
125
+ ---
126
+
127
+ ### Phase 2 — DEPLOY
128
+
129
+ Mark todo[1] `in_progress`.
130
+
131
+ **2a. Detect deployment platform.**
132
+
133
+ ```
134
+ Bash: ls package.json
135
+ Read: package.json (check "scripts" for deploy, build, start commands)
136
+
137
+ Platform detection (in order):
138
+ 1. Check package.json scripts for "vercel" → platform = Vercel
139
+ 2. Check package.json scripts for "netlify" → platform = Netlify
140
+ 3. Check for vercel.json or .vercel/ dir → platform = Vercel
141
+ 4. Check for netlify.toml → platform = Netlify
142
+ 5. Check for Dockerfile or fly.toml → platform = custom/fly.io
143
+ 6. Fallback: ask user for deploy command before continuing
144
+ ```
145
+
146
+ **2b. Execute deploy command.**
147
+
148
+ ```
149
+ Vercel:
150
+ Bash: npx vercel --prod
151
+ Capture: deployment URL from stdout
152
+
153
+ Netlify:
154
+ Bash: npx netlify deploy --prod --dir=[build_output_dir]
155
+ Capture: deployment URL from stdout
156
+
157
+ Custom (package.json script):
158
+ Bash: npm run deploy
159
+ Capture: deployment URL or status from stdout
160
+
161
+ Fly.io:
162
+ Bash: flyctl deploy
163
+ Capture: deployment URL from stdout
164
+ ```
165
+
166
+ ```
167
+ Error recovery:
168
+ If deploy command exits non-zero:
169
+ → Capture full stderr
170
+ → Report: "DEPLOY FAILED: [error summary]"
171
+ → Do NOT proceed to Phase 3
172
+ → Present raw error to user for diagnosis
173
+ ```
174
+
175
+ Mark todo[1] `completed` when deploy returns a live URL.
176
+
177
+ ---
178
+
179
+ ### Phase 3 — VERIFY LIVE
180
+
181
+ Mark todo[2] `in_progress`.
182
+
183
+ **3a. Verify live site.**
184
+
185
+ ```
186
+ REQUIRED SUB-SKILL: rune:browser-pilot
187
+ → Invoke `browser-pilot` with the deployed URL.
188
+ → browser-pilot checks: page loads (HTTP 200), no console errors, critical UI elements visible.
189
+ → Capture: screenshot, status code, load time, any JS errors.
190
+ ```
191
+
192
+ ```
193
+ Error recovery:
194
+ If browser-pilot returns non-200 or JS errors:
195
+ → Report: "LIVE VERIFY FAILED: [details]"
196
+ → Do NOT proceed to Phase 4
197
+ → Present screenshot + error log to user
198
+ ```
199
+
200
+ **3b. Setup monitoring.**
201
+
202
+ ```
203
+ REQUIRED SUB-SKILL: rune:watchdog
204
+ → Invoke `watchdog` with: url=[deployed URL], interval=5min, alert_on=[5xx, timeout].
205
+ → watchdog configures health check endpoint monitoring.
206
+ → Capture: monitoring confirmation + health endpoint path.
207
+ ```
208
+
209
+ Mark todo[2] `completed` when live verification passes and monitoring is active.
210
+
211
+ ---
212
+
213
+ ### Phase 4 — MARKET
214
+
215
+ Mark todo[3] `in_progress`.
216
+
217
+ **4a. Generate marketing assets.**
218
+
219
+ ```
220
+ REQUIRED SUB-SKILL: rune:marketing
221
+ → Invoke `marketing` with: project context, deployed URL, key features.
222
+ → marketing generates:
223
+ - Landing page hero copy (headline, subheadline, CTA)
224
+ - Twitter/X announcement thread (3-5 tweets)
225
+ - LinkedIn post
226
+ - Product Hunt tagline + description
227
+ - SEO meta tags (title, description, og:image alt)
228
+ → Capture: all generated copy as structured output.
229
+ ```
230
+
231
+ **4b. Optional — launch video.**
232
+
233
+ ```
234
+ If user requested video content:
235
+ REQUIRED SUB-SKILL: rune:video-creator
236
+ → Invoke `video-creator` with: deployed URL, feature list, target platform.
237
+ → Capture: video script + asset manifest.
238
+ ```
239
+
240
+ Mark todo[3] `completed` when all requested assets are generated.
241
+
242
+ ---
243
+
244
+ ### Phase 5 — ANNOUNCE
245
+
246
+ Mark todo[4] `in_progress`.
247
+
248
+ Present all assets to user in structured format. Do not auto-publish — user approves before posting.
249
+
250
+ ```
251
+ Present:
252
+ - Deployed URL (clickable)
253
+ - Monitoring status
254
+ - All marketing copy blocks (ready to copy-paste)
255
+ - Video script (if generated)
256
+ - Next steps checklist
257
+ ```
258
+
259
+ Mark todo[4] `completed`.
260
+
261
+ ---
262
+
263
+ ## Constraints
264
+
265
+ 1. MUST pass ALL tests before any deploy attempt — zero exceptions
266
+ 2. MUST pass sentinel security scan before deploy — no CRITICAL findings allowed
267
+ 3. MUST have rollback plan documented before deploying to production
268
+ 4. MUST NOT deploy and run marketing simultaneously — deploy first, verify, then market
269
+ 5. MUST verify deploy is live and healthy before triggering marketing skills
270
+
271
+ ## Mesh Gates
272
+
273
+ | Gate | Requires | If Missing |
274
+ |------|----------|------------|
275
+ | Test Gate | verification output showing all green | Run rune:verification first |
276
+ | Security Gate | sentinel output with no CRITICAL findings | Run rune:sentinel first |
277
+ | Deploy Gate | Successful deploy confirmation before marketing | Deploy first |
278
+
279
+ ## Output Format
280
+
281
+ ```
282
+ ## Launch Report
283
+ - **Status**: live | failed | partial
284
+ - **URL**: [deployed URL]
285
+ - **Tests**: [passed]/[total]
286
+
287
+ ### Deployment
288
+ - Platform: [Vercel | Netlify | custom]
289
+ - Build: [success | failed]
290
+ - URL: [live URL]
291
+
292
+ ### Monitoring
293
+ - Health endpoint: [path]
294
+ - Check interval: 5min
295
+ - Watchdog: active | failed
296
+
297
+ ### Marketing Assets
298
+ - Hero copy: [ready | skipped]
299
+ - Twitter thread: [ready | skipped]
300
+ - LinkedIn post: [ready | skipped]
301
+ - Product Hunt: [ready | skipped]
302
+ - SEO meta: [ready | skipped]
303
+ - Launch video: [ready | skipped]
304
+ ```
305
+
306
+ ## Sharp Edges
307
+
308
+ Known failure modes for this skill. Check these before declaring done.
309
+
310
+ | Failure Mode | Severity | Mitigation |
311
+ |---|---|---|
312
+ | Attempting deploy with failing tests or TypeScript errors | CRITICAL | HARD-GATE blocks this — pre-flight must be 100% green |
313
+ | Running marketing before deploy verified live | HIGH | Constraint 4: deploy → verify HTTP 200 → THEN market. Never simultaneous |
314
+ | No rollback plan before production deploy | MEDIUM | Constraint 3: document rollback strategy before running deploy command |
315
+ | Platform auto-detected incorrectly (wrong deploy command) | MEDIUM | Verify platform config files before running — ask if ambiguous |
316
+ | Marketing assets generated from assumptions rather than scout output | MEDIUM | Step 1 requires scout to run — copy based on actual features, not assumptions |
317
+
318
+ ## Done When
319
+
320
+ - Pre-flight PASS: all tests, types, lint, build, and sentinel green
321
+ - Deploy command succeeded with live URL captured
322
+ - Live site returns HTTP 200 (curl or browser-pilot confirmed)
323
+ - watchdog monitoring active on deployed URL
324
+ - All requested marketing assets generated (or skipped with reason)
325
+ - User presented with all assets before any publishing
326
+ - Launch Report emitted with URL, monitoring status, and asset list
327
+
328
+ ## Cost Profile
329
+
330
+ ~$0.08-0.15 per launch. Sonnet for coordination, delegates to haiku for scanning.