codymaster 7.0.2 → 7.0.3

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 (341) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +38 -1
  3. package/dist/agent/codex.js +73 -21
  4. package/dist/agent-dispatch.js +63 -48
  5. package/dist/cli/commands/brain.js +18 -0
  6. package/dist/cli/commands/design-studio.js +1 -1
  7. package/dist/cm-suggest.js +3 -3
  8. package/dist/dashboard-project-summary.js +9 -0
  9. package/dist/dashboard.js +11 -5
  10. package/dist/execution-analyzer.js +9 -1
  11. package/dist/judge.js +16 -15
  12. package/dist/mcp-context-server.js +45 -23
  13. package/dist/mcp-skills-tools.js +2 -2
  14. package/dist/skill-chain.js +26 -3
  15. package/dist/skill-token-report.js +105 -0
  16. package/dist/sprint-pipeline.js +3 -3
  17. package/dist/ui/onboarding.js +3 -4
  18. package/dist/utils/design-taste.js +1 -1
  19. package/dist/utils/output-compress.js +8 -0
  20. package/package.json +2 -1
  21. package/public/dashboard/app.js +40 -13
  22. package/public/dashboard/index.html +190 -5
  23. package/public/dashboard/style.css +1 -1
  24. package/scripts/build-skills.mjs +36 -2
  25. package/scripts/mcp-bridge.js +41 -24
  26. package/scripts/pack-plugin.mjs +206 -0
  27. package/skills/cm-ads-tracker/SKILL.md +401 -0
  28. package/skills/cm-ads-tracker/evals/evals.json +55 -0
  29. package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
  30. package/skills/cm-ads-tracker/references/industry-events.md +294 -0
  31. package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
  32. package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
  33. package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
  34. package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
  35. package/skills/cm-auto-publisher/SKILL.md +81 -0
  36. package/skills/cm-booking-calendar/SKILL.md +521 -0
  37. package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
  38. package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
  39. package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
  40. package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
  41. package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
  42. package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
  43. package/skills/cm-brainstorm-idea/SKILL.md +5 -5
  44. package/skills/cm-code-review/SKILL.md +2 -2
  45. package/skills/cm-codeintell/SKILL.md +47 -580
  46. package/skills/cm-codeintell/references/integration-workflows.md +23 -0
  47. package/skills/cm-codeintell/references/layer-0-skeleton.md +54 -0
  48. package/skills/cm-codeintell/references/layer-1-codegraph.md +58 -0
  49. package/skills/cm-codeintell/references/layer-2-architecture.md +31 -0
  50. package/skills/cm-codeintell/references/layer-3-context-builder.md +32 -0
  51. package/skills/cm-content-factory/.content-factory-state.json +132 -0
  52. package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
  53. package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
  54. package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  55. package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  56. package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  57. package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  58. package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  59. package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  60. package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  61. package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  62. package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  63. package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  64. package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  65. package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  66. package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  67. package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  68. package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  69. package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  70. package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  71. package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  72. package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  73. package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  74. package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  75. package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  76. package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  77. package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  78. package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  79. package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  80. package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  81. package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  82. package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  83. package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  84. package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  85. package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  86. package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  87. package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  88. package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  89. package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  90. package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  91. package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  92. package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  93. package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  94. package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  95. package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  96. package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  97. package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
  98. package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  99. package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  100. package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  101. package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  102. package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  103. package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  104. package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  105. package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  106. package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  107. package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  108. package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
  109. package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
  110. package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
  111. package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
  112. package/skills/cm-content-factory/AGENTS.md +61 -0
  113. package/skills/cm-content-factory/CLAUDE.md +63 -0
  114. package/skills/cm-content-factory/CURSOR.md +43 -0
  115. package/skills/cm-content-factory/Content Factory.zip +0 -0
  116. package/skills/cm-content-factory/SKILL.md +416 -0
  117. package/skills/cm-content-factory/cf +313 -0
  118. package/skills/cm-content-factory/config.schema.json +397 -0
  119. package/skills/cm-content-factory/dashboard/app.js +556 -0
  120. package/skills/cm-content-factory/dashboard/index.html +397 -0
  121. package/skills/cm-content-factory/dashboard/style.css +1211 -0
  122. package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
  123. package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
  124. package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
  125. package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
  126. package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
  127. package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
  128. package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
  129. package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
  130. package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
  131. package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
  132. package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
  133. package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
  134. package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
  135. package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
  136. package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
  137. package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
  138. package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
  139. package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
  140. package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
  141. package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
  142. package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
  143. package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
  144. package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
  145. package/skills/cm-content-factory/extensions/hooks.py +126 -0
  146. package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
  147. package/skills/cm-content-factory/landing/docs/content/changelog.md +36 -0
  148. package/skills/cm-content-factory/landing/docs/content/deployment.md +46 -0
  149. package/skills/cm-content-factory/landing/docs/content/execution-flow.md +67 -0
  150. package/skills/cm-content-factory/landing/docs/content/openspace.md +27 -0
  151. package/skills/cm-content-factory/landing/docs/content/openviking.md +33 -0
  152. package/skills/cm-content-factory/landing/docs/content/use-cases.md +26 -0
  153. package/skills/cm-content-factory/landing/docs/content/v5-intro.md +28 -0
  154. package/skills/cm-content-factory/landing/docs/index.html +240 -0
  155. package/skills/cm-content-factory/landing/index.html +680 -0
  156. package/skills/cm-content-factory/landing/script.js +143 -0
  157. package/skills/cm-content-factory/landing/style.css +1216 -0
  158. package/skills/cm-content-factory/landing/translations.js +508 -0
  159. package/skills/cm-content-factory/logs/events.jsonl +11 -0
  160. package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
  161. package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
  162. package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
  163. package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
  164. package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
  165. package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
  166. package/skills/cm-content-factory/scripts/audit.py +106 -0
  167. package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
  168. package/skills/cm-content-factory/scripts/deploy.py +146 -0
  169. package/skills/cm-content-factory/scripts/extract.py +132 -0
  170. package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
  171. package/skills/cm-content-factory/scripts/memory.py +521 -0
  172. package/skills/cm-content-factory/scripts/monetize.py +239 -0
  173. package/skills/cm-content-factory/scripts/pipeline.py +357 -0
  174. package/skills/cm-content-factory/scripts/plan.py +163 -0
  175. package/skills/cm-content-factory/scripts/publish.py +145 -0
  176. package/skills/cm-content-factory/scripts/research.py +337 -0
  177. package/skills/cm-content-factory/scripts/scaffold.py +464 -0
  178. package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
  179. package/skills/cm-content-factory/scripts/seo.py +90 -0
  180. package/skills/cm-content-factory/scripts/state_manager.py +320 -0
  181. package/skills/cm-content-factory/scripts/token_manager.py +268 -0
  182. package/skills/cm-content-factory/scripts/validate.py +221 -0
  183. package/skills/cm-content-factory/scripts/wizard.py +329 -0
  184. package/skills/cm-content-factory/scripts/write.py +93 -0
  185. package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
  186. package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
  187. package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
  188. package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
  189. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
  190. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
  191. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
  192. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
  193. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
  194. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
  195. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
  196. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
  197. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
  198. package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
  199. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
  200. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
  201. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
  202. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
  203. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
  204. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
  205. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
  206. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
  207. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
  208. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
  209. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
  210. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
  211. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
  212. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
  213. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
  214. package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
  215. package/skills/cm-content-factory/tests/conftest.py +66 -0
  216. package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
  217. package/skills/cm-content-factory/tests/test_memory.py +128 -0
  218. package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
  219. package/skills/cm-content-factory/tests/test_research.py +56 -0
  220. package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
  221. package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
  222. package/skills/cm-content-factory/tests/test_wizard.py +121 -0
  223. package/skills/cm-continuity/SKILL.md +49 -480
  224. package/skills/cm-continuity/references/cm-uri-scheme.md +23 -0
  225. package/skills/cm-continuity/references/continuity-template.md +48 -0
  226. package/skills/cm-continuity/references/mcp-context-server.md +27 -0
  227. package/skills/cm-continuity/references/memory-architecture.md +26 -0
  228. package/skills/cm-continuity/references/memory-audit.md +18 -0
  229. package/skills/cm-continuity/references/session-protocol.md +31 -0
  230. package/skills/cm-continuity/references/storage-formats.md +20 -0
  231. package/skills/cm-cro-methodology/SKILL.md +290 -0
  232. package/skills/cm-cro-methodology/references/COPYWRITING.md +178 -0
  233. package/skills/cm-cro-methodology/references/OBJECTIONS.md +135 -0
  234. package/skills/cm-cro-methodology/references/PERSUASION.md +158 -0
  235. package/skills/cm-cro-methodology/references/RESEARCH.md +220 -0
  236. package/skills/cm-cro-methodology/references/funnel-analysis.md +365 -0
  237. package/skills/cm-cro-methodology/references/testing-methodology.md +330 -0
  238. package/skills/cm-design-system/SKILL.md +5 -6
  239. package/skills/cm-execution/SKILL.md +61 -379
  240. package/skills/cm-execution/references/mode-a-batch.md +28 -0
  241. package/skills/cm-execution/references/mode-b-subagent.md +46 -0
  242. package/skills/cm-execution/references/mode-c-parallel.md +39 -0
  243. package/skills/cm-execution/references/mode-d-rarv.md +62 -0
  244. package/skills/cm-execution/references/mode-e-triz-parallel.md +53 -0
  245. package/skills/cm-execution/references/mode-f-party.md +61 -0
  246. package/skills/cm-execution/references/persona-dispatch.md +22 -0
  247. package/skills/cm-execution/references/security-rules.md +47 -0
  248. package/skills/cm-google-form/SKILL.md +266 -0
  249. package/skills/cm-google-form/templates/apps-script.js +55 -0
  250. package/skills/cm-google-form/templates/form-markup.html +110 -0
  251. package/skills/cm-google-form/templates/form-submit.js +201 -0
  252. package/skills/cm-google-form/templates/toast.css +152 -0
  253. package/skills/cm-growth-hacking/SKILL.md +282 -0
  254. package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
  255. package/skills/cm-growth-hacking/calendar-integration.md +264 -0
  256. package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
  257. package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
  258. package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
  259. package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
  260. package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
  261. package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
  262. package/skills/cm-growth-hacking/tracking-events.md +246 -0
  263. package/skills/cm-growth-hacking/trigger-system.md +342 -0
  264. package/skills/cm-how-it-work/SKILL.md +8 -9
  265. package/skills/cm-identity-guard/SKILL.md +4 -4
  266. package/skills/cm-jtbd/SKILL.md +98 -0
  267. package/skills/cm-notebooklm/SKILL.md +156 -0
  268. package/skills/cm-notebooklm/references/command_reference.md +94 -0
  269. package/skills/cm-notebooklm/references/workflows.md +60 -0
  270. package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
  271. package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
  272. package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
  273. package/skills/cm-planning/SKILL.md +3 -3
  274. package/skills/cm-project-bootstrap/SKILL.md +2 -2
  275. package/skills/cm-quality-gate/SKILL.md +1 -1
  276. package/skills/cm-readit/SKILL.md +289 -0
  277. package/skills/cm-readit/audio-player.md +206 -0
  278. package/skills/cm-readit/examples/blog-reader.js +352 -0
  279. package/skills/cm-readit/examples/voice-cro.js +390 -0
  280. package/skills/cm-readit/tts-engine.md +262 -0
  281. package/skills/cm-readit/ui-patterns.md +362 -0
  282. package/skills/cm-readit/voice-cro.md +223 -0
  283. package/skills/cm-safe-deploy/SKILL.md +80 -510
  284. package/skills/cm-safe-deploy/references/gate-0-5-security-scan.md +31 -0
  285. package/skills/cm-safe-deploy/references/gate-0-secret-hygiene.md +68 -0
  286. package/skills/cm-safe-deploy/references/gate-1-syntax.md +23 -0
  287. package/skills/cm-safe-deploy/references/gate-2-test-suite.md +28 -0
  288. package/skills/cm-safe-deploy/references/gate-3-i18n.md +19 -0
  289. package/skills/cm-safe-deploy/references/gate-4-5-build-dist.md +16 -0
  290. package/skills/cm-safe-deploy/references/gate-6-deploy-smoke.md +18 -0
  291. package/skills/cm-safe-deploy/references/rollback.md +17 -0
  292. package/skills/cm-safe-deploy/references/setup-new-project.md +20 -0
  293. package/skills/cm-skill-index/SKILL.md +15 -15
  294. package/skills/cm-start/SKILL.md +1 -1
  295. package/skills/cm-tdd/SKILL.md +51 -356
  296. package/skills/cm-tdd/references/bugfix-example.md +15 -0
  297. package/skills/cm-tdd/references/rationalizations.md +20 -0
  298. package/skills/cm-tdd/references/red-green-refactor.md +33 -0
  299. package/skills/cm-tdd/references/stuck-debugging.md +18 -0
  300. package/skills/cm-tdd/references/test-quality.md +19 -0
  301. package/skills/cm-ux-master/SKILL.md +368 -115
  302. package/skills/profiles/core.txt +1 -4
  303. package/skills/profiles/design.txt +1 -2
  304. package/skills/profiles/full.txt +10 -16
  305. package/skills/profiles/growth.txt +9 -9
  306. package/skills/profiles/top35.json +13 -13
  307. package/skills/cm-conductor-worktrees/SKILL.archive.md +0 -28
  308. package/skills/cm-conductor-worktrees/SKILL.md +0 -26
  309. package/skills/cm-dashboard/SKILL.archive.md +0 -15
  310. package/skills/cm-dashboard/SKILL.md +0 -26
  311. package/skills/cm-dashboard/ui/app.js +0 -1278
  312. package/skills/cm-dashboard/ui/index.html +0 -206
  313. package/skills/cm-dashboard/ui/style.css +0 -440
  314. package/skills/cm-design-studio/SKILL.archive.md +0 -34
  315. package/skills/cm-design-studio/SKILL.md +0 -26
  316. package/skills/cm-engineering-meta/SKILL.archive.md +0 -73
  317. package/skills/cm-engineering-meta/SKILL.md +0 -26
  318. package/skills/cm-git-worktrees/SKILL.archive.md +0 -157
  319. package/skills/cm-git-worktrees/SKILL.md +0 -26
  320. package/skills/cm-post-deploy-canary/SKILL.archive.md +0 -22
  321. package/skills/cm-post-deploy-canary/SKILL.md +0 -26
  322. package/skills/cm-qa-visual-cli/SKILL.archive.md +0 -22
  323. package/skills/cm-qa-visual-cli/SKILL.md +0 -26
  324. package/skills/cm-second-opinion-cli/SKILL.archive.md +0 -23
  325. package/skills/cm-second-opinion-cli/SKILL.md +0 -26
  326. package/skills/cm-secret-shield/SKILL.archive.md +0 -580
  327. package/skills/cm-secret-shield/SKILL.md +0 -26
  328. package/skills/cm-security-gate/SKILL.archive.md +0 -239
  329. package/skills/cm-security-gate/SKILL.md +0 -26
  330. package/skills/cm-skill-health/SKILL.archive.md +0 -83
  331. package/skills/cm-skill-health/SKILL.md +0 -26
  332. package/skills/cm-skill-mastery/SKILL.archive.md +0 -156
  333. package/skills/cm-skill-mastery/SKILL.md +0 -26
  334. package/skills/cm-skill-search/SKILL.archive.md +0 -49
  335. package/skills/cm-skill-search/SKILL.md +0 -26
  336. package/skills/cm-skill-share/SKILL.archive.md +0 -58
  337. package/skills/cm-skill-share/SKILL.md +0 -26
  338. package/skills/cm-test-gate/SKILL.archive.md +0 -245
  339. package/skills/cm-test-gate/SKILL.md +0 -26
  340. package/skills/cm-ui-preview/SKILL.archive.md +0 -153
  341. package/skills/cm-ui-preview/SKILL.md +0 -26
