@synapta/skills 0.1.1 → 0.2.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 (354) hide show
  1. package/dist/index.js +11 -4
  2. package/package.json +3 -4
  3. package/skills/ATTRIBUTION.md +80 -0
  4. package/skills/accessibility-audit/SKILL.md +325 -0
  5. package/skills/accessibility-audit/reference/wcag-checklist.md +103 -0
  6. package/skills/apns-notifier/SKILL.md +86 -0
  7. package/skills/approval-policy-enforcer/SKILL.md +66 -0
  8. package/skills/apps-sdk-builder/LICENSE.txt +201 -0
  9. package/skills/apps-sdk-builder/SKILL.md +328 -0
  10. package/skills/apps-sdk-builder/agents/openai.yaml +13 -0
  11. package/skills/apps-sdk-builder/references/app-archetypes.md +132 -0
  12. package/skills/apps-sdk-builder/references/apps-sdk-docs-workflow.md +135 -0
  13. package/skills/apps-sdk-builder/references/interactive-state-sync-patterns.md +113 -0
  14. package/skills/apps-sdk-builder/references/repo-contract-and-validation.md +93 -0
  15. package/skills/apps-sdk-builder/references/search-fetch-standard.md +67 -0
  16. package/skills/apps-sdk-builder/references/upstream-example-workflow.md +79 -0
  17. package/skills/apps-sdk-builder/references/window-openai-patterns.md +79 -0
  18. package/skills/apps-sdk-builder/scripts/scaffold_node_ext_apps.mjs +606 -0
  19. package/skills/architecture-selector/SKILL.md +64 -0
  20. package/skills/backlog-planner/SKILL.md +68 -0
  21. package/skills/carplay-entitlement-checker/SKILL.md +82 -0
  22. package/skills/concept-deepener/SKILL.md +86 -0
  23. package/skills/concept-discovery/SKILL.md +517 -0
  24. package/skills/concept-discovery/assets/sample-analysis.json +81 -0
  25. package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
  26. package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
  27. package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
  28. package/skills/concept-discovery/references/framework-patterns.md +228 -0
  29. package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
  30. package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
  31. package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
  32. package/skills/dast-zap/SKILL.md +453 -0
  33. package/skills/dast-zap/assets/.gitkeep +9 -0
  34. package/skills/dast-zap/assets/github_action.yml +207 -0
  35. package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
  36. package/skills/dast-zap/assets/zap_automation.yaml +196 -0
  37. package/skills/dast-zap/assets/zap_context.xml +192 -0
  38. package/skills/dast-zap/references/EXAMPLE.md +40 -0
  39. package/skills/dast-zap/references/api_testing_guide.md +475 -0
  40. package/skills/dast-zap/references/authentication_guide.md +431 -0
  41. package/skills/dast-zap/references/false_positive_handling.md +427 -0
  42. package/skills/dast-zap/references/owasp_mapping.md +255 -0
  43. package/skills/dep-sbom-scan/SKILL.md +466 -0
  44. package/skills/deploy-cloudflare/SKILL.md +930 -0
  45. package/skills/deploy-docker/SKILL.md +55 -0
  46. package/skills/deploy-fly/SKILL.md +228 -0
  47. package/skills/deploy-k8s/SKILL.md +108 -0
  48. package/skills/deploy-k8s/assets/logo.png +0 -0
  49. package/skills/deploy-k8s/docs/README.md +29 -0
  50. package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
  51. package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
  52. package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
  53. package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
  54. package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
  55. package/skills/deploy-k8s/docs/book.json +16 -0
  56. package/skills/deploy-k8s/docs/community/changelog.md +34 -0
  57. package/skills/deploy-k8s/docs/community/contributing.md +67 -0
  58. package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
  59. package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
  60. package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
  61. package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
  62. package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
  63. package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
  64. package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
  65. package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
  66. package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
  67. package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
  68. package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
  69. package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
  70. package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
  71. package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
  72. package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
  73. package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
  74. package/skills/deploy-k8s/docs/guides/observability.md +67 -0
  75. package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
  76. package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
  77. package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
  78. package/skills/deploy-k8s/docs/package-lock.json +2892 -0
  79. package/skills/deploy-k8s/docs/package.json +13 -0
  80. package/skills/deploy-k8s/references/api-drift.md +298 -0
  81. package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
  82. package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
  83. package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
  84. package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
  85. package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
  86. package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
  87. package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
  88. package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
  89. package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
  90. package/skills/deploy-k8s/references/examples-bad.md +282 -0
  91. package/skills/deploy-k8s/references/examples-good.md +440 -0
  92. package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
  93. package/skills/deploy-k8s/references/helm-patterns.md +203 -0
  94. package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
  95. package/skills/deploy-k8s/references/job-patterns.md +120 -0
  96. package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
  97. package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
  98. package/skills/deploy-k8s/references/network-exposure.md +481 -0
  99. package/skills/deploy-k8s/references/observability.md +302 -0
  100. package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
  101. package/skills/deploy-k8s/references/resource-starvation.md +374 -0
  102. package/skills/deploy-k8s/references/security-hardening.md +209 -0
  103. package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
  104. package/skills/deploy-k8s/references/storage-and-state.md +330 -0
  105. package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
  106. package/skills/deploy-railway/SKILL.md +235 -0
  107. package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
  108. package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
  109. package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
  110. package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
  111. package/skills/deploy-railway/references/analyze-db.md +344 -0
  112. package/skills/deploy-railway/references/configure.md +309 -0
  113. package/skills/deploy-railway/references/deploy.md +195 -0
  114. package/skills/deploy-railway/references/operate.md +214 -0
  115. package/skills/deploy-railway/references/request.md +248 -0
  116. package/skills/deploy-railway/references/setup.md +312 -0
  117. package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
  118. package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
  119. package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
  120. package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
  121. package/skills/deploy-railway/scripts/dal.py +671 -0
  122. package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
  123. package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
  124. package/skills/deploy-railway/scripts/railway-api.sh +52 -0
  125. package/skills/deploy-ssh/SKILL.md +91 -0
  126. package/skills/deploy-vercel/SKILL.md +304 -0
  127. package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
  128. package/skills/deploy-vercel/resources/deploy.sh +301 -0
  129. package/skills/docs-runbooks/SKILL.md +399 -0
  130. package/skills/drive-status-renderer/SKILL.md +62 -0
  131. package/skills/iac-scan/SKILL.md +680 -0
  132. package/skills/iac-scan/assets/.gitkeep +9 -0
  133. package/skills/iac-scan/assets/checkov_config.yaml +94 -0
  134. package/skills/iac-scan/assets/github_actions.yml +199 -0
  135. package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
  136. package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
  137. package/skills/iac-scan/references/EXAMPLE.md +40 -0
  138. package/skills/iac-scan/references/compliance_mapping.md +237 -0
  139. package/skills/iac-scan/references/custom_policies.md +460 -0
  140. package/skills/iac-scan/references/suppression_guide.md +431 -0
  141. package/skills/incident-briefing/SKILL.md +66 -0
  142. package/skills/incident-triage/SKILL.md +481 -0
  143. package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
  144. package/skills/mcp-builder/SKILL.md +244 -0
  145. package/skills/mcp-builder/reference/evaluation.md +602 -0
  146. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  147. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  148. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  149. package/skills/mcp-builder/scripts/connections.py +151 -0
  150. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  151. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  152. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  153. package/skills/mobile-pairing/SKILL.md +52 -0
  154. package/skills/ops-sre/SKILL.md +297 -0
  155. package/skills/playwright-qa/LICENSE.txt +201 -0
  156. package/skills/playwright-qa/NOTICE.txt +14 -0
  157. package/skills/playwright-qa/SKILL.md +156 -0
  158. package/skills/playwright-qa/agents/openai.yaml +6 -0
  159. package/skills/playwright-qa/assets/playwright-small.svg +3 -0
  160. package/skills/playwright-qa/assets/playwright.png +0 -0
  161. package/skills/playwright-qa/references/cli.md +116 -0
  162. package/skills/playwright-qa/references/workflows.md +95 -0
  163. package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
  164. package/skills/release-publish/SKILL.md +85 -0
  165. package/skills/repo-bootstrap/SKILL.md +92 -0
  166. package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
  167. package/skills/repo-bootstrap/assets/root-thin.md +141 -0
  168. package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
  169. package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
  170. package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
  171. package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
  172. package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
  173. package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
  174. package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
  175. package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
  176. package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
  177. package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
  178. package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
  179. package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
  180. package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
  181. package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
  182. package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
  183. package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
  184. package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
  185. package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
  186. package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
  187. package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
  188. package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
  189. package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
  190. package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
  191. package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
  192. package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
  193. package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
  194. package/skills/repo-bootstrap/checkpoints.yaml +279 -0
  195. package/skills/repo-bootstrap/evals/evals.json +385 -0
  196. package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
  197. package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
  198. package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
  199. package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
  200. package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
  201. package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
  202. package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
  203. package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
  204. package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
  205. package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
  206. package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
  207. package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
  208. package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
  209. package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
  210. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
  211. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
  212. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
  213. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
  214. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
  215. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
  216. package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
  217. package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
  218. package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
  219. package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
  220. package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
  221. package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
  222. package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
  223. package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
  224. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
  225. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
  226. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
  227. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
  228. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
  229. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
  230. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
  231. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
  232. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
  233. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
  234. package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
  235. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
  236. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
  237. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
  238. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
  239. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
  240. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
  241. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
  242. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
  243. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
  244. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
  245. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
  246. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
  247. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
  248. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
  249. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
  250. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
  251. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
  252. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
  253. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
  254. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
  255. package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
  256. package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
  257. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
  258. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
  259. package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
  260. package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
  261. package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
  262. package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
  263. package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
  264. package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
  265. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
  266. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
  267. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
  268. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
  269. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
  270. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
  271. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
  272. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
  273. package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
  274. package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
  275. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
  276. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
  277. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
  278. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
  279. package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
  280. package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
  281. package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
  282. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
  283. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
  284. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
  285. package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
  286. package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
  287. package/skills/repo-bootstrap/references/output-structure.md +124 -0
  288. package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
  289. package/skills/repo-bootstrap/references/verification-guide.md +137 -0
  290. package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
  291. package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
  292. package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
  293. package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
  294. package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
  295. package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
  296. package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
  297. package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
  298. package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
  299. package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
  300. package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
  301. package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
  302. package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
  303. package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
  304. package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
  305. package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
  306. package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
  307. package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
  308. package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
  309. package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
  310. package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
  311. package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
  312. package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
  313. package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
  314. package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
  315. package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
  316. package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
  317. package/skills/schema-api-contracts/SKILL.md +56 -0
  318. package/skills/secret-hygiene/SKILL.md +511 -0
  319. package/skills/secret-hygiene/assets/.gitkeep +9 -0
  320. package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
  321. package/skills/secret-hygiene/assets/config-custom.toml +178 -0
  322. package/skills/secret-hygiene/assets/config-strict.toml +48 -0
  323. package/skills/secret-hygiene/assets/github-action.yml +181 -0
  324. package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
  325. package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
  326. package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
  327. package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
  328. package/skills/secret-hygiene/references/detection_rules.md +276 -0
  329. package/skills/secret-hygiene/references/false_positives.md +598 -0
  330. package/skills/secret-hygiene/references/remediation_guide.md +530 -0
  331. package/skills/stack-selector/SKILL.md +56 -0
  332. package/skills/telegram-control/SKILL.md +110 -0
  333. package/skills/telegram-control/references/architecture.md +184 -0
  334. package/skills/telegram-control/references/convex.md +173 -0
  335. package/skills/telegram-control/references/error_handling.md +212 -0
  336. package/skills/telegram-control/references/initial_setup.md +165 -0
  337. package/skills/telegram-control/references/telegram_api.md +156 -0
  338. package/skills/telegram-control/scripts/cancel_message.ts +53 -0
  339. package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
  340. package/skills/telegram-control/scripts/logger.ts +121 -0
  341. package/skills/telegram-control/scripts/proxy-util.ts +11 -0
  342. package/skills/telegram-control/scripts/schedule_message.ts +216 -0
  343. package/skills/telegram-control/scripts/send_message.ts +115 -0
  344. package/skills/telegram-control/scripts/setup.ts +185 -0
  345. package/skills/telegram-control/scripts/types.ts +75 -0
  346. package/skills/telegram-control/scripts/view_history.ts +74 -0
  347. package/skills/test-strategy/SKILL.md +352 -0
  348. package/skills/threat-model/SKILL.md +303 -0
  349. package/skills/threat-model/examples/example-output.md +196 -0
  350. package/skills/threat-model/template.md +96 -0
  351. package/skills/ts-lint/SKILL.md +80 -0
  352. package/skills/ui-flow/SKILL.md +668 -0
  353. package/skills/voice-command-router/SKILL.md +51 -0
  354. package/skills/widget-live-activity-sync/SKILL.md +66 -0
