@poolzin/plcode 2.1.1 → 3.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 (844) hide show
  1. package/.plcode/.gitkeep +0 -0
  2. package/.plcode/AGENTS.md +160 -0
  3. package/.plcode/README.md +214 -0
  4. package/.plcode/agent/backend-architect.md +40 -0
  5. package/.plcode/agent/backend-security-coder.md +11 -0
  6. package/.plcode/agent/backend-specialist.md +117 -0
  7. package/.plcode/agent/backend-typescript-architect.md +18 -0
  8. package/.plcode/agent/code-reviewer.md +48 -0
  9. package/.plcode/agent/content/0-category.json +19 -0
  10. package/.plcode/agent/content/copywriter.md +68 -0
  11. package/.plcode/agent/content/technical-writer.md +68 -0
  12. package/.plcode/agent/core/0-category.json +50 -0
  13. package/.plcode/agent/core/health-monitor.md +187 -0
  14. package/.plcode/agent/core/memory-manager.md +168 -0
  15. package/.plcode/agent/core/openagent.md +430 -0
  16. package/.plcode/agent/core/opencoder.md +282 -0
  17. package/.plcode/agent/core/pool.md +383 -0
  18. package/.plcode/agent/data/0-category.json +13 -0
  19. package/.plcode/agent/data/data-analyst.md +69 -0
  20. package/.plcode/agent/database-architect.md +262 -0
  21. package/.plcode/agent/database-optimizer.md +161 -0
  22. package/.plcode/agent/database-specialist.md +101 -0
  23. package/.plcode/agent/development/0-category.json +36 -0
  24. package/.plcode/agent/development/backend-specialist.md +68 -0
  25. package/.plcode/agent/development/codebase-agent.md +137 -0
  26. package/.plcode/agent/development/devops-specialist.md +70 -0
  27. package/.plcode/agent/development/frontend-specialist.md +214 -0
  28. package/.plcode/agent/docs.md +33 -0
  29. package/.plcode/agent/eval-runner.md +34 -0
  30. package/.plcode/agent/frontend-developer.md +188 -0
  31. package/.plcode/agent/frontend-security-coder.md +11 -0
  32. package/.plcode/agent/git-committer.md +12 -0
  33. package/.plcode/agent/meta/0-category.json +19 -0
  34. package/.plcode/agent/meta/repo-manager.md +1078 -0
  35. package/.plcode/agent/meta/system-builder.md +724 -0
  36. package/.plcode/agent/orchestration/0-category.json +40 -0
  37. package/.plcode/agent/orchestration/adversarial-agent.md +115 -0
  38. package/.plcode/agent/orchestration/background-agent.md +121 -0
  39. package/.plcode/agent/orchestration/chat-agent.md +108 -0
  40. package/.plcode/agent/orchestration/code-agent.md +91 -0
  41. package/.plcode/agent/orchestration/critic-agent.md +103 -0
  42. package/.plcode/agent/orchestration/executor-agent.md +107 -0
  43. package/.plcode/agent/orchestration/media-agent.md +99 -0
  44. package/.plcode/agent/orchestration/planner-agent.md +105 -0
  45. package/.plcode/agent/orchestration/review-agent.md +105 -0
  46. package/.plcode/agent/orchestration/support-agent.md +117 -0
  47. package/.plcode/agent/orchestration/test-agent.md +104 -0
  48. package/.plcode/agent/subagents/code/build-agent.md +75 -0
  49. package/.plcode/agent/subagents/code/codebase-pattern-analyst.md +459 -0
  50. package/.plcode/agent/subagents/code/coder-agent.md +71 -0
  51. package/.plcode/agent/subagents/code/reviewer.md +58 -0
  52. package/.plcode/agent/subagents/code/tester.md +59 -0
  53. package/.plcode/agent/subagents/core/context-retriever.md +904 -0
  54. package/.plcode/agent/subagents/core/contextscout.md +149 -0
  55. package/.plcode/agent/subagents/core/documentation.md +49 -0
  56. package/.plcode/agent/subagents/core/task-manager.md +345 -0
  57. package/.plcode/agent/subagents/superpowers/code-reviewer.md +113 -0
  58. package/.plcode/agent/subagents/system-builder/agent-generator.md +452 -0
  59. package/.plcode/agent/subagents/system-builder/command-creator.md +226 -0
  60. package/.plcode/agent/subagents/system-builder/context-organizer.md +455 -0
  61. package/.plcode/agent/subagents/system-builder/domain-analyzer.md +459 -0
  62. package/.plcode/agent/subagents/system-builder/workflow-designer.md +240 -0
  63. package/.plcode/agent/subagents/test/simple-responder.md +44 -0
  64. package/.plcode/agent/subagents/utils/image-specialist.md +67 -0
  65. package/.plcode/agent/triage.md +86 -0
  66. package/.plcode/agent/typescript-pro.md +11 -0
  67. package/.plcode/agnos/config.json +154 -0
  68. package/.plcode/auto-update.json +7 -0
  69. package/.plcode/bra/config.json +109 -0
  70. package/.plcode/command/Indexes.md +35 -0
  71. package/.plcode/command/brainstorm.md +14 -0
  72. package/.plcode/command/build-context-system.md +849 -0
  73. package/.plcode/command/clean.md +82 -0
  74. package/.plcode/command/commit-openagents.md +589 -0
  75. package/.plcode/command/commit.md +158 -0
  76. package/.plcode/command/context.md +302 -0
  77. package/.plcode/command/data-model.md +519 -0
  78. package/.plcode/command/debug.md +14 -0
  79. package/.plcode/command/design-system.md +177 -0
  80. package/.plcode/command/enhance.md +159 -0
  81. package/.plcode/command/execute-plan.md +5 -0
  82. package/.plcode/command/fix.md +1474 -0
  83. package/.plcode/command/generate-agents.md +269 -0
  84. package/.plcode/command/issues.md +23 -0
  85. package/.plcode/command/mobile-responsiveness.md +30 -0
  86. package/.plcode/command/openagents/check-context-deps.md +457 -0
  87. package/.plcode/command/openagents/new-agents/README.md +404 -0
  88. package/.plcode/command/openagents/new-agents/create-agent.md +492 -0
  89. package/.plcode/command/openagents/new-agents/create-tests.md +918 -0
  90. package/.plcode/command/openagents/new-agents/templates/agent-template.md +123 -0
  91. package/.plcode/command/openagents/new-agents/templates/context-template.md +37 -0
  92. package/.plcode/command/openagents/new-agents/templates/test-1-planning-approval.yaml +41 -0
  93. package/.plcode/command/openagents/new-agents/templates/test-2-context-loading.yaml +36 -0
  94. package/.plcode/command/openagents/new-agents/templates/test-3-incremental.yaml +38 -0
  95. package/.plcode/command/openagents/new-agents/templates/test-4-tool-usage.yaml +35 -0
  96. package/.plcode/command/openagents/new-agents/templates/test-5-error-handling.yaml +49 -0
  97. package/.plcode/command/openagents/new-agents/templates/test-6-extended-thinking.yaml +42 -0
  98. package/.plcode/command/openagents/new-agents/templates/test-7-compaction.yaml +38 -0
  99. package/.plcode/command/openagents/new-agents/templates/test-8-completion.yaml +38 -0
  100. package/.plcode/command/openagents/new-agents/templates/test-config-template.yaml +27 -0
  101. package/.plcode/command/optimize.md +206 -0
  102. package/.plcode/command/prompt-engineering/prompt-enhancer.md +471 -0
  103. package/.plcode/command/prompt-engineering/prompt-optimizer.md +668 -0
  104. package/.plcode/command/review.md +14 -0
  105. package/.plcode/command/rmslop.md +15 -0
  106. package/.plcode/command/seo.md +68 -0
  107. package/.plcode/command/spellcheck.md +5 -0
  108. package/.plcode/command/subagent-driven-development.md +14 -0
  109. package/.plcode/command/superpowers-brainstorm.md +45 -0
  110. package/.plcode/command/superpowers-execute-plan.md +49 -0
  111. package/.plcode/command/superpowers-write-plan.md +55 -0
  112. package/.plcode/command/superpowers.md +10 -0
  113. package/.plcode/command/test-new-command.md +27 -0
  114. package/.plcode/command/test.md +26 -0
  115. package/.plcode/command/ultra-think.md +160 -0
  116. package/.plcode/command/validate-repo.md +369 -0
  117. package/.plcode/command/worktrees.md +116 -0
  118. package/.plcode/command/write-plan.md +5 -0
  119. package/.plcode/command/writing-plans.md +14 -0
  120. package/.plcode/context/content/README.md +39 -0
  121. package/.plcode/context/content/copywriting-frameworks.md +317 -0
  122. package/.plcode/context/content/tone-voice.md +391 -0
  123. package/.plcode/context/content-creation/examples/navigation.md +37 -0
  124. package/.plcode/context/content-creation/formats/audio-content.md +493 -0
  125. package/.plcode/context/content-creation/formats/image-content.md +387 -0
  126. package/.plcode/context/content-creation/formats/navigation.md +79 -0
  127. package/.plcode/context/content-creation/formats/video-content.md +533 -0
  128. package/.plcode/context/content-creation/formats/written-content.md +459 -0
  129. package/.plcode/context/content-creation/navigation.md +55 -0
  130. package/.plcode/context/content-creation/principles/audience-targeting.md +417 -0
  131. package/.plcode/context/content-creation/principles/copywriting-frameworks.md +317 -0
  132. package/.plcode/context/content-creation/principles/hooks.md +279 -0
  133. package/.plcode/context/content-creation/principles/navigation.md +79 -0
  134. package/.plcode/context/content-creation/principles/tone-voice.md +391 -0
  135. package/.plcode/context/content-creation/workflows/audience-review.md +474 -0
  136. package/.plcode/context/content-creation/workflows/content-ideas.md +504 -0
  137. package/.plcode/context/content-creation/workflows/content-matrix.md +397 -0
  138. package/.plcode/context/content-creation/workflows/navigation.md +85 -0
  139. package/.plcode/context/content-creation/workflows/remix-repurpose.md +577 -0
  140. package/.plcode/context/core/context-system/CHANGELOG.md +87 -0
  141. package/.plcode/context/core/context-system/examples/navigation-examples.md +510 -0
  142. package/.plcode/context/core/context-system/guides/compact.md +351 -0
  143. package/.plcode/context/core/context-system/guides/creation.md +363 -0
  144. package/.plcode/context/core/context-system/guides/navigation-design.md +458 -0
  145. package/.plcode/context/core/context-system/guides/organizing-context.md +549 -0
  146. package/.plcode/context/core/context-system/guides/workflows.md +598 -0
  147. package/.plcode/context/core/context-system/operations/error.md +299 -0
  148. package/.plcode/context/core/context-system/operations/extract.md +190 -0
  149. package/.plcode/context/core/context-system/operations/harvest.md +310 -0
  150. package/.plcode/context/core/context-system/operations/organize.md +245 -0
  151. package/.plcode/context/core/context-system/operations/update.md +260 -0
  152. package/.plcode/context/core/context-system/standards/mvi.md +154 -0
  153. package/.plcode/context/core/context-system/standards/structure.md +262 -0
  154. package/.plcode/context/core/context-system/standards/templates.md +350 -0
  155. package/.plcode/context/core/context-system.md +453 -0
  156. package/.plcode/context/core/essential-patterns.md +225 -0
  157. package/.plcode/context/core/navigation.md +69 -0
  158. package/.plcode/context/core/standards/code-analysis.md +172 -0
  159. package/.plcode/context/core/standards/code-quality.md +182 -0
  160. package/.plcode/context/core/standards/code.md +1 -0
  161. package/.plcode/context/core/standards/docs.md +1 -0
  162. package/.plcode/context/core/standards/documentation.md +173 -0
  163. package/.plcode/context/core/standards/navigation.md +46 -0
  164. package/.plcode/context/core/standards/security-patterns.md +149 -0
  165. package/.plcode/context/core/standards/test-coverage.md +133 -0
  166. package/.plcode/context/core/standards/tests.md +1 -0
  167. package/.plcode/context/core/system/context-guide.md +218 -0
  168. package/.plcode/context/core/workflows/code-review.md +150 -0
  169. package/.plcode/context/core/workflows/delegation.md +1 -0
  170. package/.plcode/context/core/workflows/design-iteration.md +595 -0
  171. package/.plcode/context/core/workflows/feature-breakdown.md +303 -0
  172. package/.plcode/context/core/workflows/navigation.md +44 -0
  173. package/.plcode/context/core/workflows/review.md +1 -0
  174. package/.plcode/context/core/workflows/session-management.md +162 -0
  175. package/.plcode/context/core/workflows/task-delegation.md +95 -0
  176. package/.plcode/context/data/README.md +18 -0
  177. package/.plcode/context/data/navigation.md +18 -0
  178. package/.plcode/context/development/README.md +52 -0
  179. package/.plcode/context/development/animation-patterns.md +831 -0
  180. package/.plcode/context/development/api-design.md +394 -0
  181. package/.plcode/context/development/backend/navigation.md +55 -0
  182. package/.plcode/context/development/backend-navigation.md +77 -0
  183. package/.plcode/context/development/clean-code.md +189 -0
  184. package/.plcode/context/development/data/navigation.md +36 -0
  185. package/.plcode/context/development/design-assets.md +604 -0
  186. package/.plcode/context/development/design-systems.md +395 -0
  187. package/.plcode/context/development/frontend/navigation.md +47 -0
  188. package/.plcode/context/development/fullstack-navigation.md +80 -0
  189. package/.plcode/context/development/infrastructure/navigation.md +31 -0
  190. package/.plcode/context/development/integration/navigation.md +36 -0
  191. package/.plcode/context/development/navigation.md +80 -0
  192. package/.plcode/context/development/principles/api-design.md +427 -0
  193. package/.plcode/context/development/principles/clean-code.md +189 -0
  194. package/.plcode/context/development/principles/navigation.md +46 -0
  195. package/.plcode/context/development/react-patterns.md +323 -0
  196. package/.plcode/context/development/ui-navigation.md +58 -0
  197. package/.plcode/context/development/ui-styling-standards.md +566 -0
  198. package/.plcode/context/learning/README.md +18 -0
  199. package/.plcode/context/learning/navigation.md +18 -0
  200. package/.plcode/context/navigation.md +47 -0
  201. package/.plcode/context/openagents-repo/blueprints/context-bundle-template.md +279 -0
  202. package/.plcode/context/openagents-repo/concepts/subagent-testing-modes.md +142 -0
  203. package/.plcode/context/openagents-repo/core-concepts/agents.md +368 -0
  204. package/.plcode/context/openagents-repo/core-concepts/categories.md +467 -0
  205. package/.plcode/context/openagents-repo/core-concepts/evals.md +515 -0
  206. package/.plcode/context/openagents-repo/core-concepts/registry.md +473 -0
  207. package/.plcode/context/openagents-repo/errors/tool-permission-errors.md +227 -0
  208. package/.plcode/context/openagents-repo/examples/context-bundle-example.md +234 -0
  209. package/.plcode/context/openagents-repo/examples/subagent-prompt-structure.md +291 -0
  210. package/.plcode/context/openagents-repo/guides/adding-agent.md +326 -0
  211. package/.plcode/context/openagents-repo/guides/creating-release.md +296 -0
  212. package/.plcode/context/openagents-repo/guides/debugging.md +438 -0
  213. package/.plcode/context/openagents-repo/guides/profile-validation.md +367 -0
  214. package/.plcode/context/openagents-repo/guides/subagent-invocation.md +386 -0
  215. package/.plcode/context/openagents-repo/guides/testing-agent.md +310 -0
  216. package/.plcode/context/openagents-repo/guides/testing-subagents-approval.md +140 -0
  217. package/.plcode/context/openagents-repo/guides/testing-subagents.md +301 -0
  218. package/.plcode/context/openagents-repo/guides/updating-registry.md +453 -0
  219. package/.plcode/context/openagents-repo/lookup/commands.md +400 -0
  220. package/.plcode/context/openagents-repo/lookup/file-locations.md +322 -0
  221. package/.plcode/context/openagents-repo/lookup/subagent-framework-maps.md +79 -0
  222. package/.plcode/context/openagents-repo/lookup/subagent-test-commands.md +213 -0
  223. package/.plcode/context/openagents-repo/navigation.md +143 -0
  224. package/.plcode/context/openagents-repo/plugins/context/architecture/lifecycle.md +39 -0
  225. package/.plcode/context/openagents-repo/plugins/context/architecture/overview.md +61 -0
  226. package/.plcode/context/openagents-repo/plugins/context/capabilities/agents.md +45 -0
  227. package/.plcode/context/openagents-repo/plugins/context/capabilities/events.md +48 -0
  228. package/.plcode/context/openagents-repo/plugins/context/capabilities/events_skills.md +608 -0
  229. package/.plcode/context/openagents-repo/plugins/context/capabilities/tools.md +48 -0
  230. package/.plcode/context/openagents-repo/plugins/context/context-overview.md +35 -0
  231. package/.plcode/context/openagents-repo/plugins/context/reference/best-practices.md +28 -0
  232. package/.plcode/context/openagents-repo/quality/registry-dependencies.md +642 -0
  233. package/.plcode/context/openagents-repo/quick-start.md +168 -0
  234. package/.plcode/context/openagents-repo/templates/context-bundle-template.md +272 -0
  235. package/.plcode/context/product/README.md +18 -0
  236. package/.plcode/context/product/navigation.md +18 -0
  237. package/.plcode/context/project/navigation.md +31 -0
  238. package/.plcode/context/project/project-context.md +102 -0
  239. package/.plcode/context/system-builder-templates/SYSTEM-BUILDER-GUIDE.md +495 -0
  240. package/.plcode/context/system-builder-templates/navigation.md +72 -0
  241. package/.plcode/context/system-builder-templates/orchestrator-template.md +261 -0
  242. package/.plcode/context/system-builder-templates/subagent-template.md +213 -0
  243. package/.plcode/context/ui/navigation.md +83 -0
  244. package/.plcode/context/ui/terminal/navigation.md +99 -0
  245. package/.plcode/context/ui/web/animation-patterns.md +831 -0
  246. package/.plcode/context/ui/web/design/concepts/scroll-linked-animations.md +52 -0
  247. package/.plcode/context/ui/web/design/examples/scrollytelling-headphone.md +242 -0
  248. package/.plcode/context/ui/web/design/guides/building-scrollytelling-pages.md +274 -0
  249. package/.plcode/context/ui/web/design/lookup/scroll-animation-prompts.md +211 -0
  250. package/.plcode/context/ui/web/design/navigation.md +87 -0
  251. package/.plcode/context/ui/web/design-assets.md +604 -0
  252. package/.plcode/context/ui/web/design-systems.md +395 -0
  253. package/.plcode/context/ui/web/navigation.md +116 -0
  254. package/.plcode/context/ui/web/react-patterns.md +323 -0
  255. package/.plcode/context/ui/web/ui-styling-standards.md +566 -0
  256. package/.plcode/env.d.ts +4 -0
  257. package/.plcode/instructions/agent-rules.md +21 -0
  258. package/.plcode/instructions/coding-preferences-general.md +26 -0
  259. package/.plcode/instructions/coding-preferences-typescript.md +7 -0
  260. package/.plcode/instructions/commits.md +10 -0
  261. package/.plcode/instructions/responses.md +7 -0
  262. package/.plcode/instructions/testing.md +6 -0
  263. package/.plcode/instructions/tooling-preferences.md +20 -0
  264. package/.plcode/plcode.jsonc +393 -0
  265. package/.plcode/plugin/fs-tool.js +169 -0
  266. package/.plcode/plugin/github-triage.ts +90 -0
  267. package/.plcode/plugin/github-triage.txt +88 -0
  268. package/.plcode/plugin/notification.ts +21 -0
  269. package/.plcode/plugin/superpowers.js +417 -0
  270. package/.plcode/scripts/install-mcp-servers.ps1 +33 -0
  271. package/.plcode/scripts/install-mcp-servers.sh +30 -0
  272. package/.plcode/skill/core/agents-md-generator/SKILL.md +220 -0
  273. package/.plcode/skill/core/api-design-principles/SKILL.md +41 -0
  274. package/.plcode/skill/core/api-design-principles/assets/api-design-checklist.md +155 -0
  275. package/.plcode/skill/core/api-design-principles/assets/rest-api-template.py +182 -0
  276. package/.plcode/skill/core/api-design-principles/references/graphql-schema-design.md +583 -0
  277. package/.plcode/skill/core/api-design-principles/references/rest-best-practices.md +408 -0
  278. package/.plcode/skill/core/api-design-principles/resources/implementation-playbook.md +513 -0
  279. package/.plcode/skill/core/api-documentation/SKILL.md +185 -0
  280. package/.plcode/skill/core/api-security-best-practices/SKILL.md +927 -0
  281. package/.plcode/skill/core/api-testing-observability-api-mock/SKILL.md +50 -0
  282. package/.plcode/skill/core/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
  283. package/.plcode/skill/core/audit/SKILL.md +141 -0
  284. package/.plcode/skill/core/backend-dev/README.md +333 -0
  285. package/.plcode/skill/core/backend-dev/SKILL.md +437 -0
  286. package/.plcode/skill/core/backend-dev/examples.md +622 -0
  287. package/.plcode/skill/core/backend-dev-guidelines/SKILL.md +344 -0
  288. package/.plcode/skill/core/backend-dev-guidelines/resources/architecture-overview.md +479 -0
  289. package/.plcode/skill/core/backend-dev-guidelines/resources/async-and-errors.md +305 -0
  290. package/.plcode/skill/core/backend-dev-guidelines/resources/complete-examples.md +607 -0
  291. package/.plcode/skill/core/backend-dev-guidelines/resources/configuration.md +285 -0
  292. package/.plcode/skill/core/backend-dev-guidelines/resources/database-patterns.md +227 -0
  293. package/.plcode/skill/core/backend-dev-guidelines/resources/middleware-guide.md +205 -0
  294. package/.plcode/skill/core/backend-dev-guidelines/resources/routing-and-controllers.md +704 -0
  295. package/.plcode/skill/core/backend-dev-guidelines/resources/sentry-and-monitoring.md +338 -0
  296. package/.plcode/skill/core/backend-dev-guidelines/resources/services-and-repositories.md +814 -0
  297. package/.plcode/skill/core/backend-dev-guidelines/resources/testing-guide.md +230 -0
  298. package/.plcode/skill/core/backend-dev-guidelines/resources/validation-patterns.md +750 -0
  299. package/.plcode/skill/core/browser/SKILL.md +67 -0
  300. package/.plcode/skill/core/browser/eval.js +38 -0
  301. package/.plcode/skill/core/browser/nav.js +37 -0
  302. package/.plcode/skill/core/browser/package-lock.json +928 -0
  303. package/.plcode/skill/core/browser/pick.js +106 -0
  304. package/.plcode/skill/core/browser/screenshot.js +31 -0
  305. package/.plcode/skill/core/browser/start.js +71 -0
  306. package/.plcode/skill/core/changelog-generator/SKILL.md +105 -0
  307. package/.plcode/skill/core/clarify/SKILL.md +199 -0
  308. package/.plcode/skill/core/code-refactoring/SKILL.md +232 -0
  309. package/.plcode/skill/core/code-review/SKILL.md +60 -0
  310. package/.plcode/skill/core/critique/SKILL.md +137 -0
  311. package/.plcode/skill/core/database-design/SKILL.md +186 -0
  312. package/.plcode/skill/core/dispatching-parallel-agents/SKILL.md +192 -0
  313. package/.plcode/skill/core/error-handling-patterns/SKILL.md +39 -0
  314. package/.plcode/skill/core/error-handling-patterns/resources/implementation-playbook.md +634 -0
  315. package/.plcode/skill/core/executing-plans/SKILL.md +97 -0
  316. package/.plcode/skill/core/finishing-a-development-branch/SKILL.md +214 -0
  317. package/.plcode/skill/core/frontend-design/LICENSE.txt +177 -0
  318. package/.plcode/skill/core/frontend-design/SKILL.md +516 -0
  319. package/.plcode/skill/core/javascript-typescript/SKILL.md +147 -0
  320. package/.plcode/skill/core/python-development/SKILL.md +142 -0
  321. package/.plcode/skill/core/receiving-code-review/SKILL.md +227 -0
  322. package/.plcode/skill/core/requesting-code-review/SKILL.md +116 -0
  323. package/.plcode/skill/core/requesting-code-review/code-reviewer.md +160 -0
  324. package/.plcode/skill/core/skill-creator/LICENSE.txt +202 -0
  325. package/.plcode/skill/core/skill-creator/SKILL.md +357 -0
  326. package/.plcode/skill/core/skill-creator/references/output-patterns.md +92 -0
  327. package/.plcode/skill/core/skill-creator/references/workflows.md +28 -0
  328. package/.plcode/skill/core/skill-creator/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
  329. package/.plcode/skill/core/skill-creator/scripts/init_skill.py +303 -0
  330. package/.plcode/skill/core/skill-creator/scripts/package_skill.py +110 -0
  331. package/.plcode/skill/core/skill-creator/scripts/quick_validate.py +103 -0
  332. package/.plcode/skill/core/subagent-driven-development/SKILL.md +256 -0
  333. package/.plcode/skill/core/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  334. package/.plcode/skill/core/subagent-driven-development/implementer-prompt.md +78 -0
  335. package/.plcode/skill/core/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  336. package/.plcode/skill/core/systematic-debugging/CREATION-LOG.md +133 -0
  337. package/.plcode/skill/core/systematic-debugging/SKILL.md +309 -0
  338. package/.plcode/skill/core/systematic-debugging/condition-based-waiting-example.ts +158 -0
  339. package/.plcode/skill/core/systematic-debugging/condition-based-waiting.md +120 -0
  340. package/.plcode/skill/core/systematic-debugging/defense-in-depth.md +128 -0
  341. package/.plcode/skill/core/systematic-debugging/find-polluter.sh +63 -0
  342. package/.plcode/skill/core/systematic-debugging/root-cause-tracing.md +183 -0
  343. package/.plcode/skill/core/systematic-debugging/test-academic.md +14 -0
  344. package/.plcode/skill/core/systematic-debugging/test-pressure-1.md +65 -0
  345. package/.plcode/skill/core/systematic-debugging/test-pressure-2.md +75 -0
  346. package/.plcode/skill/core/systematic-debugging/test-pressure-3.md +75 -0
  347. package/.plcode/skill/core/task-generator/SKILL.md +72 -0
  348. package/.plcode/skill/core/test-driven-development/SKILL.md +393 -0
  349. package/.plcode/skill/core/test-driven-development/testing-anti-patterns.md +317 -0
  350. package/.plcode/skill/core/using-git-worktrees/SKILL.md +224 -0
  351. package/.plcode/skill/core/using-superpowers/SKILL.md +96 -0
  352. package/.plcode/skill/core/verification-before-completion/SKILL.md +148 -0
  353. package/.plcode/skill/core/writing-plans/SKILL.md +122 -0
  354. package/.plcode/skill/core/writing-skills/SKILL.md +717 -0
  355. package/.plcode/skill/core/writing-skills/anthropic-best-practices.md +1176 -0
  356. package/.plcode/skill/core/writing-skills/examples/CLAUDE_MD_TESTING.md +200 -0
  357. package/.plcode/skill/core/writing-skills/graphviz-conventions.dot +172 -0
  358. package/.plcode/skill/core/writing-skills/persuasion-principles.md +220 -0
  359. package/.plcode/skill/core/writing-skills/render-graphs.js +171 -0
  360. package/.plcode/skill/core/writing-skills/testing-skills-with-subagents.md +404 -0
  361. package/.plcode/skill/experimental/accessibility-compliance-accessibility-audit/SKILL.md +46 -0
  362. package/.plcode/skill/experimental/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +489 -0
  363. package/.plcode/skill/experimental/adapt/SKILL.md +214 -0
  364. package/.plcode/skill/experimental/agnos/ROUTING.md +128 -0
  365. package/.plcode/skill/experimental/agnos/SKILL.md +142 -0
  366. package/.plcode/skill/experimental/algorithmic-art/LICENSE.txt +202 -0
  367. package/.plcode/skill/experimental/algorithmic-art/SKILL.md +444 -0
  368. package/.plcode/skill/experimental/algorithmic-art/templates/generator_template.js +223 -0
  369. package/.plcode/skill/experimental/algorithmic-art/templates/viewer.html +634 -0
  370. package/.plcode/skill/experimental/animate/SKILL.md +204 -0
  371. package/.plcode/skill/experimental/application-performance-performance-optimization/SKILL.md +158 -0
  372. package/.plcode/skill/experimental/architecture-diagram/SKILL.md +378 -0
  373. package/.plcode/skill/experimental/artifacts-builder/LICENSE.txt +202 -0
  374. package/.plcode/skill/experimental/artifacts-builder/SKILL.md +80 -0
  375. package/.plcode/skill/experimental/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  376. package/.plcode/skill/experimental/artifacts-builder/scripts/init-artifact.sh +322 -0
  377. package/.plcode/skill/experimental/automem-memory-management/SKILL.md +401 -0
  378. package/.plcode/skill/experimental/backend-architect/SKILL.md +331 -0
  379. package/.plcode/skill/experimental/backend-security-coder/SKILL.md +172 -0
  380. package/.plcode/skill/experimental/bolder/SKILL.md +140 -0
  381. package/.plcode/skill/experimental/brainstorming/SKILL.md +102 -0
  382. package/.plcode/skill/experimental/canvas-design/LICENSE.txt +202 -0
  383. package/.plcode/skill/experimental/canvas-design/SKILL.md +138 -0
  384. package/.plcode/skill/experimental/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  385. package/.plcode/skill/experimental/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  386. package/.plcode/skill/experimental/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  387. package/.plcode/skill/experimental/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  388. package/.plcode/skill/experimental/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  389. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  390. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  391. package/.plcode/skill/experimental/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  392. package/.plcode/skill/experimental/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  393. package/.plcode/skill/experimental/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  394. package/.plcode/skill/experimental/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  395. package/.plcode/skill/experimental/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  396. package/.plcode/skill/experimental/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  397. package/.plcode/skill/experimental/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  398. package/.plcode/skill/experimental/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  399. package/.plcode/skill/experimental/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  400. package/.plcode/skill/experimental/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  401. package/.plcode/skill/experimental/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  402. package/.plcode/skill/experimental/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  403. package/.plcode/skill/experimental/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  404. package/.plcode/skill/experimental/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  405. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  406. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  407. package/.plcode/skill/experimental/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  408. package/.plcode/skill/experimental/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  409. package/.plcode/skill/experimental/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  410. package/.plcode/skill/experimental/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  411. package/.plcode/skill/experimental/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  412. package/.plcode/skill/experimental/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  413. package/.plcode/skill/experimental/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  414. package/.plcode/skill/experimental/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  415. package/.plcode/skill/experimental/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  416. package/.plcode/skill/experimental/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  417. package/.plcode/skill/experimental/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  418. package/.plcode/skill/experimental/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  419. package/.plcode/skill/experimental/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  420. package/.plcode/skill/experimental/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  421. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  422. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  423. package/.plcode/skill/experimental/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  424. package/.plcode/skill/experimental/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  425. package/.plcode/skill/experimental/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  426. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  427. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  428. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  429. package/.plcode/skill/experimental/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  430. package/.plcode/skill/experimental/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  431. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  432. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  433. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  434. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  435. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  436. package/.plcode/skill/experimental/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  437. package/.plcode/skill/experimental/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  438. package/.plcode/skill/experimental/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  439. package/.plcode/skill/experimental/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  440. package/.plcode/skill/experimental/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  441. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  442. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  443. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  444. package/.plcode/skill/experimental/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  445. package/.plcode/skill/experimental/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  446. package/.plcode/skill/experimental/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  447. package/.plcode/skill/experimental/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  448. package/.plcode/skill/experimental/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  449. package/.plcode/skill/experimental/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  450. package/.plcode/skill/experimental/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  451. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  452. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  453. package/.plcode/skill/experimental/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  454. package/.plcode/skill/experimental/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  455. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  456. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  457. package/.plcode/skill/experimental/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  458. package/.plcode/skill/experimental/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  459. package/.plcode/skill/experimental/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  460. package/.plcode/skill/experimental/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  461. package/.plcode/skill/experimental/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  462. package/.plcode/skill/experimental/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  463. package/.plcode/skill/experimental/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  464. package/.plcode/skill/experimental/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  465. package/.plcode/skill/experimental/colorize/SKILL.md +170 -0
  466. package/.plcode/skill/experimental/content-research-writer/SKILL.md +596 -0
  467. package/.plcode/skill/experimental/delight/SKILL.md +350 -0
  468. package/.plcode/skill/experimental/design-tokens/SKILL.md +456 -0
  469. package/.plcode/skill/experimental/distill/SKILL.md +146 -0
  470. package/.plcode/skill/experimental/doc-coauthoring/SKILL.md +395 -0
  471. package/.plcode/skill/experimental/document-docx/LICENSE.txt +30 -0
  472. package/.plcode/skill/experimental/document-docx/SKILL.md +581 -0
  473. package/.plcode/skill/experimental/document-docx/docx-js.md +488 -0
  474. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  475. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  476. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  477. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  478. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  479. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  480. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  481. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  482. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  483. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  484. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  485. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  486. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  487. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  488. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  489. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  490. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  491. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  492. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  493. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  494. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  495. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  496. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  497. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  498. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  499. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  500. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  501. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  502. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  503. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  504. package/.plcode/skill/experimental/document-docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  505. package/.plcode/skill/experimental/document-docx/ooxml/schemas/mce/mc.xsd +75 -0
  506. package/.plcode/skill/experimental/document-docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  507. package/.plcode/skill/experimental/document-docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  508. package/.plcode/skill/experimental/document-docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  509. package/.plcode/skill/experimental/document-docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  510. package/.plcode/skill/experimental/document-docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  511. package/.plcode/skill/experimental/document-docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  512. package/.plcode/skill/experimental/document-docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  513. package/.plcode/skill/experimental/document-docx/ooxml/scripts/pack.py +159 -0
  514. package/.plcode/skill/experimental/document-docx/ooxml/scripts/unpack.py +29 -0
  515. package/.plcode/skill/experimental/document-docx/ooxml/scripts/validate.py +69 -0
  516. package/.plcode/skill/experimental/document-docx/ooxml/scripts/validation/__init__.py +15 -0
  517. package/.plcode/skill/experimental/document-docx/ooxml/scripts/validation/base.py +951 -0
  518. package/.plcode/skill/experimental/document-docx/ooxml/scripts/validation/docx.py +274 -0
  519. package/.plcode/skill/experimental/document-docx/ooxml/scripts/validation/pptx.py +315 -0
  520. package/.plcode/skill/experimental/document-docx/ooxml/scripts/validation/redlining.py +279 -0
  521. package/.plcode/skill/experimental/document-docx/ooxml.md +635 -0
  522. package/.plcode/skill/experimental/document-docx/scripts/__init__.py +1 -0
  523. package/.plcode/skill/experimental/document-docx/scripts/accept_changes.py +135 -0
  524. package/.plcode/skill/experimental/document-docx/scripts/comment.py +318 -0
  525. package/.plcode/skill/experimental/document-docx/scripts/document.py +1276 -0
  526. package/.plcode/skill/experimental/document-docx/scripts/office/helpers/__init__.py +0 -0
  527. package/.plcode/skill/experimental/document-docx/scripts/office/helpers/merge_runs.py +199 -0
  528. package/.plcode/skill/experimental/document-docx/scripts/office/helpers/simplify_redlines.py +197 -0
  529. package/.plcode/skill/experimental/document-docx/scripts/office/pack.py +159 -0
  530. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  531. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  532. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  533. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  534. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  535. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  536. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  537. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  538. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  539. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  540. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  541. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  542. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  543. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  544. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  545. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  546. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  547. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  548. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  549. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  550. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  551. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  552. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  553. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  554. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  555. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  556. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  557. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  558. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  559. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  560. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  561. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/mce/mc.xsd +75 -0
  562. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  563. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  564. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  565. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  566. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  567. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  568. package/.plcode/skill/experimental/document-docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  569. package/.plcode/skill/experimental/document-docx/scripts/office/soffice.py +183 -0
  570. package/.plcode/skill/experimental/document-docx/scripts/office/unpack.py +132 -0
  571. package/.plcode/skill/experimental/document-docx/scripts/office/validate.py +111 -0
  572. package/.plcode/skill/experimental/document-docx/scripts/office/validators/__init__.py +15 -0
  573. package/.plcode/skill/experimental/document-docx/scripts/office/validators/base.py +847 -0
  574. package/.plcode/skill/experimental/document-docx/scripts/office/validators/docx.py +446 -0
  575. package/.plcode/skill/experimental/document-docx/scripts/office/validators/pptx.py +275 -0
  576. package/.plcode/skill/experimental/document-docx/scripts/office/validators/redlining.py +247 -0
  577. package/.plcode/skill/experimental/document-docx/scripts/templates/comments.xml +3 -0
  578. package/.plcode/skill/experimental/document-docx/scripts/templates/commentsExtended.xml +3 -0
  579. package/.plcode/skill/experimental/document-docx/scripts/templates/commentsExtensible.xml +3 -0
  580. package/.plcode/skill/experimental/document-docx/scripts/templates/commentsIds.xml +3 -0
  581. package/.plcode/skill/experimental/document-docx/scripts/templates/people.xml +3 -0
  582. package/.plcode/skill/experimental/document-docx/scripts/utilities.py +374 -0
  583. package/.plcode/skill/experimental/document-pdf/LICENSE.txt +30 -0
  584. package/.plcode/skill/experimental/document-pdf/SKILL.md +332 -0
  585. package/.plcode/skill/experimental/document-pdf/forms.md +312 -0
  586. package/.plcode/skill/experimental/document-pdf/reference.md +640 -0
  587. package/.plcode/skill/experimental/document-pdf/scripts/check_bounding_boxes.py +65 -0
  588. package/.plcode/skill/experimental/document-pdf/scripts/check_bounding_boxes_test.py +226 -0
  589. package/.plcode/skill/experimental/document-pdf/scripts/check_fillable_fields.py +11 -0
  590. package/.plcode/skill/experimental/document-pdf/scripts/convert_pdf_to_images.py +33 -0
  591. package/.plcode/skill/experimental/document-pdf/scripts/create_validation_image.py +37 -0
  592. package/.plcode/skill/experimental/document-pdf/scripts/extract_form_field_info.py +122 -0
  593. package/.plcode/skill/experimental/document-pdf/scripts/extract_form_structure.py +115 -0
  594. package/.plcode/skill/experimental/document-pdf/scripts/fill_fillable_fields.py +98 -0
  595. package/.plcode/skill/experimental/document-pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  596. package/.plcode/skill/experimental/document-pptx/LICENSE.txt +30 -0
  597. package/.plcode/skill/experimental/document-pptx/SKILL.md +236 -0
  598. package/.plcode/skill/experimental/document-pptx/editing.md +213 -0
  599. package/.plcode/skill/experimental/document-pptx/html2pptx.md +719 -0
  600. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  601. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  602. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  603. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  604. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  605. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  606. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  607. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  608. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  609. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  610. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  611. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  612. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  613. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  614. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  615. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  616. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  617. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  618. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  619. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  620. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  621. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  622. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  623. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  624. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  625. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  626. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  627. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  628. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  629. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  630. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  631. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/mce/mc.xsd +75 -0
  632. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  633. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  634. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  635. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  636. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  637. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  638. package/.plcode/skill/experimental/document-pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  639. package/.plcode/skill/experimental/document-pptx/ooxml/scripts/pack.py +159 -0
  640. package/.plcode/skill/experimental/document-pptx/ooxml/scripts/unpack.py +29 -0
  641. package/.plcode/skill/experimental/document-pptx/ooxml/scripts/validate.py +69 -0
  642. package/.plcode/skill/experimental/document-pptx/ooxml/scripts/validation/__init__.py +15 -0
  643. package/.plcode/skill/experimental/document-pptx/ooxml/scripts/validation/base.py +951 -0
  644. package/.plcode/skill/experimental/document-pptx/ooxml/scripts/validation/docx.py +274 -0
  645. package/.plcode/skill/experimental/document-pptx/ooxml/scripts/validation/pptx.py +315 -0
  646. package/.plcode/skill/experimental/document-pptx/ooxml/scripts/validation/redlining.py +279 -0
  647. package/.plcode/skill/experimental/document-pptx/ooxml.md +446 -0
  648. package/.plcode/skill/experimental/document-pptx/pptxgenjs.md +511 -0
  649. package/.plcode/skill/experimental/document-pptx/scripts/__init__.py +0 -0
  650. package/.plcode/skill/experimental/document-pptx/scripts/add_slide.py +195 -0
  651. package/.plcode/skill/experimental/document-pptx/scripts/clean.py +286 -0
  652. package/.plcode/skill/experimental/document-pptx/scripts/html2pptx.js +1008 -0
  653. package/.plcode/skill/experimental/document-pptx/scripts/inventory.py +1029 -0
  654. package/.plcode/skill/experimental/document-pptx/scripts/office/helpers/__init__.py +0 -0
  655. package/.plcode/skill/experimental/document-pptx/scripts/office/helpers/merge_runs.py +199 -0
  656. package/.plcode/skill/experimental/document-pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  657. package/.plcode/skill/experimental/document-pptx/scripts/office/pack.py +159 -0
  658. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  659. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  660. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  661. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  662. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  663. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  664. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  665. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  666. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  667. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  668. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  669. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  670. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  671. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  672. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  673. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  674. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  675. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  676. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  677. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  678. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  679. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  680. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  681. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  682. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  683. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  684. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  685. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  686. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  687. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  688. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  689. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  690. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  691. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  692. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  693. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  694. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  695. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  696. package/.plcode/skill/experimental/document-pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  697. package/.plcode/skill/experimental/document-pptx/scripts/office/soffice.py +183 -0
  698. package/.plcode/skill/experimental/document-pptx/scripts/office/unpack.py +132 -0
  699. package/.plcode/skill/experimental/document-pptx/scripts/office/validate.py +111 -0
  700. package/.plcode/skill/experimental/document-pptx/scripts/office/validators/__init__.py +15 -0
  701. package/.plcode/skill/experimental/document-pptx/scripts/office/validators/base.py +847 -0
  702. package/.plcode/skill/experimental/document-pptx/scripts/office/validators/docx.py +446 -0
  703. package/.plcode/skill/experimental/document-pptx/scripts/office/validators/pptx.py +275 -0
  704. package/.plcode/skill/experimental/document-pptx/scripts/office/validators/redlining.py +247 -0
  705. package/.plcode/skill/experimental/document-pptx/scripts/rearrange.py +231 -0
  706. package/.plcode/skill/experimental/document-pptx/scripts/replace.py +385 -0
  707. package/.plcode/skill/experimental/document-pptx/scripts/thumbnail.py +289 -0
  708. package/.plcode/skill/experimental/document-xlsx/LICENSE.txt +30 -0
  709. package/.plcode/skill/experimental/document-xlsx/SKILL.md +320 -0
  710. package/.plcode/skill/experimental/document-xlsx/recalc.py +211 -0
  711. package/.plcode/skill/experimental/document-xlsx/scripts/office/helpers/__init__.py +0 -0
  712. package/.plcode/skill/experimental/document-xlsx/scripts/office/helpers/merge_runs.py +199 -0
  713. package/.plcode/skill/experimental/document-xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  714. package/.plcode/skill/experimental/document-xlsx/scripts/office/pack.py +159 -0
  715. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  716. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  717. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  718. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  719. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  720. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  721. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  722. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  723. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  724. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  725. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  726. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  727. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  728. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  729. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  730. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  731. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  732. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  733. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  734. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  735. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  736. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  737. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  738. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  739. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  740. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  741. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  742. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  743. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  744. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  745. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  746. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  747. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  748. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  749. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  750. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  751. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  752. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  753. package/.plcode/skill/experimental/document-xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  754. package/.plcode/skill/experimental/document-xlsx/scripts/office/soffice.py +183 -0
  755. package/.plcode/skill/experimental/document-xlsx/scripts/office/unpack.py +132 -0
  756. package/.plcode/skill/experimental/document-xlsx/scripts/office/validate.py +111 -0
  757. package/.plcode/skill/experimental/document-xlsx/scripts/office/validators/__init__.py +15 -0
  758. package/.plcode/skill/experimental/document-xlsx/scripts/office/validators/base.py +847 -0
  759. package/.plcode/skill/experimental/document-xlsx/scripts/office/validators/docx.py +446 -0
  760. package/.plcode/skill/experimental/document-xlsx/scripts/office/validators/pptx.py +275 -0
  761. package/.plcode/skill/experimental/document-xlsx/scripts/office/validators/redlining.py +247 -0
  762. package/.plcode/skill/experimental/document-xlsx/scripts/recalc.py +184 -0
  763. package/.plcode/skill/experimental/domain-driven-design/SKILL.md +75 -0
  764. package/.plcode/skill/experimental/domain-driven-design/references/ddd-deliverables.md +24 -0
  765. package/.plcode/skill/experimental/excalidraw/SKILL.md +537 -0
  766. package/.plcode/skill/experimental/extract/SKILL.md +94 -0
  767. package/.plcode/skill/experimental/frontend-ui-animator/SKILL.md +147 -0
  768. package/.plcode/skill/experimental/frontend-ui-animator/references/animation-patterns.md +583 -0
  769. package/.plcode/skill/experimental/frontend-ui-animator/references/component-checklist.md +161 -0
  770. package/.plcode/skill/experimental/frontend-ui-animator/references/tailwind-presets.md +404 -0
  771. package/.plcode/skill/experimental/frontend-ui-integration/SKILL.md +79 -0
  772. package/.plcode/skill/experimental/harden/SKILL.md +385 -0
  773. package/.plcode/skill/experimental/infographic/SKILL.md +469 -0
  774. package/.plcode/skill/experimental/llm-application-dev/SKILL.md +221 -0
  775. package/.plcode/skill/experimental/mcp-builder/LICENSE.txt +202 -0
  776. package/.plcode/skill/experimental/mcp-builder/SKILL.md +256 -0
  777. package/.plcode/skill/experimental/mcp-builder/reference/evaluation.md +630 -0
  778. package/.plcode/skill/experimental/mcp-builder/reference/mcp_best_practices.md +269 -0
  779. package/.plcode/skill/experimental/mcp-builder/reference/node_mcp_server.md +974 -0
  780. package/.plcode/skill/experimental/mcp-builder/reference/python_mcp_server.md +737 -0
  781. package/.plcode/skill/experimental/mcp-builder/scripts/connections.py +151 -0
  782. package/.plcode/skill/experimental/mcp-builder/scripts/evaluation.py +373 -0
  783. package/.plcode/skill/experimental/mcp-builder/scripts/example_evaluation.xml +22 -0
  784. package/.plcode/skill/experimental/mcp-builder/scripts/requirements.txt +2 -0
  785. package/.plcode/skill/experimental/normalize/SKILL.md +69 -0
  786. package/.plcode/skill/experimental/onboard/SKILL.md +272 -0
  787. package/.plcode/skill/experimental/optimize/SKILL.md +291 -0
  788. package/.plcode/skill/experimental/polish/SKILL.md +204 -0
  789. package/.plcode/skill/experimental/product-management/SKILL.md +327 -0
  790. package/.plcode/skill/experimental/quieter/SKILL.md +125 -0
  791. package/.plcode/skill/experimental/ralph/scripts/prompt.md +108 -0
  792. package/.plcode/skill/experimental/ralph/scripts/ralph.sh +77 -0
  793. package/.plcode/skill/experimental/ralph/skill.md +170 -0
  794. package/.plcode/skill/experimental/ralph-executor/skill.md +130 -0
  795. package/.plcode/skill/experimental/rsc-data-optimizer/SKILL.md +117 -0
  796. package/.plcode/skill/experimental/rsc-data-optimizer/references/patterns.md +285 -0
  797. package/.plcode/skill/experimental/shadcn-management/SKILL.md +109 -0
  798. package/.plcode/skill/experimental/shadcn-management/references/workflows.md +214 -0
  799. package/.plcode/skill/experimental/sketch/SKILL.md +232 -0
  800. package/.plcode/skill/experimental/teach-impeccable/SKILL.md +78 -0
  801. package/.plcode/skill/experimental/theme-factory/LICENSE.txt +202 -0
  802. package/.plcode/skill/experimental/theme-factory/SKILL.md +63 -0
  803. package/.plcode/skill/experimental/theme-factory/theme-showcase.pdf +0 -0
  804. package/.plcode/skill/experimental/theme-factory/themes/arctic-frost.md +19 -0
  805. package/.plcode/skill/experimental/theme-factory/themes/botanical-garden.md +19 -0
  806. package/.plcode/skill/experimental/theme-factory/themes/desert-rose.md +19 -0
  807. package/.plcode/skill/experimental/theme-factory/themes/forest-canopy.md +19 -0
  808. package/.plcode/skill/experimental/theme-factory/themes/golden-hour.md +19 -0
  809. package/.plcode/skill/experimental/theme-factory/themes/midnight-galaxy.md +19 -0
  810. package/.plcode/skill/experimental/theme-factory/themes/modern-minimalist.md +19 -0
  811. package/.plcode/skill/experimental/theme-factory/themes/ocean-depths.md +19 -0
  812. package/.plcode/skill/experimental/theme-factory/themes/sunset-boulevard.md +19 -0
  813. package/.plcode/skill/experimental/theme-factory/themes/tech-innovation.md +19 -0
  814. package/.plcode/skill/experimental/ui-ux-pro-max/SKILL.md +238 -0
  815. package/.plcode/skill/experimental/ui-ux-pro-max/data/charts.csv +26 -0
  816. package/.plcode/skill/experimental/ui-ux-pro-max/data/colors.csv +97 -0
  817. package/.plcode/skill/experimental/ui-ux-pro-max/data/landing.csv +31 -0
  818. package/.plcode/skill/experimental/ui-ux-pro-max/data/products.csv +97 -0
  819. package/.plcode/skill/experimental/ui-ux-pro-max/data/prompts.csv +24 -0
  820. package/.plcode/skill/experimental/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  821. package/.plcode/skill/experimental/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  822. package/.plcode/skill/experimental/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  823. package/.plcode/skill/experimental/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  824. package/.plcode/skill/experimental/ui-ux-pro-max/data/stacks/react.csv +54 -0
  825. package/.plcode/skill/experimental/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  826. package/.plcode/skill/experimental/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  827. package/.plcode/skill/experimental/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  828. package/.plcode/skill/experimental/ui-ux-pro-max/data/styles.csv +59 -0
  829. package/.plcode/skill/experimental/ui-ux-pro-max/data/typography.csv +58 -0
  830. package/.plcode/skill/experimental/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  831. package/.plcode/skill/experimental/ui-ux-pro-max/scripts/core.py +236 -0
  832. package/.plcode/skill/experimental/ui-ux-pro-max/scripts/search.py +61 -0
  833. package/.plcode/skill/experimental/webapp-testing/LICENSE.txt +202 -0
  834. package/.plcode/skill/experimental/webapp-testing/SKILL.md +108 -0
  835. package/.plcode/skill/experimental/webapp-testing/examples/console_logging.py +35 -0
  836. package/.plcode/skill/experimental/webapp-testing/examples/element_discovery.py +40 -0
  837. package/.plcode/skill/experimental/webapp-testing/examples/static_html_automation.py +33 -0
  838. package/.plcode/skill/experimental/webapp-testing/scripts/with_server.py +106 -0
  839. package/.plcode/themes/mytheme.json +223 -0
  840. package/README.md +6 -33
  841. package/bin/plcode +10 -90
  842. package/lib/cli.js +213515 -0
  843. package/lib/worker.js +144839 -0
  844. package/package.json +14 -17