@@ -0,0 +1,121 @@
1
+ """Tests for wizard.py — Config generation and utility functions."""
2
+ import json
3
+ import sys
4
+ import pytest
5
+ from pathlib import Path
6
+
7
+ SCRIPTS_DIR = Path(__file__).resolve().parent.parent / "scripts"
8
+ sys.path.insert(0, str(SCRIPTS_DIR))
9
+
10
+
11
+ class TestSlugify:
12
+ """Test Wizard._slugify() method."""
13
+
14
+ def test_basic_slug(self):
15
+ """Should lowercase and replace spaces with hyphens."""
16
+ from wizard import Wizard
17
+ w = Wizard()
18
+ assert w._slugify("Hello World") == "hello-world"
19
+
20
+ def test_special_characters(self):
21
+ """Should strip special characters."""
22
+ from wizard import Wizard
23
+ w = Wizard()
24
+ assert w._slugify("Hello! @World #123") == "hello-world-123"
25
+
26
+ def test_unicode_text(self):
27
+ """Should handle Vietnamese/unicode text."""
28
+ from wizard import Wizard
29
+ w = Wizard()
30
+ result = w._slugify("Spa Massage Đông Y")
31
+ assert "-" in result or len(result) > 0
32
+
33
+ def test_empty_string(self):
34
+ """Should handle empty string."""
35
+ from wizard import Wizard
36
+ w = Wizard()
37
+ assert w._slugify("") == ""
38
+
39
+ def test_already_slug(self):
40
+ """Should not change already-slugified text."""
41
+ from wizard import Wizard
42
+ w = Wizard()
43
+ assert w._slugify("hello-world") == "hello-world"
44
+
45
+ def test_leading_trailing_special(self):
46
+ """Should strip leading/trailing hyphens."""
47
+ from wizard import Wizard
48
+ w = Wizard()
49
+ assert w._slugify("--hello--") == "hello"
50
+
51
+
52
+ class TestGenerateConfig:
53
+ """Test Wizard._generate_config() method."""
54
+
55
+ def test_generates_valid_config(self):
56
+ """Should produce a config with all required keys."""
57
+ from wizard import Wizard
58
+ w = Wizard()
59
+ w.answers = {
60
+ "niche": {"id": "test-niche"},
61
+ "brand_name": "TestBrand",
62
+ "slogan": "Test Slogan",
63
+ "language": "en",
64
+ "deploy": "cloudflare"
65
+ }
66
+ config = w._generate_config()
67
+
68
+ assert "niche" in config
69
+ assert "brand" in config
70
+ assert config["brand"]["name"] == "TestBrand"
71
+ assert config["brand"]["slogan"] == "Test Slogan"
72
+ assert "content" in config
73
+ assert "sources" in config
74
+ assert "output" in config
75
+
76
+ def test_config_has_memory_section(self):
77
+ """Generated config should include memory settings."""
78
+ from wizard import Wizard
79
+ w = Wizard()
80
+ w.answers = {
81
+ "niche": {"id": "test"},
82
+ "brand_name": "T",
83
+ "slogan": "S",
84
+ "language": "vi",
85
+ "deploy": "none"
86
+ }
87
+ config = w._generate_config()
88
+ assert "memory" in config
89
+ assert config["memory"]["enabled"] is True
90
+
91
+ def test_config_has_scoring_section(self):
92
+ """Generated config should include scoring settings."""
93
+ from wizard import Wizard
94
+ w = Wizard()
95
+ w.answers = {
96
+ "niche": {"id": "test"},
97
+ "brand_name": "T",
98
+ "slogan": "S",
99
+ "language": "vi",
100
+ "deploy": "none"
101
+ }
102
+ config = w._generate_config()
103
+ assert "scoring" in config
104
+ assert config["scoring"]["reward_praise"] == 10
105
+ assert config["scoring"]["penalty_delete"] == -10
106
+
107
+ def test_config_from_template(self):
108
+ """When niche has a template, should use it as base."""
109
+ from wizard import Wizard
110
+ w = Wizard()
111
+ template = {"niche": "template-niche", "content": {"article_types": []}, "sources": {"type": "url", "path": "/"}, "output": {"content_dir": "c/"}}
112
+ w.answers = {
113
+ "niche": {"id": "templated", "template": template},
114
+ "brand_name": "TB",
115
+ "slogan": "TS",
116
+ "language": "en",
117
+ "deploy": "github"
118
+ }
119
+ config = w._generate_config()
120
+ assert config["brand"]["name"] == "TB"
121
+ assert "deploy" in config
@@ -1,7 +1,16 @@
1
1
  ---
