@synapta/skills 0.1.1 → 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.
- package/dist/index.js +11 -4
- package/package.json +2 -3
- 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-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,431 @@
|
|
|
1
|
+
# Checkov Suppression and Exception Handling Guide
|
|
2
|
+
|
|
3
|
+
Best practices for suppressing false positives and managing policy exceptions in Checkov.
|
|
4
|
+
|
|
5
|
+
## Suppression Methods
|
|
6
|
+
|
|
7
|
+
### Inline Suppression (Recommended)
|
|
8
|
+
|
|
9
|
+
#### Terraform
|
|
10
|
+
|
|
11
|
+
```hcl
|
|
12
|
+
# Single check suppression with justification
|
|
13
|
+
resource "aws_s3_bucket" "public_site" {
|
|
14
|
+
# checkov:skip=CKV_AWS_18:Public bucket for static website hosting
|
|
15
|
+
bucket = "my-public-website"
|
|
16
|
+
acl = "public-read"
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
# Multiple checks suppression
|
|
20
|
+
resource "aws_security_group" "legacy" {
|
|
21
|
+
# checkov:skip=CKV_AWS_23:Legacy app requires open access
|
|
22
|
+
# checkov:skip=CKV_AWS_24:IPv6 not supported by application
|
|
23
|
+
name = "legacy-sg"
|
|
24
|
+
|
|
25
|
+
ingress {
|
|
26
|
+
from_port = 0
|
|
27
|
+
to_port = 0
|
|
28
|
+
protocol = "-1"
|
|
29
|
+
cidr_blocks = ["0.0.0.0/0"]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
#### Kubernetes
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
# Annotation-based suppression
|
|
38
|
+
apiVersion: v1
|
|
39
|
+
kind: Pod
|
|
40
|
+
metadata:
|
|
41
|
+
name: legacy-app
|
|
42
|
+
annotations:
|
|
43
|
+
checkov.io/skip: CKV_K8S_16=Legacy application requires elevated privileges
|
|
44
|
+
spec:
|
|
45
|
+
containers:
|
|
46
|
+
- name: app
|
|
47
|
+
image: myapp:1.0
|
|
48
|
+
securityContext:
|
|
49
|
+
privileged: true
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### CloudFormation
|
|
53
|
+
|
|
54
|
+
```yaml
|
|
55
|
+
Resources:
|
|
56
|
+
PublicBucket:
|
|
57
|
+
Type: AWS::S3::Bucket
|
|
58
|
+
Metadata:
|
|
59
|
+
checkov:
|
|
60
|
+
skip:
|
|
61
|
+
- id: CKV_AWS_18
|
|
62
|
+
comment: "Public bucket for CDN origin"
|
|
63
|
+
Properties:
|
|
64
|
+
BucketName: my-public-bucket
|
|
65
|
+
PublicAccessBlockConfiguration:
|
|
66
|
+
BlockPublicAcls: false
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Configuration File Suppression
|
|
70
|
+
|
|
71
|
+
#### .checkov.yaml
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
# .checkov.yaml (project root)
|
|
75
|
+
skip-check:
|
|
76
|
+
- CKV_AWS_8 # Ensure CloudWatch log groups encrypted
|
|
77
|
+
- CKV_K8S_43 # Image pull policy Always
|
|
78
|
+
|
|
79
|
+
# Skip specific paths
|
|
80
|
+
skip-path:
|
|
81
|
+
- .terraform/
|
|
82
|
+
- node_modules/
|
|
83
|
+
- vendor/
|
|
84
|
+
|
|
85
|
+
# Severity-based soft fail
|
|
86
|
+
soft-fail-on:
|
|
87
|
+
- LOW
|
|
88
|
+
- MEDIUM
|
|
89
|
+
|
|
90
|
+
# Hard fail on critical/high only
|
|
91
|
+
hard-fail-on:
|
|
92
|
+
- CRITICAL
|
|
93
|
+
- HIGH
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### CLI-Based Suppression
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Skip specific checks
|
|
100
|
+
checkov -d ./terraform --skip-check CKV_AWS_8,CKV_AWS_21
|
|
101
|
+
|
|
102
|
+
# Skip entire frameworks
|
|
103
|
+
checkov -d ./infra --skip-framework secrets
|
|
104
|
+
|
|
105
|
+
# Skip paths
|
|
106
|
+
checkov -d ./terraform --skip-path .terraform/ --skip-path vendor/
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Suppression Governance
|
|
110
|
+
|
|
111
|
+
### Approval Workflow
|
|
112
|
+
|
|
113
|
+
```yaml
|
|
114
|
+
# .github/workflows/checkov-review.yml
|
|
115
|
+
name: Review Checkov Suppressions
|
|
116
|
+
|
|
117
|
+
on:
|
|
118
|
+
pull_request:
|
|
119
|
+
paths:
|
|
120
|
+
- '**.tf'
|
|
121
|
+
- '**.yaml'
|
|
122
|
+
- '**.yml'
|
|
123
|
+
|
|
124
|
+
jobs:
|
|
125
|
+
check-suppressions:
|
|
126
|
+
runs-on: ubuntu-latest
|
|
127
|
+
steps:
|
|
128
|
+
- uses: actions/checkout@v3
|
|
129
|
+
|
|
130
|
+
- name: Check for New Suppressions
|
|
131
|
+
run: |
|
|
132
|
+
# Count suppressions in PR
|
|
133
|
+
SUPPRESSIONS=$(git diff origin/main | grep -c "checkov:skip" || true)
|
|
134
|
+
|
|
135
|
+
if [ "$SUPPRESSIONS" -gt 0 ]; then
|
|
136
|
+
echo "::warning::PR contains $SUPPRESSIONS new suppression(s)"
|
|
137
|
+
echo "Security team review required"
|
|
138
|
+
# Request review from security team
|
|
139
|
+
fi
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Suppression Documentation Template
|
|
143
|
+
|
|
144
|
+
```hcl
|
|
145
|
+
resource "aws_security_group" "example" {
|
|
146
|
+
# checkov:skip=CKV_AWS_23:TICKET-1234 - Business justification here
|
|
147
|
+
# Approved by: security-team@example.com
|
|
148
|
+
# Review date: 2024-01-15
|
|
149
|
+
# Expiration: 2024-06-15 (review quarterly)
|
|
150
|
+
#
|
|
151
|
+
# Compensating controls:
|
|
152
|
+
# - WAF rule blocks malicious traffic
|
|
153
|
+
# - Application-level authentication required
|
|
154
|
+
# - IP allow-listing at load balancer
|
|
155
|
+
# - 24/7 monitoring and alerting
|
|
156
|
+
|
|
157
|
+
name = "approved-exception"
|
|
158
|
+
# ... configuration
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Suppression Best Practices
|
|
163
|
+
|
|
164
|
+
### 1. Always Provide Justification
|
|
165
|
+
|
|
166
|
+
```hcl
|
|
167
|
+
# ❌ BAD: No justification
|
|
168
|
+
resource "aws_s3_bucket" "example" {
|
|
169
|
+
# checkov:skip=CKV_AWS_18
|
|
170
|
+
bucket = "my-bucket"
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
# ✅ GOOD: Clear business justification
|
|
174
|
+
resource "aws_s3_bucket" "example" {
|
|
175
|
+
# checkov:skip=CKV_AWS_18:Public bucket required for static website hosting.
|
|
176
|
+
# Content is non-sensitive marketing materials. CloudFront restricts direct access.
|
|
177
|
+
bucket = "marketing-website"
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 2. Document Compensating Controls
|
|
182
|
+
|
|
183
|
+
```hcl
|
|
184
|
+
resource "aws_security_group" "app" {
|
|
185
|
+
# checkov:skip=CKV_AWS_23:Office IP range access required for developers
|
|
186
|
+
#
|
|
187
|
+
# Compensating controls:
|
|
188
|
+
# 1. IP range limited to corporate /24 subnet (203.0.113.0/24)
|
|
189
|
+
# 2. MFA required for VPN access to corporate network
|
|
190
|
+
# 3. Additional application-level authentication
|
|
191
|
+
# 4. Session timeout of 15 minutes
|
|
192
|
+
# 5. All access logged to SIEM
|
|
193
|
+
|
|
194
|
+
ingress {
|
|
195
|
+
from_port = 22
|
|
196
|
+
to_port = 22
|
|
197
|
+
protocol = "tcp"
|
|
198
|
+
cidr_blocks = ["203.0.113.0/24"]
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 3. Set Expiration Dates
|
|
204
|
+
|
|
205
|
+
```hcl
|
|
206
|
+
resource "aws_instance" "temp" {
|
|
207
|
+
# checkov:skip=CKV_AWS_8:Temporary instance for POC
|
|
208
|
+
# EXPIRES: 2024-03-31
|
|
209
|
+
# After expiration: Remove or apply encryption
|
|
210
|
+
|
|
211
|
+
ami = "ami-12345678"
|
|
212
|
+
instance_type = "t3.micro"
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### 4. Use Granular Suppressions
|
|
217
|
+
|
|
218
|
+
```hcl
|
|
219
|
+
# ❌ BAD: Suppress entire file or directory
|
|
220
|
+
# checkov:skip=* (Don't do this!)
|
|
221
|
+
|
|
222
|
+
# ✅ GOOD: Suppress specific checks on specific resources
|
|
223
|
+
resource "aws_s3_bucket" "example" {
|
|
224
|
+
# checkov:skip=CKV_AWS_18:Specific reason for this resource only
|
|
225
|
+
bucket = "specific-bucket"
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Exception Categories
|
|
230
|
+
|
|
231
|
+
### Legitimate Exceptions
|
|
232
|
+
|
|
233
|
+
#### 1. Public Resources by Design
|
|
234
|
+
|
|
235
|
+
```hcl
|
|
236
|
+
resource "aws_s3_bucket" "website" {
|
|
237
|
+
# checkov:skip=CKV_AWS_18:Public bucket for static website
|
|
238
|
+
# checkov:skip=CKV_AWS_93:Public access required by design
|
|
239
|
+
# Content: Marketing materials (non-sensitive)
|
|
240
|
+
# Access: Read-only via CloudFront
|
|
241
|
+
|
|
242
|
+
bucket = "company-website"
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
#### 2. Legacy System Constraints
|
|
247
|
+
|
|
248
|
+
```yaml
|
|
249
|
+
apiVersion: v1
|
|
250
|
+
kind: Pod
|
|
251
|
+
metadata:
|
|
252
|
+
name: legacy-app
|
|
253
|
+
annotations:
|
|
254
|
+
checkov.io/skip: CKV_K8S_16=Legacy app built before containers, requires host access
|
|
255
|
+
# Migration plan: TICKET-5678
|
|
256
|
+
# Target date: Q2 2024
|
|
257
|
+
spec:
|
|
258
|
+
hostNetwork: true
|
|
259
|
+
containers:
|
|
260
|
+
- name: legacy
|
|
261
|
+
image: legacy-app:1.0
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
#### 3. Development/Testing Environments
|
|
265
|
+
|
|
266
|
+
```hcl
|
|
267
|
+
resource "aws_db_instance" "dev_db" {
|
|
268
|
+
# checkov:skip=CKV_AWS_17:Dev environment - backups not required
|
|
269
|
+
# checkov:skip=CKV_AWS_61:Dev environment - encryption overhead not needed
|
|
270
|
+
# Environment: Non-production only
|
|
271
|
+
# Data: Synthetic test data (no PII/PHI)
|
|
272
|
+
|
|
273
|
+
identifier = "dev-database"
|
|
274
|
+
backup_retention_period = 0
|
|
275
|
+
storage_encrypted = false
|
|
276
|
+
|
|
277
|
+
tags = {
|
|
278
|
+
Environment = "development"
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Temporary Exceptions
|
|
284
|
+
|
|
285
|
+
```hcl
|
|
286
|
+
resource "aws_rds_cluster" "temp_unencrypted" {
|
|
287
|
+
# checkov:skip=CKV_AWS_96:Temporary exception during migration
|
|
288
|
+
# TICKET: INFRA-1234
|
|
289
|
+
# EXPIRES: 2024-02-15
|
|
290
|
+
# PLAN: Enable encryption at rest in Phase 2 migration
|
|
291
|
+
# OWNER: platform-team@example.com
|
|
292
|
+
|
|
293
|
+
cluster_identifier = "migration-temp"
|
|
294
|
+
storage_encrypted = false
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## Suppression Anti-Patterns
|
|
299
|
+
|
|
300
|
+
### ❌ Don't: Blanket Suppressions
|
|
301
|
+
|
|
302
|
+
```yaml
|
|
303
|
+
# BAD: Suppress all checks
|
|
304
|
+
skip-check:
|
|
305
|
+
- "*"
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### ❌ Don't: Suppress Without Documentation
|
|
309
|
+
|
|
310
|
+
```hcl
|
|
311
|
+
# BAD: No explanation
|
|
312
|
+
resource "aws_s3_bucket" "example" {
|
|
313
|
+
# checkov:skip=CKV_AWS_18
|
|
314
|
+
bucket = "my-bucket"
|
|
315
|
+
}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### ❌ Don't: Permanent Suppressions for Production
|
|
319
|
+
|
|
320
|
+
```hcl
|
|
321
|
+
# BAD: Permanent suppression of critical security control
|
|
322
|
+
resource "aws_rds_cluster" "prod" {
|
|
323
|
+
# checkov:skip=CKV_AWS_96:Too expensive
|
|
324
|
+
# ^ This is unacceptable for production!
|
|
325
|
+
|
|
326
|
+
cluster_identifier = "production-db"
|
|
327
|
+
storage_encrypted = false
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### ❌ Don't: Suppress High/Critical Without Review
|
|
332
|
+
|
|
333
|
+
```hcl
|
|
334
|
+
# DANGEROUS: Suppressing critical finding without security review
|
|
335
|
+
resource "aws_security_group" "prod" {
|
|
336
|
+
# checkov:skip=CKV_AWS_23:Need access from anywhere
|
|
337
|
+
# ^ Requires security team approval!
|
|
338
|
+
|
|
339
|
+
ingress {
|
|
340
|
+
cidr_blocks = ["0.0.0.0/0"]
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
## Monitoring Suppressions
|
|
346
|
+
|
|
347
|
+
### Track Suppression Metrics
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
# Count suppressions by type
|
|
351
|
+
grep -r "checkov:skip" ./terraform | \
|
|
352
|
+
sed 's/.*checkov:skip=\([^:]*\).*/\1/' | \
|
|
353
|
+
sort | uniq -c | sort -rn
|
|
354
|
+
|
|
355
|
+
# Find suppressions without justification
|
|
356
|
+
grep -r "checkov:skip=" ./terraform | \
|
|
357
|
+
grep -v "checkov:skip=.*:.*"
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### Suppression Audit Report
|
|
361
|
+
|
|
362
|
+
```python
|
|
363
|
+
#!/usr/bin/env python3
|
|
364
|
+
"""Generate suppression audit report."""
|
|
365
|
+
|
|
366
|
+
import re
|
|
367
|
+
import sys
|
|
368
|
+
from pathlib import Path
|
|
369
|
+
from datetime import datetime
|
|
370
|
+
|
|
371
|
+
def find_suppressions(directory):
|
|
372
|
+
"""Find all Checkov suppressions."""
|
|
373
|
+
suppressions = []
|
|
374
|
+
|
|
375
|
+
for file_path in Path(directory).rglob('*.tf'):
|
|
376
|
+
with open(file_path) as f:
|
|
377
|
+
content = f.read()
|
|
378
|
+
|
|
379
|
+
# Find suppressions
|
|
380
|
+
matches = re.findall(
|
|
381
|
+
r'#\s*checkov:skip=([^:]+):(.*)',
|
|
382
|
+
content
|
|
383
|
+
)
|
|
384
|
+
|
|
385
|
+
for check_id, reason in matches:
|
|
386
|
+
suppressions.append({
|
|
387
|
+
'file': str(file_path),
|
|
388
|
+
'check_id': check_id.strip(),
|
|
389
|
+
'reason': reason.strip()
|
|
390
|
+
})
|
|
391
|
+
|
|
392
|
+
return suppressions
|
|
393
|
+
|
|
394
|
+
def generate_report(suppressions):
|
|
395
|
+
"""Generate markdown report."""
|
|
396
|
+
print("# Checkov Suppression Audit Report")
|
|
397
|
+
print(f"\nGenerated: {datetime.now().isoformat()}")
|
|
398
|
+
print(f"\nTotal Suppressions: {len(suppressions)}\n")
|
|
399
|
+
|
|
400
|
+
print("## Suppressions by Check")
|
|
401
|
+
check_counts = {}
|
|
402
|
+
for s in suppressions:
|
|
403
|
+
check_counts[s['check_id']] = check_counts.get(s['check_id'], 0) + 1
|
|
404
|
+
|
|
405
|
+
for check_id, count in sorted(check_counts.items(), key=lambda x: -x[1]):
|
|
406
|
+
print(f"- {check_id}: {count}")
|
|
407
|
+
|
|
408
|
+
print("\n## All Suppressions")
|
|
409
|
+
for s in suppressions:
|
|
410
|
+
print(f"\n### {s['file']}")
|
|
411
|
+
print(f"**Check:** {s['check_id']}")
|
|
412
|
+
print(f"**Reason:** {s['reason'] or '(no justification provided)'}")
|
|
413
|
+
|
|
414
|
+
if __name__ == '__main__':
|
|
415
|
+
directory = sys.argv[1] if len(sys.argv) > 1 else './terraform'
|
|
416
|
+
suppressions = find_suppressions(directory)
|
|
417
|
+
generate_report(suppressions)
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
## Quarterly Review Process
|
|
421
|
+
|
|
422
|
+
1. **Generate Suppression Report**: List all active suppressions
|
|
423
|
+
2. **Review Expirations**: Check for expired temporary suppressions
|
|
424
|
+
3. **Validate Justifications**: Ensure reasons still apply
|
|
425
|
+
4. **Verify Compensating Controls**: Confirm controls are still in place
|
|
426
|
+
5. **Update or Remove**: Update suppressions or fix underlying issues
|
|
427
|
+
|
|
428
|
+
## Additional Resources
|
|
429
|
+
|
|
430
|
+
- [Checkov Suppression Documentation](https://www.checkov.io/2.Basics/Suppressing%20and%20Skipping%20Policies.html)
|
|
431
|
+
- [Security Exception Management Best Practices](https://owasp.org/www-community/Security_Exception_Management)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: incident-briefing
|
|
3
|
+
description: Generate voice-only incident summaries for hands-free use. Sub-30-second narration, structured by severity → service → impact → suggested action.
|
|
4
|
+
triggers: [synapta incident voice, drive briefing, voice summary, hands-free incident]
|
|
5
|
+
network: off
|
|
6
|
+
tools: []
|
|
7
|
+
source:
|
|
8
|
+
origin: authored-by-synapta
|
|
9
|
+
reason: "Synapta-specific TTS-ready incident summary."
|
|
10
|
+
citation_patterns:
|
|
11
|
+
- "SSML 1.1 (W3C)"
|
|
12
|
+
- "Apple Speech framework (AVSpeechSynthesizer)"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Incident Briefing (Voice)
|
|
16
|
+
|
|
17
|
+
Produce a structured voice-readable incident summary for CarPlay / Siri / AirPods reading. Max 30 seconds spoken (≈75 words).
|
|
18
|
+
|
|
19
|
+
## Structure (in order)
|
|
20
|
+
|
|
21
|
+
1. **Severity + count**: "One severity-one incident, three severity-twos active."
|
|
22
|
+
2. **Top service**: "Payments API has the most users affected, about twelve thousand."
|
|
23
|
+
3. **Impact**: "Checkout is failing for users on the European region."
|
|
24
|
+
4. **Age**: "Started fourteen minutes ago."
|
|
25
|
+
5. **Status**: "Mitigation in progress; rollback is the next planned action."
|
|
26
|
+
6. **Suggested next**: "Say 'approve rollback' when parked."
|
|
27
|
+
|
|
28
|
+
## Phrasing rules
|
|
29
|
+
|
|
30
|
+
- Spelled-out for clarity: "fourteen minutes", not "14m"
|
|
31
|
+
- Service names spoken naturally: "Payments API" not "payments-api"
|
|
32
|
+
- Avoid acronyms unless the user has defined them as personal pronunciations
|
|
33
|
+
- Numbers > 1000: round and say magnitude ("about twelve thousand", "around two million requests per minute")
|
|
34
|
+
- SSML allowed only for pauses and emphasis; don't try to engineer prosody
|
|
35
|
+
|
|
36
|
+
## Inputs
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
type IncidentBriefingInput = {
|
|
40
|
+
window: { start: string; end: string }; // ISO
|
|
41
|
+
incidents: Array<{
|
|
42
|
+
id: string;
|
|
43
|
+
severity: 1 | 2 | 3 | 4;
|
|
44
|
+
service: string;
|
|
45
|
+
impact: string;
|
|
46
|
+
age: string;
|
|
47
|
+
status: 'detected' | 'investigating' | 'mitigating' | 'resolved' | 'monitoring';
|
|
48
|
+
pendingActions: string[];
|
|
49
|
+
}>;
|
|
50
|
+
};
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Output
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
type IncidentBriefing = {
|
|
57
|
+
ssml: string; // <speak>...</speak>
|
|
58
|
+
plainText: string; // for caption display
|
|
59
|
+
duration_estimate_seconds: number;
|
|
60
|
+
suggested_voice_commands: string[];
|
|
61
|
+
};
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Refusals
|
|
65
|
+
|
|
66
|
+
If there are no active incidents, output: "All clear. No active incidents." Do not pad with "as of <timestamp>" unless the user explicitly asks.
|