@synapta/skills 0.1.0 → 0.1.2

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 (353) 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-discovery/SKILL.md +517 -0
  23. package/skills/concept-discovery/assets/sample-analysis.json +81 -0
  24. package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
  25. package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
  26. package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
  27. package/skills/concept-discovery/references/framework-patterns.md +228 -0
  28. package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
  29. package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
  30. package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
  31. package/skills/dast-zap/SKILL.md +453 -0
  32. package/skills/dast-zap/assets/.gitkeep +9 -0
  33. package/skills/dast-zap/assets/github_action.yml +207 -0
  34. package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
  35. package/skills/dast-zap/assets/zap_automation.yaml +196 -0
  36. package/skills/dast-zap/assets/zap_context.xml +192 -0
  37. package/skills/dast-zap/references/EXAMPLE.md +40 -0
  38. package/skills/dast-zap/references/api_testing_guide.md +475 -0
  39. package/skills/dast-zap/references/authentication_guide.md +431 -0
  40. package/skills/dast-zap/references/false_positive_handling.md +427 -0
  41. package/skills/dast-zap/references/owasp_mapping.md +255 -0
  42. package/skills/dep-sbom-scan/SKILL.md +466 -0
  43. package/skills/deploy-cloudflare/SKILL.md +930 -0
  44. package/skills/deploy-docker/SKILL.md +55 -0
  45. package/skills/deploy-fly/SKILL.md +228 -0
  46. package/skills/deploy-k8s/SKILL.md +108 -0
  47. package/skills/deploy-k8s/assets/logo.png +0 -0
  48. package/skills/deploy-k8s/docs/README.md +29 -0
  49. package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
  50. package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
  51. package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
  52. package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
  53. package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
  54. package/skills/deploy-k8s/docs/book.json +16 -0
  55. package/skills/deploy-k8s/docs/community/changelog.md +34 -0
  56. package/skills/deploy-k8s/docs/community/contributing.md +67 -0
  57. package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
  58. package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
  59. package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
  60. package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
  61. package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
  62. package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
  63. package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
  64. package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
  65. package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
  66. package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
  67. package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
  68. package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
  69. package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
  70. package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
  71. package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
  72. package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
  73. package/skills/deploy-k8s/docs/guides/observability.md +67 -0
  74. package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
  75. package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
  76. package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
  77. package/skills/deploy-k8s/docs/package-lock.json +2892 -0
  78. package/skills/deploy-k8s/docs/package.json +13 -0
  79. package/skills/deploy-k8s/references/api-drift.md +298 -0
  80. package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
  81. package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
  82. package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
  83. package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
  84. package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
  85. package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
  86. package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
  87. package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
  88. package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
  89. package/skills/deploy-k8s/references/examples-bad.md +282 -0
  90. package/skills/deploy-k8s/references/examples-good.md +440 -0
  91. package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
  92. package/skills/deploy-k8s/references/helm-patterns.md +203 -0
  93. package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
  94. package/skills/deploy-k8s/references/job-patterns.md +120 -0
  95. package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
  96. package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
  97. package/skills/deploy-k8s/references/network-exposure.md +481 -0
  98. package/skills/deploy-k8s/references/observability.md +302 -0
  99. package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
  100. package/skills/deploy-k8s/references/resource-starvation.md +374 -0
  101. package/skills/deploy-k8s/references/security-hardening.md +209 -0
  102. package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
  103. package/skills/deploy-k8s/references/storage-and-state.md +330 -0
  104. package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
  105. package/skills/deploy-railway/SKILL.md +235 -0
  106. package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
  107. package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
  108. package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
  109. package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
  110. package/skills/deploy-railway/references/analyze-db.md +344 -0
  111. package/skills/deploy-railway/references/configure.md +309 -0
  112. package/skills/deploy-railway/references/deploy.md +195 -0
  113. package/skills/deploy-railway/references/operate.md +214 -0
  114. package/skills/deploy-railway/references/request.md +248 -0
  115. package/skills/deploy-railway/references/setup.md +312 -0
  116. package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
  117. package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
  118. package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
  119. package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
  120. package/skills/deploy-railway/scripts/dal.py +671 -0
  121. package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
  122. package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
  123. package/skills/deploy-railway/scripts/railway-api.sh +52 -0
  124. package/skills/deploy-ssh/SKILL.md +91 -0
  125. package/skills/deploy-vercel/SKILL.md +304 -0
  126. package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
  127. package/skills/deploy-vercel/resources/deploy.sh +301 -0
  128. package/skills/docs-runbooks/SKILL.md +399 -0
  129. package/skills/drive-status-renderer/SKILL.md +62 -0
  130. package/skills/iac-scan/SKILL.md +680 -0
  131. package/skills/iac-scan/assets/.gitkeep +9 -0
  132. package/skills/iac-scan/assets/checkov_config.yaml +94 -0
  133. package/skills/iac-scan/assets/github_actions.yml +199 -0
  134. package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
  135. package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
  136. package/skills/iac-scan/references/EXAMPLE.md +40 -0
  137. package/skills/iac-scan/references/compliance_mapping.md +237 -0
  138. package/skills/iac-scan/references/custom_policies.md +460 -0
  139. package/skills/iac-scan/references/suppression_guide.md +431 -0
  140. package/skills/incident-briefing/SKILL.md +66 -0
  141. package/skills/incident-triage/SKILL.md +481 -0
  142. package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
  143. package/skills/mcp-builder/SKILL.md +244 -0
  144. package/skills/mcp-builder/reference/evaluation.md +602 -0
  145. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  146. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  147. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  148. package/skills/mcp-builder/scripts/connections.py +151 -0
  149. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  150. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  151. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  152. package/skills/mobile-pairing/SKILL.md +52 -0
  153. package/skills/ops-sre/SKILL.md +297 -0
  154. package/skills/playwright-qa/LICENSE.txt +201 -0
  155. package/skills/playwright-qa/NOTICE.txt +14 -0
  156. package/skills/playwright-qa/SKILL.md +156 -0
  157. package/skills/playwright-qa/agents/openai.yaml +6 -0
  158. package/skills/playwright-qa/assets/playwright-small.svg +3 -0
  159. package/skills/playwright-qa/assets/playwright.png +0 -0
  160. package/skills/playwright-qa/references/cli.md +116 -0
  161. package/skills/playwright-qa/references/workflows.md +95 -0
  162. package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
  163. package/skills/release-publish/SKILL.md +85 -0
  164. package/skills/repo-bootstrap/SKILL.md +92 -0
  165. package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
  166. package/skills/repo-bootstrap/assets/root-thin.md +141 -0
  167. package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
  168. package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
  169. package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
  170. package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
  171. package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
  172. package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
  173. package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
  174. package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
  175. package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
  176. package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
  177. package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
  178. package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
  179. package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
  180. package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
  181. package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
  182. package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
  183. package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
  184. package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
  185. package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
  186. package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
  187. package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
  188. package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
  189. package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
  190. package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
  191. package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
  192. package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
  193. package/skills/repo-bootstrap/checkpoints.yaml +279 -0
  194. package/skills/repo-bootstrap/evals/evals.json +385 -0
  195. package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
  196. package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
  197. package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
  198. package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
  199. package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
  200. package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
  201. package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
  202. package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
  203. package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
  204. package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
  205. package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
  206. package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
  207. package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
  208. package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
  209. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
  210. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
  211. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
  212. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
  213. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
  214. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
  215. package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
  216. package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
  217. package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
  218. package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
  219. package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
  220. package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
  221. package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
  222. package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
  223. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
  224. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
  225. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
  226. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
  227. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
  228. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
  229. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
  230. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
  231. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
  232. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
  233. package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
  234. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
  235. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
  236. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
  237. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
  238. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
  239. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
  240. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
  241. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
  242. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
  243. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
  244. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
  245. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
  246. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
  247. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
  248. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
  249. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
  250. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
  251. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
  252. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
  253. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
  254. package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
  255. package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
  256. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
  257. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
  258. package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
  259. package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
  260. package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
  261. package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
  262. package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
  263. package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
  264. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
  265. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
  266. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
  267. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
  268. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
  269. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
  270. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
  271. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
  272. package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
  273. package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
  274. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
  275. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
  276. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
  277. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
  278. package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
  279. package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
  280. package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
  281. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
  282. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
  283. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
  284. package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
  285. package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
  286. package/skills/repo-bootstrap/references/output-structure.md +124 -0
  287. package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
  288. package/skills/repo-bootstrap/references/verification-guide.md +137 -0
  289. package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
  290. package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
  291. package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
  292. package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
  293. package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
  294. package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
  295. package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
  296. package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
  297. package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
  298. package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
  299. package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
  300. package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
  301. package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
  302. package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
  303. package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
  304. package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
  305. package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
  306. package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
  307. package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
  308. package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
  309. package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
  310. package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
  311. package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
  312. package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
  313. package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
  314. package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
  315. package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
  316. package/skills/schema-api-contracts/SKILL.md +56 -0
  317. package/skills/secret-hygiene/SKILL.md +511 -0
  318. package/skills/secret-hygiene/assets/.gitkeep +9 -0
  319. package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
  320. package/skills/secret-hygiene/assets/config-custom.toml +178 -0
  321. package/skills/secret-hygiene/assets/config-strict.toml +48 -0
  322. package/skills/secret-hygiene/assets/github-action.yml +181 -0
  323. package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
  324. package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
  325. package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
  326. package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
  327. package/skills/secret-hygiene/references/detection_rules.md +276 -0
  328. package/skills/secret-hygiene/references/false_positives.md +598 -0
  329. package/skills/secret-hygiene/references/remediation_guide.md +530 -0
  330. package/skills/stack-selector/SKILL.md +56 -0
  331. package/skills/telegram-control/SKILL.md +110 -0
  332. package/skills/telegram-control/references/architecture.md +184 -0
  333. package/skills/telegram-control/references/convex.md +173 -0
  334. package/skills/telegram-control/references/error_handling.md +212 -0
  335. package/skills/telegram-control/references/initial_setup.md +165 -0
  336. package/skills/telegram-control/references/telegram_api.md +156 -0
  337. package/skills/telegram-control/scripts/cancel_message.ts +53 -0
  338. package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
  339. package/skills/telegram-control/scripts/logger.ts +121 -0
  340. package/skills/telegram-control/scripts/proxy-util.ts +11 -0
  341. package/skills/telegram-control/scripts/schedule_message.ts +216 -0
  342. package/skills/telegram-control/scripts/send_message.ts +115 -0
  343. package/skills/telegram-control/scripts/setup.ts +185 -0
  344. package/skills/telegram-control/scripts/types.ts +75 -0
  345. package/skills/telegram-control/scripts/view_history.ts +74 -0
  346. package/skills/test-strategy/SKILL.md +352 -0
  347. package/skills/threat-model/SKILL.md +303 -0
  348. package/skills/threat-model/examples/example-output.md +196 -0
  349. package/skills/threat-model/template.md +96 -0
  350. package/skills/ts-lint/SKILL.md +80 -0
  351. package/skills/ui-flow/SKILL.md +668 -0
  352. package/skills/voice-command-router/SKILL.md +51 -0
  353. package/skills/widget-live-activity-sync/SKILL.md +66 -0
