@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,3 @@
1
+ """FastAPI application package."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,49 @@
1
+ """Application configuration using pydantic-settings."""
2
+
3
+ from functools import lru_cache
4
+
5
+ from pydantic_settings import BaseSettings, SettingsConfigDict
6
+
7
+
8
+ class Settings(BaseSettings):
9
+ """Application settings loaded from environment variables."""
10
+
11
+ model_config = SettingsConfigDict(
12
+ env_file=".env",
13
+ env_file_encoding="utf-8",
14
+ case_sensitive=False,
15
+ )
16
+
17
+ # Application
18
+ app_name: str = "fastapi-app"
19
+ app_env: str = "development"
20
+ debug: bool = True
21
+
22
+ # Server
23
+ host: str = "0.0.0.0"
24
+ port: int = 8000
25
+ workers: int = 1
26
+
27
+ # Database
28
+ database_url: str = "postgresql://user:password@localhost:5432/fastapi_app"
29
+
30
+ # Security
31
+ secret_key: str = "change-me-in-production"
32
+ api_key: str = ""
33
+
34
+ # External Services
35
+ redis_url: str = "redis://localhost:6379/0"
36
+
37
+ @property
38
+ def is_production(self) -> bool:
39
+ """Check if running in production environment."""
40
+ return self.app_env == "production"
41
+
42
+
43
+ @lru_cache
44
+ def get_settings() -> Settings:
45
+ """Get cached settings instance."""
46
+ return Settings()
47
+
48
+
49
+ settings = get_settings()
@@ -0,0 +1,66 @@
1
+ """FastAPI application entry point."""
2
+
3
+ from collections.abc import AsyncIterator
4
+ from contextlib import asynccontextmanager
5
+
6
+ import uvicorn
7
+ from fastapi import FastAPI
8
+ from fastapi.middleware.cors import CORSMiddleware
9
+
10
+ from src.config import settings
11
+ from src.routes import health, items, users
12
+
13
+
14
+ @asynccontextmanager
15
+ async def lifespan(_app: FastAPI) -> AsyncIterator[None]:
16
+ """Application lifespan context manager."""
17
+ # Startup
18
+ print(f"Starting {settings.app_name}...")
19
+ yield
20
+ # Shutdown
21
+ print(f"Shutting down {settings.app_name}...")
22
+
23
+
24
+ def create_app() -> FastAPI:
25
+ """Create and configure the FastAPI application."""
26
+ app = FastAPI(
27
+ title=settings.app_name,
28
+ version="0.1.0",
29
+ description="Example FastAPI application",
30
+ lifespan=lifespan,
31
+ )
32
+
33
+ # CORS middleware — wildcard origins here are intentional for this
34
+ # fixture example only; real deployments must set concrete origins
35
+ # from settings (e.g. settings.cors_allowed_origins).
36
+ app.add_middleware(
37
+ CORSMiddleware,
38
+ allow_origins=["*"], # nosemgrep: python.fastapi.security.wildcard-cors.wildcard-cors
39
+ allow_credentials=True,
40
+ allow_methods=["*"],
41
+ allow_headers=["*"],
42
+ )
43
+
44
+ # Include routers
45
+ app.include_router(health.router, tags=["health"])
46
+ app.include_router(users.router, prefix="/api/v1/users", tags=["users"])
47
+ app.include_router(items.router, prefix="/api/v1/items", tags=["items"])
48
+
49
+ return app
50
+
51
+
52
+ app = create_app()
53
+
54
+
55
+ def run() -> None:
56
+ """Run the application with uvicorn."""
57
+ uvicorn.run(
58
+ "src.main:app",
59
+ host=settings.host,
60
+ port=settings.port,
61
+ reload=settings.debug,
62
+ )
63
+
64
+
65
+ if __name__ == "__main__":
66
+ run()
@@ -0,0 +1,13 @@
1
+ """Pydantic models for request/response schemas."""
2
+
3
+ from src.models.item import Item, ItemCreate, ItemUpdate
4
+ from src.models.user import User, UserCreate, UserUpdate
5
+
6
+ __all__ = [
7
+ "Item",
8
+ "ItemCreate",
9
+ "ItemUpdate",
10
+ "User",
11
+ "UserCreate",
12
+ "UserUpdate",
13
+ ]
@@ -0,0 +1,43 @@
1
+ """Item model schemas."""
2
+
3
+ from datetime import datetime
4
+ from decimal import Decimal
5
+
6
+ from pydantic import BaseModel, Field
7
+
8
+
9
+ class ItemBase(BaseModel):
10
+ """Base item schema with common fields."""
11
+
12
+ name: str = Field(..., min_length=1, max_length=200)
13
+ description: str | None = None
14
+ price: Decimal = Field(..., ge=0, decimal_places=2)
15
+ quantity: int = Field(default=0, ge=0)
16
+ is_available: bool = True
17
+
18
+
19
+ class ItemCreate(ItemBase):
20
+ """Schema for creating a new item."""
21
+
22
+ owner_id: int
23
+
24
+
25
+ class ItemUpdate(BaseModel):
26
+ """Schema for updating an existing item."""
27
+
28
+ name: str | None = Field(None, min_length=1, max_length=200)
29
+ description: str | None = None
30
+ price: Decimal | None = Field(None, ge=0, decimal_places=2)
31
+ quantity: int | None = Field(None, ge=0)
32
+ is_available: bool | None = None
33
+
34
+
35
+ class Item(ItemBase):
36
+ """Item response schema."""
37
+
38
+ id: int
39
+ owner_id: int
40
+ created_at: datetime
41
+ updated_at: datetime | None = None
42
+
43
+ model_config = {"from_attributes": True}
@@ -0,0 +1,40 @@
1
+ """User model schemas."""
2
+
3
+ from datetime import datetime
4
+
5
+ from pydantic import BaseModel, EmailStr, Field
6
+
7
+
8
+ class UserBase(BaseModel):
9
+ """Base user schema with common fields."""
10
+
11
+ email: EmailStr
12
+ username: str = Field(..., min_length=3, max_length=50)
13
+ full_name: str | None = None
14
+ is_active: bool = True
15
+
16
+
17
+ class UserCreate(UserBase):
18
+ """Schema for creating a new user."""
19
+
20
+ password: str = Field(..., min_length=8)
21
+
22
+
23
+ class UserUpdate(BaseModel):
24
+ """Schema for updating an existing user."""
25
+
26
+ email: EmailStr | None = None
27
+ username: str | None = Field(None, min_length=3, max_length=50)
28
+ full_name: str | None = None
29
+ is_active: bool | None = None
30
+ password: str | None = Field(None, min_length=8)
31
+
32
+
33
+ class User(UserBase):
34
+ """User response schema."""
35
+
36
+ id: int
37
+ created_at: datetime
38
+ updated_at: datetime | None = None
39
+
40
+ model_config = {"from_attributes": True}
@@ -0,0 +1,5 @@
1
+ """API route modules."""
2
+
3
+ from src.routes import health, items, users
4
+
5
+ __all__ = ["health", "items", "users"]
@@ -0,0 +1,20 @@
1
+ """Health check endpoints."""
2
+
3
+ from fastapi import APIRouter
4
+
5
+ from src.config import settings
6
+
7
+ router = APIRouter()
8
+
9
+
10
+ @router.get("/health")
11
+ async def health_check() -> dict[str, str]:
12
+ """Basic health check endpoint."""
13
+ return {"status": "healthy", "app": settings.app_name}
14
+
15
+
16
+ @router.get("/ready")
17
+ async def readiness_check() -> dict[str, str]:
18
+ """Readiness check endpoint."""
19
+ # Could add database connectivity check here
20
+ return {"status": "ready"}
@@ -0,0 +1,61 @@
1
+ """Item management endpoints."""
2
+
3
+ from fastapi import APIRouter, HTTPException, Query, status
4
+
5
+ from src.models.item import Item, ItemCreate, ItemUpdate
6
+ from src.services.item_service import ItemService
7
+
8
+ router = APIRouter()
9
+ item_service = ItemService()
10
+
11
+
12
+ @router.get("/", response_model=list[Item])
13
+ async def list_items(
14
+ skip: int = Query(0, ge=0),
15
+ limit: int = Query(100, ge=1, le=1000),
16
+ search: str | None = None,
17
+ ) -> list[Item]:
18
+ """List all items with pagination and optional search."""
19
+ if search:
20
+ return item_service.search(search, skip=skip, limit=limit)
21
+ return item_service.get_all(skip=skip, limit=limit)
22
+
23
+
24
+ @router.get("/{item_id}", response_model=Item)
25
+ async def get_item(item_id: int) -> Item:
26
+ """Get a specific item by ID."""
27
+ item = item_service.get_by_id(item_id)
28
+ if not item:
29
+ raise HTTPException(
30
+ status_code=status.HTTP_404_NOT_FOUND,
31
+ detail=f"Item with id {item_id} not found",
32
+ )
33
+ return item
34
+
35
+
36
+ @router.post("/", response_model=Item, status_code=status.HTTP_201_CREATED)
37
+ async def create_item(item_data: ItemCreate) -> Item:
38
+ """Create a new item."""
39
+ return item_service.create(item_data)
40
+
41
+
42
+ @router.put("/{item_id}", response_model=Item)
43
+ async def update_item(item_id: int, item_data: ItemUpdate) -> Item:
44
+ """Update an existing item."""
45
+ item = item_service.update(item_id, item_data)
46
+ if not item:
47
+ raise HTTPException(
48
+ status_code=status.HTTP_404_NOT_FOUND,
49
+ detail=f"Item with id {item_id} not found",
50
+ )
51
+ return item
52
+
53
+
54
+ @router.delete("/{item_id}", status_code=status.HTTP_204_NO_CONTENT)
55
+ async def delete_item(item_id: int) -> None:
56
+ """Delete an item."""
57
+ if not item_service.delete(item_id):
58
+ raise HTTPException(
59
+ status_code=status.HTTP_404_NOT_FOUND,
60
+ detail=f"Item with id {item_id} not found",
61
+ )
@@ -0,0 +1,55 @@
1
+ """User management endpoints."""
2
+
3
+ from fastapi import APIRouter, HTTPException, status
4
+
5
+ from src.models.user import User, UserCreate, UserUpdate
6
+ from src.services.user_service import UserService
7
+
8
+ router = APIRouter()
9
+ user_service = UserService()
10
+
11
+
12
+ @router.get("/", response_model=list[User])
13
+ async def list_users(skip: int = 0, limit: int = 100) -> list[User]:
14
+ """List all users with pagination."""
15
+ return user_service.get_all(skip=skip, limit=limit)
16
+
17
+
18
+ @router.get("/{user_id}", response_model=User)
19
+ async def get_user(user_id: int) -> User:
20
+ """Get a specific user by ID."""
21
+ user = user_service.get_by_id(user_id)
22
+ if not user:
23
+ raise HTTPException(
24
+ status_code=status.HTTP_404_NOT_FOUND,
25
+ detail=f"User with id {user_id} not found",
26
+ )
27
+ return user
28
+
29
+
30
+ @router.post("/", response_model=User, status_code=status.HTTP_201_CREATED)
31
+ async def create_user(user_data: UserCreate) -> User:
32
+ """Create a new user."""
33
+ return user_service.create(user_data)
34
+
35
+
36
+ @router.put("/{user_id}", response_model=User)
37
+ async def update_user(user_id: int, user_data: UserUpdate) -> User:
38
+ """Update an existing user."""
39
+ user = user_service.update(user_id, user_data)
40
+ if not user:
41
+ raise HTTPException(
42
+ status_code=status.HTTP_404_NOT_FOUND,
43
+ detail=f"User with id {user_id} not found",
44
+ )
45
+ return user
46
+
47
+
48
+ @router.delete("/{user_id}", status_code=status.HTTP_204_NO_CONTENT)
49
+ async def delete_user(user_id: int) -> None:
50
+ """Delete a user."""
51
+ if not user_service.delete(user_id):
52
+ raise HTTPException(
53
+ status_code=status.HTTP_404_NOT_FOUND,
54
+ detail=f"User with id {user_id} not found",
55
+ )
@@ -0,0 +1,6 @@
1
+ """Business logic services."""
2
+
3
+ from src.services.item_service import ItemService
4
+ from src.services.user_service import UserService
5
+
6
+ __all__ = ["ItemService", "UserService"]
@@ -0,0 +1,77 @@
1
+ """Item service for business logic."""
2
+
3
+ from datetime import UTC, datetime
4
+
5
+ from src.models.item import Item, ItemCreate, ItemUpdate
6
+
7
+
8
+ class ItemService:
9
+ """Service class for item operations."""
10
+
11
+ def __init__(self) -> None:
12
+ """Initialize with in-memory storage for demo."""
13
+ self._items: dict[int, Item] = {}
14
+ self._next_id = 1
15
+
16
+ def get_all(self, skip: int = 0, limit: int = 100) -> list[Item]:
17
+ """Get all items with pagination."""
18
+ items = list(self._items.values())
19
+ return items[skip : skip + limit]
20
+
21
+ def get_by_id(self, item_id: int) -> Item | None:
22
+ """Get an item by ID."""
23
+ return self._items.get(item_id)
24
+
25
+ def search(self, query: str, skip: int = 0, limit: int = 100) -> list[Item]:
26
+ """Search items by name or description."""
27
+ query_lower = query.lower()
28
+ results = [
29
+ item
30
+ for item in self._items.values()
31
+ if query_lower in item.name.lower()
32
+ or (item.description and query_lower in item.description.lower())
33
+ ]
34
+ return results[skip : skip + limit]
35
+
36
+ def get_by_owner(self, owner_id: int) -> list[Item]:
37
+ """Get all items for a specific owner."""
38
+ return [item for item in self._items.values() if item.owner_id == owner_id]
39
+
40
+ def create(self, item_data: ItemCreate) -> Item:
41
+ """Create a new item."""
42
+ item = Item(
43
+ id=self._next_id,
44
+ name=item_data.name,
45
+ description=item_data.description,
46
+ price=item_data.price,
47
+ quantity=item_data.quantity,
48
+ is_available=item_data.is_available,
49
+ owner_id=item_data.owner_id,
50
+ created_at=datetime.now(UTC),
51
+ )
52
+ self._items[self._next_id] = item
53
+ self._next_id += 1
54
+ return item
55
+
56
+ def update(self, item_id: int, item_data: ItemUpdate) -> Item | None:
57
+ """Update an existing item."""
58
+ item = self._items.get(item_id)
59
+ if not item:
60
+ return None
61
+
62
+ update_data = item_data.model_dump(exclude_unset=True)
63
+ updated_item = item.model_copy(
64
+ update={
65
+ **update_data,
66
+ "updated_at": datetime.now(UTC),
67
+ }
68
+ )
69
+ self._items[item_id] = updated_item
70
+ return updated_item
71
+
72
+ def delete(self, item_id: int) -> bool:
73
+ """Delete an item."""
74
+ if item_id not in self._items:
75
+ return False
76
+ del self._items[item_id]
77
+ return True
@@ -0,0 +1,69 @@
1
+ """User service for business logic."""
2
+
3
+ from datetime import UTC, datetime
4
+
5
+ from src.models.user import User, UserCreate, UserUpdate
6
+
7
+
8
+ class UserService:
9
+ """Service class for user operations."""
10
+
11
+ def __init__(self) -> None:
12
+ """Initialize with in-memory storage for demo."""
13
+ self._users: dict[int, User] = {}
14
+ self._next_id = 1
15
+
16
+ def get_all(self, skip: int = 0, limit: int = 100) -> list[User]:
17
+ """Get all users with pagination."""
18
+ users = list(self._users.values())
19
+ return users[skip : skip + limit]
20
+
21
+ def get_by_id(self, user_id: int) -> User | None:
22
+ """Get a user by ID."""
23
+ return self._users.get(user_id)
24
+
25
+ def get_by_email(self, email: str) -> User | None:
26
+ """Get a user by email."""
27
+ for user in self._users.values():
28
+ if user.email == email:
29
+ return user
30
+ return None
31
+
32
+ def create(self, user_data: UserCreate) -> User:
33
+ """Create a new user."""
34
+ user = User(
35
+ id=self._next_id,
36
+ email=user_data.email,
37
+ username=user_data.username,
38
+ full_name=user_data.full_name,
39
+ is_active=user_data.is_active,
40
+ created_at=datetime.now(UTC),
41
+ )
42
+ self._users[self._next_id] = user
43
+ self._next_id += 1
44
+ return user
45
+
46
+ def update(self, user_id: int, user_data: UserUpdate) -> User | None:
47
+ """Update an existing user."""
48
+ user = self._users.get(user_id)
49
+ if not user:
50
+ return None
51
+
52
+ update_data = user_data.model_dump(exclude_unset=True)
53
+ update_data.pop("password", None) # Don't include password in response
54
+
55
+ updated_user = user.model_copy(
56
+ update={
57
+ **update_data,
58
+ "updated_at": datetime.now(UTC),
59
+ }
60
+ )
61
+ self._users[user_id] = updated_user
62
+ return updated_user
63
+
64
+ def delete(self, user_id: int) -> bool:
65
+ """Delete a user."""
66
+ if user_id not in self._users:
67
+ return False
68
+ del self._users[user_id]
69
+ return True
@@ -0,0 +1,4 @@
1
+ # This file is auto-generated by uv
2
+ # Placeholder lock file to indicate uv package manager usage
3
+ version = 1
4
+ requires-python = ">=3.11"
@@ -0,0 +1,3 @@
1
+ # Scopes for Go API with React admin dashboard
2
+ # Format: path:type
3
+ admin:frontend-typescript
@@ -0,0 +1,86 @@
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: go.mod — CI-sourced commands are most reliable
11
+
12
+ <!-- AGENTS-GENERATED:START commands -->
13
+ | Task | Command | ~Time |
14
+ |------|---------|-------|
15
+ | Typecheck | go build -v ./... | ~15s |
16
+ | Format | gofmt -w . | ~5s |
17
+ | Test (single) | go test -v -race | ~2s |
18
+ | Test (all) | go test -v -race -short ./... | ~30s |
19
+ | Build | go build -v ./... | ~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
+ admin/ → configuration/data
33
+ cmd/ → CLI entrypoints
34
+ ```
35
+ <!-- AGENTS-GENERATED:END filemap -->
36
+
37
+ ## Golden Samples (follow these patterns)
38
+ <!-- AGENTS-GENERATED:START golden-samples -->
39
+ | For | Reference | Key patterns |
40
+ |-----|-----------|--------------|
41
+ | Entrypoint | `cmd/api/main.go` | standard patterns |
42
+ | Entrypoint | `main.go` | standard patterns |
43
+ <!-- AGENTS-GENERATED:END golden-samples -->
44
+
45
+ ## Heuristics (quick decisions)
46
+ <!-- AGENTS-GENERATED:START heuristics -->
47
+ | When | Do |
48
+ |------|-----|
49
+ | Adding package | Internal → `internal/`, Public → `pkg/` |
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 Go 1.22 conventions and idioms
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 go.sum without go.mod changes
83
+
84
+ ## When instructions conflict
85
+ The nearest `AGENTS.md` wins. Explicit user prompts override files.
86
+ - For Go-specific patterns, defer to language idioms and standard library conventions
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "admin-dashboard",
3
+ "private": true,
4
+ "scripts": {
5
+ "dev": "vite",
6
+ "build": "vite build",
7
+ "test": "vitest",
8
+ "lint": "eslint src"
9
+ },
10
+ "dependencies": {
11
+ "react": "^18.2.0",
12
+ "react-dom": "^18.2.0"
13
+ },
14
+ "devDependencies": {
15
+ "vite": "^8.0.8",
16
+ "vitest": "^1.0.0",
17
+ "eslint": "^8.56.0",
18
+ "typescript": "^5.3.0"
19
+ }
20
+ }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+
3
+ export default function App() {
4
+ return <div>Admin Dashboard</div>;
5
+ }
@@ -0,0 +1,7 @@
1
+ package main
2
+
3
+ import "fmt"
4
+
5
+ func main() {
6
+ fmt.Println("API entrypoint")
7
+ }
@@ -0,0 +1,2 @@
1
+ module example.com/api
2
+ go 1.22
@@ -0,0 +1,7 @@
1
+ package main
2
+
3
+ import "fmt"
4
+
5
+ func main() {
6
+ fmt.Println("API Server")
7
+ }
@@ -0,0 +1,3 @@
1
+ # Scopes for testing Go+frontend hybrid projects
2
+ # Format: path:type
3
+ internal/web:frontend-typescript