@jetrabbits/agentic 0.0.1
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/AGENTS.md +143 -0
- package/README.md +154 -0
- package/agentic +1615 -0
- package/areas/devops/ci-cd/AGENTS.md +48 -0
- package/areas/devops/ci-cd/PROMPTS.md +7 -0
- package/areas/devops/ci-cd/prompts/onboard-repo.md +97 -0
- package/areas/devops/ci-cd/prompts/pipeline-debug.md +103 -0
- package/areas/devops/ci-cd/prompts/release-pipeline.md +115 -0
- package/areas/devops/ci-cd/rules/pipeline-standards.md +33 -0
- package/areas/devops/ci-cd/rules/quality-gates.md +24 -0
- package/areas/devops/ci-cd/rules/supply-chain-security.md +34 -0
- package/areas/devops/ci-cd/skills/artifact-management/SKILL.md +157 -0
- package/areas/devops/ci-cd/skills/build-optimization/SKILL.md +168 -0
- package/areas/devops/ci-cd/skills/github-actions-patterns/SKILL.md +190 -0
- package/areas/devops/ci-cd/skills/gitlab-ci-patterns/SKILL.md +169 -0
- package/areas/devops/ci-cd/skills/pipeline-security/SKILL.md +161 -0
- package/areas/devops/ci-cd/workflows/onboard-repo.md +73 -0
- package/areas/devops/ci-cd/workflows/pipeline-debug.md +66 -0
- package/areas/devops/ci-cd/workflows/release-pipeline.md +115 -0
- package/areas/devops/database-ops/AGENTS.md +47 -0
- package/areas/devops/database-ops/prompts/backup-verify.md +83 -0
- package/areas/devops/database-ops/prompts/db-incident.md +127 -0
- package/areas/devops/database-ops/rules/access-control.md +20 -0
- package/areas/devops/database-ops/rules/backup-policy.md +33 -0
- package/areas/devops/database-ops/rules/migration-runbook.md +32 -0
- package/areas/devops/database-ops/skills/backup-restore/SKILL.md +226 -0
- package/areas/devops/database-ops/skills/db-performance/SKILL.md +205 -0
- package/areas/devops/database-ops/skills/migration-safety/SKILL.md +155 -0
- package/areas/devops/database-ops/skills/postgres-operations/SKILL.md +156 -0
- package/areas/devops/database-ops/skills/redis-operations/SKILL.md +174 -0
- package/areas/devops/database-ops/workflows/backup-verify.md +107 -0
- package/areas/devops/database-ops/workflows/db-incident.md +86 -0
- package/areas/devops/devsecops/AGENTS.md +47 -0
- package/areas/devops/devsecops/prompts/policy-onboard.md +79 -0
- package/areas/devops/devsecops/prompts/security-scan-pipeline.md +131 -0
- package/areas/devops/devsecops/rules/container-security.md +22 -0
- package/areas/devops/devsecops/rules/policy-as-code.md +37 -0
- package/areas/devops/devsecops/rules/shift-left-policy.md +26 -0
- package/areas/devops/devsecops/skills/container-hardening/SKILL.md +146 -0
- package/areas/devops/devsecops/skills/opa-policies/SKILL.md +188 -0
- package/areas/devops/devsecops/skills/sbom-supply-chain/SKILL.md +165 -0
- package/areas/devops/devsecops/skills/secret-detection/SKILL.md +190 -0
- package/areas/devops/devsecops/skills/sigstore-signing/SKILL.md +184 -0
- package/areas/devops/devsecops/workflows/policy-onboard.md +104 -0
- package/areas/devops/devsecops/workflows/security-scan-pipeline.md +155 -0
- package/areas/devops/infrastructure/AGENTS.md +50 -0
- package/areas/devops/infrastructure/prompts/destroy-environment.md +81 -0
- package/areas/devops/infrastructure/prompts/drift-remediation.md +71 -0
- package/areas/devops/infrastructure/prompts/module-development.md +69 -0
- package/areas/devops/infrastructure/prompts/provision-environment.md +121 -0
- package/areas/devops/infrastructure/rules/iac-standards.md +80 -0
- package/areas/devops/infrastructure/rules/immutability.md +28 -0
- package/areas/devops/infrastructure/rules/secret-hygiene.md +53 -0
- package/areas/devops/infrastructure/rules/state-management.md +47 -0
- package/areas/devops/infrastructure/skills/ansible-playbooks/SKILL.md +174 -0
- package/areas/devops/infrastructure/skills/cost-optimization/SKILL.md +177 -0
- package/areas/devops/infrastructure/skills/drift-detection/SKILL.md +178 -0
- package/areas/devops/infrastructure/skills/state-management/SKILL.md +159 -0
- package/areas/devops/infrastructure/skills/terraform-modules/SKILL.md +169 -0
- package/areas/devops/infrastructure/workflows/destroy-environment.md +96 -0
- package/areas/devops/infrastructure/workflows/drift-remediation.md +66 -0
- package/areas/devops/infrastructure/workflows/module-development.md +101 -0
- package/areas/devops/infrastructure/workflows/provision-environment.md +96 -0
- package/areas/devops/kubernetes/AGENTS.md +57 -0
- package/areas/devops/kubernetes/PROMPTS.md +9 -0
- package/areas/devops/kubernetes/prompts/cluster-bootstrap.md +67 -0
- package/areas/devops/kubernetes/prompts/debug-workload.md +91 -0
- package/areas/devops/kubernetes/prompts/onboard-service.md +101 -0
- package/areas/devops/kubernetes/prompts/upgrade-cluster.md +63 -0
- package/areas/devops/kubernetes/rules/cluster-standards.md +51 -0
- package/areas/devops/kubernetes/rules/resource-governance.md +80 -0
- package/areas/devops/kubernetes/rules/upgrade-policy.md +52 -0
- package/areas/devops/kubernetes/rules/workload-security.md +64 -0
- package/areas/devops/kubernetes/skills/cluster-operations/SKILL.md +136 -0
- package/areas/devops/kubernetes/skills/helm-charts/SKILL.md +152 -0
- package/areas/devops/kubernetes/skills/network-policies/SKILL.md +169 -0
- package/areas/devops/kubernetes/skills/pod-troubleshooting/SKILL.md +129 -0
- package/areas/devops/kubernetes/skills/rbac-design/SKILL.md +148 -0
- package/areas/devops/kubernetes/skills/resource-tuning/SKILL.md +156 -0
- package/areas/devops/kubernetes/workflows/cluster-bootstrap.md +194 -0
- package/areas/devops/kubernetes/workflows/debug-workload.md +108 -0
- package/areas/devops/kubernetes/workflows/onboard-service.md +124 -0
- package/areas/devops/kubernetes/workflows/upgrade-cluster.md +165 -0
- package/areas/devops/networking/AGENTS.md +47 -0
- package/areas/devops/networking/prompts/onboard-ingress.md +119 -0
- package/areas/devops/networking/prompts/service-mesh-onboard.md +77 -0
- package/areas/devops/networking/rules/ingress-standards.md +17 -0
- package/areas/devops/networking/rules/network-segmentation.md +24 -0
- package/areas/devops/networking/rules/tls-policy.md +32 -0
- package/areas/devops/networking/skills/dns-management/SKILL.md +169 -0
- package/areas/devops/networking/skills/ingress-patterns/SKILL.md +165 -0
- package/areas/devops/networking/skills/service-mesh/SKILL.md +206 -0
- package/areas/devops/networking/skills/tls-termination/SKILL.md +198 -0
- package/areas/devops/networking/skills/vpc-design/SKILL.md +132 -0
- package/areas/devops/networking/workflows/onboard-ingress.md +64 -0
- package/areas/devops/networking/workflows/service-mesh-onboard.md +122 -0
- package/areas/devops/observability/AGENTS.md +48 -0
- package/areas/devops/observability/prompts/alert-investigation.md +117 -0
- package/areas/devops/observability/prompts/observability-stack-setup.md +99 -0
- package/areas/devops/observability/prompts/onboard-service-monitoring.md +79 -0
- package/areas/devops/observability/rules/alerting-standards.md +36 -0
- package/areas/devops/observability/rules/data-retention.md +19 -0
- package/areas/devops/observability/rules/golden-signals.md +28 -0
- package/areas/devops/observability/skills/distributed-tracing/SKILL.md +149 -0
- package/areas/devops/observability/skills/grafana-dashboards/SKILL.md +201 -0
- package/areas/devops/observability/skills/log-aggregation/SKILL.md +159 -0
- package/areas/devops/observability/skills/prometheus-alertmanager/SKILL.md +188 -0
- package/areas/devops/observability/skills/slo-implementation/SKILL.md +189 -0
- package/areas/devops/observability/workflows/alert-investigation.md +98 -0
- package/areas/devops/observability/workflows/observability-stack-setup.md +156 -0
- package/areas/devops/observability/workflows/onboard-service-monitoring.md +83 -0
- package/areas/devops/sre/AGENTS.md +48 -0
- package/areas/devops/sre/prompts/incident-response.md +129 -0
- package/areas/devops/sre/prompts/postmortem.md +101 -0
- package/areas/devops/sre/prompts/slo-review.md +125 -0
- package/areas/devops/sre/rules/error-budget-policy.md +25 -0
- package/areas/devops/sre/rules/on-call-standards.md +25 -0
- package/areas/devops/sre/rules/slo-policy.md +31 -0
- package/areas/devops/sre/skills/capacity-planning/SKILL.md +162 -0
- package/areas/devops/sre/skills/chaos-engineering/SKILL.md +186 -0
- package/areas/devops/sre/skills/incident-command/SKILL.md +119 -0
- package/areas/devops/sre/skills/postmortem-analysis/SKILL.md +104 -0
- package/areas/devops/sre/skills/slo-sli-design/SKILL.md +145 -0
- package/areas/devops/sre/workflows/incident-response.md +66 -0
- package/areas/devops/sre/workflows/postmortem.md +90 -0
- package/areas/devops/sre/workflows/slo-review.md +95 -0
- package/areas/software/backend/AGENTS.md +59 -0
- package/areas/software/backend/PROMPTS.md +50 -0
- package/areas/software/backend/README.md +48 -0
- package/areas/software/backend/prompts/add-migration.md +93 -0
- package/areas/software/backend/prompts/create-endpoint.md +97 -0
- package/areas/software/backend/prompts/debug-issue.md +87 -0
- package/areas/software/backend/prompts/develop-epic.md +83 -0
- package/areas/software/backend/prompts/develop-feature.md +91 -0
- package/areas/software/backend/prompts/refactor-module.md +79 -0
- package/areas/software/backend/prompts/test-feature.md +89 -0
- package/areas/software/backend/rules/architecture.md +20 -0
- package/areas/software/backend/rules/data_access.md +20 -0
- package/areas/software/backend/rules/security.md +20 -0
- package/areas/software/backend/rules/testing.md +19 -0
- package/areas/software/backend/skills/api-design/SKILL.md +170 -0
- package/areas/software/backend/skills/async-processing/SKILL.md +152 -0
- package/areas/software/backend/skills/database-modeling/SKILL.md +173 -0
- package/areas/software/backend/skills/observability/SKILL.md +162 -0
- package/areas/software/backend/skills/troubleshooting/SKILL.md +139 -0
- package/areas/software/backend/workflows/add-migration.md +79 -0
- package/areas/software/backend/workflows/create-endpoint.md +89 -0
- package/areas/software/backend/workflows/debug-issue.md +77 -0
- package/areas/software/backend/workflows/develop-epic.md +78 -0
- package/areas/software/backend/workflows/develop-feature.md +98 -0
- package/areas/software/backend/workflows/refactor-module.md +73 -0
- package/areas/software/backend/workflows/test-feature.md +67 -0
- package/areas/software/data-engineering/AGENTS.md +59 -0
- package/areas/software/data-engineering/PROMPTS.md +32 -0
- package/areas/software/data-engineering/prompts/backfill-data.md +107 -0
- package/areas/software/data-engineering/prompts/data-quality-incident.md +109 -0
- package/areas/software/data-engineering/prompts/lineage-trace.md +121 -0
- package/areas/software/data-engineering/prompts/new-model.md +117 -0
- package/areas/software/data-engineering/prompts/schema-migration.md +111 -0
- package/areas/software/data-engineering/rules/data-governance.md +11 -0
- package/areas/software/data-engineering/rules/pii-handling.md +19 -0
- package/areas/software/data-engineering/rules/pipeline-integrity.md +11 -0
- package/areas/software/data-engineering/rules/schema-management.md +21 -0
- package/areas/software/data-engineering/skills/data-modeling/SKILL.md +49 -0
- package/areas/software/data-engineering/skills/dbt-patterns/SKILL.md +43 -0
- package/areas/software/data-engineering/skills/lineage-governance/SKILL.md +38 -0
- package/areas/software/data-engineering/skills/orchestration/SKILL.md +35 -0
- package/areas/software/data-engineering/skills/quality-checks/SKILL.md +50 -0
- package/areas/software/data-engineering/skills/sql-optimization/SKILL.md +47 -0
- package/areas/software/data-engineering/skills/streaming-patterns/SKILL.md +48 -0
- package/areas/software/data-engineering/workflows/backfill-data.md +59 -0
- package/areas/software/data-engineering/workflows/data-quality-incident.md +64 -0
- package/areas/software/data-engineering/workflows/lineage-trace.md +56 -0
- package/areas/software/data-engineering/workflows/new-model.md +71 -0
- package/areas/software/data-engineering/workflows/schema-migration.md +67 -0
- package/areas/software/frontend/AGENTS.md +60 -0
- package/areas/software/frontend/PROMPTS.md +32 -0
- package/areas/software/frontend/prompts/a11y-fix.md +75 -0
- package/areas/software/frontend/prompts/bundle-analyze.md +75 -0
- package/areas/software/frontend/prompts/release-prep.md +83 -0
- package/areas/software/frontend/prompts/scaffold-component.md +69 -0
- package/areas/software/frontend/prompts/visual-regression.md +73 -0
- package/areas/software/frontend/rules/accessibility.md +16 -0
- package/areas/software/frontend/rules/architecture.md +29 -0
- package/areas/software/frontend/rules/performance.md +23 -0
- package/areas/software/frontend/rules/quality.md +12 -0
- package/areas/software/frontend/skills/a11y-audit/SKILL.md +61 -0
- package/areas/software/frontend/skills/api-integration/SKILL.md +58 -0
- package/areas/software/frontend/skills/component-design/SKILL.md +171 -0
- package/areas/software/frontend/skills/css-architecture/SKILL.md +146 -0
- package/areas/software/frontend/skills/error-handling/SKILL.md +55 -0
- package/areas/software/frontend/skills/performance-tuning/SKILL.md +58 -0
- package/areas/software/frontend/skills/state-management/SKILL.md +54 -0
- package/areas/software/frontend/skills/testing-patterns/SKILL.md +69 -0
- package/areas/software/frontend/workflows/a11y-fix.md +63 -0
- package/areas/software/frontend/workflows/bundle-analyze.md +56 -0
- package/areas/software/frontend/workflows/release-prep.md +66 -0
- package/areas/software/frontend/workflows/scaffold-component.md +67 -0
- package/areas/software/frontend/workflows/visual-regression.md +65 -0
- package/areas/software/full-stack/AGENTS.md +72 -0
- package/areas/software/full-stack/PROMPTS.md +66 -0
- package/areas/software/full-stack/prompts/backend-project-full-cycle.md +141 -0
- package/areas/software/full-stack/prompts/debug-issue.md +115 -0
- package/areas/software/full-stack/prompts/develop-feature.md +119 -0
- package/areas/software/full-stack/prompts/feature-implementation-flow.md +137 -0
- package/areas/software/full-stack/prompts/testing-ci-pipeline.md +119 -0
- package/areas/software/full-stack/rules/api-design-guide.md +24 -0
- package/areas/software/full-stack/rules/async-concurrency-guide.md +21 -0
- package/areas/software/full-stack/rules/backend-architecture-rule.md +41 -0
- package/areas/software/full-stack/rules/background-jobs-guide.md +20 -0
- package/areas/software/full-stack/rules/code-quality-guide.md +22 -0
- package/areas/software/full-stack/rules/database-access-guide.md +24 -0
- package/areas/software/full-stack/rules/database-migrations-guide.md +24 -0
- package/areas/software/full-stack/rules/domain-models-guide.md +28 -0
- package/areas/software/full-stack/rules/e2e-test-guide.md +18 -0
- package/areas/software/full-stack/rules/env-settings-guide.md +34 -0
- package/areas/software/full-stack/rules/error-handling-guide.md +20 -0
- package/areas/software/full-stack/rules/logging-observability-guide.md +22 -0
- package/areas/software/full-stack/rules/project-guide.md +34 -0
- package/areas/software/full-stack/rules/python-venv-guide.md +23 -0
- package/areas/software/full-stack/rules/security-guide.md +22 -0
- package/areas/software/full-stack/rules/svt-test-guide.md +17 -0
- package/areas/software/full-stack/rules/testing-ci-guide.md +25 -0
- package/areas/software/full-stack/skills/api-design-principles/SKILL.md +125 -0
- package/areas/software/full-stack/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/areas/software/full-stack/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/areas/software/full-stack/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/areas/software/full-stack/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/areas/software/full-stack/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/areas/software/full-stack/skills/api-patterns/SKILL.md +81 -0
- package/areas/software/full-stack/skills/api-patterns/api-style.md +42 -0
- package/areas/software/full-stack/skills/api-patterns/auth.md +24 -0
- package/areas/software/full-stack/skills/api-patterns/documentation.md +26 -0
- package/areas/software/full-stack/skills/api-patterns/graphql.md +41 -0
- package/areas/software/full-stack/skills/api-patterns/rate-limiting.md +31 -0
- package/areas/software/full-stack/skills/api-patterns/response.md +37 -0
- package/areas/software/full-stack/skills/api-patterns/rest.md +40 -0
- package/areas/software/full-stack/skills/api-patterns/scripts/api_validator.py +211 -0
- package/areas/software/full-stack/skills/api-patterns/security-testing.md +122 -0
- package/areas/software/full-stack/skills/api-patterns/trpc.md +41 -0
- package/areas/software/full-stack/skills/api-patterns/versioning.md +22 -0
- package/areas/software/full-stack/skills/app-builder/SKILL.md +135 -0
- package/areas/software/full-stack/skills/app-builder/agent-coordination.md +71 -0
- package/areas/software/full-stack/skills/app-builder/feature-building.md +53 -0
- package/areas/software/full-stack/skills/app-builder/project-detection.md +34 -0
- package/areas/software/full-stack/skills/app-builder/scaffolding.md +118 -0
- package/areas/software/full-stack/skills/app-builder/tech-stack.md +40 -0
- package/areas/software/full-stack/skills/app-builder/templates/SKILL.md +39 -0
- package/areas/software/full-stack/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/areas/software/full-stack/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/areas/software/full-stack/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/areas/software/full-stack/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/areas/software/full-stack/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/areas/software/full-stack/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/areas/software/full-stack/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/areas/software/full-stack/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/areas/software/full-stack/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/areas/software/full-stack/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/areas/software/full-stack/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/areas/software/full-stack/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/areas/software/full-stack/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/areas/software/full-stack/skills/backend-developer/SKILL.md +58 -0
- package/areas/software/full-stack/skills/bash-pro/SKILL.md +310 -0
- package/areas/software/full-stack/skills/blackbox-test/SKILL.md +84 -0
- package/areas/software/full-stack/skills/prompt-project-planner/SKILL.md +130 -0
- package/areas/software/full-stack/skills/prompt-project-planner/output.schema.md +68 -0
- package/areas/software/full-stack/skills/prompt-project-planner/questions.md +80 -0
- package/areas/software/full-stack/skills/python-pro/SKILL.md +158 -0
- package/areas/software/full-stack/skills/skill-creator/LICENSE.txt +202 -0
- package/areas/software/full-stack/skills/skill-creator/SKILL.md +356 -0
- package/areas/software/full-stack/skills/skill-creator/references/output-patterns.md +82 -0
- package/areas/software/full-stack/skills/skill-creator/references/workflows.md +28 -0
- package/areas/software/full-stack/skills/skill-creator/scripts/init_skill.py +303 -0
- package/areas/software/full-stack/skills/skill-creator/scripts/package_skill.py +110 -0
- package/areas/software/full-stack/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/areas/software/full-stack/workflows/backend-project-full-cycle.md +132 -0
- package/areas/software/full-stack/workflows/debug-issue.md +70 -0
- package/areas/software/full-stack/workflows/develop-feature.md +85 -0
- package/areas/software/full-stack/workflows/feature-implementation-flow.md +78 -0
- package/areas/software/full-stack/workflows/testing-ci-pipeline.md +65 -0
- package/areas/software/general/AGENTS.md +68 -0
- package/areas/software/general/prompts/code-review-workflow.md +87 -0
- package/areas/software/general/prompts/development-cycle-workflow.md +83 -0
- package/areas/software/general/prompts/project-setup-workflow.md +93 -0
- package/areas/software/general/rules/code-style-guide.md +31 -0
- package/areas/software/general/rules/docker-compose-guide.md +27 -0
- package/areas/software/general/rules/git-workflow-guide.md +27 -0
- package/areas/software/general/rules/github-workflow-guide.md +27 -0
- package/areas/software/general/rules/gitlab-ci-guide.md +27 -0
- package/areas/software/general/rules/lint-format-guide.md +29 -0
- package/areas/software/general/rules/makefile-guide.md +34 -0
- package/areas/software/general/rules/readme-sync-guide.md +40 -0
- package/areas/software/general/rules/sdlc-methodology-guide.md +27 -0
- package/areas/software/general/rules/sdlc-role-responsibilities.md +108 -0
- package/areas/software/general/skills/general-dev-tools/SKILL.md +324 -0
- package/areas/software/general/workflows/code-review-workflow.md +84 -0
- package/areas/software/general/workflows/development-cycle-workflow.md +85 -0
- package/areas/software/general/workflows/project-setup-workflow.md +94 -0
- package/areas/software/mlops/AGENTS.md +57 -0
- package/areas/software/mlops/PROMPTS.md +32 -0
- package/areas/software/mlops/prompts/champion-challenger.md +87 -0
- package/areas/software/mlops/prompts/deploy-endpoint.md +91 -0
- package/areas/software/mlops/prompts/evaluate-model.md +87 -0
- package/areas/software/mlops/prompts/model-incident.md +87 -0
- package/areas/software/mlops/prompts/train-experiment.md +83 -0
- package/areas/software/mlops/rules/data-integrity.md +9 -0
- package/areas/software/mlops/rules/model-governance.md +9 -0
- package/areas/software/mlops/rules/production-safety.md +9 -0
- package/areas/software/mlops/rules/reproducibility.md +9 -0
- package/areas/software/mlops/skills/experiment-tracking/SKILL.md +29 -0
- package/areas/software/mlops/skills/feature-engineering/SKILL.md +44 -0
- package/areas/software/mlops/skills/inference-serving/SKILL.md +35 -0
- package/areas/software/mlops/skills/model-evaluation/SKILL.md +40 -0
- package/areas/software/mlops/skills/model-monitoring/SKILL.md +32 -0
- package/areas/software/mlops/workflows/champion-challenger.md +65 -0
- package/areas/software/mlops/workflows/deploy-endpoint.md +70 -0
- package/areas/software/mlops/workflows/evaluate-model.md +63 -0
- package/areas/software/mlops/workflows/model-incident.md +64 -0
- package/areas/software/mlops/workflows/train-experiment.md +56 -0
- package/areas/software/mobile/AGENTS.md +58 -0
- package/areas/software/mobile/PROMPTS.md +32 -0
- package/areas/software/mobile/prompts/crash-triage.md +63 -0
- package/areas/software/mobile/prompts/device-testing.md +83 -0
- package/areas/software/mobile/prompts/ota-update.md +75 -0
- package/areas/software/mobile/prompts/release-build.md +67 -0
- package/areas/software/mobile/prompts/store-submission.md +79 -0
- package/areas/software/mobile/rules/offline-first.md +10 -0
- package/areas/software/mobile/rules/performance-budget.md +20 -0
- package/areas/software/mobile/rules/platform-compliance.md +17 -0
- package/areas/software/mobile/rules/security-mobile.md +9 -0
- package/areas/software/mobile/skills/app-store-prep/SKILL.md +27 -0
- package/areas/software/mobile/skills/mobile-testing/SKILL.md +36 -0
- package/areas/software/mobile/skills/native-modules/SKILL.md +38 -0
- package/areas/software/mobile/skills/navigation-patterns/SKILL.md +49 -0
- package/areas/software/mobile/skills/push-notifications/SKILL.md +40 -0
- package/areas/software/mobile/skills/state-sync/SKILL.md +48 -0
- package/areas/software/mobile/workflows/crash-triage.md +63 -0
- package/areas/software/mobile/workflows/device-testing.md +54 -0
- package/areas/software/mobile/workflows/ota-update.md +54 -0
- package/areas/software/mobile/workflows/release-build.md +67 -0
- package/areas/software/mobile/workflows/store-submission.md +63 -0
- package/areas/software/platform/AGENTS.md +67 -0
- package/areas/software/platform/PROMPTS.md +32 -0
- package/areas/software/platform/prompts/cost-audit.md +117 -0
- package/areas/software/platform/prompts/deploy-production.md +109 -0
- package/areas/software/platform/prompts/drift-check.md +107 -0
- package/areas/software/platform/prompts/incident-response.md +121 -0
- package/areas/software/platform/prompts/provision-env.md +113 -0
- package/areas/software/platform/rules/cost-governance.md +11 -0
- package/areas/software/platform/rules/immutability.md +17 -0
- package/areas/software/platform/rules/reliability.md +19 -0
- package/areas/software/platform/rules/security-posture.md +12 -0
- package/areas/software/platform/skills/ci-cd-pipelines/SKILL.md +58 -0
- package/areas/software/platform/skills/incident-response/SKILL.md +41 -0
- package/areas/software/platform/skills/k8s-manifests/SKILL.md +56 -0
- package/areas/software/platform/skills/networking/SKILL.md +44 -0
- package/areas/software/platform/skills/observability-setup/SKILL.md +49 -0
- package/areas/software/platform/skills/secrets-management/SKILL.md +43 -0
- package/areas/software/platform/skills/terraform-patterns/SKILL.md +75 -0
- package/areas/software/platform/workflows/cost-audit.md +61 -0
- package/areas/software/platform/workflows/deploy-production.md +67 -0
- package/areas/software/platform/workflows/drift-check.md +61 -0
- package/areas/software/platform/workflows/incident-response.md +69 -0
- package/areas/software/platform/workflows/provision-env.md +77 -0
- package/areas/software/qa/AGENTS.md +58 -0
- package/areas/software/qa/PROMPTS.md +32 -0
- package/areas/software/qa/prompts/flakiness-investigation.md +61 -0
- package/areas/software/qa/prompts/performance-audit.md +65 -0
- package/areas/software/qa/prompts/regression-suite.md +61 -0
- package/areas/software/qa/prompts/smoke-test.md +65 -0
- package/areas/software/qa/prompts/test-coverage-report.md +61 -0
- package/areas/software/qa/rules/flakiness-policy.md +12 -0
- package/areas/software/qa/rules/quality-gates.md +28 -0
- package/areas/software/qa/rules/test-data.md +9 -0
- package/areas/software/qa/rules/test-strategy.md +11 -0
- package/areas/software/qa/skills/accessibility-testing/SKILL.md +139 -0
- package/areas/software/qa/skills/api-testing/SKILL.md +140 -0
- package/areas/software/qa/skills/e2e-patterns/SKILL.md +152 -0
- package/areas/software/qa/skills/performance-testing/SKILL.md +177 -0
- package/areas/software/qa/skills/test-data-management/SKILL.md +161 -0
- package/areas/software/qa/skills/test-pyramid/SKILL.md +127 -0
- package/areas/software/qa/workflows/flakiness-investigation.md +63 -0
- package/areas/software/qa/workflows/performance-audit.md +59 -0
- package/areas/software/qa/workflows/regression-suite.md +59 -0
- package/areas/software/qa/workflows/smoke-test.md +64 -0
- package/areas/software/qa/workflows/test-coverage-report.md +57 -0
- package/areas/software/security/AGENTS.md +58 -0
- package/areas/software/security/PROMPTS.md +32 -0
- package/areas/software/security/prompts/compliance-report.md +113 -0
- package/areas/software/security/prompts/pen-test-sim.md +113 -0
- package/areas/software/security/prompts/secret-rotation.md +115 -0
- package/areas/software/security/prompts/security-scan.md +91 -0
- package/areas/software/security/prompts/threat-model-review.md +105 -0
- package/areas/software/security/rules/compliance-baseline.md +23 -0
- package/areas/software/security/rules/dependency-policy.md +12 -0
- package/areas/software/security/rules/secrets-policy.md +22 -0
- package/areas/software/security/rules/secure-coding.md +22 -0
- package/areas/software/security/skills/auth-patterns/SKILL.md +42 -0
- package/areas/software/security/skills/crypto-standards/SKILL.md +42 -0
- package/areas/software/security/skills/dependency-audit/SKILL.md +29 -0
- package/areas/software/security/skills/sast-dast-interpretation/SKILL.md +33 -0
- package/areas/software/security/skills/security-headers/SKILL.md +29 -0
- package/areas/software/security/skills/threat-modeling/SKILL.md +36 -0
- package/areas/software/security/workflows/compliance-report.md +57 -0
- package/areas/software/security/workflows/pen-test-sim.md +63 -0
- package/areas/software/security/workflows/secret-rotation.md +67 -0
- package/areas/software/security/workflows/security-scan.md +64 -0
- package/areas/software/security/workflows/threat-model-review.md +62 -0
- package/areas/template/AGENTS-area.tmpl.md +61 -0
- package/areas/template/AGENTS.tmpl.md +67 -0
- package/areas/template/GUIDE.md +102 -0
- package/areas/template/PROMPTS.tmpl.md +29 -0
- package/areas/template/README.md +57 -0
- package/areas/template/README.tmpl.md +51 -0
- package/areas/template/prompt.tmpl.md +101 -0
- package/areas/template/rule.tmpl.md +71 -0
- package/areas/template/skill.tmpl.md +108 -0
- package/areas/template/workflow.tmpl.md +104 -0
- package/bin/agentic.js +24 -0
- package/extensions/antigravity/GEMINI.md +10 -0
- package/extensions/claude/CLAUDE.md +10 -0
- package/extensions/codex/AGENTS.override.md +93 -0
- package/extensions/gemini/GEMINI.md +10 -0
- package/extensions/opencode/agents/designer.md +65 -0
- package/extensions/opencode/agents/developer.md +63 -0
- package/extensions/opencode/agents/devops-engineer.md +69 -0
- package/extensions/opencode/agents/pm.md +61 -0
- package/extensions/opencode/agents/product-owner.md +76 -0
- package/extensions/opencode/agents/qa.md +66 -0
- package/extensions/opencode/agents/team-lead.md +67 -0
- package/extensions/opencode/commands/feature.md +75 -0
- package/extensions/opencode/opencode.json +93 -0
- package/extensions/opencode/plugins/model-checker.json +14 -0
- package/extensions/opencode/plugins/model-checker.ts +279 -0
- package/extensions/opencode/plugins/sound-notification.ts +13 -0
- package/extensions/opencode/plugins/telegram-notification.ts +86 -0
- package/extensions/opencode/skills/code_review_expert/SKILL.md +144 -0
- package/extensions/opencode/skills/design_expert/SKILL.md +42 -0
- package/extensions/opencode/skills/qa_expert/SKILL.md +116 -0
- package/package.json +19 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
workflow: observability-stack-setup
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Prompt: `/observability-stack-setup`
|
|
6
|
+
|
|
7
|
+
Use when: setting up the full observability stack from scratch on a K8s cluster.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Example 1 — Full kube-prometheus-stack + Loki + Tempo
|
|
12
|
+
|
|
13
|
+
**EN:**
|
|
14
|
+
```
|
|
15
|
+
/observability-stack-setup
|
|
16
|
+
|
|
17
|
+
Cluster: prod-cluster-eu (bare-metal K8s 1.31, Cilium)
|
|
18
|
+
Storage: Longhorn (block storage available)
|
|
19
|
+
Stack to deploy (all via Helm + ArgoCD):
|
|
20
|
+
- kube-prometheus-stack (Prometheus + Alertmanager + Grafana + node-exporter + kube-state-metrics)
|
|
21
|
+
- Loki (single binary mode for start; distributed when logs > 50GB/day)
|
|
22
|
+
- Promtail DaemonSet (log collection from all pods)
|
|
23
|
+
- Tempo (distributed tracing, single binary)
|
|
24
|
+
- OpenTelemetry Collector (DaemonSet, receives OTLP)
|
|
25
|
+
- Grafana datasources: Prometheus + Loki + Tempo (auto-configured)
|
|
26
|
+
Persistence:
|
|
27
|
+
- Prometheus: 50Gi Longhorn, 15-day retention
|
|
28
|
+
- Loki: 100Gi Longhorn, 30-day retention
|
|
29
|
+
- Tempo: 50Gi Longhorn, 7-day retention
|
|
30
|
+
- Grafana: 5Gi Longhorn (dashboards in ConfigMaps, not DB)
|
|
31
|
+
Alertmanager: route critical → PagerDuty; warning → Slack #alerts
|
|
32
|
+
Ingress: observability tools exposed via NGINX Ingress with mTLS (internal only)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**RU:**
|
|
36
|
+
```
|
|
37
|
+
/observability-stack-setup
|
|
38
|
+
|
|
39
|
+
Кластер: prod-cluster-eu (bare-metal K8s 1.31, Cilium)
|
|
40
|
+
Хранилище: Longhorn (блочное хранилище доступно)
|
|
41
|
+
Стек для деплоя (через Helm + ArgoCD):
|
|
42
|
+
- kube-prometheus-stack (Prometheus + Alertmanager + Grafana + node-exporter + kube-state-metrics)
|
|
43
|
+
- Loki (single binary на старте; distributed когда логи > 50GB/день)
|
|
44
|
+
- Promtail DaemonSet (сбор логов со всех подов)
|
|
45
|
+
- Tempo (distributed tracing, single binary)
|
|
46
|
+
- OpenTelemetry Collector (DaemonSet, принимает OTLP)
|
|
47
|
+
- Datasources в Grafana: Prometheus + Loki + Tempo (авто-настройка)
|
|
48
|
+
Persistence:
|
|
49
|
+
- Prometheus: 50Gi Longhorn, хранение 15 дней
|
|
50
|
+
- Loki: 100Gi Longhorn, хранение 30 дней
|
|
51
|
+
- Tempo: 50Gi Longhorn, хранение 7 дней
|
|
52
|
+
- Grafana: 5Gi Longhorn (дашборды в ConfigMaps, не в БД)
|
|
53
|
+
Alertmanager: critical → PagerDuty; warning → Slack #alerts
|
|
54
|
+
Ingress: инструменты observability через NGINX Ingress с mTLS (только внутренний доступ)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Example 2 — Migrate from ELK to Loki (cost reduction)
|
|
60
|
+
|
|
61
|
+
**EN:**
|
|
62
|
+
```
|
|
63
|
+
/observability-stack-setup
|
|
64
|
+
|
|
65
|
+
Task: migrate log aggregation from Elasticsearch + Kibana to Grafana Loki
|
|
66
|
+
Current: ELK stack consuming 200Gi storage, 8 CPU, 32Gi memory (3 ES nodes)
|
|
67
|
+
Target: Loki in single binary mode (~2 CPU, 4Gi memory, 100Gi storage)
|
|
68
|
+
Migration constraints:
|
|
69
|
+
- Zero log gap during migration (dual-write period)
|
|
70
|
+
- Existing Kibana dashboards must be recreated in Grafana (or translated)
|
|
71
|
+
- Historical logs from ES: export last 7 days to Loki (beyond that, discard)
|
|
72
|
+
- Application log format: already JSON structured
|
|
73
|
+
Migration plan:
|
|
74
|
+
1. Deploy Loki + Grafana alongside existing ELK
|
|
75
|
+
2. Configure Fluent Bit to ship to both (dual-write, 1 week)
|
|
76
|
+
3. Recreate critical Kibana dashboards in Grafana LogQL
|
|
77
|
+
4. Decommission ELK after 1 week parallel operation
|
|
78
|
+
5. Reclaim storage and compute
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**RU:**
|
|
82
|
+
```
|
|
83
|
+
/observability-stack-setup
|
|
84
|
+
|
|
85
|
+
Задача: миграция агрегации логов с Elasticsearch + Kibana на Grafana Loki
|
|
86
|
+
Текущее: ELK стек потребляет 200Gi хранилища, 8 CPU, 32Gi памяти (3 ноды ES)
|
|
87
|
+
Цель: Loki в single binary режиме (~2 CPU, 4Gi памяти, 100Gi хранилища)
|
|
88
|
+
Ограничения миграции:
|
|
89
|
+
- Нулевой пробел в логах во время миграции (период двойной записи)
|
|
90
|
+
- Существующие дашборды Kibana должны быть воссозданы в Grafana (или транслированы)
|
|
91
|
+
- Исторические логи из ES: экспорт последних 7 дней в Loki (далее — удалить)
|
|
92
|
+
- Формат логов приложений: уже JSON структурированный
|
|
93
|
+
План миграции:
|
|
94
|
+
1. Развернуть Loki + Grafana рядом с существующим ELK
|
|
95
|
+
2. Настроить Fluent Bit для отправки в оба (двойная запись, 1 неделя)
|
|
96
|
+
3. Воссоздать критичные дашборды Kibana в Grafana LogQL
|
|
97
|
+
4. Вывести из эксплуатации ELK после 1 недели параллельной работы
|
|
98
|
+
5. Вернуть хранилище и вычислительные ресурсы
|
|
99
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
workflow: onboard-service-monitoring
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Prompt: `/onboard-service-monitoring`
|
|
6
|
+
|
|
7
|
+
Use when: adding observability (metrics, logs, traces, alerts, dashboard) to a service.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Example 1 — Full observability stack for Python service
|
|
12
|
+
|
|
13
|
+
**EN:**
|
|
14
|
+
```
|
|
15
|
+
/onboard-service-monitoring
|
|
16
|
+
|
|
17
|
+
Service: checkout-service / Namespace: production / Language: Python 3.12 + FastAPI
|
|
18
|
+
Current state: service runs, zero observability
|
|
19
|
+
Stack: Prometheus (kube-prometheus-stack) + Loki + Tempo + Grafana
|
|
20
|
+
Required:
|
|
21
|
+
- Metrics: prometheus-client; expose /metrics; golden signals (latency, errors, traffic, saturation)
|
|
22
|
+
- Traces: opentelemetry-sdk auto-instrumentation; export to otel-collector:4317
|
|
23
|
+
- Logs: already JSON; add trace_id injection via TraceContextFilter
|
|
24
|
+
- ServiceMonitor: scrape interval 15s
|
|
25
|
+
- Alerts: HighErrorRate (critical > 1%), HighP99Latency (warning > 1s), PodMemoryPressure (warning > 85%)
|
|
26
|
+
- Dashboard: standard service overview + business metric: checkout_conversion_rate
|
|
27
|
+
Business metric to add: checkout_success_total / checkout_attempt_total (gauge panel)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**RU:**
|
|
31
|
+
```
|
|
32
|
+
/onboard-service-monitoring
|
|
33
|
+
|
|
34
|
+
Сервис: checkout-service / Namespace: production / Язык: Python 3.12 + FastAPI
|
|
35
|
+
Текущее состояние: сервис работает, нет observability
|
|
36
|
+
Стек: Prometheus (kube-prometheus-stack) + Loki + Tempo + Grafana
|
|
37
|
+
Требуется:
|
|
38
|
+
- Метрики: prometheus-client; /metrics endpoint; golden signals (latency, errors, traffic, saturation)
|
|
39
|
+
- Трейсы: opentelemetry-sdk авто-инструментирование; экспорт на otel-collector:4317
|
|
40
|
+
- Логи: уже JSON; добавить инжекцию trace_id через TraceContextFilter
|
|
41
|
+
- ServiceMonitor: интервал scrape 15с
|
|
42
|
+
- Алерты: HighErrorRate (critical > 1%), HighP99Latency (warning > 1s), PodMemoryPressure (warning > 85%)
|
|
43
|
+
- Dashboard: стандартный обзор сервиса + бизнес-метрика: checkout_conversion_rate
|
|
44
|
+
Бизнес-метрика: checkout_success_total / checkout_attempt_total (gauge панель)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Example 2 — Alerts-only for existing service
|
|
50
|
+
|
|
51
|
+
**EN:**
|
|
52
|
+
```
|
|
53
|
+
/onboard-service-monitoring
|
|
54
|
+
|
|
55
|
+
Service: notification-service / Namespace: production
|
|
56
|
+
Current state: metrics already scraped (ServiceMonitor exists); no alerts defined
|
|
57
|
+
Task: add alerting only
|
|
58
|
+
Required alerts:
|
|
59
|
+
- HighErrorRate: critical if error rate > 1% for 2m
|
|
60
|
+
- QueueBacklog: warning if notification_queue_depth > 1000 for 5m (custom metric already exposed)
|
|
61
|
+
- PodRestarting: warning if pod restarts > 3 in 15m
|
|
62
|
+
Each alert: runbook_url pointing to docs/runbooks/<alert-name>.md (create stub runbooks too)
|
|
63
|
+
Alertmanager routing: critical → PagerDuty; warning → #alerts-warning Slack
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**RU:**
|
|
67
|
+
```
|
|
68
|
+
/onboard-service-monitoring
|
|
69
|
+
|
|
70
|
+
Сервис: notification-service / Namespace: production
|
|
71
|
+
Текущее состояние: метрики уже собираются (ServiceMonitor есть); алерты не настроены
|
|
72
|
+
Задача: только настройка алертов
|
|
73
|
+
Необходимые алерты:
|
|
74
|
+
- HighErrorRate: critical при error rate > 1% в течение 2м
|
|
75
|
+
- QueueBacklog: warning при notification_queue_depth > 1000 в течение 5м (кастомная метрика уже доступна)
|
|
76
|
+
- PodRestarting: warning при рестартах пода > 3 за 15м
|
|
77
|
+
Каждый алерт: runbook_url → docs/runbooks/<alert-name>.md (создать stub runbooks тоже)
|
|
78
|
+
Маршрутизация Alertmanager: critical → PagerDuty; warning → #alerts-warning Slack
|
|
79
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Rule: Alerting Standards
|
|
2
|
+
|
|
3
|
+
**Priority**: P1 — Alerts without runbooks are not deployed.
|
|
4
|
+
|
|
5
|
+
## Alert Quality Rules
|
|
6
|
+
|
|
7
|
+
1. **Every alert has a runbook** — `annotations.runbook_url` is mandatory.
|
|
8
|
+
2. **No alert fires without a human action** — if no one can do anything about it, it's not an alert (it's a dashboard).
|
|
9
|
+
3. **Alert on symptoms, not causes** — `HighErrorRate` is an alert; `HighCPU` is a warning unless it causes user impact.
|
|
10
|
+
4. **Severity classification**
|
|
11
|
+
|
|
12
|
+
| Severity | Meaning | Response |
|
|
13
|
+
|:---|:---|:---|
|
|
14
|
+
| `critical` | User-facing outage or data loss risk | Page on-call immediately |
|
|
15
|
+
| `warning` | Degraded but not broken; trending toward critical | Notify Slack; fix in business hours |
|
|
16
|
+
| `info` | Informational; no action required | Dashboard only |
|
|
17
|
+
|
|
18
|
+
5. **`for:` duration** — critical alerts: `for: 2m`; warning alerts: `for: 10m`. Instant alerts cause false positives.
|
|
19
|
+
6. **Alert fatigue policy** — if an alert fires more than 3 times in a week without action → reduce sensitivity or fix root cause.
|
|
20
|
+
|
|
21
|
+
## Notification Routing (Alertmanager)
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
route:
|
|
25
|
+
group_by: [alertname, namespace]
|
|
26
|
+
group_wait: 30s
|
|
27
|
+
group_interval: 5m
|
|
28
|
+
repeat_interval: 4h
|
|
29
|
+
receiver: slack-warning
|
|
30
|
+
routes:
|
|
31
|
+
- matchers: [severity="critical"]
|
|
32
|
+
receiver: pagerduty-oncall
|
|
33
|
+
continue: true
|
|
34
|
+
- matchers: [severity="critical"]
|
|
35
|
+
receiver: slack-critical
|
|
36
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Rule: Observability Data Retention
|
|
2
|
+
|
|
3
|
+
**Priority**: P2 — Retention settings affect compliance and cost.
|
|
4
|
+
|
|
5
|
+
## Retention Policy
|
|
6
|
+
|
|
7
|
+
| Data type | Hot storage | Cold/archive | Delete |
|
|
8
|
+
|:---|:---|:---|:---|
|
|
9
|
+
| Metrics (Prometheus) | 15 days | 1 year (VictoriaMetrics/Thanos) | > 1 year |
|
|
10
|
+
| Logs | 30 days (Loki/ES hot) | 90 days (cold) | > 90 days |
|
|
11
|
+
| Traces | 7 days | Not archived (high volume) | > 7 days |
|
|
12
|
+
| Alerting history | 90 days | — | > 90 days |
|
|
13
|
+
|
|
14
|
+
## Cost Controls
|
|
15
|
+
|
|
16
|
+
1. **High-cardinality labels are forbidden** — no `user_id`, `session_id`, `request_id` as Prometheus labels (use trace context instead).
|
|
17
|
+
2. **Log sampling** — DEBUG logs sampled at 1% in production; INFO at 100%; ERROR/WARN at 100%.
|
|
18
|
+
3. **Trace sampling** — head-based: 10% of requests; always-sample for errors and slow requests (> p99).
|
|
19
|
+
4. **Prometheus recording rules** — pre-aggregate expensive queries; don't query raw metrics in dashboards.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Rule: Golden Signals & Observability Baseline
|
|
2
|
+
|
|
3
|
+
**Priority**: P1 — Services without golden signals cannot be promoted to production.
|
|
4
|
+
|
|
5
|
+
## Four Golden Signals (mandatory for every service)
|
|
6
|
+
|
|
7
|
+
| Signal | Metric | Alert threshold |
|
|
8
|
+
|:---|:---|:---|
|
|
9
|
+
| **Latency** | p50, p95, p99 request duration | p99 > 1s for 5 min |
|
|
10
|
+
| **Traffic** | Requests per second (RPS) | Drop > 50% from baseline |
|
|
11
|
+
| **Errors** | 5xx rate / error rate | > 1% for 2 min |
|
|
12
|
+
| **Saturation** | CPU %, memory %, queue depth | CPU > 80%, Memory > 85% |
|
|
13
|
+
|
|
14
|
+
## Instrumentation Requirements
|
|
15
|
+
|
|
16
|
+
1. **Every HTTP service exposes** `/metrics` in Prometheus format on port 9090 (or sidecar).
|
|
17
|
+
2. **Every service has** a `ServiceMonitor` (kube-prometheus-stack) or scrape config.
|
|
18
|
+
3. **Structured JSON logging** — no unstructured log lines in production.
|
|
19
|
+
4. **Trace context propagated** — W3C TraceContext headers forwarded between all services.
|
|
20
|
+
5. **Health endpoints** — `/health/ready` (readiness) and `/health/live` (liveness) separate.
|
|
21
|
+
|
|
22
|
+
## Three Pillars Coverage
|
|
23
|
+
|
|
24
|
+
| Pillar | Stack | Retention |
|
|
25
|
+
|:---|:---|:---|
|
|
26
|
+
| Metrics | Prometheus + VictoriaMetrics (long-term) | 15 days hot / 1 year cold |
|
|
27
|
+
| Logs | Loki or ELK (Elasticsearch+Logstash+Kibana) | 30 days |
|
|
28
|
+
| Traces | Tempo or Jaeger (via OpenTelemetry) | 7 days |
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distributed-tracing
|
|
3
|
+
type: skill
|
|
4
|
+
description: Implement distributed tracing with OpenTelemetry, Tempo/Jaeger — instrumentation, sampling, and trace-to-log correlation.
|
|
5
|
+
related-rules:
|
|
6
|
+
- golden-signals.md
|
|
7
|
+
- data-retention.md
|
|
8
|
+
allowed-tools: Read, Write, Edit
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Skill: Distributed Tracing
|
|
12
|
+
|
|
13
|
+
> **Expertise:** OpenTelemetry SDK, auto-instrumentation, Tempo/Jaeger, trace-log correlation, sampling strategies.
|
|
14
|
+
|
|
15
|
+
## When to load
|
|
16
|
+
|
|
17
|
+
When adding tracing to a service, debugging slow distributed transactions, or setting up trace → log → metric correlation.
|
|
18
|
+
|
|
19
|
+
## OpenTelemetry Collector (K8s DaemonSet)
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
# otel-collector-config.yaml
|
|
23
|
+
receivers:
|
|
24
|
+
otlp:
|
|
25
|
+
protocols:
|
|
26
|
+
grpc: { endpoint: "0.0.0.0:4317" }
|
|
27
|
+
http: { endpoint: "0.0.0.0:4318" }
|
|
28
|
+
|
|
29
|
+
processors:
|
|
30
|
+
batch:
|
|
31
|
+
timeout: 1s
|
|
32
|
+
send_batch_size: 1000
|
|
33
|
+
memory_limiter:
|
|
34
|
+
check_interval: 1s
|
|
35
|
+
limit_mib: 400
|
|
36
|
+
|
|
37
|
+
# Tail-based sampling — sample 100% of error/slow traces
|
|
38
|
+
tail_sampling:
|
|
39
|
+
decision_wait: 10s
|
|
40
|
+
policies:
|
|
41
|
+
- name: errors-policy
|
|
42
|
+
type: status_code
|
|
43
|
+
status_code: { status_codes: [ERROR] }
|
|
44
|
+
- name: slow-traces
|
|
45
|
+
type: latency
|
|
46
|
+
latency: { threshold_ms: 500 }
|
|
47
|
+
- name: probabilistic-10pct
|
|
48
|
+
type: probabilistic
|
|
49
|
+
probabilistic: { sampling_percentage: 10 }
|
|
50
|
+
|
|
51
|
+
exporters:
|
|
52
|
+
otlp/tempo:
|
|
53
|
+
endpoint: tempo:4317
|
|
54
|
+
tls: { insecure: true }
|
|
55
|
+
|
|
56
|
+
service:
|
|
57
|
+
pipelines:
|
|
58
|
+
traces:
|
|
59
|
+
receivers: [otlp]
|
|
60
|
+
processors: [memory_limiter, tail_sampling, batch]
|
|
61
|
+
exporters: [otlp/tempo]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Python Auto-Instrumentation (FastAPI)
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
# main.py — add before app creation
|
|
68
|
+
from opentelemetry import trace
|
|
69
|
+
from opentelemetry.sdk.trace import TracerProvider
|
|
70
|
+
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
|
71
|
+
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
|
|
72
|
+
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
|
|
73
|
+
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor
|
|
74
|
+
from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor
|
|
75
|
+
|
|
76
|
+
provider = TracerProvider()
|
|
77
|
+
provider.add_span_processor(
|
|
78
|
+
BatchSpanProcessor(OTLPSpanExporter(endpoint="otel-collector:4317"))
|
|
79
|
+
)
|
|
80
|
+
trace.set_tracer_provider(provider)
|
|
81
|
+
|
|
82
|
+
# Auto-instrument frameworks
|
|
83
|
+
FastAPIInstrumentor.instrument_app(app)
|
|
84
|
+
HTTPXClientInstrumentor().instrument() # outgoing HTTP calls
|
|
85
|
+
SQLAlchemyInstrumentor().instrument() # DB queries
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Go Auto-Instrumentation
|
|
89
|
+
|
|
90
|
+
```go
|
|
91
|
+
// tracing/setup.go
|
|
92
|
+
func InitTracer(serviceName string) func() {
|
|
93
|
+
exporter, _ := otlptracegrpc.New(ctx,
|
|
94
|
+
otlptracegrpc.WithEndpoint("otel-collector:4317"),
|
|
95
|
+
otlptracegrpc.WithInsecure(),
|
|
96
|
+
)
|
|
97
|
+
tp := tracesdk.NewTracerProvider(
|
|
98
|
+
tracesdk.WithBatcher(exporter),
|
|
99
|
+
tracesdk.WithResource(resource.NewWithAttributes(
|
|
100
|
+
semconv.SchemaURL,
|
|
101
|
+
semconv.ServiceNameKey.String(serviceName),
|
|
102
|
+
)),
|
|
103
|
+
)
|
|
104
|
+
otel.SetTracerProvider(tp)
|
|
105
|
+
otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(
|
|
106
|
+
propagation.TraceContext{},
|
|
107
|
+
propagation.Baggage{},
|
|
108
|
+
))
|
|
109
|
+
return func() { tp.Shutdown(ctx) }
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Trace-to-Log Correlation
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
# Inject trace_id and span_id into every log line
|
|
117
|
+
import logging
|
|
118
|
+
from opentelemetry import trace
|
|
119
|
+
|
|
120
|
+
class TraceContextFilter(logging.Filter):
|
|
121
|
+
def filter(self, record):
|
|
122
|
+
span = trace.get_current_span()
|
|
123
|
+
ctx = span.get_span_context()
|
|
124
|
+
record.trace_id = format(ctx.trace_id, '032x') if ctx.is_valid else ''
|
|
125
|
+
record.span_id = format(ctx.span_id, '016x') if ctx.is_valid else ''
|
|
126
|
+
return True
|
|
127
|
+
|
|
128
|
+
# Log format: {"message": "...", "trace_id": "abc123", "span_id": "def456"}
|
|
129
|
+
# Loki/Grafana links trace_id → Tempo automatically
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## K8s Pod Annotation for Auto-Instrumentation (Operator)
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
# Using OpenTelemetry Operator — zero code change instrumentation
|
|
136
|
+
metadata:
|
|
137
|
+
annotations:
|
|
138
|
+
instrumentation.opentelemetry.io/inject-python: "true"
|
|
139
|
+
# For Java: inject-java, Go: inject-go
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Sampling Strategy
|
|
143
|
+
|
|
144
|
+
| Scenario | Strategy | Rate |
|
|
145
|
+
|:---|:---|:---|
|
|
146
|
+
| Normal traffic | Probabilistic (head-based) | 10% |
|
|
147
|
+
| Errors | Always sample | 100% |
|
|
148
|
+
| Latency > p99 | Tail-based | 100% |
|
|
149
|
+
| Debug/investigation | Force-sample via baggage | 100% |
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grafana-dashboards
|
|
3
|
+
type: skill
|
|
4
|
+
description: Design and maintain Grafana dashboards — service overview panels, SLO tracking, variable templates, dashboard-as-code with Grafonnet/Jsonnet.
|
|
5
|
+
related-rules:
|
|
6
|
+
- golden-signals.md
|
|
7
|
+
- data-retention.md
|
|
8
|
+
allowed-tools: Read, Write, Edit
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Skill: Grafana Dashboards
|
|
12
|
+
|
|
13
|
+
> **Expertise:** Panel design, variable templates, cross-datasource linking (Prometheus + Loki + Tempo), SLO dashboards, Jsonnet/Grafonnet for dashboard-as-code.
|
|
14
|
+
|
|
15
|
+
## When to load
|
|
16
|
+
|
|
17
|
+
When creating a new service dashboard, adding SLO panels, debugging a missing metric in Grafana, or converting dashboards to code.
|
|
18
|
+
|
|
19
|
+
## Standard Service Overview Dashboard Panels
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Row 1: Golden Signals
|
|
23
|
+
[Traffic: RPS] [Error Rate %] [P50/P95/P99 Latency] [Saturation: CPU/Mem]
|
|
24
|
+
|
|
25
|
+
Row 2: Infrastructure
|
|
26
|
+
[Pod count / restarts] [Memory usage vs limit] [CPU throttling %]
|
|
27
|
+
|
|
28
|
+
Row 3: Logs & Traces (via Explore links)
|
|
29
|
+
[Recent error logs] [Slow trace exemplars]
|
|
30
|
+
|
|
31
|
+
Row 4: Business Metrics (service-specific)
|
|
32
|
+
[Order rate] [Checkout conversion] [Queue depth]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Panel Configurations
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
// Error rate panel (Stat + threshold coloring)
|
|
39
|
+
{
|
|
40
|
+
"type": "stat",
|
|
41
|
+
"title": "Error Rate",
|
|
42
|
+
"datasource": "Prometheus",
|
|
43
|
+
"targets": [{
|
|
44
|
+
"expr": "sum(rate(http_requests_total{service='$service', status=~'5..'}[5m])) / sum(rate(http_requests_total{service='$service'}[5m])) * 100",
|
|
45
|
+
"legendFormat": "Error %"
|
|
46
|
+
}],
|
|
47
|
+
"fieldConfig": {
|
|
48
|
+
"defaults": {
|
|
49
|
+
"unit": "percent",
|
|
50
|
+
"thresholds": {
|
|
51
|
+
"steps": [
|
|
52
|
+
{"color": "green", "value": 0},
|
|
53
|
+
{"color": "yellow", "value": 0.1},
|
|
54
|
+
{"color": "red", "value": 1.0}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
// Latency heatmap panel
|
|
64
|
+
{
|
|
65
|
+
"type": "heatmap",
|
|
66
|
+
"title": "Request Latency Heatmap",
|
|
67
|
+
"targets": [{
|
|
68
|
+
"expr": "sum(rate(http_request_duration_seconds_bucket{service='$service'}[5m])) by (le)",
|
|
69
|
+
"format": "heatmap",
|
|
70
|
+
"legendFormat": "{{le}}"
|
|
71
|
+
}],
|
|
72
|
+
"yAxis": { "format": "s", "logBase": 2 }
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Variable Templates (dashboard filters)
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
// Namespace variable (auto-populated from Prometheus labels)
|
|
80
|
+
{
|
|
81
|
+
"name": "namespace",
|
|
82
|
+
"type": "query",
|
|
83
|
+
"datasource": "Prometheus",
|
|
84
|
+
"query": "label_values(kube_pod_info, namespace)",
|
|
85
|
+
"refresh": 2, // refresh on time range change
|
|
86
|
+
"includeAll": true,
|
|
87
|
+
"multi": true
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Service variable (filtered by selected namespace)
|
|
91
|
+
{
|
|
92
|
+
"name": "service",
|
|
93
|
+
"type": "query",
|
|
94
|
+
"query": "label_values(http_requests_total{namespace='$namespace'}, service)",
|
|
95
|
+
"refresh": 2
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Trace Exemplars (link Prometheus → Tempo)
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
// Enable exemplars on latency histogram panel
|
|
103
|
+
{
|
|
104
|
+
"type": "timeseries",
|
|
105
|
+
"targets": [{
|
|
106
|
+
"expr": "histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket{service='$service'}[5m])) by (le))",
|
|
107
|
+
"exemplar": true, // show exemplar dots linking to traces
|
|
108
|
+
"legendFormat": "p99"
|
|
109
|
+
}]
|
|
110
|
+
}
|
|
111
|
+
// Requires: Tempo as datasource, traceID in exemplar labels
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Log Panel (Loki integration)
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"type": "logs",
|
|
119
|
+
"title": "Recent Errors",
|
|
120
|
+
"datasource": "Loki",
|
|
121
|
+
"targets": [{
|
|
122
|
+
"expr": "{namespace='$namespace', app='$service'} | json | level='error'",
|
|
123
|
+
"maxLines": 100
|
|
124
|
+
}]
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## SLO Dashboard Panels
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
// SLO budget remaining (Gauge)
|
|
132
|
+
{
|
|
133
|
+
"type": "gauge",
|
|
134
|
+
"title": "Error Budget Remaining",
|
|
135
|
+
"targets": [{
|
|
136
|
+
"expr": "(1 - (sum(increase(http_requests_total{service='$service',status=~'5..'}[28d])) / sum(increase(http_requests_total{service='$service'}[28d])))) / 0.005 * 100"
|
|
137
|
+
}],
|
|
138
|
+
"fieldConfig": {
|
|
139
|
+
"defaults": {
|
|
140
|
+
"unit": "percent",
|
|
141
|
+
"min": 0, "max": 100,
|
|
142
|
+
"thresholds": {
|
|
143
|
+
"steps": [
|
|
144
|
+
{"color": "red", "value": 0},
|
|
145
|
+
{"color": "yellow", "value": 25},
|
|
146
|
+
{"color": "green", "value": 50}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Dashboard as Code (Jsonnet + Grafonnet)
|
|
155
|
+
|
|
156
|
+
```jsonnet
|
|
157
|
+
// dashboards/service-overview.jsonnet
|
|
158
|
+
local grafana = import 'grafonnet/grafana.libsonnet';
|
|
159
|
+
local dashboard = grafana.dashboard;
|
|
160
|
+
local row = grafana.row;
|
|
161
|
+
local prometheus = grafana.prometheus;
|
|
162
|
+
local graphPanel = grafana.graphPanel;
|
|
163
|
+
|
|
164
|
+
dashboard.new(
|
|
165
|
+
'Service Overview',
|
|
166
|
+
tags=['generated', 'service'],
|
|
167
|
+
refresh='1m',
|
|
168
|
+
time_from='now-1h',
|
|
169
|
+
)
|
|
170
|
+
.addPanel(
|
|
171
|
+
graphPanel.new(
|
|
172
|
+
'Request Rate',
|
|
173
|
+
datasource='Prometheus',
|
|
174
|
+
).addTarget(
|
|
175
|
+
prometheus.target(
|
|
176
|
+
'sum(rate(http_requests_total{service="$service"}[5m]))',
|
|
177
|
+
legendFormat='RPS',
|
|
178
|
+
)
|
|
179
|
+
),
|
|
180
|
+
gridPos={ x: 0, y: 0, w: 12, h: 8 }
|
|
181
|
+
)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# Generate JSON from Jsonnet and import to Grafana
|
|
186
|
+
jsonnet -J vendor dashboards/service-overview.jsonnet > /tmp/dashboard.json
|
|
187
|
+
curl -X POST http://grafana:3000/api/dashboards/import \
|
|
188
|
+
-H 'Content-Type: application/json' \
|
|
189
|
+
-d "{\"dashboard\": $(cat /tmp/dashboard.json), \"overwrite\": true}"
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Dashboard Git Workflow
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Export dashboard JSON from Grafana (for version control)
|
|
196
|
+
curl http://grafana:3000/api/dashboards/uid/<uid> | jq '.dashboard' > dashboards/service-overview.json
|
|
197
|
+
|
|
198
|
+
# Apply dashboard from Git (GitOps)
|
|
199
|
+
# Use grafana-operator or grizzly (grafana/grizzly)
|
|
200
|
+
grr apply dashboards/
|
|
201
|
+
```
|