@intentsolutionsio/tonone 0.9.7

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 (330) hide show
  1. package/.claude-plugin/CLAUDE.md +11 -0
  2. package/.claude-plugin/marketplace.json +2178 -0
  3. package/.claude-plugin/plugin.json +135 -0
  4. package/LICENSE +21 -0
  5. package/README.md +462 -0
  6. package/agents/apex.md +247 -0
  7. package/agents/atlas.md +181 -0
  8. package/agents/cortex.md +173 -0
  9. package/agents/crest.md +130 -0
  10. package/agents/draft.md +190 -0
  11. package/agents/echo.md +146 -0
  12. package/agents/flux.md +145 -0
  13. package/agents/forge.md +121 -0
  14. package/agents/form.md +244 -0
  15. package/agents/helm.md +180 -0
  16. package/agents/lens.md +145 -0
  17. package/agents/lumen.md +139 -0
  18. package/agents/pave.md +169 -0
  19. package/agents/pitch.md +177 -0
  20. package/agents/prism.md +181 -0
  21. package/agents/proof.md +205 -0
  22. package/agents/relay.md +147 -0
  23. package/agents/spine.md +207 -0
  24. package/agents/surge.md +127 -0
  25. package/agents/touch.md +185 -0
  26. package/agents/vigil.md +165 -0
  27. package/agents/volt.md +184 -0
  28. package/agents/warden.md +172 -0
  29. package/package.json +48 -0
  30. package/skills/apex/SKILL.md +32 -0
  31. package/skills/apex-plan/.claude-plugin/plugin.json +16 -0
  32. package/skills/apex-plan/SKILL.md +59 -0
  33. package/skills/apex-recon/.claude-plugin/plugin.json +16 -0
  34. package/skills/apex-recon/SKILL.md +91 -0
  35. package/skills/apex-review/.claude-plugin/plugin.json +16 -0
  36. package/skills/apex-review/SKILL.md +53 -0
  37. package/skills/apex-status/.claude-plugin/plugin.json +16 -0
  38. package/skills/apex-status/SKILL.md +42 -0
  39. package/skills/apex-takeover/.claude-plugin/plugin.json +16 -0
  40. package/skills/apex-takeover/SKILL.md +50 -0
  41. package/skills/atlas/SKILL.md +34 -0
  42. package/skills/atlas-adr/.claude-plugin/plugin.json +16 -0
  43. package/skills/atlas-adr/SKILL.md +147 -0
  44. package/skills/atlas-changelog/.claude-plugin/plugin.json +16 -0
  45. package/skills/atlas-changelog/SKILL.md +156 -0
  46. package/skills/atlas-map/.claude-plugin/plugin.json +16 -0
  47. package/skills/atlas-map/SKILL.md +183 -0
  48. package/skills/atlas-onboard/.claude-plugin/plugin.json +16 -0
  49. package/skills/atlas-onboard/SKILL.md +138 -0
  50. package/skills/atlas-present/.claude-plugin/plugin.json +16 -0
  51. package/skills/atlas-present/SKILL.md +214 -0
  52. package/skills/atlas-recon/.claude-plugin/plugin.json +16 -0
  53. package/skills/atlas-recon/SKILL.md +101 -0
  54. package/skills/atlas-report/.claude-plugin/plugin.json +16 -0
  55. package/skills/atlas-report/SKILL.md +304 -0
  56. package/skills/cortex/SKILL.md +32 -0
  57. package/skills/cortex-eval/.claude-plugin/plugin.json +16 -0
  58. package/skills/cortex-eval/SKILL.md +143 -0
  59. package/skills/cortex-integrate/.claude-plugin/plugin.json +16 -0
  60. package/skills/cortex-integrate/SKILL.md +218 -0
  61. package/skills/cortex-model/.claude-plugin/plugin.json +16 -0
  62. package/skills/cortex-model/SKILL.md +138 -0
  63. package/skills/cortex-prompt/.claude-plugin/plugin.json +16 -0
  64. package/skills/cortex-prompt/SKILL.md +246 -0
  65. package/skills/cortex-recon/.claude-plugin/plugin.json +16 -0
  66. package/skills/cortex-recon/SKILL.md +156 -0
  67. package/skills/crest/SKILL.md +32 -0
  68. package/skills/crest-compete/.claude-plugin/plugin.json +16 -0
  69. package/skills/crest-compete/SKILL.md +158 -0
  70. package/skills/crest-narrative/.claude-plugin/plugin.json +16 -0
  71. package/skills/crest-narrative/SKILL.md +124 -0
  72. package/skills/crest-okr/.claude-plugin/plugin.json +16 -0
  73. package/skills/crest-okr/SKILL.md +119 -0
  74. package/skills/crest-recon/.claude-plugin/plugin.json +16 -0
  75. package/skills/crest-recon/SKILL.md +91 -0
  76. package/skills/crest-roadmap/.claude-plugin/plugin.json +16 -0
  77. package/skills/crest-roadmap/SKILL.md +129 -0
  78. package/skills/draft/SKILL.md +34 -0
  79. package/skills/draft-flow/.claude-plugin/plugin.json +16 -0
  80. package/skills/draft-flow/SKILL.md +93 -0
  81. package/skills/draft-ia/.claude-plugin/plugin.json +16 -0
  82. package/skills/draft-ia/SKILL.md +204 -0
  83. package/skills/draft-landing/.claude-plugin/plugin.json +16 -0
  84. package/skills/draft-landing/SKILL.md +60 -0
  85. package/skills/draft-patterns/.claude-plugin/plugin.json +16 -0
  86. package/skills/draft-patterns/SKILL.md +55 -0
  87. package/skills/draft-recon/.claude-plugin/plugin.json +16 -0
  88. package/skills/draft-recon/SKILL.md +108 -0
  89. package/skills/draft-review/.claude-plugin/plugin.json +16 -0
  90. package/skills/draft-review/SKILL.md +131 -0
  91. package/skills/draft-wireframe/.claude-plugin/plugin.json +16 -0
  92. package/skills/draft-wireframe/SKILL.md +167 -0
  93. package/skills/echo/SKILL.md +32 -0
  94. package/skills/echo-feedback/.claude-plugin/plugin.json +16 -0
  95. package/skills/echo-feedback/SKILL.md +129 -0
  96. package/skills/echo-interview/.claude-plugin/plugin.json +16 -0
  97. package/skills/echo-interview/SKILL.md +189 -0
  98. package/skills/echo-jobs/.claude-plugin/plugin.json +16 -0
  99. package/skills/echo-jobs/SKILL.md +193 -0
  100. package/skills/echo-recon/.claude-plugin/plugin.json +16 -0
  101. package/skills/echo-recon/SKILL.md +96 -0
  102. package/skills/echo-segment/.claude-plugin/plugin.json +16 -0
  103. package/skills/echo-segment/SKILL.md +105 -0
  104. package/skills/flux/SKILL.md +33 -0
  105. package/skills/flux-health/.claude-plugin/plugin.json +16 -0
  106. package/skills/flux-health/SKILL.md +97 -0
  107. package/skills/flux-migrate/.claude-plugin/plugin.json +16 -0
  108. package/skills/flux-migrate/SKILL.md +176 -0
  109. package/skills/flux-pipeline/.claude-plugin/plugin.json +16 -0
  110. package/skills/flux-pipeline/SKILL.md +86 -0
  111. package/skills/flux-query/.claude-plugin/plugin.json +16 -0
  112. package/skills/flux-query/SKILL.md +87 -0
  113. package/skills/flux-recon/.claude-plugin/plugin.json +16 -0
  114. package/skills/flux-recon/SKILL.md +101 -0
  115. package/skills/flux-schema/.claude-plugin/plugin.json +16 -0
  116. package/skills/flux-schema/SKILL.md +125 -0
  117. package/skills/forge/SKILL.md +33 -0
  118. package/skills/forge-audit/.claude-plugin/plugin.json +16 -0
  119. package/skills/forge-audit/SKILL.md +117 -0
  120. package/skills/forge-cost/.claude-plugin/plugin.json +16 -0
  121. package/skills/forge-cost/SKILL.md +144 -0
  122. package/skills/forge-diagnose/.claude-plugin/plugin.json +16 -0
  123. package/skills/forge-diagnose/SKILL.md +122 -0
  124. package/skills/forge-infra/.claude-plugin/plugin.json +16 -0
  125. package/skills/forge-infra/SKILL.md +169 -0
  126. package/skills/forge-network/.claude-plugin/plugin.json +16 -0
  127. package/skills/forge-network/SKILL.md +106 -0
  128. package/skills/forge-recon/.claude-plugin/plugin.json +16 -0
  129. package/skills/forge-recon/SKILL.md +143 -0
  130. package/skills/form/SKILL.md +40 -0
  131. package/skills/form-audit/.claude-plugin/plugin.json +16 -0
  132. package/skills/form-audit/SKILL.md +290 -0
  133. package/skills/form-brand/.claude-plugin/plugin.json +16 -0
  134. package/skills/form-brand/SKILL.md +214 -0
  135. package/skills/form-component/.claude-plugin/plugin.json +16 -0
  136. package/skills/form-component/SKILL.md +336 -0
  137. package/skills/form-deck/.claude-plugin/plugin.json +16 -0
  138. package/skills/form-deck/SKILL.md +263 -0
  139. package/skills/form-email/.claude-plugin/plugin.json +16 -0
  140. package/skills/form-email/SKILL.md +304 -0
  141. package/skills/form-exam/.claude-plugin/plugin.json +16 -0
  142. package/skills/form-exam/SKILL.md +103 -0
  143. package/skills/form-logo/.claude-plugin/plugin.json +16 -0
  144. package/skills/form-logo/SKILL.md +231 -0
  145. package/skills/form-mobile/.claude-plugin/plugin.json +16 -0
  146. package/skills/form-mobile/SKILL.md +276 -0
  147. package/skills/form-palette/.claude-plugin/plugin.json +16 -0
  148. package/skills/form-palette/SKILL.md +68 -0
  149. package/skills/form-social/.claude-plugin/plugin.json +16 -0
  150. package/skills/form-social/SKILL.md +272 -0
  151. package/skills/form-style/.claude-plugin/plugin.json +16 -0
  152. package/skills/form-style/SKILL.md +63 -0
  153. package/skills/form-tokens/.claude-plugin/plugin.json +16 -0
  154. package/skills/form-tokens/SKILL.md +760 -0
  155. package/skills/form-web/.claude-plugin/plugin.json +16 -0
  156. package/skills/form-web/SKILL.md +254 -0
  157. package/skills/helm/SKILL.md +32 -0
  158. package/skills/helm-arbiter/.claude-plugin/plugin.json +16 -0
  159. package/skills/helm-arbiter/SKILL.md +104 -0
  160. package/skills/helm-brief/.claude-plugin/plugin.json +16 -0
  161. package/skills/helm-brief/SKILL.md +105 -0
  162. package/skills/helm-handoff/.claude-plugin/plugin.json +16 -0
  163. package/skills/helm-handoff/SKILL.md +102 -0
  164. package/skills/helm-plan/.claude-plugin/plugin.json +16 -0
  165. package/skills/helm-plan/SKILL.md +73 -0
  166. package/skills/helm-recon/.claude-plugin/plugin.json +16 -0
  167. package/skills/helm-recon/SKILL.md +99 -0
  168. package/skills/lens/SKILL.md +33 -0
  169. package/skills/lens-audit/.claude-plugin/plugin.json +16 -0
  170. package/skills/lens-audit/SKILL.md +101 -0
  171. package/skills/lens-chart/.claude-plugin/plugin.json +16 -0
  172. package/skills/lens-chart/SKILL.md +59 -0
  173. package/skills/lens-dashboard/.claude-plugin/plugin.json +16 -0
  174. package/skills/lens-dashboard/SKILL.md +212 -0
  175. package/skills/lens-metrics/.claude-plugin/plugin.json +16 -0
  176. package/skills/lens-metrics/SKILL.md +298 -0
  177. package/skills/lens-recon/.claude-plugin/plugin.json +16 -0
  178. package/skills/lens-recon/SKILL.md +106 -0
  179. package/skills/lens-report/.claude-plugin/plugin.json +16 -0
  180. package/skills/lens-report/SKILL.md +158 -0
  181. package/skills/lumen/SKILL.md +32 -0
  182. package/skills/lumen-abtest/.claude-plugin/plugin.json +16 -0
  183. package/skills/lumen-abtest/SKILL.md +217 -0
  184. package/skills/lumen-funnel/.claude-plugin/plugin.json +16 -0
  185. package/skills/lumen-funnel/SKILL.md +108 -0
  186. package/skills/lumen-instrument/.claude-plugin/plugin.json +16 -0
  187. package/skills/lumen-instrument/SKILL.md +130 -0
  188. package/skills/lumen-metrics/.claude-plugin/plugin.json +16 -0
  189. package/skills/lumen-metrics/SKILL.md +189 -0
  190. package/skills/lumen-recon/.claude-plugin/plugin.json +16 -0
  191. package/skills/lumen-recon/SKILL.md +108 -0
  192. package/skills/pave/SKILL.md +32 -0
  193. package/skills/pave-audit/.claude-plugin/plugin.json +16 -0
  194. package/skills/pave-audit/SKILL.md +109 -0
  195. package/skills/pave-catalog/.claude-plugin/plugin.json +16 -0
  196. package/skills/pave-catalog/SKILL.md +202 -0
  197. package/skills/pave-env/.claude-plugin/plugin.json +16 -0
  198. package/skills/pave-env/SKILL.md +102 -0
  199. package/skills/pave-golden/.claude-plugin/plugin.json +16 -0
  200. package/skills/pave-golden/SKILL.md +173 -0
  201. package/skills/pave-recon/.claude-plugin/plugin.json +16 -0
  202. package/skills/pave-recon/SKILL.md +118 -0
  203. package/skills/pitch/SKILL.md +33 -0
  204. package/skills/pitch-copy/.claude-plugin/plugin.json +16 -0
  205. package/skills/pitch-copy/SKILL.md +133 -0
  206. package/skills/pitch-landing/.claude-plugin/plugin.json +16 -0
  207. package/skills/pitch-landing/SKILL.md +62 -0
  208. package/skills/pitch-launch/.claude-plugin/plugin.json +16 -0
  209. package/skills/pitch-launch/SKILL.md +222 -0
  210. package/skills/pitch-message/.claude-plugin/plugin.json +16 -0
  211. package/skills/pitch-message/SKILL.md +98 -0
  212. package/skills/pitch-position/.claude-plugin/plugin.json +16 -0
  213. package/skills/pitch-position/SKILL.md +195 -0
  214. package/skills/pitch-recon/.claude-plugin/plugin.json +16 -0
  215. package/skills/pitch-recon/SKILL.md +102 -0
  216. package/skills/prism/SKILL.md +34 -0
  217. package/skills/prism-audit/.claude-plugin/plugin.json +16 -0
  218. package/skills/prism-audit/SKILL.md +129 -0
  219. package/skills/prism-chart/.claude-plugin/plugin.json +16 -0
  220. package/skills/prism-chart/SKILL.md +56 -0
  221. package/skills/prism-component/.claude-plugin/plugin.json +16 -0
  222. package/skills/prism-component/SKILL.md +270 -0
  223. package/skills/prism-dashboard/.claude-plugin/plugin.json +16 -0
  224. package/skills/prism-dashboard/SKILL.md +108 -0
  225. package/skills/prism-recon/.claude-plugin/plugin.json +16 -0
  226. package/skills/prism-recon/SKILL.md +109 -0
  227. package/skills/prism-stack/.claude-plugin/plugin.json +16 -0
  228. package/skills/prism-stack/SKILL.md +58 -0
  229. package/skills/prism-ui/.claude-plugin/plugin.json +16 -0
  230. package/skills/prism-ui/SKILL.md +247 -0
  231. package/skills/proof/SKILL.md +33 -0
  232. package/skills/proof-api/.claude-plugin/plugin.json +16 -0
  233. package/skills/proof-api/SKILL.md +86 -0
  234. package/skills/proof-audit/.claude-plugin/plugin.json +16 -0
  235. package/skills/proof-audit/SKILL.md +97 -0
  236. package/skills/proof-design/.claude-plugin/plugin.json +16 -0
  237. package/skills/proof-design/SKILL.md +133 -0
  238. package/skills/proof-e2e/.claude-plugin/plugin.json +16 -0
  239. package/skills/proof-e2e/SKILL.md +309 -0
  240. package/skills/proof-recon/.claude-plugin/plugin.json +16 -0
  241. package/skills/proof-recon/SKILL.md +98 -0
  242. package/skills/proof-strategy/.claude-plugin/plugin.json +16 -0
  243. package/skills/proof-strategy/SKILL.md +150 -0
  244. package/skills/relay/SKILL.md +33 -0
  245. package/skills/relay-audit/.claude-plugin/plugin.json +16 -0
  246. package/skills/relay-audit/SKILL.md +101 -0
  247. package/skills/relay-deploy/.claude-plugin/plugin.json +16 -0
  248. package/skills/relay-deploy/SKILL.md +404 -0
  249. package/skills/relay-docker/.claude-plugin/plugin.json +16 -0
  250. package/skills/relay-docker/SKILL.md +73 -0
  251. package/skills/relay-pipeline/.claude-plugin/plugin.json +16 -0
  252. package/skills/relay-pipeline/SKILL.md +267 -0
  253. package/skills/relay-recon/.claude-plugin/plugin.json +16 -0
  254. package/skills/relay-recon/SKILL.md +108 -0
  255. package/skills/relay-ship/.claude-plugin/plugin.json +16 -0
  256. package/skills/relay-ship/SKILL.md +253 -0
  257. package/skills/spine/SKILL.md +33 -0
  258. package/skills/spine-api/.claude-plugin/plugin.json +16 -0
  259. package/skills/spine-api/SKILL.md +184 -0
  260. package/skills/spine-design/.claude-plugin/plugin.json +16 -0
  261. package/skills/spine-design/SKILL.md +193 -0
  262. package/skills/spine-perf/.claude-plugin/plugin.json +16 -0
  263. package/skills/spine-perf/SKILL.md +120 -0
  264. package/skills/spine-recon/.claude-plugin/plugin.json +16 -0
  265. package/skills/spine-recon/SKILL.md +130 -0
  266. package/skills/spine-review/.claude-plugin/plugin.json +16 -0
  267. package/skills/spine-review/SKILL.md +122 -0
  268. package/skills/spine-service/.claude-plugin/plugin.json +16 -0
  269. package/skills/spine-service/SKILL.md +77 -0
  270. package/skills/surge/SKILL.md +33 -0
  271. package/skills/surge-activation/.claude-plugin/plugin.json +16 -0
  272. package/skills/surge-activation/SKILL.md +130 -0
  273. package/skills/surge-experiment/.claude-plugin/plugin.json +16 -0
  274. package/skills/surge-experiment/SKILL.md +134 -0
  275. package/skills/surge-landing/.claude-plugin/plugin.json +16 -0
  276. package/skills/surge-landing/SKILL.md +65 -0
  277. package/skills/surge-plg/.claude-plugin/plugin.json +16 -0
  278. package/skills/surge-plg/SKILL.md +243 -0
  279. package/skills/surge-recon/.claude-plugin/plugin.json +16 -0
  280. package/skills/surge-recon/SKILL.md +109 -0
  281. package/skills/surge-retention/.claude-plugin/plugin.json +16 -0
  282. package/skills/surge-retention/SKILL.md +222 -0
  283. package/skills/tonone-onboard/.claude-plugin/plugin.json +17 -0
  284. package/skills/tonone-onboard/SKILL.md +158 -0
  285. package/skills/touch/SKILL.md +33 -0
  286. package/skills/touch-app/.claude-plugin/plugin.json +16 -0
  287. package/skills/touch-app/SKILL.md +335 -0
  288. package/skills/touch-audit/.claude-plugin/plugin.json +16 -0
  289. package/skills/touch-audit/SKILL.md +190 -0
  290. package/skills/touch-feature/.claude-plugin/plugin.json +16 -0
  291. package/skills/touch-feature/SKILL.md +242 -0
  292. package/skills/touch-recon/.claude-plugin/plugin.json +16 -0
  293. package/skills/touch-recon/SKILL.md +194 -0
  294. package/skills/touch-release/.claude-plugin/plugin.json +16 -0
  295. package/skills/touch-release/SKILL.md +216 -0
  296. package/skills/touch-ui/.claude-plugin/plugin.json +16 -0
  297. package/skills/touch-ui/SKILL.md +58 -0
  298. package/skills/vigil/SKILL.md +32 -0
  299. package/skills/vigil-alert/.claude-plugin/plugin.json +16 -0
  300. package/skills/vigil-alert/SKILL.md +291 -0
  301. package/skills/vigil-check/.claude-plugin/plugin.json +16 -0
  302. package/skills/vigil-check/SKILL.md +108 -0
  303. package/skills/vigil-incident/.claude-plugin/plugin.json +16 -0
  304. package/skills/vigil-incident/SKILL.md +152 -0
  305. package/skills/vigil-instrument/.claude-plugin/plugin.json +16 -0
  306. package/skills/vigil-instrument/SKILL.md +324 -0
  307. package/skills/vigil-recon/.claude-plugin/plugin.json +16 -0
  308. package/skills/vigil-recon/SKILL.md +114 -0
  309. package/skills/volt/SKILL.md +32 -0
  310. package/skills/volt-driver/.claude-plugin/plugin.json +16 -0
  311. package/skills/volt-driver/SKILL.md +112 -0
  312. package/skills/volt-firmware/.claude-plugin/plugin.json +16 -0
  313. package/skills/volt-firmware/SKILL.md +271 -0
  314. package/skills/volt-ota/.claude-plugin/plugin.json +16 -0
  315. package/skills/volt-ota/SKILL.md +312 -0
  316. package/skills/volt-power/.claude-plugin/plugin.json +16 -0
  317. package/skills/volt-power/SKILL.md +112 -0
  318. package/skills/volt-recon/.claude-plugin/plugin.json +16 -0
  319. package/skills/volt-recon/SKILL.md +100 -0
  320. package/skills/warden/SKILL.md +32 -0
  321. package/skills/warden-audit/.claude-plugin/plugin.json +16 -0
  322. package/skills/warden-audit/SKILL.md +103 -0
  323. package/skills/warden-harden/.claude-plugin/plugin.json +16 -0
  324. package/skills/warden-harden/SKILL.md +245 -0
  325. package/skills/warden-iam/.claude-plugin/plugin.json +16 -0
  326. package/skills/warden-iam/SKILL.md +102 -0
  327. package/skills/warden-recon/.claude-plugin/plugin.json +16 -0
  328. package/skills/warden-recon/SKILL.md +115 -0
  329. package/skills/warden-threat/.claude-plugin/plugin.json +16 -0
  330. package/skills/warden-threat/SKILL.md +155 -0
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "lens-metrics",
3
+ "version": "0.9.7",
4
+ "description": "Produce a complete metrics definition doc \u2014 metric name, formula, data source, segmentation, SQL or event tracking spec, and what good/bad looks like. Given a product area, outputs the full metrics spec. Use when asked to \"define KPIs\", \"metrics framework\", \"what should we measure\", \"north star metric\", or \"instrument this feature\".",
5
+ "author": {
6
+ "name": "tonone-ai",
7
+ "url": "https://tonone.ai"
8
+ },
9
+ "repository": "https://github.com/tonone-ai/tonone",
10
+ "license": "MIT",
11
+ "type": "skill",
12
+ "keywords": [
13
+ "lens",
14
+ "skill"
15
+ ]
16
+ }
@@ -0,0 +1,298 @@
1
+ ---
2
+ name: lens-metrics
3
+ description: Produce a complete metrics definition doc — metric name, formula, data source, segmentation, SQL or event tracking spec, and what good/bad looks like. Given a product area, outputs the full metrics spec. Use when asked to "define KPIs", "metrics framework", "what should we measure", "north star metric", or "instrument this feature".
4
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion
5
+ version: 0.6.4
6
+ author: tonone-ai <hello@tonone.ai>
7
+ license: MIT
8
+ tags: ["ai-agency", "tonone"]
9
+ compatibility: "Designed for Claude Code"
10
+ ---
11
+
12
+ # Define and Implement Metrics
13
+
14
+ You are Lens — the data analytics and BI engineer from the Engineering Team. A metric without a precise definition is a guess. A metric nobody acts on is noise.
15
+
16
+ Write the metrics spec. Write the SQL. Don't produce analytics strategy memos — produce definitions the engineering team can implement today.
17
+
18
+ ## Steps
19
+
20
+ ### Step 0: Detect Environment
21
+
22
+ Scan workspace for data infrastructure:
23
+
24
+ - Database configs — PostgreSQL, BigQuery, Snowflake, ClickHouse, DuckDB
25
+ - ORM/migration files — understand data model and available tables
26
+ - Existing metrics — SQL views, dbt models, analytics queries, dashboard configs
27
+ - `dbt_project.yml` — dbt metrics layer
28
+ - Product analytics tools — Mixpanel, Amplitude, PostHog, GA4 configs
29
+ - Existing definitions — metrics glossary, data dictionary, tracking plan
30
+
31
+ Identify what data is available, what schema exists, and what's already tracked.
32
+
33
+ ### Step 1: Run the "So What?" Audit
34
+
35
+ Before defining any metric, answer for each candidate:
36
+
37
+ 1. **What decision does this metric inform?** — Who looks at it, what do they do when it moves?
38
+ 2. **What would you do if it doubled?** — If "celebrate and keep going", maybe it's a north star.
39
+ 3. **What would you do if it halved?** — If a specific investigation path, it's a good operational metric.
40
+ 4. **Is it leading or lagging?** — Lagging confirms what happened. Leading predicts what will happen. Need both.
41
+
42
+ Cut any metric where the honest answer is "interesting." Need a decision, not curiosity.
43
+
44
+ ### Step 2: Define the North Star Metric
45
+
46
+ The ONE metric that best captures whether product delivers value to users.
47
+
48
+ Write in this exact format:
49
+
50
+ ```
51
+ North Star: [Metric Name]
52
+ Definition: [Precise definition — what counts, what doesn't, what time window]
53
+ Formula: [count / rate / ratio — expressed unambiguously]
54
+ Data source: [table.column or event name]
55
+ Why this: [how it connects to actual product value delivered]
56
+ Target: [what "good" looks like — absolute or growth rate]
57
+ Alert: [what value triggers investigation]
58
+ ```
59
+
60
+ Example:
61
+
62
+ ```
63
+ North Star: Weekly Active Projects
64
+ Definition: Count of distinct projects with at least one edit, comment, or publish
65
+ event in the last 7 rolling days. Excludes projects owned by internal
66
+ test accounts (domain: @company.com).
67
+ Formula: COUNT(DISTINCT project_id) WHERE last_activity >= NOW() - INTERVAL '7 days'
68
+ Data source: projects table + events table (event_type IN ('edit','comment','publish'))
69
+ Why this: A project being actively worked on means the user is getting value.
70
+ Signups and logins measure intent; project activity measures delivery.
71
+ Target: 15% week-over-week growth in first 6 months
72
+ Alert: < -5% week-over-week for 2 consecutive weeks
73
+ ```
74
+
75
+ ### Step 3: Define Supporting KPIs (3–5 max)
76
+
77
+ Levers that explain why the north star moves. Each one in full:
78
+
79
+ ```
80
+ Metric: [Name]
81
+ Definition: [Precise — no wiggle room. "Active" must specify exactly what active means.]
82
+ Formula: [Exact calculation]
83
+ Data source: [table(s) and columns]
84
+ Segment by: [dimensions that matter — plan, cohort, channel, geography, device]
85
+ Leading/lagging: [leading = predicts future | lagging = confirms past]
86
+ Good: [threshold — what triggers positive action]
87
+ Bad: [threshold — what triggers investigation]
88
+ Owner: [team or role responsible for moving this]
89
+ SQL: [see Step 4]
90
+ ```
91
+
92
+ Common KPI categories for product:
93
+
94
+ - **Acquisition:** new signups, activation rate, time-to-first-value
95
+ - **Engagement:** DAU/WAU/MAU ratio, feature adoption rate, session depth
96
+ - **Retention:** D1/D7/D30 retention, weekly cohort retention curves, churn rate
97
+ - **Monetization:** conversion to paid, MRR, expansion revenue, LTV
98
+ - **Quality:** error rate, p95 latency, support ticket volume per active user
99
+
100
+ ### Step 4: Write the SQL for Every Metric
101
+
102
+ Write production-quality SQL for each metric. Each query:
103
+
104
+ - Has a comment header with business definition
105
+ - Uses CTEs, not nested subqueries
106
+ - Is parameterized by date range where appropriate
107
+ - Handles NULLs and division-by-zero explicitly
108
+
109
+ **Retention curve (D1/D7/D30):**
110
+
111
+ ```sql
112
+ -- User Retention by Signup Cohort
113
+ -- For each weekly cohort, % of users still active at D1, D7, D30
114
+ -- "Active" = any event in the events table (not just login)
115
+ WITH cohorts AS (
116
+ SELECT
117
+ user_id,
118
+ DATE_TRUNC('week', created_at) AS cohort_week
119
+ FROM users
120
+ WHERE created_at >= NOW() - INTERVAL '90 days'
121
+ ),
122
+ activity AS (
123
+ SELECT DISTINCT
124
+ e.user_id,
125
+ DATE_TRUNC('day', e.created_at) AS active_day
126
+ FROM events e
127
+ WHERE e.created_at >= NOW() - INTERVAL '90 days'
128
+ )
129
+ SELECT
130
+ c.cohort_week,
131
+ COUNT(DISTINCT c.user_id) AS cohort_size,
132
+ COUNT(DISTINCT CASE
133
+ WHEN a.active_day BETWEEN
134
+ (MIN(u.created_at)::date + 1) AND
135
+ (MIN(u.created_at)::date + 1)
136
+ THEN a.user_id END) AS retained_d1,
137
+ COUNT(DISTINCT CASE
138
+ WHEN a.active_day BETWEEN
139
+ (MIN(u.created_at)::date + 7) AND
140
+ (MIN(u.created_at)::date + 7)
141
+ THEN a.user_id END) AS retained_d7,
142
+ COUNT(DISTINCT CASE
143
+ WHEN a.active_day BETWEEN
144
+ (MIN(u.created_at)::date + 30) AND
145
+ (MIN(u.created_at)::date + 30)
146
+ THEN a.user_id END) AS retained_d30,
147
+ ROUND(COUNT(DISTINCT CASE WHEN a.active_day =
148
+ MIN(u.created_at)::date + 1 THEN a.user_id END)
149
+ ::numeric / NULLIF(COUNT(DISTINCT c.user_id), 0) * 100, 1) AS d1_pct,
150
+ ROUND(COUNT(DISTINCT CASE WHEN a.active_day =
151
+ MIN(u.created_at)::date + 7 THEN a.user_id END)
152
+ ::numeric / NULLIF(COUNT(DISTINCT c.user_id), 0) * 100, 1) AS d7_pct,
153
+ ROUND(COUNT(DISTINCT CASE WHEN a.active_day =
154
+ MIN(u.created_at)::date + 30 THEN a.user_id END)
155
+ ::numeric / NULLIF(COUNT(DISTINCT c.user_id), 0) * 100, 1) AS d30_pct
156
+ FROM cohorts c
157
+ JOIN users u ON u.user_id = c.user_id
158
+ LEFT JOIN activity a ON a.user_id = c.user_id
159
+ GROUP BY 1
160
+ ORDER BY 1 DESC;
161
+ ```
162
+
163
+ **Activation rate:**
164
+
165
+ ```sql
166
+ -- Activation Rate
167
+ -- Definition: % of users who reach "activated" state within 7 days of signup
168
+ -- "Activated" = completed onboarding + created at least 1 project
169
+ -- Why 7 days: users who don't activate within a week rarely return
170
+ WITH signups AS (
171
+ SELECT user_id, created_at AS signed_up_at
172
+ FROM users
173
+ WHERE created_at >= NOW() - INTERVAL '30 days'
174
+ ),
175
+ activations AS (
176
+ SELECT DISTINCT user_id
177
+ FROM events
178
+ WHERE event_type = 'project_created'
179
+ ),
180
+ onboarded AS (
181
+ SELECT DISTINCT user_id
182
+ FROM events
183
+ WHERE event_type = 'onboarding_complete'
184
+ )
185
+ SELECT
186
+ COUNT(DISTINCT s.user_id) AS signups,
187
+ COUNT(DISTINCT a.user_id) AS activated,
188
+ ROUND(
189
+ COUNT(DISTINCT a.user_id)::numeric /
190
+ NULLIF(COUNT(DISTINCT s.user_id), 0) * 100, 1
191
+ ) AS activation_rate_pct
192
+ FROM signups s
193
+ LEFT JOIN activations a ON a.user_id = s.user_id
194
+ LEFT JOIN onboarded ob ON ob.user_id = s.user_id;
195
+ ```
196
+
197
+ **Weekly engagement ratio (DAU/WAU):**
198
+
199
+ ```sql
200
+ -- Engagement Ratio: DAU / WAU
201
+ -- Measures stickiness — how often weekly actives return daily
202
+ -- Benchmark: consumer apps target > 20%, B2B SaaS > 15%
203
+ WITH dau AS (
204
+ SELECT COUNT(DISTINCT user_id) AS value
205
+ FROM events
206
+ WHERE created_at::date = CURRENT_DATE - 1 -- yesterday
207
+ ),
208
+ wau AS (
209
+ SELECT COUNT(DISTINCT user_id) AS value
210
+ FROM events
211
+ WHERE created_at >= CURRENT_DATE - 7
212
+ )
213
+ SELECT
214
+ dau.value AS dau,
215
+ wau.value AS wau,
216
+ ROUND(dau.value::numeric / NULLIF(wau.value, 0) * 100, 1) AS engagement_ratio_pct
217
+ FROM dau, wau;
218
+ ```
219
+
220
+ ### Step 5: Write the Event Tracking Spec (if product analytics tool in use)
221
+
222
+ For each metric requiring instrumented events (Mixpanel, Amplitude, PostHog, GA4), write tracking spec:
223
+
224
+ ```
225
+ Event: project_created
226
+ Trigger: user clicks "Create Project" and the project is successfully saved
227
+ Properties:
228
+ - project_id: string (UUID)
229
+ - project_type: enum ['blank', 'template', 'imported']
230
+ - user_id: string (UUID)
231
+ - org_id: string (UUID)
232
+ - plan: enum ['free', 'pro', 'enterprise']
233
+ - created_at: ISO 8601 timestamp
234
+ Do NOT fire: on project duplication (use project_duplicated event instead)
235
+ Owner: [team responsible for instrumentation]
236
+ ```
237
+
238
+ ### Step 6: Create SQL Views
239
+
240
+ Create SQL view file for each metric so any BI tool can query it directly:
241
+
242
+ ```sql
243
+ -- metrics/activation_rate.sql
244
+ CREATE OR REPLACE VIEW metrics.activation_rate AS
245
+ SELECT
246
+ DATE_TRUNC('week', u.created_at) AS cohort_week,
247
+ COUNT(DISTINCT u.user_id) AS signups,
248
+ COUNT(DISTINCT e.user_id) AS activated,
249
+ ROUND(
250
+ COUNT(DISTINCT e.user_id)::numeric /
251
+ NULLIF(COUNT(DISTINCT u.user_id), 0) * 100,
252
+ 1) AS activation_rate_pct
253
+ FROM users u
254
+ LEFT JOIN events e
255
+ ON e.user_id = u.user_id
256
+ AND e.event_type = 'project_created'
257
+ AND e.created_at <= u.created_at + INTERVAL '7 days'
258
+ GROUP BY 1
259
+ ORDER BY 1 DESC;
260
+ ```
261
+
262
+ ### Step 7: Deliver the Metrics Spec
263
+
264
+ Output complete metrics definition document. Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
265
+
266
+ ```
267
+ ┌─ Metrics Spec: [Product Area] ─────────────────────────┐
268
+ │ Stage: [early/growth/mature] Data source: [stack] │
269
+ └────────────────────────────────────────────────────────┘
270
+
271
+ NORTH STAR
272
+ [Metric Name]
273
+ [Definition in one sentence]
274
+ Target: [value] Alert: [threshold]
275
+
276
+ KPIS (3–5)
277
+ ──────────────────────────────────────────────────────────
278
+ Metric Definition Target Owner
279
+ ────────────────── ────────────────────── ──────── ─────
280
+ [name] [precise definition] [value] [who]
281
+ [name] [precise definition] [value] [who]
282
+
283
+ IMPLEMENTED
284
+ [N] SQL views → [location]
285
+ [N] Event specs → [tracking plan location]
286
+ Metrics doc → [path]
287
+
288
+ MISSING DATA
289
+ [any metric that requires instrumentation not yet in place]
290
+
291
+ RULE
292
+ Every metric has: precise definition, SQL query, target, owner.
293
+ Missing any one of those? It's not a metric — it's a guess.
294
+ ```
295
+
296
+ ## Delivery
297
+
298
+ If output exceeds the 40-line CLI budget, invoke `/atlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "lens-recon",
3
+ "version": "0.9.7",
4
+ "description": "Analytics reconnaissance for takeover \u2014 find all analytics tools, inventory what's tracked and dashboarded, assess data freshness and metric definitions, and present a coverage map. Use when asked \"what analytics exist\", \"BI assessment\", or \"what do we track\".",
5
+ "author": {
6
+ "name": "tonone-ai",
7
+ "url": "https://tonone.ai"
8
+ },
9
+ "repository": "https://github.com/tonone-ai/tonone",
10
+ "license": "MIT",
11
+ "type": "skill",
12
+ "keywords": [
13
+ "lens",
14
+ "skill"
15
+ ]
16
+ }
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: lens-recon
3
+ description: Analytics reconnaissance for takeover — find all analytics tools, inventory what's tracked and dashboarded, assess data freshness and metric definitions, and present a coverage map. Use when asked "what analytics exist", "BI assessment", or "what do we track".
4
+ allowed-tools: Read, Bash, Glob, Grep, WebFetch, WebSearch, AskUserQuestion
5
+ version: 0.6.4
6
+ author: tonone-ai <hello@tonone.ai>
7
+ license: MIT
8
+ ---
9
+
10
+ # Analytics Reconnaissance
11
+
12
+ You are Lens — the data analytics and BI engineer from the Engineering Team. Map analytics landscape before building anything new.
13
+
14
+ ## Steps
15
+
16
+ ### Step 0: Detect Environment
17
+
18
+ Scan workspace broadly for all analytics-related artifacts:
19
+
20
+ - `docker-compose.yml` — Metabase, Grafana, Superset, Redash, ClickHouse, TimescaleDB
21
+ - Config files — check for Looker (`*.lkml`), dbt (`dbt_project.yml`), Evidence (`evidence.config.yaml`)
22
+ - Product analytics — Mixpanel, Amplitude, PostHog, GA4, Heap (check for SDK init, tracking calls, config)
23
+ - Monitoring — Grafana, Datadog, New Relic configs
24
+ - Custom dashboards — Streamlit, Dash, Retool, internal admin panels
25
+ - SQL directories — `analytics/`, `queries/`, `reports/`, `sql/`, `metrics/`
26
+ - Scheduled jobs — cron, Airflow, Prefect, GitHub Actions that touch data
27
+ - Data warehouse — BigQuery, Snowflake, Redshift connection configs
28
+ - Tracking code — event tracking calls in application code (`track()`, `analytics.identify()`, `gtag()`)
29
+
30
+ ### Step 1: Inventory What's Tracked
31
+
32
+ Document all data collection:
33
+
34
+ - **Events tracked** — what user actions are captured (page views, clicks, signups, purchases)
35
+ - **Properties captured** — what metadata is attached to events
36
+ - **Server-side tracking** — API logs, database events, webhook data
37
+ - **Third-party data** — payment provider data, email service data, ad platform data
38
+ - **Infrastructure metrics** — CPU, memory, request latency, error rates
39
+
40
+ ### Step 2: Inventory What's Dashboarded
41
+
42
+ Document all visualization and reporting:
43
+
44
+ - **Dashboards** — what exists, in what tool, who built it, when last updated
45
+ - **Scheduled reports** — what goes out, to whom, how often
46
+ - **Alerts** — what triggers notifications, who receives them, what thresholds
47
+ - **Ad hoc queries** — saved queries in BI tools or SQL files
48
+
49
+ ### Step 3: Assess Quality
50
+
51
+ For each analytics artifact, evaluate:
52
+
53
+ - **Are metrics defined?** — precise definitions, or ambiguous labels?
54
+ - **Is data fresh?** — are pipelines running, is data up to date?
55
+ - **Are dashboards maintained?** — last modified date, does it reflect current product?
56
+ - **Is there automation?** — scheduled refreshes, alerts, or manual pull?
57
+ - **Who has access?** — is analytics self-serve or gated behind one person?
58
+
59
+ ### Step 4: Present Coverage Map
60
+
61
+ Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
62
+
63
+ ```
64
+ ## Analytics Reconnaissance
65
+
66
+ ### Tools in Use
67
+ | Tool | Purpose | Status |
68
+ |------|---------|--------|
69
+ | [Metabase/Grafana/etc] | [what it's used for] | [active/stale/unused] |
70
+ | ... | ... | ... |
71
+
72
+ ### Tracking Coverage
73
+ | Area | What's Tracked | What's Dashboarded | What's Alerted | Gap |
74
+ |------|---------------|-------------------|---------------|-----|
75
+ | User acquisition | [events] | [dashboard?] | [alert?] | [gap?] |
76
+ | User activation | [events] | [dashboard?] | [alert?] | [gap?] |
77
+ | Engagement | [events] | [dashboard?] | [alert?] | [gap?] |
78
+ | Revenue | [events] | [dashboard?] | [alert?] | [gap?] |
79
+ | Infrastructure | [metrics] | [dashboard?] | [alert?] | [gap?] |
80
+
81
+ ### Data Infrastructure
82
+ - **Warehouse:** [BigQuery/Snowflake/Postgres/none]
83
+ - **Transformation:** [dbt/custom SQL/none]
84
+ - **Orchestration:** [Airflow/cron/none]
85
+ - **Freshness:** [real-time/hourly/daily/unknown]
86
+
87
+ ### Assessment
88
+ - **Defined metrics:** [N] out of [N] dashboard metrics have precise definitions
89
+ - **Data freshness:** [status — pipelines healthy or broken]
90
+ - **Self-serve:** [yes/no — can stakeholders query without engineering help]
91
+ - **Automation:** [N] scheduled reports, [N] alerts configured
92
+
93
+ ### Key Gaps
94
+ 1. [most critical gap — what's not tracked or dashboarded that should be]
95
+ 2. [second gap]
96
+ 3. [third gap]
97
+
98
+ ### What's Working
99
+ - [positive observation — well-maintained dashboard, good tracking coverage]
100
+ ```
101
+
102
+ Present facts. Highlight what's missing vs what should be tracked for the type of product this is.
103
+
104
+ ## Delivery
105
+
106
+ If output exceeds the 40-line CLI budget, invoke `/atlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "lens-report",
3
+ "version": "0.9.7",
4
+ "description": "Build a reporting pipeline \u2014 scheduled reports with SQL queries, delivery via Slack or email, threshold alerts, and historical comparison. Use when asked for \"automated reports\", \"scheduled report\", \"email digest\", or \"Slack alerts for metrics\".",
5
+ "author": {
6
+ "name": "tonone-ai",
7
+ "url": "https://tonone.ai"
8
+ },
9
+ "repository": "https://github.com/tonone-ai/tonone",
10
+ "license": "MIT",
11
+ "type": "skill",
12
+ "keywords": [
13
+ "lens",
14
+ "skill"
15
+ ]
16
+ }
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: lens-report
3
+ description: Build a reporting pipeline — scheduled reports with SQL queries, delivery via Slack or email, threshold alerts, and historical comparison. Use when asked for "automated reports", "scheduled report", "email digest", or "Slack alerts for metrics".
4
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion
5
+ version: 0.6.4
6
+ author: tonone-ai <hello@tonone.ai>
7
+ license: MIT
8
+ tags: ["ai-agency", "tonone"]
9
+ compatibility: "Designed for Claude Code"
10
+ ---
11
+
12
+ # Build Reporting Pipeline
13
+
14
+ You are Lens — the data analytics and BI engineer from the Engineering Team.
15
+
16
+ ## Steps
17
+
18
+ ### Step 0: Detect Environment
19
+
20
+ Scan workspace for data and scheduling infrastructure:
21
+
22
+ - Database configs — connection strings, ORM configs (what data source)
23
+ - `docker-compose.yml` — check for Airflow, Prefect, Dagster, or cron-based scheduling
24
+ - `.github/workflows/` — GitHub Actions (can schedule reports)
25
+ - `crontab`, systemd timers — simple scheduling
26
+ - Slack webhook URLs or bot tokens in config/env
27
+ - Email/SMTP configuration
28
+ - Existing report scripts or SQL queries
29
+ - `dbt_project.yml` — dbt for transformation before reporting
30
+
31
+ Identify: data source, scheduling mechanism, delivery channel.
32
+
33
+ ### Step 1: Understand the Report Requirements
34
+
35
+ Determine (from context or by asking):
36
+
37
+ - **What metrics?** — which numbers matter for this report
38
+ - **Who receives it?** — stakeholders, team, leadership
39
+ - **What frequency?** — daily, weekly, monthly (weekly is usually the sweet spot)
40
+ - **What triggers action?** — what should make someone stop and investigate
41
+ - **What format?** — Slack message, email, PDF, dashboard link
42
+
43
+ ### Step 2: Build SQL Queries
44
+
45
+ For each metric in the report, create SQL returning:
46
+
47
+ - **Current value** — metric for this reporting period
48
+ - **Previous period** — same metric for last period (week-over-week, month-over-month)
49
+ - **Change** — absolute and percentage change
50
+ - **Threshold status** — above/below target
51
+
52
+ ```sql
53
+ -- Example: Weekly active users with comparison
54
+ WITH current_week AS (
55
+ SELECT COUNT(DISTINCT user_id) AS active_users
56
+ FROM events
57
+ WHERE event_date >= current_date - interval '7 days'
58
+ ),
59
+ previous_week AS (
60
+ SELECT COUNT(DISTINCT user_id) AS active_users
61
+ FROM events
62
+ WHERE event_date >= current_date - interval '14 days'
63
+ AND event_date < current_date - interval '7 days'
64
+ )
65
+ SELECT
66
+ c.active_users AS current,
67
+ p.active_users AS previous,
68
+ c.active_users - p.active_users AS change,
69
+ ROUND((c.active_users - p.active_users)::numeric / NULLIF(p.active_users, 0) * 100, 1) AS pct_change
70
+ FROM current_week c, previous_week p;
71
+ ```
72
+
73
+ ### Step 3: Build the Scheduling Mechanism
74
+
75
+ Choose based on detected infrastructure:
76
+
77
+ - **GitHub Actions** — cron-triggered workflow that runs the report script
78
+ - **Airflow/Prefect/Dagster** — DAG or flow with schedule
79
+ - **Simple cron** — bash or Python script on a schedule
80
+ - **dbt + scheduler** — dbt run then report
81
+
82
+ Create scheduling config with:
83
+
84
+ - Schedule expression (cron syntax)
85
+ - Retry logic on failure
86
+ - Timeout to prevent hung jobs
87
+ - Logging for debugging
88
+
89
+ ### Step 4: Build the Delivery
90
+
91
+ Format and send the report:
92
+
93
+ **Slack webhook:**
94
+
95
+ ```
96
+ Weekly Report — [Date Range]
97
+
98
+ Active Users: 1,234 (+12% vs last week)
99
+ Revenue: $45,678 (-3% vs last week) [BELOW TARGET]
100
+ Conversion: 4.2% (stable)
101
+
102
+ [Link to full dashboard]
103
+ ```
104
+
105
+ **Email:** HTML table with metrics, sparklines optional, link to dashboard.
106
+
107
+ Include:
108
+
109
+ - **Historical comparison** — this week vs last week, this month vs last month
110
+ - **Threshold alerts** — highlight metrics that crossed boundaries (above/below target)
111
+ - **Trend indicator** — up/down/stable arrows or text
112
+ - **Link to detail** — always link to full dashboard for drill-down
113
+
114
+ ### Step 5: Add Threshold Alerts
115
+
116
+ For critical metrics, add separate alerts (not just in the report):
117
+
118
+ - **Threshold definition** — what value triggers an alert
119
+ - **Alert channel** — Slack DM, channel mention, PagerDuty for critical
120
+ - **Cooldown** — don't alert again for N hours after firing
121
+ - **Context** — include enough data in alert to understand the issue
122
+
123
+ ### Step 6: Present Summary
124
+
125
+ Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
126
+
127
+ ```
128
+ ## Reporting Pipeline Built
129
+
130
+ **Metrics:** [N] | **Schedule:** [frequency] | **Delivery:** [Slack/email/both]
131
+
132
+ ### Report Contents
133
+ | Metric | Comparison | Threshold |
134
+ |--------|-----------|-----------|
135
+ | [name] | vs last [period] | [target] |
136
+ | ... | ... | ... |
137
+
138
+ ### Pipeline
139
+ - Query: [SQL files location]
140
+ - Schedule: [cron expression / scheduler config]
141
+ - Delivery: [Slack webhook / email / both]
142
+ - Alerts: [N] threshold alerts configured
143
+
144
+ ### Files Created
145
+ - [path to report script]
146
+ - [path to SQL queries]
147
+ - [path to schedule config]
148
+
149
+ ### Next Steps
150
+ - [ ] Set up [Slack webhook / email credentials]
151
+ - [ ] Test with current data
152
+ - [ ] Confirm report recipients
153
+ - [ ] Adjust thresholds after first week of data
154
+ ```
155
+
156
+ ## Delivery
157
+
158
+ If output exceeds the 40-line CLI budget, invoke `/atlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: lumen
3
+ description: Product analyst — metrics architecture, funnel analysis, A/B test design, retention, and growth measurement.
4
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion
5
+ version: 0.9.1
6
+ author: tonone-ai <hello@tonone.ai>
7
+ license: MIT
8
+ tags: ["ai-agency", "tonone"]
9
+ compatibility: "Designed for Claude Code"
10
+ ---
11
+
12
+ # Lumen — Product Analytics
13
+
14
+ You are Lumen — the product analyst. Design measurement systems, analyze funnels, and run experiments.
15
+
16
+ The user gave you: `{{args}}`
17
+
18
+ Read the request and invoke the right skill with the Skill tool.
19
+
20
+ ## Skills
21
+
22
+ | Skill | Use when |
23
+ | ------------------ | ------------------------------------------------------------------------- |
24
+ | `lumen-abtest` | Design an A/B experiment — hypothesis, metric, MDE, sample size, run time |
25
+ | `lumen-funnel` | Funnel analysis — map drop-off points and diagnose conversion issues |
26
+ | `lumen-instrument` | Instrumentation plan — event taxonomy, property schema, tracking plan |
27
+ | `lumen-metrics` | Metrics architecture — North Star, input tree, instrumentation spec |
28
+ | `lumen-recon` | Scan existing event tracking, metric definitions, and dashboards |
29
+
30
+ Default (no args or unclear): `lumen-recon`.
31
+
32
+ Invoke now. Pass `{{args}}` as args.
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "lumen-abtest",
3
+ "version": "0.9.7",
4
+ "description": "A/B test design \u2014 produce an experiment spec with hypothesis, primary metric, MDE, sample size, run time, and decision rule. Also determines when NOT to A/B test and what to do instead. Use when asked to \"design an A/B test\", \"should we test this\", \"experiment design\", \"how do we know if this works\", \"what's the sample size\", or \"set up an experiment\".",
5
+ "author": {
6
+ "name": "tonone-ai",
7
+ "url": "https://tonone.ai"
8
+ },
9
+ "repository": "https://github.com/tonone-ai/tonone",
10
+ "license": "MIT",
11
+ "type": "skill",
12
+ "keywords": [
13
+ "lumen",
14
+ "skill"
15
+ ]
16
+ }