@planu/cli 0.96.4 → 0.97.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 (238) hide show
  1. package/dist/cli/commands/install.d.ts.map +1 -1
  2. package/dist/cli/commands/install.js +70 -2
  3. package/dist/cli/commands/install.js.map +1 -1
  4. package/dist/config/compliance-profiles.json +62 -0
  5. package/dist/config/license-plans.json +19 -2
  6. package/dist/config/spec-templates/crud-rest-api/spec.md +35 -0
  7. package/dist/config/spec-templates/crud-rest-api/template.json +10 -0
  8. package/dist/config/spec-templates/email-notifications/spec.md +31 -0
  9. package/dist/config/spec-templates/email-notifications/template.json +10 -0
  10. package/dist/config/spec-templates/file-upload-s3/spec.md +31 -0
  11. package/dist/config/spec-templates/file-upload-s3/template.json +11 -0
  12. package/dist/config/spec-templates/jwt-auth/spec.md +35 -0
  13. package/dist/config/spec-templates/jwt-auth/template.json +10 -0
  14. package/dist/config/spec-templates/oauth-social-login/spec.md +31 -0
  15. package/dist/config/spec-templates/oauth-social-login/template.json +10 -0
  16. package/dist/config/spec-templates/rate-limiting/spec.md +31 -0
  17. package/dist/config/spec-templates/rate-limiting/template.json +10 -0
  18. package/dist/config/spec-templates/stripe-payments/spec.md +32 -0
  19. package/dist/config/spec-templates/stripe-payments/template.json +10 -0
  20. package/dist/config/spec-templates/webhook-system/spec.md +36 -0
  21. package/dist/config/spec-templates/webhook-system/template.json +10 -0
  22. package/dist/engine/agent-ready-exporter/formatters/devin.d.ts +7 -0
  23. package/dist/engine/agent-ready-exporter/formatters/devin.d.ts.map +1 -0
  24. package/dist/engine/agent-ready-exporter/formatters/devin.js +23 -0
  25. package/dist/engine/agent-ready-exporter/formatters/devin.js.map +1 -0
  26. package/dist/engine/agent-ready-exporter/formatters/generic.d.ts +7 -0
  27. package/dist/engine/agent-ready-exporter/formatters/generic.d.ts.map +1 -0
  28. package/dist/engine/agent-ready-exporter/formatters/generic.js +9 -0
  29. package/dist/engine/agent-ready-exporter/formatters/generic.js.map +1 -0
  30. package/dist/engine/agent-ready-exporter/formatters/kiro.d.ts +6 -0
  31. package/dist/engine/agent-ready-exporter/formatters/kiro.d.ts.map +1 -0
  32. package/dist/engine/agent-ready-exporter/formatters/kiro.js +34 -0
  33. package/dist/engine/agent-ready-exporter/formatters/kiro.js.map +1 -0
  34. package/dist/engine/agent-ready-exporter/formatters/swe-agent.d.ts +6 -0
  35. package/dist/engine/agent-ready-exporter/formatters/swe-agent.d.ts.map +1 -0
  36. package/dist/engine/agent-ready-exporter/formatters/swe-agent.js +40 -0
  37. package/dist/engine/agent-ready-exporter/formatters/swe-agent.js.map +1 -0
  38. package/dist/engine/agent-ready-exporter.d.ts +11 -0
  39. package/dist/engine/agent-ready-exporter.d.ts.map +1 -0
  40. package/dist/engine/agent-ready-exporter.js +86 -0
  41. package/dist/engine/agent-ready-exporter.js.map +1 -0
  42. package/dist/engine/compliance-checker.d.ts +19 -0
  43. package/dist/engine/compliance-checker.d.ts.map +1 -0
  44. package/dist/engine/compliance-checker.js +145 -0
  45. package/dist/engine/compliance-checker.js.map +1 -0
  46. package/dist/engine/generate-tests/generators/property-based-generator.d.ts +12 -0
  47. package/dist/engine/generate-tests/generators/property-based-generator.d.ts.map +1 -0
  48. package/dist/engine/generate-tests/generators/property-based-generator.js +159 -0
  49. package/dist/engine/generate-tests/generators/property-based-generator.js.map +1 -0
  50. package/dist/engine/jira-exporter.d.ts +39 -0
  51. package/dist/engine/jira-exporter.d.ts.map +1 -0
  52. package/dist/engine/jira-exporter.js +190 -0
  53. package/dist/engine/jira-exporter.js.map +1 -0
  54. package/dist/engine/linear-exporter.d.ts +32 -0
  55. package/dist/engine/linear-exporter.d.ts.map +1 -0
  56. package/dist/engine/linear-exporter.js +184 -0
  57. package/dist/engine/linear-exporter.js.map +1 -0
  58. package/dist/engine/planu-config-writer.d.ts +13 -2
  59. package/dist/engine/planu-config-writer.d.ts.map +1 -1
  60. package/dist/engine/planu-config-writer.js +32 -1
  61. package/dist/engine/planu-config-writer.js.map +1 -1
  62. package/dist/engine/property-test-generator.d.ts +14 -0
  63. package/dist/engine/property-test-generator.d.ts.map +1 -0
  64. package/dist/engine/property-test-generator.js +223 -0
  65. package/dist/engine/property-test-generator.js.map +1 -0
  66. package/dist/engine/skill-evaluator.d.ts +21 -0
  67. package/dist/engine/skill-evaluator.d.ts.map +1 -0
  68. package/dist/engine/skill-evaluator.js +126 -0
  69. package/dist/engine/skill-evaluator.js.map +1 -0
  70. package/dist/engine/spec-quality-scorer.d.ts +4 -0
  71. package/dist/engine/spec-quality-scorer.d.ts.map +1 -0
  72. package/dist/engine/spec-quality-scorer.js +334 -0
  73. package/dist/engine/spec-quality-scorer.js.map +1 -0
  74. package/dist/engine/spec-template-engine.d.ts +26 -0
  75. package/dist/engine/spec-template-engine.d.ts.map +1 -0
  76. package/dist/engine/spec-template-engine.js +127 -0
  77. package/dist/engine/spec-template-engine.js.map +1 -0
  78. package/dist/index.js +10 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/storage/compliance-store.d.ts +11 -0
  81. package/dist/storage/compliance-store.d.ts.map +1 -0
  82. package/dist/storage/compliance-store.js +30 -0
  83. package/dist/storage/compliance-store.js.map +1 -0
  84. package/dist/storage/jira-store.d.ts +30 -0
  85. package/dist/storage/jira-store.d.ts.map +1 -0
  86. package/dist/storage/jira-store.js +84 -0
  87. package/dist/storage/jira-store.js.map +1 -0
  88. package/dist/storage/linear-store.d.ts +30 -0
  89. package/dist/storage/linear-store.d.ts.map +1 -0
  90. package/dist/storage/linear-store.js +84 -0
  91. package/dist/storage/linear-store.js.map +1 -0
  92. package/dist/tools/check-readiness.d.ts.map +1 -1
  93. package/dist/tools/check-readiness.js +8 -2
  94. package/dist/tools/check-readiness.js.map +1 -1
  95. package/dist/tools/compliance-handler.d.ts +6 -0
  96. package/dist/tools/compliance-handler.d.ts.map +1 -0
  97. package/dist/tools/compliance-handler.js +99 -0
  98. package/dist/tools/compliance-handler.js.map +1 -0
  99. package/dist/tools/eval-skill-handler.d.ts +4 -0
  100. package/dist/tools/eval-skill-handler.d.ts.map +1 -0
  101. package/dist/tools/eval-skill-handler.js +26 -0
  102. package/dist/tools/eval-skill-handler.js.map +1 -0
  103. package/dist/tools/export-spec.d.ts.map +1 -1
  104. package/dist/tools/export-spec.js +42 -1
  105. package/dist/tools/export-spec.js.map +1 -1
  106. package/dist/tools/generate-tests/generators/property-based-generator.d.ts +11 -0
  107. package/dist/tools/generate-tests/generators/property-based-generator.d.ts.map +1 -0
  108. package/dist/tools/generate-tests/generators/property-based-generator.js +27 -0
  109. package/dist/tools/generate-tests/generators/property-based-generator.js.map +1 -0
  110. package/dist/tools/generate-tests/spec-dispatcher.d.ts +5 -0
  111. package/dist/tools/generate-tests/spec-dispatcher.d.ts.map +1 -1
  112. package/dist/tools/generate-tests/spec-dispatcher.js +18 -1
  113. package/dist/tools/generate-tests/spec-dispatcher.js.map +1 -1
  114. package/dist/tools/init-project/config-builder.d.ts +3 -2
  115. package/dist/tools/init-project/config-builder.d.ts.map +1 -1
  116. package/dist/tools/init-project/config-builder.js +9 -4
  117. package/dist/tools/init-project/config-builder.js.map +1 -1
  118. package/dist/tools/init-project/handler.d.ts.map +1 -1
  119. package/dist/tools/init-project/handler.js +3 -2
  120. package/dist/tools/init-project/handler.js.map +1 -1
  121. package/dist/tools/jira-sync-handler.d.ts +6 -0
  122. package/dist/tools/jira-sync-handler.d.ts.map +1 -0
  123. package/dist/tools/jira-sync-handler.js +220 -0
  124. package/dist/tools/jira-sync-handler.js.map +1 -0
  125. package/dist/tools/linear-sync-handler.d.ts +6 -0
  126. package/dist/tools/linear-sync-handler.d.ts.map +1 -0
  127. package/dist/tools/linear-sync-handler.js +212 -0
  128. package/dist/tools/linear-sync-handler.js.map +1 -0
  129. package/dist/tools/register-export-tools.d.ts.map +1 -1
  130. package/dist/tools/register-export-tools.js +10 -3
  131. package/dist/tools/register-export-tools.js.map +1 -1
  132. package/dist/tools/register-spec-314.d.ts +3 -0
  133. package/dist/tools/register-spec-314.d.ts.map +1 -0
  134. package/dist/tools/register-spec-314.js +38 -0
  135. package/dist/tools/register-spec-314.js.map +1 -0
  136. package/dist/tools/register-spec-316.d.ts +3 -0
  137. package/dist/tools/register-spec-316.d.ts.map +1 -0
  138. package/dist/tools/register-spec-316.js +71 -0
  139. package/dist/tools/register-spec-316.js.map +1 -0
  140. package/dist/tools/register-spec-317.d.ts +3 -0
  141. package/dist/tools/register-spec-317.d.ts.map +1 -0
  142. package/dist/tools/register-spec-317.js +158 -0
  143. package/dist/tools/register-spec-317.js.map +1 -0
  144. package/dist/tools/register-spec-319.d.ts +3 -0
  145. package/dist/tools/register-spec-319.d.ts.map +1 -0
  146. package/dist/tools/register-spec-319.js +59 -0
  147. package/dist/tools/register-spec-319.js.map +1 -0
  148. package/dist/tools/register-spec-320.d.ts +3 -0
  149. package/dist/tools/register-spec-320.d.ts.map +1 -0
  150. package/dist/tools/register-spec-320.js +60 -0
  151. package/dist/tools/register-spec-320.js.map +1 -0
  152. package/dist/tools/register-spec-tools/core-spec-tools.d.ts.map +1 -1
  153. package/dist/tools/register-spec-tools/core-spec-tools.js +15 -1
  154. package/dist/tools/register-spec-tools/core-spec-tools.js.map +1 -1
  155. package/dist/tools/schemas/index.d.ts +1 -1
  156. package/dist/tools/schemas/index.d.ts.map +1 -1
  157. package/dist/tools/schemas/index.js +1 -1
  158. package/dist/tools/schemas/index.js.map +1 -1
  159. package/dist/tools/schemas/spec.d.ts +6 -0
  160. package/dist/tools/schemas/spec.d.ts.map +1 -1
  161. package/dist/tools/schemas/spec.js +4 -0
  162. package/dist/tools/schemas/spec.js.map +1 -1
  163. package/dist/tools/set-work-mode-handler.d.ts +7 -0
  164. package/dist/tools/set-work-mode-handler.d.ts.map +1 -0
  165. package/dist/tools/set-work-mode-handler.js +30 -0
  166. package/dist/tools/set-work-mode-handler.js.map +1 -0
  167. package/dist/tools/spec-marketplace-handler.d.ts +6 -0
  168. package/dist/tools/spec-marketplace-handler.d.ts.map +1 -0
  169. package/dist/tools/spec-marketplace-handler.js +113 -0
  170. package/dist/tools/spec-marketplace-handler.js.map +1 -0
  171. package/dist/tools/spec-quality-score-handler.d.ts +7 -0
  172. package/dist/tools/spec-quality-score-handler.d.ts.map +1 -0
  173. package/dist/tools/spec-quality-score-handler.js +106 -0
  174. package/dist/tools/spec-quality-score-handler.js.map +1 -0
  175. package/dist/tools/status-handler.d.ts.map +1 -1
  176. package/dist/tools/status-handler.js +12 -3
  177. package/dist/tools/status-handler.js.map +1 -1
  178. package/dist/types/agent-ready.d.ts +58 -0
  179. package/dist/types/agent-ready.d.ts.map +1 -0
  180. package/dist/types/agent-ready.js +3 -0
  181. package/dist/types/agent-ready.js.map +1 -0
  182. package/dist/types/common/primitives.d.ts +2 -0
  183. package/dist/types/common/primitives.d.ts.map +1 -1
  184. package/dist/types/compliance.d.ts +44 -0
  185. package/dist/types/compliance.d.ts.map +1 -0
  186. package/dist/types/compliance.js +3 -0
  187. package/dist/types/compliance.js.map +1 -0
  188. package/dist/types/export.d.ts +5 -1
  189. package/dist/types/export.d.ts.map +1 -1
  190. package/dist/types/export.js +1 -1
  191. package/dist/types/export.js.map +1 -1
  192. package/dist/types/index.d.ts +7 -0
  193. package/dist/types/index.d.ts.map +1 -1
  194. package/dist/types/index.js +7 -0
  195. package/dist/types/index.js.map +1 -1
  196. package/dist/types/jira-linear.d.ts +216 -0
  197. package/dist/types/jira-linear.d.ts.map +1 -0
  198. package/dist/types/jira-linear.js +3 -0
  199. package/dist/types/jira-linear.js.map +1 -0
  200. package/dist/types/project/inputs.d.ts +3 -1
  201. package/dist/types/project/inputs.d.ts.map +1 -1
  202. package/dist/types/project/planu-config.d.ts +2 -0
  203. package/dist/types/project/planu-config.d.ts.map +1 -1
  204. package/dist/types/property-testing.d.ts +50 -0
  205. package/dist/types/property-testing.d.ts.map +1 -0
  206. package/dist/types/property-testing.js +3 -0
  207. package/dist/types/property-testing.js.map +1 -0
  208. package/dist/types/skill-eval.d.ts +41 -0
  209. package/dist/types/skill-eval.d.ts.map +1 -0
  210. package/dist/types/skill-eval.js +3 -0
  211. package/dist/types/skill-eval.js.map +1 -0
  212. package/dist/types/spec-marketplace.d.ts +31 -0
  213. package/dist/types/spec-marketplace.d.ts.map +1 -0
  214. package/dist/types/spec-marketplace.js +3 -0
  215. package/dist/types/spec-marketplace.js.map +1 -0
  216. package/dist/types/spec-quality.d.ts +36 -0
  217. package/dist/types/spec-quality.d.ts.map +1 -0
  218. package/dist/types/spec-quality.js +3 -0
  219. package/dist/types/spec-quality.js.map +1 -0
  220. package/package.json +7 -2
  221. package/src/config/compliance-profiles.json +62 -0
  222. package/src/config/license-plans.json +19 -2
  223. package/src/config/spec-templates/crud-rest-api/spec.md +35 -0
  224. package/src/config/spec-templates/crud-rest-api/template.json +10 -0
  225. package/src/config/spec-templates/email-notifications/spec.md +31 -0
  226. package/src/config/spec-templates/email-notifications/template.json +10 -0
  227. package/src/config/spec-templates/file-upload-s3/spec.md +31 -0
  228. package/src/config/spec-templates/file-upload-s3/template.json +11 -0
  229. package/src/config/spec-templates/jwt-auth/spec.md +35 -0
  230. package/src/config/spec-templates/jwt-auth/template.json +10 -0
  231. package/src/config/spec-templates/oauth-social-login/spec.md +31 -0
  232. package/src/config/spec-templates/oauth-social-login/template.json +10 -0
  233. package/src/config/spec-templates/rate-limiting/spec.md +31 -0
  234. package/src/config/spec-templates/rate-limiting/template.json +10 -0
  235. package/src/config/spec-templates/stripe-payments/spec.md +32 -0
  236. package/src/config/spec-templates/stripe-payments/template.json +10 -0
  237. package/src/config/spec-templates/webhook-system/spec.md +36 -0
  238. package/src/config/spec-templates/webhook-system/template.json +10 -0
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAC;AASlE,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACvC;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,UAAU,SAAS;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACpD;AAED,KAAK,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEhD,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;CAC5B;AA0DD,iBAAS,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAYpD;AAED,iBAAS,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CASlD;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAOpF;AASD,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAWnE;AAED,iBAAS,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAiB9D;AA4BD,iBAAS,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAc7E;AAMD;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAgD7E;AAGD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,WAAW,GACZ,CAAC;AA+FF,eAAO,MAAM,cAAc,EAAE,UA+E5B,CAAC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAC;AAUlE,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACvC;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,UAAU,SAAS;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACpD;AAED,KAAK,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEhD,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;CAC5B;AA0ED,iBAAS,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAYpD;AAED,iBAAS,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CASlD;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAOpF;AASD,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAWnE;AAED,iBAAS,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAiB9D;AA4BD,iBAAS,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAc7E;AAMD;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAgD7E;AAGD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,WAAW,GACZ,CAAC;AAoJF,eAAO,MAAM,cAAc,EAAE,UA2F5B,CAAC"}
@@ -3,12 +3,25 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
3
3
  import { homedir } from 'node:os';
