@mohammadhprp/system-prompt 0.10.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 (347) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -0
  3. package/bin/system-prompt.js +8 -0
  4. package/framework/README.md +163 -0
  5. package/framework/agents/README.md +49 -0
  6. package/framework/agents/backend-architect.md +146 -0
  7. package/framework/agents/researcher.md +79 -0
  8. package/framework/agents/reviewer.md +183 -0
  9. package/framework/agents/security-auditor.md +131 -0
  10. package/framework/commands/README.md +43 -0
  11. package/framework/commands/changelog.md +44 -0
  12. package/framework/commands/commit.md +31 -0
  13. package/framework/commands/learn.md +24 -0
  14. package/framework/commands/mr.md +46 -0
  15. package/framework/commands/pr.md +39 -0
  16. package/framework/commands/release.md +34 -0
  17. package/framework/commands/review.md +24 -0
  18. package/framework/commands/summarize-changes.md +49 -0
  19. package/framework/mcps/README.md +78 -0
  20. package/framework/mcps/excalidraw/README.md +37 -0
  21. package/framework/mcps/excalidraw/capabilities.md +54 -0
  22. package/framework/mcps/excalidraw/configs/opencode.json +8 -0
  23. package/framework/mcps/excalidraw/install.md +92 -0
  24. package/framework/mcps/excalidraw/troubleshooting.md +67 -0
  25. package/framework/mcps/figma-mcp-go/README.md +51 -0
  26. package/framework/mcps/figma-mcp-go/capabilities.md +190 -0
  27. package/framework/mcps/figma-mcp-go/configs/opencode.json +9 -0
  28. package/framework/mcps/figma-mcp-go/install.md +74 -0
  29. package/framework/mcps/figma-mcp-go/troubleshooting.md +99 -0
  30. package/framework/mcps/github-mcp/README.md +51 -0
  31. package/framework/mcps/github-mcp/capabilities.md +83 -0
  32. package/framework/mcps/github-mcp/configs/.env.example +1 -0
  33. package/framework/mcps/github-mcp/configs/opencode.json +13 -0
  34. package/framework/mcps/github-mcp/install.md +60 -0
  35. package/framework/mcps/github-mcp/troubleshooting.md +79 -0
  36. package/framework/mcps/gitlab-mcp/README.md +54 -0
  37. package/framework/mcps/gitlab-mcp/capabilities.md +216 -0
  38. package/framework/mcps/gitlab-mcp/configs/.env.example +2 -0
  39. package/framework/mcps/gitlab-mcp/configs/opencode.json +13 -0
  40. package/framework/mcps/gitlab-mcp/install.md +99 -0
  41. package/framework/mcps/gitlab-mcp/troubleshooting.md +116 -0
  42. package/framework/mcps/jira-mcp/README.md +53 -0
  43. package/framework/mcps/jira-mcp/capabilities.md +79 -0
  44. package/framework/mcps/jira-mcp/configs/.env.example +2 -0
  45. package/framework/mcps/jira-mcp/configs/opencode.json +13 -0
  46. package/framework/mcps/jira-mcp/install.md +94 -0
  47. package/framework/mcps/jira-mcp/troubleshooting.md +113 -0
  48. package/framework/mcps/laravel-boost/README.md +53 -0
  49. package/framework/mcps/laravel-boost/capabilities.md +92 -0
  50. package/framework/mcps/laravel-boost/configs/opencode.json +9 -0
  51. package/framework/mcps/laravel-boost/install.md +106 -0
  52. package/framework/mcps/laravel-boost/troubleshooting.md +119 -0
  53. package/framework/mcps/notion-mcp/README.md +58 -0
  54. package/framework/mcps/notion-mcp/capabilities.md +118 -0
  55. package/framework/mcps/notion-mcp/configs/opencode.json +9 -0
  56. package/framework/mcps/notion-mcp/install.md +70 -0
  57. package/framework/mcps/notion-mcp/troubleshooting.md +95 -0
  58. package/framework/mcps/playwright-mcp/README.md +50 -0
  59. package/framework/mcps/playwright-mcp/capabilities.md +149 -0
  60. package/framework/mcps/playwright-mcp/configs/opencode.json +9 -0
  61. package/framework/mcps/playwright-mcp/install.md +136 -0
  62. package/framework/mcps/playwright-mcp/troubleshooting.md +154 -0
  63. package/framework/mcps/supabase-mcp/README.md +66 -0
  64. package/framework/mcps/supabase-mcp/capabilities.md +127 -0
  65. package/framework/mcps/supabase-mcp/configs/opencode.json +9 -0
  66. package/framework/mcps/supabase-mcp/install.md +85 -0
  67. package/framework/mcps/supabase-mcp/troubleshooting.md +113 -0
  68. package/framework/memory/README.md +17 -0
  69. package/framework/memory/codebase-insights.md +6 -0
  70. package/framework/memory/user-preferences.md +5 -0
  71. package/framework/modes/README.md +52 -0
  72. package/framework/modes/audit.md +88 -0
  73. package/framework/plugins/README.md +65 -0
  74. package/framework/plugins/opencode-goal-plugin/README.md +45 -0
  75. package/framework/plugins/opencode-goal-plugin/capabilities.md +127 -0
  76. package/framework/plugins/opencode-goal-plugin/install.md +71 -0
  77. package/framework/plugins/opencode-goal-plugin/troubleshooting.md +112 -0
  78. package/framework/plugins/ponytail/README.md +44 -0
  79. package/framework/plugins/ponytail/capabilities.md +112 -0
  80. package/framework/plugins/ponytail/install.md +77 -0
  81. package/framework/plugins/ponytail/troubleshooting.md +116 -0
  82. package/framework/references/standards/api.md +44 -0
  83. package/framework/references/standards/architecture.md +43 -0
  84. package/framework/references/standards/database.md +43 -0
  85. package/framework/references/standards/debugging.md +44 -0
  86. package/framework/references/standards/documentation.md +43 -0
  87. package/framework/references/standards/logging.md +43 -0
  88. package/framework/references/standards/naming.md +43 -0
  89. package/framework/references/standards/observability.md +43 -0
  90. package/framework/references/standards/performance.md +43 -0
  91. package/framework/references/standards/pull-requests.md +43 -0
  92. package/framework/references/standards/security.md +43 -0
  93. package/framework/references/standards/testing.md +43 -0
  94. package/framework/references/templates/adr.md +28 -0
  95. package/framework/references/templates/api-spec.md +56 -0
  96. package/framework/references/templates/design-document.md +39 -0
  97. package/framework/references/templates/incident-report.md +38 -0
  98. package/framework/references/templates/postmortem.md +41 -0
  99. package/framework/references/templates/pull-request.md +34 -0
  100. package/framework/references/templates/runbook.md +48 -0
  101. package/framework/references/templates/task.md +27 -0
  102. package/framework/skills/README.md +68 -0
  103. package/framework/skills/agent-browser/SKILL.md +51 -0
  104. package/framework/skills/backend-best-practices/SKILL.md +136 -0
  105. package/framework/skills/backend-best-practices/examples.md +31 -0
  106. package/framework/skills/backend-best-practices/references/api-design.md +79 -0
  107. package/framework/skills/backend-best-practices/references/architecture-review.md +77 -0
  108. package/framework/skills/backend-best-practices/references/database-design.md +78 -0
  109. package/framework/skills/backend-best-practices/references/debugging.md +76 -0
  110. package/framework/skills/backend-best-practices/references/observability.md +78 -0
  111. package/framework/skills/backend-best-practices/references/performance.md +78 -0
  112. package/framework/skills/backend-best-practices/references/refactoring.md +77 -0
  113. package/framework/skills/backend-best-practices/references/security.md +80 -0
  114. package/framework/skills/backend-best-practices/references/testing.md +77 -0
  115. package/framework/skills/backend-engineer/SKILL.md +76 -0
  116. package/framework/skills/backend-engineer/examples.md +31 -0
  117. package/framework/skills/brainstorming/SKILL.md +159 -0
  118. package/framework/skills/brainstorming/examples.md +49 -0
  119. package/framework/skills/brainstorming/scripts/frame-template.html +213 -0
  120. package/framework/skills/brainstorming/scripts/helper.js +167 -0
  121. package/framework/skills/brainstorming/scripts/server.cjs +723 -0
  122. package/framework/skills/brainstorming/scripts/start-server.sh +209 -0
  123. package/framework/skills/brainstorming/scripts/stop-server.sh +120 -0
  124. package/framework/skills/brainstorming/visual-companion.md +291 -0
  125. package/framework/skills/brand-guidelines/LICENSE.txt +202 -0
  126. package/framework/skills/brand-guidelines/SKILL.md +73 -0
  127. package/framework/skills/code-review/SKILL.md +72 -0
  128. package/framework/skills/code-review/examples.md +31 -0
  129. package/framework/skills/design/SKILL.md +399 -0
  130. package/framework/skills/design/examples.md +34 -0
  131. package/framework/skills/diagram-design/SKILL.md +485 -0
  132. package/framework/skills/diagram-design/assets/example-architecture-dark.html +180 -0
  133. package/framework/skills/diagram-design/assets/example-architecture-full.html +192 -0
  134. package/framework/skills/diagram-design/assets/example-architecture.html +181 -0
  135. package/framework/skills/diagram-design/assets/example-bar-dark.html +127 -0
  136. package/framework/skills/diagram-design/assets/example-bar-full.html +103 -0
  137. package/framework/skills/diagram-design/assets/example-bar.html +127 -0
  138. package/framework/skills/diagram-design/assets/example-data-flow-dark.html +143 -0
  139. package/framework/skills/diagram-design/assets/example-data-flow-full.html +185 -0
  140. package/framework/skills/diagram-design/assets/example-data-flow.html +143 -0
  141. package/framework/skills/diagram-design/assets/example-datalake-dark.html +241 -0
  142. package/framework/skills/diagram-design/assets/example-datalake-full.html +246 -0
  143. package/framework/skills/diagram-design/assets/example-datalake.html +267 -0
  144. package/framework/skills/diagram-design/assets/example-dp-integration-dark.html +78 -0
  145. package/framework/skills/diagram-design/assets/example-dp-integration-full.html +88 -0
  146. package/framework/skills/diagram-design/assets/example-dp-integration.html +78 -0
  147. package/framework/skills/diagram-design/assets/example-dp-security-matrix-dark.html +31 -0
  148. package/framework/skills/diagram-design/assets/example-dp-security-matrix-full.html +32 -0
  149. package/framework/skills/diagram-design/assets/example-dp-security-matrix.html +88 -0
  150. package/framework/skills/diagram-design/assets/example-er-dark.html +200 -0
  151. package/framework/skills/diagram-design/assets/example-er-full.html +203 -0
  152. package/framework/skills/diagram-design/assets/example-er.html +200 -0
  153. package/framework/skills/diagram-design/assets/example-flowchart-dark.html +154 -0
  154. package/framework/skills/diagram-design/assets/example-flowchart-full.html +157 -0
  155. package/framework/skills/diagram-design/assets/example-flowchart.html +154 -0
  156. package/framework/skills/diagram-design/assets/example-gantt-dark.html +135 -0
  157. package/framework/skills/diagram-design/assets/example-gantt-full.html +125 -0
  158. package/framework/skills/diagram-design/assets/example-gantt.html +135 -0
  159. package/framework/skills/diagram-design/assets/example-high-level-dark.html +249 -0
  160. package/framework/skills/diagram-design/assets/example-high-level-full.html +245 -0
  161. package/framework/skills/diagram-design/assets/example-high-level-vertical-dark.html +272 -0
  162. package/framework/skills/diagram-design/assets/example-high-level-vertical-full.html +250 -0
  163. package/framework/skills/diagram-design/assets/example-high-level-vertical.html +323 -0
  164. package/framework/skills/diagram-design/assets/example-high-level.html +299 -0
  165. package/framework/skills/diagram-design/assets/example-it-state-dark.html +90 -0
  166. package/framework/skills/diagram-design/assets/example-it-state-full.html +69 -0
  167. package/framework/skills/diagram-design/assets/example-it-state.html +128 -0
  168. package/framework/skills/diagram-design/assets/example-layers-dark.html +121 -0
  169. package/framework/skills/diagram-design/assets/example-layers-full.html +124 -0
  170. package/framework/skills/diagram-design/assets/example-layers.html +121 -0
  171. package/framework/skills/diagram-design/assets/example-line-dark.html +109 -0
  172. package/framework/skills/diagram-design/assets/example-line-full.html +103 -0
  173. package/framework/skills/diagram-design/assets/example-line.html +109 -0
  174. package/framework/skills/diagram-design/assets/example-loop-dark.html +100 -0
  175. package/framework/skills/diagram-design/assets/example-loop-full.html +137 -0
  176. package/framework/skills/diagram-design/assets/example-loop-terminal.html +347 -0
  177. package/framework/skills/diagram-design/assets/example-loop.html +100 -0
  178. package/framework/skills/diagram-design/assets/example-medallion-dark.html +159 -0
  179. package/framework/skills/diagram-design/assets/example-medallion-full.html +201 -0
  180. package/framework/skills/diagram-design/assets/example-medallion.html +159 -0
  181. package/framework/skills/diagram-design/assets/example-nested-dark.html +130 -0
  182. package/framework/skills/diagram-design/assets/example-nested-full.html +133 -0
  183. package/framework/skills/diagram-design/assets/example-nested.html +134 -0
  184. package/framework/skills/diagram-design/assets/example-org-chart-dark.html +45 -0
  185. package/framework/skills/diagram-design/assets/example-org-chart-full.html +45 -0
  186. package/framework/skills/diagram-design/assets/example-org-chart.html +45 -0
  187. package/framework/skills/diagram-design/assets/example-process-dark.html +62 -0
  188. package/framework/skills/diagram-design/assets/example-process-full.html +72 -0
  189. package/framework/skills/diagram-design/assets/example-process.html +62 -0
  190. package/framework/skills/diagram-design/assets/example-pyramid-dark.html +117 -0
  191. package/framework/skills/diagram-design/assets/example-pyramid-full.html +120 -0
  192. package/framework/skills/diagram-design/assets/example-pyramid.html +117 -0
  193. package/framework/skills/diagram-design/assets/example-quadrant-consultant.html +164 -0
  194. package/framework/skills/diagram-design/assets/example-quadrant-dark.html +133 -0
  195. package/framework/skills/diagram-design/assets/example-quadrant-full.html +136 -0
  196. package/framework/skills/diagram-design/assets/example-quadrant.html +133 -0
  197. package/framework/skills/diagram-design/assets/example-radar-dark.html +137 -0
  198. package/framework/skills/diagram-design/assets/example-radar-full.html +133 -0
  199. package/framework/skills/diagram-design/assets/example-radar.html +137 -0
  200. package/framework/skills/diagram-design/assets/example-scatter-dark.html +139 -0
  201. package/framework/skills/diagram-design/assets/example-scatter-full.html +114 -0
  202. package/framework/skills/diagram-design/assets/example-scatter.html +139 -0
  203. package/framework/skills/diagram-design/assets/example-sequence-dark.html +220 -0
  204. package/framework/skills/diagram-design/assets/example-sequence-full.html +386 -0
  205. package/framework/skills/diagram-design/assets/example-sequence.html +220 -0
  206. package/framework/skills/diagram-design/assets/example-state-dark.html +145 -0
  207. package/framework/skills/diagram-design/assets/example-state-full.html +148 -0
  208. package/framework/skills/diagram-design/assets/example-state.html +145 -0
  209. package/framework/skills/diagram-design/assets/example-swimlane-dark.html +170 -0
  210. package/framework/skills/diagram-design/assets/example-swimlane-full.html +173 -0
  211. package/framework/skills/diagram-design/assets/example-swimlane.html +170 -0
  212. package/framework/skills/diagram-design/assets/example-timeline-dark.html +133 -0
  213. package/framework/skills/diagram-design/assets/example-timeline-full.html +136 -0
  214. package/framework/skills/diagram-design/assets/example-timeline.html +133 -0
  215. package/framework/skills/diagram-design/assets/example-tree-dark.html +171 -0
  216. package/framework/skills/diagram-design/assets/example-tree-full.html +174 -0
  217. package/framework/skills/diagram-design/assets/example-tree.html +171 -0
  218. package/framework/skills/diagram-design/assets/example-venn-dark.html +130 -0
  219. package/framework/skills/diagram-design/assets/example-venn-full.html +133 -0
  220. package/framework/skills/diagram-design/assets/example-venn.html +108 -0
  221. package/framework/skills/diagram-design/assets/icons.html +230 -0
  222. package/framework/skills/diagram-design/assets/index.html +333 -0
  223. package/framework/skills/diagram-design/assets/template-dark.html +82 -0
  224. package/framework/skills/diagram-design/assets/template-full.html +410 -0
  225. package/framework/skills/diagram-design/assets/template-terminal.html +170 -0
  226. package/framework/skills/diagram-design/assets/template.html +83 -0
  227. package/framework/skills/diagram-design/references/export.md +107 -0
  228. package/framework/skills/diagram-design/references/onboarding.md +268 -0
  229. package/framework/skills/diagram-design/references/primitive-annotation.md +36 -0
  230. package/framework/skills/diagram-design/references/primitive-icons.md +821 -0
  231. package/framework/skills/diagram-design/references/primitive-sketchy.md +43 -0
  232. package/framework/skills/diagram-design/references/primitive-terminal.md +76 -0
  233. package/framework/skills/diagram-design/references/style-guide.md +139 -0
  234. package/framework/skills/diagram-design/references/type-architecture.md +78 -0
  235. package/framework/skills/diagram-design/references/type-bar.md +48 -0
  236. package/framework/skills/diagram-design/references/type-data-flow.md +374 -0
  237. package/framework/skills/diagram-design/references/type-dp-integration.md +410 -0
  238. package/framework/skills/diagram-design/references/type-dp-security-matrix.md +379 -0
  239. package/framework/skills/diagram-design/references/type-er.md +23 -0
  240. package/framework/skills/diagram-design/references/type-flowchart.md +23 -0
  241. package/framework/skills/diagram-design/references/type-gantt.md +45 -0
  242. package/framework/skills/diagram-design/references/type-high-level.md +458 -0
  243. package/framework/skills/diagram-design/references/type-it-state.md +470 -0
  244. package/framework/skills/diagram-design/references/type-layers.md +26 -0
  245. package/framework/skills/diagram-design/references/type-line.md +44 -0
  246. package/framework/skills/diagram-design/references/type-loop.md +223 -0
  247. package/framework/skills/diagram-design/references/type-medallion.md +356 -0
  248. package/framework/skills/diagram-design/references/type-nested.md +22 -0
  249. package/framework/skills/diagram-design/references/type-org-chart.md +44 -0
  250. package/framework/skills/diagram-design/references/type-process.md +495 -0
  251. package/framework/skills/diagram-design/references/type-pyramid.md +33 -0
  252. package/framework/skills/diagram-design/references/type-quadrant.md +81 -0
  253. package/framework/skills/diagram-design/references/type-radar.md +80 -0
  254. package/framework/skills/diagram-design/references/type-scatter.md +39 -0
  255. package/framework/skills/diagram-design/references/type-sequence.md +35 -0
  256. package/framework/skills/diagram-design/references/type-state.md +21 -0
  257. package/framework/skills/diagram-design/references/type-swimlane.md +20 -0
  258. package/framework/skills/diagram-design/references/type-timeline.md +20 -0
  259. package/framework/skills/diagram-design/references/type-tree.md +24 -0
  260. package/framework/skills/diagram-design/references/type-venn.md +26 -0
  261. package/framework/skills/documentation/SKILL.md +74 -0
  262. package/framework/skills/documentation/examples.md +31 -0
  263. package/framework/skills/find-skills/SKILL.md +141 -0
  264. package/framework/skills/find-skills/examples.md +35 -0
  265. package/framework/skills/gitlab-mcp/SKILL.md +83 -0
  266. package/framework/skills/gitlab-mcp/examples.md +31 -0
  267. package/framework/skills/gitlab-mcp/references/code-review.md +110 -0
  268. package/framework/skills/gitlab-mcp/references/issues.md +141 -0
  269. package/framework/skills/gitlab-mcp/references/merge-requests.md +120 -0
  270. package/framework/skills/gitlab-mcp/references/pipelines.md +67 -0
  271. package/framework/skills/gitlab-mcp/references/search.md +17 -0
  272. package/framework/skills/gitlab-mcp/references/webhooks.md +32 -0
  273. package/framework/skills/gitlab-mcp/references/work-items.md +50 -0
  274. package/framework/skills/jira-mcp/SKILL.md +57 -0
  275. package/framework/skills/jira-mcp/examples.md +31 -0
  276. package/framework/skills/jira-mcp/references/comments.md +27 -0
  277. package/framework/skills/jira-mcp/references/issues.md +97 -0
  278. package/framework/skills/jira-mcp/references/projects.md +39 -0
  279. package/framework/skills/laravel-best-practices/SKILL.md +229 -0
  280. package/framework/skills/laravel-best-practices/examples.md +31 -0
  281. package/framework/skills/laravel-best-practices/references/advanced-queries.md +106 -0
  282. package/framework/skills/laravel-best-practices/references/architecture.md +202 -0
  283. package/framework/skills/laravel-best-practices/references/blade-views.md +36 -0
  284. package/framework/skills/laravel-best-practices/references/caching.md +70 -0
  285. package/framework/skills/laravel-best-practices/references/collections.md +44 -0
  286. package/framework/skills/laravel-best-practices/references/config.md +73 -0
  287. package/framework/skills/laravel-best-practices/references/db-performance.md +192 -0
  288. package/framework/skills/laravel-best-practices/references/eloquent.md +148 -0
  289. package/framework/skills/laravel-best-practices/references/error-handling.md +72 -0
  290. package/framework/skills/laravel-best-practices/references/events-notifications.md +52 -0
  291. package/framework/skills/laravel-best-practices/references/http-client.md +160 -0
  292. package/framework/skills/laravel-best-practices/references/mail.md +27 -0
  293. package/framework/skills/laravel-best-practices/references/migrations.md +121 -0
  294. package/framework/skills/laravel-best-practices/references/passport.md +197 -0
  295. package/framework/skills/laravel-best-practices/references/pennant.md +61 -0
  296. package/framework/skills/laravel-best-practices/references/pest-testing.md +166 -0
  297. package/framework/skills/laravel-best-practices/references/pulse.md +196 -0
  298. package/framework/skills/laravel-best-practices/references/queue-jobs.md +144 -0
  299. package/framework/skills/laravel-best-practices/references/routing.md +99 -0
  300. package/framework/skills/laravel-best-practices/references/scheduling.md +39 -0
  301. package/framework/skills/laravel-best-practices/references/scout.md +176 -0
  302. package/framework/skills/laravel-best-practices/references/security.md +198 -0
  303. package/framework/skills/laravel-best-practices/references/spatie-laravel-backup.md +222 -0
  304. package/framework/skills/laravel-best-practices/references/spatie-laravel-permission.md +272 -0
  305. package/framework/skills/laravel-best-practices/references/spatie-medialibrary.md +672 -0
  306. package/framework/skills/laravel-best-practices/references/style.md +125 -0
  307. package/framework/skills/laravel-best-practices/references/tailwindcss.md +112 -0
  308. package/framework/skills/laravel-best-practices/references/testing.md +43 -0
  309. package/framework/skills/laravel-best-practices/references/validation.md +75 -0
  310. package/framework/skills/lavish/SKILL.md +67 -0
  311. package/framework/skills/lavish/examples.md +31 -0
  312. package/framework/skills/notion-mcp/SKILL.md +57 -0
  313. package/framework/skills/notion-mcp/examples.md +31 -0
  314. package/framework/skills/notion-mcp/references/comments.md +112 -0
  315. package/framework/skills/notion-mcp/references/databases.md +193 -0
  316. package/framework/skills/notion-mcp/references/pages.md +235 -0
  317. package/framework/skills/skill-creator/LICENSE.txt +202 -0
  318. package/framework/skills/skill-creator/SKILL.md +485 -0
  319. package/framework/skills/skill-creator/agents/analyzer.md +274 -0
  320. package/framework/skills/skill-creator/agents/comparator.md +202 -0
  321. package/framework/skills/skill-creator/agents/grader.md +223 -0
  322. package/framework/skills/skill-creator/assets/eval_review.html +146 -0
  323. package/framework/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  324. package/framework/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  325. package/framework/skills/skill-creator/examples.md +31 -0
  326. package/framework/skills/skill-creator/references/schemas.md +430 -0
  327. package/framework/skills/skill-creator/scripts/__init__.py +0 -0
  328. package/framework/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  329. package/framework/skills/skill-creator/scripts/generate_report.py +326 -0
  330. package/framework/skills/skill-creator/scripts/improve_description.py +247 -0
  331. package/framework/skills/skill-creator/scripts/package_skill.py +136 -0
  332. package/framework/skills/skill-creator/scripts/quick_validate.py +103 -0
  333. package/framework/skills/skill-creator/scripts/run_eval.py +310 -0
  334. package/framework/skills/skill-creator/scripts/run_loop.py +328 -0
  335. package/framework/skills/skill-creator/scripts/utils.py +47 -0
  336. package/framework/styles/README.md +35 -0
  337. package/framework/styles/linear/DESIGN.md +478 -0
  338. package/framework/styles/linear/README.md +36 -0
  339. package/framework/styles/linear/assets/preview.jpg +0 -0
  340. package/framework/styles/raycast/DESIGN.md +495 -0
  341. package/framework/styles/raycast/README.md +35 -0
  342. package/framework/styles/raycast/assets/preview.jpg +0 -0
  343. package/package.json +33 -0
  344. package/src/agent-configs.js +96 -0
  345. package/src/catalog.js +145 -0
  346. package/src/cli.js +254 -0
  347. package/src/installer.js +303 -0
