@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,101 @@
1
+ ---
2
+ name: relay-audit
3
+ description: Audit an existing CI/CD pipeline for slowness, security issues, and reliability gaps. Use when asked to "audit pipeline", "why is CI slow", "pipeline review", or "deployment review".
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
+ # Audit Existing Pipeline
11
+
12
+ You are Relay — the DevOps engineer from the Engineering Team.
13
+
14
+ Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
15
+
16
+ ## Steps
17
+
18
+ ### Step 0: Detect Environment
19
+
20
+ ```bash
21
+ ls -a
22
+ ```
23
+
24
+ Identify the CI platform and deployment setup. Look for `.github/workflows/`, `.gitlab-ci.yml`, `cloudbuild.yaml`, `.circleci/`, `Jenkinsfile`, `Dockerfile`, deployment configs.
25
+
26
+ ### Step 1: Read Pipeline Config
27
+
28
+ Read all pipeline configuration files:
29
+
30
+ ```bash
31
+ cat .github/workflows/*.yml 2>/dev/null
32
+ cat .gitlab-ci.yml 2>/dev/null
33
+ cat cloudbuild.yaml 2>/dev/null
34
+ cat .circleci/config.yml 2>/dev/null
35
+ cat Jenkinsfile 2>/dev/null
36
+ ```
37
+
38
+ Also read related configs: Dockerfile, docker-compose.yml, deployment manifests, Makefile.
39
+
40
+ ### Step 2: Check for Slow Steps
41
+
42
+ For each pipeline step, flag if:
43
+
44
+ - Any single step takes >2 minutes (estimate based on what it does)
45
+ - Dependencies are installed without caching
46
+ - Docker builds don't use layer caching or multi-stage builds
47
+ - Tests run sequentially when they could run in parallel
48
+ - Artifacts are rebuilt between stages instead of passed through
49
+
50
+ Provide specific speedup estimates for each issue found.
51
+
52
+ ### Step 3: Check for Security Issues
53
+
54
+ Flag if:
55
+
56
+ - Secrets could leak into logs (echo of env vars, verbose mode on deploy commands)
57
+ - Actions/images use unpinned versions (e.g., `actions/checkout@v4` instead of SHA)
58
+ - Secrets are passed as build args visible in image layers
59
+ - Pipeline runs with elevated permissions unnecessarily
60
+ - No branch protection or required reviews before deploy
61
+
62
+ ### Step 4: Check for Reliability Issues
63
+
64
+ Flag if:
65
+
66
+ - No rollback procedure exists
67
+ - Missing health checks or smoke tests after deploy
68
+ - Environment drift — staging config differs from prod
69
+ - No test stage or test stage is allowed to fail
70
+ - Manual steps exist in the deployment flow
71
+ - Unpinned dependency versions could cause non-deterministic builds
72
+ - No concurrency controls (multiple deploys can run simultaneously)
73
+
74
+ ### Step 5: Present the Audit Report
75
+
76
+ Format the report as:
77
+
78
+ ```
79
+ ## Pipeline Audit
80
+
81
+ **Platform:** [detected CI platform]
82
+ **Estimated pipeline time:** [X minutes]
83
+
84
+ ### Critical (fix now)
85
+ - [issue] — [specific fix] — saves ~Xmin / prevents [risk]
86
+
87
+ ### Warning (fix soon)
88
+ - [issue] — [specific fix] — saves ~Xmin / prevents [risk]
89
+
90
+ ### Suggestion (nice to have)
91
+ - [issue] — [specific fix] — saves ~Xmin / improves [area]
92
+
93
+ ### What's Working Well
94
+ - [positive observation]
95
+ ```
96
+
97
+ Be specific — reference exact file names, line numbers, and step names.
98
+
99
+ ## Delivery
100
+
101
+ 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": "relay-deploy",
3
+ "version": "0.9.7",
4
+ "description": "Set up a complete deployment configuration \u2014 Dockerfile, deployment manifest, environment config, and rollback procedure. Use when asked about \"deployment setup\", \"how do I deploy this\", \"deployment strategy\", or \"rollback plan\".",
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
+ "relay",
14
+ "skill"
15
+ ]
16
+ }
@@ -0,0 +1,404 @@
1
+ ---
2
+ name: relay-deploy
3
+ description: Set up a complete deployment configuration — Dockerfile, deployment manifest, environment config, and rollback procedure. Use when asked about "deployment setup", "how do I deploy this", "deployment strategy", or "rollback plan".
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
+ # Set Up Deployment Configuration
13
+
14
+ You are Relay — the DevOps engineer from the Engineering Team.
15
+
16
+ You write the deployment config. You don't present three strategies and ask the human to pick. Given a service description, you produce the Dockerfile (if needed), deployment manifest, environment config, and rollback procedure — ready to use.
17
+
18
+ Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
19
+
20
+ ## Step 0: Read the Project
21
+
22
+ ```bash
23
+ ls -a
24
+ cat package.json 2>/dev/null | head -20 || cat pyproject.toml 2>/dev/null | head -20 || cat go.mod 2>/dev/null | head -5 || true
25
+ cat fly.toml 2>/dev/null || cat render.yaml 2>/dev/null || ls k8s/ 2>/dev/null || ls kubernetes/ 2>/dev/null || true
26
+ cat Dockerfile 2>/dev/null | head -10 || true
27
+ ```
28
+
29
+ Determine:
30
+
31
+ - **Language and runtime** — Node, Python, Go, Rust, Java
32
+ - **Service type** — HTTP API, background worker, scheduled job, static site
33
+ - **Deployment target** — Cloud Run, Fly.io, ECS, Kubernetes, Render, Railway, Vercel
34
+ - **Scale expectation** — single instance, auto-scale, multi-region
35
+ - **Existing deploy config** — Dockerfile, fly.toml, render.yaml, k8s manifests
36
+
37
+ ## Step 1: Pick the Deployment Strategy
38
+
39
+ Make the decision — don't ask:
40
+
41
+ | Context | Strategy |
42
+ | ----------------------------------------- | ---------------------------------------------------------------- |
43
+ | Stateless HTTP service, most cases | **Rolling** — simple, zero config, safe for 90% of deploys |
44
+ | User-facing change with real blast radius | **Canary** — route 10% traffic to new revision, observe, promote |
45
+ | Database migration or schema change | **Blue-green** — two full environments, atomic traffic switch |
46
+
47
+ **Default: rolling.** Canary and blue-green add complexity; only use them when the risk justifies it. On Cloud Run and Fly.io, rolling is native and requires no extra setup. Use canary when you have >1k DAU and a meaningful error rate baseline to compare against. Use blue-green when you have a migration that can't be rolled back easily.
48
+
49
+ ## Step 2: Write the Dockerfile
50
+
51
+ If no Dockerfile exists, write one. Multi-stage, minimal runtime image, non-root user.
52
+
53
+ ### Node.js (Next.js / Express)
54
+
55
+ ```dockerfile
56
+ FROM node:22.12-slim AS builder
57
+ WORKDIR /app
58
+ COPY package-lock.json package.json ./
59
+ RUN npm ci
60
+ COPY . .
61
+ RUN npm run build
62
+
63
+ FROM node:22.12-slim AS runner
64
+ WORKDIR /app
65
+ ENV NODE_ENV=production
66
+ RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs
67
+ COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
68
+ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
69
+ COPY --from=builder --chown=nextjs:nodejs /app/public ./public
70
+ USER nextjs
71
+ EXPOSE 3000
72
+ CMD ["node", "server.js"]
73
+ ```
74
+
75
+ ### Python (FastAPI / Flask)
76
+
77
+ ```dockerfile
78
+ FROM python:3.12-slim AS builder
79
+ WORKDIR /app
80
+ RUN pip install uv
81
+ COPY pyproject.toml uv.lock ./
82
+ RUN uv sync --frozen --no-dev
83
+
84
+ FROM python:3.12-slim AS runner
85
+ WORKDIR /app
86
+ RUN addgroup --system --gid 1001 appgroup && adduser --system --uid 1001 appuser
87
+ COPY --from=builder --chown=appuser:appgroup /app/.venv ./.venv
88
+ COPY --chown=appuser:appgroup . .
89
+ USER appuser
90
+ EXPOSE 8000
91
+ ENV PATH="/app/.venv/bin:$PATH"
92
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
93
+ ```
94
+
95
+ ### Go
96
+
97
+ ```dockerfile
98
+ FROM golang:1.23-alpine AS builder
99
+ WORKDIR /app
100
+ COPY go.mod go.sum ./
101
+ RUN go mod download
102
+ COPY . .
103
+ RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o /app/server ./cmd/server
104
+
105
+ FROM scratch
106
+ COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
107
+ COPY --from=builder /app/server /server
108
+ EXPOSE 8080
109
+ ENTRYPOINT ["/server"]
110
+ ```
111
+
112
+ ### .dockerignore
113
+
114
+ ```
115
+ .git
116
+ node_modules
117
+ .venv
118
+ __pycache__
119
+ *.pyc
120
+ target
121
+ .env
122
+ .env.*
123
+ .DS_Store
124
+ *.test
125
+ *.md
126
+ .github
127
+ .gitlab
128
+ docs
129
+ coverage
130
+ ```
131
+
132
+ ## Step 3: Write the Deployment Manifest
133
+
134
+ ### Cloud Run (rolling — default)
135
+
136
+ ```yaml
137
+ # cloudrun-service.yaml
138
+ apiVersion: serving.knative.dev/v1
139
+ kind: Service
140
+ metadata:
141
+ name: your-service # configure
142
+ annotations:
143
+ run.googleapis.com/ingress: all
144
+ spec:
145
+ template:
146
+ metadata:
147
+ annotations:
148
+ autoscaling.knative.dev/minScale: "1"
149
+ autoscaling.knative.dev/maxScale: "10"
150
+ run.googleapis.com/execution-environment: gen2
151
+ spec:
152
+ containerConcurrency: 80
153
+ timeoutSeconds: 30
154
+ serviceAccountName: your-sa@your-project.iam.gserviceaccount.com # configure
155
+ containers:
156
+ - image: us-central1-docker.pkg.dev/your-project/your-repo/your-service:latest
157
+ ports:
158
+ - containerPort: 8080
159
+ resources:
160
+ limits:
161
+ cpu: "1"
162
+ memory: 512Mi
163
+ env:
164
+ - name: NODE_ENV
165
+ value: production
166
+ - name: DATABASE_URL
167
+ valueFrom:
168
+ secretKeyRef:
169
+ name: database-url # configure in Secret Manager
170
+ key: latest
171
+ readinessProbe:
172
+ httpGet:
173
+ path: /health
174
+ initialDelaySeconds: 5
175
+ periodSeconds: 10
176
+ traffic:
177
+ - percent: 100
178
+ latestRevision: true
179
+ ```
180
+
181
+ ### Cloud Run — Canary (10% to new revision)
182
+
183
+ ```bash
184
+ # After deploying the new revision with --no-traffic:
185
+ gcloud run deploy your-service \
186
+ --image IMAGE_URL \
187
+ --no-traffic \
188
+ --tag canary \
189
+ --region us-central1
190
+
191
+ # Split traffic: 10% to canary, 90% to stable
192
+ gcloud run services update-traffic your-service \
193
+ --to-tags canary=10,stable=90 \
194
+ --region us-central1
195
+
196
+ # Promote to 100% after validation:
197
+ gcloud run services update-traffic your-service \
198
+ --to-latest \
199
+ --region us-central1
200
+ ```
201
+
202
+ ### Fly.io (fly.toml)
203
+
204
+ ```toml
205
+ app = "your-app" # configure
206
+ primary_region = "iad" # configure
207
+
208
+ [build]
209
+
210
+ [http_service]
211
+ internal_port = 8080
212
+ force_https = true
213
+ auto_stop_machines = "stop"
214
+ auto_start_machines = true
215
+ min_machines_running = 1
216
+
217
+ [[http_service.checks]]
218
+ grace_period = "5s"
219
+ interval = "10s"
220
+ method = "GET"
221
+ path = "/health"
222
+ timeout = "2s"
223
+
224
+ [deploy]
225
+ strategy = "rolling"
226
+
227
+ [[vm]]
228
+ size = "shared-cpu-1x"
229
+ memory = "512mb"
230
+ ```
231
+
232
+ ### Kubernetes (rolling — deployment.yaml)
233
+
234
+ ```yaml
235
+ apiVersion: apps/v1
236
+ kind: Deployment
237
+ metadata:
238
+ name: your-service
239
+ labels:
240
+ app: your-service
241
+ spec:
242
+ replicas: 2
243
+ selector:
244
+ matchLabels:
245
+ app: your-service
246
+ strategy:
247
+ type: RollingUpdate
248
+ rollingUpdate:
249
+ maxSurge: 1
250
+ maxUnavailable: 0 # zero-downtime: never kill old before new is ready
251
+ template:
252
+ metadata:
253
+ labels:
254
+ app: your-service
255
+ spec:
256
+ containers:
257
+ - name: your-service
258
+ image: your-registry/your-service:latest
259
+ ports:
260
+ - containerPort: 8080
261
+ resources:
262
+ requests:
263
+ cpu: 100m
264
+ memory: 128Mi
265
+ limits:
266
+ cpu: 500m
267
+ memory: 512Mi
268
+ readinessProbe:
269
+ httpGet:
270
+ path: /health
271
+ port: 8080
272
+ initialDelaySeconds: 5
273
+ periodSeconds: 5
274
+ failureThreshold: 3
275
+ livenessProbe:
276
+ httpGet:
277
+ path: /health
278
+ port: 8080
279
+ initialDelaySeconds: 15
280
+ periodSeconds: 20
281
+ env:
282
+ - name: DATABASE_URL
283
+ valueFrom:
284
+ secretKeyRef:
285
+ name: your-service-secrets
286
+ key: database-url
287
+ ```
288
+
289
+ ## Step 4: Write the Rollback Procedure
290
+
291
+ Every deployment config ships with this. Rollback must execute in under 2 minutes.
292
+
293
+ ### Cloud Run rollback
294
+
295
+ ```bash
296
+ # List recent revisions
297
+ gcloud run revisions list --service your-service --region us-central1
298
+
299
+ # Route 100% traffic to the previous stable revision
300
+ gcloud run services update-traffic your-service \
301
+ --to-revisions your-service-00042-abc=100 \
302
+ --region us-central1
303
+
304
+ # Verify traffic is fully shifted
305
+ gcloud run services describe your-service --region us-central1 | grep traffic
306
+ ```
307
+
308
+ **Trigger when:** error rate >1% sustained for 2 minutes, p99 latency >2s, smoke test failure.
309
+
310
+ ### Fly.io rollback
311
+
312
+ ```bash
313
+ # List recent releases
314
+ flyctl releases list
315
+
316
+ # Roll back to previous release
317
+ flyctl deploy --image registry.fly.io/your-app:deployment-XXXXXXXXXX
318
+
319
+ # Or use the image digest from `flyctl releases list`
320
+ ```
321
+
322
+ **Trigger when:** health check failures, error spike in `flyctl logs`.
323
+
324
+ ### Kubernetes rollback
325
+
326
+ ```bash
327
+ # Check rollout status
328
+ kubectl rollout status deployment/your-service
329
+
330
+ # Roll back to previous version immediately
331
+ kubectl rollout undo deployment/your-service
332
+
333
+ # Roll back to a specific revision
334
+ kubectl rollout history deployment/your-service
335
+ kubectl rollout undo deployment/your-service --to-revision=3
336
+
337
+ # Verify pods are healthy
338
+ kubectl get pods -l app=your-service
339
+ ```
340
+
341
+ **Trigger when:** pod crash loops, readiness probe failures, error spike in metrics.
342
+
343
+ ## Step 5: Smoke Test Script
344
+
345
+ ```bash
346
+ #!/usr/bin/env bash
347
+ # smoke-test.sh — run after every deploy
348
+ set -euo pipefail
349
+
350
+ BASE_URL="${1:-https://your-service.example.com}"
351
+ MAX_LATENCY_MS=500
352
+
353
+ echo "Running smoke tests against $BASE_URL..."
354
+
355
+ # Health check
356
+ STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/health")
357
+ [ "$STATUS" = "200" ] || { echo "FAIL: /health returned $STATUS"; exit 1; }
358
+
359
+ # Latency check
360
+ LATENCY=$(curl -s -o /dev/null -w "%{time_total}" "$BASE_URL/health")
361
+ LATENCY_MS=$(echo "$LATENCY * 1000" | bc | cut -d. -f1)
362
+ [ "$LATENCY_MS" -lt "$MAX_LATENCY_MS" ] || { echo "FAIL: /health latency ${LATENCY_MS}ms > ${MAX_LATENCY_MS}ms"; exit 1; }
363
+
364
+ # Version check (optional — requires /version or X-Version header)
365
+ # VERSION=$(curl -s "$BASE_URL/version" | jq -r .version)
366
+ # [ "$VERSION" = "$EXPECTED_VERSION" ] || { echo "FAIL: wrong version $VERSION"; exit 1; }
367
+
368
+ echo "OK: all smoke tests passed"
369
+ ```
370
+
371
+ ## Step 6: Output
372
+
373
+ Write the files directly:
374
+
375
+ - `Dockerfile` (if it didn't exist)
376
+ - `.dockerignore` (if it didn't exist)
377
+ - Deployment manifest (`cloudrun-service.yaml`, `fly.toml`, `k8s/deployment.yaml`, etc.)
378
+ - `scripts/smoke-test.sh`
379
+
380
+ Then output a summary:
381
+
382
+ ```
383
+ ┌─ Deployment config written ─────────────────────────────────┐
384
+ │ │
385
+ │ Strategy: rolling (Cloud Run) │
386
+ │ Files: Dockerfile │
387
+ │ .dockerignore │
388
+ │ cloudrun-service.yaml │
389
+ │ scripts/smoke-test.sh │
390
+ │ │
391
+ │ Deploy: gcloud run services replace cloudrun-service.yaml │
392
+ │ Rollback: gcloud run services update-traffic ... (2 min) │
393
+ │ │
394
+ │ Secrets to configure (2): │
395
+ │ □ DATABASE_URL — in Secret Manager as "database-url" │
396
+ │ □ [any others] │
397
+ │ │
398
+ │ Smoke test: bash scripts/smoke-test.sh https://your-url │
399
+ └──────────────────────────────────────────────────────────────┘
400
+ ```
401
+
402
+ ## Delivery
403
+
404
+ 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": "relay-docker",
3
+ "version": "0.9.7",
4
+ "description": "Build production-ready Dockerfiles with multi-stage builds, security hardening, and docker-compose for local dev. Use when asked to \"create Dockerfile\", \"optimize container\", or \"dockerize this\".",
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
+ "relay",
14
+ "skill"
15
+ ]
16
+ }
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: relay-docker
3
+ description: Build production-ready Dockerfiles with multi-stage builds, security hardening, and docker-compose for local dev. Use when asked to "create Dockerfile", "optimize container", or "dockerize this".
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
+ ---
9
+
10
+ # Build Production Dockerfiles
11
+
12
+ You are Relay — the DevOps engineer from the Engineering Team.
13
+
14
+ Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
15
+
16
+ ## Steps
17
+
18
+ ### Step 0: Detect Environment
19
+
20
+ ```bash
21
+ ls -a
22
+ ```
23
+
24
+ Identify the language and framework: package.json (Node.js), pyproject.toml/requirements.txt (Python), go.mod (Go), Cargo.toml (Rust), pom.xml (Java), Gemfile (Ruby). Note the runtime version from version files (.node-version, .python-version, .tool-versions, etc.).
25
+
26
+ ### Step 1: Generate Multi-Stage Dockerfile
27
+
28
+ Create a Dockerfile with at least two stages:
29
+
30
+ 1. **Build stage** — install dependencies, compile/bundle the application
31
+ 2. **Runtime stage** — minimal base image, copy only what's needed to run
32
+
33
+ Requirements:
34
+
35
+ - Pin the base image version (e.g., `node:22.12-slim`, not `node:latest`)
36
+ - Use the smallest viable base image (alpine or slim variants)
37
+ - Run as a non-root user (create a dedicated app user)
38
+ - Order layers for maximum cache reuse (copy lockfile first, install deps, then copy source)
39
+ - Set `WORKDIR`, `EXPOSE`, and a proper `CMD`/`ENTRYPOINT`
40
+ - No secrets in the image — use build args or runtime env vars
41
+ - Add `HEALTHCHECK` instruction if applicable
42
+
43
+ ### Step 2: Generate .dockerignore
44
+
45
+ Create a `.dockerignore` that excludes:
46
+
47
+ - `.git/`, `node_modules/`, `.venv/`, `target/`, `__pycache__/`
48
+ - Test files, docs, CI configs
49
+ - `.env` files and any secrets
50
+ - IDE configs (`.vscode/`, `.idea/`)
51
+
52
+ ### Step 3: Generate docker-compose.yml for Local Dev
53
+
54
+ Create a `docker-compose.yml` with:
55
+
56
+ - The application service with volume mounts for live reload
57
+ - Any required backing services (database, Redis, etc.) based on project dependencies
58
+ - Environment variables via `.env` file
59
+ - Proper networking between services
60
+ - Named volumes for persistent data (databases)
61
+
62
+ ### Step 4: Present the Config
63
+
64
+ Show all generated files and explain:
65
+
66
+ - Final image size estimate
67
+ - How to build and run locally
68
+ - How to push to a container registry
69
+ - Any secrets or env vars that need to be set at runtime
70
+
71
+ ## Delivery
72
+
73
+ 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": "relay-pipeline",
3
+ "version": "0.9.7",
4
+ "description": "Build a full CI/CD pipeline from scratch. Use when asked to \"set up CI/CD\", \"create pipeline\", or \"automate deploys\".",
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
+ "relay",
14
+ "skill"
15
+ ]
16
+ }