2
2
  name: cm-continuity
3
- description: "Working memory protocol — maintains context across sessions via CONTINUITY.md. Inspired by Loki Mode. Read at turn start, update at turn end. Captures mistakes and learnings to prevent repeating errors."
3
+ description: Working memory protocol — routes to session protocol, memory audit, MCP/URI integration, or storage details based on the current need. Keeps default continuity usage cheap.
4
4
  token_budget: 1200
5
+ token_core: 420
6
+ token_refs:
7
+ session-protocol: 420
8
+ continuity-template: 260
9
+ memory-architecture: 780
10
+ mcp-context-server: 460
11
+ cm-uri-scheme: 240
12
+ storage-formats: 420
13
+ memory-audit: 360
5
14
  compressed: true
6
15
  deprecated: false
7
16
  ---
@@ -9,495 +18,55 @@ deprecated: false
9
18
  # Continuity — Working Memory Protocol
10
19
 
11
20
  ## TL;DR
12
- - **Use at** session start (read) and end (update)
13
- - **File**: .cm/CONTINUITY.md (working memory)
14
- - **Auto-loads**: recent learnings from .cm/learnings.jsonl
15
- - **Loki Mode**: prevents repeating past mistakes
16
-
17
- > **Context persistence across sessions. Mistakes captured. Learnings applied.**
18
- > Inspired by Loki Mode's CONTINUITY.md protocol (Autonomi).
21
+ - **Use at** session start and end
22
+ - **Default file**: `.cm/CONTINUITY.md`
23
+ - **Goal**: preserve context, learnings, and next actions cheaply
24
+ - **Always-on**: this is a background protocol, not a one-off task skill
19
25
 
