@mytechtoday/augment-extensions 0.2.0 → 0.5.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 (420) hide show
  1. package/README.md +614 -39
  2. package/augment-extensions/coding-standards/bash/README.md +196 -0
  3. package/augment-extensions/coding-standards/bash/module.json +163 -0
  4. package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -0
  5. package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -0
  6. package/augment-extensions/coding-standards/css/README.md +40 -0
  7. package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -0
  8. package/augment-extensions/coding-standards/css/module.json +44 -0
  9. package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -0
  10. package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -0
  11. package/augment-extensions/coding-standards/html/README.md +40 -0
  12. package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -0
  13. package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -0
  14. package/augment-extensions/coding-standards/html/module.json +44 -0
  15. package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -0
  16. package/augment-extensions/coding-standards/html-css-js/README.md +194 -0
  17. package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -0
  18. package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -0
  19. package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -0
  20. package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -0
  21. package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -0
  22. package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -0
  23. package/augment-extensions/coding-standards/html-css-js/module.json +48 -0
  24. package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -0
  25. package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -0
  26. package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -0
  27. package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -0
  28. package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -0
  29. package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -0
  30. package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -0
  31. package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -0
  32. package/augment-extensions/coding-standards/js/README.md +46 -0
  33. package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -0
  34. package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -0
  35. package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -0
  36. package/augment-extensions/coding-standards/js/module.json +49 -0
  37. package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -0
  38. package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -0
  39. package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -0
  40. package/augment-extensions/coding-standards/js/rules/performance.md +463 -0
  41. package/augment-extensions/coding-standards/js/rules/tooling.md +543 -0
  42. package/augment-extensions/coding-standards/php/README.md +248 -0
  43. package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -0
  44. package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -0
  45. package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -0
  46. package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -0
  47. package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -0
  48. package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -0
  49. package/augment-extensions/coding-standards/php/module.json +166 -0
  50. package/augment-extensions/coding-standards/php/rules/api-development.md +480 -0
  51. package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -0
  52. package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -0
  53. package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -0
  54. package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -0
  55. package/augment-extensions/coding-standards/php/rules/documentation.md +425 -0
  56. package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -0
  57. package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -0
  58. package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -0
  59. package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -0
  60. package/augment-extensions/coding-standards/php/rules/performance.md +392 -0
  61. package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -0
  62. package/augment-extensions/coding-standards/php/rules/security.md +358 -0
  63. package/augment-extensions/coding-standards/php/rules/testing.md +403 -0
  64. package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -0
  65. package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -0
  66. package/augment-extensions/coding-standards/powershell/README.md +154 -0
  67. package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -0
  68. package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -0
  69. package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -0
  70. package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -0
  71. package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -0
  72. package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -0
  73. package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -0
  74. package/augment-extensions/coding-standards/powershell/module.json +165 -0
  75. package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -0
  76. package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -0
  77. package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -0
  78. package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -0
  79. package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -0
  80. package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -0
  81. package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -0
  82. package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -0
  83. package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -0
  84. package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -0
  85. package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -0
  86. package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -0
  87. package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -0
  88. package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -0
  89. package/augment-extensions/coding-standards/python/README.md +12 -8
  90. package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -0
  91. package/augment-extensions/coding-standards/python/module.json +8 -4
  92. package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -0
  93. package/augment-extensions/coding-standards/python/rules/documentation.md +831 -0
  94. package/augment-extensions/coding-standards/python/rules/error-handling.md +855 -68
  95. package/augment-extensions/coding-standards/python/rules/testing.md +409 -0
  96. package/augment-extensions/coding-standards/python/rules/tooling.md +446 -0
  97. package/augment-extensions/coding-standards/python/rules/type-hints.md +115 -50
  98. package/augment-extensions/collections/html-css-js/README.md +82 -0
  99. package/augment-extensions/collections/html-css-js/collection.json +41 -0
  100. package/augment-extensions/domain-rules/database/README.md +161 -0
  101. package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -0
  102. package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -0
  103. package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -0
  104. package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -0
  105. package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -0
  106. package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -0
  107. package/augment-extensions/domain-rules/database/module.json +28 -0
  108. package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -0
  109. package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -0
  110. package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -0
  111. package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -0
  112. package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -0
  113. package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -0
  114. package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -0
  115. package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -0
  116. package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -0
  117. package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -0
  118. package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -0
  119. package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -0
  120. package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -0
  121. package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -0
  122. package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -0
  123. package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -0
  124. package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/README.md +23 -0
  125. package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/module.json +26 -0
  126. package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/README.md +23 -0
  127. package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/module.json +26 -0
  128. package/augment-extensions/domain-rules/design/color/themes/dracula/README.md +23 -0
  129. package/augment-extensions/domain-rules/design/color/themes/dracula/module.json +26 -0
  130. package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/README.md +23 -0
  131. package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/module.json +26 -0
  132. package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/README.md +23 -0
  133. package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/module.json +26 -0
  134. package/augment-extensions/domain-rules/design/color/themes/high-contrast/README.md +27 -0
  135. package/augment-extensions/domain-rules/design/color/themes/high-contrast/module.json +26 -0
  136. package/augment-extensions/domain-rules/design/color/themes/monokai/README.md +23 -0
  137. package/augment-extensions/domain-rules/design/color/themes/monokai/module.json +26 -0
  138. package/augment-extensions/domain-rules/design/color/themes/nord/README.md +23 -0
  139. package/augment-extensions/domain-rules/design/color/themes/nord/module.json +26 -0
  140. package/augment-extensions/domain-rules/design/color/themes/one-dark/README.md +23 -0
  141. package/augment-extensions/domain-rules/design/color/themes/one-dark/module.json +26 -0
  142. package/augment-extensions/domain-rules/design/color/themes/one-light/README.md +23 -0
  143. package/augment-extensions/domain-rules/design/color/themes/one-light/module.json +26 -0
  144. package/augment-extensions/domain-rules/design/color/themes/solarized-dark/README.md +23 -0
  145. package/augment-extensions/domain-rules/design/color/themes/solarized-dark/module.json +26 -0
  146. package/augment-extensions/domain-rules/design/color/themes/solarized-light/README.md +23 -0
  147. package/augment-extensions/domain-rules/design/color/themes/solarized-light/module.json +26 -0
  148. package/augment-extensions/domain-rules/design/color/themes/tokyo-night/README.md +23 -0
  149. package/augment-extensions/domain-rules/design/color/themes/tokyo-night/module.json +26 -0
  150. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/README.md +136 -0
  151. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/SCHEMA-VALIDATION-REPORT.md +216 -0
  152. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/brand-kit-example.yaml +292 -0
  153. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/campaign-brief-example.yaml +389 -0
  154. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/content-calendar-example.yaml +643 -0
  155. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/email-newsletter-example.md +376 -0
  156. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/landing-page-example.md +934 -0
  157. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/ppc-ad-copy-example.md +301 -0
  158. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/seo-blog-post-example.md +347 -0
  159. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/social-media-campaign-example.md +606 -0
  160. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/module.json +50 -0
  161. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/affiliate-influencer-marketing.md +593 -0
  162. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/asset-management.md +418 -0
  163. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/brand-consistency.md +210 -0
  164. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/content-marketing.md +337 -0
  165. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/conversion-optimization.md +455 -0
  166. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/direct-sales.md +499 -0
  167. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/email-marketing.md +439 -0
  168. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/legal-compliance.md +227 -0
  169. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/ppc-advertising.md +569 -0
  170. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/seo-optimization.md +470 -0
  171. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/social-media-marketing.md +414 -0
  172. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/universal-marketing.md +177 -0
  173. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/asset-inventory.schema.json +247 -0
  174. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/brand-kit.schema.json +326 -0
  175. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/campaign-brief.schema.json +342 -0
  176. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/color-palette.schema.json +223 -0
  177. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/content-template.schema.json +383 -0
  178. package/augment-extensions/domain-rules/mcp/README.md +150 -0
  179. package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
  180. package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
  181. package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
  182. package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
  183. package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
  184. package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
  185. package/augment-extensions/domain-rules/mcp/module.json +49 -0
  186. package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
  187. package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
  188. package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
  189. package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
  190. package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
  191. package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
  192. package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
  193. package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
  194. package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
  195. package/augment-extensions/workflows/beads/module.json +4 -3
  196. package/augment-extensions/workflows/beads-integration/IMPLEMENTATION-STATUS.md +145 -0
  197. package/augment-extensions/workflows/beads-integration/README.md +143 -0
  198. package/augment-extensions/workflows/beads-integration/config/defaults.json +32 -0
  199. package/augment-extensions/workflows/beads-integration/config/schema.json +140 -0
  200. package/augment-extensions/workflows/beads-integration/examples/basic-task-generation.md +293 -0
  201. package/augment-extensions/workflows/beads-integration/module.json +75 -0
  202. package/augment-extensions/workflows/beads-integration/rules/core-rules.md +219 -0
  203. package/augment-extensions/workflows/beads-integration/rules/effectiveness-standards.md +256 -0
  204. package/augment-extensions/workflows/beads-integration/rules/task-generation.md +607 -0
  205. package/augment-extensions/workflows/database/README.md +195 -0
  206. package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
  207. package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
  208. package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
  209. package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
  210. package/augment-extensions/workflows/database/module.json +42 -0
  211. package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
  212. package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
  213. package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
  214. package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
  215. package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
  216. package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
  217. package/augment-extensions/workflows/database/rules/workflow.md +458 -0
  218. package/augment-extensions/workflows/openspec/module.json +4 -3
  219. package/augment-extensions/writing-standards/screenplay/README.md +300 -0
  220. package/augment-extensions/writing-standards/screenplay/_templates/README.md +121 -0
  221. package/augment-extensions/writing-standards/screenplay/_templates/genre-template.md +153 -0
  222. package/augment-extensions/writing-standards/screenplay/_templates/style-template.md +243 -0
  223. package/augment-extensions/writing-standards/screenplay/_templates/theme-template.md +213 -0
  224. package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
  225. package/augment-extensions/writing-standards/screenplay/examples/beat-sheet-example.yaml +95 -0
  226. package/augment-extensions/writing-standards/screenplay/examples/character-profile-example.yaml +116 -0
  227. package/augment-extensions/writing-standards/screenplay/examples/commercial-30sec.fountain +151 -0
  228. package/augment-extensions/writing-standards/screenplay/examples/independent-monologue.fountain +67 -0
  229. package/augment-extensions/writing-standards/screenplay/examples/news-segment.fountain +142 -0
  230. package/augment-extensions/writing-standards/screenplay/examples/plot-outline-example.yaml +184 -0
  231. package/augment-extensions/writing-standards/screenplay/examples/tv-episode-teaser.fountain +204 -0
  232. package/augment-extensions/writing-standards/screenplay/genres/README.md +181 -0
  233. package/augment-extensions/writing-standards/screenplay/genres/examples/.gitkeep +2 -0
  234. package/augment-extensions/writing-standards/screenplay/genres/module.json +70 -0
  235. package/augment-extensions/writing-standards/screenplay/genres/rules/.gitkeep +2 -0
  236. package/augment-extensions/writing-standards/screenplay/genres/rules/action.md +399 -0
  237. package/augment-extensions/writing-standards/screenplay/genres/rules/adventure.md +407 -0
  238. package/augment-extensions/writing-standards/screenplay/genres/rules/animation.md +293 -0
  239. package/augment-extensions/writing-standards/screenplay/genres/rules/biographical.md +293 -0
  240. package/augment-extensions/writing-standards/screenplay/genres/rules/comedy.md +401 -0
  241. package/augment-extensions/writing-standards/screenplay/genres/rules/documentary.md +293 -0
  242. package/augment-extensions/writing-standards/screenplay/genres/rules/drama.md +409 -0
  243. package/augment-extensions/writing-standards/screenplay/genres/rules/fantasy.md +293 -0
  244. package/augment-extensions/writing-standards/screenplay/genres/rules/historical.md +293 -0
  245. package/augment-extensions/writing-standards/screenplay/genres/rules/horror.md +268 -0
  246. package/augment-extensions/writing-standards/screenplay/genres/rules/musical.md +294 -0
  247. package/augment-extensions/writing-standards/screenplay/genres/rules/mystery.md +293 -0
  248. package/augment-extensions/writing-standards/screenplay/genres/rules/noir.md +294 -0
  249. package/augment-extensions/writing-standards/screenplay/genres/rules/romance.md +293 -0
  250. package/augment-extensions/writing-standards/screenplay/genres/rules/sci-fi.md +289 -0
  251. package/augment-extensions/writing-standards/screenplay/genres/rules/superhero.md +293 -0
  252. package/augment-extensions/writing-standards/screenplay/genres/rules/thriller.md +294 -0
  253. package/augment-extensions/writing-standards/screenplay/genres/rules/western.md +293 -0
  254. package/augment-extensions/writing-standards/screenplay/module.json +124 -0
  255. package/augment-extensions/writing-standards/screenplay/rules/aaa-hollywood-films.md +339 -0
  256. package/augment-extensions/writing-standards/screenplay/rules/ai-integration-testing.md +329 -0
  257. package/augment-extensions/writing-standards/screenplay/rules/character-development.md +169 -0
  258. package/augment-extensions/writing-standards/screenplay/rules/commercials.md +437 -0
  259. package/augment-extensions/writing-standards/screenplay/rules/dialogue-writing.md +263 -0
  260. package/augment-extensions/writing-standards/screenplay/rules/diversity-inclusion.md +261 -0
  261. package/augment-extensions/writing-standards/screenplay/rules/examples-guide.md +315 -0
  262. package/augment-extensions/writing-standards/screenplay/rules/formatting-validation.md +413 -0
  263. package/augment-extensions/writing-standards/screenplay/rules/fountain-format.md +372 -0
  264. package/augment-extensions/writing-standards/screenplay/rules/independent-films.md +374 -0
  265. package/augment-extensions/writing-standards/screenplay/rules/live-tv-productions.md +443 -0
  266. package/augment-extensions/writing-standards/screenplay/rules/narrative-structures.md +207 -0
  267. package/augment-extensions/writing-standards/screenplay/rules/news-broadcasts.md +444 -0
  268. package/augment-extensions/writing-standards/screenplay/rules/pacing-timing.md +331 -0
  269. package/augment-extensions/writing-standards/screenplay/rules/quality-review-checklist.md +334 -0
  270. package/augment-extensions/writing-standards/screenplay/rules/quick-reference.md +299 -0
  271. package/augment-extensions/writing-standards/screenplay/rules/screen-continuity.md +263 -0
  272. package/augment-extensions/writing-standards/screenplay/rules/streaming-content.md +412 -0
  273. package/augment-extensions/writing-standards/screenplay/rules/trope-management.md +370 -0
  274. package/augment-extensions/writing-standards/screenplay/rules/tv-series.md +374 -0
  275. package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
  276. package/augment-extensions/writing-standards/screenplay/rules/vscode-integration.md +277 -0
  277. package/augment-extensions/writing-standards/screenplay/rules/web-content.md +393 -0
  278. package/augment-extensions/writing-standards/screenplay/schemas/beat-sheet.json +332 -0
  279. package/augment-extensions/writing-standards/screenplay/schemas/character-profile.json +247 -0
  280. package/augment-extensions/writing-standards/screenplay/schemas/feature-selection.json +200 -0
  281. package/augment-extensions/writing-standards/screenplay/schemas/plot-outline.json +233 -0
  282. package/augment-extensions/writing-standards/screenplay/schemas/screenplay-config.json +245 -0
  283. package/augment-extensions/writing-standards/screenplay/schemas/trope-inventory.json +221 -0
  284. package/augment-extensions/writing-standards/screenplay/styles/README.md +159 -0
  285. package/augment-extensions/writing-standards/screenplay/styles/examples/.gitkeep +2 -0
  286. package/augment-extensions/writing-standards/screenplay/styles/examples/style-applications.md +1449 -0
  287. package/augment-extensions/writing-standards/screenplay/styles/module.json +64 -0
  288. package/augment-extensions/writing-standards/screenplay/styles/rules/.gitkeep +2 -0
  289. package/augment-extensions/writing-standards/screenplay/styles/rules/dialogue-centric.md +520 -0
  290. package/augment-extensions/writing-standards/screenplay/styles/rules/ensemble.md +499 -0
  291. package/augment-extensions/writing-standards/screenplay/styles/rules/epic.md +497 -0
  292. package/augment-extensions/writing-standards/screenplay/styles/rules/experimental.md +492 -0
  293. package/augment-extensions/writing-standards/screenplay/styles/rules/flashback.md +509 -0
  294. package/augment-extensions/writing-standards/screenplay/styles/rules/linear.md +490 -0
  295. package/augment-extensions/writing-standards/screenplay/styles/rules/minimalist.md +499 -0
  296. package/augment-extensions/writing-standards/screenplay/styles/rules/non-linear.md +501 -0
  297. package/augment-extensions/writing-standards/screenplay/styles/rules/poetic.md +499 -0
  298. package/augment-extensions/writing-standards/screenplay/styles/rules/realistic.md +498 -0
  299. package/augment-extensions/writing-standards/screenplay/styles/rules/satirical.md +499 -0
  300. package/augment-extensions/writing-standards/screenplay/styles/rules/surreal.md +508 -0
  301. package/augment-extensions/writing-standards/screenplay/styles/rules/voice-over.md +500 -0
  302. package/augment-extensions/writing-standards/screenplay/themes/README.md +158 -0
  303. package/augment-extensions/writing-standards/screenplay/themes/examples/.gitkeep +2 -0
  304. package/augment-extensions/writing-standards/screenplay/themes/examples/common-mistakes-and-fixes.md +643 -0
  305. package/augment-extensions/writing-standards/screenplay/themes/examples/complete-scene-example.md +311 -0
  306. package/augment-extensions/writing-standards/screenplay/themes/examples/individual-theme-examples.md +562 -0
  307. package/augment-extensions/writing-standards/screenplay/themes/examples/multi-theme-weaving.md +538 -0
  308. package/augment-extensions/writing-standards/screenplay/themes/examples/theme-application-guide.md +432 -0
  309. package/augment-extensions/writing-standards/screenplay/themes/examples/theme-integration-across-acts.md +637 -0
  310. package/augment-extensions/writing-standards/screenplay/themes/module.json +66 -0
  311. package/augment-extensions/writing-standards/screenplay/themes/rules/.gitkeep +2 -0
  312. package/augment-extensions/writing-standards/screenplay/themes/rules/ambition.md +458 -0
  313. package/augment-extensions/writing-standards/screenplay/themes/rules/betrayal.md +490 -0
  314. package/augment-extensions/writing-standards/screenplay/themes/rules/environment.md +458 -0
  315. package/augment-extensions/writing-standards/screenplay/themes/rules/fate.md +459 -0
  316. package/augment-extensions/writing-standards/screenplay/themes/rules/friendship.md +491 -0
  317. package/augment-extensions/writing-standards/screenplay/themes/rules/growth.md +491 -0
  318. package/augment-extensions/writing-standards/screenplay/themes/rules/identity.md +490 -0
  319. package/augment-extensions/writing-standards/screenplay/themes/rules/isolation.md +464 -0
  320. package/augment-extensions/writing-standards/screenplay/themes/rules/justice.md +461 -0
  321. package/augment-extensions/writing-standards/screenplay/themes/rules/love.md +489 -0
  322. package/augment-extensions/writing-standards/screenplay/themes/rules/power.md +494 -0
  323. package/augment-extensions/writing-standards/screenplay/themes/rules/redemption.md +483 -0
  324. package/augment-extensions/writing-standards/screenplay/themes/rules/revenge.md +489 -0
  325. package/augment-extensions/writing-standards/screenplay/themes/rules/survival.md +496 -0
  326. package/augment-extensions/writing-standards/screenplay/themes/rules/technology.md +463 -0
  327. package/cli/MODULES.md +302 -0
  328. package/cli/dist/cli.js +168 -10
  329. package/cli/dist/cli.js.map +1 -1
  330. package/cli/dist/commands/catalog.d.ts +13 -0
  331. package/cli/dist/commands/catalog.d.ts.map +1 -0
  332. package/cli/dist/commands/catalog.js +104 -0
  333. package/cli/dist/commands/catalog.js.map +1 -0
  334. package/cli/dist/commands/gui.d.ts +6 -0
  335. package/cli/dist/commands/gui.d.ts.map +1 -0
  336. package/cli/dist/commands/gui.js +211 -0
  337. package/cli/dist/commands/gui.js.map +1 -0
  338. package/cli/dist/commands/init.d.ts.map +1 -1
  339. package/cli/dist/commands/init.js +12 -0
  340. package/cli/dist/commands/init.js.map +1 -1
  341. package/cli/dist/commands/install-rules.d.ts +14 -0
  342. package/cli/dist/commands/install-rules.d.ts.map +1 -0
  343. package/cli/dist/commands/install-rules.js +127 -0
  344. package/cli/dist/commands/install-rules.js.map +1 -0
  345. package/cli/dist/commands/link.d.ts.map +1 -1
  346. package/cli/dist/commands/link.js +9 -11
  347. package/cli/dist/commands/link.js.map +1 -1
  348. package/cli/dist/commands/list.d.ts.map +1 -1
  349. package/cli/dist/commands/list.js +11 -28
  350. package/cli/dist/commands/list.js.map +1 -1
  351. package/cli/dist/commands/mcp.d.ts +48 -0
  352. package/cli/dist/commands/mcp.d.ts.map +1 -0
  353. package/cli/dist/commands/mcp.js +229 -0
  354. package/cli/dist/commands/mcp.js.map +1 -0
  355. package/cli/dist/commands/self-remove.d.ts +7 -0
  356. package/cli/dist/commands/self-remove.d.ts.map +1 -0
  357. package/cli/dist/commands/self-remove.js +179 -0
  358. package/cli/dist/commands/self-remove.js.map +1 -0
  359. package/cli/dist/commands/show.d.ts +19 -0
  360. package/cli/dist/commands/show.d.ts.map +1 -1
  361. package/cli/dist/commands/show.js +478 -63
  362. package/cli/dist/commands/show.js.map +1 -1
  363. package/cli/dist/commands/skill.d.ts +67 -0
  364. package/cli/dist/commands/skill.d.ts.map +1 -0
  365. package/cli/dist/commands/skill.js +513 -0
  366. package/cli/dist/commands/skill.js.map +1 -0
  367. package/cli/dist/commands/unlink.d.ts +6 -0
  368. package/cli/dist/commands/unlink.d.ts.map +1 -0
  369. package/cli/dist/commands/unlink.js +115 -0
  370. package/cli/dist/commands/unlink.js.map +1 -0
  371. package/cli/dist/commands/validate.d.ts +6 -0
  372. package/cli/dist/commands/validate.d.ts.map +1 -0
  373. package/cli/dist/commands/validate.js +159 -0
  374. package/cli/dist/commands/validate.js.map +1 -0
  375. package/cli/dist/types/gui.d.ts +62 -0
  376. package/cli/dist/types/gui.d.ts.map +1 -0
  377. package/cli/dist/types/gui.js +30 -0
  378. package/cli/dist/types/gui.js.map +1 -0
  379. package/cli/dist/utils/catalog-sync.d.ts +22 -0
  380. package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
  381. package/cli/dist/utils/catalog-sync.js +157 -0
  382. package/cli/dist/utils/catalog-sync.js.map +1 -0
  383. package/cli/dist/utils/character-count.d.ts +56 -0
  384. package/cli/dist/utils/character-count.d.ts.map +1 -0
  385. package/cli/dist/utils/character-count.js +190 -0
  386. package/cli/dist/utils/character-count.js.map +1 -0
  387. package/cli/dist/utils/documentation-validator.d.ts +18 -0
  388. package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
  389. package/cli/dist/utils/documentation-validator.js +233 -0
  390. package/cli/dist/utils/documentation-validator.js.map +1 -0
  391. package/cli/dist/utils/gui-helpers.d.ts +23 -0
  392. package/cli/dist/utils/gui-helpers.d.ts.map +1 -0
  393. package/cli/dist/utils/gui-helpers.js +159 -0
  394. package/cli/dist/utils/gui-helpers.js.map +1 -0
  395. package/cli/dist/utils/install-rules.d.ts +32 -0
  396. package/cli/dist/utils/install-rules.d.ts.map +1 -0
  397. package/cli/dist/utils/install-rules.js +375 -0
  398. package/cli/dist/utils/install-rules.js.map +1 -0
  399. package/cli/dist/utils/mcp-integration.d.ts +70 -0
  400. package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
  401. package/cli/dist/utils/mcp-integration.js +292 -0
  402. package/cli/dist/utils/mcp-integration.js.map +1 -0
  403. package/cli/dist/utils/module-system.d.ts +232 -0
  404. package/cli/dist/utils/module-system.d.ts.map +1 -0
  405. package/cli/dist/utils/module-system.js +900 -0
  406. package/cli/dist/utils/module-system.js.map +1 -0
  407. package/cli/dist/utils/modules-catalog.d.ts +33 -0
  408. package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
  409. package/cli/dist/utils/modules-catalog.js +163 -0
  410. package/cli/dist/utils/modules-catalog.js.map +1 -0
  411. package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
  412. package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
  413. package/cli/dist/utils/rule-install-hooks.js +224 -0
  414. package/cli/dist/utils/rule-install-hooks.js.map +1 -0
  415. package/cli/dist/utils/skill-system.d.ts +95 -0
  416. package/cli/dist/utils/skill-system.d.ts.map +1 -0
  417. package/cli/dist/utils/skill-system.js +313 -0
  418. package/cli/dist/utils/skill-system.js.map +1 -0
  419. package/modules.md +559 -105
  420. package/package.json +17 -6
