codymaster 4.8.0 → 7.0.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 (416) hide show
  1. package/CHANGELOG.md +331 -7
  2. package/README.md +226 -296
  3. package/dist/advisory-handoff.js +89 -0
  4. package/dist/advisory-report.js +105 -0
  5. package/dist/agent/antigravity.js +152 -0
  6. package/dist/agent/backend.js +2 -0
  7. package/dist/agent/claude.js +196 -0
  8. package/dist/agent/codex.js +204 -0
  9. package/dist/agent/copilot.js +284 -0
  10. package/dist/agent/cursor.js +211 -0
  11. package/dist/agent/factory.js +30 -0
  12. package/dist/agent/gemini.js +142 -0
  13. package/dist/agent/opencode.js +205 -0
  14. package/dist/agent/spawn-helper.js +237 -0
  15. package/dist/agent/version.js +25 -0
  16. package/dist/browse/adapter-factory.js +69 -0
  17. package/dist/browse/adapters/agent-browser-adapter.js +305 -0
  18. package/dist/browse/adapters/playwright-adapter.js +309 -0
  19. package/dist/browse/adapters/types.js +6 -0
  20. package/dist/browse/error-collector.js +132 -0
  21. package/dist/browse/event-log.js +109 -0
  22. package/dist/browse/index.js +17 -0
  23. package/dist/browse-server.js +204 -120
  24. package/dist/cli/command-registry.js +20 -0
  25. package/dist/cli/commands/bench.js +69 -0
  26. package/dist/cli/commands/brain.js +108 -0
  27. package/dist/cli/commands/dashboard.js +76 -2
  28. package/dist/cli/commands/engineering.js +326 -4
  29. package/dist/cli/commands/evolve.js +123 -0
  30. package/dist/cli/commands/install.js +160 -0
  31. package/dist/cli/commands/learn.js +181 -0
  32. package/dist/cli/commands/mcp-serve.js +104 -0
  33. package/dist/cli/commands/parallel.js +138 -0
  34. package/dist/cli/commands/quality.js +105 -0
  35. package/dist/cli/commands/stack.js +49 -0
  36. package/dist/cli/commands/update.js +159 -0
  37. package/dist/cli/update-check.js +94 -10
  38. package/dist/cm-config.js +0 -18
  39. package/dist/codybench/judges/automated.js +31 -0
  40. package/dist/codybench/runners/claude-code.js +32 -0
  41. package/dist/codybench/suites/memory-retention.js +85 -0
  42. package/dist/codybench/suites/tdd-regression.js +35 -0
  43. package/dist/codybench/suites/token-efficiency.js +55 -0
  44. package/dist/codybench/types.js +2 -0
  45. package/dist/context-db.js +157 -0
  46. package/dist/continuity.js +5 -7
  47. package/dist/dashboard.js +47 -6
  48. package/dist/data.js +35 -0
  49. package/dist/execution/tdd-gate.js +113 -0
  50. package/dist/execution-analyzer.js +138 -0
  51. package/dist/executor/cancel.js +34 -0
  52. package/dist/executor/gc.js +74 -0
  53. package/dist/executor/index.js +14 -0
  54. package/dist/executor/runner.js +70 -0
  55. package/dist/executor/workdir.js +31 -0
  56. package/dist/handoff/contracts.js +22 -0
  57. package/dist/handoff/index.js +18 -0
  58. package/dist/handoff/io.js +121 -0
  59. package/dist/index.js +7 -3
  60. package/dist/indexer/skills-lib.js +533 -0
  61. package/dist/indexer/skills-map.js +1374 -0
  62. package/dist/indexer/skills.js +16 -0
  63. package/dist/indexer/stack-detect.js +219 -0
  64. package/dist/install/copy.js +98 -0
  65. package/dist/install/engine.js +42 -0
  66. package/dist/install/paths.js +70 -0
  67. package/dist/install/platforms/_simple.js +85 -0
  68. package/dist/install/platforms/antigravity.js +91 -0
  69. package/dist/install/platforms/claude-code.js +107 -0
  70. package/dist/install/platforms/cursor.js +77 -0
  71. package/dist/install/platforms/index.js +27 -0
  72. package/dist/install/platforms/simple.js +163 -0
  73. package/dist/install/profiles.js +75 -0
  74. package/dist/install/types.js +2 -0
  75. package/dist/learning-promoter.js +246 -0
  76. package/dist/learnings.js +208 -0
  77. package/dist/mcp-context-server.js +230 -1
  78. package/dist/middleware/metrics.js +30 -0
  79. package/dist/middleware/security-headers.js +14 -0
  80. package/dist/realtime/event-bus.js +29 -0
  81. package/dist/realtime/ws-hub.js +91 -0
  82. package/dist/schemas/task-schema.js +48 -0
  83. package/dist/schemas/validate.js +18 -0
  84. package/dist/skill-chain.js +63 -1
  85. package/dist/skill-evolver.js +456 -0
  86. package/dist/skill-execution-cache.js +254 -0
  87. package/dist/skills-lock.js +96 -0
  88. package/dist/smart-brain-router.js +184 -0
  89. package/dist/sprint-pipeline.js +26 -0
  90. package/dist/storage/index.js +21 -0
  91. package/dist/storage/repos/activity-repo.js +46 -0
  92. package/dist/storage/repos/message-repo.js +39 -0
  93. package/dist/storage/repos/project-repo.js +56 -0
  94. package/dist/storage/repos/task-repo.js +142 -0
  95. package/dist/storage/services/project-service.js +49 -0
  96. package/dist/storage/services/task-service.js +97 -0
  97. package/dist/storage/sqlite.js +113 -0
  98. package/dist/storage-backend.js +10 -8
  99. package/dist/tier-classify.js +131 -0
  100. package/dist/token-budget.js +88 -0
  101. package/dist/ui/onboarding.js +51 -15
  102. package/dist/utils/cli-utils.js +7 -2
  103. package/dist/utils/design-taste.js +108 -0
  104. package/dist/utils/output-compress.js +143 -0
  105. package/dist/vibecoding-index.js +126 -0
  106. package/package.json +20 -6
  107. package/public/dashboard/app.js +52 -1
  108. package/scripts/build-skills-lock.mjs +88 -0
  109. package/scripts/build-skills.mjs +187 -28
  110. package/scripts/compress-skill.mjs +73 -0
  111. package/scripts/deprecate-skill.mjs +72 -0
  112. package/scripts/install.sh +170 -0
  113. package/scripts/mcp-bridge.js +2 -2
  114. package/scripts/postinstall.js +53 -335
  115. package/scripts/update-changelog.sh +88 -0
  116. package/scripts/validate-skills.mjs +101 -4
  117. package/skills/CLAUDE.md +0 -5
  118. package/skills/_shared/SKILL_TEMPLATE.md +62 -0
  119. package/skills/_shared/helpers.md +2 -8
  120. package/skills/cm-autopilot/scripts/autopilot.py +19 -2
  121. package/skills/cm-brainstorm-idea/SKILL.md +9 -0
  122. package/skills/cm-browse/SKILL.md +6 -0
  123. package/skills/cm-clean-code/SKILL.md +20 -0
  124. package/skills/cm-code-review/SKILL.md +21 -0
  125. package/skills/cm-codeintell/SKILL.md +9 -0
  126. package/skills/cm-conductor-worktrees/SKILL.archive.md +28 -0
  127. package/skills/cm-conductor-worktrees/SKILL.md +20 -18
  128. package/skills/cm-continuity/SKILL.md +41 -33
  129. package/skills/cm-dashboard/SKILL.archive.md +15 -0
  130. package/skills/cm-dashboard/SKILL.md +20 -9
  131. package/skills/cm-dashboard/ui/app.js +9 -1
  132. package/skills/cm-debugging/SKILL.md +9 -0
  133. package/skills/cm-design-studio/SKILL.archive.md +34 -0
  134. package/skills/cm-design-studio/SKILL.md +20 -24
  135. package/skills/cm-design-system/SKILL.md +1 -0
  136. package/skills/cm-ecosystem-roadmap/SKILL.md +4 -0
  137. package/skills/cm-engineering-meta/SKILL.archive.md +73 -0
  138. package/skills/cm-engineering-meta/SKILL.md +19 -62
  139. package/skills/cm-execution/SKILL.md +98 -0
  140. package/skills/cm-git-worktrees/SKILL.archive.md +157 -0
  141. package/skills/cm-git-worktrees/SKILL.md +15 -146
  142. package/skills/cm-guardian-runtime/SKILL.md +5 -1
  143. package/skills/cm-identity-guard/SKILL.md +8 -0
  144. package/skills/cm-mcp-engineering/SKILL.md +4 -0
  145. package/skills/cm-planning/SKILL.md +63 -92
  146. package/skills/cm-post-deploy-canary/SKILL.archive.md +22 -0
  147. package/skills/cm-post-deploy-canary/SKILL.md +20 -12
  148. package/skills/cm-project-bootstrap/SKILL.md +11 -0
  149. package/skills/cm-qa-visual-cli/SKILL.archive.md +22 -0
  150. package/skills/cm-qa-visual-cli/SKILL.md +19 -11
  151. package/skills/cm-quality-gate/SKILL.md +38 -0
  152. package/skills/cm-retro-cli/SKILL.md +4 -0
  153. package/skills/cm-safe-deploy/SKILL.md +9 -0
  154. package/skills/cm-second-opinion-cli/SKILL.archive.md +23 -0
  155. package/skills/cm-second-opinion-cli/SKILL.md +20 -13
  156. package/skills/cm-secret-shield/SKILL.archive.md +580 -0
  157. package/skills/cm-secret-shield/SKILL.md +15 -569
  158. package/skills/cm-security-gate/SKILL.archive.md +239 -0
  159. package/skills/cm-security-gate/SKILL.md +16 -228
  160. package/skills/cm-skill-chain/SKILL.md +25 -4
  161. package/skills/cm-skill-evolution/SKILL.md +83 -0
  162. package/skills/cm-skill-health/SKILL.archive.md +83 -0
  163. package/skills/cm-skill-health/SKILL.md +26 -0
  164. package/skills/cm-skill-index/SKILL.md +19 -3
  165. package/skills/cm-skill-mastery/SKILL.archive.md +156 -0
  166. package/skills/cm-skill-mastery/SKILL.md +16 -146
  167. package/skills/cm-skill-search/SKILL.archive.md +49 -0
  168. package/skills/cm-skill-search/SKILL.md +26 -0
  169. package/skills/cm-skill-share/SKILL.archive.md +58 -0
  170. package/skills/cm-skill-share/SKILL.md +26 -0
  171. package/skills/cm-sprint-bus/SKILL.md +13 -0
  172. package/skills/cm-start/SKILL.md +17 -10
  173. package/skills/cm-tdd/SKILL.md +21 -2
  174. package/skills/cm-terminal/SKILL.md +15 -0
  175. package/skills/cm-test-gate/SKILL.archive.md +245 -0
  176. package/skills/cm-test-gate/SKILL.md +15 -234
  177. package/skills/cm-ui-preview/SKILL.archive.md +153 -0
  178. package/skills/cm-ui-preview/SKILL.md +16 -143
  179. package/skills/cm-ux-master/cli/uxmaster/commands/mcp.py +1 -1
  180. package/skills/cm-ux-master/mcp/mcp-config.json +1 -1
  181. package/skills/cm-ux-master/mcp/server.py +2 -2
  182. package/skills/profiles/design.txt +1 -1
  183. package/skills/profiles/full.txt +4 -10
  184. package/skills/profiles/growth.txt +8 -8
  185. package/skills/profiles/knowledge.txt +1 -1
  186. package/skills/profiles/top35.json +41 -0
  187. package/adapters/antigravity.js +0 -15
  188. package/adapters/claude-code.js +0 -17
  189. package/adapters/cursor.js +0 -16
  190. package/install.sh +0 -1125
  191. package/scripts/viking-demo.ts +0 -105
  192. package/skills/cm-ads-tracker/SKILL.md +0 -401
  193. package/skills/cm-ads-tracker/evals/evals.json +0 -55
  194. package/skills/cm-ads-tracker/references/gtm-architecture.md +0 -321
  195. package/skills/cm-ads-tracker/references/industry-events.md +0 -294
  196. package/skills/cm-ads-tracker/references/platforms-api.md +0 -238
  197. package/skills/cm-ads-tracker/templates/capi-payload.md +0 -79
  198. package/skills/cm-ads-tracker/templates/datalayer-push.js +0 -104
  199. package/skills/cm-ads-tracker/templates/gtm-variables.js +0 -56
  200. package/skills/cm-auto-publisher/SKILL.md +0 -81
  201. package/skills/cm-booking-calendar/SKILL.md +0 -521
  202. package/skills/cm-booking-calendar/references/industry-patterns.md +0 -527
  203. package/skills/cm-booking-calendar/templates/booking-form.css +0 -626
  204. package/skills/cm-booking-calendar/templates/booking-form.html +0 -477
  205. package/skills/cm-booking-calendar/templates/calendar-engine.js +0 -419
  206. package/skills/cm-booking-calendar/templates/calendar-export.js +0 -395
  207. package/skills/cm-booking-calendar/templates/reminder-config.js +0 -629
  208. package/skills/cm-content-factory/.content-factory-state.json +0 -132
  209. package/skills/cm-content-factory/.git 2/logs/refs/heads/main +0 -1
  210. package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +0 -1
  211. package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  212. package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  213. package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  214. package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  215. package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  216. package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  217. package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  218. package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  219. package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  220. package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  221. package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  222. package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  223. package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  224. package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  225. package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  226. package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  227. package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  228. package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  229. package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  230. package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  231. package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  232. package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  233. package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  234. package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  235. package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  236. package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  237. package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  238. package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  239. package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  240. package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  241. package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  242. package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  243. package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  244. package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  245. package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  246. package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  247. package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  248. package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  249. package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  250. package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  251. package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  252. package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  253. package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  254. package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +0 -5
  255. package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  256. package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  257. package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  258. package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  259. package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  260. package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  261. package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  262. package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  263. package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  264. package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  265. package/skills/cm-content-factory/.git 2/refs/heads/main +0 -1
  266. package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +0 -1
  267. package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +0 -76
  268. package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +0 -1
  269. package/skills/cm-content-factory/AGENTS.md +0 -61
  270. package/skills/cm-content-factory/CLAUDE.md +0 -63
  271. package/skills/cm-content-factory/CURSOR.md +0 -43
  272. package/skills/cm-content-factory/Content Factory.zip +0 -0
  273. package/skills/cm-content-factory/SKILL.md +0 -416
  274. package/skills/cm-content-factory/cf +0 -313
  275. package/skills/cm-content-factory/config.schema.json +0 -397
  276. package/skills/cm-content-factory/dashboard/app.js +0 -556
  277. package/skills/cm-content-factory/dashboard/index.html +0 -397
  278. package/skills/cm-content-factory/dashboard/style.css +0 -1211
  279. package/skills/cm-content-factory/examples/01-real-estate.config.json +0 -146
  280. package/skills/cm-content-factory/examples/02-personal-finance.config.json +0 -146
  281. package/skills/cm-content-factory/examples/03-health-wellness.config.json +0 -147
  282. package/skills/cm-content-factory/examples/04-saas-software.config.json +0 -147
  283. package/skills/cm-content-factory/examples/05-legal-services.config.json +0 -147
  284. package/skills/cm-content-factory/examples/06-insurance.config.json +0 -146
  285. package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +0 -146
  286. package/skills/cm-content-factory/examples/08-online-education.config.json +0 -147
  287. package/skills/cm-content-factory/examples/09-crypto-defi.config.json +0 -147
  288. package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +0 -147
  289. package/skills/cm-content-factory/examples/11-home-services.config.json +0 -146
  290. package/skills/cm-content-factory/examples/12-dental-clinic.config.json +0 -147
  291. package/skills/cm-content-factory/examples/13-pet-care.config.json +0 -147
  292. package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +0 -147
  293. package/skills/cm-content-factory/examples/15-ai-automation.config.json +0 -147
  294. package/skills/cm-content-factory/examples/16-wedding-events.config.json +0 -147
  295. package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +0 -148
  296. package/skills/cm-content-factory/examples/18-cybersecurity.config.json +0 -147
  297. package/skills/cm-content-factory/examples/19-food-restaurant.config.json +0 -148
  298. package/skills/cm-content-factory/examples/20-solar-energy.config.json +0 -147
  299. package/skills/cm-content-factory/examples/fitness-blog.config.json +0 -116
  300. package/skills/cm-content-factory/examples/tech-blog.config.json +0 -107
  301. package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +0 -72
  302. package/skills/cm-content-factory/extensions/hooks.py +0 -126
  303. package/skills/cm-content-factory/extensions/openclaw_adapter.py +0 -132
  304. package/skills/cm-content-factory/landing/docs/content/changelog.md +0 -36
  305. package/skills/cm-content-factory/landing/docs/content/deployment.md +0 -46
  306. package/skills/cm-content-factory/landing/docs/content/execution-flow.md +0 -67
  307. package/skills/cm-content-factory/landing/docs/content/openspace.md +0 -27
  308. package/skills/cm-content-factory/landing/docs/content/openviking.md +0 -33
  309. package/skills/cm-content-factory/landing/docs/content/use-cases.md +0 -26
  310. package/skills/cm-content-factory/landing/docs/content/v5-intro.md +0 -28
  311. package/skills/cm-content-factory/landing/docs/index.html +0 -240
  312. package/skills/cm-content-factory/landing/index.html +0 -680
  313. package/skills/cm-content-factory/landing/script.js +0 -143
  314. package/skills/cm-content-factory/landing/style.css +0 -1216
  315. package/skills/cm-content-factory/landing/translations.js +0 -508
  316. package/skills/cm-content-factory/logs/events.jsonl +0 -11
  317. package/skills/cm-content-factory/profiles/_template.profile.json +0 -231
  318. package/skills/cm-content-factory/profiles/finance.profile.json +0 -278
  319. package/skills/cm-content-factory/profiles/legal.profile.json +0 -263
  320. package/skills/cm-content-factory/profiles/medical-research.profile.json +0 -321
  321. package/skills/cm-content-factory/profiles/technology.profile.json +0 -275
  322. package/skills/cm-content-factory/scripts/agent_dispatcher.py +0 -266
  323. package/skills/cm-content-factory/scripts/audit.py +0 -106
  324. package/skills/cm-content-factory/scripts/dashboard_server.py +0 -225
  325. package/skills/cm-content-factory/scripts/deploy.py +0 -146
  326. package/skills/cm-content-factory/scripts/extract.py +0 -132
  327. package/skills/cm-content-factory/scripts/landing_generator.py +0 -459
  328. package/skills/cm-content-factory/scripts/memory.py +0 -521
  329. package/skills/cm-content-factory/scripts/monetize.py +0 -239
  330. package/skills/cm-content-factory/scripts/pipeline.py +0 -357
  331. package/skills/cm-content-factory/scripts/plan.py +0 -163
  332. package/skills/cm-content-factory/scripts/publish.py +0 -145
  333. package/skills/cm-content-factory/scripts/research.py +0 -337
  334. package/skills/cm-content-factory/scripts/scaffold.py +0 -464
  335. package/skills/cm-content-factory/scripts/scoreboard.py +0 -336
  336. package/skills/cm-content-factory/scripts/seo.py +0 -90
  337. package/skills/cm-content-factory/scripts/state_manager.py +0 -320
  338. package/skills/cm-content-factory/scripts/token_manager.py +0 -268
  339. package/skills/cm-content-factory/scripts/validate.py +0 -221
  340. package/skills/cm-content-factory/scripts/wizard.py +0 -329
  341. package/skills/cm-content-factory/scripts/write.py +0 -93
  342. package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
  343. package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +0 -90
  344. package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +0 -54
  345. package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +0 -38
  346. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +0 -65
  347. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +0 -48
  348. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +0 -39
  349. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +0 -42
  350. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +0 -51
  351. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +0 -52
  352. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +0 -86
  353. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +0 -80
  354. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +0 -58
  355. package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +0 -102
  356. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +0 -45
  357. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +0 -29
  358. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +0 -55
  359. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +0 -29
  360. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +0 -41
  361. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +0 -40
  362. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +0 -56
  363. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +0 -46
  364. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +0 -45
  365. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +0 -45
  366. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +0 -108
  367. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +0 -22
  368. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +0 -52
  369. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +0 -58
  370. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +0 -92
  371. package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +0 -575
  372. package/skills/cm-content-factory/tests/conftest.py +0 -66
  373. package/skills/cm-content-factory/tests/test_agent_dispatcher.py +0 -125
  374. package/skills/cm-content-factory/tests/test_memory.py +0 -128
  375. package/skills/cm-content-factory/tests/test_pipeline.py +0 -107
  376. package/skills/cm-content-factory/tests/test_research.py +0 -56
  377. package/skills/cm-content-factory/tests/test_state_manager.py +0 -131
  378. package/skills/cm-content-factory/tests/test_token_manager.py +0 -110
  379. package/skills/cm-content-factory/tests/test_wizard.py +0 -121
  380. package/skills/cm-cro-methodology/SKILL.md +0 -290
  381. package/skills/cm-cro-methodology/references/COPYWRITING.md +0 -178
  382. package/skills/cm-cro-methodology/references/OBJECTIONS.md +0 -135
  383. package/skills/cm-cro-methodology/references/PERSUASION.md +0 -158
  384. package/skills/cm-cro-methodology/references/RESEARCH.md +0 -220
  385. package/skills/cm-cro-methodology/references/funnel-analysis.md +0 -365
  386. package/skills/cm-cro-methodology/references/testing-methodology.md +0 -330
  387. package/skills/cm-google-form/SKILL.md +0 -266
  388. package/skills/cm-google-form/templates/apps-script.js +0 -55
  389. package/skills/cm-google-form/templates/form-markup.html +0 -110
  390. package/skills/cm-google-form/templates/form-submit.js +0 -201
  391. package/skills/cm-google-form/templates/toast.css +0 -152
  392. package/skills/cm-growth-hacking/SKILL.md +0 -282
  393. package/skills/cm-growth-hacking/bottom-sheet-engine.md +0 -261
  394. package/skills/cm-growth-hacking/calendar-integration.md +0 -264
  395. package/skills/cm-growth-hacking/references/engagement-patterns.md +0 -346
  396. package/skills/cm-growth-hacking/templates/bottom-sheet.css +0 -528
  397. package/skills/cm-growth-hacking/templates/bottom-sheet.js +0 -269
  398. package/skills/cm-growth-hacking/templates/calendar-cta.js +0 -213
  399. package/skills/cm-growth-hacking/templates/tracking-events.js +0 -211
  400. package/skills/cm-growth-hacking/templates/trigger-manager.js +0 -254
  401. package/skills/cm-growth-hacking/tracking-events.md +0 -246
  402. package/skills/cm-growth-hacking/trigger-system.md +0 -342
  403. package/skills/cm-jtbd/SKILL.md +0 -98
  404. package/skills/cm-notebooklm/SKILL.md +0 -156
  405. package/skills/cm-notebooklm/references/command_reference.md +0 -94
  406. package/skills/cm-notebooklm/references/workflows.md +0 -60
  407. package/skills/cm-notebooklm/resources/knowledge_sources.md +0 -106
  408. package/skills/cm-notebooklm/scripts/brain-sync.sh +0 -453
  409. package/skills/cm-notebooklm/scripts/graduate_wisdom.py +0 -101
  410. package/skills/cm-readit/SKILL.md +0 -289
  411. package/skills/cm-readit/audio-player.md +0 -206
  412. package/skills/cm-readit/examples/blog-reader.js +0 -352
  413. package/skills/cm-readit/examples/voice-cro.js +0 -390
  414. package/skills/cm-readit/tts-engine.md +0 -262
  415. package/skills/cm-readit/ui-patterns.md +0 -362
  416. package/skills/cm-readit/voice-cro.md +0 -223