20
26
  ## When to Use
27
+ - Start of every session
28
+ - End of every session
29
+ - On errors, key decisions, or context handoffs
30
+ - When tooling needs memory, MCP, URI, or persistence details
21
31
 
22
- **ALWAYS** This is a background protocol, not an explicit invocation.
23
-
24
- - **Start of every session:** Read `.cm/CONTINUITY.md` to orient yourself
25
- - **End of every session:** Update `.cm/CONTINUITY.md` with progress
26
- - **On error:** Record in Mistakes & Learnings section
27
- - **On key decision:** Record in Key Decisions section
28
-
29
- ## Setup
30
-
31
- > **Prerequisite:** The `cm` CLI is the CodyMaster command-line tool. If not installed, you can
32
- > manage `.cm/CONTINUITY.md` directly with your editor or the AI agent without the CLI commands.
33
-
34
- ```bash
35
- # Initialize working memory for current project
36
- cm continuity init
37
-
38
- # Check current state
39
- cm continuity status
40
-
41
- # View captured learnings / decisions
42
- cm continuity learnings
43
- cm continuity decisions
44
-
45
- # ── Smart Spine v5 commands ──────────────────────────────
46
- # Regenerate L0 compact indexes (learnings-index.md, skeleton-index.md)
47
- cm continuity index
48
-
49
- # Show token budget allocation + usage per category
50
- cm continuity budget
51
-
52
- # Pretty-print current context bus state (active skill chain)
53
- cm continuity bus
54
-
55
- # Print Claude Desktop MCP config snippet for cm-context server
56
- cm continuity mcp
57
-
58
- # Migrate learnings.json + decisions.json → SQLite (one-time)
59
- cm continuity migrate
60
-
61
- # Export SQLite back to JSON (backup)
62
- cm continuity export
63
-
64
- # ── Legacy config note ────────────────────────────────────
65
- # CodyMaster's supported default path is SQLite + FTS5.
66
- # Older configs may still say `storage.backend: viking`; CodyMaster now warns and falls back to SQLite.
67
- ```
68
-
69
- ## The Protocol
70
-
71
- ### AT THE START OF EVERY SESSION:
32
+ ## Choose the Need
72
33
 
