@baselane/packs 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/LICENSE +191 -0
  2. package/NOTICE +6 -0
  3. package/README.md +15 -0
  4. package/dist/ai-merge.d.ts +26 -0
  5. package/dist/ai-merge.js +165 -0
  6. package/dist/aliases.d.ts +7 -0
  7. package/dist/aliases.js +9 -0
  8. package/dist/compose-draft.d.ts +19 -0
  9. package/dist/compose-draft.js +170 -0
  10. package/dist/drift-detect.d.ts +8 -0
  11. package/dist/drift-detect.js +21 -0
  12. package/dist/index.d.ts +40 -0
  13. package/dist/index.js +21 -0
  14. package/dist/ingest.d.ts +25 -0
  15. package/dist/ingest.js +262 -0
  16. package/dist/load.d.ts +7 -0
  17. package/dist/load.js +29 -0
  18. package/dist/manifest.d.ts +71 -0
  19. package/dist/manifest.js +208 -0
  20. package/dist/materialize-harness.d.ts +15 -0
  21. package/dist/materialize-harness.js +48 -0
  22. package/dist/merge-region.d.ts +60 -0
  23. package/dist/merge-region.js +166 -0
  24. package/dist/overlap.d.ts +32 -0
  25. package/dist/overlap.js +49 -0
  26. package/dist/pack-from-fileset.d.ts +13 -0
  27. package/dist/pack-from-fileset.js +133 -0
  28. package/dist/render/adapters.d.ts +6 -0
  29. package/dist/render/adapters.js +43 -0
  30. package/dist/render/agents-md.d.ts +3 -0
  31. package/dist/render/agents-md.js +49 -0
  32. package/dist/render/bundle-union.d.ts +10 -0
  33. package/dist/render/bundle-union.js +87 -0
  34. package/dist/render/bundle.d.ts +3 -0
  35. package/dist/render/bundle.js +51 -0
  36. package/dist/render/capabilities.d.ts +19 -0
  37. package/dist/render/capabilities.js +86 -0
  38. package/dist/render/claude.d.ts +3 -0
  39. package/dist/render/claude.js +92 -0
  40. package/dist/render/design.d.ts +27 -0
  41. package/dist/render/design.js +443 -0
  42. package/dist/render/graph.d.ts +11 -0
  43. package/dist/render/graph.js +245 -0
  44. package/dist/render/memory.d.ts +35 -0
  45. package/dist/render/memory.js +353 -0
  46. package/dist/render/render-pack.d.ts +3 -0
  47. package/dist/render/render-pack.js +43 -0
  48. package/dist/render/repo-union.d.ts +14 -0
  49. package/dist/render/repo-union.js +94 -0
  50. package/dist/render/rollout-files.d.ts +18 -0
  51. package/dist/render/rollout-files.js +39 -0
  52. package/dist/render/system-map.d.ts +8 -0
  53. package/dist/render/system-map.js +73 -0
  54. package/dist/render/tasks.d.ts +32 -0
  55. package/dist/render/tasks.js +327 -0
  56. package/dist/render/wiki.d.ts +30 -0
  57. package/dist/render/wiki.js +288 -0
  58. package/dist/seed/graph-seed.d.ts +17 -0
  59. package/dist/seed/graph-seed.js +18 -0
  60. package/dist/seed/wiki-seed.d.ts +23 -0
  61. package/dist/seed/wiki-seed.js +133 -0
  62. package/dist/seed-skills.d.ts +18 -0
  63. package/dist/seed-skills.js +134 -0
  64. package/dist/types.d.ts +122 -0
  65. package/dist/types.js +1 -0
  66. package/dist/validate.d.ts +30 -0
  67. package/dist/validate.js +397 -0
  68. package/package.json +38 -0
  69. package/packs/database-review/pack.json +44 -0
  70. package/packs/database-review/rendered/.baselane/capabilities.json +10 -0
  71. package/packs/database-review/rendered/.baselane/system-map/README.md +18 -0
  72. package/packs/database-review/rendered/.claude/agents/database-reviewer.md +8 -0
  73. package/packs/database-review/rendered/.claude/commands/db-review.md +6 -0
  74. package/packs/database-review/rendered/.claude/commands/map.md +6 -0
  75. package/packs/database-review/rendered/.claude/settings.json +26 -0
  76. package/packs/database-review/rendered/.github/copilot-instructions.md +48 -0
  77. package/packs/database-review/rendered/AGENTS.md +66 -0
  78. package/packs/database-review/rendered/CLAUDE.md +9 -0
  79. package/packs/database-review/rendered/GEMINI.md +3 -0
  80. package/packs/disciplined-workflow/pack.json +63 -0
  81. package/packs/disciplined-workflow/rendered/.baselane/capabilities.json +10 -0
  82. package/packs/disciplined-workflow/rendered/.baselane/tasks/README.md +36 -0
  83. package/packs/disciplined-workflow/rendered/.claude/agents/plan-reviewer.md +8 -0
  84. package/packs/disciplined-workflow/rendered/.claude/agents/task-reviewer.md +8 -0
  85. package/packs/disciplined-workflow/rendered/.claude/commands/brainstorm.md +6 -0
  86. package/packs/disciplined-workflow/rendered/.claude/commands/execute-plan.md +6 -0
  87. package/packs/disciplined-workflow/rendered/.claude/commands/plan-work.md +6 -0
  88. package/packs/disciplined-workflow/rendered/.claude/commands/write-plan.md +6 -0
  89. package/packs/disciplined-workflow/rendered/.claude/settings.json +24 -0
  90. package/packs/disciplined-workflow/rendered/.github/copilot-instructions.md +24 -0
  91. package/packs/disciplined-workflow/rendered/AGENTS.md +43 -0
  92. package/packs/disciplined-workflow/rendered/CLAUDE.md +12 -0
  93. package/packs/disciplined-workflow/rendered/GEMINI.md +3 -0
  94. package/packs/frontend-design/pack.json +129 -0
  95. package/packs/frontend-design/rendered/.claude/skills/clone/SKILL.md +39 -0
  96. package/packs/frontend-design/rendered/.claude/skills/functional-ui/SKILL.md +78 -0
  97. package/packs/frontend-design/rendered/.claude/skills/gsap/SKILL.md +36 -0
  98. package/packs/frontend-design/rendered/.claude/skills/gsap/gsap-core.md +254 -0
  99. package/packs/frontend-design/rendered/.claude/skills/gsap/gsap-frameworks.md +266 -0
  100. package/packs/frontend-design/rendered/.claude/skills/gsap/gsap-performance.md +79 -0
  101. package/packs/frontend-design/rendered/.claude/skills/gsap/gsap-plugins.md +433 -0
  102. package/packs/frontend-design/rendered/.claude/skills/gsap/gsap-react.md +136 -0
  103. package/packs/frontend-design/rendered/.claude/skills/gsap/gsap-scrolltrigger.md +296 -0
  104. package/packs/frontend-design/rendered/.claude/skills/gsap/gsap-timeline.md +107 -0
  105. package/packs/frontend-design/rendered/.claude/skills/gsap/gsap-utils.md +284 -0
  106. package/packs/frontend-design/rendered/.claude/skills/marketing-ui/SKILL.md +36 -0
  107. package/packs/frontend-design/rendered/.claude/skills/shadcn/SKILL.md +267 -0
  108. package/packs/frontend-design/rendered/.claude/skills/shadcn/base-vs-radix.md +306 -0
  109. package/packs/frontend-design/rendered/.claude/skills/shadcn/cli.md +290 -0
  110. package/packs/frontend-design/rendered/.claude/skills/shadcn/composition.md +195 -0
  111. package/packs/frontend-design/rendered/.claude/skills/shadcn/customization.md +209 -0
  112. package/packs/frontend-design/rendered/.claude/skills/shadcn/forms.md +192 -0
  113. package/packs/frontend-design/rendered/.claude/skills/shadcn/icons.md +101 -0
  114. package/packs/frontend-design/rendered/.claude/skills/shadcn/mcp.md +105 -0
  115. package/packs/frontend-design/rendered/.claude/skills/shadcn/registry.md +277 -0
  116. package/packs/frontend-design/rendered/.claude/skills/shadcn/styling.md +162 -0
  117. package/packs/frontend-design/rendered/.github/copilot-instructions.md +474 -0
  118. package/packs/frontend-design/rendered/AGENTS.md +33 -0
  119. package/packs/frontend-design/rendered/CLAUDE.md +10 -0
  120. package/packs/frontend-design/rendered/GEMINI.md +456 -0
  121. package/packs/frontend-taste/pack.json +43 -0
  122. package/packs/frontend-taste/rendered/.baselane/capabilities.json +16 -0
  123. package/packs/frontend-taste/rendered/.claude/agents/taste-reviewer.md +8 -0
  124. package/packs/frontend-taste/rendered/.claude/commands/design-review.md +6 -0
  125. package/packs/frontend-taste/rendered/.claude/settings.json +15 -0
  126. package/packs/frontend-taste/rendered/.github/copilot-instructions.md +51 -0
  127. package/packs/frontend-taste/rendered/AGENTS.md +68 -0
  128. package/packs/frontend-taste/rendered/CLAUDE.md +8 -0
  129. package/packs/frontend-taste/rendered/DESIGN.md +72 -0
  130. package/packs/frontend-taste/rendered/GEMINI.md +3 -0
  131. package/packs/go-rules/pack.json +38 -0
  132. package/packs/go-rules/rendered/.claude/agents/go-reviewer.md +8 -0
  133. package/packs/go-rules/rendered/.claude/commands/go-review.md +6 -0
  134. package/packs/go-rules/rendered/.claude/settings.json +15 -0
  135. package/packs/go-rules/rendered/.github/copilot-instructions.md +44 -0
  136. package/packs/go-rules/rendered/AGENTS.md +54 -0
  137. package/packs/go-rules/rendered/CLAUDE.md +8 -0
  138. package/packs/go-rules/rendered/GEMINI.md +3 -0
  139. package/packs/python-rules/pack.json +38 -0
  140. package/packs/python-rules/rendered/.claude/agents/python-reviewer.md +8 -0
  141. package/packs/python-rules/rendered/.claude/commands/python-review.md +6 -0
  142. package/packs/python-rules/rendered/.claude/settings.json +15 -0
  143. package/packs/python-rules/rendered/.github/copilot-instructions.md +43 -0
  144. package/packs/python-rules/rendered/AGENTS.md +53 -0
  145. package/packs/python-rules/rendered/CLAUDE.md +8 -0
  146. package/packs/python-rules/rendered/GEMINI.md +3 -0
  147. package/packs/second-brain/pack.json +36 -0
  148. package/packs/second-brain/rendered/.baselane/capabilities.json +25 -0
  149. package/packs/second-brain/rendered/.baselane/memory/README.md +34 -0
  150. package/packs/second-brain/rendered/.baselane/wiki/README.md +62 -0
  151. package/packs/second-brain/rendered/.claude/agents/librarian.md +14 -0
  152. package/packs/second-brain/rendered/.claude/commands/remember.md +6 -0
  153. package/packs/second-brain/rendered/.claude/commands/wiki.md +6 -0
  154. package/packs/second-brain/rendered/.claude/settings.json +35 -0
  155. package/packs/second-brain/rendered/.github/copilot-instructions.md +24 -0
  156. package/packs/second-brain/rendered/AGENTS.md +41 -0
  157. package/packs/second-brain/rendered/CLAUDE.md +9 -0
  158. package/packs/second-brain/rendered/GEMINI.md +3 -0
  159. package/packs/security-review/pack.json +72 -0
  160. package/packs/security-review/rendered/.claude/agents/security-reviewer.md +8 -0
  161. package/packs/security-review/rendered/.claude/commands/security-audit.md +6 -0
  162. package/packs/security-review/rendered/.claude/commands/security-scan.md +6 -0
  163. package/packs/security-review/rendered/.claude/settings.json +35 -0
  164. package/packs/security-review/rendered/.claude/skills/security-audit/SKILL.md +44 -0
  165. package/packs/security-review/rendered/.claude/skills/validate-at-boundaries/SKILL.md +41 -0
  166. package/packs/security-review/rendered/.github/copilot-instructions.md +137 -0
  167. package/packs/security-review/rendered/AGENTS.md +66 -0
  168. package/packs/security-review/rendered/CLAUDE.md +11 -0
  169. package/packs/security-review/rendered/GEMINI.md +90 -0
  170. package/packs/software-engineer-harness/pack.json +98 -0
  171. package/packs/software-engineer-harness/rendered/.baselane/capabilities.json +15 -0
  172. package/packs/software-engineer-harness/rendered/.baselane/system-map/README.md +18 -0
  173. package/packs/software-engineer-harness/rendered/.baselane/tasks/README.md +36 -0
  174. package/packs/software-engineer-harness/rendered/.claude/agents/architect.md +8 -0
  175. package/packs/software-engineer-harness/rendered/.claude/agents/checker.md +8 -0
  176. package/packs/software-engineer-harness/rendered/.claude/agents/code-reviewer.md +8 -0
  177. package/packs/software-engineer-harness/rendered/.claude/agents/code-simplifier.md +8 -0
  178. package/packs/software-engineer-harness/rendered/.claude/agents/planner.md +8 -0
  179. package/packs/software-engineer-harness/rendered/.claude/agents/reviewer.md +8 -0
  180. package/packs/software-engineer-harness/rendered/.claude/commands/build-and-check.md +6 -0
  181. package/packs/software-engineer-harness/rendered/.claude/commands/map.md +6 -0
  182. package/packs/software-engineer-harness/rendered/.claude/commands/plan-change.md +6 -0
  183. package/packs/software-engineer-harness/rendered/.claude/commands/plan-work.md +6 -0
  184. package/packs/software-engineer-harness/rendered/.claude/commands/review-change.md +6 -0
  185. package/packs/software-engineer-harness/rendered/.claude/commands/tdd-task.md +6 -0
  186. package/packs/software-engineer-harness/rendered/.claude/settings.json +35 -0
  187. package/packs/software-engineer-harness/rendered/.github/copilot-instructions.md +37 -0
  188. package/packs/software-engineer-harness/rendered/AGENTS.md +58 -0
  189. package/packs/software-engineer-harness/rendered/CLAUDE.md +18 -0
  190. package/packs/software-engineer-harness/rendered/GEMINI.md +3 -0
  191. package/packs/systematic-debugging/pack.json +44 -0
  192. package/packs/systematic-debugging/rendered/.claude/agents/debugger.md +8 -0
  193. package/packs/systematic-debugging/rendered/.claude/commands/debug.md +6 -0
  194. package/packs/systematic-debugging/rendered/.claude/commands/root-cause.md +6 -0
  195. package/packs/systematic-debugging/rendered/.claude/settings.json +15 -0
  196. package/packs/systematic-debugging/rendered/.github/copilot-instructions.md +20 -0
  197. package/packs/systematic-debugging/rendered/AGENTS.md +31 -0
  198. package/packs/systematic-debugging/rendered/CLAUDE.md +9 -0
  199. package/packs/systematic-debugging/rendered/GEMINI.md +3 -0
  200. package/packs/token-efficiency-harness/pack.json +49 -0
  201. package/packs/token-efficiency-harness/rendered/.baselane/capabilities.json +10 -0
  202. package/packs/token-efficiency-harness/rendered/.baselane/memory/README.md +34 -0
  203. package/packs/token-efficiency-harness/rendered/.claude/agents/scout.md +8 -0
  204. package/packs/token-efficiency-harness/rendered/.claude/commands/handoff.md +6 -0
  205. package/packs/token-efficiency-harness/rendered/.claude/commands/remember.md +6 -0
  206. package/packs/token-efficiency-harness/rendered/.claude/commands/usage-audit.md +6 -0
  207. package/packs/token-efficiency-harness/rendered/.claude/settings.json +26 -0
  208. package/packs/token-efficiency-harness/rendered/.github/copilot-instructions.md +26 -0
  209. package/packs/token-efficiency-harness/rendered/AGENTS.md +44 -0
  210. package/packs/token-efficiency-harness/rendered/CLAUDE.md +10 -0
  211. package/packs/token-efficiency-harness/rendered/GEMINI.md +3 -0
  212. package/packs/typescript-rules/pack.json +46 -0
  213. package/packs/typescript-rules/rendered/.claude/agents/typescript-reviewer.md +8 -0
  214. package/packs/typescript-rules/rendered/.claude/commands/typescript-review.md +6 -0
  215. package/packs/typescript-rules/rendered/.claude/settings.json +15 -0
  216. package/packs/typescript-rules/rendered/.claude/skills/immutable-updates/SKILL.md +46 -0
  217. package/packs/typescript-rules/rendered/.github/copilot-instructions.md +89 -0
  218. package/packs/typescript-rules/rendered/AGENTS.md +55 -0
  219. package/packs/typescript-rules/rendered/CLAUDE.md +9 -0
  220. package/packs/typescript-rules/rendered/GEMINI.md +51 -0
  221. package/skills/algorithmic-art/LICENSE +202 -0
  222. package/skills/algorithmic-art/LICENSE.txt +202 -0
  223. package/skills/algorithmic-art/SKILL.md +405 -0
  224. package/skills/algorithmic-art/templates/generator_template.js +223 -0
  225. package/skills/algorithmic-art/templates/viewer.html +599 -0
  226. package/skills/brainstorming/LICENSE +21 -0
  227. package/skills/brainstorming/SKILL.md +159 -0
  228. package/skills/brainstorming/scripts/frame-template.html +213 -0
  229. package/skills/brainstorming/scripts/helper.js +167 -0
  230. package/skills/brainstorming/scripts/server.cjs +723 -0
  231. package/skills/brainstorming/scripts/start-server.sh +209 -0
  232. package/skills/brainstorming/scripts/stop-server.sh +120 -0
  233. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  234. package/skills/brainstorming/visual-companion.md +291 -0
  235. package/skills/brand-guidelines/LICENSE +202 -0
  236. package/skills/brand-guidelines/LICENSE.txt +202 -0
  237. package/skills/brand-guidelines/SKILL.md +73 -0
  238. package/skills/canvas-design/LICENSE +202 -0
  239. package/skills/canvas-design/LICENSE.txt +202 -0
  240. package/skills/canvas-design/SKILL.md +130 -0
  241. package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  242. package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  243. package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  244. package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  245. package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  246. package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  247. package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  248. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  249. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  250. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  251. package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  252. package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  253. package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  254. package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  255. package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  256. package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  257. package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  258. package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  259. package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  260. package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  261. package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  262. package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  263. package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  264. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  265. package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  266. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  267. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  268. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  269. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  270. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  271. package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  272. package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  273. package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  274. package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  275. package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  276. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  277. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  278. package/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  279. package/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  280. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  281. package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  282. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  283. package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  284. package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  285. package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  286. package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  287. package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  288. package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  289. package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  290. package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  291. package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  292. package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  293. package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  294. package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  295. package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  296. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  297. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  298. package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  299. package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  300. package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  301. package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  302. package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  303. package/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  304. package/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  305. package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  306. package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  307. package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  308. package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  309. package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  310. package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  311. package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  312. package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  313. package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  314. package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  315. package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  316. package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  317. package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  318. package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  319. package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  320. package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  321. package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  322. package/skills/dispatching-parallel-agents/LICENSE +21 -0
  323. package/skills/dispatching-parallel-agents/SKILL.md +185 -0
  324. package/skills/executing-plans/LICENSE +21 -0
  325. package/skills/executing-plans/SKILL.md +70 -0
  326. package/skills/finishing-a-development-branch/LICENSE +21 -0
  327. package/skills/finishing-a-development-branch/SKILL.md +241 -0
  328. package/skills/first-party/README.md +32 -0
  329. package/skills/first-party/append-only-jsonl-stores/SKILL.md +50 -0
  330. package/skills/first-party/golden-snapshot-discipline/SKILL.md +45 -0
  331. package/skills/first-party/immutable-updates/SKILL.md +46 -0
  332. package/skills/first-party/manifest.json +10 -0
  333. package/skills/first-party/ts-extension-imports/SKILL.md +49 -0
  334. package/skills/first-party/validate-at-boundaries/SKILL.md +41 -0
  335. package/skills/first-party/zero-dependency-discipline/SKILL.md +41 -0
  336. package/skills/frontend-design/LICENSE +177 -0
  337. package/skills/frontend-design/LICENSE.txt +177 -0
  338. package/skills/frontend-design/SKILL.md +55 -0
  339. package/skills/internal-comms/LICENSE +202 -0
  340. package/skills/internal-comms/LICENSE.txt +202 -0
  341. package/skills/internal-comms/SKILL.md +32 -0
  342. package/skills/internal-comms/examples/3p-updates.md +47 -0
  343. package/skills/internal-comms/examples/company-newsletter.md +65 -0
  344. package/skills/internal-comms/examples/faq-answers.md +30 -0
  345. package/skills/internal-comms/examples/general-comms.md +16 -0
  346. package/skills/mcp-builder/LICENSE +202 -0
  347. package/skills/mcp-builder/LICENSE.txt +202 -0
  348. package/skills/mcp-builder/SKILL.md +236 -0
  349. package/skills/mcp-builder/reference/evaluation.md +602 -0
  350. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  351. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  352. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  353. package/skills/mcp-builder/scripts/connections.py +151 -0
  354. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  355. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  356. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  357. package/skills/receiving-code-review/LICENSE +21 -0
  358. package/skills/receiving-code-review/SKILL.md +213 -0
  359. package/skills/requesting-code-review/LICENSE +21 -0
  360. package/skills/requesting-code-review/SKILL.md +103 -0
  361. package/skills/requesting-code-review/code-reviewer.md +172 -0
  362. package/skills/seed-manifest.json +185 -0
  363. package/skills/skill-creator/LICENSE +202 -0
  364. package/skills/skill-creator/LICENSE.txt +202 -0
  365. package/skills/skill-creator/SKILL.md +485 -0
  366. package/skills/skill-creator/agents/analyzer.md +274 -0
  367. package/skills/skill-creator/agents/comparator.md +202 -0
  368. package/skills/skill-creator/agents/grader.md +223 -0
  369. package/skills/skill-creator/assets/eval_review.html +146 -0
  370. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  371. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  372. package/skills/skill-creator/references/schemas.md +430 -0
  373. package/skills/skill-creator/scripts/__init__.py +0 -0
  374. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  375. package/skills/skill-creator/scripts/generate_report.py +326 -0
  376. package/skills/skill-creator/scripts/improve_description.py +247 -0
  377. package/skills/skill-creator/scripts/package_skill.py +136 -0
  378. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  379. package/skills/skill-creator/scripts/run_eval.py +310 -0
  380. package/skills/skill-creator/scripts/run_loop.py +328 -0
  381. package/skills/skill-creator/scripts/utils.py +47 -0
  382. package/skills/slack-gif-creator/LICENSE +202 -0
  383. package/skills/slack-gif-creator/LICENSE.txt +202 -0
  384. package/skills/slack-gif-creator/SKILL.md +254 -0
  385. package/skills/slack-gif-creator/core/easing.py +234 -0
  386. package/skills/slack-gif-creator/core/frame_composer.py +176 -0
  387. package/skills/slack-gif-creator/core/gif_builder.py +269 -0
  388. package/skills/slack-gif-creator/core/validators.py +136 -0
  389. package/skills/slack-gif-creator/requirements.txt +4 -0
  390. package/skills/subagent-driven-development/LICENSE +21 -0
  391. package/skills/subagent-driven-development/SKILL.md +418 -0
  392. package/skills/subagent-driven-development/implementer-prompt.md +139 -0
  393. package/skills/subagent-driven-development/scripts/review-package +44 -0
  394. package/skills/subagent-driven-development/scripts/sdd-workspace +22 -0
  395. package/skills/subagent-driven-development/scripts/task-brief +40 -0
  396. package/skills/subagent-driven-development/task-reviewer-prompt.md +188 -0
  397. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  398. package/skills/systematic-debugging/LICENSE +21 -0
  399. package/skills/systematic-debugging/SKILL.md +296 -0
  400. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  401. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  402. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  403. package/skills/systematic-debugging/find-polluter.sh +63 -0
  404. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  405. package/skills/systematic-debugging/test-academic.md +14 -0
  406. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  407. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  408. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  409. package/skills/test-driven-development/LICENSE +21 -0
  410. package/skills/test-driven-development/SKILL.md +371 -0
  411. package/skills/test-driven-development/testing-anti-patterns.md +299 -0
  412. package/skills/theme-factory/LICENSE +202 -0
  413. package/skills/theme-factory/LICENSE.txt +202 -0
  414. package/skills/theme-factory/SKILL.md +59 -0
  415. package/skills/theme-factory/theme-showcase.pdf +0 -0
  416. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  417. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  418. package/skills/theme-factory/themes/desert-rose.md +19 -0
  419. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  420. package/skills/theme-factory/themes/golden-hour.md +19 -0
  421. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  422. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  423. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  424. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  425. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  426. package/skills/using-git-worktrees/LICENSE +21 -0
  427. package/skills/using-git-worktrees/SKILL.md +202 -0
  428. package/skills/using-superpowers/LICENSE +21 -0
  429. package/skills/using-superpowers/SKILL.md +62 -0
  430. package/skills/using-superpowers/references/antigravity-tools.md +23 -0
  431. package/skills/using-superpowers/references/codex-tools.md +39 -0
  432. package/skills/using-superpowers/references/pi-tools.md +16 -0
  433. package/skills/verification-before-completion/LICENSE +21 -0
  434. package/skills/verification-before-completion/SKILL.md +139 -0
  435. package/skills/web-artifacts-builder/LICENSE +202 -0
  436. package/skills/web-artifacts-builder/LICENSE.txt +202 -0
  437. package/skills/web-artifacts-builder/SKILL.md +74 -0
  438. package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
  439. package/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -0
  440. package/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  441. package/skills/webapp-testing/LICENSE +202 -0
  442. package/skills/webapp-testing/LICENSE.txt +202 -0
  443. package/skills/webapp-testing/SKILL.md +96 -0
  444. package/skills/webapp-testing/examples/console_logging.py +35 -0
  445. package/skills/webapp-testing/examples/element_discovery.py +40 -0
  446. package/skills/webapp-testing/examples/static_html_automation.py +33 -0
  447. package/skills/webapp-testing/scripts/with_server.py +106 -0
  448. package/skills/writing-plans/LICENSE +21 -0
  449. package/skills/writing-plans/SKILL.md +174 -0
  450. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
