@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,30 @@
1
+ import type { FileMap, WorkflowPack } from "../types.ts";
2
+ /** The AGENTS.md capabilities-section note for a wiki+baselane capability, regardless of store. */
3
+ export declare const WIKI_AGENTS_NOTE: string;
4
+ export declare const WIKI_DEEPWIKI_AGENTS_NOTE: string;
5
+ export declare const WIKI_DOCS_AGENTS_NOTE: string;
6
+ /** Despite the name — kept for compatibility with the existing gate call sites in
7
+ * render-pack.ts/bundle.ts/capabilities.ts — this now guards `withWikiScaffolding` for every
8
+ * wired-up wiki method in the repo store, not baselane alone. */
9
+ export declare function hasRepoWikiBaselane(pack: WorkflowPack): boolean;
10
+ /** Org-store counterpart of {@link hasRepoWikiBaselane}. */
11
+ export declare function hasOrgWikiBaselane(pack: WorkflowPack): boolean;
12
+ /** #9: `WIKI_AGENTS_NOTE` describes the `baselane` method (`.baselane/wiki/` OKF store, `/wiki`).
13
+ * Unlike {@link hasRepoWikiBaselane} (which gates scaffolding for ANY wiki method), this gates only
14
+ * that note — so a deepwiki/docs pack isn't told to use `/wiki` + a `.baselane/wiki/index.md` that
15
+ * was never created (deepwiki scaffolds `/deepwiki`, docs scaffolds `/docs-lookup`). */
16
+ export declare function hasRepoWikiBaselaneMethod(pack: WorkflowPack): boolean;
17
+ /** #9: narrow, note-only gates for the sibling methods — same rationale as
18
+ * {@link hasRepoWikiBaselaneMethod} above. */
19
+ export declare function hasRepoWikiDeepwikiMethod(pack: WorkflowPack): boolean;
20
+ export declare function hasRepoWikiDocsMethod(pack: WorkflowPack): boolean;
21
+ /** Adds the present wiki method(s)' command(s) for one store (+ baselane's Stop-hook reminder)
22
+ * to a pack, without disturbing what it already declares. `store` defaults to "repo" for
23
+ * compatibility with pre-multi-method call sites; render-pack.ts passes "repo" and bundle.ts
24
+ * passes "org" explicitly so a method declared in one store never leaks a command into the
25
+ * other's file map. */
26
+ export declare function withWikiScaffolding(pack: WorkflowPack, store?: "org" | "repo"): WorkflowPack;
27
+ /** `.baselane/wiki/README.md` etc., for whichever wiki methods are present in the repo store. */
28
+ export declare function renderRepoWikiFiles(pack: WorkflowPack): FileMap;
29
+ /** `wiki/README.md` etc. in the laptop bundle, for whichever wiki methods are present in the org store. */
30
+ export declare function renderBundleWikiFiles(pack: WorkflowPack): FileMap;
@@ -0,0 +1,288 @@
1
+ /** `.baselane/wiki/README.md` (repo) / `wiki/README.md` (bundle) — same body either way. */
2
+ const WIKI_README = `# Wiki protocol
3
+
4
+ This directory is a durable knowledge base the AI reads before acting and writes after
5
+ learning — one concept per file, plus an index and a change log, following the Karpathy
6
+ "LLM Wiki" pattern of ingest/query/lint.
7
+
8
+ This wiki is Open Knowledge Format (OKF) compliant — any OKF-reading agent can consume it.
9
+
10
+ ## Format (OKF)
11
+
12
+ Each page is a single markdown file with YAML frontmatter, one concept per file:
13
+
14
+ \`\`\`markdown
15
+ ---
16
+ type: How-it-works
17
+ title: <optional title>
18
+ description: <optional one-line summary>
19
+ resource: <optional URI to an external system>
20
+ tags: [optional, list, of, tags]
21
+ timestamp: <optional ISO 8601 timestamp>
22
+ ---
23
+
24
+ <free-form markdown body>
25
+ \`\`\`
26
+
27
+ \`type\` is the only required frontmatter field — a free-form string naming what kind of
28
+ page this is (e.g. \`How-it-works\`, \`Runbook\`, \`Decision\`, \`Gotcha\`). Everything else in
29
+ the frontmatter is optional; the body below it is unconstrained markdown.
30
+
31
+ ## Reserved files
32
+
33
+ - \`index.md\` — navigation. One line per page, link plus a one-line summary:
34
+
35
+ \`\`\`markdown
36
+ - [Title](page.md) — one-line summary of what this page covers
37
+ \`\`\`
38
+
39
+ - \`log.md\` — append-only change log. One entry per change, parseable prefix:
40
+
41
+ \`\`\`markdown
42
+ ## [YYYY-MM-DD] <operation> | <subject>
43
+ \`\`\`
44
+
45
+ where \`<operation>\` is one of \`ingest\`, \`query\`, \`lint\`, and \`<subject>\` names the
46
+ page(s) touched. Never rewrite a line once it's appended — only add new ones.
47
+
48
+ ## Operations
49
+
50
+ - **Ingest** — when you learn something durable, create or update the relevant page(s):
51
+ update cross-links in related pages, add or update its \`index.md\` line, and append a
52
+ \`log.md\` entry.
53
+ - **Query** — read \`index.md\` first, then the relevant pages, BEFORE acting. When
54
+ answering required real synthesis rather than a lookup, save the result as a new page —
55
+ explorations compound instead of being redone.
56
+ - **Lint** — periodically, and via \`/wiki lint\`, check for: contradictions between pages,
57
+ stale claims, orphan pages missing from \`index.md\`, and broken cross-links. Reconcile
58
+ contradictions rather than letting them coexist — corrections beat additions.
59
+
60
+ ## The loop rule
61
+
62
+ Read before acting. Write after learning. The tedious part is the bookkeeping — that's
63
+ your job, not the human's.
64
+ `;
65
+ const WIKI_COMMAND = {
66
+ name: "wiki",
67
+ description: "Look up a topic, record or update one, or run a lint pass over the wiki.",
68
+ argument_hint: "<topic to look up | fact to record | \"lint\">",
69
+ prompt: "Follow the wiki protocol in `.baselane/wiki/README.md` (or `wiki/README.md`) for " +
70
+ '$ARGUMENTS. If this is a lookup, read `index.md` first, then the relevant page(s), ' +
71
+ "before answering — if the answer required real synthesis, save it as a new page. If " +
72
+ "this is new or changed durable knowledge, create or update the relevant page (OKF " +
73
+ "frontmatter with at least `type`), update cross-links, add or update its `index.md` " +
74
+ 'line, and append a `log.md` entry. If $ARGUMENTS is "lint" (or empty), scan every ' +
75
+ "page for contradictions, stale claims, orphan pages missing from the index, and " +
76
+ "broken cross-links — reconcile contradictions rather than leaving them, since " +
77
+ "corrections beat additions.",
78
+ };
79
+ const WIKI_STOP_HOOK = {
80
+ event: "Stop",
81
+ matcher: "",
82
+ description: "Reminds the agent to update the wiki entry after changing how something works.",
83
+ action: "print-reminder",
84
+ message: "Before finishing, if you changed how something works, update the wiki entry " +
85
+ "(and its index.md/log.md lines) — see .baselane/wiki/README.md.",
86
+ };
87
+ /**
88
+ * `.baselane/mcp/deepwiki.json` (repo) / `mcp/deepwiki.json` (bundle) — a ready-to-merge
89
+ * snippet for this repo's `.mcp.json`. Never write `.mcp.json` itself: an existing one may
90
+ * already declare other servers, so the README instructs a manual merge instead of a clobber.
91
+ */
92
+ const DEEPWIKI_MCP_JSON = JSON.stringify({ mcpServers: { deepwiki: { type: "sse", url: "https://mcp.deepwiki.com/sse" } } }, null, 2) + "\n";
93
+ /** `.baselane/deepwiki/README.md` (repo) / `deepwiki/README.md` (bundle) — same body either way. */
94
+ const DEEPWIKI_README = `# Wiki adapter: deepwiki
95
+
96
+ [DeepWiki](https://deepwiki.com) (\`mcp.deepwiki.com\`) is a free, no-auth remote MCP server
97
+ that auto-generates an architecture wiki for any indexed GitHub repository and answers
98
+ questions about it — read-only, nothing to install.
99
+
100
+ ## Setup
101
+
102
+ 1. A ready-to-merge snippet lives at \`.baselane/mcp/deepwiki.json\`. Open it and merge its
103
+ \`mcpServers.deepwiki\` entry into this repo's \`.mcp.json\` — **never overwrite an existing
104
+ \`.mcp.json\`**; add the \`deepwiki\` key alongside whatever servers are already configured.
105
+ 2. If \`.mcp.json\` doesn't exist yet, \`.baselane/mcp/deepwiki.json\` is already in the right
106
+ shape to copy in as-is.
107
+ 3. Restart Claude Code (or run \`/mcp\`) so it picks up the new server.
108
+
109
+ ## Usage
110
+
111
+ Once configured, three MCP tools become available:
112
+
113
+ - \`read_wiki_structure\` — list the documentation topics DeepWiki has generated for a repo.
114
+ - \`read_wiki_contents\` — read the generated architecture wiki for a repo.
115
+ - \`ask_question\` — ask a natural-language question about a repo's codebase.
116
+
117
+ Use \`/deepwiki <question>\` for guidance on which tool to reach for.
118
+
119
+ ## How this maps to the baselane protocol
120
+
121
+ DeepWiki is **read side only** — it answers "how does this work" questions against an
122
+ auto-generated wiki you don't maintain, and has no write/ingest path of its own. Pair it with
123
+ the \`baselane\` wiki method (\`.baselane/wiki/\`) for the write loop: when DeepWiki (or your own
124
+ exploration) surfaces a durable fact worth keeping, ingest it into \`.baselane/wiki/\` the
125
+ normal way — DeepWiki won't remember it for you.
126
+ `;
127
+ const DEEPWIKI_COMMAND = {
128
+ name: "deepwiki",
129
+ description: "Query DeepWiki's auto-generated architecture wiki for this repo via MCP.",
130
+ argument_hint: "<question about this repo>",
131
+ prompt: "Use the DeepWiki MCP tools (`read_wiki_structure`, `read_wiki_contents`, `ask_question`), " +
132
+ "configured per `.baselane/deepwiki/README.md` (or `deepwiki/README.md`), to answer " +
133
+ "$ARGUMENTS. Start with `read_wiki_structure` to see what's documented, `read_wiki_contents` " +
134
+ "to read a topic in full, or go straight to `ask_question` for a direct natural-language " +
135
+ "question. If nothing is indexed yet for this repo, say so and suggest visiting " +
136
+ "https://deepwiki.com to request indexing. DeepWiki is read-only — if you learn something " +
137
+ "durable that should persist, ingest it into `.baselane/wiki/` (if present) via the normal " +
138
+ "wiki protocol instead; DeepWiki has no write path of its own.",
139
+ };
140
+ /** Availability-guarded reminder: fires only while `.mcp.json` doesn't yet declare the
141
+ * `deepwiki` server, so it goes silent the moment setup is actually done. */
142
+ const DEEPWIKI_SETUP_HOOK = {
143
+ event: "SessionStart",
144
+ matcher: "",
145
+ description: "Reminds the agent to merge the DeepWiki MCP snippet into .mcp.json if it hasn't been yet.",
146
+ action: "run-command",
147
+ command: 'grep -q "\\"deepwiki\\"" .mcp.json 2>/dev/null || ' +
148
+ 'echo "baselane: DeepWiki MCP not configured yet — merge .baselane/mcp/deepwiki.json (or mcp/deepwiki.json) into .mcp.json, see .baselane/deepwiki/README.md"',
149
+ };
150
+ /**
151
+ * `.baselane/docs-as-context/README.md` (repo) / `docs-as-context/README.md` (bundle) — same
152
+ * body either way. No wiki state directory (no `index.md`/`log.md`) is created for this method:
153
+ * the repo's own docs are the knowledge base.
154
+ */
155
+ const DOCS_README = `# Wiki adapter: docs (docs-as-context)
156
+
157
+ This project's own existing docs (\`docs/\`, \`ARCHITECTURE.md\`, \`README.md\`, or wherever this
158
+ repo keeps them) are the knowledge base — read them before acting, and propose changes to them
159
+ the same way you'd propose any other code change. No separate wiki state is created; this
160
+ file just names the protocol.
161
+
162
+ ## Setup
163
+
164
+ Nothing to install or scaffold. This method has no state directory of its own — it points at
165
+ docs the repo already owns.
166
+
167
+ ## Usage
168
+
169
+ - **Before acting**, skim the repo's existing docs for anything relevant to the task at hand.
170
+ - **When you learn something that belongs in the docs** — a decision, a correction, an
171
+ architectural note — propose the update as a normal PR/commit to those same files. Docs
172
+ changes go through the same review as code; there's no separate ingest step.
173
+ - Use \`/docs-lookup <topic>\` to find and read the relevant existing doc(s) before starting work.
174
+
175
+ ## How this maps to the baselane protocol
176
+
177
+ Where \`baselane\` maintains its own read/write knowledge base under \`.baselane/wiki/\`, \`docs\`
178
+ treats the repo's pre-existing documentation as that knowledge base directly — read-only from
179
+ the harness's point of view, writable only through the normal commit/PR path a human reviews.
180
+ `;
181
+ const DOCS_COMMAND = {
182
+ name: "docs-lookup",
183
+ description: "Find and read the repo's existing docs relevant to a topic before acting.",
184
+ argument_hint: "<topic to look up>",
185
+ prompt: "Locate and read the existing documentation relevant to $ARGUMENTS — check `docs/`, " +
186
+ "`ARCHITECTURE.md`, `README.md`, and any other doc files this repo already maintains (see " +
187
+ "`.baselane/docs-as-context/README.md`, or `docs-as-context/README.md`, for the protocol). " +
188
+ "Read before acting. If the docs are missing or wrong for $ARGUMENTS, propose the fix as a " +
189
+ "normal edit to those files, not a separate wiki entry — docs changes go through the same " +
190
+ "review as code.",
191
+ };
192
+ /** The AGENTS.md capabilities-section note for a wiki+baselane capability, regardless of store. */
193
+ export const WIKI_AGENTS_NOTE = "### Wiki\n\n" +
194
+ "`.baselane/wiki/` is an OKF-compliant knowledge base: read `index.md` and the relevant " +
195
+ "pages before acting, and ingest new durable knowledge into a page (with its index and " +
196
+ "log lines) after learning it. Use `/wiki` to look up, record, or lint.";
197
+ // #9: each sibling method gets its own note naming the path/command it actually scaffolds,
198
+ // instead of wiki+baselane's note being handed to every method (see hasRepoWikiBaselaneMethod).
199
+ export const WIKI_DEEPWIKI_AGENTS_NOTE = "### Wiki (deepwiki)\n\n" +
200
+ "This project queries DeepWiki's auto-generated architecture wiki via MCP — merge " +
201
+ "`.baselane/mcp/deepwiki.json` into `.mcp.json` (see `.baselane/deepwiki/README.md`), then use " +
202
+ "`/deepwiki <question>`. DeepWiki is read-only; ingest anything durable you learn into " +
203
+ "`.baselane/wiki/` (if present) the normal way instead.";
204
+ export const WIKI_DOCS_AGENTS_NOTE = "### Wiki (docs)\n\n" +
205
+ "This project treats its own existing docs as the knowledge base (see " +
206
+ "`.baselane/docs-as-context/README.md`) — read them before acting, and propose changes the " +
207
+ "normal way. Use `/docs-lookup <topic>` to find the relevant doc before starting work.";
208
+ function wikiCapabilitiesFor(pack, store) {
209
+ return (pack.capabilities ?? []).filter((c) => c.type === "wiki" && c.store === store);
210
+ }
211
+ function hasWikiMethod(pack, store, method) {
212
+ return wikiCapabilitiesFor(pack, store).some((c) => c.method === method);
213
+ }
214
+ /** True if this store has any wired-up wiki capability (baselane, deepwiki, or docs) that needs
215
+ * its command (and, for baselane, its Stop hook) spliced into the pack via `withWikiScaffolding`. */
216
+ function hasWikiScaffoldingNeed(pack, store) {
217
+ return (hasWikiMethod(pack, store, "baselane") || hasWikiMethod(pack, store, "deepwiki") || hasWikiMethod(pack, store, "docs"));
218
+ }
219
+ /** Despite the name — kept for compatibility with the existing gate call sites in
220
+ * render-pack.ts/bundle.ts/capabilities.ts — this now guards `withWikiScaffolding` for every
221
+ * wired-up wiki method in the repo store, not baselane alone. */
222
+ export function hasRepoWikiBaselane(pack) {
223
+ return hasWikiScaffoldingNeed(pack, "repo");
224
+ }
225
+ /** Org-store counterpart of {@link hasRepoWikiBaselane}. */
226
+ export function hasOrgWikiBaselane(pack) {
227
+ return hasWikiScaffoldingNeed(pack, "org");
228
+ }
229
+ /** #9: `WIKI_AGENTS_NOTE` describes the `baselane` method (`.baselane/wiki/` OKF store, `/wiki`).
230
+ * Unlike {@link hasRepoWikiBaselane} (which gates scaffolding for ANY wiki method), this gates only
231
+ * that note — so a deepwiki/docs pack isn't told to use `/wiki` + a `.baselane/wiki/index.md` that
232
+ * was never created (deepwiki scaffolds `/deepwiki`, docs scaffolds `/docs-lookup`). */
233
+ export function hasRepoWikiBaselaneMethod(pack) {
234
+ return hasWikiMethod(pack, "repo", "baselane");
235
+ }
236
+ /** #9: narrow, note-only gates for the sibling methods — same rationale as
237
+ * {@link hasRepoWikiBaselaneMethod} above. */
238
+ export function hasRepoWikiDeepwikiMethod(pack) {
239
+ return hasWikiMethod(pack, "repo", "deepwiki");
240
+ }
241
+ export function hasRepoWikiDocsMethod(pack) {
242
+ return hasWikiMethod(pack, "repo", "docs");
243
+ }
244
+ /** Adds the present wiki method(s)' command(s) for one store (+ baselane's Stop-hook reminder)
245
+ * to a pack, without disturbing what it already declares. `store` defaults to "repo" for
246
+ * compatibility with pre-multi-method call sites; render-pack.ts passes "repo" and bundle.ts
247
+ * passes "org" explicitly so a method declared in one store never leaks a command into the
248
+ * other's file map. */
249
+ export function withWikiScaffolding(pack, store = "repo") {
250
+ const methods = new Set(wikiCapabilitiesFor(pack, store).map((c) => c.method));
251
+ const commands = [...pack.commands];
252
+ const hooks = [...pack.hooks];
253
+ if (methods.has("baselane")) {
254
+ commands.push(WIKI_COMMAND);
255
+ hooks.push(WIKI_STOP_HOOK);
256
+ }
257
+ if (methods.has("deepwiki")) {
258
+ commands.push(DEEPWIKI_COMMAND);
259
+ hooks.push(DEEPWIKI_SETUP_HOOK);
260
+ }
261
+ if (methods.has("docs"))
262
+ commands.push(DOCS_COMMAND);
263
+ return { ...pack, commands, hooks };
264
+ }
265
+ /** File map for one store's wiki capabilities — baselane's README, deepwiki's MCP snippet +
266
+ * README, and/or docs' README, whichever methods are present. `pathFor` picks repo vs bundle
267
+ * path shape for a given leaf filename. */
268
+ function wikiFilesFor(pack, store, pathFor) {
269
+ const methods = new Set(wikiCapabilitiesFor(pack, store).map((c) => c.method));
270
+ const files = {};
271
+ if (methods.has("baselane"))
272
+ files[pathFor("wiki/README.md")] = WIKI_README;
273
+ if (methods.has("deepwiki")) {
274
+ files[pathFor("mcp/deepwiki.json")] = DEEPWIKI_MCP_JSON;
275
+ files[pathFor("deepwiki/README.md")] = DEEPWIKI_README;
276
+ }
277
+ if (methods.has("docs"))
278
+ files[pathFor("docs-as-context/README.md")] = DOCS_README;
279
+ return files;
280
+ }
281
+ /** `.baselane/wiki/README.md` etc., for whichever wiki methods are present in the repo store. */
282
+ export function renderRepoWikiFiles(pack) {
283
+ return wikiFilesFor(pack, "repo", (leaf) => `.baselane/${leaf}`);
284
+ }
285
+ /** `wiki/README.md` etc. in the laptop bundle, for whichever wiki methods are present in the org store. */
286
+ export function renderBundleWikiFiles(pack) {
287
+ return wikiFilesFor(pack, "org", (leaf) => leaf);
288
+ }
@@ -0,0 +1,17 @@
1
+ import { type RepoFileSource } from "@baselane/analyze";
2
+ import type { FileMap } from "../types.ts";
3
+ export interface GraphSeedOptions {
4
+ /** ISO timestamp stamped as the graph's `generated` field — injected so the seed is deterministic
5
+ * (buildImportGraph otherwise stamps `new Date().toISOString()`). */
6
+ generated: string;
7
+ }
8
+ /**
9
+ * A computed module-dependency graph for `.baselane/graph.json` (+ human-readable `graph/GRAPH.md`),
10
+ * the central compute the `graph` capability was missing (system-map/design/wiki already have theirs).
11
+ * `runSystemMapJob` already runs buildImportGraph but keeps only a summary; this renders and persists
12
+ * the full graph so it can ride the rollout fold as `file` artifacts — a mirror of buildWikiSeed.
13
+ *
14
+ * Pure + source-agnostic (RepoFileSource → runs centrally via GithubFileSource, no clone). Returns
15
+ * leaf paths (`graph.json`, `graph/GRAPH.md`); the caller prefixes `.baselane/` for the repo surface.
16
+ */
17
+ export declare function buildGraphSeed(source: RepoFileSource, opts: GraphSeedOptions): Promise<FileMap>;
@@ -0,0 +1,18 @@
1
+ import { buildImportGraph, renderGraphMd } from "@baselane/analyze";
2
+ /**
3
+ * A computed module-dependency graph for `.baselane/graph.json` (+ human-readable `graph/GRAPH.md`),
4
+ * the central compute the `graph` capability was missing (system-map/design/wiki already have theirs).
5
+ * `runSystemMapJob` already runs buildImportGraph but keeps only a summary; this renders and persists
6
+ * the full graph so it can ride the rollout fold as `file` artifacts — a mirror of buildWikiSeed.
7
+ *
8
+ * Pure + source-agnostic (RepoFileSource → runs centrally via GithubFileSource, no clone). Returns
9
+ * leaf paths (`graph.json`, `graph/GRAPH.md`); the caller prefixes `.baselane/` for the repo surface.
10
+ */
11
+ export async function buildGraphSeed(source, opts) {
12
+ const raw = await buildImportGraph(source);
13
+ const graph = { ...raw, generated: opts.generated };
14
+ return {
15
+ "graph.json": JSON.stringify(graph, null, 2) + "\n",
16
+ "graph/GRAPH.md": renderGraphMd(graph),
17
+ };
18
+ }
@@ -0,0 +1,23 @@
1
+ import { type RepoFileSource } from "@baselane/analyze";
2
+ import type { FileMap } from "../types.ts";
3
+ export interface WikiSeedOptions {
4
+ /** ISO date (YYYY-MM-DD) stamped into the OKF change log — injected so the seed is deterministic. */
5
+ date: string;
6
+ /** When present, the architecture page gets an AI-narrated overview + hypothesized rules (via the
7
+ * same narrateArchitecture path the system map uses). Absent ⇒ the deterministic static seed only. */
8
+ ai?: {
9
+ apiKey: string;
10
+ fetchImpl?: typeof fetch;
11
+ };
12
+ }
13
+ /**
14
+ * A queryable, OKF-formatted seed for `.baselane/wiki/`, computed centrally from static analysis:
15
+ * an index, one architecture page grounded in the repo's real languages/commands/module hotspots,
16
+ * and a change log. This is the missing central compute for the `wiki` capability (system-map,
17
+ * graph, and design already have theirs) — the "narrateWiki" of the central-compute→push design.
18
+ *
19
+ * It is a *starting point* an agent (or the `second-brain` librarian) grows, never the whole
20
+ * knowledge base — everything here is derived from the code, nothing is fabricated. Returns leaf
21
+ * paths under `wiki/`; the caller prefixes `.baselane/` for the repo surface.
22
+ */
23
+ export declare function buildWikiSeed(source: RepoFileSource, opts: WikiSeedOptions): Promise<FileMap>;
@@ -0,0 +1,133 @@
1
+ import { analyze, analyzeConventions, analyzeDesignTokens, buildImportGraph, narrateArchitecture, pickSamples, } from "@baselane/analyze";
2
+ const TOP_HUBS = 5;
3
+ /**
4
+ * A queryable, OKF-formatted seed for `.baselane/wiki/`, computed centrally from static analysis:
5
+ * an index, one architecture page grounded in the repo's real languages/commands/module hotspots,
6
+ * and a change log. This is the missing central compute for the `wiki` capability (system-map,
7
+ * graph, and design already have theirs) — the "narrateWiki" of the central-compute→push design.
8
+ *
9
+ * It is a *starting point* an agent (or the `second-brain` librarian) grows, never the whole
10
+ * knowledge base — everything here is derived from the code, nothing is fabricated. Returns leaf
11
+ * paths under `wiki/`; the caller prefixes `.baselane/` for the repo surface.
12
+ */
13
+ export async function buildWikiSeed(source, opts) {
14
+ const [profile, graph, design] = await Promise.all([analyze(source), buildImportGraph(source), analyzeDesignTokens(source)]);
15
+ let narration = null;
16
+ if (opts.ai) {
17
+ const [conventions, samples] = await Promise.all([analyzeConventions(source), pickSamples(source)]);
18
+ narration = await narrateArchitecture({ profile, conventions, samples }, { apiKey: opts.ai.apiKey, fetchImpl: opts.ai.fetchImpl });
19
+ }
20
+ const files = {
21
+ "wiki/index.md": renderIndex(design.hasUiSurface),
22
+ "wiki/architecture.md": renderArchitecturePage(profile, graph, narration),
23
+ "wiki/log.md": renderLog(opts.date, design.hasUiSurface),
24
+ };
25
+ // OKF is one-concept-per-file: the design system gets its own page, only when there's a UI surface.
26
+ if (design.hasUiSurface)
27
+ files["wiki/design.md"] = renderDesignPage(design);
28
+ return files;
29
+ }
30
+ function renderIndex(hasDesign) {
31
+ const lines = [
32
+ "# Wiki index",
33
+ "",
34
+ "One line per page — scan this before opening any page. Add a line here whenever you create a page.",
35
+ "",
36
+ "- [Architecture overview](architecture.md) — languages, commands, and module hotspots (seeded from static analysis)",
37
+ ];
38
+ if (hasDesign)
39
+ lines.push("- [Design](design.md) — UI frameworks and design tokens (colors, fonts, radii, spacing)");
40
+ lines.push("");
41
+ return lines.join("\n");
42
+ }
43
+ /** Modules ranked by in-degree (how many modules import them) — the architectural centers of gravity. */
44
+ function topHubs(graph) {
45
+ const moduleIds = new Set(graph.nodes.filter((n) => n.kind === "module").map((n) => n.id));
46
+ const inDegree = new Map();
47
+ for (const e of graph.edges) {
48
+ if (moduleIds.has(e.to))
49
+ inDegree.set(e.to, (inDegree.get(e.to) ?? 0) + 1);
50
+ }
51
+ return [...inDegree.entries()]
52
+ .map(([id, inDeg]) => ({ id, inDegree: inDeg }))
53
+ .sort((a, b) => b.inDegree - a.inDegree || a.id.localeCompare(b.id))
54
+ .slice(0, TOP_HUBS);
55
+ }
56
+ function renderArchitecturePage(profile, graph, narration) {
57
+ const frameworks = profile.frameworks.map((f) => (f.version ? `${f.name} ${f.version}` : f.name));
58
+ const hubs = topHubs(graph);
59
+ const lines = [
60
+ "---",
61
+ "type: How-it-works",
62
+ "title: Architecture overview",
63
+ "description: Seeded from static analysis — languages, commands, and module hotspots.",
64
+ "---",
65
+ "",
66
+ "This page was seeded from static analysis when the second brain was set up. Treat it as a",
67
+ "starting point: correct it and split out new pages as you learn how this project actually works.",
68
+ "",
69
+ ];
70
+ if (narration) {
71
+ lines.push("## Overview", "", narration.overview, "");
72
+ if (narration.hypothesizedRules.length) {
73
+ lines.push("## Hypothesized conventions", "", "AI-suggested from the samples — verify before relying on them:", "");
74
+ for (const r of narration.hypothesizedRules)
75
+ lines.push(`- ${r}`);
76
+ lines.push("");
77
+ }
78
+ }
79
+ lines.push("## Stack", "", `- Languages: ${profile.languages.join(", ") || "(none detected)"}`, `- Package manager: ${profile.packageManager ?? "(none detected)"}`, `- Frameworks: ${frameworks.join(", ") || "(none detected)"}`, `- Layout: ${profile.layout}`, "", "## Commands", "", `- Build: ${profile.commands.build ?? "(not detected)"}`, `- Test: ${profile.commands.test ?? "(not detected)"}`, `- Lint: ${profile.commands.lint ?? "(not detected)"}`, "", "## Module hotspots", "");
80
+ if (hubs.length === 0) {
81
+ lines.push("No internal import edges detected — this repo has no resolvable module graph yet.");
82
+ }
83
+ else {
84
+ lines.push("The most-imported modules (by in-degree) — likely the architectural centers of gravity:");
85
+ lines.push("");
86
+ for (const h of hubs)
87
+ lines.push(`- \`${h.id}\` — imported by ${h.inDegree} module${h.inDegree === 1 ? "" : "s"}`);
88
+ }
89
+ lines.push("");
90
+ return lines.join("\n");
91
+ }
92
+ const MAX_LISTED = 8;
93
+ function renderDesignPage(design) {
94
+ const list = (label, items) => items.length ? `- ${label}: ${items.slice(0, MAX_LISTED).join(", ")}${items.length > MAX_LISTED ? ", …" : ""}` : `- ${label}: (none detected)`;
95
+ return [
96
+ "---",
97
+ "type: How-it-works",
98
+ "title: Design",
99
+ "description: Seeded from static analysis — UI frameworks and design tokens.",
100
+ "---",
101
+ "",
102
+ "This project has a UI surface. Seeded design facts below — correct and extend them as the design",
103
+ "system evolves; pair with the repo's DESIGN.md if the design capability is also enabled.",
104
+ "",
105
+ "## UI frameworks",
106
+ "",
107
+ design.frameworks.length ? design.frameworks.map((f) => `- ${f}`).join("\n") : "(none detected)",
108
+ "",
109
+ "## Tokens",
110
+ "",
111
+ list("Colors", design.colors.map((c) => `${c.name} ${c.value}`)),
112
+ list("Fonts", design.fonts),
113
+ list("Radii", design.radii),
114
+ list("Spacing", design.spacing),
115
+ `- Custom properties: ${design.customPropertyCount}`,
116
+ "",
117
+ ].join("\n");
118
+ }
119
+ function renderLog(date, hasDesign) {
120
+ const subject = hasDesign ? "architecture.md, design.md" : "architecture.md";
121
+ const detail = hasDesign
122
+ ? "Seeded the wiki from static analysis (languages, commands, module hotspots, design tokens)."
123
+ : "Seeded the wiki from static analysis (languages, commands, module hotspots).";
124
+ return [
125
+ "# Change log",
126
+ "",
127
+ "Append-only. One entry per change; never rewrite a line once added.",
128
+ "",
129
+ `## [${date}] ingest | ${subject}`,
130
+ detail,
131
+ "",
132
+ ].join("\n");
133
+ }
@@ -0,0 +1,18 @@
1
+ import type { SkillBlock } from "./types.ts";
2
+ export interface SeedSkill {
3
+ block: SkillBlock;
4
+ licenseText: string;
5
+ source: string;
6
+ url: string;
7
+ sha: string;
8
+ }
9
+ /** Source tag for baselane-authored first-party skills (#19). Distinguishes them from imported
10
+ * (third-party) seed skills and is the basis of the catalog's first-party/third-party filter.
11
+ * First-party skills carry no external licence notice and no `attribution`. */
12
+ export declare const FIRST_PARTY_SOURCE = "baselane";
13
+ /** Absolute path of the committed seed-skills directory shipped inside this package. */
14
+ export declare function seedSkillsDir(): string;
15
+ /** Reads and VALIDATES every committed seed skill (validateSkill is the sole authority). Throws if
16
+ * any seed no longer conforms — the seed must never ship an invalid skill. First-party skills are
17
+ * appended after the fetched (third-party) ones, so callers keying off index order are unaffected. */
18
+ export declare function loadSeedSkills(): Promise<SeedSkill[]>;