73
34
  ```
74
- 1. Read .cm/CONTINUITY.md to understand current state
75
- 2. Read "Mistakes & Learnings" to avoid past errors
76
- 3. Check "Next Actions" to determine what to do
77
- 4. Reference Active Goal throughout your work
78
- ```
35
+ Need to follow continuity correctly in normal day-to-day work?
36
+ └─ YES Session Protocol
79
37
 
80
- ### DURING WORK:
38
+ Need the template or expected CONTINUITY structure?
39
+ └─ YES → Continuity Template
81
40
 
82
- ```
83
- PRE-ACT ATTENTION CHECK (before every significant action):
84
- - Re-read Active Goal
85
- - Ask: "Does my planned action serve this goal?"
86
- - Ask: "Am I solving the original problem, not a tangent?"
87
- - If DRIFT detected → log it → return to goal
88
- ```
41
+ Need to understand memory tiers, MCP bridge, URI scheme, or storage?
42
+ └─ YES Load the relevant advanced reference
89
43
 
90
- ### AT THE END OF EVERY SESSION:
91
-
92
- ```
93
- 1. Update "Just Completed" with accomplishments
94
- 2. Update "Next Actions" with remaining work
95
- 3. Record any new "Mistakes & Learnings"
96
- 4. Record any "Key Decisions" made
97
- 5. Update "Files Modified" list
98
- 6. Set currentPhase and timestamp
99
- ```
100
-
101
- ### ON ERROR (Self-Correction Loop):
102
-
103
- ```
104
- ON_ERROR:
105
- 1. Capture error details (stack trace, context)
106
- 2. Analyze root cause (not just symptoms)
107
- 3. Write learning to CONTINUITY.md "Mistakes & Learnings"
108
- 4. Update approach based on learning
109
- 5. Retry with corrected approach
110
- 6. Max 3 retries per error pattern before ESCALATE
44
+ Need to audit memory quality and avoid stale/conflicting recall?
45
+ └─ YES → Memory Audit
111
46
  ```
112
47
 