@@ -0,0 +1,561 @@
1
+ # PHP CMS Integration Best Practices
2
+
3
+ ## Overview
4
+
5
+ This guide provides best practices for developing WordPress and Drupal plugins/modules, including hooks, filters, security, database interactions, and CMS-specific patterns.
6
+
7
+ ## WordPress Development
8
+
9
+ ### Plugin Structure
10
+
11
+ ```php
12
+ <?php
13
+ /**
14
+ * Plugin Name: My Custom Plugin
15
+ * Plugin URI: https://example.com/my-plugin
16
+ * Description: A custom WordPress plugin
17
+ * Version: 1.0.0
18
+ * Author: Your Name
19
+ * Author URI: https://example.com
20
+ * License: GPL v2 or later
21
+ * Text Domain: my-custom-plugin
22
+ * Domain Path: /languages
23
+ */
24
+
25
+ // Prevent direct access
26
+ if (!defined('ABSPATH')) {
27
+ exit;
28
+ }
29
+
30
+ // Define plugin constants
31
+ define('MY_PLUGIN_VERSION', '1.0.0');
32
+ define('MY_PLUGIN_PATH', plugin_dir_path(__FILE__));
33
+ define('MY_PLUGIN_URL', plugin_dir_url(__FILE__));
34
+
35
+ // Autoloader
36
+ require_once MY_PLUGIN_PATH . 'includes/class-my-plugin.php';
37
+
38
+ // Initialize plugin
39
+ function my_plugin_init() {
40
+ $plugin = new My_Plugin();
41
+ $plugin->run();
42
+ }
43
+ add_action('plugins_loaded', 'my_plugin_init');
44
+
45
+ // Activation hook
46
+ register_activation_hook(__FILE__, 'my_plugin_activate');
47
+ function my_plugin_activate() {
48
+ // Create database tables, set default options, etc.
49
+ flush_rewrite_rules();
50
+ }
51
+
52
+ // Deactivation hook
53
+ register_deactivation_hook(__FILE__, 'my_plugin_deactivate');
54
+ function my_plugin_deactivate() {
55
+ flush_rewrite_rules();
56
+ }
57
+ ```
58
+
59
+ ### Hooks and Filters
60
+
61
+ #### Actions
62
+
63
+ ```php
64
+ <?php
65
+
66
+ // Add custom action
67
+ add_action('init', 'my_custom_init_function');
68
+ function my_custom_init_function() {
69
+ // Register custom post types, taxonomies, etc.
70
+ }
71
+
72
+ // Admin menu
73
+ add_action('admin_menu', 'my_plugin_add_admin_menu');
74
+ function my_plugin_add_admin_menu() {
75
+ add_menu_page(
76
+ 'My Plugin', // Page title
77
+ 'My Plugin', // Menu title
78
+ 'manage_options', // Capability
79
+ 'my-plugin', // Menu slug
80
+ 'my_plugin_admin_page', // Callback
81
+ 'dashicons-admin-generic', // Icon
82
+ 20 // Position
83
+ );
84
+ }
85
+
86
+ // Enqueue scripts and styles
87
+ add_action('wp_enqueue_scripts', 'my_plugin_enqueue_assets');
88
+ function my_plugin_enqueue_assets() {
89
+ wp_enqueue_style(
90
+ 'my-plugin-style',
91
+ MY_PLUGIN_URL . 'assets/css/style.css',
92
+ [],
93
+ MY_PLUGIN_VERSION
94
+ );
95
+
96
+ wp_enqueue_script(
97
+ 'my-plugin-script',
98
+ MY_PLUGIN_URL . 'assets/js/script.js',
99
+ ['jquery'],
100
+ MY_PLUGIN_VERSION,
101
+ true
102
+ );
103
+
104
+ // Localize script
105
+ wp_localize_script('my-plugin-script', 'myPluginData', [
106
+ 'ajaxUrl' => admin_url('admin-ajax.php'),
107
+ 'nonce' => wp_create_nonce('my-plugin-nonce')
108
+ ]);
109
+ }
110
+
111
+ // Save post hook
112
+ add_action('save_post', 'my_plugin_save_post_meta', 10, 2);
113
+ function my_plugin_save_post_meta($post_id, $post) {
114
+ // Verify nonce
115
+ if (!isset($_POST['my_plugin_nonce']) ||
116
+ !wp_verify_nonce($_POST['my_plugin_nonce'], 'my_plugin_save')) {
117
+ return;
118
+ }
119
+
120
+ // Check autosave
121
+ if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
122
+ return;
123
+ }
124
+
125
+ // Check permissions
126
+ if (!current_user_can('edit_post', $post_id)) {
127
+ return;
128
+ }
129
+
130
+ // Save meta
131
+ if (isset($_POST['my_custom_field'])) {
132
+ update_post_meta(
133
+ $post_id,
134
+ '_my_custom_field',
135
+ sanitize_text_field($_POST['my_custom_field'])
136
+ );
137
+ }
138
+ }
139
+ ```
140
+
141
+ #### Filters
142
+
143
+ ```php
144
+ <?php
145
+
146
+ // Modify content
147
+ add_filter('the_content', 'my_plugin_modify_content');
148
+ function my_plugin_modify_content($content) {
149
+ if (is_single()) {
150
+ $custom_content = '<div class="custom-notice">Custom notice</div>';
151
+ $content = $custom_content . $content;
152
+ }
153
+ return $content;
154
+ }
155
+
156
+ // Modify query
157
+ add_filter('pre_get_posts', 'my_plugin_modify_query');
158
+ function my_plugin_modify_query($query) {
159
+ if (!is_admin() && $query->is_main_query() && $query->is_home()) {
160
+ $query->set('posts_per_page', 20);
161
+ }
162
+ return $query;
163
+ }
164
+
165
+ // Add custom body class
166
+ add_filter('body_class', 'my_plugin_body_class');
167
+ function my_plugin_body_class($classes) {
168
+ if (is_page('special-page')) {
169
+ $classes[] = 'special-page-class';
170
+ }
171
+ return $classes;
172
+ }
173
+ ```
174
+
175
+ ### Custom Post Types
176
+
177
+ ```php
178
+ <?php
179
+
180
+ add_action('init', 'my_plugin_register_post_type');
181
+ function my_plugin_register_post_type() {
182
+ register_post_type('book', [
183
+ 'labels' => [
184
+ 'name' => __('Books', 'my-plugin'),
185
+ 'singular_name' => __('Book', 'my-plugin'),
186
+ 'add_new' => __('Add New Book', 'my-plugin'),
187
+ 'add_new_item' => __('Add New Book', 'my-plugin'),
188
+ 'edit_item' => __('Edit Book', 'my-plugin'),
189
+ ],
190
+ 'public' => true,
191
+ 'has_archive' => true,
192
+ 'rewrite' => ['slug' => 'books'],
193
+ 'supports' => ['title', 'editor', 'thumbnail', 'excerpt'],
194
+ 'menu_icon' => 'dashicons-book',
195
+ 'show_in_rest' => true, // Enable Gutenberg
196
+ ]);
197
+ }
198
+ ```
199
+
200
+ ### WP_Query
201
+
202
+ ```php
203
+ <?php
204
+
205
+ // Basic query
206
+ $args = [
207
+ 'post_type' => 'post',
208
+ 'posts_per_page' => 10,
209
+ 'orderby' => 'date',
210
+ 'order' => 'DESC',
211
+ ];
212
+
213
+ $query = new WP_Query($args);
214
+
215
+ if ($query->have_posts()) {
216
+ while ($query->have_posts()) {
217
+ $query->the_post();
218
+ the_title('<h2>', '</h2>');
219
+ the_excerpt();
220
+ }
221
+ wp_reset_postdata();
222
+ } else {
223
+ echo '<p>No posts found.</p>';
224
+ }
225
+
226
+ // Advanced query with meta
227
+ $args = [
228
+ 'post_type' => 'book',
229
+ 'meta_query' => [
230
+ 'relation' => 'AND',
231
+ [
232
+ 'key' => '_price',
233
+ 'value' => 20,
234
+ 'compare' => '>=',
235
+ 'type' => 'NUMERIC'
236
+ ],
237
+ [
238
+ 'key' => '_in_stock',
239
+ 'value' => '1',
240
+ 'compare' => '='
241
+ ]
242
+ ],
243
+ 'tax_query' => [
244
+ [
245
+ 'taxonomy' => 'genre',
246
+ 'field' => 'slug',
247
+ 'terms' => 'fiction'
248
+ ]
249
+ ]
250
+ ];
251
+
252
+ $query = new WP_Query($args);
253
+ ```
254
+
255
+ ### Shortcodes
256
+
257
+ ```php
258
+ <?php
259
+
260
+ // Register shortcode
261
+ add_shortcode('my_shortcode', 'my_shortcode_handler');
262
+ function my_shortcode_handler($atts, $content = null) {
263
+ // Parse attributes
264
+ $atts = shortcode_atts([
265
+ 'title' => 'Default Title',
266
+ 'count' => 5,
267
+ 'type' => 'post'
268
+ ], $atts, 'my_shortcode');
269
+
270
+ // Sanitize
271
+ $title = sanitize_text_field($atts['title']);
272
+ $count = absint($atts['count']);
273
+ $type = sanitize_key($atts['type']);
274
+
275
+ // Build output
276
+ ob_start();
277
+ ?>
278
+ <div class="my-shortcode">
279
+ <h3><?php echo esc_html($title); ?></h3>
280
+ <?php
281
+ $query = new WP_Query([
282
+ 'post_type' => $type,
283
+ 'posts_per_page' => $count
284
+ ]);
285
+
286
+ if ($query->have_posts()) {
287
+ echo '<ul>';
288
+ while ($query->have_posts()) {
289
+ $query->the_post();
290
+ echo '<li>' . get_the_title() . '</li>';
291
+ }
292
+ echo '</ul>';
293
+ wp_reset_postdata();
294
+ }
295
+ ?>
296
+ </div>
297
+ <?php
298
+ return ob_get_clean();
299
+ }
300
+
301
+ // Usage: [my_shortcode title="Recent Posts" count="10" type="post"]
302
+ ```
303
+
304
+ ### AJAX Handling
305
+
306
+ ```php
307
+ <?php
308
+
309
+ // Register AJAX handlers
310
+ add_action('wp_ajax_my_ajax_action', 'my_ajax_handler');
311
+ add_action('wp_ajax_nopriv_my_ajax_action', 'my_ajax_handler');
312
+
313
+ function my_ajax_handler() {
314
+ // Verify nonce
315
+ check_ajax_referer('my-plugin-nonce', 'nonce');
316
+
317
+ // Get data
318
+ $data = isset($_POST['data']) ? sanitize_text_field($_POST['data']) : '';
319
+
320
+ // Process
321
+ $result = process_data($data);
322
+
323
+ // Return JSON
324
+ if ($result) {
325
+ wp_send_json_success([
326
+ 'message' => 'Success',
327
+ 'data' => $result
328
+ ]);
329
+ } else {
330
+ wp_send_json_error([
331
+ 'message' => 'Error processing data'
332
+ ]);
333
+ }
334
+ }
335
+ ```
336
+
337
+ ### Security Best Practices
338
+
339
+ #### Nonce Verification
340
+
341
+ ```php
342
+ <?php
343
+
344
+ // Create nonce
345
+ $nonce = wp_create_nonce('my-action');
346
+
347
+ // Verify nonce in form submission
348
+ if (!isset($_POST['my_nonce']) || !wp_verify_nonce($_POST['my_nonce'], 'my-action')) {
349
+ wp_die('Security check failed');
350
+ }
351
+
352
+ // Verify nonce in AJAX
353
+ check_ajax_referer('my-ajax-action', 'nonce');
354
+
355
+ // Verify nonce in URL
356
+ if (!isset($_GET['_wpnonce']) || !wp_verify_nonce($_GET['_wpnonce'], 'my-action')) {
357
+ wp_die('Security check failed');
358
+ }
359
+ ```
360
+
361
+ #### Data Sanitization
362
+
363
+ ```php
364
+ <?php
365
+
366
+ // Sanitize text
367
+ $text = sanitize_text_field($_POST['text']);
368
+
369
+ // Sanitize email
370
+ $email = sanitize_email($_POST['email']);
371
+
372
+ // Sanitize URL
373
+ $url = esc_url_raw($_POST['url']);
374
+
375
+ // Sanitize HTML
376
+ $html = wp_kses_post($_POST['content']);
377
+
378
+ // Sanitize key
379
+ $key = sanitize_key($_POST['key']);
380
+
381
+ // Sanitize file name
382
+ $filename = sanitize_file_name($_FILES['file']['name']);
383
+
384
+ // Sanitize SQL for LIKE
385
+ $search = $wpdb->esc_like($_POST['search']);
386
+ ```
387
+
388
+ #### Output Escaping
389
+
390
+ ```php
391
+ <?php
392
+
393
+ // Escape HTML
394
+ echo esc_html($text);
395
+
396
+ // Escape attributes
397
+ echo '<input type="text" value="' . esc_attr($value) . '">';
398
+
399
+ // Escape URL
400
+ echo '<a href="' . esc_url($url) . '">Link</a>';
401
+
402
+ // Escape JavaScript
403
+ echo '<script>var data = "' . esc_js($data) . '";</script>';
404
+
405
+ // Escape textarea
406
+ echo '<textarea>' . esc_textarea($content) . '</textarea>';
407
+ ```
408
+
409
+ #### Capability Checks
410
+
411
+ ```php
412
+ <?php
413
+
414
+ // Check if user can edit posts
415
+ if (!current_user_can('edit_posts')) {
416
+ wp_die('You do not have permission');
417
+ }
418
+
419
+ // Check if user can manage options
420
+ if (!current_user_can('manage_options')) {
421
+ return;
422
+ }
423
+
424
+ // Check if user can edit specific post
425
+ if (!current_user_can('edit_post', $post_id)) {
426
+ wp_die('You cannot edit this post');
427
+ }
428
+ ```
429
+
430
+ ## Drupal Development
431
+
432
+ ### Module Structure
433
+
434
+ ```php
435
+ <?php
436
+
437
+ // my_module.info.yml
438
+ name: My Module
439
+ type: module
440
+ description: 'A custom Drupal module'
441
+ core_version_requirement: ^9 || ^10
442
+ package: Custom
443
+ dependencies:
444
+ - drupal:node
445
+ - drupal:user
446
+ ```
447
+
448
+ ### Hooks
449
+
450
+ ```php
451
+ <?php
452
+
453
+ /**
454
+ * Implements hook_help().
455
+ */
456
+ function my_module_help($route_name, RouteMatchInterface $route_match) {
457
+ switch ($route_name) {
458
+ case 'help.page.my_module':
459
+ return '<p>' . t('Help text for my module.') . '</p>';
460
+ }
461
+ }
462
+
463
+ /**
464
+ * Implements hook_node_presave().
465
+ */
466
+ function my_module_node_presave(NodeInterface $node) {
467
+ if ($node->getType() == 'article') {
468
+ // Modify node before saving
469
+ $node->setTitle('Modified: ' . $node->getTitle());
470
+ }
471
+ }
472
+
473
+ /**
474
+ * Implements hook_form_alter().
475
+ */
476
+ function my_module_form_alter(&$form, FormStateInterface $form_state, $form_id) {
477
+ if ($form_id == 'node_article_form') {
478
+ $form['title']['#description'] = t('Custom description');
479
+ }
480
+ }
481
+ ```
482
+
483
+ ### Services
484
+
485
+ ```php
486
+ <?php
487
+
488
+ namespace Drupal\my_module\Service;
489
+
490
+ use Drupal\Core\Database\Connection;
491
+ use Drupal\Core\Logger\LoggerChannelFactoryInterface;
492
+
493
+ class MyService {
494
+
495
+ protected $database;
496
+ protected $logger;
497
+
498
+ public function __construct(
499
+ Connection $database,
500
+ LoggerChannelFactoryInterface $logger_factory
501
+ ) {
502
+ $this->database = $database;
503
+ $this->logger = $logger_factory->get('my_module');
504
+ }
505
+
506
+ public function processData($data) {
507
+ try {
508
+ // Process data
509
+ $this->logger->info('Data processed successfully');
510
+ return true;
511
+ } catch (\Exception $e) {
512
+ $this->logger->error('Error: @message', ['@message' => $e->getMessage()]);
513
+ return false;
514
+ }
515
+ }
516
+ }
517
+ ```
518
+
519
+ ## Best Practices
520
+
521
+ ### ✅ DO
522
+
523
+ - Use WordPress/Drupal coding standards
524
+ - Verify nonces for all form submissions
525
+ - Sanitize all input data
526
+ - Escape all output data
527
+ - Check user capabilities before operations
528
+ - Use translation functions for all strings
529
+ - Prefix all function/class names
530
+ - Use hooks and filters instead of modifying core
531
+ - Follow semantic versioning
532
+ - Document code with PHPDoc
533
+ - Use prepared statements for database queries
534
+ - Implement proper error handling
535
+
536
+ ### ❌ DON'T
537
+
538
+ - Modify core files
539
+ - Use global variables unnecessarily
540
+ - Trust user input
541
+ - Output unescaped data
542
+ - Hardcode database table names
543
+ - Use deprecated functions
544
+ - Ignore coding standards
545
+ - Skip nonce verification
546
+ - Use direct database queries without sanitization
547
+ - Suppress errors in production
548
+
549
+ ## Security Checklist
550
+
551
+ - [ ] Nonce verification on all forms
552
+ - [ ] Input sanitization
553
+ - [ ] Output escaping
554
+ - [ ] Capability checks
555
+ - [ ] SQL injection prevention (prepared statements)
556
+ - [ ] XSS prevention
557
+ - [ ] CSRF protection
558
+ - [ ] File upload validation
559
+ - [ ] Secure AJAX handlers
560
+ - [ ] Proper error handling (no sensitive data exposure)
561
+