@@ -0,0 +1,517 @@
1
+ ---
2
+ Name: code-to-prd
3
+ Tier: STANDARD
4
+ Category: product
5
+ Dependencies: none
6
+ Author: Alireza Rezvani
7
+ Version: 2.1.2
8
+ name: concept-discovery
9
+ synapta_original_name: code-to-prd
10
+ triggers: [synapta new, concept interview, code-to-prd, reverse-engineer codebase, PRD]
11
+ network: off
12
+ source:
13
+ origin: https://github.com/alirezarezvani/claude-skills
14
+ path: product-team/code-to-prd/skills/code-to-prd
15
+ commit: 0796e1d70a9d
16
+ license: MIT (Alireza Rezvani)
17
+ adapted: light-touch
18
+ note: "Source skill reverse-engineers existing code into a PRD. Synapta uses this for `repo` mode interviews (existing repo to backlog). For `new` mode (greenfield concept interview), Synapta supplements with custom prompts in packages/cli — this skill is one of two inputs to the concept artifact."
19
+ description: |
20
+ Reverse-engineer any codebase into a complete Product Requirements Document (PRD).
21
+ Analyzes routes, components, state management, API integrations, and user interactions to produce
22
+ business-readable documentation detailed enough for engineers or AI agents to fully reconstruct
23
+ every page and endpoint. Works with frontend frameworks (React, Vue, Angular, Svelte, Next.js, Nuxt),
24
+ backend frameworks (NestJS, Django, Express, FastAPI), and fullstack applications.
25
+
26
+ Trigger when users mention: generate PRD, reverse-engineer requirements, code to documentation,
27
+ extract product specs from code, document page logic, analyze page fields and interactions,
28
+ create a functional inventory, write requirements from an existing codebase, document API endpoints,
29
+ or analyze backend routes.
30
+ license: MIT
31
+ metadata:
32
+ updated: 2026-03-17
33
+ ---
34
+
35
+ ## Name
36
+
37
+ Code → PRD
38
+
39
+ ## Description
40
+
41
+ Reverse-engineer any frontend, backend, or fullstack codebase into a complete Product Requirements Document (PRD). Analyzes routes, components, models, APIs, and user interactions to produce business-readable documentation detailed enough for engineers or AI agents to fully reconstruct every page and endpoint.
42
+
43
+ # Code → PRD: Reverse-Engineer Any Codebase into Product Requirements
44
+
45
+ ## Features
46
+
47
+ - **3-phase workflow**: global scan → page-by-page analysis → structured document generation
48
+ - **Frontend support**: React, Vue, Angular, Svelte, Next.js (App + Pages Router), Nuxt, SvelteKit, Remix
49
+ - **Backend support**: NestJS, Express, Django, Django REST Framework, FastAPI, Flask
50
+ - **Fullstack support**: Combined frontend + backend analysis with unified PRD output
51
+ - **Mock detection**: Automatically distinguishes real API integrations from mock/fixture data
52
+ - **Enum extraction**: Exhaustively lists all status codes, type mappings, and constants
53
+ - **Model extraction**: Parses Django models, NestJS entities, Pydantic schemas
54
+ - **Automation scripts**: `codebase_analyzer.py` for scanning, `prd_scaffolder.py` for directory generation
55
+ - **Quality checklist**: Validation checklist for completeness, accuracy, readability
56
+
57
+ ## Usage
58
+
59
+ ```bash
60
+ # Analyze a project and generate PRD skeleton
61
+ python3 scripts/codebase_analyzer.py /path/to/project -o analysis.json
62
+ python3 scripts/prd_scaffolder.py analysis.json -o prd/ -n "My App"
63
+
64
+ # Or use the slash command
65
+ /code-to-prd /path/to/project
66
+ ```
67
+
68
+ ## Examples
69
+
70
+ ### Frontend (React)
71
+ ```bash
72
+ /code-to-prd ./src
73
+ # → Scans components, routes, API calls, state management
74
+ # → Generates prd/ with per-page docs, enum dictionary, API inventory
75
+ ```
76
+
77
+ ### Backend (Django)
78
+ ```bash
79
+ /code-to-prd ./myproject
80
+ # → Detects Django via manage.py, scans urls.py, views.py, models.py
81
+ # → Documents endpoints, model schemas, admin config, permissions
82
+ ```
83
+
84
+ ### Fullstack (Next.js)
85
+ ```bash
86
+ /code-to-prd .
87
+ # → Analyzes both app/ pages and api/ routes
88
+ # → Generates unified PRD covering UI pages and API endpoints
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Role
94
+
95
+ You are a senior product analyst and technical architect. Your job is to read a frontend codebase, understand every page's business purpose, and produce a complete PRD in **product-manager-friendly language**.
96
+
97
+ ### Dual Audience
98
+
99
+ 1. **Product managers / business stakeholders** — need to understand *what* the system does, not *how*
100
+ 2. **Engineers / AI agents** — need enough detail to **fully reconstruct** every page's fields, interactions, and relationships
101
+
102
+ Your document must describe functionality in non-technical language while omitting zero business details.
103
+
104
+ ### Supported Stacks
105
+
106
+ | Stack | Frameworks |
107
+ |-------|-----------|
108
+ | **Frontend** | React, Vue, Angular, Svelte, Next.js (App/Pages Router), Nuxt, SvelteKit, Remix, Astro |
109
+ | **Backend** | NestJS, Express, Fastify, Django, Django REST Framework, FastAPI, Flask |
110
+ | **Fullstack** | Next.js (API routes + pages), Nuxt (server/ + pages/), Django (views + templates) |
111
+
112
+ For **backend-only** projects, the "page" concept maps to **API resource groups** or **admin views**. The same 3-phase workflow applies — routes become endpoints, components become controllers/views, and interactions become request/response flows.
113
+
114
+ ---
115
+
116
+ ## Workflow
117
+
118
+ ### Phase 1 — Project Global Scan
119
+
120
+ Build global context before diving into pages.
121
+
122
+ #### 1. Identify Project Structure
123
+
124
+ Scan the root directory and understand organization:
125
+
126
+ ```
127
+ Frontend directories:
128
+ - Pages/routes (pages/, views/, routes/, app/, src/pages/)
129
+ - Components (components/, modules/)
130
+ - Route config (router.ts, routes.ts, App.tsx route definitions)
131
+ - API/service layer (services/, api/, requests/)
132
+ - State management (store/, models/, context/)
133
+ - i18n files (locales/, i18n/) — field display names often live here
134
+
135
+ Backend directories (NestJS):
136
+ - Modules (src/modules/, src/*.module.ts)
137
+ - Controllers (*.controller.ts) — route handlers
138
+ - Services (*.service.ts) — business logic
139
+ - DTOs (dto/, *.dto.ts) — request/response shapes
140
+ - Entities (entities/, *.entity.ts) — database models
141
+ - Guards/pipes/interceptors — auth, validation, transformation
142
+
143
+ Backend directories (Django):
144
+ - Apps (*/apps.py, */views.py, */models.py, */urls.py)
145
+ - URL config (urls.py, */urls.py)
146
+ - Views (views.py, viewsets.py) — route handlers
147
+ - Models (models.py) — database schema
148
+ - Serializers (serializers.py) — request/response shapes
149
+ - Forms (forms.py) — validation and field definitions
150
+ - Templates (templates/) — server-rendered pages
151
+ - Admin (admin.py) — admin panel configuration
152
+ ```
153
+
154
+ **Identify framework** from `package.json` (Node.js frameworks) or project files (`manage.py` for Django, `requirements.txt`/`pyproject.toml` for Python). Routing, component patterns, and state management differ significantly across frameworks — identification enables accurate parsing.
155
+
156
+ #### 2. Build Route & Page Inventory
157
+
158
+ Extract all pages from route config into a complete **page inventory**:
159
+
160
+ | Field | Description |
161
+ |-------|-------------|
162
+ | Route path | e.g. `/user/list`, `/order/:id` |
163
+ | Page title | From route config, breadcrumbs, or page component |
164
+ | Module / menu level | Where it sits in navigation |
165
+ | Component file path | Source file(s) implementing this page |
166
+
167
+ For file-system routing (Next.js, Nuxt), infer from directory structure.
168
+
169
+ **For backend projects**, the page inventory becomes an **endpoint/resource inventory**:
170
+
171
+ | Field | Description |
172
+ |-------|-------------|
173
+ | Endpoint path | e.g. `/api/users`, `/api/orders/:id` |
174
+ | HTTP method | GET, POST, PUT, DELETE, PATCH |
175
+ | Controller/view | Source file handling this route |
176
+ | Module/app | Which NestJS module or Django app owns it |
177
+ | Auth required | Whether authentication/permissions are needed |
178
+
179
+ For NestJS: extract from `@Controller` + `@Get/@Post/@Put/@Delete` decorators.
180
+ For Django: extract from `urls.py` → `urlpatterns` and `viewsets.py` → router registrations.
181
+
182
+ #### 3. Map Global Context
183
+
184
+ Before analyzing individual pages, capture:
185
+
186
+ - **Global state** — user info, permissions, feature flags, config
187
+ - **Shared components** — layout, nav, auth guards, error boundaries
188
+ - **Enums & constants** — status codes, type mappings, role definitions
189
+ - **API base config** — base URL, interceptors, auth headers, error handling
190
+ - **Database models** (backend) — entity relationships, field types, constraints
191
+ - **Middleware** (backend) — auth middleware, rate limiting, logging, CORS
192
+ - **DTOs/Serializers** (backend) — request validation shapes, response formats
193
+
194
+ These will be referenced throughout page/endpoint analysis.
195
+
196
+ ---
197
+
198
+ ### Phase 2 — Page-by-Page Deep Analysis
199
+
200
+ Analyze every page in the inventory. **Each page produces its own Markdown file.**
201
+
202
+ #### Analysis Dimensions
203
+
204
+ For each page, answer:
205
+
206
+ ##### A. Page Overview
207
+ - What does this page do? (one sentence)
208
+ - Where does it fit in the system?
209
+ - What scenario brings a user here?
210
+
211
+ ##### B. Layout & Regions
212
+ - Major regions: search area, table, detail panel, action bar, tabs, etc.
213
+ - Spatial arrangement: top/bottom, left/right, nested
214
+
215
+ ##### C. Field Inventory (core — be exhaustive)
216
+
217
+ **For form pages**, list every field:
218
+
219
+ | Field Name | Type | Required | Default | Validation | Business Description |
220
+ |-----------|------|----------|---------|------------|---------------------|
221
+ | Username | Text input | Yes | — | Max 20 chars | System login account |
222
+
223
+ **For table/list pages**, list:
224
+ - Search/filter fields (type, required, enum options)
225
+ - Table columns (name, format, sortable, filterable)
226
+ - Row action buttons (what each one does)
227
+
228
+ **Field name extraction priority:**
229
+ 1. Hardcoded display text in code
230
+ 2. i18n translation values
231
+ 3. Component `placeholder` / `label` / `title` props
232
+ 4. Variable names (last resort — provide reasonable display name)
233
+
234
+ ##### D. Interaction Logic
235
+
236
+ Describe as **"user action → system response"**:
237
+
238
+ ```
239
+ [Action] User clicks "Create"
240
+ [Response] Modal opens with form fields: ...
241
+ [Validation] Name required, phone format check
242
+ [API] POST /api/user/create with form data
243
+ [Success] Toast "Created successfully", close modal, refresh list
244
+ [Failure] Show API error message
245
+ ```
246
+
247
+ **Cover all interaction types:**
248
+ - Page load / initialization (default queries, preloaded data)
249
+ - Search / filter / reset
250
+ - CRUD operations (create, read, update, delete)
251
+ - Table: pagination, sorting, row selection, bulk actions
252
+ - Form submission & validation
253
+ - Status transitions (e.g. approval flows: pending → approved → rejected)
254
+ - Import / export
255
+ - Field interdependencies (selecting value A changes options in field B)
256
+ - Permission controls (buttons/fields visible only to certain roles)
257
+ - Polling / auto-refresh / real-time updates
258
+
259
+ ##### E. API Dependencies
260
+
261
+ **Case 1: API is integrated** (real HTTP calls in code)
262
+
263
+ | API Name | Method | Path | Trigger | Key Params | Notes |
264
+ |----------|--------|------|---------|-----------|-------|
265
+ | Get users | GET | /api/user/list | Load, search | page, size, keyword | Paginated |
266
+
267
+ **Case 2: API not integrated** (mock/hardcoded data)
268
+
269
+ When the page uses mock data, hardcoded fixtures, `setTimeout` simulations, or `Promise.resolve()` stubs — the API isn't real yet. **Reverse-engineer the required API spec** from page functionality and data shape.
270
+
271
+ For each needed API, document:
272
+ - Method, suggested path, trigger
273
+ - Input params (name, type, required, description)
274
+ - Output fields (name, type, description)
275
+ - Core business logic description
276
+
277
+ **Detection signals:**
278
+ - `setTimeout` / `Promise.resolve()` returning data → mock
279
+ - Data defined in component or `*.mock.*` files → mock
280
+ - Real HTTP calls (`axios`, `fetch`, service layer) with real paths → integrated
281
+ - `__mocks__` directory → mock
282
+
283
+ ##### F. Page Relationships
284
+
285
+ - **Inbound**: Which pages link here? What parameters do they pass?
286
+ - **Outbound**: Where can users navigate from here? What parameters?
287
+ - **Data coupling**: Which pages share data or trigger refreshes in each other?
288
+
289
+ ---
290
+
291
+ ### Phase 3 — Generate Documentation
292
+
293
+ #### Output Structure
294
+
295
+ Create `prd/` in project root (or user-specified directory):
296
+
297
+ ```
298
+ prd/
299
+ ├── README.md # System overview
300
+ ├── pages/
301
+ │ ├── 01-user-mgmt-list.md # One file per page
302
+ │ ├── 02-user-mgmt-detail.md
303
+ │ ├── 03-order-mgmt-list.md
304
+ │ └── ...
305
+ └── appendix/
306
+ ├── enum-dictionary.md # All enums, status codes, type mappings
307
+ ├── page-relationships.md # Navigation map between pages
308
+ └── api-inventory.md # Complete API reference
309
+ ```
310
+
311
+ #### README.md Template
312
+
313
+ ```markdown
314
+ # [System Name] — Product Requirements Document
315
+
316
+ ## System Overview
317
+ [2-3 paragraphs: what the system does, business context, primary users]
318
+
319
+ ## Module Overview
320
+
321
+ | Module | Pages | Core Functionality |
322
+ |--------|-------|--------------------|
323
+ | User Management | User list, User detail, Role mgmt | CRUD users, assign roles and permissions |
324
+
325
+ ## Page Inventory
326
+
327
+ | # | Page Name | Route | Module | Doc Link |
328
+ |---|-----------|-------|--------|----------|
329
+ | 1 | User List | /user/list | User Mgmt | [→](./pages/01-user-mgmt-list.md) |
330
+
331
+ ## Global Notes
332
+
333
+ ### Permission Model
334
+ [Summarize auth/role system if present in code]
335
+
336
+ ### Common Interaction Patterns
337
+ [Global rules: all deletes require confirmation, lists default to created_at desc, etc.]
338
+ ```
339
+
340
+ #### Per-Page Document Template
341
+
342
+ ```markdown
343
+ # [Page Name]
344
+
345
+ > **Route:** `/xxx/xxx`
346
+ > **Module:** [Module name]
347
+ > **Generated:** [Date]
348
+
349
+ ## Overview
350
+ [2-3 sentences: core function and use case]
351
+
352
+ ## Layout
353
+ [Region breakdown — text description or ASCII diagram]
354
+
355
+ ## Fields
356
+
357
+ ### [Region: e.g. "Search Filters"]
358
+ | Field | Type | Required | Options / Enum | Default | Notes |
359
+ |-------|------|----------|---------------|---------|-------|
360
+
361
+ ### [Region: e.g. "Data Table"]
362
+ | Column | Format | Sortable | Filterable | Notes |
363
+ |--------|--------|----------|-----------|-------|
364
+
365
+ ### [Region: e.g. "Actions"]
366
+ | Button | Visibility Condition | Behavior |
367
+ |--------|---------------------|----------|
368
+
369
+ ## Interactions
370
+
371
+ ### Page Load
372
+ [What happens on mount]
373
+
374
+ ### [Scenario: e.g. "Search"]
375
+ - **Trigger:** [User action]
376
+ - **Behavior:** [System response]
377
+ - **Special rules:** [If any]
378
+
379
+ ### [Scenario: e.g. "Create"]
380
+ - **Trigger:** ...
381
+ - **Modal/drawer content:** [Fields and logic inside]
382
+ - **Validation:** ...
383
+ - **On success:** ...
384
+
385
+ ## API Dependencies
386
+
387
+ | API | Method | Path | Trigger | Notes |
388
+ |-----|--------|------|---------|-------|
389
+ | ... | ... | ... | ... | ... |
390
+
391
+ ## Page Relationships
392
+ - **From:** [Source pages + params]
393
+ - **To:** [Target pages + params]
394
+ - **Data coupling:** [Cross-page refresh triggers]
395
+
396
+ ## Business Rules
397
+ [Anything that doesn't fit above]
398
+ ```
399
+
400
+ ---
401
+
402
+ ## Key Principles
403
+
404
+ ### 1. Business Language First
405
+ Don't write "calls `useState` to manage loading state." Write "search button shows a spinner to prevent duplicate submissions."
406
+
407
+ Don't write "useEffect fetches on mount." Write "page automatically loads the first page of results on open."
408
+
409
+ Include technical details only when they **directly affect product behavior**: API paths (engineers need them), validation rules (affect UX), permission conditions (affect visibility).
410
+
411
+ ### 2. Don't Miss Hidden Logic
412
+ Code contains logic PMs may not realize exists:
413
+ - Field interdependencies (type A shows field X; type B shows field Y)
414
+ - Conditional button visibility
415
+ - Data formatting (currency with 2 decimals, date formats, status label mappings)
416
+ - Default sort order and page size
417
+ - Debounce/throttle effects on user input
418
+ - Polling / auto-refresh intervals
419
+
420
+ ### 3. Exhaustively List Enums
421
+ When code defines enums (status codes, type codes, role types), list **every value and its meaning**. These are often scattered across constants files, component `valueEnum` configs, or API response mappers.
422
+
423
+ ### 4. Mark Uncertainty — Don't Guess
424
+ If a field or logic's business meaning can't be determined from code (e.g. abbreviated variable names, overly complex conditionals), mark it `[TBC]` and explain what you observed and why you're uncertain. Never fabricate business meaning.
425
+
426
+ ### 5. Keep Page Files Self-Contained
427
+ Each page's Markdown should be **standalone** — reading just that file gives complete understanding. Use relative links when referencing other pages or appendix entries.
428
+
429
+ ---
430
+
431
+ ## Page Type Strategies
432
+
433
+ ### Frontend Pages
434
+
435
+ | Page Type | Focus Areas |
436
+ |-----------|------------|
437
+ | **List / Table** | Search conditions, columns, row actions, pagination, bulk ops |
438
+ | **Form / Create-Edit** | Every field, validation, interdependencies, post-submit behavior |
439
+ | **Detail / View** | Displayed info, tab/section organization, available actions |
440
+ | **Modal / Drawer** | Describe as part of triggering page — not a separate file. But fully document content |
441
+ | **Dashboard** | Data cards, charts, metrics meaning, filter dimensions, refresh frequency |
442
+
443
+ ### Backend Endpoints (NestJS / Django / Express)
444
+
445
+ | Endpoint Type | Focus Areas |
446
+ |---------------|------------|
447
+ | **CRUD resource** | All fields (from DTO/serializer), validation rules, permissions, pagination, filtering, sorting |
448
+ | **Auth endpoints** | Login/register flow, token format, refresh logic, password reset, OAuth providers |
449
+ | **File upload** | Accepted types, size limits, storage destination, processing pipeline |
450
+ | **Webhook / event** | Trigger conditions, payload shape, retry policy, idempotency |
451
+ | **Background job** | Trigger, schedule, input/output, failure handling, monitoring |
452
+ | **Admin views** (Django) | Registered models, list_display, search_fields, filters, inline models, custom actions |
453
+
454
+ ---
455
+
456
+ ## Execution Pacing
457
+
458
+ **Large projects (>15 pages):** Work in batches of 3-5 pages per module. Complete system overview + page inventory first. Output each batch for user review before proceeding.
459
+
460
+ **Small projects (≤15 pages):** Complete all analysis in one pass.
461
+
462
+ ---
463
+
464
+ ## Common Pitfalls
465
+
466
+ | Pitfall | Fix |
467
+ |---------|-----|
468
+ | Using component names as page names | `UserManagementTable` → "User Management List" |
469
+ | Skipping modals and drawers | They contain critical business logic — document fully |
470
+ | Missing i18n field names | Check translation files, not just component JSX |
471
+ | Ignoring dynamic route params | `/order/:id` = page requires an order ID to load |
472
+ | Forgetting permission controls | Document which roles see which buttons/pages |
473
+ | Assuming all APIs are real | Check for mock data patterns before documenting endpoints |
474
+ | Skipping Django admin customization | `admin.py` often contains critical business rules (list filters, custom actions, inlines) |
475
+ | Missing NestJS guards/pipes | `@UseGuards`, `@UsePipes` contain auth and validation logic that affects behavior |
476
+ | Ignoring database constraints | Model field constraints (unique, max_length, choices) are validation rules for the PRD |
477
+ | Overlooking middleware | Auth middleware, rate limiters, and CORS config define system-wide behavior |
478
+
479
+ ---
480
+
481
+ ## Tooling
482
+
483
+ ### Scripts
484
+
485
+ | Script | Purpose | Usage |
486
+ |--------|---------|-------|
487
+ | `scripts/codebase_analyzer.py` | Scan codebase → extract routes, APIs, models, enums, structure | `python3 codebase_analyzer.py /path/to/project` |
488
+ | `scripts/prd_scaffolder.py` | Generate PRD directory skeleton from analysis JSON | `python3 prd_scaffolder.py analysis.json` |
489
+
490
+ **Recommended workflow:**
491
+ ```bash
492
+ # 1. Analyze the project (JSON output — works for frontend, backend, or fullstack)
493
+ python3 scripts/codebase_analyzer.py /path/to/project -o analysis.json
494
+
495
+ # 2. Review the analysis (markdown summary)
496
+ python3 scripts/codebase_analyzer.py /path/to/project -f markdown
497
+
498
+ # 3. Scaffold the PRD directory with stubs
499
+ python3 scripts/prd_scaffolder.py analysis.json -o prd/ -n "My App"
500
+
501
+ # 4. Fill in TODO sections page-by-page using the SKILL.md workflow
502
+ ```
503
+
504
+ Both scripts are **stdlib-only** — no pip install needed.
505
+
506
+ ### References
507
+
508
+ | File | Contents |
509
+ |------|----------|
510
+ | `references/prd-quality-checklist.md` | Validation checklist for completeness, accuracy, readability |
511
+ | `references/framework-patterns.md` | Framework-specific patterns for routes, state, APIs, forms, permissions |
512
+
513
+ ---
514
+
515
+ ## Attribution
516
+
517
+ This skill was inspired by [code-to-prd](https://github.com/lihanglogan/code-to-prd) by [@lihanglogan](https://github.com/lihanglogan), who proposed the original concept and methodology in [PR #368](https://github.com/alirezarezvani/claude-skills/pull/368). The core three-phase workflow (global scan → page-by-page analysis → structured document generation) originated from that work. This version was rebuilt from scratch in English with added tooling (analysis scripts, scaffolder, framework reference, quality checklist).
@@ -0,0 +1,81 @@
1
+ {
2
+ "project": {
3
+ "root": "/path/to/my-app",
4
+ "name": "my-app",
5
+ "framework": "next",
6
+ "detected_frameworks": ["next", "react"],
7
+ "key_dependencies": {
8
+ "next": "14.1.0",
9
+ "react": "18.2.0",
10
+ "tailwindcss": "3.4.1",
11
+ "axios": "1.6.5",
12
+ "@tanstack/react-query": "5.17.0"
13
+ },
14
+ "stack_type": "fullstack"
15
+ },
16
+ "structure": {
17
+ "total_files": 87,
18
+ "components": {
19
+ "components": 42,
20
+ "modules": 35
21
+ },
22
+ "route_dirs": ["/path/to/my-app/app"],
23
+ "api_dirs": ["/path/to/my-app/app/api"],
24
+ "state_dirs": ["/path/to/my-app/src/store"],
25
+ "i18n_dirs": [],
26
+ "controller_dirs": [],
27
+ "model_dirs": [],
28
+ "dto_dirs": []
29
+ },
30
+ "routes": {
31
+ "count": 8,
32
+ "frontend_pages": [
33
+ {"path": "/", "source": "app/page.tsx", "filesystem": true},
34
+ {"path": "/dashboard", "source": "app/dashboard/page.tsx", "filesystem": true},
35
+ {"path": "/users", "source": "app/users/page.tsx", "filesystem": true},
36
+ {"path": "/users/:id", "source": "app/users/[id]/page.tsx", "filesystem": true},
37
+ {"path": "/settings", "source": "app/settings/page.tsx", "filesystem": true}
38
+ ],
39
+ "backend_endpoints": [
40
+ {"path": "/api/users", "method": "GET", "source": "app/api/users/route.ts", "type": "backend"},
41
+ {"path": "/api/users", "method": "POST", "source": "app/api/users/route.ts", "type": "backend"},
42
+ {"path": "/api/users/:id", "method": "GET", "source": "app/api/users/[id]/route.ts", "type": "backend"}
43
+ ],
44
+ "pages": []
45
+ },
46
+ "apis": {
47
+ "total": 5,
48
+ "integrated": 4,
49
+ "mock": 1,
50
+ "endpoints": [
51
+ {"path": "/api/users", "method": "GET", "source": "services/user.ts", "integrated": true, "mock_detected": false},
52
+ {"path": "/api/users", "method": "POST", "source": "services/user.ts", "integrated": true, "mock_detected": false},
53
+ {"path": "/api/users/:id", "method": "GET", "source": "services/user.ts", "integrated": true, "mock_detected": false},
54
+ {"path": "/api/users/:id", "method": "PUT", "source": "services/user.ts", "integrated": true, "mock_detected": false},
55
+ {"path": "/api/dashboard/stats", "method": "GET", "source": "services/dashboard.ts", "integrated": false, "mock_detected": true}
56
+ ]
57
+ },
58
+ "enums": {
59
+ "count": 2,
60
+ "definitions": [
61
+ {"name": "UserRole", "type": "enum", "values": {"ADMIN": "admin", "USER": "user", "MANAGER": "manager"}, "source": "types/user.ts"},
62
+ {"name": "STATUS_MAP", "type": "constant_map", "values": {"active": "Active", "inactive": "Inactive", "suspended": "Suspended"}, "source": "constants/status.ts"}
63
+ ]
64
+ },
65
+ "models": {
66
+ "count": 0,
67
+ "definitions": []
68
+ },
69
+ "summary": {
70
+ "pages": 5,
71
+ "backend_endpoints": 3,
72
+ "api_endpoints": 5,
73
+ "api_integrated": 4,
74
+ "api_mock": 1,
75
+ "enums": 2,
76
+ "models": 0,
77
+ "has_i18n": false,
78
+ "has_state_management": true,
79
+ "stack_type": "fullstack"
80
+ }
81
+ }
@@ -0,0 +1,25 @@
1
+ # Enum Dictionary
2
+
3
+ All enums, status codes, and constant mappings found in the codebase.
4
+
5
+ ## UserRole
6
+
7
+ **Source:** `types/user.ts`
8
+ **Type:** TypeScript enum
9
+
10
+ | Value | Label | Description |
11
+ |-------|-------|-------------|
12
+ | `admin` | Admin | Full system access, can manage all users |
13
+ | `manager` | Manager | Can view and edit users, cannot delete |
14
+ | `user` | User | Read-only access |
15
+
16
+ ## STATUS_MAP
17
+
18
+ **Source:** `constants/status.ts`
19
+ **Type:** Constant map
20
+
21
+ | Key | Display Value | Color | Description |
22
+ |-----|--------------|-------|-------------|
23
+ | `active` | Active | Green | Normal active account |
24
+ | `inactive` | Inactive | Gray | Account disabled by user |
25
+ | `suspended` | Suspended | Red | Account suspended by admin |