113
- ## CONTINUITY.md Template
114
-
115
- ```markdown
116
- # CodyMaster Working Memory
117
- Last Updated: [ISO timestamp]
118
- Current Phase: [planning|executing|testing|deploying|reviewing]
119
- Current Iteration: [number]
120
- Project: [project name]
121
-
122
- ## Active Goal
123
- [What we're currently trying to accomplish — 1-2 sentences max]
124
-
125
- ## Current Task
126
- - ID: [task-id from dashboard]
127
- - Title: [task title]
128
- - Status: [in-progress|blocked|reviewing]
129
- - Skill: [cm-skill being used]
130
- - Started: [timestamp]
131
-
132
- ## Just Completed
133
- - [Most recent accomplishment with file:line references]
134
- - [Previous accomplishment]
135
- - [etc — last 5 items]
136
-
137
- ## Next Actions (Priority Order)
138
- 1. [Immediate next step]
139
- 2. [Following step]
140
- 3. [etc]
141
-
142
- ## Active Blockers
143
- - [Any current blockers or waiting items]
144
-
145
- ## Key Decisions This Session
146
- - [Decision]: [Rationale] — [timestamp]
147
-
148
- ## Mistakes & Learnings
149
-
150
- ### Pattern: Error → Learning → Prevention
151
- - **What Failed:** [Specific error that occurred]
152
- - **Why It Failed:** [Root cause analysis]
153
- - **How to Prevent:** [Concrete action to avoid this in future]
154
- - **Timestamp:** [When learned]
155
- - **Agent:** [Which agent]
156
- - **Task:** [Which task ID]
157
-
158
- ## Working Context
159
- [Critical information for current work — architecture decisions, patterns being followed.
160
- ⚠️ NEVER store API keys, secrets, or credentials here — use .env or a secrets manager instead]
161
-
162
- ## Files Currently Being Modified
163
- - [file path]: [what we're changing]
164
- ```
165
-
166
- ## Memory Architecture (v5 — Smart Spine)
167
-
168
- ```
169
- Tier 1: SENSORY MEMORY (seconds — within current tool call)
170
- → Internal variables, intermediate results
171
- → NEVER written to file — discarded when action completes
172
-
173
- Tier 2: WORKING MEMORY (current session → 7 days)
174
- → CONTINUITY.md — the active scratchpad (max 500 words / ~400 tokens)
175
- → Auto-rotates: entries > 7 days promote to Tier 3 or decay
176
- → Context bus (.cm/context-bus.json) — live skill chain state
177
- · initBus() on chain start, updateBusStep() on each advance
178
- · cm://pipeline/current resolves to bus JSON
179
- · Read via: cm continuity bus | cm_bus_read MCP tool
180
-
181
- Tier 3: LONG-TERM MEMORY (30+ days, only if reinforced)
182
- → Default: .cm/context.db (SQLite + FTS5)
183
- · learnings table + learnings_fts (BM25 keyword search)
184
- · decisions table + decisions_fts
185
- · skill_outputs per session/chain
186
- · indexes table (cached L0/L1 content + staleness hash)
187
- → Legacy config note: `storage.backend: viking` now falls back to SQLite
188
- · True vector semantic search — finds "async timeout" even when you query "network delay"
189
- · L0/L1/L2 auto-generated by engine — no manual cm continuity index needed
190
- · Session compression + long-term memory extraction built-in
191
- · Graph relations between memories (link/unlink)
192
- · No separate OpenViking setup remains in the supported runtime
193
- → Fallback: .cm/memory/learnings.json + decisions.json (kept for compat)
194
- → L0 indexes: .cm/learnings-index.md (~100 tok), .cm/skeleton-index.md (~500 tok)
195
- · Auto-regenerated on addLearning() + on demand via cm continuity index
196
- · File watcher auto-refreshes learnings L0 on JSON change (300ms debounce)
197
- · With Viking: engine generates L0/L1 automatically — no file watcher needed
198
- → Token budget: .cm/token-budget.json — 200k window, per-category soft limits
199
- · Enforced at load time: checkBudget() → allowed/remaining/suggestion
200
- · View: cm continuity budget
201
-
202
- Tier 4: EXTERNAL SEMANTIC MEMORY (optional — large projects)
203
- → tobi/qmd — BM25 + Vector + LLM re-ranking, 100% local
204
- → See cm-deep-search skill — ONLY when >50 docs or >200 source files
205
-
206
- Tier 5: STRUCTURAL CODE MEMORY (optional — code-heavy projects)
207
- → CodeGraph — tree-sitter AST → SQLite graph → MCP server
208
- → See cm-codeintell skill — ONLY when >50 source files
209
- ```
210
-
211
- **CONTINUITY.md = "what am I doing NOW?"**
212
- **context bus = "what did upstream skills produce in this chain?"**
213
- **L0 indexes = "cheapest possible memory load (~600 tokens)"**
214
- **context.db = "keyword search across all learnings + decisions"**
215
- **Legacy `viking` config = "compatibility fallback to SQLite, not a separate backend"**
216
- **qmd (optional) = "find what was written across hundreds of docs"**
217
-
218
- ### MCP Context Server (Claude Desktop, Goose, and any MCP client)
219
-
220
- Fifteen tools exposed over stdio — start with `cm mcp-serve`:
221
-
222
- ```bash
223
- # Start MCP server (stdio)
224
- cm mcp-serve --project /path/to/project
225
-
226
- # Print config snippet for Claude Desktop or Goose
227
- cm mcp-serve --print-config
228
- ```
229
-
230
- | Tool | Purpose | Since |
48
+ | Need | Summary | Load |
231
49
  |---|---|---|