@@ -0,0 +1,1474 @@
1
+ ---
2
+ description: Diagnose and fix bugs with architecture-aware analysis and diagnostic-first approach
3
+ argument-hint: Bug description or error message
4
+ ---
5
+
6
+ # Bug Diagnosis and Fix Command
7
+
8
+ Intelligently diagnose and fix bugs by:
9
+
10
+ 1. **Adding diagnostic instrumentation** to capture current behavior
11
+ 2. **Deep architecture analysis** using `/docs/architecture/data-model.md`
12
+ 3. **Hypothesis generation** (5-7 possible sources, distilled to 1-2 most likely)
13
+ 4. **User confirmation** before implementing fix
14
+ 5. **Root cause documentation** for cross-project memory
15
+
16
+ ## Current Bug Report
17
+
18
+ **User Input:** `$ARGUMENTS`
19
+
20
+ Please diagnose and fix the bug described above using the complete workflow outlined in this document.
21
+
22
+ ## Command Usage
23
+
24
+ ```bash
25
+ /fix "payment processing fails for subscriptions"
26
+ /fix "null pointer error in user service"
27
+ /fix "UI not updating after API call"
28
+ ```
29
+
30
+ ## Execution Flow
31
+
32
+ ```mermaid
33
+ flowchart TD
34
+ START[User Reports Bug] --> CHECK{data-model.md exists?}
35
+ CHECK -->|No| GEN[Generate data-model.md]
36
+ CHECK -->|Yes| READ[Read architecture docs]
37
+ GEN --> READ
38
+
39
+ READ --> CONTEXT[Gather bug context]
40
+ CONTEXT --> LOGS[Add diagnostic logs/instrumentation]
41
+
42
+ LOGS --> REPRODUCE[Attempt to reproduce bug]
43
+ REPRODUCE --> ANALYZE[Analyze log output]
44
+
45
+ ANALYZE --> HYPOTHESIS[Generate 5-7 hypotheses]
46
+ HYPOTHESIS --> DISTILL[Distill to 1-2 most likely causes]
47
+
48
+ DISTILL --> VALIDATE[Validate with diagnostic data]
49
+ VALIDATE --> PRESENT[Present diagnosis to user]
50
+
51
+ PRESENT --> CONFIRM{User confirms diagnosis?}
52
+ CONFIRM -->|No| LOGS
53
+ CONFIRM -->|Yes| FIX[Implement fix]
54
+
55
+ FIX --> TEST[Test fix thoroughly]
56
+ TEST --> VERIFY[Verify bug resolved]
57
+
58
+ VERIFY --> CLEANUP[Remove diagnostic logs]
59
+ CLEANUP --> DOCS[Document root cause]
60
+ DOCS --> MEMORY[Write to cross-project memory]
61
+
62
+ MEMORY --> COMPLETE[✅ Bug Fixed]
63
+
64
+ style START fill:#fbb,stroke:#333,stroke-width:2px
65
+ style COMPLETE fill:#bfb,stroke:#333,stroke-width:2px
66
+ style CONFIRM fill:#ffb,stroke:#333,stroke-width:2px
67
+ ```
68
+
69
+ ## Phase 1: Context Gathering & Architecture Analysis (5-10 min)
70
+
71
+ ### Step 1.1: Check for Data Model Documentation
72
+
73
+ ```typescript
74
+ const dataModelPath = "./docs/architecture/data-model.md"
75
+ const exists = await fileExists(dataModelPath)
76
+
77
+ if (!exists) {
78
+ console.log("⚠️ Architecture documentation missing")
79
+ console.log("📝 Generating data-model.md for context...")
80
+ await executeCommand("data-model")
81
+ console.log("✅ Data model documentation created")
82
+ }
83
+ ```
84
+
85
+ ### Step 1.2: Read Architecture for Context
86
+
87
+ Deep analysis of architecture to understand bug context:
88
+
89
+ **Database Layer Analysis**:
90
+
91
+ - Read ERD and entity relationships
92
+ - Understand foreign key constraints
93
+ - Check indexes and query patterns
94
+ - Identify potential N+1 query scenarios
95
+ - Review validation rules and constraints
96
+
97
+ **Service Layer Analysis**:
98
+
99
+ - Understand DTO structures and validation
100
+ - Review domain model business logic
101
+ - Check data transformation patterns
102
+ - Identify error handling approaches
103
+ - Analyze dependency injection patterns
104
+
105
+ **API Layer Analysis**:
106
+
107
+ - Review endpoint implementations
108
+ - Check request/response DTOs
109
+ - Understand middleware and error handling
110
+ - Analyze authentication/authorization flows
111
+ - Review rate limiting and validation
112
+
113
+ **UI Layer Analysis**:
114
+
115
+ - Understand component data flows
116
+ - Review state management patterns
117
+ - Check form validation logic
118
+ - Analyze error display mechanisms
119
+ - Review data fetching strategies
120
+
121
+ **Data Flow Analysis**:
122
+
123
+ - Trace end-to-end data flow for affected feature
124
+ - Identify all transformation points
125
+ - Check validation at each layer
126
+ - Review error propagation
127
+ - Understand state synchronization
128
+
129
+ ### Step 1.3: Cross-Project Memory Check
130
+
131
+ Search for similar bugs in past projects:
132
+
133
+ ```typescript
134
+ const failurePatterns = await readJSON("/Users/besi/Code/memory/failure_patterns.json")
135
+
136
+ // Search for patterns matching:
137
+ const similarBugs = failurePatterns.filter((pattern) => {
138
+ return (
139
+ pattern.technologies.some((tech) => projectTechStack.includes(tech)) ||
140
+ pattern.problem.includes(bugKeywords) ||
141
+ pattern.symptoms.some((symptom) => bugDescription.includes(symptom))
142
+ )
143
+ })
144
+ ```
145
+
146
+ **Output**:
147
+
148
+ ```
149
+ 🧠 Cross-Project Memory - Similar Bugs:
150
+ ✅ Found: n1-query-user-relations-2025-08
151
+ - Symptom: Slow API responses with multiple users
152
+ - Cause: N+1 query pattern in user relationships
153
+
154
+ ⚠️ Found: stripe-webhook-replay-attack-2025-10
155
+ - Symptom: Duplicate payments processed
156
+ - Cause: Missing idempotency check
157
+
158
+ ✅ Found: react-state-stale-closure-2025-09
159
+ - Symptom: UI not updating after state change
160
+ - Cause: Stale closure in useEffect
161
+ ```
162
+
163
+ ### Step 1.4: Gather Bug Context
164
+
165
+ Collect comprehensive information about the bug:
166
+
167
+ **User-Provided Information**:
168
+
169
+ - Bug description
170
+ - Steps to reproduce
171
+ - Expected behavior
172
+ - Actual behavior
173
+ - Error messages/stack traces
174
+ - Environment (dev/staging/prod)
175
+
176
+ **System Context** (auto-detected):
177
+
178
+ - Technology stack
179
+ - Affected components (from architecture analysis)
180
+ - Related entities and data flows
181
+ - Recent code changes (if available via git)
182
+
183
+ **Create Bug Context Document following documentation standards**:
184
+
185
+ - **Frontend bugs:** `docs/tasks/frontend/DD-MM-YYYY/<semantic-bug-id>/context.md`
186
+ - **Backend bugs:** `docs/tasks/backend/DD-MM-YYYY/<semantic-bug-id>/context.md`
187
+
188
+ Use semantic bug ID slugs (e.g., `payment-processing-failure`, `ui-state-sync-issue`, `database-connection-timeout`)
189
+
190
+ ```markdown
191
+ # Bug Context: [Bug Name]
192
+
193
+ ## User Report
194
+
195
+ - **Description**: [User description]
196
+ - **Steps to Reproduce**: [Steps]
197
+ - **Expected**: [Expected behavior]
198
+ - **Actual**: [Actual behavior]
199
+ - **Error**: [Error message/stack trace]
200
+
201
+ ## Architecture Context (from data-model.md)
202
+
203
+ - **Affected Entities**: [Database entities involved]
204
+ - **Data Flow**: [UI → API → Service → Database path]
205
+ - **Related Components**: [Services, controllers, components]
206
+
207
+ ## Technology Stack
208
+
209
+ - Database: [Detected database]
210
+ - Backend: [Detected backend framework]
211
+ - Frontend: [Detected frontend framework]
212
+ - State Management: [Detected state library]
213
+
214
+ ## Recent Changes
215
+
216
+ - [List recent commits affecting this area]
217
+
218
+ ## Similar Known Issues
219
+
220
+ - [List from cross-project memory]
221
+ ```
222
+
223
+ ## Phase 2: Diagnostic Instrumentation (10-15 min)
224
+
225
+ ### Step 2.1: Add Targeted Diagnostic Logs
226
+
227
+ **CRITICAL**: Add instrumentation FIRST, before attempting fixes.
228
+
229
+ **Database Layer Diagnostics**:
230
+
231
+ ```typescript
232
+ // Add query logging
233
+ console.log("[DEBUG] Query executing:", {
234
+ query: "SELECT * FROM users WHERE id = $1",
235
+ params: [userId],
236
+ timestamp: new Date().toISOString(),
237
+ })
238
+
239
+ // Log query results
240
+ console.log("[DEBUG] Query result:", {
241
+ rowCount: result.rows.length,
242
+ executionTime: `${endTime - startTime}ms`,
243
+ data: result.rows,
244
+ })
245
+
246
+ // Log relationship loading
247
+ console.log("[DEBUG] Loading relationships:", {
248
+ entity: "User",
249
+ relationships: ["orders", "subscriptions"],
250
+ eager: true,
251
+ })
252
+ ```
253
+
254
+ **Service Layer Diagnostics**:
255
+
256
+ ```typescript
257
+ // Add service entry/exit logging
258
+ console.log("[DEBUG] Service method called:", {
259
+ service: "UserService",
260
+ method: "updateProfile",
261
+ input: sanitizeForLog(input),
262
+ timestamp: new Date().toISOString(),
263
+ })
264
+
265
+ // Log validation results
266
+ console.log("[DEBUG] Validation result:", {
267
+ isValid: validationResult.isValid,
268
+ errors: validationResult.errors,
269
+ input: sanitizeForLog(input),
270
+ })
271
+
272
+ // Log transformations
273
+ console.log("[DEBUG] Data transformation:", {
274
+ from: "DTO",
275
+ to: "DomainModel",
276
+ before: sanitizeForLog(dto),
277
+ after: sanitizeForLog(domainModel),
278
+ })
279
+ ```
280
+
281
+ **API Layer Diagnostics**:
282
+
283
+ ```typescript
284
+ // Add request/response logging
285
+ console.log("[DEBUG] API request:", {
286
+ method: req.method,
287
+ path: req.path,
288
+ query: req.query,
289
+ body: sanitizeForLog(req.body),
290
+ headers: sanitizeHeaders(req.headers),
291
+ })
292
+
293
+ console.log("[DEBUG] API response:", {
294
+ statusCode: res.statusCode,
295
+ body: sanitizeForLog(responseBody),
296
+ executionTime: `${Date.now() - startTime}ms`,
297
+ })
298
+
299
+ // Log middleware execution
300
+ console.log("[DEBUG] Middleware executed:", {
301
+ name: "authMiddleware",
302
+ user: req.user?.id,
303
+ authorized: true,
304
+ })
305
+ ```
306
+
307
+ **UI Layer Diagnostics**:
308
+
309
+ ```typescript
310
+ // Add component state logging
311
+ console.log("[DEBUG] Component state:", {
312
+ component: "UserProfile",
313
+ prevState: prevState,
314
+ nextState: nextState,
315
+ trigger: "useEffect",
316
+ })
317
+
318
+ // Log API calls
319
+ console.log("[DEBUG] API call initiated:", {
320
+ endpoint: "/api/users/123",
321
+ method: "PATCH",
322
+ payload: sanitizeForLog(payload),
323
+ })
324
+
325
+ // Log state management
326
+ console.log("[DEBUG] Store update:", {
327
+ store: "userStore",
328
+ action: "updateProfile",
329
+ prevValue: prevValue,
330
+ nextValue: nextValue,
331
+ })
332
+ ```
333
+
334
+ **State Flow Diagnostics**:
335
+
336
+ ```typescript
337
+ // Log data flow through layers
338
+ console.log("[DEBUG] Data flow checkpoint:", {
339
+ layer: "API → Service",
340
+ data: sanitizeForLog(data),
341
+ checkpoint: "before-validation",
342
+ })
343
+ ```
344
+
345
+ ### Step 2.2: Add Error Boundaries and Handlers
346
+
347
+ ```typescript
348
+ // Enhanced error logging
349
+ try {
350
+ const result = await processPayment(paymentData)
351
+ } catch (error) {
352
+ console.error("[DEBUG] Error caught:", {
353
+ location: "PaymentService.processPayment",
354
+ error: {
355
+ name: error.name,
356
+ message: error.message,
357
+ stack: error.stack,
358
+ cause: error.cause,
359
+ },
360
+ input: sanitizeForLog(paymentData),
361
+ context: {
362
+ userId: paymentData.userId,
363
+ amount: paymentData.amount,
364
+ currency: paymentData.currency,
365
+ },
366
+ })
367
+ throw error
368
+ }
369
+ ```
370
+
371
+ ### Step 2.3: Create Diagnostic Checklist
372
+
373
+ ```markdown
374
+ ## Diagnostic Instrumentation Added
375
+
376
+ ### Database Layer
377
+
378
+ - [ ] Query logging with parameters
379
+ - [ ] Result logging with row counts
380
+ - [ ] Execution time tracking
381
+ - [ ] Relationship loading logs
382
+
383
+ ### Service Layer
384
+
385
+ - [ ] Service method entry/exit
386
+ - [ ] Validation result logging
387
+ - [ ] Data transformation logs
388
+ - [ ] Business logic checkpoints
389
+
390
+ ### API Layer
391
+
392
+ - [ ] Request/response logging
393
+ - [ ] Middleware execution logs
394
+ - [ ] Error handling logs
395
+ - [ ] Performance timing
396
+
397
+ ### UI Layer
398
+
399
+ - [ ] Component state changes
400
+ - [ ] API call tracking
401
+ - [ ] Store updates
402
+ - [ ] Re-render triggers
403
+
404
+ ### Cross-Cutting
405
+
406
+ - [ ] Error boundaries
407
+ - [ ] Data flow checkpoints
408
+ - [ ] Security-safe log sanitization
409
+ ```
410
+
411
+ ## Phase 3: Reproduce & Analyze (10-15 min)
412
+
413
+ ### Step 3.1: Attempt to Reproduce Bug
414
+
415
+ ```markdown
416
+ ## Reproduction Attempt
417
+
418
+ ### Steps Executed
419
+
420
+ 1. [Step 1 with exact parameters]
421
+ 2. [Step 2 with exact parameters]
422
+ 3. [Step 3 with exact parameters]
423
+
424
+ ### Environment
425
+
426
+ - Database state: [Initial state]
427
+ - User context: [User ID, permissions]
428
+ - External dependencies: [API status, service availability]
429
+
430
+ ### Reproduction Result
431
+
432
+ ✅ Bug reproduced successfully
433
+ ❌ Unable to reproduce (document why)
434
+ ⚠️ Partial reproduction (document differences)
435
+ ```
436
+
437
+ ### Step 3.2: Collect Diagnostic Output
438
+
439
+ Save all diagnostic logs following documentation standards:
440
+
441
+ - **Frontend bugs:** `docs/tasks/frontend/DD-MM-YYYY/<semantic-bug-id>/diagnostic-logs.md`
442
+ - **Backend bugs:** `docs/tasks/backend/DD-MM-YYYY/<semantic-bug-id>/diagnostic-logs.md`
443
+
444
+ ````markdown
445
+ # Diagnostic Logs
446
+
447
+ ## Timeline of Events
448
+
449
+ ### T+0ms: API Request Received
450
+
451
+ ```json
452
+ {
453
+ "method": "POST",
454
+ "path": "/api/subscriptions",
455
+ "body": {...}
456
+ }
457
+ ```
458
+ ````
459
+
460
+ ### T+15ms: Validation Passed
461
+
462
+ ```json
463
+ {
464
+ "isValid": true,
465
+ "dto": {...}
466
+ }
467
+ ```
468
+
469
+ ### T+23ms: Database Query Executed
470
+
471
+ ```json
472
+ {
473
+ "query": "SELECT * FROM users WHERE id = $1",
474
+ "executionTime": "8ms",
475
+ "rowCount": 1
476
+ }
477
+ ```
478
+
479
+ ### T+45ms: ERROR OCCURRED
480
+
481
+ ```json
482
+ {
483
+ "error": "Cannot read property 'subscription_id' of undefined",
484
+ "stack": "...",
485
+ "context": {...}
486
+ }
487
+ ```
488
+
489
+ ## Key Observations
490
+
491
+ - User record exists in database
492
+ - Subscription relationship NOT loaded
493
+ - No eager loading configured
494
+ - N+1 query pattern detected
495
+
496
+ ````
497
+
498
+ ### Step 3.3: Analyze Diagnostic Data
499
+ Review logs to identify patterns:
500
+
501
+ **Data Flow Analysis**:
502
+ - Where does data enter the system?
503
+ - How is it transformed at each layer?
504
+ - Where does the error first occur?
505
+ - What data is missing or malformed?
506
+
507
+ **Timing Analysis**:
508
+ - Performance bottlenecks identified?
509
+ - Timeout issues?
510
+ - Race conditions?
511
+
512
+ **State Analysis**:
513
+ - What is the state before error?
514
+ - What state change triggers error?
515
+ - Is state synchronized across layers?
516
+
517
+ ## Phase 4: Hypothesis Generation & Distillation (10-15 min)
518
+
519
+ ### Step 4.1: Generate 5-7 Hypotheses
520
+
521
+ Based on diagnostic data, architecture analysis, and cross-project memory, generate comprehensive list of possible causes:
522
+
523
+ ```markdown
524
+ ## Hypothesis Generation
525
+
526
+ ### Hypothesis 1: N+1 Query Problem
527
+ **Likelihood**: 🔴 High
528
+ **Evidence**:
529
+ - Diagnostic logs show sequential queries
530
+ - User entity loaded without relationships
531
+ - Performance degrades with more records
532
+ - Pattern matches failure-pattern: n1-query-user-relations-2025-08
533
+
534
+ **Data Flow Point**: Database → Service layer
535
+ **Affected Layer**: Repository/ORM
536
+
537
+ ---
538
+
539
+ ### Hypothesis 2: Missing Validation
540
+ **Likelihood**: 🟡 Medium
541
+ **Evidence**:
542
+ - Error occurs after validation passes
543
+ - Null/undefined error suggests missing check
544
+ - DTO validation doesn't check relationship existence
545
+
546
+ **Data Flow Point**: Service layer validation
547
+ **Affected Layer**: DTO validation
548
+
549
+ ---
550
+
551
+ ### Hypothesis 3: Race Condition
552
+ **Likelihood**: 🟡 Medium
553
+ **Evidence**:
554
+ - Intermittent failure (20% of requests)
555
+ - Timing logs show variable execution order
556
+ - Async operations not properly awaited
557
+
558
+ **Data Flow Point**: Async service calls
559
+ **Affected Layer**: Service orchestration
560
+
561
+ ---
562
+
563
+ ### Hypothesis 4: Stale Cache
564
+ **Likelihood**: 🟢 Low
565
+ **Evidence**:
566
+ - Works after service restart
567
+ - Some users affected, others not
568
+ - Caching layer detected in stack
569
+
570
+ **Data Flow Point**: Cache → Database
571
+ **Affected Layer**: Caching middleware
572
+
573
+ ---
574
+
575
+ ### Hypothesis 5: State Synchronization (UI)
576
+ **Likelihood**: 🟡 Medium (if UI bug)
577
+ **Evidence**:
578
+ - UI shows stale data
579
+ - API returns correct data
580
+ - State update logs show closure issue
581
+ - Pattern matches: react-state-stale-closure-2025-09
582
+
583
+ **Data Flow Point**: API → UI State
584
+ **Affected Layer**: Frontend state management
585
+
586
+ ---
587
+
588
+ ### Hypothesis 6: Transaction Isolation
589
+ **Likelihood**: 🟢 Low
590
+ **Evidence**:
591
+ - Concurrent requests show different results
592
+ - Database isolation level: READ_COMMITTED
593
+ - Phantom read possible
594
+
595
+ **Data Flow Point**: Database transactions
596
+ **Affected Layer**: Database
597
+
598
+ ---
599
+
600
+ ### Hypothesis 7: Authentication/Authorization Issue
601
+ **Likelihood**: 🟢 Low
602
+ **Evidence**:
603
+ - Works for admin users
604
+ - Fails for regular users
605
+ - Permission check logs unclear
606
+
607
+ **Data Flow Point**: Middleware → Service
608
+ **Affected Layer**: Authorization middleware
609
+ ````
610
+
611
+ ### Step 4.2: Distill to 1-2 Most Likely Causes
612
+
613
+ Apply systematic analysis to narrow down:
614
+
615
+ **Distillation Criteria**:
616
+
617
+ 1. **Evidence Strength**: How much diagnostic data supports this?
618
+ 2. **Architecture Alignment**: Does data-model.md confirm this pattern?
619
+ 3. **Cross-Project Memory**: Have we seen this exact pattern before?
620
+ 4. **Data Flow Analysis**: Does timeline support this hypothesis?
621
+ 5. **Probability**: Based on error type and context
622
+
623
+ ```markdown
624
+ ## Distilled Root Causes
625
+
626
+ ### Primary Hypothesis: N+1 Query Problem (90% confidence)
627
+
628
+ **Why this is most likely**:
629
+ ✅ Diagnostic logs show sequential queries (User → Subscription → Payment)
630
+ ✅ Architecture analysis confirms no eager loading in UserRepository
631
+ ✅ Cross-project memory shows identical pattern: n1-query-user-relations-2025-08
632
+ ✅ Error occurs exactly at point where subscription relationship accessed
633
+ ✅ Performance metrics show query count = number of users + 1
634
+
635
+ **Evidence from data-model.md**:
636
+
637
+ - User entity has `@relation` to Subscription (Prisma)
638
+ - No `include: { subscription: true }` in repository queries
639
+ - Service layer expects subscription to be loaded
640
+
641
+ **Data Flow Breakdown**:
642
+ ```
643
+
644
+ 1. API receives request (T+0ms)
645
+ 2. Service calls UserRepository.findById(userId) (T+15ms)
646
+ → Query 1: SELECT \* FROM users WHERE id = $1
647
+ 3. Service accesses user.subscription (T+23ms)
648
+ → Query 2: SELECT \* FROM subscriptions WHERE user_id = $1 ❌ NOT EXECUTED
649
+ 4. Error: Cannot read property 'subscription_id' of undefined (T+45ms)
650
+
651
+ ```
652
+
653
+ **Fix Strategy**:
654
+ - Add eager loading: `include: { subscription: true }` in repository
655
+ - OR: Modify service to handle lazy loading
656
+ - OR: Use explicit join in query
657
+
658
+ ---
659
+
660
+ ### Secondary Hypothesis: Missing Null Check (10% confidence)
661
+
662
+ **Why this is possible (but less likely)**:
663
+ ⚠️ Error message suggests undefined access
664
+ ⚠️ DTO validation doesn't check subscription existence
665
+ ❌ Doesn't explain why it works sometimes
666
+ ❌ Doesn't match timing pattern in logs
667
+
668
+ **If Primary Fix Doesn't Work**:
669
+ Add validation: `if (!user.subscription) throw new ValidationError(...)`
670
+ ```
671
+
672
+ ### Step 4.3: Validate Hypotheses with Diagnostic Data
673
+
674
+ Cross-reference distilled hypotheses with diagnostic logs:
675
+
676
+ ```markdown
677
+ ## Hypothesis Validation
678
+
679
+ ### Testing Primary Hypothesis: N+1 Query
680
+
681
+ **Diagnostic Evidence Check**:
682
+ ✅ Log line 45: "Query executing: SELECT _ FROM users WHERE id = $1"
683
+ ✅ Log line 67: "Accessing user.subscription"
684
+ ✅ Log line 68: ERROR - "Cannot read property 'subscription_id' of undefined"
685
+ ❌ No log for: "SELECT _ FROM subscriptions WHERE user_id = $1"
686
+
687
+ **Conclusion**: Hypothesis validated - subscription never loaded from database
688
+
689
+ ---
690
+
691
+ ### Testing Secondary Hypothesis: Missing Null Check
692
+
693
+ **Diagnostic Evidence Check**:
694
+ ⚠️ Validation passed but didn't check subscription
695
+ ⚠️ Could prevent error but doesn't explain root cause
696
+
697
+ **Conclusion**: Valid defensive measure but not root cause
698
+ ```
699
+
700
+ ## Phase 5: User Confirmation (CRITICAL - MANDATORY)
701
+
702
+ ### Step 5.1: Present Diagnosis to User
703
+
704
+ **STOP HERE** - Do NOT implement fix until user confirms
705
+
706
+ ````markdown
707
+ ## 🔍 Bug Diagnosis Report
708
+
709
+ ### Bug Summary
710
+
711
+ **Issue**: Payment processing fails for subscription users
712
+ **Error**: `Cannot read property 'subscription_id' of undefined`
713
+ **Frequency**: 100% reproducible
714
+ **Impact**: Critical - blocking all subscription payments
715
+
716
+ ---
717
+
718
+ ### 🎯 Root Cause Identified
719
+
720
+ **Primary Cause: N+1 Query Pattern (90% confidence)**
721
+
722
+ **Explanation**:
723
+ The UserRepository loads User entities without their Subscription relationships. When the PaymentService tries to access `user.subscription.subscription_id`, the subscription is `undefined` because it was never loaded from the database.
724
+
725
+ **Evidence**:
726
+
727
+ 1. Diagnostic logs show User query executed, but no Subscription query
728
+ 2. Architecture analysis (data-model.md) confirms no eager loading configured
729
+ 3. Cross-project memory shows identical pattern from previous project (n1-query-user-relations-2025-08)
730
+ 4. Error occurs exactly when accessing unloaded relationship
731
+
732
+ **Architecture Context** (from data-model.md):
733
+
734
+ ```typescript
735
+ // Current implementation (BROKEN)
736
+ const user = await userRepository.findById(userId)
737
+ // user.subscription is undefined - relationship not loaded!
738
+ const subscriptionId = user.subscription.subscription_id // ❌ ERROR
739
+
740
+ // Expected implementation
741
+ const user = await userRepository.findById(userId, {
742
+ include: { subscription: true },
743
+ })
744
+ const subscriptionId = user.subscription.subscription_id // ✅ WORKS
745
+ ```
746
+ ````
747
+
748
+ ---
749
+
750
+ ### 🔧 Proposed Fix
751
+
752
+ **Location**: `src/repositories/user.repository.ts`
753
+ **Change**: Add eager loading for subscription relationship
754
+
755
+ ```diff
756
+ async findById(userId: string) {
757
+ return await this.db.user.findUnique({
758
+ where: { id: userId },
759
+ + include: {
760
+ + subscription: true
761
+ + }
762
+ });
763
+ }
764
+ ```
765
+
766
+ **Alternative Fix** (if performance concern):
767
+ Add explicit method for payment context:
768
+
769
+ ```typescript
770
+ async findByIdWithSubscription(userId: string) {
771
+ return await this.db.user.findUnique({
772
+ where: { id: userId },
773
+ include: { subscription: true }
774
+ });
775
+ }
776
+ ```
777
+
778
+ ---
779
+
780
+ ### ⚠️ Secondary Concern
781
+
782
+ **Missing null check** (defensive measure):
783
+ Even with fix, should handle case where user has no subscription:
784
+
785
+ ```typescript
786
+ if (!user.subscription) {
787
+ throw new ValidationError("User does not have an active subscription")
788
+ }
789
+ ```
790
+
791
+ ---
792
+
793
+ ### 📊 Diagnostic Data Location
794
+
795
+ Full diagnostic logs saved to:
796
+
797
+ - `/docs/tasks/fixs/26-10-2025/subscription-payment-failure/diagnostic-logs.md`
798
+ - `/docs/tasks/fixs/26-10-2025/subscription-payment-failure/context.md`
799
+
800
+ ---
801
+
802
+ ### ❓ Confirmation Required
803
+
804
+ **Does this diagnosis match your understanding of the issue?**
805
+
806
+ Options:
807
+
808
+ 1. ✅ **Yes, proceed with fix** - Implement the proposed solution
809
+ 2. 🔄 **Need more data** - Add additional diagnostics
810
+ 3. ❌ **Diagnosis seems wrong** - Re-analyze with different approach
811
+ 4. 💬 **Have additional context** - Share and re-evaluate
812
+
813
+ Please confirm before I proceed with the fix.
814
+
815
+ ````
816
+
817
+ ### Step 5.2: Wait for User Response
818
+
819
+ **DO NOT PROCEED** until user explicitly confirms:
820
+ - ✅ "Yes, fix it"
821
+ - ✅ "Diagnosis looks correct, proceed"
822
+ - ✅ "Implement the fix"
823
+
824
+ **If user provides additional context**:
825
+ - Update diagnostic logs
826
+ - Re-run hypothesis generation
827
+ - Present updated diagnosis
828
+
829
+ **If user says diagnosis is wrong**:
830
+ - Ask for specific feedback
831
+ - Add more targeted diagnostics
832
+ - Re-analyze with new information
833
+
834
+ ## Phase 6: Implement Fix (ONLY AFTER CONFIRMATION)
835
+
836
+ ### Step 6.1: Create Fix Implementation Plan
837
+
838
+ ```markdown
839
+ # Fix Implementation Plan
840
+
841
+ ## Changes Required
842
+
843
+ ### 1. Repository Layer
844
+ **File**: `src/repositories/user.repository.ts`
845
+ **Lines**: 25-30
846
+ **Change**: Add eager loading for subscription relationship
847
+
848
+ ### 2. Service Layer (Defensive)
849
+ **File**: `src/services/payment.service.ts`
850
+ **Lines**: 45-47
851
+ **Change**: Add null check for subscription
852
+
853
+ ### 3. Tests
854
+ **Files**:
855
+ - `src/repositories/user.repository.test.ts` (add eager loading tests)
856
+ - `src/services/payment.service.test.ts` (add null subscription tests)
857
+
858
+ ### 4. Documentation
859
+ **File**: `docs/architecture/data-model.md`
860
+ **Change**: Document eager loading pattern for User queries
861
+
862
+ ## Risk Assessment
863
+ - **Risk Level**: Low
864
+ - **Affected Users**: All subscription users
865
+ - **Rollback Plan**: Revert single commit
866
+ - **Testing Required**: Unit + Integration tests
867
+ ````
868
+
869
+ ### Step 6.2: Implement Fix with Tests
870
+
871
+ **Repository Fix**:
872
+
873
+ ```typescript
874
+ // src/repositories/user.repository.ts
875
+ async findById(userId: string): Promise<User | null> {
876
+ return await this.db.user.findUnique({
877
+ where: { id: userId },
878
+ include: {
879
+ subscription: true // ✅ FIX: Eager load subscription
880
+ }
881
+ });
882
+ }
883
+ ```
884
+
885
+ **Service Defensive Check**:
886
+
887
+ ```typescript
888
+ // src/services/payment.service.ts
889
+ async processSubscriptionPayment(userId: string, amount: number) {
890
+ const user = await this.userRepository.findById(userId);
891
+
892
+ if (!user) {
893
+ throw new NotFoundError('User not found');
894
+ }
895
+
896
+ // ✅ FIX: Add defensive null check
897
+ if (!user.subscription) {
898
+ throw new ValidationError('User does not have an active subscription');
899
+ }
900
+
901
+ const subscriptionId = user.subscription.subscription_id;
902
+ // ... process payment
903
+ }
904
+ ```
905
+
906
+ **Tests**:
907
+
908
+ ```typescript
909
+ // src/repositories/user.repository.test.ts
910
+ describe("UserRepository.findById", () => {
911
+ it("should load subscription relationship", async () => {
912
+ const user = await repository.findById("user-123")
913
+
914
+ expect(user).toBeDefined()
915
+ expect(user.subscription).toBeDefined() // ✅ Verify eager loading
916
+ expect(user.subscription.subscription_id).toBe("sub-456")
917
+ })
918
+ })
919
+
920
+ // src/services/payment.service.test.ts
921
+ describe("PaymentService.processSubscriptionPayment", () => {
922
+ it("should throw error when user has no subscription", async () => {
923
+ // Setup user without subscription
924
+ await expect(service.processSubscriptionPayment("user-no-sub", 100)).rejects.toThrow(
925
+ "User does not have an active subscription",
926
+ )
927
+ })
928
+ })
929
+ ```
930
+
931
+ ### Step 6.3: Remove Diagnostic Logs
932
+
933
+ **IMPORTANT**: Clean up diagnostic instrumentation added in Phase 2
934
+
935
+ ```markdown
936
+ ## Diagnostic Cleanup Checklist
937
+
938
+ ### Files Modified for Diagnostics
939
+
940
+ - [ ] `src/repositories/user.repository.ts` - Remove debug logs
941
+ - [ ] `src/services/payment.service.ts` - Remove debug logs
942
+ - [ ] `app/api/payments/route.ts` - Remove debug logs
943
+
944
+ ### Cleanup Verification
945
+
946
+ - [ ] No `console.log('[DEBUG]` statements remain
947
+ - [ ] No temporary error handlers added
948
+ - [ ] No performance timing code left
949
+ - [ ] Original error handling restored
950
+ ```
951
+
952
+ **Keep only**:
953
+
954
+ - Existing production logging
955
+ - New defensive null checks (these are permanent improvements)
956
+
957
+ ## Phase 7: Testing & Verification (10-15 min)
958
+
959
+ ### Step 7.1: Test Fix Locally
960
+
961
+ ```bash
962
+ # Run affected tests
963
+ npm test -- user.repository.test.ts
964
+ npm test -- payment.service.test.ts
965
+
966
+ # Run integration tests
967
+ npm test -- payment.integration.test.ts
968
+
969
+ # Build verification
970
+ npm run build
971
+
972
+ # Type checking
973
+ npm run type-check
974
+ ```
975
+
976
+ ### Step 7.2: Verify Bug Resolution
977
+
978
+ Reproduce original bug scenario:
979
+
980
+ ```markdown
981
+ ## Verification Report
982
+
983
+ ### Original Bug Scenario
984
+
985
+ 1. User with subscription_id: sub-456
986
+ 2. Attempt payment processing
987
+ 3. Expected: Payment processes successfully
988
+ 4. Previous Result: Error "Cannot read property 'subscription_id' of undefined"
989
+
990
+ ### After Fix
991
+
992
+ 1. User with subscription_id: sub-456
993
+ 2. Attempt payment processing
994
+ 3. Result: ✅ Payment processed successfully
995
+ 4. Subscription loaded: ✅ Yes
996
+ 5. Error: ❌ None
997
+
998
+ ### Edge Cases Tested
999
+
1000
+ - [ ] User without subscription → Proper validation error
1001
+ - [ ] User with cancelled subscription → Handled correctly
1002
+ - [ ] Multiple concurrent requests → No race condition
1003
+ - [ ] Null/undefined userId → Proper error handling
1004
+
1005
+ ### Performance Impact
1006
+
1007
+ - Before: 1 query per user (missing relationship)
1008
+ - After: 1 query per user (with join)
1009
+ - Impact: Minimal (same query count, better result)
1010
+ ```
1011
+
1012
+ ### Step 7.3: Automated Test Suite
1013
+
1014
+ ```bash
1015
+ # Run full test suite
1016
+ npm test
1017
+
1018
+ # Expected results:
1019
+ ✅ All existing tests pass
1020
+ ✅ New tests for fix pass
1021
+ ✅ No regressions detected
1022
+ ```
1023
+
1024
+ ## Phase 8: Documentation & Memory (10 min)
1025
+
1026
+ ### Step 8.1: Update data-model.md
1027
+
1028
+ If pattern or best practice identified, update architecture docs:
1029
+
1030
+ ````markdown
1031
+ ## User Entity Query Patterns
1032
+
1033
+ ### ⚠️ Important: Always Eager Load Relationships
1034
+
1035
+ When querying User entities in payment context, ALWAYS include subscription:
1036
+
1037
+ ```typescript
1038
+ // ✅ CORRECT
1039
+ const user = await userRepository.findById(userId, {
1040
+ include: { subscription: true },
1041
+ })
1042
+
1043
+ // ❌ INCORRECT - Will cause errors in payment processing
1044
+ const user = await userRepository.findById(userId)
1045
+ ```
1046
+ ````
1047
+
1048
+ **Why**: Payment service requires subscription data. Lazy loading causes undefined access errors.
1049
+
1050
+ ````
1051
+
1052
+ ### Step 8.2: Create Bug Resolution Document
1053
+
1054
+ Create resolution document following documentation standards:
1055
+ - **Frontend bugs:** `docs/tasks/frontend/DD-MM-YYYY/<semantic-bug-id>/resolution.md`
1056
+ - **Backend bugs:** `docs/tasks/backend/DD-MM-YYYY/<semantic-bug-id>/resolution.md`
1057
+
1058
+ ```markdown
1059
+ # Bug Resolution: Subscription Payment Failure
1060
+
1061
+ ## Summary
1062
+ Fixed N+1 query pattern causing undefined access to subscription relationship in payment processing.
1063
+
1064
+ ## Root Cause
1065
+ UserRepository was loading User entities without eager loading the Subscription relationship. When PaymentService accessed `user.subscription.subscription_id`, the subscription was undefined.
1066
+
1067
+ ## Fix Implemented
1068
+ 1. Added eager loading to UserRepository.findById()
1069
+ 2. Added defensive null check in PaymentService
1070
+ 3. Updated tests to verify relationship loading
1071
+ 4. Documented pattern in data-model.md
1072
+
1073
+ ## Files Changed
1074
+ - `src/repositories/user.repository.ts` (lines 25-30) - Added eager loading
1075
+ - `src/services/payment.service.ts` (lines 45-47) - Added null check
1076
+ - `src/repositories/user.repository.test.ts` (new test)
1077
+ - `src/services/payment.service.test.ts` (new test)
1078
+ - `docs/architecture/data-model.md` (lines 156-165) - Documented pattern
1079
+
1080
+ ## Testing
1081
+ - ✅ Unit tests passing (47/47)
1082
+ - ✅ Integration tests passing (12/12)
1083
+ - ✅ Manual verification successful
1084
+ - ✅ No regressions detected
1085
+
1086
+ ## Performance Impact
1087
+ - Minimal - same query count, better result structure
1088
+ - No additional database round trips
1089
+
1090
+ ## Prevention
1091
+ - Updated repository query pattern documentation
1092
+ - Added tests for relationship loading
1093
+ - Documented in data-model.md for future reference
1094
+ ````
1095
+
1096
+ ### Step 8.3: Write to Cross-Project Memory
1097
+
1098
+ **Evaluate**: Is this bug reusable knowledge for other projects?
1099
+
1100
+ **Write to `/Users/besi/Code/memory/failure_patterns.json`**:
1101
+
1102
+ ```json
1103
+ {
1104
+ "id": "orm-missing-eager-loading-2025-10",
1105
+ "date": "2025-10-26",
1106
+ "problem": "ORM relationship access fails with undefined error due to missing eager loading",
1107
+ "symptoms": [
1108
+ "Cannot read property 'X' of undefined when accessing relationships",
1109
+ "Works in some contexts but not others",
1110
+ "Error occurs when accessing nested relationship properties",
1111
+ "Relationship exists in database but not loaded in object"
1112
+ ],
1113
+ "root_cause": "ORM lazy loading by default - relationships not loaded unless explicitly included. Accessing relationship without eager loading or explicit load causes undefined access.",
1114
+ "solution": "Add eager loading to repository queries: include/relations/populate depending on ORM. For frequently accessed relationships, add to default query. For context-specific needs, create dedicated repository methods.",
1115
+ "technologies": ["Prisma", "TypeORM", "Sequelize", "Mongoose", "ORM"],
1116
+ "prevention": "1. Document relationship loading patterns in data-model.md. 2. Add tests verifying relationships are loaded. 3. Use TypeScript strict mode to catch undefined access. 4. Add defensive null checks in services.",
1117
+ "detection": "Add diagnostic logs showing query execution and result structure. Check if relationship query executed. Verify object structure matches expectations.",
1118
+ "similar_patterns": ["n1-query-user-relations-2025-08", "lazy-loading-unexpected-behavior"]
1119
+ }
1120
+ ```
1121
+
1122
+ **Update files-edited.md**:
1123
+
1124
+ ```markdown
1125
+ ## Cross-Project Memory Updates
1126
+
1127
+ ### Failure Patterns
1128
+
1129
+ - Added: orm-missing-eager-loading-2025-10
1130
+ - ORM relationship access pattern and fix
1131
+ - Diagnostic approach for lazy loading issues
1132
+ - Prevention strategies for future projects
1133
+ ```
1134
+
1135
+ ## Phase 9: Final Verification & Cleanup
1136
+
1137
+ ### Step 9.1: Create TodoWrite Summary
1138
+
1139
+ ```typescript
1140
+ await todoWrite([
1141
+ {
1142
+ id: "gather-context",
1143
+ content: "Gather bug context and read data-model.md",
1144
+ status: "completed",
1145
+ priority: "high",
1146
+ },
1147
+ {
1148
+ id: "add-diagnostics",
1149
+ content: "Add diagnostic logs and instrumentation",
1150
+ status: "completed",
1151
+ priority: "high",
1152
+ },
1153
+ {
1154
+ id: "reproduce-bug",
1155
+ content: "Reproduce bug and collect diagnostic data",
1156
+ status: "completed",
1157
+ priority: "high",
1158
+ },
1159
+ {
1160
+ id: "generate-hypotheses",
1161
+ content: "Generate 5-7 hypotheses for root cause",
1162
+ status: "completed",
1163
+ priority: "high",
1164
+ },
1165
+ {
1166
+ id: "distill-causes",
1167
+ content: "Distill to 1-2 most likely causes",
1168
+ status: "completed",
1169
+ priority: "high",
1170
+ },
1171
+ {
1172
+ id: "user-confirmation",
1173
+ content: "Present diagnosis and get user confirmation",
1174
+ status: "completed",
1175
+ priority: "high",
1176
+ },
1177
+ {
1178
+ id: "implement-fix",
1179
+ content: "Implement fix with tests",
1180
+ status: "completed",
1181
+ priority: "high",
1182
+ },
1183
+ {
1184
+ id: "verify-fix",
1185
+ content: "Test and verify bug resolution",
1186
+ status: "completed",
1187
+ priority: "high",
1188
+ },
1189
+ {
1190
+ id: "cleanup-diagnostics",
1191
+ content: "Remove diagnostic instrumentation",
1192
+ status: "completed",
1193
+ priority: "medium",
1194
+ },
1195
+ {
1196
+ id: "update-docs",
1197
+ content: "Update data-model.md and create resolution doc",
1198
+ status: "completed",
1199
+ priority: "high",
1200
+ },
1201
+ {
1202
+ id: "update-memory",
1203
+ content: "Write learnings to cross-project memory",
1204
+ status: "completed",
1205
+ priority: "medium",
1206
+ },
1207
+ ])
1208
+ ```
1209
+
1210
+ ### Step 9.2: Final Checklist
1211
+
1212
+ ```markdown
1213
+ ## Bug Fix Completion Checklist
1214
+
1215
+ ### Diagnosis Phase
1216
+
1217
+ - [x] Architecture documentation read (data-model.md)
1218
+ - [x] Cross-project memory checked for similar bugs
1219
+ - [x] Bug context gathered and documented
1220
+ - [x] Diagnostic instrumentation added
1221
+ - [x] Bug reproduced successfully
1222
+ - [x] Diagnostic data collected
1223
+
1224
+ ### Hypothesis Phase
1225
+
1226
+ - [x] 5-7 hypotheses generated
1227
+ - [x] Hypotheses distilled to 1-2 most likely
1228
+ - [x] Validation with diagnostic data completed
1229
+ - [x] Diagnosis presented to user
1230
+ - [x] User confirmed diagnosis
1231
+
1232
+ ### Fix Phase
1233
+
1234
+ - [x] Fix implemented with tests
1235
+ - [x] All tests passing
1236
+ - [x] No regressions detected
1237
+ - [x] Diagnostic logs removed
1238
+ - [x] Bug verified as resolved
1239
+
1240
+ ### Documentation Phase
1241
+
1242
+ - [x] data-model.md updated with pattern
1243
+ - [x] Resolution document created
1244
+ - [x] files-edited.md created
1245
+ - [x] Cross-project memory updated
1246
+
1247
+ ### Quality Gates
1248
+
1249
+ - [x] Fix follows existing patterns
1250
+ - [x] Tests cover edge cases
1251
+ - [x] Documentation is complete
1252
+ - [x] No performance degradation
1253
+ ```
1254
+
1255
+ ## Success Criteria
1256
+
1257
+ - [x] **Diagnostic-First Approach**: Instrumentation added BEFORE fix
1258
+ - [x] **Hypothesis Generation**: 5-7 hypotheses documented
1259
+ - [x] **Distillation**: Narrowed to 1-2 most likely causes
1260
+ - [x] **User Confirmation**: Explicit approval before fix
1261
+ - [x] **Architecture-Aware**: Used data-model.md for context
1262
+ - [x] **Memory Integration**: Checked and updated cross-project memory
1263
+ - [x] **Testing**: Comprehensive tests added
1264
+ - [x] **Documentation**: Complete resolution documentation
1265
+ - [x] **Cleanup**: All diagnostic code removed
1266
+
1267
+ ## Output Example
1268
+
1269
+ ### Simple Bug
1270
+
1271
+ ```
1272
+ 🐛 Bug Diagnosis: Null Pointer in User Service
1273
+
1274
+ 📋 Architecture Check:
1275
+ ✅ Read /docs/architecture/data-model.md
1276
+ ✅ Identified User entity and relationships
1277
+ ✅ Found service layer patterns
1278
+
1279
+ 🧠 Cross-Project Memory:
1280
+ ⚠️ Similar bug: react-state-stale-closure-2025-09
1281
+
1282
+ 🔍 Phase 1: Adding Diagnostics
1283
+ ✅ Added 8 diagnostic log points
1284
+ ✅ Added error boundaries
1285
+ ✅ Added state tracking
1286
+
1287
+ 📊 Phase 2: Reproduction
1288
+ ✅ Bug reproduced (100% success rate)
1289
+ ✅ Diagnostic data collected
1290
+ ✅ Timeline: Error at T+45ms
1291
+
1292
+ 🎯 Phase 3: Hypothesis Generation
1293
+
1294
+ Generated 5 hypotheses:
1295
+ 1. 🔴 Missing eager loading (HIGH)
1296
+ 2. 🟡 Null validation missing (MEDIUM)
1297
+ 3. 🟡 Race condition (MEDIUM)
1298
+ 4. 🟢 Cache issue (LOW)
1299
+ 5. 🟢 Permission issue (LOW)
1300
+
1301
+ Distilled to:
1302
+ PRIMARY: Missing eager loading (90% confidence)
1303
+ SECONDARY: Null validation (10% confidence)
1304
+
1305
+ 📝 Diagnosis Report:
1306
+ ┌─────────────────────────────────────────┐
1307
+ │ Root Cause: Missing Eager Loading │
1308
+ │ │
1309
+ │ User.subscription relationship not │
1310
+ │ loaded by default. Service expects │
1311
+ │ it to exist, causing undefined error. │
1312
+ │ │
1313
+ │ Fix: Add include: { subscription: true}│
1314
+ │ to UserRepository.findById() │
1315
+ └─────────────────────────────────────────┘
1316
+
1317
+ ❓ Does this diagnosis match your understanding?
1318
+ [Waiting for user confirmation...]
1319
+
1320
+ ✅ User confirmed diagnosis
1321
+
1322
+ 🔧 Implementing Fix:
1323
+ ✅ Updated UserRepository.findById()
1324
+ ✅ Added defensive null check
1325
+ ✅ Added relationship loading tests
1326
+ ✅ All tests passing (47/47)
1327
+
1328
+ 🧹 Cleanup:
1329
+ ✅ Removed 8 diagnostic log points
1330
+ ✅ Restored original error handling
1331
+
1332
+ 📝 Documentation:
1333
+ ✅ Updated data-model.md with pattern
1334
+ ✅ Created resolution document
1335
+ ✅ Documented in files-edited.md
1336
+
1337
+ 🧠 Memory Updated:
1338
+ ✅ Added: orm-missing-eager-loading-2025-10
1339
+
1340
+ 🎯 Bug Fixed!
1341
+ ```
1342
+
1343
+ ### Complex Bug
1344
+
1345
+ ```
1346
+ 🐛 Bug Diagnosis: Payment Processing Intermittent Failures
1347
+
1348
+ 📋 Architecture Check:
1349
+ ✅ Read /docs/architecture/data-model.md
1350
+ ✅ Analyzed Payment → Subscription → User flow
1351
+ ✅ Identified 3 affected services
1352
+
1353
+ 🧠 Cross-Project Memory:
1354
+ ⚠️ Similar: stripe-webhook-replay-attack-2025-10
1355
+ ⚠️ Similar: race-condition-async-payment-2025-07
1356
+ ✅ Applied: idempotency-pattern-2025-09
1357
+
1358
+ 🔍 Phase 1: Adding Diagnostics (15 min)
1359
+ ✅ Added 23 diagnostic log points across 3 layers
1360
+ ✅ Added transaction tracking
1361
+ ✅ Added timing instrumentation
1362
+ ✅ Added state snapshots
1363
+
1364
+ 📊 Phase 2: Reproduction (20 min)
1365
+ ⚠️ Intermittent: 3 successes, 2 failures in 5 attempts
1366
+ ✅ Diagnostic data collected for both scenarios
1367
+ ✅ Pattern identified: Fails under concurrent load
1368
+
1369
+ 🎯 Phase 3: Hypothesis Generation
1370
+
1371
+ Generated 7 hypotheses:
1372
+ 1. 🔴 Race condition in payment status update (HIGH)
1373
+ 2. 🔴 Missing database transaction isolation (HIGH)
1374
+ 3. 🟡 Webhook replay without idempotency (MEDIUM)
1375
+ 4. 🟡 Cache inconsistency (MEDIUM)
1376
+ 5. 🟢 Network timeout (LOW)
1377
+ 6. 🟢 External API rate limiting (LOW)
1378
+ 7. 🟢 Insufficient error handling (LOW)
1379
+
1380
+ Distilled to:
1381
+ PRIMARY: Race condition (85% confidence)
1382
+ - Two concurrent requests update same subscription
1383
+ - Second request reads stale data
1384
+ - Database lacks proper isolation level
1385
+
1386
+ SECONDARY: Missing idempotency (15% confidence)
1387
+ - Could compound race condition
1388
+ - Webhooks might replay
1389
+
1390
+ 📝 Diagnosis Report:
1391
+ ┌──────────────────────────────────────────┐
1392
+ │ Root Cause: Race Condition │
1393
+ │ │
1394
+ │ Timeline Analysis: │
1395
+ │ Request A (T+0): Read subscription status │
1396
+ │ Request B (T+5): Read subscription status │
1397
+ │ Request A (T+15): Update to 'processing' │
1398
+ │ Request B (T+18): Update to 'processing' │
1399
+ │ Request A (T+25): Update to 'completed' │
1400
+ │ Request B (T+30): Update to 'completed' │
1401
+ │ Result: Duplicate payment processed │
1402
+ │ │
1403
+ │ Fix: Add optimistic locking + transaction│
1404
+ │ isolation level SERIALIZABLE │
1405
+ └──────────────────────────────────────────┘
1406
+
1407
+ Evidence from data-model.md:
1408
+ - Subscription entity has 'status' field
1409
+ - No version field for optimistic locking
1410
+ - No transaction isolation documented
1411
+ - Concurrent access pattern not handled
1412
+
1413
+ ❓ Does this diagnosis match your understanding?
1414
+ [Waiting for user confirmation...]
1415
+
1416
+ ✅ User confirmed diagnosis
1417
+
1418
+ 🔧 Implementing Fix (30 min):
1419
+ ✅ Added version field to Subscription entity
1420
+ ✅ Implemented optimistic locking
1421
+ ✅ Set transaction isolation to SERIALIZABLE
1422
+ ✅ Added idempotency key check
1423
+ ✅ Added concurrent request tests
1424
+ ✅ All tests passing (73/73)
1425
+
1426
+ 🧹 Cleanup:
1427
+ ✅ Removed 23 diagnostic log points
1428
+ ✅ Kept production-level logging
1429
+ ✅ Restored normal error handling
1430
+
1431
+ 📝 Documentation:
1432
+ ✅ Updated data-model.md:
1433
+ - Added version field to ERD
1434
+ - Documented optimistic locking pattern
1435
+ - Added concurrency handling notes
1436
+ ✅ Created comprehensive resolution doc
1437
+ ✅ Documented all 5 files changed
1438
+
1439
+ 🧠 Memory Updated:
1440
+ ✅ Added: race-condition-optimistic-locking-fix-2025-10
1441
+ ✅ Added: payment-concurrency-pattern-2025-10
1442
+
1443
+ 📊 Verification:
1444
+ ✅ 100 concurrent requests: 0 failures
1445
+ ✅ Load test: 1000 requests, 0 race conditions
1446
+ ✅ Performance impact: <5ms overhead
1447
+
1448
+ 🎯 Bug Fixed! System now handles concurrency correctly.
1449
+ ```
1450
+
1451
+ ## Key Principles
1452
+
1453
+ 1. **Diagnostic-First**: ALWAYS add instrumentation before fixing
1454
+ 2. **Hypothesis-Driven**: Generate multiple theories, validate with data
1455
+ 3. **User Confirmation**: NEVER fix without explicit approval
1456
+ 4. **Architecture-Aware**: Use data-model.md for deep context
1457
+ 5. **Memory-Driven**: Learn from and contribute to cross-project knowledge
1458
+ 6. **Evidence-Based**: All conclusions backed by diagnostic data
1459
+ 7. **Thorough Testing**: Comprehensive tests for fix and edge cases
1460
+ 8. **Clean Cleanup**: Remove all temporary diagnostic code
1461
+
1462
+ ## Integration with Existing System
1463
+
1464
+ This command integrates with:
1465
+
1466
+ - **data-model command**: Uses architecture docs for deep context
1467
+ - **add command**: Similar workflow structure and memory integration
1468
+ - **Cross-project memory**: Reads failure patterns, writes bug solutions
1469
+ - **Todo system**: Comprehensive task tracking for diagnosis workflow
1470
+ - **Task documentation**: Follows AGENTS.md bug diagnosis guidelines
1471
+
1472
+ ---
1473
+
1474
+ **Ready to diagnose and fix bugs with systematic, evidence-based approach!** 🔍