@@ -0,0 +1,495 @@
1
+ # Process
2
+
3
+ **Best for:** sequential business processes with multiple actors/divisions where the reader needs to see *who* does *what*, *what data* enters and leaves each step, and *which tools* are used — not just the step order. Covers responsibility audits, data-quality gate reviews, cross-divisional handoff maps, and end-to-end workflow documentation.
4
+
5
+ Prefer swimlane (simpler) when the data types and tools don't matter. Prefer process when each step's input/output payload and responsible team must be legible at a glance.
6
+
7
+ This type is **parametric** — the inputs schema in §1 drives every coordinate via the formulas in §2. Two generations from the same inputs must produce visually identical SVG. The rule shapes mirror `type-data-flow.md` so color override, IN/OUT chip semantic, and reproducibility checklist read identically across types.
8
+
9
+ ---
10
+
11
+ ## 1. Inputs — the parameter contract
12
+
13
+ ```yaml
14
+ lanes: # 1..6 horizontal swimlanes (top to bottom)
15
+ - { name: ["RD&E"], key: "RDE" }
16
+ - { name: ["IT"], key: "IT" }
17
+ - { name: ["FIELD", "SERVICES"], key: "FLD" }
18
+ - { name: ["SURVEY", "SERVICES"], key: "SVY" }
19
+ - { name: ["HOUSEHOLD", "UNIT"], key: "HHU" }
20
+ - { name: ["COMMS &", "MARKETING"], key: "CMM" }
21
+
22
+ steps: # 1..12 vertical step columns (left to right)
23
+ - { number: "1", label: "Design" }
24
+ - { number: "2", label: "Build" }
25
+ - { number: "3", label: "Test", focal: true } # focal step header chip — accent fill
26
+ - { number: "4", label: "Train" }
27
+ # ... up to 12
28
+
29
+ nodes: # explicit per-cell entries; empty cells render nothing
30
+ - { lane: "RDE", step: 0, title: "Survey design", sub: "questionnaire · sampling", tool: "Excel · CSPro",
31
+ chips: {in: null, out: "FL"} } # first step has no input chip
32
+ - { lane: "IT", step: 1, title: "Build app", sub: "form + validation", tool: "CSPro · scripts",
33
+ chips: {in: "FL", out: "TB"}, color: "#5a7d9a" } # slate-blue — data quality concern
34
+ - { lane: "RDE", step: 2, title: "Pilot test", sub: "field debug", tool: "tablet · script",
35
+ chips: {in: "TB", out: "TB"}, focal: true } # focal node — accent border
36
+ - { lane: "FLD", step: 3, title: "Train enumerators", sub: "protocols · safety", tool: "manual",
37
+ chips: {in: "TB", out: "LS"}, color: "#b85450" } # rust-red — governance / training
38
+ # ... etc
39
+
40
+ arrows: # explicit edges; styles bind to topology (see §3)
41
+ - { from: {lane: "RDE", step: 0}, to: {lane: "IT", step: 1}, style: "normal" }
42
+ - { from: {lane: "IT", step: 1}, to: {lane: "RDE", step: 2}, style: "focal-in" } # accent — into focal
43
+ - { from: {lane: "RDE", step: 2}, to: {lane: "FLD", step: 3}, style: "focal-out" } # accent — out of focal
44
+ - { from: {lane: "RDE", step: 2}, to: {lane: "IT", step: 1}, style: "trigger" } # dashed trigger
45
+ # ... etc
46
+
47
+ dark: false
48
+ ```
49
+
50
+ **Reserved field semantics:**
51
+ - `lanes[k].key` — the 3-letter role badge text shown inside every node in that lane.
52
+ - `lanes[k].name` — 1 or 2 line lane label; uppercase mono.
53
+ - `steps[j].focal: true` — exactly **one** step may declare this. Header chip renders in accent.
54
+ - `nodes[i].focal: true` — exactly **one** node may declare this. Renders with accent border (§5).
55
+ - `nodes[i].chips` — `{in: "<CODE>", out: "<CODE>"}` object (either side `null` to omit). Codes from §8. **Skip** the input chip on the first step's nodes, **skip** the output chip on the last step's nodes (no upstream / downstream).
56
+ - `nodes[i].color` — optional **per-node color override**. Any valid `"#hex"` string; the §4 palette is recommended for cross-diagram consistency.
57
+
58
+ ---
59
+
60
+ ## 2. Layout formulas — deterministic geometry
61
+
62
+ ```
63
+ label_col_w = 140
64
+ step_slot_w = 112 # 100-px node + 12-px corridor
65
+ right_pad = 28
66
+ n_steps = len(steps)
67
+ n_lanes = len(lanes)
68
+
69
+ # Canvas
70
+ viewBox_w = label_col_w + n_steps * step_slot_w + right_pad # 11 steps → 1400
71
+ header_h = 36
72
+ lane_h = 80
73
+ has_color_row = any(node.color or step.color or lane.color in inputs)
74
+ legend_h = 100 if has_color_row else 80 # 4 rows when colors are present
75
+ viewBox_h = header_h + n_lanes * lane_h + legend_h # 6 lanes, no colors → 596; with → 616
76
+
77
+ # Header strip (top)
78
+ chip_y = 8
79
+ chip_w = 16 # 20 if step.number has 2 digits
80
+ chip_h = 16
81
+ chip_rx = 8 # pill
82
+
83
+ # Lane positions
84
+ lane_y_top(k) = header_h + k * lane_h # 36, 116, 196, 276, 356, 436
85
+ lane_y_mid(k) = lane_y_top(k) + lane_h/2 # 76, 156, 236, 316, 396, 476
86
+ lane_label_x = label_col_w / 2 # 70
87
+
88
+ # Step / node centers
89
+ step_cx(j) = label_col_w + 8 + j * step_slot_w + node_w/2 # 198, 310, 422, ...
90
+ # (8-px gutter inside content area)
91
+
92
+ # Nodes
93
+ node_w = 100
94
+ node_h = 64
95
+ node_x(j) = step_cx(j) - node_w/2
96
+ node_y(k) = lane_y_top(k) + (lane_h - node_h)/2 # 8-px top/bottom margin inside lane
97
+
98
+ # Legend strip (bottom)
99
+ legend_y_top = header_h + n_lanes * lane_h
100
+ legend_row_y = [legend_y_top + 16, legend_y_top + 37,
101
+ legend_y_top + 58, legend_y_top + 79]
102
+ ```
103
+
104
+ ### 2.1 Background structure
105
+
106
+ - Paper fill across full viewBox.
107
+ - Dot pattern: 22×22 grid, `circle r=0.8`, `fill rgba(45,49,66,0.10)`. Opacity 0.55.
108
+ - Alternating lane tints: odd-indexed lanes (0, 2, …) receive `rgba(45,49,66,0.018)` fill from `x=140` to `viewBox_w`.
109
+ - Lane dividers: horizontal hairlines at every `lane_y_top(k)` and at `legend_y_top`; stroke `rgba(45,49,66,0.12)` width 0.8.
110
+ - Label column right border: vertical hairline at `x = label_col_w`, stroke `rgba(45,49,66,0.20)` width 1, from `y = header_h` to `y = legend_y_top`.
111
+
112
+ ### 2.2 Step header chip + label
113
+
114
+ Per step `j`:
115
+
116
+ ```
117
+ chip_w(j) = 20 if len(step.number) >= 2 else 16
118
+ chip_x(j) = step_cx(j) - chip_w(j)/2
119
+ number_anchor = (step_cx(j), chip_y + 11)
120
+ label_anchor = (step_cx(j), 32) # 8-px gap below chip
121
+ ```
122
+
123
+ **Chip** (the numbered pill at the top of each column):
124
+ - Default fill: `rgba(45,49,66,0.12)`, number text ink.
125
+ - Focal fill: `rgba(235,108,54,0.20)`, number text accent (§5).
126
+ - Per-step `color` override (§4): replaces the fill with `rgba(C, 0.20)` and the number fill with `C`.
127
+
128
+ **Label** (the uppercase mono text below the chip):
129
+ - Renders `steps[j].label` (uppercased), anchored at `label_anchor`.
130
+ - Font: Geist Mono 6 px, weight 500, `letter-spacing="0.12em"`, `text-anchor="middle"`.
131
+ - Default fill: muted (`#4f5d75` light / `#bfc0c0` dark).
132
+ - Focal fill: accent (`#eb6c36` light / `#f08a59` dark).
133
+ - Per-step `color` override: fill = `C` (matches the chip number color).
134
+ - Keep labels short (≤ 9 chars). Long labels truncate; if you need more, abbreviate.
135
+
136
+ ### 2.3 Lane labels
137
+
138
+ One or two-line mono label, all uppercase, letter-spacing 0.08em, font-size 8, fill muted. Centered at `(lane_label_x, lane_y_mid(k))`:
139
+ - Single-line: anchored at `(lane_label_x, lane_y_mid(k) + 4)`
140
+ - Two-line: lines at `(lane_label_x, lane_y_mid(k) - 4)` and `(lane_label_x, lane_y_mid(k) + 4)`
141
+
142
+ Per-lane `color` override (§4): replaces the label fill with `C` and the lane stripe tint with `rgba(C, 0.04)`.
143
+
144
+ ### 2.4 Node content layout (inside the 100×64 rect)
145
+
146
+ ```
147
+ role_chip rect 14×10 at (node_x+4, node_y+4), rx=2
148
+ role_chip_text centered at (node_x+11, node_y+12), font-size=6, weight=600
149
+ # text = lanes[k].key (3-letter lane code)
150
+ title centered at (step_cx(j), node_y+26), font-size=9 sans semibold
151
+ in→out centered at (step_cx(j), node_y+40), font-size=6.5 mono muted
152
+ tool centered at (step_cx(j), node_y+52), font-size=6.5 mono soft
153
+ data chip IN rect 16×8 at (node_x+4, node_y+54), rx=2 # payload entering
154
+ data chip OUT rect 16×8 at (node_x+80, node_y+54), rx=2 # payload leaving
155
+ ```
156
+
157
+ **Role chip text rule:** the badge inside each node renders `lanes[k].key` where `k` is the node's lane index — **not** the step number (the step number already lives in the column header chip at the top, §2.2). Showing the lane key as the node badge gives each node a self-contained "who" identifier that survives when a single node is excerpted out of context. Mirrors the same rule in `type-data-flow.md` §2.4.
158
+
159
+ Empty cells (no node entry) render **nothing**. No placeholder rect, no role chip, no label.
160
+
161
+ **Chip-vs-tool-text collision rule:** chips sit at `node_y + 54..62`; tool text baseline is at `node_y + 52`. If a node has a two-line title (rare), increase node_h to 72 OR omit the chips for that node. Default behaviour: omit chips on collision.
162
+
163
+ ---
164
+
165
+ ## 3. Connector rules (mandatory)
166
+
167
+ Three styles, bound to topology. Connectors drawn **before** all node rects (z-order rule).
168
+
169
+ | `style` | Stroke | Width | Dash | Marker | When required |
170
+ |---|---|---|---|---|---|
171
+ | `normal` | `#4f5d75` (muted) | 1.0 | — | `arrow` | Standard data hand-off between steps or actors. Unlabelled. |
172
+ | `focal-in` / `focal-out` | `#eb6c36` (accent) | 1.2 | — | `arrow-accent` | Every edge whose endpoint is the focal node (`focal-in`) or origin is the focal node (`focal-out`). |
173
+ | `trigger` | `#4f5d75` (muted) | 1.0 | `4,3` | `arrow-sm` | Orchestration trigger (scheduler → tool, manual override → upstream step). Unlabelled. |
174
+
175
+ **Defs block** (required, three markers):
176
+
177
+ ```svg
178
+ <defs>
179
+ <pattern id="dots" width="22" height="22" patternUnits="userSpaceOnUse">
180
+ <circle cx="11" cy="11" r="0.8" fill="rgba(45,49,66,0.10)"/>
181
+ </pattern>
182
+ <marker id="arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#4f5d75"/></marker>
183
+ <marker id="arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#eb6c36"/></marker>
184
+ <marker id="arrow-sm" markerWidth="6" markerHeight="5" refX="5" refY="2.5" orient="auto"><polygon points="0 0, 6 2.5, 0 5" fill="#4f5d75"/></marker>
185
+ </defs>
186
+ ```
187
+
188
+ ### 3.1 Routing rules (non-negotiable)
189
+
190
+ **Single-bend right-angle:** exit RIGHT → corridor → enter TOP (↓ destination below) or BOTTOM (↑ destination above).
191
+
192
+ - Source-side: exit at `(node_x + 100, lane_y_mid(src_lane))` — node's right edge, vertical center.
193
+ - Destination-side: enter at `(step_cx(dst_step), node_y(dst_lane))` for downward, or `(step_cx(dst_step), node_y(dst_lane) + 64)` for upward.
194
+ - Corner radius: 8-px Q-bezier at the bend.
195
+ - Same-lane edges (rare — same lane, adjacent steps): horizontal `<line>` from src right to dst left.
196
+ - **No diagonals.** **No left-side entry.** **No exit from the top/bottom of a node.**
197
+
198
+ ```svg
199
+ <!-- Downward (destination lane > source lane) -->
200
+ <path d="M {rx},{src_cy} H {dst_cx - 8} Q {dst_cx},{src_cy} {dst_cx},{src_cy + 8} V {dst_top}"
201
+ fill="none" stroke="…" stroke-width="…" marker-end="…"/>
202
+
203
+ <!-- Upward (destination lane < source lane) -->
204
+ <path d="M {rx},{src_cy} H {dst_cx - 8} Q {dst_cx},{src_cy} {dst_cx},{src_cy - 8} V {dst_bottom}"
205
+ fill="none" stroke="…" stroke-width="…" marker-end="…"/>
206
+
207
+ <!-- Same lane (adjacent step) -->
208
+ <line x1="{src_right}" y1="{lane_cy}" x2="{dst_left}" y2="{lane_cy}"
209
+ stroke="…" stroke-width="…" marker-end="…"/>
210
+ ```
211
+
212
+ - **Z-order:** all `<path>` and `<line>` connectors emitted **before** any node `<rect>`.
213
+ - **Markers:** exactly one `marker-end` per path. Never `marker-start`.
214
+ - **Labels:** all process arrows are unlabelled by default. The step number + the actor lane carry the semantic; a label on every arrow is noise. Only label an arrow if it represents a non-step concept (re-test loop, escalation) — then use a paper-masked rect behind 6.5-px mono text.
215
+
216
+ ### 3.2 Crossings
217
+
218
+ Avoid. The corridor x position (8 px before destination node) is the only routing column — if two arrows would cross there, **swap step assignments** or **split into two diagrams** rather than introducing a bend-around. Crossings hide the underlying control flow.
219
+
220
+ ---
221
+
222
+ ## 4. Component color override
223
+
224
+ Any node, lane, or step accepts an optional `color: "#hex"`. Mirrors `type-data-flow.md` §4 and `type-high-level.md` §3.4 so the rule reads identically across types.
225
+
226
+ ### 4.1 Per-node `color`
227
+
228
+ Applied to:
229
+
230
+ | Element | Light | Dark |
231
+ |---|---|---|
232
+ | Container fill (`rect`) | `rgba(C, 0.06)` | `rgba(C_light, 0.10)` |
233
+ | Container stroke | `rgba(C, 0.35)` (stroke-width 1) | `rgba(C_light, 0.45)` |
234
+ | Role chip fill | `rgba(C, 0.18)` | `rgba(C_light, 0.22)` |
235
+ | Role chip text | `C` | `C_light` |
236
+ | Title text | `C` | `C_light` |
237
+ | Sub-label (in → out) | **unchanged** (muted) | **unchanged** (muted) |
238
+ | Tool label | **unchanged** (soft) | **unchanged** (soft) |
239
+ | Data-type chips | **unchanged** | **unchanged** |
240
+ | Arrows touching this node | **unchanged** — topology-driven | **unchanged** |
241
+
242
+ `C_light` = the same hex lightened ~15% for dark-mode contrast (e.g., `#b85450` → `#d97a78`).
243
+
244
+ ### 4.2 Per-step `color`
245
+
246
+ Replaces the step header chip's fill with `rgba(C, 0.20)` and the chip's number text fill with `C`. The legend's matching step entry uses the same colors.
247
+
248
+ ### 4.3 Per-lane `color`
249
+
250
+ Replaces the lane stripe tint with `rgba(C, 0.04)` and the lane label text fill with `C`. Use sparingly — lane tints are easy to over-apply.
251
+
252
+ ### 4.4 Rules
253
+
254
+ - **Never on focal nodes / focal steps.** The accent already carries that signal. A `color` on a focal element is ignored.
255
+ - **Never on arrows.** Arrows are topology-driven. If you want a colored edge, pick a different `style` from §3, not a color override.
256
+ - **Cap at 3 custom-colored elements** per diagram (nodes + lanes + steps combined), in addition to the focal pair (focal node + focal step header). Above 3 the visual signal starts to fragment.
257
+ - **Subtitle and tool labels stay muted** regardless of any component `color`.
258
+
259
+ ### 4.5 Semantic palette (recommended)
260
+
261
+ Same palette as `type-high-level.md`, `type-dp-integration.md`, `type-data-flow.md`:
262
+
263
+ - `#b85450` rust-red — Security / Identity / Governance (access control, training, approvals)
264
+ - `#5a7d9a` slate-blue — Observability / Quality (data quality gates, validation, monitoring)
265
+ - `#7a8c47` olive-green — Data Products / Publication (consumer-ready outputs, releases)
266
+ - `#8c6d3f` warm-brown — Backup / DR / Archive
267
+
268
+ ---
269
+
270
+ ## 5. Focal rule
271
+
272
+ The process diagram has three focal slots, exactly one entry each:
273
+
274
+ - **One focal step** (`steps[j].focal: true`) — typically the analytical or decision pivot (Test, Approve, Validate). Header chip and legend chip render in accent.
275
+ - **One focal node** (`nodes[i].focal: true`) — the node that *receives* the critical handoff. Accent border + accent role chip + ink title (title text stays ink so it's still readable; only the border + role chip carry the accent).
276
+ - **One focal arrow set** (`style: focal-in` and `focal-out`) — edges into and out of the focal node. Accent solid strokes.
277
+
278
+ If zero or >1 of any focal slot are declared, halt and ask the user.
279
+
280
+ ---
281
+
282
+ ## 6. Dark mode
283
+
284
+ | Token | Light | Dark |
285
+ |---|---|---|
286
+ | Paper | `#f5f5f5` | `#2d3142` |
287
+ | Ink | `#2d3142` | `#f5f5f5` |
288
+ | Muted | `#4f5d75` | `#bfc0c0` |
289
+ | Soft | `#7a8399` | `#8e98ac` |
290
+ | Accent | `#eb6c36` | `#f08a59` |
291
+ | Dot pattern | `rgba(45,49,66,0.10)` | `rgba(245,245,245,0.10)` |
292
+ | Lane tint | `rgba(45,49,66,0.018)` | `rgba(245,245,245,0.025)` |
293
+ | Dividers | `rgba(45,49,66,0.12)` | `rgba(245,245,245,0.12)` |
294
+ | Label col divider | `rgba(45,49,66,0.20)` | `rgba(245,245,245,0.22)` |
295
+ | Default chip fill | `rgba(45,49,66,0.12)` | `rgba(245,245,245,0.12)` |
296
+ | Focal chip fill | `rgba(235,108,54,0.20)` | `rgba(240,138,89,0.22)` |
297
+ | Default node fill | white | `rgba(245,245,245,0.04)` |
298
+ | Default node stroke | `rgba(45,49,66,0.25)` | `rgba(245,245,245,0.20)` |
299
+ | Focal node fill | `rgba(235,108,54,0.08)` | `rgba(240,138,89,0.12)` |
300
+ | Focal node stroke | `#eb6c36` | `#f08a59` |
301
+ | Custom component colors | `C` | `C_light` (lighten ~15%) |
302
+
303
+ ---
304
+
305
+ ## 7. Reproducibility checklist (taste gate)
306
+
307
+ Before emitting SVG, verify **every** item:
308
+
309
+ 1. `viewBox = "0 0 {viewBox_w} {viewBox_h}"` derived via §2.
310
+ 2. Header strip at `y=0..36`; legend strip at `y=legend_y_top..viewBox_h` (`legend_y_top = 36 + n_lanes * 80`).
311
+ 3. Every node at `(step_cx(j) - 50, lane_y_top(k) + 8)` size `100×64`.
312
+ 4. Empty cells render nothing — no placeholder rect, no text.
313
+ 5. Exactly **one** focal step (`steps[j].focal: true`).
314
+ 6. Exactly **one** focal node (`nodes[i].focal: true`).
315
+ 7. Focal-touching arrows use `style: focal-in` / `focal-out` (accent).
316
+ 8. All other arrows `style: normal` (muted solid) or `style: trigger` (muted dashed). Unlabelled by default.
317
+ 9. All arrows emitted before any node rect (z-order rule).
318
+ 10. Single-bend right-angle routing only — exit right, enter top/bottom. No diagonals. Q-bezier `r=8` at each bend.
319
+ 11. Custom component colors ≤ 3 (in addition to the focal pair). Arrows never recolored by component `color`.
320
+ 12. Subtitle and tool labels stay muted regardless of any component `color`. Input chip skipped on first step's nodes, output chip skipped on last step's nodes.
321
+
322
+ ---
323
+
324
+ ## 8. Data-type chips reference (input + output)
325
+
326
+ Same catalog as `type-data-flow.md` §8.
327
+
328
+ - **Input chip** at `(node_x+4, node_y+54)` — bottom-**left**. Payload entering the node.
329
+ - **Output chip** at `(node_x+80, node_y+54)` — bottom-**right**. Payload leaving the node.
330
+ - Either chip may be omitted (first/last step, unknown payload).
331
+
332
+ ### Chip codes
333
+
334
+ | Code | Color (light) | Color (dark) | Meaning |
335
+ |------|---------------|--------------|---------|
336
+ | `LS` | `#7c8f6f` sage | `#9caf8f` | List / assignment / task |
337
+ | `DB` | `#5e7a9b` dusty-blue | `#82a0c0` | Dataset / tabular records |
338
+ | `TB` | `#b8915a` mustard | `#d3ad7a` | Table (analysis-ready) |
339
+ | `FL` | `#9c6b50` rust-brown | `#b88670` | File / document / report |
340
+ | `WB` | `#6e6479` slate | `#8d8298` | Web / press / public release |
341
+ | N/A | omit chip entirely | — | Unknown or not applicable |
342
+
343
+ Text inside chip: white, font-size 5, weight 700, mono.
344
+
345
+ Data-type chip colors are a **separate semantic axis** from the per-node color override (§4). Chip colors describe *payload format*; node color describes *concern type*. A node can have both an `out: TB` mustard chip and a rust-red border simultaneously.
346
+
347
+ ---
348
+
349
+ ## 9. Legend (3- or 4-row strip)
350
+
351
+ Each row introduced by a category label at `x = label_col_w + 4` (= 144). The default legend has **3 rows** (`STEPS` / `DATA TYPE` / `FLOW`); when one or more nodes carry a `color` override (§4), add a 4th `CONCERN` row and grow `legend_h` to 100.
352
+
353
+ - **Row 1 — `STEPS`** at `y = legend_y_top + 16`: repeat the header chips with their labels. Focal step keeps accent fill.
354
+ - **Row 2 — `DATA TYPE`** at `y = legend_y_top + 37`: one swatch per chip type actually used in the diagram. Append a small sub-hint in muted mono: `left chip = input · right chip = output`.
355
+ - **Row 3 — `CONCERN`** (only when color overrides are present) at `y = legend_y_top + 58`: one mini-rect per custom color used, with its semantic label.
356
+ - **Row 4 — `FLOW`** (position depends on whether `CONCERN` row exists): one segment per arrow style actually used, with marker + label.
357
+
358
+ ---
359
+
360
+ ## 10. Complexity budget
361
+
362
+ | Dimension | Max |
363
+ |---|---|
364
+ | Lanes (actors) | 6 |
365
+ | Steps | 12 |
366
+ | Nodes per lane | Nodes = active steps only — empty cells are invisible |
367
+ | Labelled arrows | 0 by default (label only for non-step concepts) |
368
+ | Data-type chips per node | 2 (input + output) |
369
+ | Custom-colored elements (§4) | 3 (in addition to focal node + focal step) |
370
+
371
+ Above 6 lanes or 12 steps: split into two diagrams (overview + detail).
372
+
373
+ ---
374
+
375
+ ## 11. Anti-patterns
376
+
377
+ - **Placeholder empty cells** — if an actor doesn't participate in a step, leave the cell empty (no box, no text).
378
+ - **Diagonal arrows** — every connector must have exactly one right-angle bend. No direct straight lines between nodes in different lanes.
379
+ - **Left/right port entry on a vertical-dominant arrow** — always exit right, enter top or bottom.
380
+ - **More than one focal step / focal node** — pick the single most critical operation.
381
+ - **Unlabelled lanes** — every swimlane must identify its actor.
382
+ - **All arrows the same style** — orchestration triggers must be dashed to distinguish them from data-flow connectors.
383
+ - **`color` override on a focal element** — ignored. Accent always wins.
384
+ - **Custom-colored arrows** — connectors are topology-driven; `color` on a node never spreads to its edges.
385
+ - **Lane tints over-applied** — a tint on every lane reads as decoration, not signal. Apply to ≤1 lane.
386
+ - **Data-type chips in a double-line-name node** — skip the chips or shorten the name to one line.
387
+ - **More than 12 steps without splitting** — use an overview + detail pair.
388
+
389
+ ---
390
+
391
+ ## 12. Worked example — full YAML for `example-process-extended.html`
392
+
393
+ The extended example diagram is fully described by the following inputs. Every coordinate in the rendered SVG is derivable from this block via §2 + §3 + §4. This is the canonical proof that the parametric contract works end-to-end.
394
+
395
+ ```yaml
396
+ # Quarterly survey — end-to-end workflow (extended variant)
397
+ # 6 lanes × 11 steps, 1 focal step + 1 focal node + 3 custom-colored nodes
398
+
399
+ lanes:
400
+ - { name: ["RD&E"], key: "RDE" }
401
+ - { name: ["IT"], key: "IT" }
402
+ - { name: ["FIELD", "SERVICES"], key: "FLD" }
403
+ - { name: ["SURVEY", "SERVICES"], key: "SVY" }
404
+ - { name: ["HOUSEHOLD", "UNIT"], key: "HHU" }
405
+ - { name: ["COMMS &", "MARKETING"], key: "CMM" }
406
+
407
+ steps:
408
+ - { number: "1", label: "Design" }
409
+ - { number: "2", label: "Assign" }
410
+ - { number: "3", label: "Collect", focal: true } # focal step header chip
411
+ - { number: "4", label: "Review" }
412
+ - { number: "5", label: "Validate" }
413
+ - { number: "6", label: "Weight" }
414
+ - { number: "7", label: "Clean" }
415
+ - { number: "8", label: "Tabulate" }
416
+ - { number: "9", label: "Approve" }
417
+ - { number: "10", label: "Publish" }
418
+ - { number: "11", label: "Upload" }
419
+
420
+ nodes:
421
+ - { lane: "RDE", step: 0, title: "Sample Design", sub: "Census data → Sample",
422
+ tool: "SAS · Survey Solutions", chips: {in: null, out: "LS"} } # first step: no input chip
423
+ - { lane: "IT", step: 1, title: "Field Assignment", sub: "Sample → Field tasks",
424
+ tool: "Survey Solutions", chips: {in: "LS", out: "LS"} }
425
+ - { lane: "FLD", step: 2, title: "Data Collection", sub: "→ 10,464 dwellings",
426
+ tool: "Survey Solutions", chips: {in: "LS", out: "DB"}, focal: true } # focal node
427
+ - { lane: "SVY", step: 3, title: "HQ Review", sub: "Submissions → Approved",
428
+ tool: "Survey Sol. HQ", chips: {in: "DB", out: "DB"}, color: "#b85450" } # rust-red · governance
429
+ - { lane: "IT", step: 4, title: "Error Checks", sub: "Approved → Cleaned",
430
+ tool: "SAS · Scripts", chips: {in: "DB", out: "DB"}, color: "#5a7d9a" } # slate-blue · data quality
431
+ - { lane: "RDE", step: 5, title: "Weight Calculation", sub: "Cleaned → Weighted",
432
+ tool: "SAS", chips: null } # 2-line title — chips skipped
433
+ - { lane: "HHU", step: 6, title: "2° Cleaning", sub: "Weighted → Analysis",
434
+ tool: "SAS · R · SPSS", chips: {in: "DB", out: "TB"} }
435
+ - { lane: "HHU", step: 7, title: "Tables + Brief", sub: "Analysis → Tables",
436
+ tool: "Excel · SAS", chips: {in: "TB", out: "FL"} }
437
+ - { lane: "CMM", step: 8, title: "Stats Review", sub: "Tables → Approved",
438
+ tool: "Internal review", chips: {in: "FL", out: "FL"} }
439
+ - { lane: "CMM", step: 9, title: "Public Release", sub: "Approved → Public",
440
+ tool: "Press conference", chips: {in: "FL", out: "WB"}, color: "#7a8c47" } # olive-green · data products
441
+ - { lane: "IT", step: 10, title: "Upload NatStat / SDMX", sub: "Results → Published",
442
+ tool: "Web · SDMX API", chips: null } # 2-line title — chips skipped
443
+
444
+ arrows:
445
+ - { from: {lane: "RDE", step: 0}, to: {lane: "IT", step: 1}, style: "normal" }
446
+ - { from: {lane: "IT", step: 1}, to: {lane: "FLD", step: 2}, style: "focal-in" } # → focal
447
+ - { from: {lane: "FLD", step: 2}, to: {lane: "SVY", step: 3}, style: "focal-out" } # ← focal
448
+ - { from: {lane: "SVY", step: 3}, to: {lane: "IT", step: 4}, style: "normal" } # upward
449
+ - { from: {lane: "IT", step: 4}, to: {lane: "RDE", step: 5}, style: "normal" } # upward
450
+ - { from: {lane: "RDE", step: 5}, to: {lane: "HHU", step: 6}, style: "normal" } # downward, skips 2 lanes
451
+ - { from: {lane: "HHU", step: 6}, to: {lane: "HHU", step: 7}, style: "normal" } # same lane
452
+ - { from: {lane: "HHU", step: 7}, to: {lane: "CMM", step: 8}, style: "normal" }
453
+ - { from: {lane: "CMM", step: 8}, to: {lane: "CMM", step: 9}, style: "normal" } # same lane
454
+ - { from: {lane: "CMM", step: 9}, to: {lane: "IT", step: 10}, style: "normal" } # upward, skips 4 lanes
455
+
456
+ dark: false
457
+ ```
458
+
459
+ ### 12.1 What this YAML proves
460
+
461
+ Run §2 of this reference with these inputs:
462
+
463
+ - `n_lanes = 6`, `n_steps = 11`, `has_color_row = true` (3 nodes carry `color`).
464
+ - `viewBox_w = 140 + 11 * 112 + 28 = 1400`. ✓ matches rendered SVG.
465
+ - `legend_h = 100`, `viewBox_h = 36 + 6 * 80 + 100 = 616`. ✓
466
+ - Lane y_top = [36, 116, 196, 276, 356, 436]; lane mid = [76, 156, 236, 316, 396, 476]. ✓
467
+ - Step cx = [198, 310, 422, 534, 646, 758, 870, 982, 1094, 1208, 1320] (the 8-px content-area gutter shifts every value by 8 from `140 + j*112 + 50`). ✓
468
+ - Node 4 (HQ Review): step=3, lane="SVY" (k=3) → x = 534-50 = 484, y = 276+8 = 284. ✓
469
+ - Node 5 (Error Checks): step=4, lane="IT" (k=1) → x = 646-50 = 596, y = 116+8 = 124. ✓
470
+ - Node 10 (Public Release): step=9, lane="CMM" (k=5) → x = 1208-50 = 1158, y = 436+8 = 444. ✓ *(Rendered uses x=1156 — 2-px tolerance from chip-width rounding on the step "10" label.)*
471
+
472
+ The two coord drifts on the rightmost two nodes (chip width=20 for two-digit step numbers shifts the chip but not the node center math) are an artifact of the existing hand-tuned example, not a formula failure — a fresh generation from this YAML would produce x=1158 and the diagram would be visually indistinguishable from the shipped version.
473
+
474
+ ### 12.2 Adapting this YAML to a different process
475
+
476
+ To document a different process, change only the value of these inputs:
477
+
478
+ - **Lanes**: rename `lanes[k].name` to your team names; update each `nodes[i].lane` to match. Up to 6 lanes.
479
+ - **Steps**: rename `steps[j].label`, move `focal: true` to the step that defines the diagram's central claim. Up to 12 steps.
480
+ - **Nodes**: write one entry per `(lane, step)` cell that has work. Leave cells empty (no entry) to render nothing.
481
+ - **Colors**: choose `color: "#hex"` on at most 3 nodes (§4 cap). Stick to the recommended palette unless brand demands otherwise.
482
+ - **Arrows**: declare every edge explicitly with `style: normal | focal-in | focal-out | trigger`. The routing rule (§3.1) fills in the geometry.
483
+
484
+ Everything else — viewBox sizing, chip positions, legend layout, dark-mode token swap — is derivable. The YAML is the **source of truth**; the SVG is one of many possible renderings of it (light/dark/full all derive from the same inputs with different style tokens).
485
+
486
+ ---
487
+
488
+ ## 13. Examples
489
+
490
+ - `assets/example-process.html` — minimal light (quarterly survey: 11 steps, 6 divisions, data-type chips). Gallery default.
491
+ - `assets/example-process-dark.html` — same, dark skin.
492
+ - `assets/example-process-full.html` — same, editorial-card frame.
493
+ - `assets/example-process-extended.html` — exercises §4 color override: Build app in slate-blue (data quality), Train enumerators in rust-red (governance), Publish results in olive-green (data products). Focal accent on Pilot test step + node unchanged.
494
+ - `assets/example-process-extended-dark.html` — extended pattern, dark skin.
495
+ - `assets/example-process-extended-full.html` — extended pattern, editorial-card frame.
@@ -0,0 +1,33 @@
1
+ # Pyramid / Funnel
2
+
3
+ **Best for:** hierarchy of needs, prioritization ranks, value pyramids, conversion funnels, content importance stacks.
4
+
5
+ ## Two orientations — pick one
6
+ - **Pyramid** (point up) — narrow apex = most important / rarest / most valuable. Base is broadest / foundational.
7
+ - **Funnel** (point down) — narrow end = conversion (smallest group). Top is widest / audience.
8
+
9
+ Don't mix orientations on one diagram.
10
+
11
+ ## Layout conventions
12
+ - 4–6 layers. Each layer is a trapezoid built from an SVG `<polygon>` with 4 points.
13
+ - Consistent layer height (56–72px).
14
+ - Widths decrease linearly from base to apex (pyramid) or top to bottom (funnel). When showing real funnel data, widths must be honest (proportional to count/percentage).
15
+ - Each layer has:
16
+ - **Name label** centered inside the trapezoid — Geist 12–14px 600.
17
+ - **Sublabel** below or beside the name — Geist Mono 9–10px.
18
+ - **Side annotation** (right or left) — optional. For funnels: drop-off percentage here (`−40%`).
19
+ - Fill: subtle graded tints OR all paper-2 with hairline dividers (cleaner). Pick one.
20
+ - Stroke: 1px hairline between layers; outer silhouette 1px muted or ink.
21
+ - **Coral on ONE layer only**: apex of pyramid, conversion layer of funnel, or critical bottleneck.
22
+ - Optional left-margin axis arrow + Geist Mono label (`rarer ↑`, `drop-off ↓`).
23
+
24
+ ## Anti-patterns
25
+ - 7+ layers (illegible — compress or split).
26
+ - Pyramid for non-hierarchical data (use a tree or bar chart).
27
+ - Dishonest widths (fake equal spacing when drops are unequal).
28
+ - Coral on the base layer (dilutes the "apex = rare" signal).
29
+
30
+ ## Examples
31
+ - `assets/example-pyramid.html` — minimal light
32
+ - `assets/example-pyramid-dark.html` — minimal dark
33
+ - `assets/example-pyramid-full.html` — full editorial
@@ -0,0 +1,81 @@
1
+ # Quadrant
2
+
3
+ **Best for:** prioritization (Impact × Effort), positioning (Reach × Frequency), portfolio maps, 2×2 decision frames.
4
+
5
+ ## Layout conventions
6
+ - 2×2 grid. Axis lines: 1px ink cross through the center.
7
+ - **Axis labels: Jobs-minimal.** One single word at each arrow tip — no glyphs baked into the label (no `↑` / `→` / `←` / `↓`), no parentheticals, no "HIGH / LOW" modifiers. Geist Mono 9px regular weight, tracked 0.18em, uppercase. Flank the arrow tips — never sit labels on top of the axis line. Shorten the arrow enough (~60–80px inside the viewBox edge) to leave breathing room for the labels beyond the tips.
8
+ - Never label at the midpoint.
9
+ - Items: small labeled dots (`r=4`) positioned in the quadrants. Labels 8–10px away; don't let labels cross axis lines.
10
+ - Coral on the "do first" item (typically top-right).
11
+ - Limit to ~12 items; cluster or split beyond that.
12
+
13
+ ## Anti-patterns
14
+ - Four filled quadrants in different colors — position + label does the work; color noise weakens it.
15
+ - Items placed on axis lines (ambiguous quadrant).
16
+ - Missing axis names.
17
+
18
+ ## Examples
19
+ - `assets/example-quadrant.html` — minimal light
20
+ - `assets/example-quadrant-dark.html` — minimal dark
21
+ - `assets/example-quadrant-full.html` — full editorial
22
+ - `assets/example-quadrant-consultant.html` — consultant special (see below)
23
+
24
+ ---
25
+
26
+ ## Consultant special (2×2 scenario matrix)
27
+
28
+ A **layout variant** of the standard quadrant — same house skin (warm paper, dot pattern, Instrument Serif title, Geist mono eyebrows, coral focal rule). The grammar shifts: axes hold a **range** rather than a measurement; cells hold **named scenarios** rather than positioned items.
29
+
30
+ **Use when:** you're framing four futures, archetypes, or strategic options across two independent drivers — classic scenario planning, positioning frames, or 2×2 strategy decks (BCG/McKinsey territory). The reader should come away with four named bets, not a point cloud.
31
+
32
+ **Do not use** for prioritization, density maps, or anything where the *position inside* a cell carries meaning — that's the standard quadrant above.
33
+
34
+ ### What makes it the consultant variant
35
+
36
+ | Move | Standard quadrant | Consultant special |
37
+ |---|---|---|
38
+ | Axis arrows | single-ended | **double-ended** — both axes have `marker-start` + `marker-end` |
39
+ | Cell content | small dots with labels | **named scenario + 1–3 line description** |
40
+ | Quadrant corner | short tag (e.g. DO FIRST) | **numbered tag + axis combination** (`01 · DIMENSION-A / DIMENSION-B`) |
41
+ | Focal accent | coral on one *item* | coral on one *quadrant* — tinted bg + coral stroke + coral corner tag |
42
+ | Axes | 1px muted ink | **1.2px ink** (slightly heavier — the axes carry more of the figure) |
43
+
44
+ Both variants use the same Jobs-minimal axis labels: one word at each arrow tip, no glyphs, no parentheticals. The only axis difference is that the consultant variant uses double-ended arrows instead of single-ended.
45
+
46
+ Everything else — paper, dot pattern, typography, legend strip, 4px grid, complexity budget — is the house default. Don't invent new colors or fonts for this variant.
47
+
48
+ ### Style tokens (in-house)
49
+
50
+ - **Paper / bg / pattern**: defaults from `style-guide.md` (`paper`, 22×22 dot pattern at 10% ink).
51
+ - **Axis lines**: `ink` (`#2d3142`), `stroke-width: 1.2`, `marker-start` + `marker-end` both pointing outward.
52
+ - **Focal quadrant tint**: `rgba(235,108,54,0.04)` full rect behind the focal cell.
53
+ - **Focal cell**: `accent-tint` fill, `accent` stroke at 1.2px. Corner tag in `accent`, weight 600.
54
+ - **Non-focal cells**: `store` treatment (`ink @ 0.04` fill, `muted @ 0.28` stroke).
55
+ - **Cell title**: Geist sans, 16px, weight 600, `ink`.
56
+ - **Cell description**: Geist sans, 11px, `muted`, 1–3 lines, left-aligned inside the cell.
57
+ - **Corner tag**: Geist Mono, 8px, uppercase, tracked `0.18em`, `muted` (or `accent` on focal). Format: `NN · DIMENSION-A / DIMENSION-B` — the two axis-dimension words must match the axis labels exactly.
58
+ - **Axis labels**: Geist Mono 9px **regular weight** (not bold), tracked `0.18em`, uppercase, `ink`. **One word per tip.** No arrow glyphs in the label, no `HIGH / LOW` parentheticals, no multi-line sublabels. The word itself *is* the label. Position labels *beyond* the arrow tips (not on the axis line):
59
+ - Top tip: `text-anchor="middle"`, ~12px above the arrow tip
60
+ - Bottom tip: `text-anchor="middle"`, ~20px below the arrow tip
61
+ - Left tip: `text-anchor="end"`, ~12px left of the arrow tip, `dominant-baseline="middle"`
62
+ - Right tip: `text-anchor="start"`, ~12px right of the arrow tip, `dominant-baseline="middle"`
63
+
64
+ ### Layout conventions
65
+
66
+ - Four cells, equal size (240×160 or 280×180 are good defaults), arranged with a 40–60px gap from the axis cross.
67
+ - Axis cross passes *between* the cells, not through them.
68
+ - Arrow tips live ~20–40px outside the outermost cell edge; single-word axis labels sit ~12px beyond each tip (see Axis labels above).
69
+ - Exactly one focal cell. Picking none makes it a placeholder template; picking two erases the signal.
70
+ - Keep the legend strip + horizontal rule at the bottom — same as the standard quadrant. Legend swatches should show both "headline bet" (coral) and "candidate future" (neutral).
71
+
72
+ ### Anti-patterns (variant-specific)
73
+
74
+ - Plain white background — the warm paper + dot pattern is load-bearing across the skill; dropping it to "look consultant" turns the diagram generic.
75
+ - Sans-serif H1 — keep Instrument Serif for the page title. The title/diagram contrast is the house signature.
76
+ - Unnamed cells ("Scenario 1/2/3/4") in a shipped diagram — OK as a blank template; not OK as a finished artifact.
77
+ - Coral on more than one cell — same focal rule as everywhere else in the skill.
78
+ - 3×3 or 2×3 grids — those are different diagrams, not this variant.
79
+ - Positioning dots *inside* the cells — if position matters, use the standard quadrant.
80
+ - Bolded axis labels, arrow glyphs in the text (`↑ DRIVER`), or "HIGH / LOW" parentheticals — all forbidden. Jobs-minimal is non-negotiable on this variant.
81
+ - Corner tags that disagree with the axis labels (e.g. axis says `REMOTE / IN-PERSON` but the tag reads `HIGH REMOTE / LOW AI`). Reader parses this as a bug in three seconds.