232
- | `cm_query` | FTS5 keyword search learnings, decisions, or both | v4.5 |
233
- | `cm_resolve` | Load any `cm://` URI at L0/L1/L2 depth | v4.5 |
234
- | `cm_bus_read` | Read live context bus state | v4.5 |
235
- | `cm_bus_write` | Publish skill output to the bus | v4.5 |
236
- | `cm_budget_check` | Pre-flight token check by category | v4.5 |
237
- | `cm_memory_decay` | Archive expired learnings (supports dry_run) | v4.5 |
238
- | `cm_index_refresh` | Regenerate L0 indexes on demand | v4.5 |
239
- | `cm_plan` | Sprint + pipeline snapshot bridge | v4.8 |
240
- | `cm_review` | Review artifact hints | v4.8 |
241
- | `cm_qa` | QA workflow hints | v4.8 |
242
- | `cm_deploy` | Deploy workflow hints | v4.8 |
243
- | `cm_search` | Search learnings/decisions (alias) | v4.8 |
244
- | `cm_memory_query` | Memory search (alias) | v4.8 |
245
- | `cm_memory_write` | Persist a learning with auto-detected category, scope, TTL | v5.1 |
246
- | `cm_natural` | NLI router: "remember that…" / "forget…" / "what did we learn…" | v5.1 |
247
-
248
- ### cm:// URI Scheme
249
-
250
- Reference any memory resource by URI — resolver handles depth + caching:
251
-
252
- ```
253
- cm://memory/working → CONTINUITY.md
254
- cm://memory/learnings → learnings-index.md (L0) or SQLite (L1/L2)
255
- cm://memory/learnings/{id} → specific learning by ID
256
- cm://memory/decisions → decisions index
257
- cm://skills/{name} → SKILL.md at depth
258
- cm://skills/{name}/L0 → front matter + description only (~50 tokens)
259
- cm://resources/skeleton → skeleton-index.md (L0) or full
260
- cm://pipeline/current → live context bus state
261
- ```
262
-
263
- ---
264
-
265
- ## Memory Audit Protocol (Auto — Every Session Start)
266
-
267
- When reading CONTINUITY.md at session start, SIMULTANEOUSLY run audit:
268
-
269
- ### Step 1: Decay Check
270
-
271
- Scan `.cm/learnings.json`:
272
-
273
- ```
274
- For each learning where status == "active":
275
- daysSinceRelevant = today - lastRelevant
276
-
277
- IF daysSinceRelevant > ttl:
278
- → Set status = "archived"
279
- → Log: "Archived learning L{id}: {error} (TTL expired)"
280
-
281
- IF reinforceCount ≥ 2 AND ttl < 60:
282
- → Extend ttl = 60 (pattern emerging)
283
-
284
- IF reinforceCount ≥ 3 AND ttl < 90:
285
- → Extend ttl = 90 (proven pattern)
286
-
287
- IF reinforceCount ≥ 5 AND ttl < 180:
288
- → Extend ttl = 180 (fundamental knowledge)
289
- ```
290
-
291
- ### Step 2: Conflict Detection
292
-
293
- Scan `.cm/decisions.json`:
294
-
295
- ```
296
- For each pair of decisions with same scope:
297
- IF decisions contradict each other:
298
- → Older decision: set supersededBy = newer.id, status = "superseded"
299
- → Log: "Superseded D{old.id} by D{new.id}"
300
-
301
- IF ambiguous (can't auto-resolve):
302
- → Flag in CONTINUITY.md Active Blockers
303
- → Ask user to clarify
304
- ```
305
-
306
- ### Step 2b: Integrity Scan
307
-
308
- Scan learnings for red flags that may CAUSE bugs:
309
-
310
- ```
311
- For each active learning in scope:
312
- IF lastRelevant > 30 days ago AND reinforceCount == 0:
313
- → Flag as LOW_CONFIDENCE (read but verify before applying)
314
-
315
- IF prevention pattern conflicts with current codebase patterns:
316
- → Flag as SUSPECT (do NOT apply blindly — verify first)
317
-
318
- IF multiple learnings for same scope have conflicting preventions:
319
- → Flag as CONFLICT (resolve immediately: keep newer, invalidate older)
320
-
321
- On flags found:
322
- LOW_CONFIDENCE → Read but treat as suggestion, not rule
323
- SUSPECT → Compare with actual code before following
324
- CONFLICT → Invalidate older, keep newer, log resolution
325
- ```
326
-
327
- ### Step 3: Scope-Filtered Reading
328
-
329
- When executing a task for module X:
330
-
331
- ```
332
- ONLY load learnings where:
333
- scope == "global" OR scope == "module:X" OR scope starts with "file:src/X/"
334
-
335
- SKIP learnings for other modules entirely.
336
-
337
- Token savings: Read 5 relevant learnings (250 tokens)
338
- instead of 50 total learnings (2,500 tokens)
339
- ```
340
-
341
- ### Step 4: Reinforcement (Anti-Duplicate)
342
-
343
- When recording a new error/learning:
344
-
345
- ```
346
- IF similar learning already exists in learnings.json:
347
- → DO NOT create duplicate
348
- → UPDATE existing: reinforceCount++, lastRelevant = today, reset TTL
349
- → Log: "Reinforced L{id} (count: {reinforceCount})"
350
-
351
- IF no similar learning exists:
352
- → CREATE new entry with scope, ttl=30, reinforceCount=0
353
- ```
354
-
355
- ---
356
-
357
- ## `.cm/learnings.json` Format (v2 — with Smart Fields)
358
-
359
- ```json
360
- [
361
- {
362
- "id": "L001",
363
- "date": "2026-03-21",
364
- "error": "i18n keys missing in th.json",
365
- "cause": "Batch extraction skipped Thai locale",
366
- "prevention": "Always run i18n-sync test after each batch",
367
- "scope": "module:i18n",
368
- "ttl": 30,
369
- "reinforceCount": 0,
370
- "lastRelevant": "2026-03-21",
371
- "status": "active"
372
- }
373
- ]
374
- ```
375
-
376
- | Field | Purpose |
377
- |-------|---------|
378
- | `scope` | `global` / `module:{name}` / `file:{path}` — where this applies |
379
- | `ttl` | Days until auto-archive (default: 30) |
380
- | `reinforceCount` | Times pattern repeated (+1 each hit) |
381
- | `lastRelevant` | Last date this learning was accessed or reinforced |
382
- | `status` | `active` / `archived` / `invalidated` / `corrected` |
383
-
384
- **Status meanings:**
385
- - `active` — Trusted, applied when in scope
386
- - `archived` — TTL expired, retrievable on demand
387
- - `invalidated` — **Proven wrong** (caused bug) — NEVER read again
388
- - `corrected` — Was wrong, has been fixed — read with caution
389
-
390
- ### `.cm/meta-learnings.json` Format (Memory Self-Healing Log)
391
-
392
- When memory itself causes a bug, record a meta-learning:
393
-
394
- ```json
395
- [
396
- {
397
- "id": "ML001",
398
- "type": "memory-caused-bug",
399
- "affectedLearning": "L003",
400
- "action": "invalidated",
401
- "reason": "Prevention pattern conflicts with new codebase architecture",
402
- "bugDescription": "Deploy failed because learning suggested fetch but project uses axios",
403
- "date": "2026-03-21"
404
- }
405
- ]
406
- ```
407
-
408
- > **Meta-learnings are the system learning about its own mistakes.**
409
- > They prevent the same bad-memory pattern from recurring.
410
-
411
- ## `.cm/decisions.json` Format (v2)
412
-
413
- ```json
414
- [
415
- {
416
- "id": "D001",
417
- "date": "2026-03-21",
418
- "decision": "Use React Hook Form over Formik",
419
- "rationale": "Better performance with uncontrolled components",
420
- "scope": "module:forms",
421
- "supersededBy": null,
422
- "status": "active"
423
- }
424
- ]
425
- ```
426
-
427
- | Field | Purpose |
428
- |-------|---------|
429
- | `scope` | Where this decision applies |
430
- | `supersededBy` | ID of newer decision that replaces this one (null if current) |
431
- | `status` | `active` / `superseded` |
432
-
433
- ---
434
-
435
- ## Decay Timeline (Ebbinghaus-Inspired)
436
-
437
- ```
438
- First recorded: TTL = 30 days
439
- Reinforced 1x (count=1): TTL resets to 30 from today
440
- Reinforced 2x (count=2): TTL = 60 days (pattern emerging)
441
- Reinforced 3x+ (count≥3): TTL = 90 days (proven pattern)
442
- Reinforced 5x+ (count≥5): TTL = 180 days (fundamental knowledge)
443
- Not reinforced after TTL: status → "archived" (retrievable on demand)
444
- ```
445
-
446
- > Inspired by **Ebbinghaus Forgetting Curve**: Un-reinforced memories decay.
447
- > Repeatedly reinforced memories become long-term knowledge.
448
-
449
- ---
450
-
451
- ## Scope Tagging Rules (For All Skills)
452
-
453
- When writing to Mistakes & Learnings or Key Decisions, ALWAYS tag scope:
454
-
455
- ```
456
- scope: "global" → Applies to entire project
457
- (e.g., "Always run test before deploy")
458
-
459
- scope: "module:{name}" → Applies to specific module only
460
- (e.g., "module:auth", "module:i18n")
461
-
462
- scope: "file:{path}" → Applies to one file only
463
- (e.g., "file:src/api/routes.ts")
464
-
465
- RULE: When in doubt, choose the SMALLEST scope.
466
- file > module > global
467
-
468
- WHY: Smaller scope = less noise = AI only reads what's relevant.
469
- ```
470
-
471
- ---
472
-
473
- ## Rules
474
-
475
- ```
476
- ✅ DO:
477
- - Check context bus FIRST at session start (free, ~50 tokens)
478
- - Load L0 indexes BEFORE full files (learnings-index + skeleton-index)
479
- - Use cm_query for keyword search — don't scan JSON manually
480
- - Read CONTINUITY.md after L0 indexes (not before)
481
- - Run Memory Audit at session start (decay + conflicts + scope filter)
482
- - Update CONTINUITY.md at session end (ALWAYS)
483
- - Tag EVERY learning/decision with scope (global/module/file)
484
- - Reinforce existing learnings instead of creating duplicates
485
- - Keep CONTINUITY.md under 500 words (rotate to Tier 3)
486
- - Be specific: "Fixed auth bug in login.ts:42" not "Fixed stuff"
487
- - Run cm continuity index after bulk learning additions
488
-
489
- ❌ DON'T:
490
- - Load full learnings.json or skeleton.md as first action (use L0 first)
491
- - Skip context bus check when inside a skill chain
492
- - Skip Memory Audit ("I'll read everything, it's fine")
493
- - Write learnings without scope ("it applies everywhere" = almost never true)
494
- - Create duplicate learnings (reinforce existing ones instead)
495
- - Let learnings.json grow unbounded (TTL + decay + cm_memory_decay handles this)
496
- - Read ALL learnings regardless of current module (use scope filter / cm_query)
497
- - Ignore superseded decisions (they cause conflicting code)
498
- - Inject skeleton.md (20KB) when skeleton-index.md (~2KB) is sufficient
499
- ```
50
+ | Normal usage | start / during / end protocol | `references/session-protocol.md` |
51
+ | Template | `CONTINUITY.md` shape | `references/continuity-template.md` |
52
+ | Memory model | tiers, bus, long-term memory | `references/memory-architecture.md` |
53
+ | MCP bridge | context server tools and setup | `references/mcp-context-server.md` |
54
+ | URI lookup | `cm://` resource references | `references/cm-uri-scheme.md` |
55
+ | Storage internals | learnings, decisions, formats | `references/storage-formats.md` |
56
+ | Memory audit | decay, conflict, reinforcement | `references/memory-audit.md` |
57
+
58
+ ## Load Rules
59
+ - Load `session-protocol.md` for normal continuity use.
60
+ - Load `memory-architecture.md` only for advanced memory reasoning.
61
+ - Load `mcp-context-server.md` and `cm-uri-scheme.md` only for tooling/integration work.
62
+ - Load `storage-formats.md` only when editing persistence or migration logic.
63
+ - Load `memory-audit.md` only when reviewing memory quality or failure patterns.
64
+
65
+ ## Non-Negotiables
66
+ - Read continuity at session start.
67
+ - Update continuity at session end.
68
+ - Record important failures and decisions.
69
+ - Keep secrets out of memory files.
500
70
 
501
71
  ## The Bottom Line
502
-
503
- **Your memory is your superpower. Without it, you repeat every mistake forever.**
72
+ **Use continuity every session. Load advanced memory details only when the task actually touches them.**