@@ -0,0 +1,91 @@
1
+ <!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: 2026-02-05 -->
2
+
3
+ # AGENTS.md — src
4
+
5
+ <!-- AGENTS-GENERATED:START overview -->
6
+ ## Overview
7
+ Backend services (TypeScript/Node.js)
8
+ <!-- AGENTS-GENERATED:END overview -->
9
+
10
+ <!-- AGENTS-GENERATED:START filemap -->
11
+ ## Key Files
12
+ | File | Purpose |
13
+ |------|---------|
14
+ | `src/config.ts` | (add description) |
15
+ | `src/routes/health.ts` | Add database connectivity check here |
16
+ | `src/routes/users.ts` | (add description) |
17
+ | `src/index.ts` | Middleware |
18
+ | `src/utils/logger.ts` | (add description) |
19
+ <!-- AGENTS-GENERATED:END filemap -->
20
+
21
+ <!-- AGENTS-GENERATED:START golden-samples -->
22
+ ## Golden Samples (follow these patterns)
23
+ | Pattern | Reference |
24
+ |---------|-----------|
25
+ | Standard implementation | `src/controllers/userController.ts` |
26
+ <!-- AGENTS-GENERATED:END golden-samples -->
27
+
28
+ <!-- AGENTS-GENERATED:START setup -->
29
+ ## Setup & environment
30
+ - Install: `pnpm install`
31
+ - Node version: >=20.0.0
32
+ - Package manager: pnpm
33
+ - Environment variables: See .env or .env.example
34
+ <!-- AGENTS-GENERATED:END setup -->
35
+
36
+ <!-- AGENTS-GENERATED:START commands -->
37
+ ## Build & tests
38
+ - Typecheck (project-wide): `pnpm typecheck`
39
+ - Format: `pnpm format`
40
+ - Lint: `pnpm lint`
41
+ - Test: `pnpm test`
42
+ - Build: `pnpm build`
43
+ - Dev server: `pnpm dev`
44
+ <!-- AGENTS-GENERATED:END commands -->
45
+
46
+ <!-- AGENTS-GENERATED:START code-style -->
47
+ ## Code style & conventions
48
+ - Use TypeScript strict mode (`strict: true` in tsconfig)
49
+ - No `any` without explicit justification comment
50
+ - Prefer `interface` over `type` for object shapes
51
+ - Naming: `camelCase` for functions/vars, `PascalCase` for classes/types
52
+ - Async/await over raw Promises
53
+ - Prefer `const` over `let`, never use `var`
54
+ - Destructure objects and arrays when appropriate
55
+ <!-- AGENTS-GENERATED:END code-style -->
56
+
57
+ <!-- AGENTS-GENERATED:START security -->
58
+ ## Security & safety
59
+ - Validate all user inputs (use zod or similar)
60
+ - Parameterized queries only (no string concatenation)
61
+ - Never use dynamic code execution with user data
62
+ - Sensitive data: never log or expose in errors
63
+ - Environment: use dotenv, never hardcode secrets
64
+ - CORS: configure explicitly, no wildcard in production
65
+ - Rate limiting: implement for public endpoints
66
+ <!-- AGENTS-GENERATED:END security -->
67
+
68
+ <!-- AGENTS-GENERATED:START checklist -->
69
+ ## PR/commit checklist
70
+ - [ ] Tests pass: `pnpm test`
71
+ - [ ] Type check clean: `pnpm typecheck`
72
+ - [ ] Lint clean: `pnpm lint`
73
+ - [ ] Formatted: `pnpm format`
74
+ - [ ] No `any` types without justification
75
+ - [ ] API endpoints have validation
76
+ - [ ] Error responses don't leak internals
77
+ <!-- AGENTS-GENERATED:END checklist -->
78
+
79
+ <!-- AGENTS-GENERATED:START examples -->
80
+ ## Patterns to Follow
81
+ > **Prefer looking at real code in this repo over generic examples.**
82
+ > See **Golden Samples** section above for files that demonstrate correct patterns.
83
+ <!-- AGENTS-GENERATED:END examples -->
84
+
85
+ <!-- AGENTS-GENERATED:START help -->
86
+ ## When stuck
87
+ - Check Node.js docs: https://nodejs.org/docs
88
+ - TypeScript handbook: https://www.typescriptlang.org/docs
89
+ - Review existing patterns in this codebase
90
+ - Check root AGENTS.md for project-wide conventions
91
+ <!-- AGENTS-GENERATED:END help -->
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+
3
+ const envSchema = z.object({
4
+ PORT: z.coerce.number().default(3000),
5
+ NODE_ENV: z.enum(['development', 'production', 'test']).default('development'),
6
+ DATABASE_URL: z.string().url().optional(),
7
+ LOG_LEVEL: z.enum(['debug', 'info', 'warn', 'error']).default('info'),
8
+ JWT_SECRET: z.string().min(32).optional(),
9
+ CORS_ORIGIN: z.string().url().optional(),
10
+ });
11
+
12
+ const parsed = envSchema.safeParse(process.env);
13
+
14
+ if (!parsed.success) {
15
+ console.error('Invalid environment variables:', parsed.error.flatten().fieldErrors);
16
+ process.exit(1);
17
+ }
18
+
19
+ export const config = {
20
+ port: parsed.data.PORT,
21
+ nodeEnv: parsed.data.NODE_ENV,
22
+ databaseUrl: parsed.data.DATABASE_URL,
23
+ logLevel: parsed.data.LOG_LEVEL,
24
+ jwtSecret: parsed.data.JWT_SECRET,
25
+ corsOrigin: parsed.data.CORS_ORIGIN,
26
+ isDev: parsed.data.NODE_ENV === 'development',
27
+ isProd: parsed.data.NODE_ENV === 'production',
28
+ } as const;
@@ -0,0 +1,74 @@
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ import { z } from 'zod';
3
+ import { AppError } from '../utils/errors.js';
4
+
5
+ const createUserSchema = z.object({
6
+ email: z.string().email(),
7
+ name: z.string().min(1).max(100),
8
+ });
9
+
10
+ const updateUserSchema = createUserSchema.partial();
11
+
12
+ // In-memory store for demo purposes
13
+ const users = new Map<string, { id: string; email: string; name: string }>();
14
+
15
+ export class UserController {
16
+ getAll = async (_req: Request, res: Response): Promise<void> => {
17
+ const allUsers = Array.from(users.values());
18
+ res.json({ data: allUsers });
19
+ };
20
+
21
+ getById = async (req: Request, res: Response, next: NextFunction): Promise<void> => {
22
+ const user = users.get(req.params.id ?? '');
23
+ if (!user) {
24
+ next(new AppError('User not found', 404));
25
+ return;
26
+ }
27
+ res.json({ data: user });
28
+ };
29
+
30
+ create = async (req: Request, res: Response, next: NextFunction): Promise<void> => {
31
+ const parsed = createUserSchema.safeParse(req.body);
32
+ if (!parsed.success) {
33
+ next(new AppError('Validation failed', 400, parsed.error.flatten()));
34
+ return;
35
+ }
36
+
37
+ const id = crypto.randomUUID();
38
+ const user = { id, ...parsed.data };
39
+ users.set(id, user);
40
+
41
+ res.status(201).json({ data: user });
42
+ };
43
+
44
+ update = async (req: Request, res: Response, next: NextFunction): Promise<void> => {
45
+ const id = req.params.id ?? '';
46
+ const existing = users.get(id);
47
+ if (!existing) {
48
+ next(new AppError('User not found', 404));
49
+ return;
50
+ }
51
+
52
+ const parsed = updateUserSchema.safeParse(req.body);
53
+ if (!parsed.success) {
54
+ next(new AppError('Validation failed', 400, parsed.error.flatten()));
55
+ return;
56
+ }
57
+
58
+ const updated = { ...existing, ...parsed.data };
59
+ users.set(id, updated);
60
+
61
+ res.json({ data: updated });
62
+ };
63
+
64
+ delete = async (req: Request, res: Response, next: NextFunction): Promise<void> => {
65
+ const id = req.params.id ?? '';
66
+ if (!users.has(id)) {
67
+ next(new AppError('User not found', 404));
68
+ return;
69
+ }
70
+
71
+ users.delete(id);
72
+ res.status(204).send();
73
+ };
74
+ }
@@ -0,0 +1,26 @@
1
+ import express from 'express';
2
+ import { config } from './config.js';
3
+ import { logger } from './utils/logger.js';
4
+ import { errorHandler } from './middleware/errorHandler.js';
5
+ import { requestLogger } from './middleware/requestLogger.js';
6
+ import { userRoutes } from './routes/users.js';
7
+ import { healthRoutes } from './routes/health.js';
8
+
9
+ const app = express();
10
+
11
+ // Middleware
12
+ app.use(express.json());
13
+ app.use(requestLogger);
14
+
15
+ // Routes
16
+ app.use('/api/users', userRoutes);
17
+ app.use('/health', healthRoutes);
18
+
19
+ // Error handling (must be last)
20
+ app.use(errorHandler);
21
+
22
+ app.listen(config.port, () => {
23
+ logger.info(`Server running on port ${config.port}`);
24
+ });
25
+
26
+ export { app };
@@ -0,0 +1,45 @@
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ import { AppError } from '../utils/errors.js';
3
+ import { logger } from '../utils/logger.js';
4
+ import { config } from '../config.js';
5
+
6
+ interface ErrorResponse {
7
+ error: {
8
+ message: string;
9
+ code?: string;
10
+ details?: unknown;
11
+ stack?: string;
12
+ };
13
+ }
14
+
15
+ export function errorHandler(
16
+ err: Error,
17
+ _req: Request,
18
+ res: Response<ErrorResponse>,
19
+ _next: NextFunction
20
+ ): void {
21
+ logger.error('Request error', { error: err.message, stack: err.stack });
22
+
23
+ if (err instanceof AppError) {
24
+ res.status(err.statusCode).json({
25
+ error: {
26
+ message: err.message,
27
+ code: err.code,
28
+ details: err.details,
29
+ },
30
+ });
31
+ return;
32
+ }
33
+
34
+ // Unknown error - don't leak internals in production
35
+ const message = config.isProd ? 'Internal server error' : err.message;
36
+ const response: ErrorResponse = {
37
+ error: { message },
38
+ };
39
+
40
+ if (!config.isProd) {
41
+ response.error.stack = err.stack;
42
+ }
43
+
44
+ res.status(500).json(response);
45
+ }
@@ -0,0 +1,18 @@
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ import { logger } from '../utils/logger.js';
3
+
4
+ export function requestLogger(req: Request, res: Response, next: NextFunction): void {
5
+ const start = Date.now();
6
+
7
+ res.on('finish', () => {
8
+ const duration = Date.now() - start;
9
+ logger.info('Request completed', {
10
+ method: req.method,
11
+ path: req.path,
12
+ status: res.statusCode,
13
+ duration: `${duration}ms`,
14
+ });
15
+ });
16
+
17
+ next();
18
+ }
@@ -0,0 +1,18 @@
1
+ import { Router, type Request, type Response } from 'express';
2
+
3
+ const router = Router();
4
+
5
+ router.get('/', (_req: Request, res: Response) => {
6
+ res.json({
7
+ status: 'healthy',
8
+ timestamp: new Date().toISOString(),
9
+ uptime: process.uptime(),
10
+ });
11
+ });
12
+
13
+ router.get('/ready', (_req: Request, res: Response) => {
14
+ // Add database connectivity check here
15
+ res.json({ ready: true });
16
+ });
17
+
18
+ export { router as healthRoutes };
@@ -0,0 +1,13 @@
1
+ import { Router } from 'express';
2
+ import { UserController } from '../controllers/userController.js';
3
+
4
+ const router = Router();
5
+ const controller = new UserController();
6
+
7
+ router.get('/', controller.getAll);
8
+ router.get('/:id', controller.getById);
9
+ router.post('/', controller.create);
10
+ router.put('/:id', controller.update);
11
+ router.delete('/:id', controller.delete);
12
+
13
+ export { router as userRoutes };
@@ -0,0 +1,40 @@
1
+ export class AppError extends Error {
2
+ public readonly statusCode: number;
3
+ public readonly code?: string;
4
+ public readonly details?: unknown;
5
+
6
+ constructor(message: string, statusCode: number = 500, details?: unknown, code?: string) {
7
+ super(message);
8
+ this.name = 'AppError';
9
+ this.statusCode = statusCode;
10
+ this.code = code;
11
+ this.details = details;
12
+
13
+ // Maintain proper stack trace
14
+ Error.captureStackTrace(this, this.constructor);
15
+ }
16
+
17
+ static badRequest(message: string, details?: unknown): AppError {
18
+ return new AppError(message, 400, details, 'BAD_REQUEST');
19
+ }
20
+
21
+ static unauthorized(message = 'Unauthorized'): AppError {
22
+ return new AppError(message, 401, undefined, 'UNAUTHORIZED');
23
+ }
24
+
25
+ static forbidden(message = 'Forbidden'): AppError {
26
+ return new AppError(message, 403, undefined, 'FORBIDDEN');
27
+ }
28
+
29
+ static notFound(resource = 'Resource'): AppError {
30
+ return new AppError(`${resource} not found`, 404, undefined, 'NOT_FOUND');
31
+ }
32
+
33
+ static conflict(message: string): AppError {
34
+ return new AppError(message, 409, undefined, 'CONFLICT');
35
+ }
36
+
37
+ static internal(message = 'Internal server error'): AppError {
38
+ return new AppError(message, 500, undefined, 'INTERNAL_ERROR');
39
+ }
40
+ }
@@ -0,0 +1,14 @@
1
+ import winston from 'winston';
2
+ import { config } from '../config.js';
3
+
4
+ export const logger = winston.createLogger({
5
+ level: config.logLevel,
6
+ format: winston.format.combine(
7
+ winston.format.timestamp(),
8
+ winston.format.errors({ stack: true }),
9
+ config.isDev
10
+ ? winston.format.combine(winston.format.colorize(), winston.format.simple())
11
+ : winston.format.json()
12
+ ),
13
+ transports: [new winston.transports.Console()],
14
+ });
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "lib": ["ES2022"],
7
+ "outDir": "./dist",
8
+ "rootDir": "./src",
9
+ "strict": true,
10
+ "esModuleInterop": true,
11
+ "skipLibCheck": true,
12
+ "forceConsistentCasingInFileNames": true,
13
+ "resolveJsonModule": true,
14
+ "declaration": true,
15
+ "declarationMap": true,
16
+ "sourceMap": true,
17
+ "noUncheckedIndexedAccess": true,
18
+ "noImplicitReturns": true,
19
+ "noFallthroughCasesInSwitch": true,
20
+ "exactOptionalPropertyTypes": true
21
+ },
22
+ "include": ["src/**/*"],
23
+ "exclude": ["node_modules", "dist"]
24
+ }
@@ -0,0 +1,19 @@
1
+ # Application Settings
2
+ APP_NAME=fastapi-app
3
+ APP_ENV=development
4
+ DEBUG=true
5
+
6
+ # Server Configuration
7
+ HOST=0.0.0.0
8
+ PORT=8000
9
+ WORKERS=1
10
+
11
+ # Database
12
+ DATABASE_URL=postgresql://user:password@localhost:5432/fastapi_app
13
+
14
+ # Security
15
+ SECRET_KEY=your-secret-key-change-in-production
16
+ API_KEY=your-api-key
17
+
18
+ # External Services
19
+ REDIS_URL=redis://localhost:6379/0
@@ -0,0 +1,92 @@
1
+ <!-- FOR AI AGENTS - Human readability is a side effect, not a goal -->
2
+ <!-- Managed by agent: keep sections and order; edit content, not structure -->
3
+ <!-- Last updated: 2026-02-05 | Last verified: never -->
4
+
5
+ # AGENTS.md
6
+
7
+ **Precedence:** the **closest `AGENTS.md`** to the files you're changing wins. Root holds global defaults only.
8
+
9
+ ## Commands (unverified)
10
+ > Source: pyproject.toml — CI-sourced commands are most reliable
11
+
12
+ <!-- AGENTS-GENERATED:START commands -->
13
+ | Task | Command | ~Time |
14
+ |------|---------|-------|
15
+ | Typecheck | mypy . | ~15s |
16
+ | Lint | ruff check . | ~10s |
17
+ | Format | ruff format . | ~5s |
18
+ | Test (single) | pytest | ~2s |
19
+ | Test (all) | pytest | ~30s |
20
+ <!-- AGENTS-GENERATED:END commands -->
21
+
22
+ > If commands fail, verify against Makefile/package.json/composer.json or ask user to update.
23
+
24
+ ## Workflow
25
+ 1. **Before coding**: Read nearest `AGENTS.md` + check Golden Samples for the area you're touching
26
+ 2. **After each change**: Run the smallest relevant check (lint → typecheck → single test)
27
+ 3. **Before committing**: Run full test suite if changes affect >2 files or touch shared code
28
+
29
+ ## File Map
30
+ <!-- AGENTS-GENERATED:START filemap -->
31
+ ```
32
+ src/ → application source code
33
+ ```
34
+ <!-- AGENTS-GENERATED:END filemap -->
35
+
36
+ ## Golden Samples (follow these patterns)
37
+ <!-- AGENTS-GENERATED:START golden-samples -->
38
+ | For | Reference | Key patterns |
39
+ |-----|-----------|--------------|
40
+ | Entrypoint | `src/main.py` | (async) |
41
+ | Service | `src/services/item_service.py` | (class) |
42
+ <!-- AGENTS-GENERATED:END golden-samples -->
43
+
44
+ ## Heuristics (quick decisions)
45
+ <!-- AGENTS-GENERATED:START heuristics -->
46
+ | When | Do |
47
+ |------|-----|
48
+ | Adding dependency | Update `pyproject.toml` |
49
+ | Adding env var | Add to `.env.example` first |
50
+ | Committing | Use Conventional Commits (feat:, fix:, docs:, etc.) |
51
+ | Merging PRs | Squash and merge |
52
+ | Adding dependency | Ask first - we minimize deps |
53
+ | Unsure about pattern | Check Golden Samples above |
54
+ <!-- AGENTS-GENERATED:END heuristics -->
55
+
56
+ ## Repository Settings
57
+ <!-- AGENTS-GENERATED:START repo-settings -->
58
+ - **Default branch:** `main`
59
+ - **Merge strategy:** squash, merge, rebase
60
+ <!-- AGENTS-GENERATED:END repo-settings -->
61
+
62
+ ## Boundaries
63
+
64
+ ### Always Do
65
+ - Run pre-commit checks before committing
66
+ - Add tests for new code paths
67
+ - Use conventional commit format: `type(scope): subject`
68
+ - Follow PEP 8 style guide and Python >=3.11 features
69
+
70
+ ### Ask First
71
+ - Adding new dependencies
72
+ - Modifying CI/CD configuration
73
+ - Changing public API signatures
74
+ - Running full e2e test suites
75
+ - Repo-wide refactoring or rewrites
76
+
77
+ ### Never Do
78
+ - Commit secrets, credentials, or sensitive data
79
+ - Modify vendor/, node_modules/, or generated files
80
+ - Push directly to main/master branch
81
+ - Delete migration files or schema changes
82
+ - Commit requirements.txt without pyproject.toml changes
83
+ - Use print() for logging in production code
84
+
85
+ ## Index of scoped AGENTS.md
86
+ <!-- AGENTS-GENERATED:START scope-index -->
87
+ - `./src/AGENTS.md` — Backend services (Python)
88
+ <!-- AGENTS-GENERATED:END scope-index -->
89
+
90
+ ## When instructions conflict
91
+ The nearest `AGENTS.md` wins. Explicit user prompts override files.
92
+ - For Python-specific patterns, follow PEP 8 and project tooling (ruff/black)
@@ -0,0 +1,88 @@
1
+ [project]
2
+ name = "fastapi-app"
3
+ version = "0.1.0"
4
+ description = "Example FastAPI application for AGENTS.md generator testing"
5
+ readme = "README.md"
6
+ requires-python = ">=3.11"
7
+ license = { text = "MIT" }
8
+ authors = [
9
+ { name = "Test Author", email = "test@example.com" }
10
+ ]
11
+ dependencies = [
12
+ "fastapi>=0.109.0",
13
+ "uvicorn[standard]>=0.27.0",
14
+ "pydantic>=2.5.0",
15
+ "pydantic-settings>=2.1.0",
16
+ "sqlalchemy>=2.0.25",
17
+ "alembic>=1.13.0",
18
+ "httpx>=0.26.0",
19
+ ]
20
+
21
+ [project.optional-dependencies]
22
+ dev = [
23
+ "pytest>=7.4.0",
24
+ "pytest-asyncio>=0.23.0",
25
+ "pytest-cov>=4.1.0",
26
+ "ruff>=0.1.14",
27
+ "mypy>=1.8.0",
28
+ "pre-commit>=3.6.0",
29
+ ]
30
+
31
+ [project.scripts]
32
+ serve = "src.main:run"
33
+
34
+ [build-system]
35
+ requires = ["hatchling"]
36
+ build-backend = "hatchling.build"
37
+
38
+ [tool.hatch.build.targets.wheel]
39
+ packages = ["src"]
40
+
41
+ [tool.ruff]
42
+ target-version = "py311"
43
+ line-length = 100
44
+ src = ["src", "tests"]
45
+
46
+ [tool.ruff.lint]
47
+ select = [
48
+ "E", # pycodestyle errors
49
+ "W", # pycodestyle warnings
50
+ "F", # Pyflakes
51
+ "I", # isort
52
+ "B", # flake8-bugbear
53
+ "C4", # flake8-comprehensions
54
+ "UP", # pyupgrade
55
+ "ARG", # flake8-unused-arguments
56
+ "SIM", # flake8-simplify
57
+ ]
58
+ ignore = ["E501"]
59
+
60
+ [tool.ruff.lint.isort]
61
+ known-first-party = ["src"]
62
+
63
+ [tool.mypy]
64
+ python_version = "3.11"
65
+ strict = true
66
+ warn_return_any = true
67
+ warn_unused_configs = true
68
+ plugins = ["pydantic.mypy"]
69
+
70
+ [[tool.mypy.overrides]]
71
+ module = ["uvicorn.*"]
72
+ ignore_missing_imports = true
73
+
74
+ [tool.pytest.ini_options]
75
+ testpaths = ["tests"]
76
+ asyncio_mode = "auto"
77
+ addopts = "-v --cov=src --cov-report=term-missing"
78
+
79
+ [tool.coverage.run]
80
+ source = ["src"]
81
+ branch = true
82
+
83
+ [tool.coverage.report]
84
+ exclude_lines = [
85
+ "pragma: no cover",
86
+ "if TYPE_CHECKING:",
87
+ "if __name__ == .__main__.:",
88
+ ]
@@ -0,0 +1,85 @@
1
+ <!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: 2026-02-05 -->
2
+
3
+ # AGENTS.md — src
4
+
5
+ <!-- AGENTS-GENERATED:START overview -->
6
+ ## Overview
7
+ Backend services (Python)
8
+ <!-- AGENTS-GENERATED:END overview -->
9
+
10
+ <!-- AGENTS-GENERATED:START filemap -->
11
+ ## Key Files
12
+ | File | Purpose |
13
+ |------|---------|
14
+ | `src/config.py` | Application |
15
+ | `src/__init__.py` | (add description) |
16
+ | `src/services/__init__.py` | (add description) |
17
+ | `src/services/item_service.py` | (add description) |
18
+ | `src/services/user_service.py` | (add description) |
19
+ <!-- AGENTS-GENERATED:END filemap -->
20
+
21
+ <!-- AGENTS-GENERATED:START golden-samples -->
22
+ ## Golden Samples (follow these patterns)
23
+ | Pattern | Reference |
24
+ |---------|-----------|
25
+ | Standard implementation | `src/services/item_service.py` |
26
+ <!-- AGENTS-GENERATED:END golden-samples -->
27
+
28
+ <!-- AGENTS-GENERATED:START setup -->
29
+ ## Setup & environment
30
+ - Install: `pip install -e .`
31
+ - Python version: >=3.11
32
+ - Package manager: uv
33
+ - Environment variables: See .env or .env.example
34
+ <!-- AGENTS-GENERATED:END setup -->
35
+
36
+ <!-- AGENTS-GENERATED:START commands -->
37
+ ## Build & tests
38
+ - Typecheck: `mypy .`
39
+ - Format: `ruff format .`
40
+ - Lint: `ruff check .`
41
+ - Test: `pytest`
42
+ <!-- AGENTS-GENERATED:END commands -->
43
+
44
+ <!-- AGENTS-GENERATED:START code-style -->
45
+ ## Code style & conventions
46
+ - Follow PEP 8 style guide
47
+ - Use type hints for all function signatures
48
+ - Naming: `snake_case` for functions/variables, `PascalCase` for classes
49
+ - Docstrings: Google style, required for public APIs
50
+ - Imports: group by stdlib, third-party, local (use isort)
51
+ - Modern Python: prefer `|` over `Union`, `list` over `List`
52
+ <!-- AGENTS-GENERATED:END code-style -->
53
+
54
+ <!-- AGENTS-GENERATED:START security -->
55
+ ## Security & safety
56
+ - Validate and sanitize all user inputs
57
+ - Use parameterized queries for database access
58
+ - Never use dynamic code execution with untrusted data
59
+ - Sensitive data: never log or expose in errors
60
+ - File paths: validate and use `pathlib` for path operations
61
+ - Subprocess: use list args, avoid shell=True with user input
62
+ <!-- AGENTS-GENERATED:END security -->
63
+
64
+ <!-- AGENTS-GENERATED:START checklist -->
65
+ ## PR/commit checklist
66
+ - [ ] Tests pass: `pytest`
67
+ - [ ] Type check clean: `mypy .`
68
+ - [ ] Lint clean: `ruff check .`
69
+ - [ ] Formatted: `ruff format .`
70
+ - [ ] Public functions have docstrings
71
+ <!-- AGENTS-GENERATED:END checklist -->
72
+
73
+ <!-- AGENTS-GENERATED:START examples -->
74
+ ## Patterns to Follow
75
+ > **Prefer looking at real code in this repo over generic examples.**
76
+ > See **Golden Samples** section above for files that demonstrate correct patterns.
77
+ <!-- AGENTS-GENERATED:END examples -->
78
+
79
+ <!-- AGENTS-GENERATED:START help -->
80
+ ## When stuck
81
+ - Check Python documentation: https://docs.python.org
82
+ - Review existing patterns in this codebase
83
+ - Check root AGENTS.md for project-wide conventions
84
+ - Use `python -m pydoc <module>` for stdlib help
85
+ <!-- AGENTS-GENERATED:END help -->