@synapta/skills 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +11 -4
- package/package.json +3 -4
- package/skills/ATTRIBUTION.md +80 -0
- package/skills/accessibility-audit/SKILL.md +325 -0
- package/skills/accessibility-audit/reference/wcag-checklist.md +103 -0
- package/skills/apns-notifier/SKILL.md +86 -0
- package/skills/approval-policy-enforcer/SKILL.md +66 -0
- package/skills/apps-sdk-builder/LICENSE.txt +201 -0
- package/skills/apps-sdk-builder/SKILL.md +328 -0
- package/skills/apps-sdk-builder/agents/openai.yaml +13 -0
- package/skills/apps-sdk-builder/references/app-archetypes.md +132 -0
- package/skills/apps-sdk-builder/references/apps-sdk-docs-workflow.md +135 -0
- package/skills/apps-sdk-builder/references/interactive-state-sync-patterns.md +113 -0
- package/skills/apps-sdk-builder/references/repo-contract-and-validation.md +93 -0
- package/skills/apps-sdk-builder/references/search-fetch-standard.md +67 -0
- package/skills/apps-sdk-builder/references/upstream-example-workflow.md +79 -0
- package/skills/apps-sdk-builder/references/window-openai-patterns.md +79 -0
- package/skills/apps-sdk-builder/scripts/scaffold_node_ext_apps.mjs +606 -0
- package/skills/architecture-selector/SKILL.md +64 -0
- package/skills/backlog-planner/SKILL.md +68 -0
- package/skills/carplay-entitlement-checker/SKILL.md +82 -0
- package/skills/concept-deepener/SKILL.md +86 -0
- package/skills/concept-discovery/SKILL.md +517 -0
- package/skills/concept-discovery/assets/sample-analysis.json +81 -0
- package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
- package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
- package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
- package/skills/concept-discovery/references/framework-patterns.md +228 -0
- package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
- package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
- package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
- package/skills/dast-zap/SKILL.md +453 -0
- package/skills/dast-zap/assets/.gitkeep +9 -0
- package/skills/dast-zap/assets/github_action.yml +207 -0
- package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
- package/skills/dast-zap/assets/zap_automation.yaml +196 -0
- package/skills/dast-zap/assets/zap_context.xml +192 -0
- package/skills/dast-zap/references/EXAMPLE.md +40 -0
- package/skills/dast-zap/references/api_testing_guide.md +475 -0
- package/skills/dast-zap/references/authentication_guide.md +431 -0
- package/skills/dast-zap/references/false_positive_handling.md +427 -0
- package/skills/dast-zap/references/owasp_mapping.md +255 -0
- package/skills/dep-sbom-scan/SKILL.md +466 -0
- package/skills/deploy-cloudflare/SKILL.md +930 -0
- package/skills/deploy-docker/SKILL.md +55 -0
- package/skills/deploy-fly/SKILL.md +228 -0
- package/skills/deploy-k8s/SKILL.md +108 -0
- package/skills/deploy-k8s/assets/logo.png +0 -0
- package/skills/deploy-k8s/docs/README.md +29 -0
- package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
- package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
- package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
- package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
- package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
- package/skills/deploy-k8s/docs/book.json +16 -0
- package/skills/deploy-k8s/docs/community/changelog.md +34 -0
- package/skills/deploy-k8s/docs/community/contributing.md +67 -0
- package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
- package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
- package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
- package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
- package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
- package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
- package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
- package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
- package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
- package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
- package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
- package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
- package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
- package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
- package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
- package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
- package/skills/deploy-k8s/docs/guides/observability.md +67 -0
- package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
- package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
- package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
- package/skills/deploy-k8s/docs/package-lock.json +2892 -0
- package/skills/deploy-k8s/docs/package.json +13 -0
- package/skills/deploy-k8s/references/api-drift.md +298 -0
- package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
- package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
- package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
- package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
- package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
- package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
- package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
- package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
- package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
- package/skills/deploy-k8s/references/examples-bad.md +282 -0
- package/skills/deploy-k8s/references/examples-good.md +440 -0
- package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
- package/skills/deploy-k8s/references/helm-patterns.md +203 -0
- package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
- package/skills/deploy-k8s/references/job-patterns.md +120 -0
- package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
- package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
- package/skills/deploy-k8s/references/network-exposure.md +481 -0
- package/skills/deploy-k8s/references/observability.md +302 -0
- package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
- package/skills/deploy-k8s/references/resource-starvation.md +374 -0
- package/skills/deploy-k8s/references/security-hardening.md +209 -0
- package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
- package/skills/deploy-k8s/references/storage-and-state.md +330 -0
- package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
- package/skills/deploy-railway/SKILL.md +235 -0
- package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
- package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
- package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
- package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
- package/skills/deploy-railway/references/analyze-db.md +344 -0
- package/skills/deploy-railway/references/configure.md +309 -0
- package/skills/deploy-railway/references/deploy.md +195 -0
- package/skills/deploy-railway/references/operate.md +214 -0
- package/skills/deploy-railway/references/request.md +248 -0
- package/skills/deploy-railway/references/setup.md +312 -0
- package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
- package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
- package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
- package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
- package/skills/deploy-railway/scripts/dal.py +671 -0
- package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
- package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
- package/skills/deploy-railway/scripts/railway-api.sh +52 -0
- package/skills/deploy-ssh/SKILL.md +91 -0
- package/skills/deploy-vercel/SKILL.md +304 -0
- package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
- package/skills/deploy-vercel/resources/deploy.sh +301 -0
- package/skills/docs-runbooks/SKILL.md +399 -0
- package/skills/drive-status-renderer/SKILL.md +62 -0
- package/skills/iac-scan/SKILL.md +680 -0
- package/skills/iac-scan/assets/.gitkeep +9 -0
- package/skills/iac-scan/assets/checkov_config.yaml +94 -0
- package/skills/iac-scan/assets/github_actions.yml +199 -0
- package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
- package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
- package/skills/iac-scan/references/EXAMPLE.md +40 -0
- package/skills/iac-scan/references/compliance_mapping.md +237 -0
- package/skills/iac-scan/references/custom_policies.md +460 -0
- package/skills/iac-scan/references/suppression_guide.md +431 -0
- package/skills/incident-briefing/SKILL.md +66 -0
- package/skills/incident-triage/SKILL.md +481 -0
- package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
- package/skills/mcp-builder/SKILL.md +244 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/mobile-pairing/SKILL.md +52 -0
- package/skills/ops-sre/SKILL.md +297 -0
- package/skills/playwright-qa/LICENSE.txt +201 -0
- package/skills/playwright-qa/NOTICE.txt +14 -0
- package/skills/playwright-qa/SKILL.md +156 -0
- package/skills/playwright-qa/agents/openai.yaml +6 -0
- package/skills/playwright-qa/assets/playwright-small.svg +3 -0
- package/skills/playwright-qa/assets/playwright.png +0 -0
- package/skills/playwright-qa/references/cli.md +116 -0
- package/skills/playwright-qa/references/workflows.md +95 -0
- package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
- package/skills/release-publish/SKILL.md +85 -0
- package/skills/repo-bootstrap/SKILL.md +92 -0
- package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
- package/skills/repo-bootstrap/assets/root-thin.md +141 -0
- package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
- package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
- package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
- package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
- package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
- package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
- package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
- package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
- package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
- package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
- package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
- package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
- package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
- package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
- package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
- package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
- package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
- package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
- package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
- package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
- package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
- package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
- package/skills/repo-bootstrap/checkpoints.yaml +279 -0
- package/skills/repo-bootstrap/evals/evals.json +385 -0
- package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
- package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
- package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
- package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
- package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
- package/skills/repo-bootstrap/references/output-structure.md +124 -0
- package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
- package/skills/repo-bootstrap/references/verification-guide.md +137 -0
- package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
- package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
- package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
- package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
- package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
- package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
- package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
- package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
- package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
- package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
- package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
- package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
- package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
- package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
- package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
- package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
- package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
- package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
- package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
- package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
- package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
- package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
- package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
- package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
- package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
- package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
- package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
- package/skills/schema-api-contracts/SKILL.md +56 -0
- package/skills/secret-hygiene/SKILL.md +511 -0
- package/skills/secret-hygiene/assets/.gitkeep +9 -0
- package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
- package/skills/secret-hygiene/assets/config-custom.toml +178 -0
- package/skills/secret-hygiene/assets/config-strict.toml +48 -0
- package/skills/secret-hygiene/assets/github-action.yml +181 -0
- package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
- package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
- package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
- package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
- package/skills/secret-hygiene/references/detection_rules.md +276 -0
- package/skills/secret-hygiene/references/false_positives.md +598 -0
- package/skills/secret-hygiene/references/remediation_guide.md +530 -0
- package/skills/stack-selector/SKILL.md +56 -0
- package/skills/telegram-control/SKILL.md +110 -0
- package/skills/telegram-control/references/architecture.md +184 -0
- package/skills/telegram-control/references/convex.md +173 -0
- package/skills/telegram-control/references/error_handling.md +212 -0
- package/skills/telegram-control/references/initial_setup.md +165 -0
- package/skills/telegram-control/references/telegram_api.md +156 -0
- package/skills/telegram-control/scripts/cancel_message.ts +53 -0
- package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
- package/skills/telegram-control/scripts/logger.ts +121 -0
- package/skills/telegram-control/scripts/proxy-util.ts +11 -0
- package/skills/telegram-control/scripts/schedule_message.ts +216 -0
- package/skills/telegram-control/scripts/send_message.ts +115 -0
- package/skills/telegram-control/scripts/setup.ts +185 -0
- package/skills/telegram-control/scripts/types.ts +75 -0
- package/skills/telegram-control/scripts/view_history.ts +74 -0
- package/skills/test-strategy/SKILL.md +352 -0
- package/skills/threat-model/SKILL.md +303 -0
- package/skills/threat-model/examples/example-output.md +196 -0
- package/skills/threat-model/template.md +96 -0
- package/skills/ts-lint/SKILL.md +80 -0
- package/skills/ui-flow/SKILL.md +668 -0
- package/skills/voice-command-router/SKILL.md +51 -0
- package/skills/widget-live-activity-sync/SKILL.md +66 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: {{TIMESTAMP}} -->
|
|
2
|
+
|
|
3
|
+
# AGENTS.md — {{SCOPE_NAME}}
|
|
4
|
+
|
|
5
|
+
<!-- AGENTS-GENERATED:START overview -->
|
|
6
|
+
## Overview
|
|
7
|
+
{{SCOPE_DESCRIPTION}}
|
|
8
|
+
<!-- AGENTS-GENERATED:END overview -->
|
|
9
|
+
|
|
10
|
+
<!-- AGENTS-GENERATED:START filemap -->
|
|
11
|
+
## Key Files
|
|
12
|
+
{{SCOPE_FILE_MAP}}
|
|
13
|
+
<!-- AGENTS-GENERATED:END filemap -->
|
|
14
|
+
|
|
15
|
+
<!-- AGENTS-GENERATED:START golden-samples -->
|
|
16
|
+
## Golden Samples (follow these patterns)
|
|
17
|
+
{{SCOPE_GOLDEN_SAMPLES}}
|
|
18
|
+
<!-- AGENTS-GENERATED:END golden-samples -->
|
|
19
|
+
|
|
20
|
+
<!-- AGENTS-GENERATED:START setup -->
|
|
21
|
+
## Setup & environment
|
|
22
|
+
{{NODE_VERSION_LINE}}
|
|
23
|
+
{{FRAMEWORK_LINE}}
|
|
24
|
+
{{PACKAGE_MANAGER_LINE}}
|
|
25
|
+
{{ENV_VARS_LINE}}
|
|
26
|
+
<!-- AGENTS-GENERATED:END setup -->
|
|
27
|
+
|
|
28
|
+
<!-- AGENTS-GENERATED:START commands -->
|
|
29
|
+
## Build & tests
|
|
30
|
+
{{INSTALL_LINE}}
|
|
31
|
+
{{TYPECHECK_LINE}}
|
|
32
|
+
{{LINT_LINE}}
|
|
33
|
+
{{FORMAT_LINE}}
|
|
34
|
+
{{TEST_LINE}}
|
|
35
|
+
{{BUILD_LINE}}
|
|
36
|
+
{{DEV_LINE}}
|
|
37
|
+
<!-- AGENTS-GENERATED:END commands -->
|
|
38
|
+
|
|
39
|
+
<!-- AGENTS-GENERATED:START code-style -->
|
|
40
|
+
## Code style & conventions
|
|
41
|
+
{{TS_STRICT_LINE}}
|
|
42
|
+
{{COMPONENT_STYLE_LINE}}
|
|
43
|
+
- Naming: `camelCase` for variables/functions, `PascalCase` for components
|
|
44
|
+
- File naming: `ComponentName.tsx`, `utilityName.ts`
|
|
45
|
+
- Imports: group and sort (external, internal, types)
|
|
46
|
+
{{CSS_APPROACH_LINE}}
|
|
47
|
+
{{FRAMEWORK_CONVENTIONS}}
|
|
48
|
+
<!-- AGENTS-GENERATED:END code-style -->
|
|
49
|
+
|
|
50
|
+
<!-- AGENTS-GENERATED:START security -->
|
|
51
|
+
## Security & safety
|
|
52
|
+
- Sanitize user inputs before rendering
|
|
53
|
+
- Raw HTML rendering only with sanitized content (use DOMPurify)
|
|
54
|
+
- Validate environment variables at build time
|
|
55
|
+
- Never expose secrets in client-side code
|
|
56
|
+
- Use HTTPS for all API calls
|
|
57
|
+
- Implement CSP headers
|
|
58
|
+
- WCAG 2.2 AA accessibility compliance
|
|
59
|
+
<!-- AGENTS-GENERATED:END security -->
|
|
60
|
+
|
|
61
|
+
<!-- AGENTS-GENERATED:START checklist -->
|
|
62
|
+
## PR/commit checklist
|
|
63
|
+
{{TEST_CHECKLIST_LINE}}
|
|
64
|
+
{{TYPECHECK_CHECKLIST_LINE}}
|
|
65
|
+
{{LINT_CHECKLIST_LINE}}
|
|
66
|
+
{{FORMAT_CHECKLIST_LINE}}
|
|
67
|
+
- [ ] Accessibility: keyboard navigation works, ARIA labels present
|
|
68
|
+
- [ ] Responsive: tested on mobile, tablet, desktop
|
|
69
|
+
- [ ] Performance: no unnecessary re-renders
|
|
70
|
+
<!-- AGENTS-GENERATED:END checklist -->
|
|
71
|
+
|
|
72
|
+
<!-- AGENTS-GENERATED:START examples -->
|
|
73
|
+
## Patterns to Follow
|
|
74
|
+
> **Prefer looking at real code in this repo over generic examples.**
|
|
75
|
+
> See **Golden Samples** section above for files that demonstrate correct patterns.
|
|
76
|
+
<!-- AGENTS-GENERATED:END examples -->
|
|
77
|
+
|
|
78
|
+
<!-- AGENTS-GENERATED:START help -->
|
|
79
|
+
## When stuck
|
|
80
|
+
{{FRAMEWORK_DOCS_LINE}}
|
|
81
|
+
- Review TypeScript handbook: https://www.typescriptlang.org/docs/
|
|
82
|
+
- Check root AGENTS.md for project-wide conventions
|
|
83
|
+
- Review existing components for patterns
|
|
84
|
+
<!-- AGENTS-GENERATED:END help -->
|
|
85
|
+
|
|
86
|
+
## House Rules (project-specific)
|
|
87
|
+
<!-- This section is NOT auto-generated - add your project-specific rules here -->
|
|
88
|
+
{{HOUSE_RULES}}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
<!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: {{TIMESTAMP}} -->
|
|
2
|
+
|
|
3
|
+
# AGENTS.md — {{SCOPE_NAME}}
|
|
4
|
+
|
|
5
|
+
<!-- AGENTS-GENERATED:START overview -->
|
|
6
|
+
## Overview
|
|
7
|
+
{{SCOPE_DESCRIPTION}}
|
|
8
|
+
<!-- AGENTS-GENERATED:END overview -->
|
|
9
|
+
|
|
10
|
+
<!-- AGENTS-GENERATED:START filemap -->
|
|
11
|
+
## Key Files
|
|
12
|
+
{{SCOPE_FILE_MAP}}
|
|
13
|
+
<!-- AGENTS-GENERATED:END filemap -->
|
|
14
|
+
|
|
15
|
+
<!-- AGENTS-GENERATED:START golden-samples -->
|
|
16
|
+
## Golden Samples (follow these patterns)
|
|
17
|
+
{{SCOPE_GOLDEN_SAMPLES}}
|
|
18
|
+
<!-- AGENTS-GENERATED:END golden-samples -->
|
|
19
|
+
|
|
20
|
+
<!-- AGENTS-GENERATED:START setup -->
|
|
21
|
+
## Workflow files
|
|
22
|
+
{{WORKFLOW_COUNT_LINE}}
|
|
23
|
+
{{REUSABLE_WORKFLOWS_LINE}}
|
|
24
|
+
<!-- AGENTS-GENERATED:END setup -->
|
|
25
|
+
|
|
26
|
+
<!-- AGENTS-GENERATED:START structure -->
|
|
27
|
+
## Directory structure
|
|
28
|
+
```
|
|
29
|
+
.github/
|
|
30
|
+
workflows/
|
|
31
|
+
ci.yml → Main CI workflow (lint, test, build)
|
|
32
|
+
release.yml → Release/deploy workflow
|
|
33
|
+
dependabot.yml → Dependency updates
|
|
34
|
+
actions/
|
|
35
|
+
<action-name>/ → Composite actions (reusable)
|
|
36
|
+
action.yml
|
|
37
|
+
CODEOWNERS → Code ownership rules
|
|
38
|
+
pull_request_template.md
|
|
39
|
+
```
|
|
40
|
+
<!-- AGENTS-GENERATED:END structure -->
|
|
41
|
+
|
|
42
|
+
<!-- AGENTS-GENERATED:START code-style -->
|
|
43
|
+
## Workflow conventions
|
|
44
|
+
- **Pin action versions** with full SHA, not tags (`uses: actions/checkout@abc123...`)
|
|
45
|
+
- **Minimal permissions**: Use `permissions:` block, never use `permissions: write-all`
|
|
46
|
+
- **Reusable workflows**: Extract common patterns to `.github/workflows/reusable-*.yml`
|
|
47
|
+
- **Job dependencies**: Use `needs:` to express dependencies
|
|
48
|
+
- **Caching**: Use `actions/cache` for dependencies (npm, composer, go)
|
|
49
|
+
|
|
50
|
+
### Naming conventions
|
|
51
|
+
| Type | Convention | Example |
|
|
52
|
+
|------|------------|---------|
|
|
53
|
+
| Workflow file | `<purpose>.yml` | `ci.yml`, `release.yml` |
|
|
54
|
+
| Workflow name | Title Case | `CI Pipeline`, `Release` |
|
|
55
|
+
| Job ID | kebab-case | `build-and-test`, `deploy-staging` |
|
|
56
|
+
| Step name | Sentence case | `Install dependencies` |
|
|
57
|
+
| Secret | SCREAMING_SNAKE | `DEPLOY_TOKEN`, `NPM_TOKEN` |
|
|
58
|
+
<!-- AGENTS-GENERATED:END code-style -->
|
|
59
|
+
|
|
60
|
+
<!-- AGENTS-GENERATED:START patterns -->
|
|
61
|
+
## Common patterns
|
|
62
|
+
|
|
63
|
+
### Basic CI workflow
|
|
64
|
+
```yaml
|
|
65
|
+
name: CI
|
|
66
|
+
on:
|
|
67
|
+
push:
|
|
68
|
+
branches: [main]
|
|
69
|
+
pull_request:
|
|
70
|
+
branches: [main]
|
|
71
|
+
|
|
72
|
+
permissions:
|
|
73
|
+
contents: read
|
|
74
|
+
|
|
75
|
+
jobs:
|
|
76
|
+
test:
|
|
77
|
+
runs-on: ubuntu-latest
|
|
78
|
+
steps:
|
|
79
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
80
|
+
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
|
|
81
|
+
with:
|
|
82
|
+
node-version: '20'
|
|
83
|
+
cache: 'npm'
|
|
84
|
+
- run: npm ci
|
|
85
|
+
- run: npm test
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Matrix builds
|
|
89
|
+
```yaml
|
|
90
|
+
jobs:
|
|
91
|
+
test:
|
|
92
|
+
strategy:
|
|
93
|
+
matrix:
|
|
94
|
+
os: [ubuntu-latest, macos-latest]
|
|
95
|
+
node: ['18', '20', '22']
|
|
96
|
+
runs-on: ${{ matrix.os }}
|
|
97
|
+
steps:
|
|
98
|
+
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
|
|
99
|
+
with:
|
|
100
|
+
node-version: ${{ matrix.node }}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Reusable workflow
|
|
104
|
+
```yaml
|
|
105
|
+
# .github/workflows/reusable-test.yml
|
|
106
|
+
on:
|
|
107
|
+
workflow_call:
|
|
108
|
+
inputs:
|
|
109
|
+
node-version:
|
|
110
|
+
type: string
|
|
111
|
+
default: '20'
|
|
112
|
+
|
|
113
|
+
jobs:
|
|
114
|
+
test:
|
|
115
|
+
runs-on: ubuntu-latest
|
|
116
|
+
steps:
|
|
117
|
+
- uses: actions/checkout@v4
|
|
118
|
+
- uses: actions/setup-node@v4
|
|
119
|
+
with:
|
|
120
|
+
node-version: ${{ inputs.node-version }}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Conditional deployment
|
|
124
|
+
```yaml
|
|
125
|
+
jobs:
|
|
126
|
+
deploy:
|
|
127
|
+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
128
|
+
needs: [test, build]
|
|
129
|
+
environment: production
|
|
130
|
+
steps:
|
|
131
|
+
- name: Deploy
|
|
132
|
+
run: ./deploy.sh
|
|
133
|
+
```
|
|
134
|
+
<!-- AGENTS-GENERATED:END patterns -->
|
|
135
|
+
|
|
136
|
+
<!-- AGENTS-GENERATED:START security -->
|
|
137
|
+
## Security & safety
|
|
138
|
+
- **NEVER** expose secrets in logs: use `::add-mask::` for dynamic secrets
|
|
139
|
+
- **Pin actions** to full commit SHA, not mutable tags
|
|
140
|
+
- **Minimal permissions**: Start with `contents: read`, add only what's needed
|
|
141
|
+
- **Environment protection**: Use environments with required reviewers for deploys
|
|
142
|
+
- **Secret scanning**: Enable in repository settings
|
|
143
|
+
- **Dependency review**: Use `actions/dependency-review-action` for PRs
|
|
144
|
+
- **OIDC**: Prefer OIDC over long-lived secrets for cloud providers
|
|
145
|
+
<!-- AGENTS-GENERATED:END security -->
|
|
146
|
+
|
|
147
|
+
<!-- AGENTS-GENERATED:START checklist -->
|
|
148
|
+
## PR/commit checklist
|
|
149
|
+
- [ ] Actions pinned to full SHA (not tags)
|
|
150
|
+
- [ ] Permissions block uses minimal required permissions
|
|
151
|
+
- [ ] Secrets are not exposed in logs
|
|
152
|
+
- [ ] Workflow syntax valid: `actionlint` or GitHub UI validation
|
|
153
|
+
- [ ] Matrix strategy covers required versions/platforms
|
|
154
|
+
- [ ] Caching configured for dependencies
|
|
155
|
+
<!-- AGENTS-GENERATED:END checklist -->
|
|
156
|
+
|
|
157
|
+
<!-- AGENTS-GENERATED:START examples -->
|
|
158
|
+
## Patterns to Follow
|
|
159
|
+
> **Prefer looking at real code in this repo over generic examples.**
|
|
160
|
+
> See **Golden Samples** section above for files that demonstrate correct patterns.
|
|
161
|
+
<!-- AGENTS-GENERATED:END examples -->
|
|
162
|
+
|
|
163
|
+
<!-- AGENTS-GENERATED:START help -->
|
|
164
|
+
## When stuck
|
|
165
|
+
- GitHub Actions docs: https://docs.github.com/en/actions
|
|
166
|
+
- Workflow syntax: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
|
167
|
+
- Action marketplace: https://github.com/marketplace?type=actions
|
|
168
|
+
- Use `act` for local testing: https://github.com/nektos/act
|
|
169
|
+
- Check existing workflows in this repo for patterns
|
|
170
|
+
<!-- AGENTS-GENERATED:END help -->
|
|
171
|
+
|
|
172
|
+
## House Rules (project-specific)
|
|
173
|
+
<!-- This section is NOT auto-generated - add your project-specific rules here -->
|
|
174
|
+
{{HOUSE_RULES}}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
<!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: {{TIMESTAMP}} -->
|
|
2
|
+
|
|
3
|
+
# AGENTS.md — {{SCOPE_NAME}}
|
|
4
|
+
|
|
5
|
+
<!-- AGENTS-GENERATED:START overview -->
|
|
6
|
+
## Overview
|
|
7
|
+
{{SCOPE_DESCRIPTION}}
|
|
8
|
+
<!-- AGENTS-GENERATED:END overview -->
|
|
9
|
+
|
|
10
|
+
<!-- AGENTS-GENERATED:START filemap -->
|
|
11
|
+
## Key Files
|
|
12
|
+
{{SCOPE_FILE_MAP}}
|
|
13
|
+
<!-- AGENTS-GENERATED:END filemap -->
|
|
14
|
+
|
|
15
|
+
<!-- AGENTS-GENERATED:START golden-samples -->
|
|
16
|
+
## Golden Samples (follow these patterns)
|
|
17
|
+
{{SCOPE_GOLDEN_SAMPLES}}
|
|
18
|
+
<!-- AGENTS-GENERATED:END golden-samples -->
|
|
19
|
+
|
|
20
|
+
<!-- AGENTS-GENERATED:START setup -->
|
|
21
|
+
## Pipeline configuration
|
|
22
|
+
{{JOB_COUNT_LINE}}
|
|
23
|
+
{{INCLUDES_LINE}}
|
|
24
|
+
<!-- AGENTS-GENERATED:END setup -->
|
|
25
|
+
|
|
26
|
+
<!-- AGENTS-GENERATED:START structure -->
|
|
27
|
+
## File structure
|
|
28
|
+
```
|
|
29
|
+
.gitlab-ci.yml → Main pipeline configuration
|
|
30
|
+
.gitlab/
|
|
31
|
+
ci/
|
|
32
|
+
templates/ → Reusable job templates
|
|
33
|
+
jobs/ → Job definitions (included)
|
|
34
|
+
CODEOWNERS → Code ownership
|
|
35
|
+
```
|
|
36
|
+
<!-- AGENTS-GENERATED:END structure -->
|
|
37
|
+
|
|
38
|
+
<!-- AGENTS-GENERATED:START code-style -->
|
|
39
|
+
## Pipeline conventions
|
|
40
|
+
- Use **stages** to organize job execution order
|
|
41
|
+
- **Extend templates** with `extends:` for DRY jobs
|
|
42
|
+
- Use **rules:** instead of `only:/except:` (deprecated)
|
|
43
|
+
- **Cache dependencies** between jobs
|
|
44
|
+
- Use **artifacts** to pass files between stages
|
|
45
|
+
|
|
46
|
+
### Naming conventions
|
|
47
|
+
| Type | Convention | Example |
|
|
48
|
+
|------|------------|---------|
|
|
49
|
+
| Stage | lowercase | `build`, `test`, `deploy` |
|
|
50
|
+
| Job | kebab-case with stage prefix | `build-app`, `test-unit` |
|
|
51
|
+
| Variable | SCREAMING_SNAKE | `DEPLOY_ENV`, `CI_TOKEN` |
|
|
52
|
+
| Template | `.template-name` (dot prefix) | `.build-template` |
|
|
53
|
+
<!-- AGENTS-GENERATED:END code-style -->
|
|
54
|
+
|
|
55
|
+
<!-- AGENTS-GENERATED:START patterns -->
|
|
56
|
+
## Common patterns
|
|
57
|
+
|
|
58
|
+
### Basic pipeline structure
|
|
59
|
+
```yaml
|
|
60
|
+
stages:
|
|
61
|
+
- build
|
|
62
|
+
- test
|
|
63
|
+
- deploy
|
|
64
|
+
|
|
65
|
+
variables:
|
|
66
|
+
NODE_VERSION: "20"
|
|
67
|
+
|
|
68
|
+
build-app:
|
|
69
|
+
stage: build
|
|
70
|
+
image: node:${NODE_VERSION}
|
|
71
|
+
script:
|
|
72
|
+
- npm ci
|
|
73
|
+
- npm run build
|
|
74
|
+
artifacts:
|
|
75
|
+
paths:
|
|
76
|
+
- dist/
|
|
77
|
+
expire_in: 1 hour
|
|
78
|
+
|
|
79
|
+
test-unit:
|
|
80
|
+
stage: test
|
|
81
|
+
needs: [build-app]
|
|
82
|
+
script:
|
|
83
|
+
- npm test
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Reusable job template
|
|
87
|
+
```yaml
|
|
88
|
+
.deploy-template:
|
|
89
|
+
stage: deploy
|
|
90
|
+
image: alpine:latest
|
|
91
|
+
before_script:
|
|
92
|
+
- apk add --no-cache curl
|
|
93
|
+
script:
|
|
94
|
+
- ./deploy.sh $ENVIRONMENT
|
|
95
|
+
|
|
96
|
+
deploy-staging:
|
|
97
|
+
extends: .deploy-template
|
|
98
|
+
variables:
|
|
99
|
+
ENVIRONMENT: staging
|
|
100
|
+
rules:
|
|
101
|
+
- if: $CI_COMMIT_BRANCH == "main"
|
|
102
|
+
|
|
103
|
+
deploy-production:
|
|
104
|
+
extends: .deploy-template
|
|
105
|
+
variables:
|
|
106
|
+
ENVIRONMENT: production
|
|
107
|
+
rules:
|
|
108
|
+
- if: $CI_COMMIT_TAG
|
|
109
|
+
when: manual
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Matrix builds (parallel)
|
|
113
|
+
```yaml
|
|
114
|
+
test:
|
|
115
|
+
stage: test
|
|
116
|
+
parallel:
|
|
117
|
+
matrix:
|
|
118
|
+
- NODE_VERSION: ["18", "20", "22"]
|
|
119
|
+
OS: ["alpine", "debian"]
|
|
120
|
+
image: node:${NODE_VERSION}-${OS}
|
|
121
|
+
script:
|
|
122
|
+
- npm test
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Include external files
|
|
126
|
+
```yaml
|
|
127
|
+
include:
|
|
128
|
+
- local: '.gitlab/ci/templates.yml'
|
|
129
|
+
- project: 'company/ci-templates'
|
|
130
|
+
ref: main
|
|
131
|
+
file: '/templates/docker.yml'
|
|
132
|
+
- template: Security/SAST.gitlab-ci.yml
|
|
133
|
+
```
|
|
134
|
+
<!-- AGENTS-GENERATED:END patterns -->
|
|
135
|
+
|
|
136
|
+
<!-- AGENTS-GENERATED:START security -->
|
|
137
|
+
## Security & safety
|
|
138
|
+
- Use **protected variables** for secrets (Settings > CI/CD > Variables)
|
|
139
|
+
- **Mask variables** to prevent log exposure
|
|
140
|
+
- Use **protected branches** for deployment jobs
|
|
141
|
+
- Enable **SAST/DAST** scanning templates
|
|
142
|
+
- **Pin Docker images** to specific versions/digests
|
|
143
|
+
- Use `rules:` with `$CI_COMMIT_TAG` for release workflows
|
|
144
|
+
- Review **merge request pipelines** before merging
|
|
145
|
+
<!-- AGENTS-GENERATED:END security -->
|
|
146
|
+
|
|
147
|
+
<!-- AGENTS-GENERATED:START checklist -->
|
|
148
|
+
## PR/commit checklist
|
|
149
|
+
- [ ] Pipeline syntax valid: use CI/CD > Editor > Validate
|
|
150
|
+
- [ ] Jobs use appropriate stages
|
|
151
|
+
- [ ] Sensitive variables are masked and protected
|
|
152
|
+
- [ ] Artifacts have reasonable `expire_in` values
|
|
153
|
+
- [ ] Cache keys are appropriate for the content
|
|
154
|
+
- [ ] Rules conditions are correct (not using deprecated only/except)
|
|
155
|
+
<!-- AGENTS-GENERATED:END checklist -->
|
|
156
|
+
|
|
157
|
+
<!-- AGENTS-GENERATED:START examples -->
|
|
158
|
+
## Patterns to Follow
|
|
159
|
+
> **Prefer looking at real code in this repo over generic examples.**
|
|
160
|
+
> See **Golden Samples** section above for files that demonstrate correct patterns.
|
|
161
|
+
<!-- AGENTS-GENERATED:END examples -->
|
|
162
|
+
|
|
163
|
+
<!-- AGENTS-GENERATED:START help -->
|
|
164
|
+
## When stuck
|
|
165
|
+
- GitLab CI docs: https://docs.gitlab.com/ee/ci/
|
|
166
|
+
- CI/CD YAML syntax: https://docs.gitlab.com/ee/ci/yaml/
|
|
167
|
+
- Predefined variables: https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
|
|
168
|
+
- Use the pipeline editor for validation: CI/CD > Editor
|
|
169
|
+
- Check existing `.gitlab-ci.yml` patterns in this repo
|
|
170
|
+
<!-- AGENTS-GENERATED:END help -->
|
|
171
|
+
|
|
172
|
+
## House Rules (project-specific)
|
|
173
|
+
<!-- This section is NOT auto-generated - add your project-specific rules here -->
|
|
174
|
+
{{HOUSE_RULES}}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
<!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: {{TIMESTAMP}} -->
|
|
2
|
+
|
|
3
|
+
# AGENTS.md — {{SCOPE_NAME}}
|
|
4
|
+
|
|
5
|
+
<!-- AGENTS-GENERATED:START overview -->
|
|
6
|
+
## Overview
|
|
7
|
+
{{SCOPE_DESCRIPTION}}
|
|
8
|
+
<!-- AGENTS-GENERATED:END overview -->
|
|
9
|
+
|
|
10
|
+
<!-- AGENTS-GENERATED:START filemap -->
|
|
11
|
+
## Key Files
|
|
12
|
+
{{SCOPE_FILE_MAP}}
|
|
13
|
+
<!-- AGENTS-GENERATED:END filemap -->
|
|
14
|
+
|
|
15
|
+
<!-- AGENTS-GENERATED:START golden-samples -->
|
|
16
|
+
## Golden Samples (follow these patterns)
|
|
17
|
+
{{SCOPE_GOLDEN_SAMPLES}}
|
|
18
|
+
<!-- AGENTS-GENERATED:END golden-samples -->
|
|
19
|
+
|
|
20
|
+
<!-- AGENTS-GENERATED:START setup -->
|
|
21
|
+
## Setup & environment
|
|
22
|
+
{{INSTALL_LINE}}
|
|
23
|
+
{{PHP_VERSION_LINE}}
|
|
24
|
+
{{ORO_VERSION_LINE}}
|
|
25
|
+
{{DATABASE_LINE}}
|
|
26
|
+
{{SETUP_COMMANDS}}
|
|
27
|
+
<!-- AGENTS-GENERATED:END setup -->
|
|
28
|
+
|
|
29
|
+
<!-- AGENTS-GENERATED:START structure -->
|
|
30
|
+
## Directory structure
|
|
31
|
+
```
|
|
32
|
+
src/
|
|
33
|
+
Acme/
|
|
34
|
+
Bundle/
|
|
35
|
+
MyBundle/
|
|
36
|
+
AcmeMyBundle.php → Bundle class
|
|
37
|
+
Controller/ → Web and API controllers
|
|
38
|
+
Entity/ → Doctrine entities
|
|
39
|
+
Form/ → Form types
|
|
40
|
+
Resources/
|
|
41
|
+
config/
|
|
42
|
+
oro/ → Oro-specific configs
|
|
43
|
+
workflows.yml → Workflow definitions
|
|
44
|
+
datagrids.yml → Datagrid definitions
|
|
45
|
+
navigation.yml → Menu/navigation
|
|
46
|
+
acl.yml → ACL definitions
|
|
47
|
+
services.yml → Service definitions
|
|
48
|
+
views/ → Twig templates
|
|
49
|
+
translations/ → Translation files
|
|
50
|
+
Migrations/
|
|
51
|
+
Schema/ → Doctrine schema migrations
|
|
52
|
+
Data/ → Data migrations (fixtures)
|
|
53
|
+
Api/ → API processors
|
|
54
|
+
Async/ → Message queue processors
|
|
55
|
+
EventListener/ → Event subscribers/listeners
|
|
56
|
+
ImportExport/ → Import/export processors
|
|
57
|
+
```
|
|
58
|
+
<!-- AGENTS-GENERATED:END structure -->
|
|
59
|
+
|
|
60
|
+
<!-- AGENTS-GENERATED:START commands -->
|
|
61
|
+
## Build & tests
|
|
62
|
+
{{COMMANDS_TABLE}}
|
|
63
|
+
<!-- AGENTS-GENERATED:END commands -->
|
|
64
|
+
|
|
65
|
+
<!-- AGENTS-GENERATED:START code-style -->
|
|
66
|
+
## Code style & conventions
|
|
67
|
+
- **PSR-12** coding standard
|
|
68
|
+
- Strict types: `declare(strict_types=1);`
|
|
69
|
+
- Symfony best practices + Oro conventions
|
|
70
|
+
- Use Oro's **config-based** approach (YAML over annotations when possible)
|
|
71
|
+
- Dependency injection via `services.yml`
|
|
72
|
+
- Entities extend Oro base classes when applicable
|
|
73
|
+
|
|
74
|
+
### Naming conventions
|
|
75
|
+
| Type | Convention | Example |
|
|
76
|
+
|------|------------|---------|
|
|
77
|
+
| Bundle | `VendorNameBundle` | `AcmeCrmBundle` |
|
|
78
|
+
| Entity | `PascalCase` | `CustomerOrder` |
|
|
79
|
+
| Datagrid | `vendor-entity-grid` | `acme-orders-grid` |
|
|
80
|
+
| Workflow | `vendor_entity_flow` | `acme_order_flow` |
|
|
81
|
+
| API resource | `vendor_entity` | `acme_orders` |
|
|
82
|
+
<!-- AGENTS-GENERATED:END code-style -->
|
|
83
|
+
|
|
84
|
+
<!-- AGENTS-GENERATED:START patterns -->
|
|
85
|
+
## Oro-specific patterns
|
|
86
|
+
|
|
87
|
+
### Datagrids (datagrids.yml)
|
|
88
|
+
```yaml
|
|
89
|
+
datagrids:
|
|
90
|
+
acme-orders-grid:
|
|
91
|
+
source:
|
|
92
|
+
type: orm
|
|
93
|
+
query:
|
|
94
|
+
select:
|
|
95
|
+
- o.id
|
|
96
|
+
- o.orderNumber
|
|
97
|
+
from:
|
|
98
|
+
- { table: Acme\Bundle\OrderBundle\Entity\Order, alias: o }
|
|
99
|
+
columns:
|
|
100
|
+
orderNumber:
|
|
101
|
+
label: acme.order.order_number.label
|
|
102
|
+
sorters:
|
|
103
|
+
columns:
|
|
104
|
+
orderNumber:
|
|
105
|
+
data_name: o.orderNumber
|
|
106
|
+
filters:
|
|
107
|
+
columns:
|
|
108
|
+
orderNumber:
|
|
109
|
+
type: string
|
|
110
|
+
data_name: o.orderNumber
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Workflows (workflows.yml)
|
|
114
|
+
```yaml
|
|
115
|
+
workflows:
|
|
116
|
+
acme_order_flow:
|
|
117
|
+
entity: Acme\Bundle\OrderBundle\Entity\Order
|
|
118
|
+
entity_attribute: order
|
|
119
|
+
start_step: draft
|
|
120
|
+
steps:
|
|
121
|
+
draft:
|
|
122
|
+
allowed_transitions:
|
|
123
|
+
- submit
|
|
124
|
+
submitted:
|
|
125
|
+
allowed_transitions:
|
|
126
|
+
- approve
|
|
127
|
+
- reject
|
|
128
|
+
transitions:
|
|
129
|
+
submit:
|
|
130
|
+
step_to: submitted
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### ACL (acl.yml)
|
|
134
|
+
```yaml
|
|
135
|
+
acl:
|
|
136
|
+
acme_order_view:
|
|
137
|
+
type: entity
|
|
138
|
+
class: Acme\Bundle\OrderBundle\Entity\Order
|
|
139
|
+
permission: VIEW
|
|
140
|
+
acme_order_edit:
|
|
141
|
+
type: entity
|
|
142
|
+
class: Acme\Bundle\OrderBundle\Entity\Order
|
|
143
|
+
permission: EDIT
|
|
144
|
+
```
|
|
145
|
+
<!-- AGENTS-GENERATED:END patterns -->
|
|
146
|
+
|
|
147
|
+
<!-- AGENTS-GENERATED:START security -->
|
|
148
|
+
## Security & safety
|
|
149
|
+
- **ACL**: Define permissions in `acl.yml`, check with `isGranted()`
|
|
150
|
+
- **CSRF**: Oro handles automatically for forms
|
|
151
|
+
- **API auth**: OAuth2 or WSSE authentication
|
|
152
|
+
- **Input validation**: Use Symfony validators + Oro constraints
|
|
153
|
+
- **Sensitive data**: Use Oro's `ConfigManager` for encrypted values
|
|
154
|
+
- **SQL**: Always use Doctrine ORM/DBAL, never raw queries
|
|
155
|
+
<!-- AGENTS-GENERATED:END security -->
|
|
156
|
+
|
|
157
|
+
<!-- AGENTS-GENERATED:START checklist -->
|
|
158
|
+
## PR/commit checklist
|
|
159
|
+
{{CACHE_CHECKLIST_LINE}}
|
|
160
|
+
{{PHPSTAN_CHECKLIST_LINE}}
|
|
161
|
+
{{UNIT_TEST_CHECKLIST_LINE}}
|
|
162
|
+
- [ ] Schema migrations are reversible
|
|
163
|
+
- [ ] Data migrations use `DependentFixtureInterface` for ordering
|
|
164
|
+
- [ ] Datagrids tested in browser
|
|
165
|
+
- [ ] Workflows tested end-to-end
|
|
166
|
+
- [ ] ACL permissions defined for new entities
|
|
167
|
+
- [ ] Translation keys added to `messages.en.yml`
|
|
168
|
+
- [ ] API resources documented with NelmioApiDocBundle annotations
|
|
169
|
+
<!-- AGENTS-GENERATED:END checklist -->
|
|
170
|
+
|
|
171
|
+
<!-- AGENTS-GENERATED:START examples -->
|
|
172
|
+
## Patterns to Follow
|
|
173
|
+
> **Prefer looking at real code in this repo over generic examples.**
|
|
174
|
+
> See **Golden Samples** section above for files that demonstrate correct patterns.
|
|
175
|
+
<!-- AGENTS-GENERATED:END examples -->
|
|
176
|
+
|
|
177
|
+
<!-- AGENTS-GENERATED:START messaging -->
|
|
178
|
+
## Message Queue patterns
|
|
179
|
+
```php
|
|
180
|
+
// Async processor
|
|
181
|
+
class ProcessOrderProcessor implements MessageProcessorInterface
|
|
182
|
+
{
|
|
183
|
+
public function process(MessageInterface $message, SessionInterface $session): string
|
|
184
|
+
{
|
|
185
|
+
$data = JSON::decode($message->getBody());
|
|
186
|
+
// Process order...
|
|
187
|
+
return self::ACK;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Producer usage
|
|
192
|
+
$this->messageProducer->send(ProcessOrderTopic::NAME, ['orderId' => $order->getId()]);
|
|
193
|
+
```
|
|
194
|
+
<!-- AGENTS-GENERATED:END messaging -->
|
|
195
|
+
|
|
196
|
+
<!-- AGENTS-GENERATED:START help -->
|
|
197
|
+
## When stuck
|
|
198
|
+
- Oro Documentation: https://doc.oroinc.com
|
|
199
|
+
- Backend Architecture: https://doc.oroinc.com/backend/architecture/
|
|
200
|
+
- Datagrids: https://doc.oroinc.com/backend/entities/data-grids/
|
|
201
|
+
- Workflows: https://doc.oroinc.com/backend/entities/workflows/
|
|
202
|
+
- API: https://doc.oroinc.com/api/
|
|
203
|
+
- Check existing bundles in `vendor/oro/` for patterns
|
|
204
|
+
- Review root AGENTS.md for project-wide conventions
|
|
205
|
+
<!-- AGENTS-GENERATED:END help -->
|
|
206
|
+
|
|
207
|
+
## House Rules (project-specific)
|
|
208
|
+
<!-- This section is NOT auto-generated - add your project-specific rules here -->
|
|
209
|
+
{{HOUSE_RULES}}
|