4
4
  import { dirname, join } from 'node:path';
5
5
  import { bold, cyan, green, yellow, dim } from '../colors.js';
6
+ import { PLANU_VERSION } from '../../config/version.js';
6
7
  import { confirm, select, ask } from '../interactive.js';
7
8
  import { activateLicense } from '../../engine/license-validator.js';
8
9
  // ---------------------------------------------------------------------------
9
10
  // Constants
10
11
  // ---------------------------------------------------------------------------
11
12
  const PLANU_KEY = 'planu';
13
+ // ---------------------------------------------------------------------------
14
+ // Locale helpers
15
+ // ---------------------------------------------------------------------------
16
+ const CLAUDE_CODE_LOCALES = new Set(['en', 'es', 'pt', 'fr', 'de', 'ja', 'ko', 'zh']);
17
+ function detectLocale() {
18
+ const raw = process.env.LANG ?? process.env.LC_ALL ?? process.env.LC_MESSAGES ?? '';
19
+ const code = raw.split(/[_.-]/)[0]?.toLowerCase() ?? 'en';
20
+ return CLAUDE_CODE_LOCALES.has(code) ? code : 'en';
21
+ }
22
+ function claudeCodeDocsUrl() {
23
+ return `https://code.claude.com/docs/${detectLocale()}/overview`;
24
+ }
12
25
  const TOOLS = [
13
26
  {
14
27
  name: 'Claude Code',
@@ -209,6 +222,49 @@ export async function promptLicense() {
209
222
  // Exported so tests can use them without going through the interactive CLI
210
223
  export { buildMcpEntry, readJsonFile, hasPlanuEntry, writeStandardEntry, writeZedEntry, removeEntry, };
211
224
  // ---------------------------------------------------------------------------
225
+ // Banner
226
+ // ---------------------------------------------------------------------------
227
+ function printBanner() {
228
+ const teal = (s) => `\x1b[38;5;43m${s}\x1b[0m`;
229
+ const art = [
230
+ ' ██████╗ ██╗ █████╗ ███╗ ██╗██╗ ██╗',
231
+ ' ██╔══██╗██║ ██╔══██╗████╗ ██║██║ ██║',
232
+ ' ██████╔╝██║ ███████║██╔██╗ ██║██║ ██║',
233
+ ' ██╔═══╝ ██║ ██╔══██║██║╚██╗██║██║ ██║',
234
+ ' ██║ ███████╗██║ ██║██║ ╚████║╚██████╔╝',
235
+ ' ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝',
236
+ ];
237
+ process.stdout.write('\n');
238
+ for (const line of art) {
239
+ process.stdout.write(`${teal(line)}\n`);
240
+ }
241
+ process.stdout.write(`\n ${dim(`Spec Driven Development MCP Server · v${PLANU_VERSION}`)}\n`);
242
+ process.stdout.write(`\n ${bold('🔒 Privacy guarantee')}\n`);
243
+ process.stdout.write(` ${dim('·')} Everything runs ${bold('locally')} — no cloud, no servers\n`);
244
+ process.stdout.write(` ${dim('·')} Zero telemetry. Nothing is ever transmitted.\n`);
245
+ process.stdout.write(` ${dim('·')} No API key required. Your specs stay on your machine.\n`);
246
+ process.stdout.write('\n');
247
+ }
248
+ // ---------------------------------------------------------------------------
249
+ // Welcome message (shown after successful installation)
250
+ // ---------------------------------------------------------------------------
251
+ function printWelcome() {
252
+ const docsUrl = claudeCodeDocsUrl();
253
+ process.stdout.write(`${bold("🚀 You're all set — welcome to Planu!")}\n\n`);
254
+ process.stdout.write(` ${dim('How to get started:')}\n\n`);
255
+ process.stdout.write(` ${bold('1.')} Open your AI tool and describe what you want to build\n` +
256
+ ` ${dim('→')} Planu will create a spec automatically\n\n` +
257
+ ` ${bold('2.')} Review, refine, approve the spec\n` +
258
+ ` ${dim('→')} Then let your AI implement it, validated against the spec\n\n` +
259
+ ` ${bold('3.')} Iterate with confidence\n` +
260
+ ` ${dim('→')} Full audit trail, no hallucinated features, zero tech debt\n\n`);
261
+ process.stdout.write(` ${dim('Docs:')} ${cyan(docsUrl)}\n`);
262
+ process.stdout.write(` ${dim('Website:')} ${cyan('https://planu.dev')}\n\n`);
263
+ process.stdout.write(` ${dim('🔒')} ${dim('Your code never leaves your machine.')} ` +
264
+ `${dim('Planu runs 100% locally — no cloud, no telemetry.')}\n\n`);
265
+ process.stdout.write(` ${dim('Happy building! ✨')}\n\n`);
266
+ }
267
+ // ---------------------------------------------------------------------------
212
268
  // Command implementation helpers (split to reduce run() complexity)
213
269
  // ---------------------------------------------------------------------------
214
270
  function printDetectionResults(detected, notFound) {
@@ -296,7 +352,7 @@ export const installCommand = {
296
352
  installAll = true;
297
353
  }
298
354
  }
299
- process.stdout.write(`\n${bold('Planu MCP Installer')}\n\n`);
355
+ printBanner();
300
356
  // Detect installed tools (user-scope paths)
301
357
  const detected = [];
302
358
  const notFound = [];
@@ -311,7 +367,18 @@ export const installCommand = {
311
367
  printDetectionResults(detected, notFound);
312
368
  process.stdout.write('\n');
313
369
  if (detected.length === 0) {
314
- process.stdout.write(`${yellow('No AI tools detected.')} Install Claude Code, Cursor, Windsurf, or another supported tool first.\n\n`);
370
+ const docsUrl = claudeCodeDocsUrl();
371
+ process.stdout.write(`${yellow('⚠ No AI tools detected on this machine.')}\n\n` +
372
+ ` Planu works with Claude Code, Cursor, Windsurf, OpenCode, Zed and more.\n` +
373
+ ` Install at least one to get started:\n\n` +
374
+ ` ${bold('★ Claude Code')} ${dim('(recommended)')}\n` +
375
+ ` ${dim('→')} https://claude.ai/download\n` +
376
+ ` ${dim('→ npx @anthropic-ai/claude-code@latest')}\n` +
377
+ ` ${dim('→ Docs:')} ${cyan(docsUrl)}\n\n` +
378
+ ` ${bold('Cursor')} https://cursor.com\n` +
379
+ ` ${bold('Windsurf')} https://windsurf.com\n` +
380
+ ` ${bold('OpenCode')} https://opencode.ai\n\n` +
381
+ ` Once installed, run ${cyan('npx @planu/cli install')} again.\n\n`);
315
382
  return;
316
383
  }
317
384
  const scope = await resolveScope(scopeArg);
@@ -342,6 +409,7 @@ export const installCommand = {
342
409
  process.stdout.write(`\n${bold('Done.')} Installed in ${String(installed)} tool(s).\n`);
343
410
  if (installed > 0) {
344
411
  process.stdout.write(`${dim('Restart your AI tool to pick up the new MCP server.')}\n\n`);
412
+ printWelcome();
345
413
  }
346
414
  },
347
415
  };
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ {
2
+ "gdpr": {
3
+ "keywords": ["user", "personal", "data", "store", "email", "profile", "privacy", "consent", "gdpr"],
4
+ "criteria": [
5
+ "Users can request deletion of their personal data (right to erasure)",
6
+ "Data collection requires explicit user consent with opt-in mechanism",
7
+ "Personal data is encrypted at rest and in transit",
8
+ "Data retention policy is defined and enforced (max retention period)",
9
+ "Audit log records all access to personal data",
10
+ "Users can export their personal data in a portable format (right to data portability)",
11
+ "Privacy policy is clearly communicated to users before data collection"
12
+ ]
13
+ },
14
+ "hipaa": {
15
+ "keywords": ["health", "medical", "patient", "phi", "ehr", "clinical", "diagnosis", "treatment", "hipaa", "healthcare"],
16
+ "criteria": [
17
+ "Protected Health Information (PHI) is encrypted at rest using AES-256 or equivalent",
18
+ "PHI transmission is secured with TLS 1.2+ encryption",
19
+ "Access to PHI is role-based and requires authentication",
20
+ "All PHI access events are logged in a tamper-evident audit trail",
21
+ "Business Associate Agreements (BAA) are in place for all third-party PHI processors",
22
+ "PHI breach notification procedure is defined and documented",
23
+ "Minimum necessary access principle is enforced for PHI queries"
24
+ ]
25
+ },
26
+ "pci-dss": {
27
+ "keywords": ["payment", "card", "credit", "debit", "checkout", "billing", "stripe", "transaction", "pci", "cvv", "pan"],
28
+ "criteria": [
29
+ "Cardholder data (PAN, CVV) is never stored in plaintext",
30
+ "Payment card data is masked in logs and UI displays",
31
+ "Network segmentation isolates cardholder data environment",
32
+ "All cardholder data access is logged with user identity and timestamp",
33
+ "Strong cryptography (TLS 1.2+) protects cardholder data in transit",
34
+ "Anti-malware and intrusion detection are deployed in the cardholder data environment",
35
+ "Default vendor passwords and security parameters are changed before deployment"
36
+ ]
37
+ },
38
+ "soc2": {
39
+ "keywords": ["security", "availability", "confidentiality", "integrity", "audit", "compliance", "soc2", "soc 2", "trust"],
40
+ "criteria": [
41
+ "Access control policy is documented and enforced with least-privilege principle",
42
+ "System availability is monitored with defined SLA targets and incident response",
43
+ "Data confidentiality classification is defined (public, internal, confidential, restricted)",
44
+ "Change management process ensures all changes are reviewed and tested before deployment",
45
+ "Incident response plan is documented, tested, and updated annually",
46
+ "Penetration testing is performed at least annually by a qualified third party",
47
+ "Security awareness training is provided to all personnel with system access"
48
+ ]
49
+ },
50
+ "ccpa": {
51
+ "keywords": ["california", "consumer", "ccpa", "opt-out", "sale", "personal information", "resident"],
52
+ "criteria": [
53
+ "Consumers can opt-out of the sale of their personal information",
54
+ "Privacy notice discloses categories of personal information collected and purposes",
55
+ "Consumers can request access to their personal information collected in the last 12 months",
56
+ "Consumers can request deletion of their personal information",
57
+ "Non-discrimination policy ensures consumers are not penalized for exercising CCPA rights",
58
+ "Requests from consumers are fulfilled within 45 days",
59
+ "Authorized agent mechanism allows consumers to submit requests on behalf of others"
60
+ ]
61
+ }
62
+ }
@@ -20,6 +20,7 @@
20
20
  "freeTools": [
21
21
  "set_locale",
22
22
  "init_project",
23
+ "set_work_mode",
23
24
  "init_constitution",
24
25
  "clarify_requirements",
25
26
  "create_spec",
@@ -256,7 +257,23 @@
256
257
  "search_all_projects",
257
258
  "validate_browser",
258
259
  "sync_google_workspace",
259
- "generate_diagram"
260
+ "generate_diagram",
261
+ "spec_quality_score",
262
+ "eval_skill",
263
+ "eval_rule",
264
+ "configure_jira",
265
+ "sync_to_jira",
266
+ "jira_status",
267
+ "remove_jira",
268
+ "configure_linear",
269
+ "sync_to_linear",
270
+ "linear_status",
271
+ "remove_linear",
272
+ "check_compliance",
273
+ "configure_compliance",
274
+ "apply_spec_template",
275
+ "publish_spec_template",
276
+ "search_spec_templates"
260
277
  ],
261
278
  "alwaysAllowed": [
262
279
  "activate_license",
@@ -275,4 +292,4 @@
275
292
  "Planu Team": "team"
276
293
  },
277
294
  "upgradeUrl": "https://planu.dev/pricing"
278
- }
295
+ }
@@ -0,0 +1,35 @@
1
+ # CRUD REST API — {{entity}}
2
+
3
+ ## Overview
4
+ Full CRUD REST API for the {{entity}} resource at {{base_path}}, with {{id_type}} identifiers, input validation, pagination, and consistent error responses.
5
+
6
+ ## Acceptance Criteria
7
+
8
+ ### AC-1: Create
9
+ - `POST {{base_path}}` accepts a JSON body and creates a new {{entity}}
10
+ - Validates all required fields and returns 422 with field-level errors on failure
11
+ - Returns 201 with the created resource including its generated {{id_type}} ID
12
+
13
+ ### AC-2: Read
14
+ - `GET {{base_path}}/:id` returns a single {{entity}} by {{id_type}} ID
15
+ - `GET {{base_path}}` returns a paginated list with `page`, `limit`, and `total` fields
16
+ - Returns 404 when the resource does not exist
17
+
18
+ ### AC-3: Update
19
+ - `PUT {{base_path}}/:id` fully replaces the {{entity}} resource
20
+ - `PATCH {{base_path}}/:id` partially updates only provided fields
21
+ - Returns 200 with the updated resource
22
+
23
+ ### AC-4: Delete
24
+ - `DELETE {{base_path}}/:id` soft-deletes the {{entity}} (sets `deletedAt` timestamp)
25
+ - Returns 204 on success, 404 if not found
26
+
27
+ ### AC-5: Filtering and Sorting
28
+ - Support query parameters `filter[field]=value` for equality filters
29
+ - Support `sort=field` and `order=asc|desc` query parameters
30
+ - Ignore unknown filter parameters without error
31
+
32
+ ## Technical Notes
33
+ - All timestamps in ISO 8601 format
34
+ - IDs are {{id_type}} type — validate format before database lookup
35
+ - Paginate using cursor-based pagination for large datasets
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "crud-rest-api",
3
+ "description": "Full CRUD REST API for a domain entity with validation, pagination, and error handling",
4
+ "variables": [
5
+ { "name": "entity", "description": "Name of the domain entity (e.g. Product, User, Order)", "default": "Entity" },
6
+ { "name": "base_path", "description": "Base URL path for the resource (e.g. /api/products)", "default": "/api/entities" },
7
+ { "name": "id_type", "description": "Type of the entity ID field (uuid, number)", "default": "uuid" }
8
+ ],
9
+ "tags": ["crud", "rest-api", "backend", "database"]
10
+ }
@@ -0,0 +1,31 @@
1
+ # Email Notifications — {{provider}}
2
+
3
+ ## Overview
4
+ Transactional email system using {{provider}} sent from `{{from_address}}`, with template rendering, {{queue_enabled}} async queuing, and delivery tracking.
5
+
6
+ ## Acceptance Criteria
7
+
8
+ ### AC-1: Template Rendering
9
+ - Define email templates with subject and HTML/text body variants
10
+ - Interpolate dynamic variables (e.g. `{{user_name}}`, `{{action_url}}`) at send time
11
+ - Validate all required variables are provided before queuing
12
+
13
+ ### AC-2: Sending via {{provider}}
14
+ - Send emails via {{provider}} API using environment-configured credentials
15
+ - Set `From: {{from_address}}` on all outgoing emails
16
+ - Handle API errors with retry logic (3 attempts, exponential backoff)
17
+
18
+ ### AC-3: Async Queue
19
+ - When `queue_enabled` is {{queue_enabled}}, enqueue emails instead of sending synchronously
20
+ - Worker processes the queue and marks emails as `sent` or `failed`
21
+ - Retry failed sends up to 3 times before marking as permanently failed
22
+
23
+ ### AC-4: Delivery Tracking
24
+ - Store delivery records: recipient, template, status, sentAt, provider message ID
25
+ - Expose delivery status via an internal admin API
26
+ - Alert when failure rate exceeds 5% in a 1-hour window
27
+
28
+ ## Technical Notes
29
+ - Never log email body content — only metadata (recipient, template name, status)
30
+ - Implement unsubscribe links and honor opt-out preferences
31
+ - Test with {{provider}} sandbox/test mode before production deployment
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "email-notifications",
3
+ "description": "Transactional email system with templates, queuing, and delivery tracking",
4
+ "variables": [
5
+ { "name": "provider", "description": "Email provider (sendgrid, mailgun, ses, resend)", "default": "sendgrid" },
6
+ { "name": "from_address", "description": "Default sender email address", "default": "noreply@example.com" },
7
+ { "name": "queue_enabled", "description": "Whether to queue emails asynchronously (true/false)", "default": "true" }
8
+ ],
9
+ "tags": ["email", "notifications", "backend", "queuing"]
10
+ }
@@ -0,0 +1,31 @@
1
+ # File Upload — {{provider}}
2
+
3
+ ## Overview
4
+ Secure file upload system using {{provider}} bucket `{{bucket_name}}` with presigned URLs, a maximum file size of {{max_size_mb}} MB, and allowed types: {{allowed_types}}.
5
+
6
+ ## Acceptance Criteria
7
+
8
+ ### AC-1: Presigned URL Generation
9
+ - Generate a presigned upload URL valid for 15 minutes
10
+ - URL is scoped to the authenticated user's namespace
11
+ - Enforce `Content-Type` matching one of: {{allowed_types}}
12
+
13
+ ### AC-2: File Validation
14
+ - Reject uploads exceeding {{max_size_mb}} MB with a clear error
15
+ - Validate MIME type against the Content-Type header
16
+ - Scan file content for malicious patterns before confirming upload
17
+
18
+ ### AC-3: Upload Confirmation
19
+ - Client calls confirm endpoint after direct upload to {{provider}}
20
+ - Server verifies the object exists in `{{bucket_name}}` before saving metadata
21
+ - Store file metadata (name, size, type, owner, uploadedAt) in the database
22
+
23
+ ### AC-4: Download and Deletion
24
+ - Generate presigned download URLs valid for 1 hour
25
+ - Delete the object from `{{bucket_name}}` and metadata on user request
26
+ - Restrict access so users can only download/delete their own files
27
+
28
+ ## Technical Notes
29
+ - Never expose {{provider}} credentials to the client
30
+ - Use server-side encryption at rest in `{{bucket_name}}`
31
+ - Log all upload attempts (success and failure) with user ID and file metadata
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "file-upload-s3",
3
+ "description": "File upload system with cloud storage, presigned URLs, and file validation",
4
+ "variables": [
5
+ { "name": "provider", "description": "Cloud storage provider (s3, gcs, r2)", "default": "s3" },
6
+ { "name": "bucket_name", "description": "Name of the storage bucket", "default": "uploads" },
7
+ { "name": "max_size_mb", "description": "Maximum allowed file size in megabytes", "default": "10" },
8
+ { "name": "allowed_types", "description": "Comma-separated list of allowed MIME types", "default": "image/jpeg,image/png,application/pdf" }
9
+ ],
10
+ "tags": ["file-upload", "s3", "storage", "backend"]
11
+ }
@@ -0,0 +1,35 @@
1
+ # JWT Authentication
2
+
3
+ ## Overview
4
+ JWT-based authentication with {{algorithm}} signing, access tokens valid for {{access_token_ttl}}, refresh tokens valid for {{refresh_token_ttl}}, and token rotation on refresh.
5
+
6
+ ## Acceptance Criteria
7
+
8
+ ### AC-1: Login
9
+ - Accept `email` and `password` credentials
10
+ - Issue a signed access token ({{algorithm}}, TTL {{access_token_ttl}}) and refresh token (TTL {{refresh_token_ttl}})
11
+ - Return tokens in the response body; set refresh token as `HttpOnly` cookie
12
+
13
+ ### AC-2: Token Verification
14
+ - Validate signature, expiry, and issuer on every protected route
15
+ - Return 401 with a clear message when token is expired or invalid
16
+ - Extract user claims (id, role, email) from token without a database lookup
17
+
18
+ ### AC-3: Token Refresh
19
+ - Accept refresh token from `HttpOnly` cookie
20
+ - Issue new access and refresh tokens (rotation)
21
+ - Blacklist the previous refresh token to prevent reuse
22
+
23
+ ### AC-4: Logout
24
+ - Blacklist the current refresh token on logout
25
+ - Clear the `HttpOnly` cookie
26
+ - Return 204 on success
27
+
28
+ ### AC-5: Token Blacklist
29
+ - Store blacklisted token JTIs in a fast store (Redis recommended)
30
+ - Entries expire automatically at token TTL to prevent unbounded growth
31
+
32
+ ## Technical Notes
33
+ - Never store the raw JWT secret in application code — use environment variables
34
+ - Include `jti` (JWT ID) claim for blacklist lookups
35
+ - Rotate signing keys on a quarterly schedule
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "jwt-auth",
3
+ "description": "JWT authentication with access/refresh token rotation, blacklisting, and role-based claims",
4
+ "variables": [
5
+ { "name": "access_token_ttl", "description": "Access token time-to-live (e.g. 15m, 1h)", "default": "15m" },
6
+ { "name": "refresh_token_ttl", "description": "Refresh token time-to-live (e.g. 7d, 30d)", "default": "7d" },
7
+ { "name": "algorithm", "description": "JWT signing algorithm (HS256, RS256)", "default": "HS256" }
8
+ ],
9
+ "tags": ["auth", "jwt", "security", "backend"]
10
+ }
@@ -0,0 +1,31 @@
1
+ # OAuth2 Social Login — {{provider}}
2
+
3
+ ## Overview
4
+ Implement OAuth2 social login via {{provider}} with secure token handling and session management lasting {{session_duration}} seconds.
5
+
6
+ ## Acceptance Criteria
7
+
8
+ ### AC-1: OAuth Authorization Flow
9
+ - Redirect users to {{provider}} authorization endpoint with correct scopes
10
+ - Handle the callback at {{callback_path}} and exchange code for tokens
11
+ - Validate the `state` parameter to prevent CSRF attacks
12
+
13
+ ### AC-2: User Account Linking
14
+ - Create a new user account if the OAuth identity does not exist
15
+ - Link the OAuth identity to an existing account if the email matches
16
+ - Store the provider, provider user ID, and access token securely
17
+
18
+ ### AC-3: Session Management
19
+ - Issue a signed session token valid for {{session_duration}} seconds after successful login
20
+ - Invalidate session on explicit logout
21
+ - Refresh session silently when less than 10% of lifetime remains
22
+
23
+ ### AC-4: Error Handling
24
+ - Return clear errors when the user denies authorization
25
+ - Handle provider API outages with a user-friendly fallback message
26
+ - Log all authentication failures with anonymized user identifiers
27
+
28
+ ## Technical Notes
29
+ - Never store OAuth access tokens in client-accessible cookies
30
+ - Use PKCE (Proof Key for Code Exchange) when supported by the provider
31
+ - Implement rate limiting on the callback endpoint to prevent abuse
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "oauth-social-login",
3
+ "description": "OAuth2 social login with Google and GitHub, including token handling and session management",
4
+ "variables": [
5
+ { "name": "provider", "description": "OAuth provider to integrate (google, github, or both)", "default": "google" },
6
+ { "name": "callback_path", "description": "OAuth callback URL path", "default": "/auth/callback" },
7
+ { "name": "session_duration", "description": "Session duration in seconds", "default": "86400" }
8
+ ],
9
+ "tags": ["auth", "oauth2", "social-login", "google", "github", "backend"]
10
+ }
@@ -0,0 +1,31 @@
1
+ # Rate Limiting Middleware
2
+
3
+ ## Overview
4
+ Sliding window rate limiting middleware with a limit of {{requests_per_window}} requests per {{window_seconds}} seconds, applied per {{strategy}}.
5
+
6
+ ## Acceptance Criteria
7
+
8
+ ### AC-1: Sliding Window Enforcement
9
+ - Track request counts in a {{window_seconds}}-second sliding window per {{strategy}}
10
+ - Block requests exceeding {{requests_per_window}} with HTTP 429
11
+ - Include `Retry-After` header indicating seconds until the window resets
12
+
13
+ ### AC-2: Response Headers
14
+ - Include `X-RateLimit-Limit: {{requests_per_window}}` on all responses
15
+ - Include `X-RateLimit-Remaining` with current remaining count
16
+ - Include `X-RateLimit-Reset` with the Unix timestamp of window expiry
17
+
18
+ ### AC-3: Strategy Configuration
19
+ - Apply limits by {{strategy}} (ip address, authenticated user ID, or API key)
20
+ - Fall back to IP-based limiting for unauthenticated requests
21
+ - Support per-route override limits via middleware options
22
+
23
+ ### AC-4: Bypass and Exemptions
24
+ - Allow exemption list for internal service IPs
25
+ - Support admin-level bypass via a trusted header `X-Internal-Request: true`
26
+ - Log all exemptions for audit purposes
27
+
28
+ ## Technical Notes
29
+ - Use atomic Redis operations (INCR + EXPIRE) to avoid race conditions
30
+ - Store counters in Redis with TTL equal to the window duration
31
+ - Degrade gracefully to allow-all if Redis is unavailable (fail open with alert)
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "rate-limiting",
3
+ "description": "Rate limiting middleware with sliding window algorithm, per-user and per-IP limits",
4
+ "variables": [
5
+ { "name": "requests_per_window", "description": "Maximum requests allowed per window", "default": "100" },
6
+ { "name": "window_seconds", "description": "Time window in seconds", "default": "60" },
7
+ { "name": "strategy", "description": "Rate limiting strategy (ip, user, api-key)", "default": "ip" }
8
+ ],
9
+ "tags": ["rate-limiting", "middleware", "security", "backend"]
10
+ }
@@ -0,0 +1,32 @@
1
+ # Stripe Payments Integration
2
+
3
+ ## Overview
4
+ Integrate Stripe payment processing to support one-time payments and subscriptions for {{plan_name}} in {{currency}} currency.
5
+
6
+ ## Acceptance Criteria
7
+
8
+ ### AC-1: Checkout Session Creation
9
+ - Create a Stripe checkout session for {{plan_name}} with currency {{currency}}
10
+ - Return a redirect URL to the hosted Stripe payment page
11
+ - Store the session ID for reconciliation
12
+
13
+ ### AC-2: Webhook Processing
14
+ - Handle incoming Stripe events at {{webhook_endpoint}}
15
+ - Verify HMAC signature using `Stripe-Signature` header
16
+ - Process `checkout.session.completed` and `invoice.payment_failed` events
17
+ - Idempotently handle duplicate webhook deliveries
18
+
19
+ ### AC-3: Subscription Management
20
+ - Retrieve subscription status from Stripe API
21
+ - Cancel subscriptions on user request
22
+ - Expose subscription status in user profile response
23
+
24
+ ### AC-4: Error Handling
25
+ - Return user-friendly errors when payment fails
26
+ - Log Stripe API errors with request IDs for debugging
27
+ - Handle network timeouts with retry logic (max 3 attempts)
28
+
29
+ ## Technical Notes
30
+ - Store Stripe customer IDs and subscription IDs in the database, never card data
31
+ - All prices defined in cents to avoid floating-point errors
32
+ - Use Stripe's idempotency keys for all write operations
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "stripe-payments",
3
+ "description": "Stripe payment integration with checkout sessions, webhooks, and subscription management",
4
+ "variables": [
5
+ { "name": "currency", "description": "Default currency code (e.g. usd, eur)", "default": "usd" },
6
+ { "name": "plan_name", "description": "Name of the subscription plan or product", "default": "Pro Plan" },
7
+ { "name": "webhook_endpoint", "description": "Path for the Stripe webhook endpoint", "default": "/api/webhooks/stripe" }
8
+ ],
9
+ "tags": ["payments", "stripe", "subscriptions", "backend"]
10
+ }