@@ -0,0 +1,87 @@
1
+ import { renderBundleFiles } from "./bundle.js";
2
+ const SETTINGS_KEY = "settings.json";
3
+ const MANIFEST_KEY = ".baselane/capabilities.json";
4
+ /** Concatenate every rendered pack's hook entries per event, raw (unprefixed). The agent applies its
5
+ * BASELANE_MANAGED prefix later when merging into the developer's real settings — this is a
6
+ * different, earlier operation, so it must NOT prefix. For a single input this rebuilds the exact
7
+ * bytes render/claude.ts's settingsJson produced. */
8
+ function mergeRenderedSettings(jsons) {
9
+ const byEvent = {};
10
+ for (const json of jsons) {
11
+ let parsed;
12
+ try {
13
+ parsed = JSON.parse(json);
14
+ }
15
+ catch {
16
+ continue;
17
+ }
18
+ const hooks = parsed.hooks;
19
+ if (!hooks || typeof hooks !== "object")
20
+ continue;
21
+ for (const [event, entries] of Object.entries(hooks)) {
22
+ if (!Array.isArray(entries))
23
+ continue;
24
+ (byEvent[event] ??= []).push(...entries);
25
+ }
26
+ }
27
+ return JSON.stringify({ hooks: byEvent }, null, 2) + "\n";
28
+ }
29
+ /** Union each manifest's capabilities, dedup by exact JSON identity, first occurrence wins. For a
30
+ * single input this rebuilds the exact bytes render/capabilities.ts's manifest produced. */
31
+ function mergeCapabilityManifests(jsons) {
32
+ const capabilities = [];
33
+ const seen = new Set();
34
+ for (const json of jsons) {
35
+ let parsed;
36
+ try {
37
+ parsed = JSON.parse(json);
38
+ }
39
+ catch {
40
+ continue;
41
+ }
42
+ const list = parsed.capabilities;
43
+ if (!Array.isArray(list))
44
+ continue;
45
+ for (const c of list) {
46
+ const key = JSON.stringify(c);
47
+ if (!seen.has(key)) {
48
+ seen.add(key);
49
+ capabilities.push(c);
50
+ }
51
+ }
52
+ }
53
+ return JSON.stringify({ version: 1, capabilities }, null, 2) + "\n";
54
+ }
55
+ /** Unions the machine-level bundle files of an ordered (most-specific-first) effective pack set.
56
+ * settings.json hooks concatenate per event; capabilities manifests dedup; every other path is
57
+ * first-writer-wins with a collisions note on a differing later write. `renderBundleUnion([p])`
58
+ * byte-equals `renderBundleFiles(p)`. */
59
+ export function renderBundleUnion(packs) {
60
+ const files = {};
61
+ const collisions = [];
62
+ const settings = [];
63
+ const manifests = [];
64
+ for (const pack of packs) {
65
+ for (const [path, content] of Object.entries(renderBundleFiles(pack))) {
66
+ if (path === SETTINGS_KEY) {
67
+ settings.push(content);
68
+ continue;
69
+ }
70
+ if (path === MANIFEST_KEY) {
71
+ manifests.push(content);
72
+ continue;
73
+ }
74
+ if (!(path in files)) {
75
+ files[path] = content;
76
+ }
77
+ else if (files[path] !== content && !collisions.includes(path)) {
78
+ collisions.push(path);
79
+ }
80
+ }
81
+ }
82
+ if (settings.length > 0)
83
+ files[SETTINGS_KEY] = mergeRenderedSettings(settings);
84
+ if (manifests.length > 0)
85
+ files[MANIFEST_KEY] = mergeCapabilityManifests(manifests);
86
+ return { files, collisions };
87
+ }
@@ -0,0 +1,3 @@
1
+ import type { FileMap, WorkflowPack } from "../types.ts";
2
+ /** Machine-level bundle for the laptop agent: same artifact bodies, whitelist-rooted paths. */
3
+ export declare function renderBundleFiles(pack: WorkflowPack): FileMap;
@@ -0,0 +1,51 @@
1
+ import { renderCapabilities } from "./capabilities.js";
2
+ import { renderClaudeFiles } from "./claude.js";
3
+ import { hasOrgMemoryFiles, renderBundleMemoryFiles, withMemoryScaffolding } from "./memory.js";
4
+ import { hasOrgDesignAnalyze, renderBundleDesignFiles, withDesignAnalyzeScaffolding } from "./design.js";
5
+ import { hasOrgTasksLedger, renderBundleTasksFiles, withTasksScaffolding } from "./tasks.js";
6
+ import { hasOrgWikiBaselane, renderBundleWikiFiles, withWikiScaffolding } from "./wiki.js";
7
+ import { hasOrgGraphCapability, renderBundleGraphFiles, withGraphScaffolding } from "./graph.js";
8
+ import { hasOrgSystemMapCapability, renderBundleSystemMapFiles, withSystemMapScaffolding } from "./system-map.js";
9
+ /** Machine-level bundle for the laptop agent: same artifact bodies, whitelist-rooted paths. */
10
+ export function renderBundleFiles(pack) {
11
+ // An org-store memory+files (or tasks+ledger, wiki+baselane, or graph) capability is
12
+ // agent-managed on the laptop, not committed to the repo, so its command and Stop-hook
13
+ // reminder are added here instead of in render/render-pack.ts.
14
+ let claudePack = pack;
15
+ if (hasOrgMemoryFiles(pack))
16
+ claudePack = withMemoryScaffolding(claudePack, "org");
17
+ if (hasOrgTasksLedger(pack))
18
+ claudePack = withTasksScaffolding(claudePack, "org");
19
+ if (hasOrgWikiBaselane(pack))
20
+ claudePack = withWikiScaffolding(claudePack, "org");
21
+ if (hasOrgDesignAnalyze(pack))
22
+ claudePack = withDesignAnalyzeScaffolding(claudePack, "org");
23
+ if (hasOrgGraphCapability(pack))
24
+ claudePack = withGraphScaffolding(claudePack);
25
+ if (hasOrgSystemMapCapability(pack))
26
+ claudePack = withSystemMapScaffolding(claudePack);
27
+ const claude = renderClaudeFiles(claudePack);
28
+ // The capabilities manifest ships at the same `.baselane/capabilities.json` path as the repo
29
+ // render, so the laptop agent finds it in one known location — machine-readable regardless of
30
+ // which surface (repo or bundle) provisioned the capability.
31
+ const { manifest } = renderCapabilities(pack);
32
+ const bundle = {
33
+ ...renderBundleMemoryFiles(pack),
34
+ ...renderBundleDesignFiles(pack),
35
+ ...renderBundleTasksFiles(pack),
36
+ ...renderBundleWikiFiles(pack),
37
+ ...renderBundleGraphFiles(pack),
38
+ ...renderBundleSystemMapFiles(pack),
39
+ ...(manifest ? { ".baselane/capabilities.json": manifest } : {}),
40
+ };
41
+ for (const [path, content] of Object.entries(claude)) {
42
+ if (path === ".claude/settings.json") {
43
+ bundle["settings.json"] = content;
44
+ continue;
45
+ }
46
+ const m = /^\.claude\/(agents|commands|skills)\/(.+)$/.exec(path);
47
+ if (m)
48
+ bundle[`${m[1]}/${m[2]}`] = content;
49
+ }
50
+ return bundle;
51
+ }
@@ -0,0 +1,19 @@
1
+ import type { WorkflowPack } from "../types.ts";
2
+ /**
3
+ * AGENTS.md "## Harness capabilities" section + `.baselane/capabilities.json` manifest, or both
4
+ * null if the pack declares none.
5
+ *
6
+ * Bug #37.1 fix: AGENTS.md is a repo-only artifact (only `render-pack.ts`'s `renderAgentsMd`
7
+ * calls this for its `section`; `bundle.ts` only reads `manifest`) — so the longer explanatory
8
+ * note for a capability must only appear when the corresponding `hasRepoX` helper (the SAME
9
+ * store-aware gate that decides whether `render-pack.ts` actually scaffolds real files into the
10
+ * repo) is true. Before this fix, an org-store capability — real, but scaffolded only into the
11
+ * laptop bundle, never into this repo — still got its note rendered here, pointing a reader of
12
+ * this repo's AGENTS.md at a `.baselane/...` path that doesn't exist in this repo (a silent
13
+ * no-op from the repo's point of view, the inverse of "coming soon" honesty). The one-line
14
+ * `status()` entries above are left store-agnostic deliberately (see the comment on `status`).
15
+ */
16
+ export declare function renderCapabilities(pack: WorkflowPack): {
17
+ section: string | null;
18
+ manifest: string | null;
19
+ };
@@ -0,0 +1,86 @@
1
+ import { MEMORY_AGENTS_NOTE, MEMORY_CLAUDE_MEM_AGENTS_NOTE, MEMORY_LETTA_AGENTS_NOTE, MEMORY_NATIVE_AGENTS_NOTE, MEMORY_VECTOR_AGENTS_NOTE, hasRepoMemoryClaudeMemMethod, hasRepoMemoryFilesMethod, hasRepoMemoryLettaMethod, hasRepoMemoryNativeMethod, hasRepoMemoryVectorMethod, } from "./memory.js";
2
+ import { DESIGN_AGENTS_NOTE, hasRepoDesignCapability } from "./design.js";
3
+ import { TASKS_AGENTS_NOTE, TASKS_BEADS_AGENTS_NOTE, TASKS_SPECKIT_AGENTS_NOTE, TASKS_TASKMASTER_AGENTS_NOTE, hasRepoTasksBeadsMethod, hasRepoTasksLedgerMethod, hasRepoTasksSpeckitMethod, hasRepoTasksTaskmasterMethod, } from "./tasks.js";
4
+ import { WIKI_AGENTS_NOTE, WIKI_DEEPWIKI_AGENTS_NOTE, WIKI_DOCS_AGENTS_NOTE, hasRepoWikiBaselaneMethod, hasRepoWikiDeepwikiMethod, hasRepoWikiDocsMethod, } from "./wiki.js";
5
+ import { GRAPH_AGENTS_NOTE, hasRepoGraphCapability } from "./graph.js";
6
+ import { SYSTEM_MAP_AGENTS_NOTE, hasRepoSystemMapCapability } from "./system-map.js";
7
+ const PROVISIONED_METHODS = {
8
+ memory: new Set(["files", "native", "claude-mem", "vector", "letta"]),
9
+ design: new Set(["author", "import", "analyze"]),
10
+ tasks: new Set(["ledger", "speckit", "taskmaster", "beads"]),
11
+ wiki: new Set(["baselane", "deepwiki", "docs"]),
12
+ graph: new Set(["imports", "graphify", "aider", "lsp", "sourcegraph"]),
13
+ "system-map": new Set(["analyze", "analyze+llm"]),
14
+ };
15
+ /** This status is store-agnostic on purpose: it feeds `.baselane/capabilities.json`, which ships
16
+ * identically to the repo and the laptop bundle, and a method that's genuinely implemented is
17
+ * "provisioned" regardless of which surface (repo file or agent-managed laptop bundle) ends up
18
+ * holding its scaffolding — see the bug-#37.1 note below for the part of this file that DOES
19
+ * need to be store-aware. */
20
+ function status(capability) {
21
+ return PROVISIONED_METHODS[capability.type]?.has(capability.method) ? "provisioned" : "coming soon";
22
+ }
23
+ /**
24
+ * AGENTS.md "## Harness capabilities" section + `.baselane/capabilities.json` manifest, or both
25
+ * null if the pack declares none.
26
+ *
27
+ * Bug #37.1 fix: AGENTS.md is a repo-only artifact (only `render-pack.ts`'s `renderAgentsMd`
28
+ * calls this for its `section`; `bundle.ts` only reads `manifest`) — so the longer explanatory
29
+ * note for a capability must only appear when the corresponding `hasRepoX` helper (the SAME
30
+ * store-aware gate that decides whether `render-pack.ts` actually scaffolds real files into the
31
+ * repo) is true. Before this fix, an org-store capability — real, but scaffolded only into the
32
+ * laptop bundle, never into this repo — still got its note rendered here, pointing a reader of
33
+ * this repo's AGENTS.md at a `.baselane/...` path that doesn't exist in this repo (a silent
34
+ * no-op from the repo's point of view, the inverse of "coming soon" honesty). The one-line
35
+ * `status()` entries above are left store-agnostic deliberately (see the comment on `status`).
36
+ */
37
+ export function renderCapabilities(pack) {
38
+ const capabilities = pack.capabilities;
39
+ if (!capabilities || capabilities.length === 0)
40
+ return { section: null, manifest: null };
41
+ const lines = ["## Harness capabilities", ""];
42
+ for (const c of capabilities)
43
+ lines.push(`- ${c.type} · ${c.store} · ${c.method} — ${status(c)}`);
44
+ // #9: each note is method-specific — gate it on the method it actually describes, not on "any
45
+ // method of this type", so a native/deepwiki/speckit pack is never handed a note that points at a
46
+ // path or command that method never scaffolds. (design's note is method-agnostic: every design
47
+ // method produces the same DESIGN.md, so it stays gated on "any design capability".)
48
+ if (hasRepoMemoryFilesMethod(pack))
49
+ lines.push("", MEMORY_AGENTS_NOTE);
50
+ if (hasRepoMemoryNativeMethod(pack))
51
+ lines.push("", MEMORY_NATIVE_AGENTS_NOTE);
52
+ if (hasRepoMemoryClaudeMemMethod(pack))
53
+ lines.push("", MEMORY_CLAUDE_MEM_AGENTS_NOTE);
54
+ if (hasRepoMemoryVectorMethod(pack))
55
+ lines.push("", MEMORY_VECTOR_AGENTS_NOTE);
56
+ if (hasRepoMemoryLettaMethod(pack))
57
+ lines.push("", MEMORY_LETTA_AGENTS_NOTE);
58
+ if (hasRepoDesignCapability(pack))
59
+ lines.push("", DESIGN_AGENTS_NOTE);
60
+ if (hasRepoTasksLedgerMethod(pack))
61
+ lines.push("", TASKS_AGENTS_NOTE);
62
+ if (hasRepoTasksSpeckitMethod(pack))
63
+ lines.push("", TASKS_SPECKIT_AGENTS_NOTE);
64
+ if (hasRepoTasksTaskmasterMethod(pack))
65
+ lines.push("", TASKS_TASKMASTER_AGENTS_NOTE);
66
+ if (hasRepoTasksBeadsMethod(pack))
67
+ lines.push("", TASKS_BEADS_AGENTS_NOTE);
68
+ if (hasRepoWikiBaselaneMethod(pack))
69
+ lines.push("", WIKI_AGENTS_NOTE);
70
+ if (hasRepoWikiDeepwikiMethod(pack))
71
+ lines.push("", WIKI_DEEPWIKI_AGENTS_NOTE);
72
+ if (hasRepoWikiDocsMethod(pack))
73
+ lines.push("", WIKI_DOCS_AGENTS_NOTE);
74
+ if (hasRepoGraphCapability(pack))
75
+ lines.push("", GRAPH_AGENTS_NOTE);
76
+ if (hasRepoSystemMapCapability(pack))
77
+ lines.push("", SYSTEM_MAP_AGENTS_NOTE);
78
+ const section = lines.join("\n");
79
+ // Provenance is builder/library metadata (increment 26) — never shipped into a rendered file.
80
+ // This manifest is the ONLY renderer that serializes whole block objects, so it drops the key
81
+ // here (rest-destructuring siblings are exempt from noUnusedLocals). No-op for provenance-free
82
+ // packs: the emitted JSON is byte-identical, so every golden stays untouched.
83
+ const manifestCapabilities = capabilities.map(({ provenance: _prov, ...c }) => c);
84
+ const manifest = JSON.stringify({ version: 1, capabilities: manifestCapabilities }, null, 2) + "\n";
85
+ return { section, manifest };
86
+ }
@@ -0,0 +1,3 @@
1
+ import type { FileMap, WorkflowPack } from "../types.ts";
2
+ /** Claude Code output: thin CLAUDE.md importer + native agent/command/hook artifacts. */
3
+ export declare function renderClaudeFiles(pack: WorkflowPack): FileMap;
@@ -0,0 +1,92 @@
1
+ /** One native SKILL.md: required name+description frontmatter, optional governance keys
2
+ * (user-invocable / disable-model-invocation / allowed-tools), optional license key + attribution
3
+ * comment (retained import notice), then the body verbatim. category/provenance are baselane-side
4
+ * and never written here. Governance keys sit after description and before license, so a skill with
5
+ * none of them renders byte-identically to before. */
6
+ function skillMd(s) {
7
+ const fm = [`name: ${s.name}`, `description: ${s.description}`];
8
+ if (s.userInvocable !== undefined)
9
+ fm.push(`user-invocable: ${s.userInvocable}`);
10
+ if (s.disableModelInvocation !== undefined)
11
+ fm.push(`disable-model-invocation: ${s.disableModelInvocation}`);
12
+ if (s.allowedTools !== undefined && s.allowedTools.length > 0)
13
+ fm.push(`allowed-tools: ${s.allowedTools.join(", ")}`);
14
+ if (s.attribution)
15
+ fm.push(`license: ${s.attribution.license}`);
16
+ const notice = s.attribution
17
+ ? `<!-- adapted from ${s.attribution.source} (${s.attribution.license}) — ${s.attribution.url} -->\n\n`
18
+ : "";
19
+ const body = s.body.endsWith("\n") ? s.body : `${s.body}\n`;
20
+ return `---\n${fm.join("\n")}\n---\n\n${notice}${body}`;
21
+ }
22
+ function claudeMd(pack) {
23
+ const lines = ["# CLAUDE.md", "", "@AGENTS.md", ""];
24
+ const artifacts = [];
25
+ for (const a of pack.agents)
26
+ artifacts.push(`- Subagent: \`.claude/agents/${a.name}.md\``);
27
+ for (const c of pack.commands)
28
+ artifacts.push(`- Command: \`.claude/commands/${c.name}.md\``);
29
+ if (pack.hooks.length > 0)
30
+ artifacts.push("- Hooks: see `.claude/settings.json`");
31
+ for (const s of pack.skills ?? []) {
32
+ artifacts.push(`- Skill: \`.claude/skills/${s.name}/SKILL.md\` — ${s.description}`);
33
+ }
34
+ // #34: a zero-artifact pack has no native Claude Code implementation to announce. Emitting the
35
+ // preamble followed by an empty list is a false identity — render only the @AGENTS.md importer.
36
+ if (artifacts.length > 0) {
37
+ lines.push("This project defines a native Claude Code implementation of this workflow pack:");
38
+ lines.push(...artifacts, "");
39
+ }
40
+ return lines.join("\n");
41
+ }
42
+ function settingsJson(pack) {
43
+ const byEvent = {};
44
+ for (const h of pack.hooks) {
45
+ const command = h.action === "run-command" ? h.command : `echo ${JSON.stringify(h.message)}`;
46
+ const entry = {
47
+ matcher: h.matcher,
48
+ hooks: [{ type: "command", command }],
49
+ };
50
+ (byEvent[h.event] ??= []).push(entry);
51
+ }
52
+ return JSON.stringify({ hooks: byEvent }, null, 2) + "\n";
53
+ }
54
+ /** Nested-YAML `mcpServers:` block for an agent's frontmatter (server name → command/args). Emitted
55
+ * only when present, so an agent without MCP servers renders exactly as before. Values are quoted
56
+ * with JSON.stringify — valid YAML and byte-matching the harness bundles' quoted args. */
57
+ function mcpServersYaml(servers) {
58
+ const lines = ["mcpServers:"];
59
+ for (const [name, cfg] of Object.entries(servers)) {
60
+ lines.push(` ${name}:`, ` command: ${cfg.command}`);
61
+ if (cfg.args && cfg.args.length > 0) {
62
+ lines.push(" args:");
63
+ for (const a of cfg.args)
64
+ lines.push(` - ${JSON.stringify(a)}`);
65
+ }
66
+ }
67
+ return lines.join("\n");
68
+ }
69
+ function agentMd(a) {
70
+ const mcp = a.mcpServers && Object.keys(a.mcpServers).length > 0 ? `\n${mcpServersYaml(a.mcpServers)}` : "";
71
+ return `---\nname: ${a.name}\ndescription: ${a.description}\ntools: ${a.tools.join(", ")}\nmodel: ${a.model}${mcp}\n---\n\n${a.prompt}\n`;
72
+ }
73
+ /** Claude Code output: thin CLAUDE.md importer + native agent/command/hook artifacts. */
74
+ export function renderClaudeFiles(pack) {
75
+ const files = { "CLAUDE.md": claudeMd(pack) };
76
+ for (const a of pack.agents) {
77
+ files[`.claude/agents/${a.name}.md`] = agentMd(a);
78
+ }
79
+ for (const c of pack.commands) {
80
+ files[`.claude/commands/${c.name}.md`] =
81
+ `---\ndescription: ${c.description}\nargument-hint: ${c.argument_hint}\n---\n\n${c.prompt}\n`;
82
+ }
83
+ for (const s of pack.skills ?? []) {
84
+ files[`.claude/skills/${s.name}/SKILL.md`] = skillMd(s);
85
+ for (const r of s.references ?? []) {
86
+ files[`.claude/skills/${s.name}/${r.name}.md`] = r.body.endsWith("\n") ? r.body : `${r.body}\n`;
87
+ }
88
+ }
89
+ if (pack.hooks.length > 0)
90
+ files[".claude/settings.json"] = settingsJson(pack);
91
+ return files;
92
+ }
@@ -0,0 +1,27 @@
1
+ import type { Capability, FileMap, WorkflowPack } from "../types.ts";
2
+ /** Google-Stitch-standard DESIGN.md, built from the design capability's config tokens (all optional). */
3
+ export declare function renderDesignMd(capability: Capability): string;
4
+ /** The AGENTS.md capabilities-section note for a design+author capability, regardless of store. */
5
+ export declare const DESIGN_AGENTS_NOTE: string;
6
+ /** DESIGN.md for the `import` method: parses `capability.config.tokens`, then reuses the exact
7
+ * same 9-section builder `author` uses. A parse failure falls back to `author`'s own defaults,
8
+ * with a visible note rather than crashing. */
9
+ export declare function renderImportDesignMd(capability: Capability): string;
10
+ /** DESIGN.md skeleton for the `analyze` method — same 9 headings as the real document, each
11
+ * still holding a TODO marker naming what to extract and from where. */
12
+ export declare function renderAnalyzeDesignSkeleton(capability: Capability): string;
13
+ /** True if this store has a real (non-"coming soon") design capability that would actually
14
+ * scaffold a DESIGN.md — used by capabilities.ts to gate the AGENTS.md note (bug #37.1). */
15
+ export declare function hasRepoDesignCapability(pack: WorkflowPack): boolean;
16
+ export declare function hasOrgDesignCapability(pack: WorkflowPack): boolean;
17
+ /** `DESIGN.md` at the repo root, for a repo-store design capability using `author`, `import`,
18
+ * or `analyze` — whichever is present. */
19
+ export declare function renderRepoDesignFiles(pack: WorkflowPack): FileMap;
20
+ /** `DESIGN.md` in the laptop bundle, for an org-store design capability using `author`,
21
+ * `import`, or `analyze` — whichever is present. */
22
+ export declare function renderBundleDesignFiles(pack: WorkflowPack): FileMap;
23
+ export declare function hasRepoDesignAnalyze(pack: WorkflowPack): boolean;
24
+ export declare function hasOrgDesignAnalyze(pack: WorkflowPack): boolean;
25
+ /** Adds the /design-analyze command to a pack, without disturbing what it already declares.
26
+ * Only called when a design+analyze capability is present for the given store. */
27
+ export declare function withDesignAnalyzeScaffolding(pack: WorkflowPack, store: "org" | "repo"): WorkflowPack;