agent-skill-kit 3.9.135
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/.agent/global.d.ts +80 -0
- package/.agent/rules/GEMINI.md +210 -0
- package/.agent/rules/autopilot.md +287 -0
- package/.agent/rules/code-rules.md +227 -0
- package/.agent/scripts/audit_workflows.ts +23 -0
- package/.agent/scripts/auto_preview.ts +170 -0
- package/.agent/scripts/checklist.ts +180 -0
- package/.agent/scripts/compile-agents.ts +237 -0
- package/.agent/scripts/fix_skills.ts +49 -0
- package/.agent/scripts/session_manager.ts +222 -0
- package/.agent/scripts/skill-audit.ts +255 -0
- package/.agent/scripts/sync_workflows.ts +54 -0
- package/.agent/scripts/utils/colors.ts +58 -0
- package/.agent/scripts/utils/process-manager.ts +131 -0
- package/.agent/scripts/utils/reporter.ts +192 -0
- package/.agent/scripts/utils/runner.ts +128 -0
- package/.agent/scripts/verify_all.ts +243 -0
- package/.agent/scripts/version-sync.ts +256 -0
- package/.agent/skills/SKILL_INDEX.md +129 -0
- package/.agent/skills/agent-browser/AGENTS.md +728 -0
- package/.agent/skills/agent-browser/SKILL.md +193 -0
- package/.agent/skills/agent-browser/rules/_sections.md +15 -0
- package/.agent/skills/agent-browser/rules/_template.md +32 -0
- package/.agent/skills/agent-browser/rules/engineering-spec.md +528 -0
- package/.agent/skills/agent-browser/scripts/browser_cli.ts +52 -0
- package/.agent/skills/agent-browser/scripts/session_manager.ts +166 -0
- package/.agent/skills/ai-artist/AGENTS.md +1082 -0
- package/.agent/skills/ai-artist/SKILL.md +186 -0
- package/.agent/skills/ai-artist/rules/_sections.md +30 -0
- package/.agent/skills/ai-artist/rules/_template.md +32 -0
- package/.agent/skills/ai-artist/rules/domain-code.md +118 -0
- package/.agent/skills/ai-artist/rules/domain-marketing.md +105 -0
- package/.agent/skills/ai-artist/rules/engineering-spec.md +519 -0
- package/.agent/skills/ai-artist/rules/image-prompts.md +195 -0
- package/.agent/skills/ai-artist/rules/model-syntax.md +115 -0
- package/.agent/skills/ai-artist/scripts/prompt_compiler.ts +72 -0
- package/.agent/skills/ai-artist/templates/image-core.txt +1 -0
- package/.agent/skills/ai-artist/templates/llm-core.txt +6 -0
- package/.agent/skills/api-architect/AGENTS.md +1896 -0
- package/.agent/skills/api-architect/SKILL.md +173 -0
- package/.agent/skills/api-architect/rules/_sections.md +35 -0
- package/.agent/skills/api-architect/rules/_template.md +32 -0
- package/.agent/skills/api-architect/rules/api-style.md +115 -0
- package/.agent/skills/api-architect/rules/auth.md +134 -0
- package/.agent/skills/api-architect/rules/documentation.md +131 -0
- package/.agent/skills/api-architect/rules/engineering-spec.md +505 -0
- package/.agent/skills/api-architect/rules/graphql.md +154 -0
- package/.agent/skills/api-architect/rules/rate-limiting.md +76 -0
- package/.agent/skills/api-architect/rules/response.md +138 -0
- package/.agent/skills/api-architect/rules/rest.md +113 -0
- package/.agent/skills/api-architect/rules/security-testing.md +146 -0
- package/.agent/skills/api-architect/rules/trpc.md +129 -0
- package/.agent/skills/api-architect/rules/versioning.md +100 -0
- package/.agent/skills/api-architect/scripts/api_validator.ts +413 -0
- package/.agent/skills/auth-patterns/AGENTS.md +1830 -0
- package/.agent/skills/auth-patterns/SKILL.md +163 -0
- package/.agent/skills/auth-patterns/rules/_sections.md +30 -0
- package/.agent/skills/auth-patterns/rules/_template.md +32 -0
- package/.agent/skills/auth-patterns/rules/engineering-spec.md +515 -0
- package/.agent/skills/auth-patterns/rules/jwt-deep.md +196 -0
- package/.agent/skills/auth-patterns/rules/mfa.md +174 -0
- package/.agent/skills/auth-patterns/rules/oauth2.md +134 -0
- package/.agent/skills/auth-patterns/rules/passkey.md +243 -0
- package/.agent/skills/auth-patterns/rules/rbac-abac.md +206 -0
- package/.agent/skills/auth-patterns/rules/session.md +183 -0
- package/.agent/skills/auth-patterns/scripts/auth_validator.ts +121 -0
- package/.agent/skills/chrome-devtools/AGENTS.md +952 -0
- package/.agent/skills/chrome-devtools/SKILL.md +160 -0
- package/.agent/skills/chrome-devtools/rules/_sections.md +25 -0
- package/.agent/skills/chrome-devtools/rules/_template.md +32 -0
- package/.agent/skills/chrome-devtools/rules/aria-snapshot.md +95 -0
- package/.agent/skills/chrome-devtools/rules/engineering-spec.md +510 -0
- package/.agent/skills/chrome-devtools/rules/scripts-guide.md +174 -0
- package/.agent/skills/chrome-devtools/scripts/aria-snapshot.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/click.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/console.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/core_cli.ts +79 -0
- package/.agent/skills/chrome-devtools/scripts/evaluate.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/fill.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/navigate.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/network.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/performance.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/screenshot.ts +3 -0
- package/.agent/skills/chrome-devtools/scripts/select-ref.ts +3 -0
- package/.agent/skills/cicd-pipeline/AGENTS.md +809 -0
- package/.agent/skills/cicd-pipeline/SKILL.md +164 -0
- package/.agent/skills/cicd-pipeline/rules/_sections.md +15 -0
- package/.agent/skills/cicd-pipeline/rules/_template.md +32 -0
- package/.agent/skills/cicd-pipeline/rules/engineering-spec.md +477 -0
- package/.agent/skills/cicd-pipeline/scripts/flag-manager.ts +253 -0
- package/.agent/skills/cicd-pipeline/scripts/pipeline_validator.ts +133 -0
- package/.agent/skills/code-constitution/AGENTS.md +597 -0
- package/.agent/skills/code-constitution/CHANGELOG.md +216 -0
- package/.agent/skills/code-constitution/SKILL.md +191 -0
- package/.agent/skills/code-constitution/VERSION +3 -0
- package/.agent/skills/code-constitution/examples/violation-backend-mutation/after.tsx +59 -0
- package/.agent/skills/code-constitution/examples/violation-backend-mutation/before.tsx +42 -0
- package/.agent/skills/code-constitution/examples/violation-backend-mutation/explanation.md +91 -0
- package/.agent/skills/code-constitution/examples/violation-chart-injection/after.tsx +99 -0
- package/.agent/skills/code-constitution/examples/violation-chart-injection/before.tsx +57 -0
- package/.agent/skills/code-constitution/examples/violation-chart-injection/explanation.md +120 -0
- package/.agent/skills/code-constitution/knowledge/lessons-learned.yaml +3 -0
- package/.agent/skills/code-constitution/metadata/precedence.yaml +117 -0
- package/.agent/skills/code-constitution/metadata/scope-map.yaml +156 -0
- package/.agent/skills/code-constitution/proposals/v1.1-change-proposal-template.md +201 -0
- package/.agent/skills/code-constitution/resources/AUTHORITY_MODEL.md +115 -0
- package/.agent/skills/code-constitution/resources/ENFORCEMENT_GUIDE.md +246 -0
- package/.agent/skills/code-constitution/resources/LOAD_ORDER.md +86 -0
- package/.agent/skills/code-constitution/rules/_sections.md +15 -0
- package/.agent/skills/code-constitution/rules/_template.md +32 -0
- package/.agent/skills/code-constitution/rules/constitution/master-constitution.md +210 -0
- package/.agent/skills/code-constitution/rules/doctrines/architecture/architecture-doctrine.md +188 -0
- package/.agent/skills/code-constitution/rules/doctrines/backend/backend-data-engine-doctrine.md +218 -0
- package/.agent/skills/code-constitution/rules/doctrines/commercial/commercial-guardrails-doctrine.md +196 -0
- package/.agent/skills/code-constitution/rules/doctrines/data/data-integrity-doctrine.md +202 -0
- package/.agent/skills/code-constitution/rules/doctrines/frontend/frontend-mobile-doctrine.md +169 -0
- package/.agent/skills/code-constitution/rules/doctrines/frontend/interaction-patterns-doctrine.md +176 -0
- package/.agent/skills/code-constitution/rules/doctrines/learning/learning-engine-doctrine.md +192 -0
- package/.agent/skills/code-constitution/rules/doctrines/performance/performance-doctrine.md +180 -0
- package/.agent/skills/code-constitution/rules/doctrines/review/code-review-doctrine.md +174 -0
- package/.agent/skills/code-constitution/rules/enforcement/agents/agent-enforcement-protocol.md +218 -0
- package/.agent/skills/code-constitution/rules/enforcement/agents/agent-system-prompt.md +196 -0
- package/.agent/skills/code-constitution/rules/enforcement/checklists/backend-api-review-checklist.md +131 -0
- package/.agent/skills/code-constitution/rules/enforcement/checklists/chart-component-review-checklist.md +147 -0
- package/.agent/skills/code-constitution/rules/enforcement/checklists/frontend-review-checklist.md +194 -0
- package/.agent/skills/code-constitution/rules/enforcement/playbooks/doctrine-violation-playbook.md +236 -0
- package/.agent/skills/code-constitution/rules/engineering-spec.md +561 -0
- package/.agent/skills/code-constitution/scripts/audit_pr.ts +219 -0
- package/.agent/skills/code-constitution/scripts/check_boundaries.ts +134 -0
- package/.agent/skills/code-constitution/scripts/learn.ts +202 -0
- package/.agent/skills/code-constitution/scripts/validate_doctrine.ts +287 -0
- package/.agent/skills/code-craft/AGENTS.md +803 -0
- package/.agent/skills/code-craft/SKILL.md +170 -0
- package/.agent/skills/code-craft/rules/_sections.md +20 -0
- package/.agent/skills/code-craft/rules/_template.md +32 -0
- package/.agent/skills/code-craft/rules/engineering-spec.md +447 -0
- package/.agent/skills/code-craft/rules/verification-scripts.md +83 -0
- package/.agent/skills/code-craft/scripts/code_quality_checker.ts +193 -0
- package/.agent/skills/code-review/AGENTS.md +1664 -0
- package/.agent/skills/code-review/SKILL.md +152 -0
- package/.agent/skills/code-review/rules/_sections.md +15 -0
- package/.agent/skills/code-review/rules/_template.md +32 -0
- package/.agent/skills/code-review/rules/engineering-spec.md +466 -0
- package/.agent/skills/code-review/scripts/lint_runner.ts +213 -0
- package/.agent/skills/code-review/scripts/type_coverage.ts +118 -0
- package/.agent/skills/context-engineering/AGENTS.md +499 -0
- package/.agent/skills/context-engineering/SKILL.md +147 -0
- package/.agent/skills/context-engineering/rules/_sections.md +15 -0
- package/.agent/skills/context-engineering/rules/_template.md +32 -0
- package/.agent/skills/context-engineering/rules/engineering-spec.md +463 -0
- package/.agent/skills/context-engineering/scripts/context_analyzer.ts +127 -0
- package/.agent/skills/copywriting/AGENTS.md +501 -0
- package/.agent/skills/copywriting/SKILL.md +188 -0
- package/.agent/skills/copywriting/rules/_sections.md +15 -0
- package/.agent/skills/copywriting/rules/_template.md +32 -0
- package/.agent/skills/copywriting/rules/engineering-spec.md +465 -0
- package/.agent/skills/copywriting/scripts/copy_validator.ts +185 -0
- package/.agent/skills/data-modeler/AGENTS.md +814 -0
- package/.agent/skills/data-modeler/SKILL.md +195 -0
- package/.agent/skills/data-modeler/rules/_sections.md +15 -0
- package/.agent/skills/data-modeler/rules/_template.md +32 -0
- package/.agent/skills/data-modeler/rules/database-selection.md +124 -0
- package/.agent/skills/data-modeler/rules/engineering-spec.md +479 -0
- package/.agent/skills/data-modeler/rules/indexing.md +166 -0
- package/.agent/skills/data-modeler/rules/migrations.md +176 -0
- package/.agent/skills/data-modeler/rules/optimization.md +161 -0
- package/.agent/skills/data-modeler/rules/orm-selection.md +155 -0
- package/.agent/skills/data-modeler/rules/schema-design.md +162 -0
- package/.agent/skills/data-modeler/scripts/schema_validator.ts +357 -0
- package/.agent/skills/debug-pro/AGENTS.md +798 -0
- package/.agent/skills/debug-pro/SKILL.md +193 -0
- package/.agent/skills/debug-pro/defense-in-depth/SKILL.md +148 -0
- package/.agent/skills/debug-pro/root-cause-tracing/SKILL.md +196 -0
- package/.agent/skills/debug-pro/root-cause-tracing/find-polluter.sh +63 -0
- package/.agent/skills/debug-pro/rules/_sections.md +15 -0
- package/.agent/skills/debug-pro/rules/_template.md +32 -0
- package/.agent/skills/debug-pro/rules/engineering-spec.md +491 -0
- package/.agent/skills/debug-pro/scripts/debug_verifier.ts +148 -0
- package/.agent/skills/debug-pro/verification-before-completion/SKILL.md +160 -0
- package/.agent/skills/design-system/AGENTS.md +4216 -0
- package/.agent/skills/design-system/SKILL.md +186 -0
- package/.agent/skills/design-system/rules/_sections.md +65 -0
- package/.agent/skills/design-system/rules/_template.md +32 -0
- package/.agent/skills/design-system/rules/animation-guide.md +355 -0
- package/.agent/skills/design-system/rules/color-system.md +335 -0
- package/.agent/skills/design-system/rules/color-systems.md +133 -0
- package/.agent/skills/design-system/rules/decision-trees.md +442 -0
- package/.agent/skills/design-system/rules/design-extraction.md +152 -0
- package/.agent/skills/design-system/rules/engineering-spec.md +484 -0
- package/.agent/skills/design-system/rules/motion-design.md +161 -0
- package/.agent/skills/design-system/rules/motion-graphics.md +330 -0
- package/.agent/skills/design-system/rules/spatial-composition.md +184 -0
- package/.agent/skills/design-system/rules/typography-system.md +369 -0
- package/.agent/skills/design-system/rules/typography.md +124 -0
- package/.agent/skills/design-system/rules/ux-psychology.md +565 -0
- package/.agent/skills/design-system/rules/visual-effects.md +407 -0
- package/.agent/skills/design-system/scripts/accessibility_checker.ts +292 -0
- package/.agent/skills/design-system/scripts/ux_audit.ts +356 -0
- package/.agent/skills/doc-templates/AGENTS.md +820 -0
- package/.agent/skills/doc-templates/SKILL.md +260 -0
- package/.agent/skills/doc-templates/rules/_sections.md +20 -0
- package/.agent/skills/doc-templates/rules/_template.md +32 -0
- package/.agent/skills/doc-templates/rules/doc.md +355 -0
- package/.agent/skills/doc-templates/rules/engineering-spec.md +422 -0
- package/.agent/skills/doc-templates/scripts/editor-server.ts +162 -0
- package/.agent/skills/doc-templates/scripts/inject_otel.ts +22 -0
- package/.agent/skills/doc-templates/scripts/kanban-server.ts +171 -0
- package/.agent/skills/doc-templates/scripts/markdown-server.ts +185 -0
- package/.agent/skills/e2e-automation/AGENTS.md +882 -0
- package/.agent/skills/e2e-automation/SKILL.md +175 -0
- package/.agent/skills/e2e-automation/rules/_sections.md +20 -0
- package/.agent/skills/e2e-automation/rules/_template.md +32 -0
- package/.agent/skills/e2e-automation/rules/aria-snapshot.md +185 -0
- package/.agent/skills/e2e-automation/rules/engineering-spec.md +501 -0
- package/.agent/skills/e2e-automation/scripts/playwright_runner.ts +208 -0
- package/.agent/skills/execution-reporter/AGENTS.md +419 -0
- package/.agent/skills/execution-reporter/SKILL.md +152 -0
- package/.agent/skills/execution-reporter/rules/_sections.md +15 -0
- package/.agent/skills/execution-reporter/rules/_template.md +32 -0
- package/.agent/skills/execution-reporter/rules/engineering-spec.md +389 -0
- package/.agent/skills/game-development/2d-games/SKILL.md +140 -0
- package/.agent/skills/game-development/3d-games/SKILL.md +156 -0
- package/.agent/skills/game-development/AGENTS.md +783 -0
- package/.agent/skills/game-development/SKILL.md +178 -0
- package/.agent/skills/game-development/game-art/SKILL.md +207 -0
- package/.agent/skills/game-development/game-audio/SKILL.md +211 -0
- package/.agent/skills/game-development/game-design/SKILL.md +151 -0
- package/.agent/skills/game-development/mobile-games/SKILL.md +130 -0
- package/.agent/skills/game-development/multiplayer/SKILL.md +154 -0
- package/.agent/skills/game-development/pc-games/SKILL.md +167 -0
- package/.agent/skills/game-development/rules/_sections.md +15 -0
- package/.agent/skills/game-development/rules/_template.md +32 -0
- package/.agent/skills/game-development/rules/engineering-spec.md +480 -0
- package/.agent/skills/game-development/vr-ar/SKILL.md +144 -0
- package/.agent/skills/game-development/web-games/SKILL.md +173 -0
- package/.agent/skills/git-workflow/AGENTS.md +554 -0
- package/.agent/skills/git-workflow/SKILL.md +181 -0
- package/.agent/skills/git-workflow/rules/_sections.md +15 -0
- package/.agent/skills/git-workflow/rules/_template.md +32 -0
- package/.agent/skills/git-workflow/rules/engineering-spec.md +518 -0
- package/.agent/skills/gitops/AGENTS.md +921 -0
- package/.agent/skills/gitops/SKILL.md +163 -0
- package/.agent/skills/gitops/rules/_sections.md +25 -0
- package/.agent/skills/gitops/rules/_template.md +32 -0
- package/.agent/skills/gitops/rules/argocd-setup.md +148 -0
- package/.agent/skills/gitops/rules/engineering-spec.md +450 -0
- package/.agent/skills/gitops/rules/sync-policies.md +145 -0
- package/.agent/skills/google-adk-python/AGENTS.md +1054 -0
- package/.agent/skills/google-adk-python/SKILL.md +168 -0
- package/.agent/skills/google-adk-python/rules/_sections.md +25 -0
- package/.agent/skills/google-adk-python/rules/_template.md +32 -0
- package/.agent/skills/google-adk-python/rules/deployment.md +138 -0
- package/.agent/skills/google-adk-python/rules/engineering-spec.md +451 -0
- package/.agent/skills/google-adk-python/rules/multi-agent.md +146 -0
- package/.agent/skills/google-adk-python/rules/tools.md +131 -0
- package/.agent/skills/idea-storm/AGENTS.md +995 -0
- package/.agent/skills/idea-storm/SKILL.md +160 -0
- package/.agent/skills/idea-storm/rules/_sections.md +25 -0
- package/.agent/skills/idea-storm/rules/_template.md +32 -0
- package/.agent/skills/idea-storm/rules/architecture-debate.md +122 -0
- package/.agent/skills/idea-storm/rules/dynamic-questioning.md +374 -0
- package/.agent/skills/idea-storm/rules/engineering-spec.md +466 -0
- package/.agent/skills/knowledge-compiler/SKILL.md +320 -0
- package/.agent/skills/knowledge-graph/AGENTS.md +762 -0
- package/.agent/skills/knowledge-graph/SKILL.md +157 -0
- package/.agent/skills/knowledge-graph/rules/_sections.md +15 -0
- package/.agent/skills/knowledge-graph/rules/_template.md +32 -0
- package/.agent/skills/knowledge-graph/rules/engineering-spec.md +439 -0
- package/.agent/skills/knowledge-linter/SKILL.md +217 -0
- package/.agent/skills/lifecycle-orchestrator/AGENTS.md +989 -0
- package/.agent/skills/lifecycle-orchestrator/SKILL.md +169 -0
- package/.agent/skills/lifecycle-orchestrator/rules/_sections.md +15 -0
- package/.agent/skills/lifecycle-orchestrator/rules/_template.md +32 -0
- package/.agent/skills/lifecycle-orchestrator/rules/engineering-spec.md +525 -0
- package/.agent/skills/lifecycle-orchestrator/scripts/state_manager.ts +189 -0
- package/.agent/skills/mcp-builder/AGENTS.md +1653 -0
- package/.agent/skills/mcp-builder/SKILL.md +166 -0
- package/.agent/skills/mcp-builder/rules/_sections.md +40 -0
- package/.agent/skills/mcp-builder/rules/_template.md +32 -0
- package/.agent/skills/mcp-builder/rules/best-practices.md +157 -0
- package/.agent/skills/mcp-builder/rules/design-principles.md +105 -0
- package/.agent/skills/mcp-builder/rules/engineering-spec.md +473 -0
- package/.agent/skills/mcp-builder/rules/evaluation.md +103 -0
- package/.agent/skills/mcp-builder/rules/python-implementation.md +249 -0
- package/.agent/skills/mcp-builder/rules/quickstart.md +111 -0
- package/.agent/skills/mcp-builder/rules/typescript-implementation.md +280 -0
- package/.agent/skills/mcp-management/AGENTS.md +837 -0
- package/.agent/skills/mcp-management/SKILL.md +164 -0
- package/.agent/skills/mcp-management/rules/_sections.md +25 -0
- package/.agent/skills/mcp-management/rules/_template.md +32 -0
- package/.agent/skills/mcp-management/rules/cli-usage.md +146 -0
- package/.agent/skills/mcp-management/rules/engineering-spec.md +501 -0
- package/.agent/skills/mcp-management/rules/protocol.md +159 -0
- package/.agent/skills/media-processing/AGENTS.md +479 -0
- package/.agent/skills/media-processing/SKILL.md +176 -0
- package/.agent/skills/media-processing/rules/_sections.md +15 -0
- package/.agent/skills/media-processing/rules/_template.md +32 -0
- package/.agent/skills/media-processing/rules/engineering-spec.md +452 -0
- package/.agent/skills/media-processing/scripts/convert-video.ts +155 -0
- package/.agent/skills/media-processing/scripts/optimize-image.ts +127 -0
- package/.agent/skills/mobile-design/AGENTS.md +6531 -0
- package/.agent/skills/mobile-design/SKILL.md +165 -0
- package/.agent/skills/mobile-design/rules/_sections.md +45 -0
- package/.agent/skills/mobile-design/rules/_template.md +32 -0
- package/.agent/skills/mobile-design/rules/decision-trees.md +540 -0
- package/.agent/skills/mobile-design/rules/engineering-spec.md +467 -0
- package/.agent/skills/mobile-design/rules/mobile-backend.md +516 -0
- package/.agent/skills/mobile-design/rules/mobile-color-system.md +436 -0
- package/.agent/skills/mobile-design/rules/mobile-debugging.md +146 -0
- package/.agent/skills/mobile-design/rules/mobile-design-thinking.md +381 -0
- package/.agent/skills/mobile-design/rules/mobile-navigation.md +474 -0
- package/.agent/skills/mobile-design/rules/mobile-performance.md +783 -0
- package/.agent/skills/mobile-design/rules/mobile-testing.md +380 -0
- package/.agent/skills/mobile-design/rules/mobile-typography.md +449 -0
- package/.agent/skills/mobile-design/rules/platform-android.md +682 -0
- package/.agent/skills/mobile-design/rules/platform-ios.md +577 -0
- package/.agent/skills/mobile-design/rules/touch-psychology.md +553 -0
- package/.agent/skills/mobile-design/scripts/mobile_audit.ts +309 -0
- package/.agent/skills/mobile-developer/AGENTS.md +904 -0
- package/.agent/skills/mobile-developer/SKILL.md +194 -0
- package/.agent/skills/mobile-developer/rules/_sections.md +75 -0
- package/.agent/skills/mobile-developer/rules/_template.md +32 -0
- package/.agent/skills/mobile-developer/rules/anti-patterns.md +70 -0
- package/.agent/skills/mobile-developer/rules/app-store-optimization.md +319 -0
- package/.agent/skills/mobile-developer/rules/decision-trees.md +545 -0
- package/.agent/skills/mobile-developer/rules/deep-linking.md +441 -0
- package/.agent/skills/mobile-developer/rules/engineering-spec.md +477 -0
- package/.agent/skills/mobile-developer/rules/flutter.md +475 -0
- package/.agent/skills/mobile-developer/rules/mobile-backend.md +516 -0
- package/.agent/skills/mobile-developer/rules/mobile-color-system.md +444 -0
- package/.agent/skills/mobile-developer/rules/mobile-debugging.md +428 -0
- package/.agent/skills/mobile-developer/rules/mobile-design-thinking.md +367 -0
- package/.agent/skills/mobile-developer/rules/mobile-navigation.md +483 -0
- package/.agent/skills/mobile-developer/rules/mobile-performance.md +778 -0
- package/.agent/skills/mobile-developer/rules/mobile-testing.md +382 -0
- package/.agent/skills/mobile-developer/rules/mobile-typography.md +457 -0
- package/.agent/skills/mobile-developer/rules/native.md +572 -0
- package/.agent/skills/mobile-developer/rules/platform-android.md +676 -0
- package/.agent/skills/mobile-developer/rules/platform-ios.md +571 -0
- package/.agent/skills/mobile-developer/rules/push-notifications.md +599 -0
- package/.agent/skills/mobile-developer/rules/react-native.md +422 -0
- package/.agent/skills/mobile-developer/rules/touch-psychology.md +547 -0
- package/.agent/skills/mobile-developer/scripts/mobile_audit.ts +701 -0
- package/.agent/skills/nextjs-pro/AGENTS.md +3932 -0
- package/.agent/skills/nextjs-pro/SKILL.md +171 -0
- package/.agent/skills/nextjs-pro/rules/_sections.md +50 -0
- package/.agent/skills/nextjs-pro/rules/_template.md +32 -0
- package/.agent/skills/nextjs-pro/rules/advanced-event-handler-refs.md +59 -0
- package/.agent/skills/nextjs-pro/rules/advanced-init-once.md +46 -0
- package/.agent/skills/nextjs-pro/rules/advanced-use-latest.md +43 -0
- package/.agent/skills/nextjs-pro/rules/async-api-routes.md +42 -0
- package/.agent/skills/nextjs-pro/rules/async-defer-await.md +84 -0
- package/.agent/skills/nextjs-pro/rules/async-dependencies.md +55 -0
- package/.agent/skills/nextjs-pro/rules/async-parallel.md +32 -0
- package/.agent/skills/nextjs-pro/rules/async-suspense-boundaries.md +103 -0
- package/.agent/skills/nextjs-pro/rules/bundle-barrel-imports.md +63 -0
- package/.agent/skills/nextjs-pro/rules/bundle-conditional.md +35 -0
- package/.agent/skills/nextjs-pro/rules/bundle-defer-third-party.md +53 -0
- package/.agent/skills/nextjs-pro/rules/bundle-dynamic-imports.md +39 -0
- package/.agent/skills/nextjs-pro/rules/bundle-preload.md +54 -0
- package/.agent/skills/nextjs-pro/rules/client-event-listeners.md +78 -0
- package/.agent/skills/nextjs-pro/rules/client-localstorage-schema.md +75 -0
- package/.agent/skills/nextjs-pro/rules/client-passive-event-listeners.md +52 -0
- package/.agent/skills/nextjs-pro/rules/client-swr-dedup.md +60 -0
- package/.agent/skills/nextjs-pro/rules/engineering-spec.md +440 -0
- package/.agent/skills/nextjs-pro/rules/js-batch-dom-css.md +111 -0
- package/.agent/skills/nextjs-pro/rules/js-cache-function-results.md +84 -0
- package/.agent/skills/nextjs-pro/rules/js-cache-property-access.md +32 -0
- package/.agent/skills/nextjs-pro/rules/js-cache-storage.md +74 -0
- package/.agent/skills/nextjs-pro/rules/js-combine-iterations.md +36 -0
- package/.agent/skills/nextjs-pro/rules/js-early-exit.md +54 -0
- package/.agent/skills/nextjs-pro/rules/js-hoist-regexp.md +49 -0
- package/.agent/skills/nextjs-pro/rules/js-index-maps.md +41 -0
- package/.agent/skills/nextjs-pro/rules/js-length-check-first.md +53 -0
- package/.agent/skills/nextjs-pro/rules/js-min-max-loop.md +86 -0
- package/.agent/skills/nextjs-pro/rules/js-set-map-lookups.md +28 -0
- package/.agent/skills/nextjs-pro/rules/js-tosorted-immutable.md +61 -0
- package/.agent/skills/nextjs-pro/rules/rendering-activity.md +30 -0
- package/.agent/skills/nextjs-pro/rules/rendering-animate-svg-wrapper.md +51 -0
- package/.agent/skills/nextjs-pro/rules/rendering-conditional-render.md +44 -0
- package/.agent/skills/nextjs-pro/rules/rendering-content-visibility.md +42 -0
- package/.agent/skills/nextjs-pro/rules/rendering-hoist-jsx.md +50 -0
- package/.agent/skills/nextjs-pro/rules/rendering-hydration-no-flicker.md +86 -0
- package/.agent/skills/nextjs-pro/rules/rendering-hydration-suppress-warning.md +34 -0
- package/.agent/skills/nextjs-pro/rules/rendering-svg-precision.md +32 -0
- package/.agent/skills/nextjs-pro/rules/rendering-usetransition-loading.md +79 -0
- package/.agent/skills/nextjs-pro/rules/rerender-defer-reads.md +43 -0
- package/.agent/skills/nextjs-pro/rules/rerender-dependencies.md +49 -0
- package/.agent/skills/nextjs-pro/rules/rerender-derived-state-no-effect.md +44 -0
- package/.agent/skills/nextjs-pro/rules/rerender-derived-state.md +33 -0
- package/.agent/skills/nextjs-pro/rules/rerender-functional-setstate.md +78 -0
- package/.agent/skills/nextjs-pro/rules/rerender-lazy-state-init.md +62 -0
- package/.agent/skills/nextjs-pro/rules/rerender-memo-with-default-value.md +42 -0
- package/.agent/skills/nextjs-pro/rules/rerender-memo.md +48 -0
- package/.agent/skills/nextjs-pro/rules/rerender-move-effect-to-event.md +49 -0
- package/.agent/skills/nextjs-pro/rules/rerender-simple-expression-in-memo.md +39 -0
- package/.agent/skills/nextjs-pro/rules/rerender-transitions.md +44 -0
- package/.agent/skills/nextjs-pro/rules/rerender-use-ref-transient-values.md +77 -0
- package/.agent/skills/nextjs-pro/rules/schema.json +34 -0
- package/.agent/skills/nextjs-pro/rules/server-after-nonblocking.md +77 -0
- package/.agent/skills/nextjs-pro/rules/server-auth-actions.md +100 -0
- package/.agent/skills/nextjs-pro/rules/server-cache-lru.md +45 -0
- package/.agent/skills/nextjs-pro/rules/server-cache-react.md +80 -0
- package/.agent/skills/nextjs-pro/rules/server-dedup-props.md +69 -0
- package/.agent/skills/nextjs-pro/rules/server-parallel-fetching.md +87 -0
- package/.agent/skills/nextjs-pro/rules/server-serialization.md +42 -0
- package/.agent/skills/nodejs-pro/AGENTS.md +866 -0
- package/.agent/skills/nodejs-pro/SKILL.md +172 -0
- package/.agent/skills/nodejs-pro/rules/_sections.md +50 -0
- package/.agent/skills/nodejs-pro/rules/_template.md +32 -0
- package/.agent/skills/nodejs-pro/rules/architecture-patterns.md +229 -0
- package/.agent/skills/nodejs-pro/rules/async-patterns.md +246 -0
- package/.agent/skills/nodejs-pro/rules/engineering-spec.md +438 -0
- package/.agent/skills/nodejs-pro/rules/error-handling.md +257 -0
- package/.agent/skills/nodejs-pro/rules/framework-selection.md +220 -0
- package/.agent/skills/nodejs-pro/rules/runtime-modules.md +176 -0
- package/.agent/skills/nodejs-pro/rules/testing-strategy.md +266 -0
- package/.agent/skills/nodejs-pro/rules/validation-security.md +205 -0
- package/.agent/skills/observability/AGENTS.md +607 -0
- package/.agent/skills/observability/SKILL.md +178 -0
- package/.agent/skills/observability/rules/_sections.md +15 -0
- package/.agent/skills/observability/rules/_template.md +32 -0
- package/.agent/skills/observability/rules/engineering-spec.md +440 -0
- package/.agent/skills/offensive-sec/AGENTS.md +849 -0
- package/.agent/skills/offensive-sec/SKILL.md +191 -0
- package/.agent/skills/offensive-sec/rules/_sections.md +15 -0
- package/.agent/skills/offensive-sec/rules/_template.md +32 -0
- package/.agent/skills/offensive-sec/rules/engineering-spec.md +470 -0
- package/.agent/skills/perf-optimizer/AGENTS.md +870 -0
- package/.agent/skills/perf-optimizer/SKILL.md +189 -0
- package/.agent/skills/perf-optimizer/rules/_sections.md +15 -0
- package/.agent/skills/perf-optimizer/rules/_template.md +32 -0
- package/.agent/skills/perf-optimizer/rules/backend-patterns.md +312 -0
- package/.agent/skills/perf-optimizer/rules/engineering-spec.md +428 -0
- package/.agent/skills/perf-optimizer/scripts/lighthouse_audit.ts +201 -0
- package/.agent/skills/problem-checker/AGENTS.md +519 -0
- package/.agent/skills/problem-checker/SKILL.md +189 -0
- package/.agent/skills/problem-checker/rules/_sections.md +15 -0
- package/.agent/skills/problem-checker/rules/_template.md +32 -0
- package/.agent/skills/problem-checker/rules/engineering-spec.md +483 -0
- package/.agent/skills/problem-checker/scripts/check_problems.ts +396 -0
- package/.agent/skills/project-planner/AGENTS.md +2698 -0
- package/.agent/skills/project-planner/SKILL.md +166 -0
- package/.agent/skills/project-planner/rules/_sections.md +15 -0
- package/.agent/skills/project-planner/rules/_template.md +32 -0
- package/.agent/skills/project-planner/rules/engineering-spec.md +420 -0
- package/.agent/skills/python-pro/AGENTS.md +1871 -0
- package/.agent/skills/python-pro/SKILL.md +182 -0
- package/.agent/skills/python-pro/rules/_sections.md +50 -0
- package/.agent/skills/python-pro/rules/_template.md +32 -0
- package/.agent/skills/python-pro/rules/async-patterns.md +168 -0
- package/.agent/skills/python-pro/rules/django-patterns.md +194 -0
- package/.agent/skills/python-pro/rules/engineering-spec.md +442 -0
- package/.agent/skills/python-pro/rules/fastapi-patterns.md +179 -0
- package/.agent/skills/python-pro/rules/framework-selection.md +167 -0
- package/.agent/skills/python-pro/rules/project-structure.md +181 -0
- package/.agent/skills/python-pro/rules/testing-patterns.md +212 -0
- package/.agent/skills/python-pro/rules/type-hints.md +159 -0
- package/.agent/skills/react-pro/AGENTS.md +963 -0
- package/.agent/skills/react-pro/SKILL.md +232 -0
- package/.agent/skills/react-pro/rules/_sections.md +40 -0
- package/.agent/skills/react-pro/rules/_template.md +32 -0
- package/.agent/skills/react-pro/rules/component-patterns.md +145 -0
- package/.agent/skills/react-pro/rules/composition-compound.md +82 -0
- package/.agent/skills/react-pro/rules/data-fetching.md +133 -0
- package/.agent/skills/react-pro/rules/engineering-spec.md +453 -0
- package/.agent/skills/react-pro/rules/error-boundary.md +61 -0
- package/.agent/skills/react-pro/rules/file-organization.md +158 -0
- package/.agent/skills/react-pro/rules/hooks-custom.md +61 -0
- package/.agent/skills/react-pro/rules/mui-styling.md +138 -0
- package/.agent/skills/react-pro/rules/patterns.md +24 -0
- package/.agent/skills/react-pro/rules/performance-optimization.md +65 -0
- package/.agent/skills/react-pro/rules/performance.md +137 -0
- package/.agent/skills/react-pro/rules/react19-hooks.md +85 -0
- package/.agent/skills/react-pro/rules/state-management.md +90 -0
- package/.agent/skills/react-pro/rules/testing-patterns.md +52 -0
- package/.agent/skills/registry.json +1251 -0
- package/.agent/skills/security-scanner/AGENTS.md +851 -0
- package/.agent/skills/security-scanner/SKILL.md +182 -0
- package/.agent/skills/security-scanner/rules/_sections.md +15 -0
- package/.agent/skills/security-scanner/rules/_template.md +32 -0
- package/.agent/skills/security-scanner/rules/auth-patterns.md +281 -0
- package/.agent/skills/security-scanner/rules/checklists.md +186 -0
- package/.agent/skills/security-scanner/rules/engineering-spec.md +440 -0
- package/.agent/skills/security-scanner/scripts/security_scan.ts +513 -0
- package/.agent/skills/seo-optimizer/AGENTS.md +839 -0
- package/.agent/skills/seo-optimizer/SKILL.md +180 -0
- package/.agent/skills/seo-optimizer/rules/_sections.md +15 -0
- package/.agent/skills/seo-optimizer/rules/_template.md +32 -0
- package/.agent/skills/seo-optimizer/rules/engineering-spec.md +433 -0
- package/.agent/skills/seo-optimizer/scripts/geo_checker.ts +109 -0
- package/.agent/skills/seo-optimizer/scripts/seo_checker.ts +308 -0
- package/.agent/skills/server-ops/AGENTS.md +643 -0
- package/.agent/skills/server-ops/SKILL.md +194 -0
- package/.agent/skills/server-ops/rules/_sections.md +15 -0
- package/.agent/skills/server-ops/rules/_template.md +32 -0
- package/.agent/skills/server-ops/rules/engineering-spec.md +450 -0
- package/.agent/skills/shell-script/AGENTS.md +499 -0
- package/.agent/skills/shell-script/SKILL.md +205 -0
- package/.agent/skills/shell-script/rules/_sections.md +15 -0
- package/.agent/skills/shell-script/rules/_template.md +32 -0
- package/.agent/skills/shell-script/rules/engineering-spec.md +463 -0
- package/.agent/skills/skill-generator/SKILL.md +147 -0
- package/.agent/skills/smart-router/SKILL.md +95 -0
- package/.agent/skills/studio/AGENTS.md +636 -0
- package/.agent/skills/studio/SKILL.md +178 -0
- package/.agent/skills/studio/data/charts.csv +26 -0
- package/.agent/skills/studio/data/colors.csv +97 -0
- package/.agent/skills/studio/data/icons.csv +101 -0
- package/.agent/skills/studio/data/landing.csv +31 -0
- package/.agent/skills/studio/data/products.csv +97 -0
- package/.agent/skills/studio/data/prompts.csv +24 -0
- package/.agent/skills/studio/data/react-performance.csv +45 -0
- package/.agent/skills/studio/data/stacks/flutter.csv +52 -0
- package/.agent/skills/studio/data/stacks/html-tailwind.csv +56 -0
- package/.agent/skills/studio/data/stacks/jetpack-compose.csv +53 -0
- package/.agent/skills/studio/data/stacks/nextjs.csv +53 -0
- package/.agent/skills/studio/data/stacks/nuxt-ui.csv +51 -0
- package/.agent/skills/studio/data/stacks/nuxtjs.csv +59 -0
- package/.agent/skills/studio/data/stacks/react-native.csv +52 -0
- package/.agent/skills/studio/data/stacks/react.csv +54 -0
- package/.agent/skills/studio/data/stacks/shadcn.csv +61 -0
- package/.agent/skills/studio/data/stacks/svelte.csv +54 -0
- package/.agent/skills/studio/data/stacks/swiftui.csv +51 -0
- package/.agent/skills/studio/data/stacks/vue.csv +50 -0
- package/.agent/skills/studio/data/styles.csv +59 -0
- package/.agent/skills/studio/data/typography.csv +58 -0
- package/.agent/skills/studio/data/ui-reasoning.csv +101 -0
- package/.agent/skills/studio/data/ux-guidelines.csv +100 -0
- package/.agent/skills/studio/data/web-interface.csv +31 -0
- package/.agent/skills/studio/rules/_sections.md +15 -0
- package/.agent/skills/studio/rules/_template.md +32 -0
- package/.agent/skills/studio/rules/engineering-spec.md +455 -0
- package/.agent/skills/studio/scripts/core.ts +345 -0
- package/.agent/skills/studio/scripts/design_system.ts +953 -0
- package/.agent/skills/studio/scripts/search.ts +197 -0
- package/.agent/skills/studio/scripts/types.ts +147 -0
- package/.agent/skills/studio/scripts/utils/component-specs.ts +154 -0
- package/.agent/skills/studio/scripts/utils/config-loader.ts +165 -0
- package/.agent/skills/studio/scripts/utils/css-templates.ts +169 -0
- package/.agent/skills/studio/scripts/utils/css-validator.ts +95 -0
- package/.agent/skills/studio/scripts/utils/csv-loader.ts +52 -0
- package/.agent/skills/studio/scripts/utils/intelligent-overrides.ts +129 -0
- package/.agent/skills/studio/scripts/utils/page-override-formatter.ts +143 -0
- package/.agent/skills/studio/scripts/utils/page-type-detector.ts +124 -0
- package/.agent/skills/studio/scripts/utils/search-cache.ts +165 -0
- package/.agent/skills/studio/scripts/utils/text-utils.ts +44 -0
- package/.agent/skills/system-design/AGENTS.md +597 -0
- package/.agent/skills/system-design/SKILL.md +153 -0
- package/.agent/skills/system-design/rules/_sections.md +15 -0
- package/.agent/skills/system-design/rules/_template.md +32 -0
- package/.agent/skills/system-design/rules/context-discovery.md +117 -0
- package/.agent/skills/system-design/rules/engineering-spec.md +437 -0
- package/.agent/skills/system-design/rules/examples.md +180 -0
- package/.agent/skills/system-design/rules/pattern-selection.md +130 -0
- package/.agent/skills/system-design/rules/patterns-reference.md +110 -0
- package/.agent/skills/system-design/rules/trade-off-analysis.md +169 -0
- package/.agent/skills/tailwind-kit/AGENTS.md +1135 -0
- package/.agent/skills/tailwind-kit/SKILL.md +171 -0
- package/.agent/skills/tailwind-kit/rules/_sections.md +20 -0
- package/.agent/skills/tailwind-kit/rules/_template.md +32 -0
- package/.agent/skills/tailwind-kit/rules/components.md +232 -0
- package/.agent/skills/tailwind-kit/rules/engineering-spec.md +435 -0
- package/.agent/skills/tailwind-kit/rules/responsive.md +221 -0
- package/.agent/skills/tailwind-kit/rules/v4-config.md +72 -0
- package/.agent/skills/test-architect/AGENTS.md +851 -0
- package/.agent/skills/test-architect/SKILL.md +176 -0
- package/.agent/skills/test-architect/rules/_sections.md +15 -0
- package/.agent/skills/test-architect/rules/_template.md +32 -0
- package/.agent/skills/test-architect/rules/engineering-spec.md +434 -0
- package/.agent/skills/test-architect/scripts/test_runner.ts +265 -0
- package/.agent/skills/typescript-expert/AGENTS.md +1045 -0
- package/.agent/skills/typescript-expert/SKILL.md +200 -0
- package/.agent/skills/typescript-expert/rules/_sections.md +20 -0
- package/.agent/skills/typescript-expert/rules/_template.md +32 -0
- package/.agent/skills/typescript-expert/rules/engineering-spec.md +433 -0
- package/.agent/skills/typescript-expert/rules/tsconfig-strict.json +92 -0
- package/.agent/skills/typescript-expert/rules/typescript-cheatsheet.md +407 -0
- package/.agent/skills/typescript-expert/rules/utility-types.ts +264 -0
- package/.agent/skills/typescript-expert/scripts/ts_diagnostic.ts +321 -0
- package/.agent/skills/vercel-deploy/AGENTS.md +490 -0
- package/.agent/skills/vercel-deploy/SKILL.md +175 -0
- package/.agent/skills/vercel-deploy/rules/_sections.md +15 -0
- package/.agent/skills/vercel-deploy/rules/_template.md +32 -0
- package/.agent/skills/vercel-deploy/rules/engineering-spec.md +463 -0
- package/.agent/skills/vercel-deploy/scripts/deploy.sh +310 -0
- package/.agent/workflows/api.md +377 -0
- package/.agent/workflows/autopilot.md +344 -0
- package/.agent/workflows/build.md +338 -0
- package/.agent/workflows/chronicle.md +279 -0
- package/.agent/workflows/cook.md +217 -0
- package/.agent/workflows/diagnose.md +302 -0
- package/.agent/workflows/fix.md +253 -0
- package/.agent/workflows/game.md +329 -0
- package/.agent/workflows/inspect.md +276 -0
- package/.agent/workflows/knowledge.md +212 -0
- package/.agent/workflows/launch.md +345 -0
- package/.agent/workflows/mobile.md +354 -0
- package/.agent/workflows/monitor.md +239 -0
- package/.agent/workflows/optimize.md +269 -0
- package/.agent/workflows/plan.md +278 -0
- package/.agent/workflows/stage.md +286 -0
- package/.agent/workflows/studio.md +276 -0
- package/.agent/workflows/think.md +262 -0
- package/.agent/workflows/validate.md +289 -0
- package/.agentignore +161 -0
- package/.gitattributes +16 -0
- package/CHANGELOG.md +198 -0
- package/LICENSE +40 -0
- package/README.md +173 -0
- package/docs/SKILL_DESIGN_GUIDE.md +561 -0
- package/docs/The-Complete-Guide-to-Building-Skills-for-Claude.md +1207 -0
- package/docs/WORKFLOW_DESIGN_GUIDE.md +325 -0
- package/package.json +33 -0
- package/tsconfig.json +28 -0
|
@@ -0,0 +1,921 @@
|
|
|
1
|
+
# gitops-workflow
|
|
2
|
+
|
|
3
|
+
**Version 1.0.0**
|
|
4
|
+
Engineering
|
|
5
|
+
March 2026
|
|
6
|
+
|
|
7
|
+
> **Note:**
|
|
8
|
+
> This document is for agents and LLMs to follow when working on gitops domain.
|
|
9
|
+
> Optimized for automation and consistency by AI-assisted workflows.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# GitOps Workflow — Declarative Kubernetes Delivery
|
|
14
|
+
|
|
15
|
+
> Git is the single source of truth. Continuous reconciliation. No auto-sync to production.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
**Required:** Kubernetes cluster, `kubectl`, ArgoCD or Flux installed.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## When to Use
|
|
26
|
+
|
|
27
|
+
| Situation | Action |
|
|
28
|
+
|-----------|--------|
|
|
29
|
+
| K8s deployment needed | Choose ArgoCD or Flux via decision tree |
|
|
30
|
+
| CD pipeline setup | Configure sync policies per environment |
|
|
31
|
+
| Secret management | Use Sealed Secrets or External Secrets (no plaintext) |
|
|
32
|
+
| Multi-environment | Set up staging → production promotion |
|
|
33
|
+
| Architecture review | Read `rules/engineering-spec.md` |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## System Boundaries
|
|
38
|
+
|
|
39
|
+
| Owned by This Skill | NOT Owned |
|
|
40
|
+
|---------------------|-----------|
|
|
41
|
+
| ArgoCD vs Flux decision (4 criteria) | CI pipeline (→ cicd-pipeline) |
|
|
42
|
+
| Sync policy selection (4 policies) | Server management (→ server-ops) |
|
|
43
|
+
| Repository structure template | Git operations (→ git-workflow) |
|
|
44
|
+
| OpenGitOps compliance (4 principles) | Cluster provisioning |
|
|
45
|
+
| Secret management strategy | Helm chart development |
|
|
46
|
+
|
|
47
|
+
**Expert decision skill:** Produces architecture decisions. No cluster modifications.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## OpenGitOps Principles (4 — All Required)
|
|
52
|
+
|
|
53
|
+
| # | Principle | Requirement |
|
|
54
|
+
|---|-----------|-------------|
|
|
55
|
+
| 1 | Declarative | Entire system described declaratively |
|
|
56
|
+
| 2 | Versioned | Desired state stored in Git |
|
|
57
|
+
| 3 | Pulled | Agents pull desired state (not pushed) |
|
|
58
|
+
| 4 | Reconciled | Agents continuously reconcile actual vs desired |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## ArgoCD vs Flux Decision Tree
|
|
63
|
+
|
|
64
|
+
| Criterion | ArgoCD | Flux |
|
|
65
|
+
|-----------|--------|------|
|
|
66
|
+
| Web UI | ✅ Rich dashboard | ❌ CLI only |
|
|
67
|
+
| Multi-cluster | ✅ Native support | ⚠️ Requires setup |
|
|
68
|
+
| Helm support | ✅ Native | ✅ Native |
|
|
69
|
+
| Learning curve | Medium | Lower |
|
|
70
|
+
|
|
71
|
+
**Rule:** needs_ui=true OR cluster_count>1 → **ArgoCD**. Otherwise → **Flux**.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Sync Policies (4)
|
|
76
|
+
|
|
77
|
+
| Policy | Environment | Behavior |
|
|
78
|
+
|--------|-------------|----------|
|
|
79
|
+
| **Manual** | Production | Requires explicit approval |
|
|
80
|
+
| **Auto** | Dev, Staging | Deploys on Git push |
|
|
81
|
+
| **Prune** | All | Removes resources not in Git |
|
|
82
|
+
| **Self-Heal** | All | Reverts manual cluster changes |
|
|
83
|
+
|
|
84
|
+
**Safety:** Production is ALWAYS manual sync. No exceptions.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Repository Structure
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
gitops-repo/
|
|
92
|
+
├── apps/
|
|
93
|
+
│ ├── production/
|
|
94
|
+
│ └── staging/
|
|
95
|
+
├── infrastructure/
|
|
96
|
+
│ ├── ingress-nginx/
|
|
97
|
+
│ └── cert-manager/
|
|
98
|
+
└── argocd/
|
|
99
|
+
└── applications/
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Safety Rules (Non-Negotiable)
|
|
105
|
+
|
|
106
|
+
| Rule | Enforcement |
|
|
107
|
+
|------|-------------|
|
|
108
|
+
| No auto-sync to production | Sync policy = manual |
|
|
109
|
+
| No secrets in Git | Sealed Secrets / External Secrets |
|
|
110
|
+
| Rollback tested | Rollback procedure in promotion workflow |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Error Taxonomy
|
|
115
|
+
|
|
116
|
+
| Code | Recoverable | Trigger |
|
|
117
|
+
|------|-------------|---------|
|
|
118
|
+
| `ERR_INVALID_REQUEST_TYPE` | No | Request type not supported |
|
|
119
|
+
| `ERR_MISSING_CLUSTER_COUNT` | Yes | Cluster count not provided |
|
|
120
|
+
| `ERR_MISSING_ENVIRONMENTS` | Yes | Environment list not provided |
|
|
121
|
+
| `ERR_INVALID_ENVIRONMENT` | Yes | Environment name not recognized |
|
|
122
|
+
| `ERR_REFERENCE_NOT_FOUND` | No | Reference file missing |
|
|
123
|
+
|
|
124
|
+
**Zero internal retries.** Deterministic; same context = same recommendation.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Anti-Patterns
|
|
129
|
+
|
|
130
|
+
| ❌ Don't | ✅ Do |
|
|
131
|
+
|---------|-------|
|
|
132
|
+
| Auto-sync to production | Manual sync with approval |
|
|
133
|
+
| Store secrets in Git | Sealed Secrets / External Secrets |
|
|
134
|
+
| Push-based deployment | Pull-based reconciliation |
|
|
135
|
+
| Skip rollback testing | Test rollback on every release |
|
|
136
|
+
| Use imperative `kubectl apply` | Declarative manifests in Git |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 📑 Content Map
|
|
141
|
+
|
|
142
|
+
| File | Description | When to Read |
|
|
143
|
+
|------|-------------|--------------|
|
|
144
|
+
| [argocd-setup.md](rules/argocd-setup.md) | ArgoCD installation and config | ArgoCD selected |
|
|
145
|
+
| [sync-policies.md](rules/sync-policies.md) | Sync policy deep dive | Policy configuration |
|
|
146
|
+
| [engineering-spec.md](rules/engineering-spec.md) | Full engineering spec | Architecture review |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 🔗 Related
|
|
151
|
+
|
|
152
|
+
| Item | Type | Purpose |
|
|
153
|
+
|------|------|---------|
|
|
154
|
+
| `cicd-pipeline` | Skill | CI/CD pipeline |
|
|
155
|
+
| `server-ops` | Skill | Server management |
|
|
156
|
+
| `git-workflow` | Skill | Git operations |
|
|
157
|
+
| `/launch` | Workflow | Deployment |
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Detailed Rules
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### Rule: argocd-setup
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
title: ArgoCD Setup and Configuration
|
|
174
|
+
impact: MEDIUM
|
|
175
|
+
tags: gitops
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
# ArgoCD Setup and Configuration
|
|
179
|
+
|
|
180
|
+
> Installation, access, SSO, and RBAC configuration for ArgoCD.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Installation Methods
|
|
185
|
+
|
|
186
|
+
### 1. Standard Installation
|
|
187
|
+
```bash
|
|
188
|
+
kubectl create namespace argocd
|
|
189
|
+
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### 2. High Availability Installation
|
|
193
|
+
```bash
|
|
194
|
+
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/ha/install.yaml
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 3. Helm Installation
|
|
198
|
+
```bash
|
|
199
|
+
helm repo add argo https://argoproj.github.io/argo-helm
|
|
200
|
+
helm install argocd argo/argo-cd -n argocd --create-namespace
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Initial Configuration
|
|
204
|
+
|
|
205
|
+
### Access ArgoCD UI
|
|
206
|
+
```bash
|
|
207
|
+
# Port forward
|
|
208
|
+
kubectl port-forward svc/argocd-server -n argocd 8080:443
|
|
209
|
+
|
|
210
|
+
# Get initial admin password
|
|
211
|
+
argocd admin initial-password -n argocd
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Configure Ingress
|
|
215
|
+
```yaml
|
|
216
|
+
apiVersion: networking.k8s.io/v1
|
|
217
|
+
kind: Ingress
|
|
218
|
+
metadata:
|
|
219
|
+
name: argocd-server-ingress
|
|
220
|
+
namespace: argocd
|
|
221
|
+
annotations:
|
|
222
|
+
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
223
|
+
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
|
224
|
+
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
|
225
|
+
spec:
|
|
226
|
+
ingressClassName: nginx
|
|
227
|
+
rules:
|
|
228
|
+
- host: argocd.example.com
|
|
229
|
+
http:
|
|
230
|
+
paths:
|
|
231
|
+
- path: /
|
|
232
|
+
pathType: Prefix
|
|
233
|
+
backend:
|
|
234
|
+
service:
|
|
235
|
+
name: argocd-server
|
|
236
|
+
port:
|
|
237
|
+
number: 443
|
|
238
|
+
tls:
|
|
239
|
+
- hosts:
|
|
240
|
+
- argocd.example.com
|
|
241
|
+
secretName: argocd-secret
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## CLI Configuration
|
|
245
|
+
|
|
246
|
+
### Login
|
|
247
|
+
```bash
|
|
248
|
+
argocd login argocd.example.com --username admin
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Add Repository
|
|
252
|
+
```bash
|
|
253
|
+
argocd repo add https://github.com/org/repo --username user --password token
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Create Application
|
|
257
|
+
```bash
|
|
258
|
+
argocd app create my-app \
|
|
259
|
+
--repo https://github.com/org/repo \
|
|
260
|
+
--path apps/my-app \
|
|
261
|
+
--dest-server https://kubernetes.default.svc \
|
|
262
|
+
--dest-namespace production
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## SSO Configuration
|
|
266
|
+
|
|
267
|
+
### GitHub OAuth
|
|
268
|
+
```yaml
|
|
269
|
+
apiVersion: v1
|
|
270
|
+
kind: ConfigMap
|
|
271
|
+
metadata:
|
|
272
|
+
name: argocd-cm
|
|
273
|
+
namespace: argocd
|
|
274
|
+
data:
|
|
275
|
+
url: https://argocd.example.com
|
|
276
|
+
dex.config: |
|
|
277
|
+
connectors:
|
|
278
|
+
- type: github
|
|
279
|
+
id: github
|
|
280
|
+
name: GitHub
|
|
281
|
+
config:
|
|
282
|
+
clientID: $GITHUB_CLIENT_ID
|
|
283
|
+
clientSecret: $GITHUB_CLIENT_SECRET
|
|
284
|
+
orgs:
|
|
285
|
+
- name: my-org
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## RBAC Configuration
|
|
289
|
+
```yaml
|
|
290
|
+
apiVersion: v1
|
|
291
|
+
kind: ConfigMap
|
|
292
|
+
metadata:
|
|
293
|
+
name: argocd-rbac-cm
|
|
294
|
+
namespace: argocd
|
|
295
|
+
data:
|
|
296
|
+
policy.default: role:readonly
|
|
297
|
+
policy.csv: |
|
|
298
|
+
p, role:developers, applications, *, */dev, allow
|
|
299
|
+
p, role:operators, applications, *, */*, allow
|
|
300
|
+
g, my-org:devs, role:developers
|
|
301
|
+
g, my-org:ops, role:operators
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## Best Practices
|
|
305
|
+
|
|
306
|
+
1. Enable SSO for production
|
|
307
|
+
2. Implement RBAC policies
|
|
308
|
+
3. Use separate projects for teams
|
|
309
|
+
4. Enable audit logging
|
|
310
|
+
5. Configure notifications
|
|
311
|
+
6. Use ApplicationSets for multi-cluster
|
|
312
|
+
7. Implement resource hooks
|
|
313
|
+
8. Configure health checks
|
|
314
|
+
9. Use sync windows for maintenance
|
|
315
|
+
10. Monitor with Prometheus metrics
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
### Rule: engineering-spec
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
title: GitOps Workflow — Engineering Specification
|
|
327
|
+
impact: MEDIUM
|
|
328
|
+
tags: gitops
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
# GitOps Workflow — Engineering Specification
|
|
332
|
+
|
|
333
|
+
> Production-grade specification for declarative Kubernetes deployment with ArgoCD and Flux at FAANG scale.
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## 1. Overview
|
|
338
|
+
|
|
339
|
+
GitOps Workflow provides structured decision frameworks for declarative, Git-based Kubernetes continuous delivery: ArgoCD vs Flux tool selection, sync policy configuration (manual/auto/prune/self-heal), repository structure, OpenGitOps compliance, secret management strategy, and multi-environment promotion. The skill operates as an expert knowledge base with reference files — it produces architecture decisions and configuration guidance. It does not install tools, configure clusters, or modify Kubernetes resources.
|
|
340
|
+
|
|
341
|
+
**Contract Version:** 2.0.0
|
|
342
|
+
**Backward Compatibility:** breaking (first hardened version)
|
|
343
|
+
**Breaking Changes:** None — new spec for first hardening
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## 2. Problem Statement
|
|
348
|
+
|
|
349
|
+
Kubernetes deployment at scale faces four quantified problems:
|
|
350
|
+
|
|
351
|
+
| Problem | Measurement | Impact |
|
|
352
|
+
|---------|-------------|--------|
|
|
353
|
+
| Imperative deployments | 45% of K8s deployments use `kubectl apply` ad-hoc | No audit trail, no rollback |
|
|
354
|
+
| Cluster drift | 35% of production clusters drift from declared state within 24h | State inconsistency |
|
|
355
|
+
| Secrets in Git | 20% of GitOps repos contain plaintext secrets | Credential exposure |
|
|
356
|
+
| No promotion workflow | 40% of multi-env setups lack structured promotion | Staging ≠ production |
|
|
357
|
+
|
|
358
|
+
GitOps Workflow eliminates these with declarative Git-as-source-of-truth, continuous reconciliation, sealed secrets, and environment promotion patterns.
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## 3. Design Goals
|
|
363
|
+
|
|
364
|
+
| ID | Goal | Measurable Constraint |
|
|
365
|
+
|----|------|-----------------------|
|
|
366
|
+
| G1 | Git as single source of truth | 100% of cluster state tracked in Git |
|
|
367
|
+
| G2 | Continuous reconciliation | Drift detected within reconciliation interval (default: 3 min) |
|
|
368
|
+
| G3 | ArgoCD vs Flux selection | Decision tree with 4 criteria (UI, multi-cluster, learning curve, team size) |
|
|
369
|
+
| G4 | Sync policy selection | 4 policies mapped to environment type |
|
|
370
|
+
| G5 | No secrets in Git | Sealed Secrets or External Secrets required |
|
|
371
|
+
| G6 | Multi-env promotion | staging → production with approval gate |
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## 4. Non-Goals
|
|
376
|
+
|
|
377
|
+
| ID | Excluded | Rationale |
|
|
378
|
+
|----|----------|-----------|
|
|
379
|
+
| NG1 | Kubernetes cluster provisioning | Infrastructure concern |
|
|
380
|
+
| NG2 | CI pipeline configuration | Owned by `cicd-pipeline` skill |
|
|
381
|
+
| NG3 | Server management | Owned by `server-ops` skill |
|
|
382
|
+
| NG4 | Git operations (commit, push) | Owned by `git-workflow` skill |
|
|
383
|
+
| NG5 | Helm chart development | Specialized concern |
|
|
384
|
+
| NG6 | Service mesh configuration | Infrastructure concern |
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## 5. System Boundaries
|
|
389
|
+
|
|
390
|
+
| Boundary | Owned | Not Owned |
|
|
391
|
+
|----------|-------|-----------|
|
|
392
|
+
| ArgoCD vs Flux decision (4 criteria) | Selection framework | Tool installation |
|
|
393
|
+
| Sync policy selection (4 policies) | Policy recommendation | ArgoCD/Flux configuration |
|
|
394
|
+
| Repository structure template | Directory layout | File creation |
|
|
395
|
+
| OpenGitOps compliance (4 principles) | Compliance checklist | Reconciliation implementation |
|
|
396
|
+
| Secret management strategy | Approach selection (Sealed/External Secrets) | Secret rotation |
|
|
397
|
+
| Multi-env promotion | Promotion workflow pattern | Approval system |
|
|
398
|
+
|
|
399
|
+
**Side-effect boundary:** GitOps Workflow produces architecture decisions and configuration guidance. It does not install ArgoCD/Flux, create Kubernetes resources, or modify cluster state.
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## 6. Integration Model
|
|
404
|
+
|
|
405
|
+
### 6.1 Agent Contract
|
|
406
|
+
|
|
407
|
+
#### Input Schema
|
|
408
|
+
|
|
409
|
+
```
|
|
410
|
+
Request_Type: string # "tool-select" | "sync-policy" | "repo-structure" |
|
|
411
|
+
# "secret-strategy" | "promotion" | "full-guide"
|
|
412
|
+
Context: {
|
|
413
|
+
cluster_count: number # 1 = single, 2+ = multi-cluster
|
|
414
|
+
team_size: string # "small" (<5) | "medium" (5-20) | "large" (20+)
|
|
415
|
+
needs_ui: boolean # Whether web UI is required
|
|
416
|
+
environments: Array<string> # ["dev", "staging", "production"]
|
|
417
|
+
has_helm: boolean # Whether Helm charts are used
|
|
418
|
+
secret_manager: string | null # "sealed-secrets" | "external-secrets" | "vault" | null
|
|
419
|
+
}
|
|
420
|
+
contract_version: string # "2.0.0"
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
#### Output Schema
|
|
424
|
+
|
|
425
|
+
```
|
|
426
|
+
Status: "success" | "error"
|
|
427
|
+
Data: {
|
|
428
|
+
tool: {
|
|
429
|
+
recommended: string # "argocd" | "flux"
|
|
430
|
+
rationale: string
|
|
431
|
+
comparison: Array<{
|
|
432
|
+
feature: string
|
|
433
|
+
argocd: string
|
|
434
|
+
flux: string
|
|
435
|
+
}>
|
|
436
|
+
} | null
|
|
437
|
+
sync_policy: {
|
|
438
|
+
environment: string
|
|
439
|
+
policy: string # "manual" | "auto" | "prune" | "self-heal"
|
|
440
|
+
rationale: string
|
|
441
|
+
} | null
|
|
442
|
+
repo_structure: {
|
|
443
|
+
directories: Array<string>
|
|
444
|
+
description: string
|
|
445
|
+
} | null
|
|
446
|
+
secret_strategy: {
|
|
447
|
+
approach: string # "sealed-secrets" | "external-secrets" | "vault"
|
|
448
|
+
rationale: string
|
|
449
|
+
} | null
|
|
450
|
+
promotion: {
|
|
451
|
+
workflow: Array<string> # Ordered promotion steps
|
|
452
|
+
approval_required: boolean
|
|
453
|
+
} | null
|
|
454
|
+
reference_file: string | null
|
|
455
|
+
metadata: {
|
|
456
|
+
contract_version: string
|
|
457
|
+
backward_compatibility: string
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
Error: ErrorSchema | null
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
#### Error Schema
|
|
464
|
+
|
|
465
|
+
```
|
|
466
|
+
Code: string # From Error Taxonomy (Section 11)
|
|
467
|
+
Message: string
|
|
468
|
+
Request_Type: string
|
|
469
|
+
Recoverable: boolean
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
#### Deterministic Guarantees
|
|
473
|
+
|
|
474
|
+
- Tool selection is deterministic: needs_ui=true OR cluster_count>1 → ArgoCD; else → Flux.
|
|
475
|
+
- Sync policy mapping is fixed: production → manual; dev/staging → auto; cleanup → prune; drift → self-heal.
|
|
476
|
+
- Repository structure is fixed: apps/{env}/, infrastructure/, argocd/applications/.
|
|
477
|
+
- Secret strategy: null → sealed-secrets (default).
|
|
478
|
+
- Promotion: always staging → production with approval gate for production.
|
|
479
|
+
- OpenGitOps compliance: 4 principles (declarative, versioned, pulled, reconciled) — binary pass/fail.
|
|
480
|
+
|
|
481
|
+
#### What Agents May Assume
|
|
482
|
+
|
|
483
|
+
- Tool recommendation reflects current ArgoCD vs Flux capabilities.
|
|
484
|
+
- Sync policies are mutually compatible (can combine auto + prune + self-heal).
|
|
485
|
+
- Repo structure works for both ArgoCD and Flux.
|
|
486
|
+
- Production always requires manual sync (no auto-sync to production).
|
|
487
|
+
|
|
488
|
+
#### What Agents Must NOT Assume
|
|
489
|
+
|
|
490
|
+
- ArgoCD/Flux are installed.
|
|
491
|
+
- Kubernetes cluster exists.
|
|
492
|
+
- The skill creates files, resources, or configurations.
|
|
493
|
+
- Secret management is configured.
|
|
494
|
+
|
|
495
|
+
#### Side-Effect Boundaries
|
|
496
|
+
|
|
497
|
+
| Operation | Side Effects |
|
|
498
|
+
|-----------|-------------|
|
|
499
|
+
| Tool select | None; decision output |
|
|
500
|
+
| Sync policy | None; recommendation |
|
|
501
|
+
| Repo structure | None; template output |
|
|
502
|
+
| Secret strategy | None; recommendation |
|
|
503
|
+
| Promotion | None; workflow output |
|
|
504
|
+
| Full guide | None; combined output |
|
|
505
|
+
|
|
506
|
+
### 6.2 Workflow Contract
|
|
507
|
+
|
|
508
|
+
#### Invocation Pattern
|
|
509
|
+
|
|
510
|
+
```
|
|
511
|
+
1. Define cluster count, team size, environments
|
|
512
|
+
2. Invoke tool-select for ArgoCD vs Flux decision
|
|
513
|
+
3. Invoke repo-structure for directory layout
|
|
514
|
+
4. Invoke sync-policy per environment
|
|
515
|
+
5. Invoke secret-strategy for secret management
|
|
516
|
+
6. Invoke promotion for multi-env workflow
|
|
517
|
+
7. Implement decisions (caller's responsibility)
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
#### Execution Guarantees
|
|
521
|
+
|
|
522
|
+
- Each invocation produces a complete recommendation.
|
|
523
|
+
- No dependencies between request types (can invoke any individually).
|
|
524
|
+
|
|
525
|
+
#### Failure Propagation Model
|
|
526
|
+
|
|
527
|
+
| Failure Severity | Propagation | Workflow Action |
|
|
528
|
+
|-----------------|-------------|-----------------|
|
|
529
|
+
| Invalid request type | Return error to caller | Use supported type |
|
|
530
|
+
| Missing cluster count | Return error to caller | Supply count |
|
|
531
|
+
| Missing environments | Return error to caller | Supply env list |
|
|
532
|
+
|
|
533
|
+
#### Retry Boundaries
|
|
534
|
+
|
|
535
|
+
- Zero internal retries. Deterministic output.
|
|
536
|
+
|
|
537
|
+
#### Isolation Model
|
|
538
|
+
|
|
539
|
+
- Each invocation is stateless and independent.
|
|
540
|
+
|
|
541
|
+
#### Idempotency Expectations
|
|
542
|
+
|
|
543
|
+
| Operation | Idempotent | Notes |
|
|
544
|
+
|-----------|-----------|-------|
|
|
545
|
+
| Tool select | Yes | Same context = same tool |
|
|
546
|
+
| Sync policy | Yes | Same env = same policy |
|
|
547
|
+
| Repo structure | Yes | Fixed template |
|
|
548
|
+
| Secret strategy | Yes | Same input = same recommendation |
|
|
549
|
+
| Promotion | Yes | Same envs = same workflow |
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
553
|
+
## 7. Execution Model
|
|
554
|
+
|
|
555
|
+
### 2-Phase Lifecycle
|
|
556
|
+
|
|
557
|
+
| Phase | Action | Output |
|
|
558
|
+
|-------|--------|--------|
|
|
559
|
+
| **Parse** | Validate request type, context fields | Validated input or error |
|
|
560
|
+
| **Evaluate** | Traverse decision tree for request type | Recommendation |
|
|
561
|
+
|
|
562
|
+
All phases synchronous. No async pipeline.
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
## 8. Deterministic Design Principles
|
|
567
|
+
|
|
568
|
+
| Principle | Enforcement |
|
|
569
|
+
|-----------|-------------|
|
|
570
|
+
| Fixed tool selection | needs_ui OR multi-cluster → ArgoCD; else → Flux |
|
|
571
|
+
| Fixed sync policies | 4 policies with fixed env mapping |
|
|
572
|
+
| Fixed repo structure | apps/{env}/, infrastructure/, argocd/applications/ |
|
|
573
|
+
| Fixed safety rules | No auto-sync production; no plaintext secrets; rollback tested |
|
|
574
|
+
| OpenGitOps compliance | 4 principles: declarative, versioned, pulled, reconciled |
|
|
575
|
+
| Production approval | Production promotion always requires explicit approval |
|
|
576
|
+
| No external calls | All decisions from embedded rules |
|
|
577
|
+
|
|
578
|
+
---
|
|
579
|
+
|
|
580
|
+
## 9. State & Idempotency Model
|
|
581
|
+
|
|
582
|
+
Stateless. Fully idempotent. No persistent state.
|
|
583
|
+
|
|
584
|
+
---
|
|
585
|
+
|
|
586
|
+
## 10. Failure Handling Strategy
|
|
587
|
+
|
|
588
|
+
| Failure Class | Behavior | Caller Recovery |
|
|
589
|
+
|---------------|----------|-----------------|
|
|
590
|
+
| Unknown request type | Return `ERR_INVALID_REQUEST_TYPE` | Use supported type |
|
|
591
|
+
| Missing cluster count | Return `ERR_MISSING_CLUSTER_COUNT` | Supply count |
|
|
592
|
+
| Missing environments | Return `ERR_MISSING_ENVIRONMENTS` | Supply env list |
|
|
593
|
+
| Invalid environment name | Return `ERR_INVALID_ENVIRONMENT` | Use dev/staging/production |
|
|
594
|
+
| Reference file missing | Return `ERR_REFERENCE_NOT_FOUND` | Verify installation |
|
|
595
|
+
|
|
596
|
+
**Invariant:** Every failure returns a structured error. No fallback to default recommendations.
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
## 11. Error Taxonomy
|
|
601
|
+
|
|
602
|
+
| Code | Category | Recoverable | Description |
|
|
603
|
+
|------|----------|-------------|-------------|
|
|
604
|
+
| `ERR_INVALID_REQUEST_TYPE` | Validation | No | Request type not supported |
|
|
605
|
+
| `ERR_MISSING_CLUSTER_COUNT` | Validation | Yes | Cluster count not provided |
|
|
606
|
+
| `ERR_MISSING_ENVIRONMENTS` | Validation | Yes | Environment list not provided |
|
|
607
|
+
| `ERR_INVALID_ENVIRONMENT` | Validation | Yes | Environment name not recognized |
|
|
608
|
+
| `ERR_REFERENCE_NOT_FOUND` | Infrastructure | No | Reference file missing |
|
|
609
|
+
|
|
610
|
+
---
|
|
611
|
+
|
|
612
|
+
## 12. Timeout & Retry Policy
|
|
613
|
+
|
|
614
|
+
| Parameter | Default | Maximum | Rationale |
|
|
615
|
+
|-----------|---------|---------|-----------|
|
|
616
|
+
| Decision timeout | N/A | N/A | Synchronous; < 50ms |
|
|
617
|
+
| Internal retries | Zero | Zero | Deterministic output |
|
|
618
|
+
|
|
619
|
+
---
|
|
620
|
+
|
|
621
|
+
## 13. Observability & Logging Schema
|
|
622
|
+
|
|
623
|
+
### Log Entry Format
|
|
624
|
+
|
|
625
|
+
```json
|
|
626
|
+
{
|
|
627
|
+
"trace_id": "uuid",
|
|
628
|
+
"skill_name": "gitops-workflow",
|
|
629
|
+
"contract_version": "2.0.0",
|
|
630
|
+
"execution_id": "uuid",
|
|
631
|
+
"timestamp": "ISO-8601",
|
|
632
|
+
"request_type": "string",
|
|
633
|
+
"cluster_count": "number",
|
|
634
|
+
"tool_recommended": "string|null",
|
|
635
|
+
"environments": "Array<string>|null",
|
|
636
|
+
"sync_policy": "string|null",
|
|
637
|
+
"status": "success|error",
|
|
638
|
+
"error_code": "string|null",
|
|
639
|
+
"duration_ms": "number"
|
|
640
|
+
}
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
### Required Log Points
|
|
644
|
+
|
|
645
|
+
| Event | Log Level | Fields |
|
|
646
|
+
|-------|-----------|--------|
|
|
647
|
+
| Tool selected | INFO | tool_recommended, rationale |
|
|
648
|
+
| Sync policy selected | INFO | environment, policy |
|
|
649
|
+
| Auto-sync production blocked | WARN | environment |
|
|
650
|
+
| Decision failed | ERROR | error_code, message |
|
|
651
|
+
|
|
652
|
+
### Metrics
|
|
653
|
+
|
|
654
|
+
| Metric | Type | Unit |
|
|
655
|
+
|--------|------|------|
|
|
656
|
+
| `gitops.decision.duration` | Histogram | ms |
|
|
657
|
+
| `gitops.tool.distribution` | Counter | argocd vs flux |
|
|
658
|
+
| `gitops.sync_policy.distribution` | Counter | per policy |
|
|
659
|
+
| `gitops.environment.count` | Histogram | per invocation |
|
|
660
|
+
|
|
661
|
+
---
|
|
662
|
+
|
|
663
|
+
## 14. Security & Trust Model
|
|
664
|
+
|
|
665
|
+
### Data Handling
|
|
666
|
+
|
|
667
|
+
- GitOps Workflow does not access clusters, credentials, or kubeconfig.
|
|
668
|
+
- No secrets, tokens, or certificates are processed.
|
|
669
|
+
- Repo structure templates contain no sensitive data.
|
|
670
|
+
|
|
671
|
+
### Safety Rules (Enforced)
|
|
672
|
+
|
|
673
|
+
| Rule | Enforcement |
|
|
674
|
+
|------|-------------|
|
|
675
|
+
| No auto-sync to production | Sync policy for production is always "manual" |
|
|
676
|
+
| No plaintext secrets in Git | Sealed Secrets or External Secrets recommended |
|
|
677
|
+
| Rollback procedure required | Included in promotion workflow |
|
|
678
|
+
|
|
679
|
+
---
|
|
680
|
+
|
|
681
|
+
## 15. Scalability Model
|
|
682
|
+
|
|
683
|
+
| Dimension | Constraint | Mitigation |
|
|
684
|
+
|-----------|-----------|------------|
|
|
685
|
+
| Throughput | CPU-bound decision tree | < 50ms; scales linearly |
|
|
686
|
+
| Concurrency | Stateless invocations | Unlimited parallel |
|
|
687
|
+
| Reference storage | 2 files (~6 KB) | Static; no growth |
|
|
688
|
+
| Memory per invocation | < 1 MB | No accumulation |
|
|
689
|
+
| Network | Zero network calls | No external dependency |
|
|
690
|
+
|
|
691
|
+
---
|
|
692
|
+
|
|
693
|
+
## 16. Concurrency Model
|
|
694
|
+
|
|
695
|
+
Fully parallel. No shared state. No coordination required.
|
|
696
|
+
|
|
697
|
+
---
|
|
698
|
+
|
|
699
|
+
## 17. Resource Lifecycle Management
|
|
700
|
+
|
|
701
|
+
All resources scoped to invocation. No persistent handles.
|
|
702
|
+
|
|
703
|
+
---
|
|
704
|
+
|
|
705
|
+
## 18. Performance Constraints
|
|
706
|
+
|
|
707
|
+
| Operation | P50 Target | P99 Target | Hard Limit |
|
|
708
|
+
|-----------|-----------|-----------|------------|
|
|
709
|
+
| Tool selection | < 2 ms | < 5 ms | 20 ms |
|
|
710
|
+
| Full guide | < 10 ms | < 30 ms | 50 ms |
|
|
711
|
+
| Output size | ≤ 1,000 chars | ≤ 3,000 chars | 5,000 chars |
|
|
712
|
+
|
|
713
|
+
---
|
|
714
|
+
|
|
715
|
+
## 19. Operational Risks
|
|
716
|
+
|
|
717
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
718
|
+
|------|-----------|--------|------------|
|
|
719
|
+
| ArgoCD/Flux feature changes | Medium | Stale comparison | Version-pinned comparison |
|
|
720
|
+
| Auto-sync to production | Low (blocked) | Unverified deployment | Manual sync enforced |
|
|
721
|
+
| Secrets in Git | Medium | Credential leakage | Sealed/External Secrets mandate |
|
|
722
|
+
| Cluster drift undetected | Low | State inconsistency | Reconciliation interval (3 min) |
|
|
723
|
+
| Promotion without approval | Low | Untested production | Approval gate mandatory |
|
|
724
|
+
|
|
725
|
+
---
|
|
726
|
+
|
|
727
|
+
## 20. Compliance with skill-design-guide.md
|
|
728
|
+
|
|
729
|
+
| Requirement | Status | Evidence |
|
|
730
|
+
|-------------|--------|----------|
|
|
731
|
+
| YAML frontmatter complete | ✅ | name, description, metadata with category, version, triggers, coordinates_with, success_metrics |
|
|
732
|
+
| SKILL.md < 200 lines | ✅ | Entry point under 200 lines |
|
|
733
|
+
| Prerequisites documented | ✅ | Kubernetes cluster, kubectl, ArgoCD or Flux |
|
|
734
|
+
| When to Use section | ✅ | Situation-based routing table |
|
|
735
|
+
| Core content matches skill type | ✅ | Expert type: decision trees, tool selection |
|
|
736
|
+
| Troubleshooting section | ✅ | Anti-patterns table |
|
|
737
|
+
| Related section | ✅ | Cross-links to cicd-pipeline, server-ops, git-workflow |
|
|
738
|
+
| Content Map for multi-file | ✅ | Links to 2 reference files + engineering-spec.md |
|
|
739
|
+
| Contract versioning | ✅ | contract_version, backward_compatibility, breaking_changes |
|
|
740
|
+
| Compliance matrix structured | ✅ | This table with ✅/❌ + evidence |
|
|
741
|
+
|
|
742
|
+
---
|
|
743
|
+
|
|
744
|
+
## 21. Production Readiness Checklist
|
|
745
|
+
|
|
746
|
+
| Category | Check | Status |
|
|
747
|
+
|----------|-------|--------|
|
|
748
|
+
| **Functionality** | ArgoCD vs Flux decision tree (4 criteria) | ✅ |
|
|
749
|
+
| **Functionality** | 4 sync policies with fixed env mapping | ✅ |
|
|
750
|
+
| **Functionality** | Repository structure template | ✅ |
|
|
751
|
+
| **Functionality** | Secret management strategy | ✅ |
|
|
752
|
+
| **Functionality** | Multi-env promotion with approval | ✅ |
|
|
753
|
+
| **Functionality** | OpenGitOps compliance (4 principles) | ✅ |
|
|
754
|
+
| **Contracts** | Input/output/error schemas in pseudo-schema format | ✅ |
|
|
755
|
+
| **Contracts** | Contract versioning with semver | ✅ |
|
|
756
|
+
| **Failure** | Error taxonomy with 5 categorized codes | ✅ |
|
|
757
|
+
| **Failure** | No fallback to default recommendation | ✅ |
|
|
758
|
+
| **Failure** | Zero internal retries | ✅ |
|
|
759
|
+
| **Determinism** | Fixed tool selection, fixed policies, fixed structure | ✅ |
|
|
760
|
+
| **Security** | No auto-sync production, no plaintext secrets | ✅ |
|
|
761
|
+
| **Observability** | Structured log schema with 5 mandatory fields | ✅ |
|
|
762
|
+
| **Observability** | 4 metrics defined | ✅ |
|
|
763
|
+
| **Performance** | P50/P99 targets for all operations | ✅ |
|
|
764
|
+
| **Scalability** | Stateless; unlimited parallel | ✅ |
|
|
765
|
+
| **Compliance** | All skill-design-guide.md sections mapped with evidence | ✅ |
|
|
766
|
+
|
|
767
|
+
---
|
|
768
|
+
|
|
769
|
+
|
|
770
|
+
|
|
771
|
+
---
|
|
772
|
+
|
|
773
|
+
### Rule: sync-policies
|
|
774
|
+
|
|
775
|
+
---
|
|
776
|
+
title: GitOps Sync Policies
|
|
777
|
+
impact: MEDIUM
|
|
778
|
+
tags: gitops
|
|
779
|
+
---
|
|
780
|
+
|
|
781
|
+
# GitOps Sync Policies
|
|
782
|
+
|
|
783
|
+
> Sync strategies, windows, retry policies, and health checks for ArgoCD and Flux.
|
|
784
|
+
|
|
785
|
+
---
|
|
786
|
+
|
|
787
|
+
## ArgoCD Sync Policies
|
|
788
|
+
|
|
789
|
+
### Automated Sync
|
|
790
|
+
```yaml
|
|
791
|
+
syncPolicy:
|
|
792
|
+
automated:
|
|
793
|
+
prune: true # Delete resources removed from Git
|
|
794
|
+
selfHeal: true # Reconcile manual changes
|
|
795
|
+
allowEmpty: false # Prevent empty sync
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
### Manual Sync
|
|
799
|
+
```yaml
|
|
800
|
+
syncPolicy:
|
|
801
|
+
syncOptions:
|
|
802
|
+
- PrunePropagationPolicy=foreground
|
|
803
|
+
- CreateNamespace=true
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
### Sync Windows
|
|
807
|
+
```yaml
|
|
808
|
+
syncWindows:
|
|
809
|
+
- kind: allow
|
|
810
|
+
schedule: "0 8 * * *"
|
|
811
|
+
duration: 1h
|
|
812
|
+
applications:
|
|
813
|
+
- my-app
|
|
814
|
+
- kind: deny
|
|
815
|
+
schedule: "0 22 * * *"
|
|
816
|
+
duration: 8h
|
|
817
|
+
applications:
|
|
818
|
+
- '*'
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
### Retry Policy
|
|
822
|
+
```yaml
|
|
823
|
+
syncPolicy:
|
|
824
|
+
retry:
|
|
825
|
+
limit: 5
|
|
826
|
+
backoff:
|
|
827
|
+
duration: 5s
|
|
828
|
+
factor: 2
|
|
829
|
+
maxDuration: 3m
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
## Flux Sync Policies
|
|
833
|
+
|
|
834
|
+
### Kustomization Sync
|
|
835
|
+
```yaml
|
|
836
|
+
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
837
|
+
kind: Kustomization
|
|
838
|
+
metadata:
|
|
839
|
+
name: my-app
|
|
840
|
+
spec:
|
|
841
|
+
interval: 5m
|
|
842
|
+
prune: true
|
|
843
|
+
wait: true
|
|
844
|
+
timeout: 5m
|
|
845
|
+
retryInterval: 1m
|
|
846
|
+
force: false
|
|
847
|
+
```
|
|
848
|
+
|
|
849
|
+
### Source Sync Interval
|
|
850
|
+
```yaml
|
|
851
|
+
apiVersion: source.toolkit.fluxcd.io/v1
|
|
852
|
+
kind: GitRepository
|
|
853
|
+
metadata:
|
|
854
|
+
name: my-app
|
|
855
|
+
spec:
|
|
856
|
+
interval: 1m
|
|
857
|
+
timeout: 60s
|
|
858
|
+
```
|
|
859
|
+
|
|
860
|
+
## Health Assessment
|
|
861
|
+
|
|
862
|
+
### Custom Health Checks
|
|
863
|
+
```yaml
|
|
864
|
+
# ArgoCD
|
|
865
|
+
apiVersion: v1
|
|
866
|
+
kind: ConfigMap
|
|
867
|
+
metadata:
|
|
868
|
+
name: argocd-cm
|
|
869
|
+
namespace: argocd
|
|
870
|
+
data:
|
|
871
|
+
resource.customizations.health.MyCustomResource: |
|
|
872
|
+
hs = {}
|
|
873
|
+
if obj.status ~= nil then
|
|
874
|
+
if obj.status.conditions ~= nil then
|
|
875
|
+
for i, condition in ipairs(obj.status.conditions) do
|
|
876
|
+
if condition.type == "Ready" and condition.status == "False" then
|
|
877
|
+
hs.status = "Degraded"
|
|
878
|
+
hs.message = condition.message
|
|
879
|
+
return hs
|
|
880
|
+
end
|
|
881
|
+
if condition.type == "Ready" and condition.status == "True" then
|
|
882
|
+
hs.status = "Healthy"
|
|
883
|
+
hs.message = condition.message
|
|
884
|
+
return hs
|
|
885
|
+
end
|
|
886
|
+
end
|
|
887
|
+
end
|
|
888
|
+
end
|
|
889
|
+
hs.status = "Progressing"
|
|
890
|
+
hs.message = "Waiting for status"
|
|
891
|
+
return hs
|
|
892
|
+
```
|
|
893
|
+
|
|
894
|
+
## Sync Options
|
|
895
|
+
|
|
896
|
+
### Common Sync Options
|
|
897
|
+
- `PrunePropagationPolicy=foreground` - Wait for pruned resources to be deleted
|
|
898
|
+
- `CreateNamespace=true` - Auto-create namespace
|
|
899
|
+
- `Validate=false` - Skip kubectl validation
|
|
900
|
+
- `PruneLast=true` - Prune resources after sync
|
|
901
|
+
- `RespectIgnoreDifferences=true` - Honor ignore differences
|
|
902
|
+
- `ApplyOutOfSyncOnly=true` - Only apply out-of-sync resources
|
|
903
|
+
|
|
904
|
+
## Best Practices
|
|
905
|
+
|
|
906
|
+
1. Use automated sync for non-production
|
|
907
|
+
2. Require manual approval for production
|
|
908
|
+
3. Configure sync windows for maintenance
|
|
909
|
+
4. Implement health checks for custom resources
|
|
910
|
+
5. Use selective sync for large applications
|
|
911
|
+
6. Configure appropriate retry policies
|
|
912
|
+
7. Monitor sync failures with alerts
|
|
913
|
+
8. Use prune with caution in production
|
|
914
|
+
9. Test sync policies in staging
|
|
915
|
+
10. Document sync behavior for teams
|
|
916
|
+
|
|
917
|
+
---
|
|
918
|
+
|
|
919
|
+
---
|
|
920
|
+
|
|
921
|
+
⚡ PikaKit v3.9.134
|