@@ -1,60 +0,0 @@
1
- # NotebookLM Workflows
2
-
3
- All workflows use `brain-sync.sh`. Set shortcut:
4
-
5
- ```bash
6
- SCRIPT=~/.gemini/antigravity/skills/cm-notebooklm/scripts/brain-sync.sh
7
- ```
8
-
9
- ## 1. Bootstrap (First Time)
10
-
11
- ```bash
12
- uv tool install notebooklm-mcp-cli # Install CLI
13
- bash $SCRIPT init # Login → create → compile → upload
14
- ```
15
-
16
- ## 2. Add Lesson Learned
17
-
18
- ```bash
19
- bash $SCRIPT lesson "Never hardcode secrets"
20
- # Edit ~/.codymaster/lessons.md (fill in details)
21
- bash $SCRIPT sync # Compile + upload
22
- ```
23
-
24
- ## 3. Add Coding Experience
25
-
26
- ```bash
27
- bash $SCRIPT experience "Parallel tool calls race condition"
28
- # Edit ~/.codymaster/experiences.md (fill in details)
29
- bash $SCRIPT sync
30
- ```
31
-
32
- ## 4. Sync After Changes
33
-
34
- ```bash
35
- bash $SCRIPT sync # Compile → hash check → upload if changed → confirm
36
- ```
37
-
38
- ## 5. Cross-Machine Setup
39
-
40
- ```bash
41
- uv tool install notebooklm-mcp-cli
42
- nlm login
43
- nlm alias set codymaster $(nlm notebook list --quiet | head -1)
44
- ```
45
-
46
- ## 6. Query & Generate
47
-
48
- ```bash
49
- nlm notebook query codymaster "Which skill handles deployment?"
50
- nlm audio create codymaster --format deep_dive --confirm
51
- nlm flashcards create codymaster --difficulty medium --confirm
52
- ```
53
-
54
- ## 7. Project Notebook
55
-
56
- ```bash
57
- nlm notebook create "Project: MyApp"
58
- nlm alias set myapp <id>
59
- nlm source add myapp --text "$(cat docs/architecture.md)" --title "Architecture"
60
- ```
@@ -1,106 +0,0 @@
1
- # Knowledge Source Templates
2
-
3
- Templates for structuring content before ingesting into NotebookLM.
4
-
5
- ## Skill Source Template
6
-
7
- ```markdown
8
- # Skill: {name}
9
-
10
- **Description:** {description}
11
- **Triggers:** {trigger words}
12
- **Category:** {planning/execution/verification/utility}
13
-
14
- ## When to Use
15
- {when_to_use}
16
-
17
- ## Key Instructions
18
- {core steps}
19
-
20
- ## Integration
21
- {related skills}
22
- ```
23
-
24
- ## Lesson Learned Template
25
-
26
- ```markdown
27
- ## Lesson: {title}
28
- **Date:** {YYYY-MM-DD}
29
- **Context:** {project or situation}
30
- **Problem:** {what went wrong or what was discovered}
31
- **Solution:** {how it was resolved}
32
- **Takeaway:** {the key learning for future reference}
33
- **Related Skills:** {cm-skill-1, cm-skill-2}
34
- **Severity:** {critical / important / nice-to-know}
35
- ```
36
-
37
- ## Project Knowledge Template
38
-
39
- ```markdown
40
- # Project: {name}
41
-
42
- **Stack:** {technologies}
43
- **Architecture:** {pattern}
44
- **Status:** {active / maintenance / archived}
45
-
46
- ## Key Decisions
47
- - {decision 1}: {rationale}
48
- - {decision 2}: {rationale}
49
-
50
- ## Known Issues
51
- - {issue 1}: {status}
52
-
53
- ## Contacts
54
- - {role}: {person}
55
- ```
56
-
57
- ## Decision Record Template
58
-
59
- ```markdown
60
- ## Decision: {title}
61
- **Date:** {YYYY-MM-DD}
62
- **Status:** {proposed / accepted / deprecated}
63
- **Context:** {why this decision was needed}
64
- **Options Considered:**
65
- 1. {option A} — {pros/cons}
66
- 2. {option B} — {pros/cons}
67
- **Decision:** {chosen option}
68
- **Consequences:** {implications}
69
- ```
70
-
71
- ## Bug Post-Mortem Template
72
-
73
- ```markdown
74
- ## Post-Mortem: {incident title}
75
- **Date:** {YYYY-MM-DD}
76
- **Severity:** {P0 / P1 / P2 / P3}
77
- **Duration:** {time to resolve}
78
- **Root Cause:** {what actually caused it}
79
- **Detection:** {how was it discovered}
80
- **Resolution:** {what fixed it}
81
- **Prevention:** {what will prevent recurrence}
82
- **Lessons:**
83
- - {lesson 1}
84
- - {lesson 2}
85
- ```
86
-
87
- ## Bundle Template (for grouping related skills)
88
-
89
- When notebook approaches 50-source limit, bundle related content:
90
-
91
- ```markdown
92
- # Bundle: {category name}
93
- ## Skills in this bundle: {count}
94
-
95
- ---
96
-
97
- ### Skill: {name-1}
98
- {full SKILL.md content}
99
-
100
- ---
101
-
102
- ### Skill: {name-2}
103
- {full SKILL.md content}
104
-
105
- ---
106
- ```
@@ -1,453 +0,0 @@
1
- #!/bin/bash
2
- # brain-sync.sh — CodyMaster NotebookLM Brain Sync Engine
3
- # Compile → Hash → Upload → Verify
4
- #
5
- # Usage:
6
- # bash brain-sync.sh compile # Compile brain.md locally
7
- # bash brain-sync.sh upload # Upload brain.md to NotebookLM
8
- # bash brain-sync.sh sync # Compile + upload if changed
9
- # bash brain-sync.sh lesson "title" # Add lesson interactively
10
- # bash brain-sync.sh status # Show brain status
11
- # bash brain-sync.sh init # First-time setup
12
-
13
- set -euo pipefail
14
-
15
- # --- Config ---
16
- BRAIN_DIR="${HOME}/.codymaster"
17
- BRAIN_FILE="${BRAIN_DIR}/brain.md"
18
- LESSONS_FILE="${BRAIN_DIR}/lessons.md"
19
- EXPERIENCES_FILE="${BRAIN_DIR}/experiences.md"
20
- HASH_FILE="${BRAIN_DIR}/.brain-hash"
21
- SKILLS_DIR="${HOME}/.gemini/antigravity/skills"
22
- NOTEBOOK_ALIAS="codymaster"
23
- GRADUATED_FILE="${BRAIN_DIR}/graduated_wisdom.md"
24
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
25
- GRADUATE_SCRIPT="${SCRIPT_DIR}/graduate_wisdom.py"
26
-
27
- # --- Helpers ---
28
- info() { echo "🧠 $*"; }
29
- warn() { echo "⚠️ $*"; }
30
- error() { echo "❌ $*" >&2; exit 1; }
31
-
32
- ensure_dir() {
33
- mkdir -p "$BRAIN_DIR"
34
- }
35
-
36
- check_nlm() {
37
- command -v nlm &>/dev/null || error "nlm not installed. Run: uv tool install notebooklm-mcp-cli"
38
- }
39
-
40
- check_auth() {
41
- nlm auth status &>/dev/null || {
42
- warn "Session expired. Running nlm login..."
43
- nlm login
44
- }
45
- }
46
-
47
- current_hash() {
48
- [ -f "$BRAIN_FILE" ] && md5 -q "$BRAIN_FILE" 2>/dev/null || echo "none"
49
- }
50
-
51
- saved_hash() {
52
- [ -f "$HASH_FILE" ] && cat "$HASH_FILE" || echo "none"
53
- }
54
-
55
- save_hash() {
56
- current_hash > "$HASH_FILE"
57
- }
58
-
59
- # --- Commands ---
60
-
61
- cmd_graduate() {
62
- info "Graduating proven wisdom from local .cm/ folder..."
63
- python3 "$GRADUATE_SCRIPT" || warn "Graduation script encountered an error."
64
- }
65
-
66
- cmd_compile() {
67
- ensure_dir
68
- info "Compiling brain.md..."
69
-
70
- cat > "$BRAIN_FILE" << 'HEADER'
71
- # CodyMaster Brain
72
- > Auto-compiled knowledge base. Do not edit directly.
73
- > Re-compile with: bash brain-sync.sh compile
74
-
75
- HEADER
76
-
77
- echo "Generated: $(date +%Y-%m-%d' '%H:%M)" >> "$BRAIN_FILE"
78
- echo "" >> "$BRAIN_FILE"
79
-
80
- # Section 1: Skill Index (names + descriptions only)
81
- echo "---" >> "$BRAIN_FILE"
82
- echo "# Skill Index" >> "$BRAIN_FILE"
83
- echo "" >> "$BRAIN_FILE"
84
-
85
- local count=0
86
- for skill_dir in "$SKILLS_DIR"/*/; do
87
- [ -d "$skill_dir" ] || continue
88
- local name=$(basename "$skill_dir")
89
- local file="$skill_dir/SKILL.md"
90
- [ -f "$file" ] || continue
91
-
92
- # Extract description from frontmatter
93
- local desc=$(awk '/^description:/{found=1; sub(/^description: */, ""); print; next} found && /^ /{print; next} found{exit}' "$file" | head -3)
94
- echo "## $name" >> "$BRAIN_FILE"
95
- echo "$desc" >> "$BRAIN_FILE"
96
- echo "" >> "$BRAIN_FILE"
97
- count=$((count + 1))
98
- done
99
- info " → $count skills indexed"
100
-
101
- # Section 2: Lessons Learned
102
- if [ -f "$LESSONS_FILE" ]; then
103
- echo "---" >> "$BRAIN_FILE"
104
- echo "# Lessons Learned" >> "$BRAIN_FILE"
105
- echo "" >> "$BRAIN_FILE"
106
- cat "$LESSONS_FILE" >> "$BRAIN_FILE"
107
- local lesson_count=$(grep -c "^## Lesson:" "$LESSONS_FILE" 2>/dev/null || echo 0)
108
- info " → $lesson_count lessons included"
109
- fi
110
-
111
- # Section 3: Coding Experiences
112
- if [ -f "$EXPERIENCES_FILE" ]; then
113
- echo "---" >> "$BRAIN_FILE"
114
- echo "# Coding Experiences" >> "$BRAIN_FILE"
115
- echo "" >> "$BRAIN_FILE"
116
- cat "$EXPERIENCES_FILE" >> "$BRAIN_FILE"
117
- local exp_count=$(grep -c "^## Experience:" "$EXPERIENCES_FILE" 2>/dev/null || echo 0)
118
- info " → $exp_count experiences included"
119
- fi
120
-
121
- # Section 3b: Graduated Project Wisdom
122
- if [ -f "$GRADUATED_FILE" ]; then
123
- echo "---" >> "$BRAIN_FILE"
124
- echo "# Graduated Project Wisdom" >> "$BRAIN_FILE"
125
- echo "" >> "$BRAIN_FILE"
126
- cat "$GRADUATED_FILE" >> "$BRAIN_FILE"
127
- local grad_count=$(grep -c "\*\*ID:\*\*" "$GRADUATED_FILE" 2>/dev/null || echo 0)
128
- info " → $grad_count graduated items included"
129
- fi
130
-
131
- # Section 4: Project identity (if exists)
132
- local agents_file="$SKILLS_DIR/AGENTS.md"
133
- if [ -f "$agents_file" ]; then
134
- echo "---" >> "$BRAIN_FILE"
135
- echo "# Project Identity" >> "$BRAIN_FILE"
136
- echo "" >> "$BRAIN_FILE"
137
- cat "$agents_file" >> "$BRAIN_FILE"
138
- fi
139
-
140
- local size=$(wc -c < "$BRAIN_FILE" | tr -d ' ')
141
- local lines=$(wc -l < "$BRAIN_FILE" | tr -d ' ')
142
- info "Compiled: $BRAIN_FILE ($lines lines, ${size} bytes)"
143
-
144
- # Check if changed
145
- if [ "$(current_hash)" = "$(saved_hash)" ]; then
146
- info "No changes since last upload."
147
- else
148
- info "Changes detected. Run 'brain-sync.sh upload' to sync to cloud."
149
- fi
150
- }
151
-
152
- cmd_upload() {
153
- check_nlm
154
- check_auth
155
-
156
- [ -f "$BRAIN_FILE" ] || error "brain.md not found. Run 'brain-sync.sh compile' first."
157
-
158
- # Check if changed
159
- if [ "$(current_hash)" = "$(saved_hash)" ]; then
160
- info "No changes. Skipping upload."
161
- return 0
162
- fi
163
-
164
- info "Uploading brain.md to NotebookLM..."
165
-
166
- # Check if source already exists (by title match)
167
- local existing=$(nlm source list "$NOTEBOOK_ALIAS" --quiet 2>/dev/null | head -1)
168
-
169
- if [ -n "$existing" ]; then
170
- # Delete old brain source and re-add (NotebookLM has no update API)
171
- info "Replacing existing brain source..."
172
- # We search by title to find the right source
173
- local source_id=$(nlm source list "$NOTEBOOK_ALIAS" --json 2>/dev/null | \
174
- python3 -c "import sys,json; sources=json.load(sys.stdin); [print(s['id']) for s in sources if 'CodyMaster Brain' in s.get('title','')]" 2>/dev/null | head -1)
175
- if [ -n "$source_id" ]; then
176
- nlm source delete "$source_id" --confirm 2>/dev/null || true
177
- sleep 2
178
- fi
179
- fi
180
-
181
- nlm source add "$NOTEBOOK_ALIAS" \
182
- --text "$(cat "$BRAIN_FILE")" \
183
- --title "CodyMaster Brain — Compiled Knowledge"
184
-
185
- save_hash
186
- info "Upload complete! Hash: $(current_hash)"
187
- }
188
-
189
- cmd_sync() {
190
- cmd_graduate
191
- cmd_compile
192
- if [ "$(current_hash)" != "$(saved_hash)" ]; then
193
- echo ""
194
- read -p "🔄 Changes detected. Upload to NotebookLM? [Y/n] " -n 1 -r
195
- echo ""
196
- if [[ $REPLY =~ ^[Yy]$ ]] || [[ -z $REPLY ]]; then
197
- cmd_upload
198
- else
199
- info "Skipped upload. brain.md saved locally."
200
- fi
201
- fi
202
- }
203
-
204
- cmd_lesson() {
205
- ensure_dir
206
- local title="${1:-}"
207
-
208
- if [ -z "$title" ]; then
209
- read -p "📝 Lesson title: " title
210
- fi
211
-
212
- [ -z "$title" ] && error "Title required."
213
-
214
- cat >> "$LESSONS_FILE" << EOF
215
-
216
- ## Lesson: $title
217
- **Date:** $(date +%Y-%m-%d)
218
- **Context:**
219
- **Problem:**
220
- **Root Cause:**
221
- **Solution:**
222
- **Prevention:**
223
- **Tags:**
224
- EOF
225
-
226
- info "Lesson template added to $LESSONS_FILE"
227
- info "Edit the file, then run 'brain-sync.sh sync' to upload."
228
- echo " → $LESSONS_FILE"
229
- }
230
-
231
- cmd_experience() {
232
- ensure_dir
233
- local title="${1:-}"
234
-
235
- if [ -z "$title" ]; then
236
- read -p "💡 Experience title: " title
237
- fi
238
-
239
- [ -z "$title" ] && error "Title required."
240
-
241
- cat >> "$EXPERIENCES_FILE" << EOF
242
-
243
- ## Experience: $title
244
- **Date:** $(date +%Y-%m-%d)
245
- **Stack:**
246
- **Pattern:**
247
- **When to Use:**
248
- **Pitfalls:**
249
- EOF
250
-
251
- info "Experience template added to $EXPERIENCES_FILE"
252
- info "Edit the file, then run 'brain-sync.sh sync' to upload."
253
- echo " → $EXPERIENCES_FILE"
254
- }
255
-
256
- cmd_status() {
257
- ensure_dir
258
- echo "🧠 CodyMaster Brain Status"
259
- echo "=========================="
260
-
261
- if [ -f "$BRAIN_FILE" ]; then
262
- local size=$(wc -c < "$BRAIN_FILE" | tr -d ' ')
263
- local lines=$(wc -l < "$BRAIN_FILE" | tr -d ' ')
264
- echo "📄 brain.md: $lines lines, $size bytes"
265
- echo "🔑 Local hash: $(current_hash)"
266
- echo "🔑 Synced hash: $(saved_hash)"
267
- if [ "$(current_hash)" = "$(saved_hash)" ]; then
268
- echo "✅ Status: In sync"
269
- else
270
- echo "🔄 Status: Changes pending"
271
- fi
272
- else
273
- echo "📄 brain.md: Not compiled yet"
274
- fi
275
-
276
- echo ""
277
- if [ -f "$LESSONS_FILE" ]; then
278
- local lc=$(grep -c "^## Lesson:" "$LESSONS_FILE" 2>/dev/null || echo 0)
279
- echo "📝 Lessons: $lc"
280
- else
281
- echo "📝 Lessons: 0"
282
- fi
283
-
284
- if [ -f "$EXPERIENCES_FILE" ]; then
285
- local ec=$(grep -c "^## Experience:" "$EXPERIENCES_FILE" 2>/dev/null || echo 0)
286
- echo "💡 Experiences: $ec"
287
- else
288
- echo "💡 Experiences: 0"
289
- fi
290
-
291
- echo ""
292
- local skill_count=$(find "$SKILLS_DIR" -maxdepth 2 -name "SKILL.md" 2>/dev/null | wc -l | tr -d ' ')
293
- echo "📦 Skills found: $skill_count"
294
-
295
- if [ -f "$GRADUATED_FILE" ]; then
296
- local gc=$(grep -c "\*\*ID:\*\*" "$GRADUATED_FILE" 2>/dev/null || echo 0)
297
- echo "🎓 Graduated: $gc items"
298
- else
299
- echo "🎓 Graduated: 0 items"
300
- fi
301
-
302
- # NLM status (if available)
303
- if command -v nlm &>/dev/null; then
304
- echo ""
305
- echo "--- NotebookLM ---"
306
- nlm auth status 2>/dev/null && echo "🔐 Auth: Active" || echo "🔐 Auth: Expired (run nlm login)"
307
- fi
308
- }
309
-
310
- cmd_init() {
311
- check_nlm
312
- ensure_dir
313
-
314
- info "First-time setup..."
315
-
316
- # 1. Login
317
- check_auth
318
-
319
- # 2. Create notebook
320
- info "Creating CodyMaster Brain notebook..."
321
- local nb_id=$(nlm notebook create "CodyMaster Brain" --quiet 2>/dev/null)
322
- if [ -z "$nb_id" ]; then
323
- error "Failed to create notebook. Check nlm auth."
324
- fi
325
-
326
- # 3. Set alias
327
- nlm alias set codymaster "$nb_id"
328
- info "Alias set: codymaster → $nb_id"
329
-
330
- # 4. Compile & upload
331
- cmd_compile
332
- cmd_upload
333
-
334
- info "✅ Setup complete! Your master brain is ready."
335
- echo ""
336
- echo "Quick commands:"
337
- echo " brain-sync.sh status — Check status"
338
- echo " brain-sync.sh lesson — Add lesson learned"
339
- echo " brain-sync.sh sync — Recompile & upload"
340
- echo " brain-sync.sh init-project — Create a project-specific brain (Dual-Brain)"
341
- echo " nlm notebook query codymaster 'your question'"
342
- }
343
-
344
- cmd_init_project() {
345
- check_nlm
346
- check_auth
347
-
348
- local project_name="${PWD##*/}"
349
- info "Initializing Project Brain for: $project_name"
350
-
351
- mkdir -p .cm
352
- if [ -f ".cm/notebook_id" ]; then
353
- warn "Project Brain already initialized. ID: $(cat .cm/notebook_id)"
354
- return 0
355
- fi
356
-
357
- local output=$(nlm notebook create "Project $project_name" 2>/dev/null)
358
-
359
- # output has format:
360
- # ✓ Created notebook: Project test
361
- # ID: 7a97...
362
- local nb_id=$(echo "$output" | grep "ID:" | awk '{print $2}')
363
-
364
- if [ -z "$nb_id" ]; then
365
- error "Failed to create Project Brain. Output: $output"
366
- fi
367
-
368
- echo "$nb_id" > .cm/notebook_id
369
- info "✅ Project Brain created! ID saved in .cm/notebook_id"
370
- echo "Use 'brain-sync.sh sync-project' to upload your local docs."
371
- }
372
-
373
- cmd_sync_project() {
374
- check_nlm
375
- check_auth
376
-
377
- [ -f ".cm/notebook_id" ] || error "Project Brain not initialized. Run 'init-project' first."
378
- local nb_id=$(cat .cm/notebook_id)
379
-
380
- info "Compiling project documents..."
381
- local temp_compile=".cm/project_context.md"
382
- mkdir -p .cm
383
-
384
- echo "# Project Context: ${PWD##*/}" > "$temp_compile"
385
- echo "Compiled: $(date +%Y-%m-%d' '%H:%M)" >> "$temp_compile"
386
- echo "" >> "$temp_compile"
387
-
388
- local doc_count=0
389
-
390
- # Search for docs and READMEs
391
- for md in $(find . -maxdepth 3 -type f -name "*.md" ! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/.cm/*" 2>/dev/null); do
392
- echo "## File: $md" >> "$temp_compile"
393
- cat "$md" >> "$temp_compile"
394
- echo "" >> "$temp_compile"
395
- doc_count=$((doc_count + 1))
396
- done
397
-
398
- info " → $doc_count markdown files compiled."
399
- if [ $doc_count -eq 0 ]; then
400
- warn "No local markdown files found to sync."
401
- return 0
402
- fi
403
-
404
- info "Uploading Context to Project Brain ($nb_id)..."
405
-
406
- # Delete old Project Context source and re-add
407
- local existing=$(nlm source list "$nb_id" --quiet 2>/dev/null | head -1)
408
- if [ -n "$existing" ]; then
409
- local source_id=$(nlm source list "$nb_id" --json 2>/dev/null | \
410
- python3 -c "import sys,json; sources=json.load(sys.stdin); [print(s['id']) for s in sources if 'Project Context' in s.get('title','')]" 2>/dev/null | head -1)
411
- if [ -n "$source_id" ]; then
412
- nlm source delete "$source_id" --confirm 2>/dev/null || true
413
- sleep 2
414
- fi
415
- fi
416
-
417
- nlm source add "$nb_id" \
418
- --text "$(cat "$temp_compile")" \
419
- --title "Project Context — Local Docs"
420
-
421
- info "✅ Project Brain synced successfully!"
422
- }
423
-
424
- # --- Main ---
425
- case "${1:-help}" in
426
- graduate) cmd_graduate ;;
427
- init-project) cmd_init_project ;;
428
- sync-project) cmd_sync_project ;;
429
- compile) cmd_compile ;;
430
- upload) cmd_upload ;;
431
- sync) cmd_sync ;;
432
- lesson) cmd_lesson "${2:-}" ;;
433
- experience) cmd_experience "${2:-}" ;;
434
- status) cmd_status ;;
435
- init) cmd_init ;;
436
- *)
437
- echo "🧠 CodyMaster Brain Sync"
438
- echo ""
439
- echo "Usage: brain-sync.sh <command>"
440
- echo ""
441
- echo "Commands:"
442
- echo " init First-time setup (create master notebook + compile + upload)"
443
- echo " init-project Create an isolated Project Brain for the current directory"
444
- echo " graduate Extract proven local learnings & decisions to global limits"
445
- echo " compile Compile brain.md from skills + lessons + experiences"
446
- echo " upload Upload brain.md to NotebookLM"
447
- echo " sync Compile + upload if changed (asks confirmation)"
448
- echo " sync-project Merge local markdown files and push to isolated Project Brain"
449
- echo " lesson Add a lesson learned"
450
- echo " experience Add a coding experience"
451
- echo " status Show brain status"
452
- ;;
453
- esac