@nockdev/awf 6.2.6 → 6.2.7
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/config.yaml +2 -2
- package/.agent/core/AGENT_BEHAVIOR.md +1 -1
- package/.agent/core/AUDIT_POLICY.md +1 -1
- package/.agent/core/CACHE.md +1 -1
- package/.agent/core/DATA_SAFETY.md +1 -1
- package/.agent/core/MEMORY_PATHS.yaml +2 -2
- package/.agent/core/PERMISSIONS.md +1 -1
- package/.agent/core/README.md +1 -1
- package/.agent/core/VERSION.yaml +4 -4
- package/.agent/core/archive/ACTIVE_MEMORY.yaml +2 -2
- package/.agent/core/archive/CHECKPOINT.yaml +2 -2
- package/.agent/core/archive/CLEANUP_ENGINE.yaml +2 -2
- package/.agent/core/archive/CONTEXT_INJECTOR.yaml +2 -2
- package/.agent/core/archive/CONTEXT_LOADER.yaml +1 -1
- package/.agent/core/archive/CONTEXT_OPTIMIZATION.yaml +1 -1
- package/.agent/core/archive/CONTEXT_PRIORITY.yaml +2 -2
- package/.agent/core/archive/FLOW_ENGINE.yaml +1 -1
- package/.agent/core/archive/GRAPH_MEMORY.yaml +1 -1
- package/.agent/core/archive/HYBRID_ROUTER.yaml +1 -1
- package/.agent/core/archive/INTENT_DETECTION.yaml +1 -1
- package/.agent/core/archive/MEMORY_CONSOLIDATION.yaml +3 -3
- package/.agent/core/archive/MEMORY_ENGINE.yaml +2 -2
- package/.agent/core/archive/MEMORY_UTILS.yaml +1 -1
- package/.agent/core/archive/REFLECTION_ENGINE.yaml +1 -1
- package/.agent/core/archive/ROUTER.yaml +4 -4
- package/.agent/core/archive/SCORING_FORMULA.yaml +2 -2
- package/.agent/core/archive/SEMANTIC_ENGINE.yaml +1 -1
- package/.agent/core/archive/SKILLS_FLOW.yaml +1 -1
- package/.agent/core/archive/STATE_MACHINE.yaml +1 -1
- package/.agent/core/archive/SUMMARIZATION_ENGINE.yaml +2 -2
- package/.agent/core/archive/TOKEN_BUDGETS.yaml +2 -2
- package/.agent/core/archive/TOKEN_LOADING.yaml +2 -2
- package/.agent/core/archive/TOKEN_SUMMARY.yaml +2 -2
- package/.agent/core/reference/CODING_STYLES.yaml +1 -1
- package/.agent/core/reference/LIBRARY_REGISTRY.yaml +1 -1
- package/.agent/core/reference/MCP_TOOLS.yaml +2 -2
- package/.agent/core/reference/PATTERNS.yaml +1 -1
- package/.agent/core/reference/SKILL_SCHEMA.yaml +1 -1
- package/.agent/i18n/en.yaml +6 -6
- package/.agent/i18n/vi.yaml +6 -6
- package/.agent/ide/README.md +1 -1
- package/.agent/ide/amazonq.json +1 -1
- package/.agent/ide/amp.json +1 -1
- package/.agent/ide/antigravity.json +1 -1
- package/.agent/ide/augment.json +1 -1
- package/.agent/ide/claude.json +1 -1
- package/.agent/ide/cline.json +1 -1
- package/.agent/ide/cody.json +1 -1
- package/.agent/ide/continue.json +1 -1
- package/.agent/ide/cursor.json +1 -1
- package/.agent/ide/gemini.json +1 -1
- package/.agent/ide/jetbrains.json +1 -1
- package/.agent/ide/kiro.json +1 -1
- package/.agent/ide/opencode.json +1 -1
- package/.agent/ide/roo.json +1 -1
- package/.agent/ide/tabnine.json +1 -1
- package/.agent/ide/trae.json +1 -1
- package/.agent/ide/vscode.json +1 -1
- package/.agent/ide/windsurf.json +1 -1
- package/.agent/ide/zed.json +1 -1
- package/.agent/manifest.yaml +1 -1
- package/.agent/personas/README.md +1 -1
- package/.agent/personas/architect.md +1 -1
- package/.agent/personas/auditor.md +1 -1
- package/.agent/personas/debugger.md +1 -1
- package/.agent/personas/developer.md +1 -1
- package/.agent/personas/devops.md +1 -1
- package/.agent/personas/documenter.md +1 -1
- package/.agent/personas/orchestrator.md +1 -1
- package/.agent/personas/persona.schema.yaml +1 -1
- package/.agent/personas/planner.md +1 -1
- package/.agent/personas/researcher.md +1 -1
- package/.agent/personas/security.md +1 -1
- package/.agent/personas/tester.md +1 -1
- package/.agent/rules/README.md +1 -1
- package/.agent/rules/archive/constitutional/tier-0-core.yaml +5 -5
- package/.agent/rules/archive/constitutional/tier-1-safety.yaml +5 -5
- package/.agent/rules/archive/constitutional/tier-2-execution.yaml +6 -6
- package/.agent/rules/archive/context-management.yaml +1 -1
- package/.agent/rules/archive/duplication-prevention.md +1 -1
- package/.agent/rules/archive/evidence.yaml +1 -1
- package/.agent/rules/archive/project-detection.md +1 -1
- package/.agent/rules/archive/reflection.yaml +1 -1
- package/.agent/rules/archive/versioning.yaml +5 -5
- package/.agent/rules/data/build-systems.yaml +2 -2
- package/.agent/rules/modules/agent-delegation.yaml +2 -2
- package/.agent/rules/modules/edit-verification.yaml +1 -1
- package/.agent/rules/modules/git-workflow.yaml +1 -1
- package/.agent/rules/modules/language.yaml +1 -1
- package/.agent/rules/modules/online-research.yaml +1 -1
- package/.agent/rules/modules/performance-optimization.yaml +2 -2
- package/.agent/rules/modules/quality.yaml +1 -1
- package/.agent/rules/modules/stop-conditions.yaml +1 -1
- package/.agent/rules/modules/terminal-safety.yaml +1 -1
- package/.agent/rules/modules/yagni.yaml +1 -1
- package/.agent/rules/validation-framework.md +1 -1
- package/.agent/skills/README.md +1 -1
- package/.agent/skills/_categories.yaml +2 -2
- package/.agent/skills/ai-ml/rag-patterns/META.yaml +2 -0
- package/.agent/skills/core/api-design/META.yaml +1 -1
- package/.agent/skills/core/authentication/META.yaml +1 -1
- package/.agent/skills/core/error-handling/META.yaml +1 -1
- package/.agent/skills/core/logging/META.yaml +1 -1
- package/.agent/skills/core/observability/META.yaml +1 -1
- package/.agent/skills/core/security/META.yaml +1 -1
- package/.agent/skills/core/security/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/accessibility/META.yaml +1 -1
- package/.agent/skills/cross-cutting/audit-pro/META.yaml +9 -1
- package/.agent/skills/cross-cutting/audit-pro/SKILL.md +61 -5
- package/.agent/skills/cross-cutting/bun/META.yaml +17 -8
- package/.agent/skills/cross-cutting/bun/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/coding-rules/META.yaml +1 -1
- package/.agent/skills/cross-cutting/database/META.yaml +42 -1
- package/.agent/skills/cross-cutting/database/SKILL.md +44 -628
- package/.agent/skills/cross-cutting/database/references/nosql-patterns.md +194 -0
- package/.agent/skills/cross-cutting/database/references/orms-patterns.md +278 -0
- package/.agent/skills/cross-cutting/database/references/postgresql.md +144 -0
- package/.agent/skills/cross-cutting/deno/META.yaml +19 -10
- package/.agent/skills/cross-cutting/deno/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/domyh-design/META.yaml +1 -1
- package/.agent/skills/cross-cutting/domyh-design/data/desktop-colors.yaml +1 -1
- package/.agent/skills/cross-cutting/electron/SKILL.md +15 -616
- package/.agent/skills/cross-cutting/electron/references/ipc-testing.md +114 -0
- package/.agent/skills/cross-cutting/electron/references/native-integrations.md +216 -0
- package/.agent/skills/cross-cutting/electron/references/performance-accessibility.md +118 -0
- package/.agent/skills/cross-cutting/electron/references/updates-persistence.md +165 -0
- package/.agent/skills/cross-cutting/seo/META.yaml +1 -1
- package/.agent/skills/cross-cutting/skill-creator/META.yaml +37 -0
- package/.agent/skills/cross-cutting/skill-creator/SKILL.md +163 -0
- package/.agent/skills/cross-cutting/skill-creator/references/patterns.md +58 -0
- package/.agent/skills/cross-cutting/skill-creator/references/schema-v2.md +44 -0
- package/.agent/skills/cross-cutting/sql/META.yaml +1 -1
- package/.agent/skills/cross-cutting/sql/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/tailwind/META.yaml +1 -1
- package/.agent/skills/cross-cutting/tailwind/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/tdd-workflow/META.yaml +1 -1
- package/.agent/skills/cross-cutting/testing/META.yaml +7 -1
- package/.agent/skills/cross-cutting/testing/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/testing/data/frameworks.yaml +1 -1
- package/.agent/skills/cross-cutting/web-perf/META.yaml +1 -1
- package/.agent/skills/cross-cutting/web-perf/SKILL.md +1 -1
- package/.agent/skills/devops/aws/META.yaml +1 -1
- package/.agent/skills/devops/aws/SKILL.md +101 -16
- package/.agent/skills/devops/azure/SKILL.md +96 -30
- package/.agent/skills/devops/ci-cd/META.yaml +1 -1
- package/.agent/skills/devops/ci-cd/SKILL.md +114 -8
- package/.agent/skills/devops/docker/META.yaml +1 -1
- package/.agent/skills/devops/docker/SKILL.md +96 -8
- package/.agent/skills/devops/gcp/SKILL.md +106 -30
- package/.agent/skills/devops/kubernetes/META.yaml +1 -1
- package/.agent/skills/devops/kubernetes/SKILL.md +125 -8
- package/.agent/skills/frameworks/angular/META.yaml +1 -1
- package/.agent/skills/frameworks/angular/SKILL.md +1 -1
- package/.agent/skills/frameworks/flutter/META.yaml +1 -1
- package/.agent/skills/frameworks/flutter/SKILL.md +1 -1
- package/.agent/skills/frameworks/nextjs/META.yaml +1 -1
- package/.agent/skills/frameworks/nextjs/SKILL.md +1 -1
- package/.agent/skills/frameworks/nuxt/META.yaml +1 -1
- package/.agent/skills/frameworks/nuxt/SKILL.md +1 -1
- package/.agent/skills/frameworks/react/META.yaml +1 -1
- package/.agent/skills/frameworks/react/SKILL.md +24 -1
- package/.agent/skills/frameworks/react-native/META.yaml +1 -1
- package/.agent/skills/frameworks/react-native/SKILL.md +1 -1
- package/.agent/skills/frameworks/svelte/META.yaml +1 -1
- package/.agent/skills/frameworks/svelte/SKILL.md +1 -1
- package/.agent/skills/frameworks/vue/META.yaml +1 -1
- package/.agent/skills/frameworks/vue/SKILL.md +1 -1
- package/.agent/skills/index.json +2 -2
- package/.agent/skills/languages/asm/META.yaml +1 -1
- package/.agent/skills/languages/asm/SKILL.md +27 -436
- package/.agent/skills/languages/asm/references/advanced-architectures.md +191 -0
- package/.agent/skills/languages/asm/references/build-structure.md +150 -0
- package/.agent/skills/languages/asm/references/simd-programming.md +92 -0
- package/.agent/skills/languages/c/META.yaml +1 -1
- package/.agent/skills/languages/c/SKILL.md +14 -356
- package/.agent/skills/languages/c/references/data-structures.md +63 -0
- package/.agent/skills/languages/c/references/memory-management.md +74 -0
- package/.agent/skills/languages/c/references/platform-headers.md +230 -0
- package/.agent/skills/languages/clojure/META.yaml +1 -1
- package/.agent/skills/languages/clojure/SKILL.md +1 -1
- package/.agent/skills/languages/cpp/META.yaml +1 -1
- package/.agent/skills/languages/cpp/SKILL.md +22 -753
- package/.agent/skills/languages/cpp/references/headers-optimization.md +229 -0
- package/.agent/skills/languages/cpp/references/memory-concurrency.md +85 -0
- package/.agent/skills/languages/cpp/references/modern-cpp-features.md +126 -0
- package/.agent/skills/languages/cpp/references/platform-headers.md +202 -0
- package/.agent/skills/languages/cpp/references/stl-containers.md +57 -0
- package/.agent/skills/languages/crystal/META.yaml +1 -1
- package/.agent/skills/languages/crystal/SKILL.md +1 -1
- package/.agent/skills/languages/csharp/META.yaml +1 -1
- package/.agent/skills/languages/csharp/SKILL.md +1 -1
- package/.agent/skills/languages/elixir/META.yaml +1 -1
- package/.agent/skills/languages/elixir/SKILL.md +1 -1
- package/.agent/skills/languages/fsharp/META.yaml +1 -1
- package/.agent/skills/languages/fsharp/SKILL.md +1 -1
- package/.agent/skills/languages/go/META.yaml +1 -1
- package/.agent/skills/languages/go/SKILL.md +1 -1
- package/.agent/skills/languages/haskell/META.yaml +1 -1
- package/.agent/skills/languages/haskell/SKILL.md +1 -1
- package/.agent/skills/languages/java/META.yaml +1 -1
- package/.agent/skills/languages/java/SKILL.md +1 -1
- package/.agent/skills/languages/javascript/META.yaml +1 -1
- package/.agent/skills/languages/javascript/SKILL.md +1 -1
- package/.agent/skills/languages/julia/META.yaml +1 -1
- package/.agent/skills/languages/julia/SKILL.md +1 -1
- package/.agent/skills/languages/kotlin/META.yaml +1 -1
- package/.agent/skills/languages/kotlin/SKILL.md +1 -1
- package/.agent/skills/languages/lua/META.yaml +1 -1
- package/.agent/skills/languages/lua/SKILL.md +3 -3
- package/.agent/skills/languages/nim/META.yaml +1 -1
- package/.agent/skills/languages/nim/SKILL.md +1 -1
- package/.agent/skills/languages/ocaml/META.yaml +1 -1
- package/.agent/skills/languages/ocaml/SKILL.md +1 -1
- package/.agent/skills/languages/perl/META.yaml +1 -1
- package/.agent/skills/languages/perl/SKILL.md +1 -1
- package/.agent/skills/languages/php/META.yaml +1 -1
- package/.agent/skills/languages/php/SKILL.md +1 -1
- package/.agent/skills/languages/python/META.yaml +1 -1
- package/.agent/skills/languages/python/SKILL.md +1 -1
- package/.agent/skills/languages/r/META.yaml +1 -1
- package/.agent/skills/languages/r/SKILL.md +1 -1
- package/.agent/skills/languages/ruby/META.yaml +1 -1
- package/.agent/skills/languages/ruby/SKILL.md +1 -1
- package/.agent/skills/languages/rust/META.yaml +1 -1
- package/.agent/skills/languages/rust/SKILL.md +1 -1
- package/.agent/skills/languages/scala/META.yaml +1 -1
- package/.agent/skills/languages/scala/SKILL.md +1 -1
- package/.agent/skills/languages/solidity/META.yaml +1 -1
- package/.agent/skills/languages/solidity/SKILL.md +1 -1
- package/.agent/skills/languages/swift/META.yaml +1 -1
- package/.agent/skills/languages/swift/SKILL.md +1 -1
- package/.agent/skills/languages/typescript/META.yaml +19 -1
- package/.agent/skills/languages/typescript/SKILL.md +23 -1
- package/.agent/skills/languages/zig/META.yaml +1 -1
- package/.agent/skills/languages/zig/SKILL.md +1 -1
- package/.agent/templates/README.md +2 -2
- package/.agent/templates/chains/feature/step1-requirements.md +76 -0
- package/.agent/templates/chains/feature/step2-design.md +75 -0
- package/.agent/templates/chains/feature/step3-planning.md +81 -0
- package/.agent/templates/chains/feature/step4-implementation.md +74 -0
- package/.agent/templates/chains/feature/step5-testing.md +81 -0
- package/.agent/templates/debug-report.md +1 -1
- package/.agent/templates/deploy-plan.md +1 -1
- package/.agent/templates/doc-template.md +1 -1
- package/.agent/templates/feature-lifecycle.md +53 -0
- package/.agent/templates/index.yaml +53 -2
- package/.agent/templates/migrate-plan.md +1 -1
- package/.agent/templates/phase-template.md +1 -1
- package/.agent/templates/tasks/audit.yaml +1 -1
- package/.agent/templates/tasks/bug_fix.yaml +1 -1
- package/.agent/templates/tasks/code_implementation.yaml +1 -1
- package/.agent/templates/tasks/feature_development.yaml +89 -0
- package/.agent/templates/tasks/refactor.yaml +1 -1
- package/.agent/templates/test-report.md +1 -1
- package/.agent/workflows/doctor.md +124 -0
- package/.agent/workflows/feature.md +130 -0
- package/.agent/workflows/help.md +7 -5
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/package.json +2 -2
|
@@ -2,6 +2,120 @@
|
|
|
2
2
|
|
|
3
3
|
CI/CD pipeline patterns for GitHub Actions, GitLab CI, and GitOps. Includes SLSA Build Level 3, ARM64 runners, security scanning.
|
|
4
4
|
|
|
5
|
+
## Decision Tree
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Task → What CI/CD platform?
|
|
9
|
+
├─ GitHub Actions
|
|
10
|
+
│ ├─ Simple project → Single workflow file
|
|
11
|
+
│ ├─ Monorepo → Path filters + matrix
|
|
12
|
+
│ └─ Org-wide → Reusable workflows (workflow_call)
|
|
13
|
+
├─ GitLab CI
|
|
14
|
+
│ ├─ Simple → .gitlab-ci.yml stages
|
|
15
|
+
│ └─ Multi-project → Pipeline triggers
|
|
16
|
+
└─ Deployment strategy
|
|
17
|
+
├─ Simple → Push-to-deploy (main branch)
|
|
18
|
+
├─ Staged → Environment promotion (dev → staging → prod)
|
|
19
|
+
├─ Zero-downtime → Blue/green with health checks
|
|
20
|
+
└─ Risk-managed → Canary with progressive rollout
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Quick Start — GitHub Actions
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
# .github/workflows/ci.yml
|
|
27
|
+
name: CI
|
|
28
|
+
on:
|
|
29
|
+
push:
|
|
30
|
+
branches: [main]
|
|
31
|
+
pull_request:
|
|
32
|
+
branches: [main]
|
|
33
|
+
|
|
34
|
+
permissions:
|
|
35
|
+
contents: read
|
|
36
|
+
|
|
37
|
+
jobs:
|
|
38
|
+
build-test:
|
|
39
|
+
runs-on: ubuntu-latest
|
|
40
|
+
timeout-minutes: 15
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@v4
|
|
43
|
+
- uses: actions/setup-node@v4
|
|
44
|
+
with:
|
|
45
|
+
node-version: 22
|
|
46
|
+
cache: "npm"
|
|
47
|
+
- run: npm ci
|
|
48
|
+
- run: npm run lint
|
|
49
|
+
- run: npm test
|
|
50
|
+
- run: npm run build
|
|
51
|
+
|
|
52
|
+
deploy:
|
|
53
|
+
needs: build-test
|
|
54
|
+
if: github.ref == 'refs/heads/main'
|
|
55
|
+
runs-on: ubuntu-latest
|
|
56
|
+
environment: production
|
|
57
|
+
permissions:
|
|
58
|
+
id-token: write # OIDC
|
|
59
|
+
steps:
|
|
60
|
+
- uses: actions/checkout@v4
|
|
61
|
+
- uses: aws-actions/configure-aws-credentials@v4
|
|
62
|
+
with:
|
|
63
|
+
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
|
|
64
|
+
aws-region: us-east-1
|
|
65
|
+
- run: npm ci && npm run build
|
|
66
|
+
- run: aws s3 sync dist/ s3://${{ vars.BUCKET }}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Quick Start — Reusable Workflow
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
# .github/workflows/reusable-build.yml
|
|
73
|
+
name: Build
|
|
74
|
+
on:
|
|
75
|
+
workflow_call:
|
|
76
|
+
inputs:
|
|
77
|
+
node-version:
|
|
78
|
+
type: string
|
|
79
|
+
default: "22"
|
|
80
|
+
secrets:
|
|
81
|
+
NPM_TOKEN:
|
|
82
|
+
required: false
|
|
83
|
+
|
|
84
|
+
jobs:
|
|
85
|
+
build:
|
|
86
|
+
runs-on: ubuntu-latest
|
|
87
|
+
steps:
|
|
88
|
+
- uses: actions/checkout@v4
|
|
89
|
+
- uses: actions/setup-node@v4
|
|
90
|
+
with:
|
|
91
|
+
node-version: ${{ inputs.node-version }}
|
|
92
|
+
cache: npm
|
|
93
|
+
- run: npm ci
|
|
94
|
+
- run: npm run build
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
# Caller workflow
|
|
99
|
+
jobs:
|
|
100
|
+
build:
|
|
101
|
+
uses: ./.github/workflows/reusable-build.yml
|
|
102
|
+
with:
|
|
103
|
+
node-version: "22"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Security Best Practices
|
|
107
|
+
|
|
108
|
+
- [ ] Pin actions to full SHA: `uses: actions/checkout@abc123`
|
|
109
|
+
- [ ] Use OIDC for cloud auth (no long-lived secrets)
|
|
110
|
+
- [ ] Set `permissions` on job/workflow level (least privilege)
|
|
111
|
+
- [ ] Enable Dependabot for workflow dependency updates
|
|
112
|
+
- [ ] Add `timeout-minutes` on all jobs
|
|
113
|
+
- [ ] Use `continue-on-error: false` (default, be explicit)
|
|
114
|
+
- [ ] Cache dependencies to reduce build time
|
|
115
|
+
- [ ] Scan with CodeQL and dependency review
|
|
116
|
+
- [ ] Generate SBOM for supply chain security
|
|
117
|
+
- [ ] Use SLSA Level 3 attestation for artifacts
|
|
118
|
+
|
|
5
119
|
## Patterns (20 total)
|
|
6
120
|
|
|
7
121
|
### GitHub Actions (6)
|
|
@@ -36,14 +150,6 @@ CI/CD pipeline patterns for GitHub Actions, GitLab CI, and GitOps. Includes SLSA
|
|
|
36
150
|
- GitOps with ArgoCD/Flux
|
|
37
151
|
- Multi-environment promotion pipeline
|
|
38
152
|
|
|
39
|
-
## Best Practices
|
|
40
|
-
|
|
41
|
-
- Pin actions to commit SHA (not tags)
|
|
42
|
-
- Use OIDC for cloud provider auth (no long-lived secrets)
|
|
43
|
-
- Cache dependencies (npm, pip, go modules)
|
|
44
|
-
- Fail fast with `continue-on-error: false`
|
|
45
|
-
- Set timeout-minutes on all jobs
|
|
46
|
-
|
|
47
153
|
## Data Files
|
|
48
154
|
|
|
49
155
|
- `data/github-actions.yaml` — GitHub Actions patterns
|
|
@@ -2,6 +2,102 @@
|
|
|
2
2
|
|
|
3
3
|
Docker containerization patterns for builds, security, and deployment. Covers Compose v5, Hardened Images, Build Cloud, Bake.
|
|
4
4
|
|
|
5
|
+
## Decision Tree
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Task → What are you building?
|
|
9
|
+
├─ Development environment
|
|
10
|
+
│ ├─ Single service → Dockerfile + docker run
|
|
11
|
+
│ └─ Multi-service → docker-compose.yml
|
|
12
|
+
│ ├─ Hot reload → Compose watch
|
|
13
|
+
│ └─ DB included → services + healthcheck
|
|
14
|
+
├─ Production image
|
|
15
|
+
│ ├─ Node.js → Multi-stage (builder → node:alpine)
|
|
16
|
+
│ ├─ Go → Multi-stage (builder → scratch/distroless)
|
|
17
|
+
│ ├─ Python → Multi-stage (builder → python:slim)
|
|
18
|
+
│ └─ Static site → Multi-stage (build → nginx:alpine)
|
|
19
|
+
└─ CI/CD
|
|
20
|
+
├─ Multi-platform → Buildx (linux/amd64 + arm64)
|
|
21
|
+
└─ Complex builds → Docker Bake (HCL)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Quick Start — Multi-Stage Build (Node.js)
|
|
25
|
+
|
|
26
|
+
```dockerfile
|
|
27
|
+
# Stage 1: Build
|
|
28
|
+
FROM node:22-alpine AS builder
|
|
29
|
+
WORKDIR /app
|
|
30
|
+
COPY package*.json ./
|
|
31
|
+
RUN npm ci --only=production
|
|
32
|
+
COPY . .
|
|
33
|
+
RUN npm run build
|
|
34
|
+
|
|
35
|
+
# Stage 2: Production
|
|
36
|
+
FROM node:22-alpine
|
|
37
|
+
RUN addgroup -g 1001 -S appuser && adduser -u 1001 -S appuser -G appuser
|
|
38
|
+
WORKDIR /app
|
|
39
|
+
COPY --from=builder --chown=appuser:appuser /app/dist ./dist
|
|
40
|
+
COPY --from=builder --chown=appuser:appuser /app/node_modules ./node_modules
|
|
41
|
+
USER appuser
|
|
42
|
+
EXPOSE 3000
|
|
43
|
+
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:3000/health || exit 1
|
|
44
|
+
CMD ["node", "dist/index.js"]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Compose v5 — Dev Environment
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
# docker-compose.yml
|
|
51
|
+
services:
|
|
52
|
+
app:
|
|
53
|
+
build:
|
|
54
|
+
context: .
|
|
55
|
+
target: builder # Use builder stage for dev
|
|
56
|
+
volumes:
|
|
57
|
+
- .:/app
|
|
58
|
+
- /app/node_modules # Anonymous volume (don't mount)
|
|
59
|
+
ports:
|
|
60
|
+
- "3000:3000"
|
|
61
|
+
depends_on:
|
|
62
|
+
db:
|
|
63
|
+
condition: service_healthy
|
|
64
|
+
develop:
|
|
65
|
+
watch:
|
|
66
|
+
- action: sync
|
|
67
|
+
path: ./src
|
|
68
|
+
target: /app/src
|
|
69
|
+
- action: rebuild
|
|
70
|
+
path: package.json
|
|
71
|
+
|
|
72
|
+
db:
|
|
73
|
+
image: postgres:17-alpine
|
|
74
|
+
environment:
|
|
75
|
+
POSTGRES_PASSWORD: ${DB_PASS:-dev}
|
|
76
|
+
POSTGRES_DB: myapp
|
|
77
|
+
volumes:
|
|
78
|
+
- pgdata:/var/lib/postgresql/data
|
|
79
|
+
healthcheck:
|
|
80
|
+
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
81
|
+
interval: 5s
|
|
82
|
+
retries: 5
|
|
83
|
+
|
|
84
|
+
volumes:
|
|
85
|
+
pgdata:
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Security Hardening Checklist
|
|
89
|
+
|
|
90
|
+
- [ ] Use specific image tags (never `:latest` in production)
|
|
91
|
+
- [ ] Run as non-root user (`USER 1001`)
|
|
92
|
+
- [ ] Use `COPY` instead of `ADD`
|
|
93
|
+
- [ ] Add `.dockerignore` (exclude `.git`, `node_modules`, `.env`)
|
|
94
|
+
- [ ] Use distroless/chainguard base images for production
|
|
95
|
+
- [ ] Scan with Docker Scout: `docker scout quickview`
|
|
96
|
+
- [ ] Sign images with cosign
|
|
97
|
+
- [ ] Set resource limits: `--memory=512m --cpus=1`
|
|
98
|
+
- [ ] Use `--init` flag for proper signal handling
|
|
99
|
+
- [ ] Order Dockerfile instructions for cache optimization
|
|
100
|
+
|
|
5
101
|
## Patterns (18 total)
|
|
6
102
|
|
|
7
103
|
### Build (5)
|
|
@@ -34,14 +130,6 @@ Docker containerization patterns for builds, security, and deployment. Covers Co
|
|
|
34
130
|
- Logging drivers configuration
|
|
35
131
|
- Container networking (bridge, host, overlay)
|
|
36
132
|
|
|
37
|
-
## Best Practices
|
|
38
|
-
|
|
39
|
-
- Use specific image tags (never `latest` in production)
|
|
40
|
-
- Order Dockerfile instructions for cache optimization
|
|
41
|
-
- Use `.dockerignore` to reduce build context
|
|
42
|
-
- Run as non-root user (`USER 1001`)
|
|
43
|
-
- Use COPY instead of ADD (explicit behavior)
|
|
44
|
-
|
|
45
133
|
## Data Files
|
|
46
134
|
|
|
47
135
|
- `data/dockerfile.yaml` — Dockerfile patterns
|
|
@@ -1,43 +1,119 @@
|
|
|
1
|
-
#
|
|
1
|
+
# GCP Cloud Services
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Google Cloud Platform patterns for compute, data, and AI/ML. Covers Cloud Run, GKE, Cloud Functions, Firestore, Vertex AI.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Decision Tree
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
7
|
+
```
|
|
8
|
+
Task → What are you deploying?
|
|
9
|
+
├─ Web API / Microservice
|
|
10
|
+
│ ├─ Stateless container → Cloud Run (serverless)
|
|
11
|
+
│ ├─ Event-driven → Cloud Functions (2nd gen)
|
|
12
|
+
│ └─ Complex orchestration → GKE Autopilot
|
|
13
|
+
├─ Static website
|
|
14
|
+
│ └─ Cloud Storage + Cloud CDN + Load Balancer
|
|
15
|
+
├─ Database
|
|
16
|
+
│ ├─ Relational → Cloud SQL (PostgreSQL/MySQL)
|
|
17
|
+
│ ├─ Global NoSQL → Firestore
|
|
18
|
+
│ ├─ Wide column → Bigtable
|
|
19
|
+
│ └─ Analytics → BigQuery
|
|
20
|
+
├─ AI/ML
|
|
21
|
+
│ ├─ Gemini models → Vertex AI
|
|
22
|
+
│ ├─ Custom training → Vertex AI Training
|
|
23
|
+
│ └─ Vector search → Vertex AI Vector Search
|
|
24
|
+
└─ DevOps
|
|
25
|
+
├─ CI/CD → Cloud Build or GitHub Actions
|
|
26
|
+
└─ IaC → Terraform (recommended) or Pulumi
|
|
27
|
+
```
|
|
23
28
|
|
|
24
|
-
## Cloud Run
|
|
29
|
+
## Quick Start — Cloud Run
|
|
25
30
|
|
|
26
31
|
```bash
|
|
27
|
-
|
|
32
|
+
# Build + deploy in one step
|
|
33
|
+
gcloud run deploy myapp \
|
|
28
34
|
--source . \
|
|
29
35
|
--region us-central1 \
|
|
30
|
-
--allow-unauthenticated
|
|
36
|
+
--allow-unauthenticated \
|
|
37
|
+
--min-instances 0 \
|
|
38
|
+
--max-instances 10 \
|
|
39
|
+
--memory 512Mi \
|
|
40
|
+
--cpu 1
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Quick Start — Vertex AI (Gemini)
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
import vertexai
|
|
47
|
+
from vertexai.generative_models import GenerativeModel
|
|
48
|
+
|
|
49
|
+
vertexai.init(project="my-project", location="us-central1")
|
|
50
|
+
model = GenerativeModel("gemini-2.0-flash")
|
|
51
|
+
|
|
52
|
+
response = model.generate_content("Hello, Gemini!")
|
|
53
|
+
print(response.text)
|
|
31
54
|
```
|
|
32
55
|
|
|
33
|
-
##
|
|
56
|
+
## Quick Start — Firestore
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
import { initializeApp } from "firebase-admin/app";
|
|
60
|
+
import { getFirestore } from "firebase-admin/firestore";
|
|
61
|
+
|
|
62
|
+
initializeApp();
|
|
63
|
+
const db = getFirestore();
|
|
64
|
+
|
|
65
|
+
// Write
|
|
66
|
+
await db.collection("users").doc("user1").set({
|
|
67
|
+
name: "Alice",
|
|
68
|
+
email: "alice@example.com",
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Read with real-time listener
|
|
72
|
+
db.collection("users").onSnapshot((snapshot) => {
|
|
73
|
+
snapshot.docChanges().forEach((change) => {
|
|
74
|
+
console.log(change.type, change.doc.data());
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Patterns (22 total)
|
|
80
|
+
|
|
81
|
+
### Compute (5)
|
|
82
|
+
|
|
83
|
+
- Cloud Run multi-container, jobs, services
|
|
84
|
+
- Cloud Functions 2nd gen (event-driven)
|
|
85
|
+
- GKE Autopilot (managed K8s)
|
|
86
|
+
- Compute Engine (VMs) with MIGs
|
|
87
|
+
- Cloud Tasks for async processing
|
|
88
|
+
|
|
89
|
+
### Data (6)
|
|
90
|
+
|
|
91
|
+
- BigQuery (analytics, ML, streaming)
|
|
92
|
+
- Firestore (real-time, offline sync)
|
|
93
|
+
- Cloud SQL with IAM auth
|
|
94
|
+
- Memorystore (Redis/Valkey)
|
|
95
|
+
- Pub/Sub for messaging
|
|
96
|
+
- Cloud Storage lifecycle policies
|
|
97
|
+
|
|
98
|
+
### AI (5)
|
|
99
|
+
|
|
100
|
+
- Vertex AI Gemini 2.0 integration
|
|
101
|
+
- Vertex AI Vector Search
|
|
102
|
+
- Custom model training + endpoints
|
|
103
|
+
- Agent Builder
|
|
104
|
+
- Document AI
|
|
105
|
+
|
|
106
|
+
### Infrastructure (6)
|
|
34
107
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
108
|
+
- Terraform modules for GCP
|
|
109
|
+
- Cloud Build CI/CD pipelines
|
|
110
|
+
- Workload Identity Federation
|
|
111
|
+
- Secret Manager
|
|
112
|
+
- Cloud Armor (WAF)
|
|
113
|
+
- VPC Service Controls
|
|
40
114
|
|
|
41
|
-
|
|
115
|
+
## Data Files
|
|
42
116
|
|
|
43
|
-
|
|
117
|
+
- `data/compute.yaml` — Cloud Run, Functions, GKE patterns
|
|
118
|
+
- `data/data.yaml` — BigQuery, Firestore, Pub/Sub patterns
|
|
119
|
+
- `data/ai.yaml` — Vertex AI, Gemini patterns
|
|
@@ -2,6 +2,131 @@
|
|
|
2
2
|
|
|
3
3
|
Kubernetes orchestration patterns for K8s 1.32-1.33+. Covers Gateway API, Sidecar Containers, Kueue, Pod Security.
|
|
4
4
|
|
|
5
|
+
## Decision Tree
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Task → What are you deploying to K8s?
|
|
9
|
+
├─ Stateless web app
|
|
10
|
+
│ ├─ Simple → Deployment + Service + Ingress
|
|
11
|
+
│ └─ Advanced → Deployment + Gateway API (HTTPRoute)
|
|
12
|
+
├─ Stateful service (database, cache)
|
|
13
|
+
│ └─ StatefulSet + PersistentVolumeClaim
|
|
14
|
+
├─ Background job
|
|
15
|
+
│ ├─ One-time → Job with backoffLimit
|
|
16
|
+
│ ├─ Scheduled → CronJob
|
|
17
|
+
│ └─ Queued → Kueue (fair scheduling)
|
|
18
|
+
├─ Networking
|
|
19
|
+
│ ├─ Modern → Gateway API (HTTPRoute, GRPCRoute)
|
|
20
|
+
│ └─ Legacy → Ingress (nginx/traefik)
|
|
21
|
+
└─ Package management
|
|
22
|
+
├─ Templating → Helm charts
|
|
23
|
+
└─ Patching → Kustomize overlays
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Quick Start — Deployment + Service
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
# deployment.yaml
|
|
30
|
+
apiVersion: apps/v1
|
|
31
|
+
kind: Deployment
|
|
32
|
+
metadata:
|
|
33
|
+
name: myapp
|
|
34
|
+
labels:
|
|
35
|
+
app: myapp
|
|
36
|
+
spec:
|
|
37
|
+
replicas: 3
|
|
38
|
+
strategy:
|
|
39
|
+
type: RollingUpdate
|
|
40
|
+
rollingUpdate:
|
|
41
|
+
maxSurge: 1
|
|
42
|
+
maxUnavailable: 0 # Zero-downtime
|
|
43
|
+
selector:
|
|
44
|
+
matchLabels:
|
|
45
|
+
app: myapp
|
|
46
|
+
template:
|
|
47
|
+
metadata:
|
|
48
|
+
labels:
|
|
49
|
+
app: myapp
|
|
50
|
+
spec:
|
|
51
|
+
securityContext:
|
|
52
|
+
runAsNonRoot: true
|
|
53
|
+
seccompProfile:
|
|
54
|
+
type: RuntimeDefault
|
|
55
|
+
containers:
|
|
56
|
+
- name: myapp
|
|
57
|
+
image: myapp:1.0.0
|
|
58
|
+
ports:
|
|
59
|
+
- containerPort: 3000
|
|
60
|
+
resources:
|
|
61
|
+
requests:
|
|
62
|
+
cpu: 100m
|
|
63
|
+
memory: 128Mi
|
|
64
|
+
limits:
|
|
65
|
+
cpu: 500m
|
|
66
|
+
memory: 512Mi
|
|
67
|
+
readinessProbe:
|
|
68
|
+
httpGet:
|
|
69
|
+
path: /health
|
|
70
|
+
port: 3000
|
|
71
|
+
initialDelaySeconds: 5
|
|
72
|
+
periodSeconds: 10
|
|
73
|
+
livenessProbe:
|
|
74
|
+
httpGet:
|
|
75
|
+
path: /health
|
|
76
|
+
port: 3000
|
|
77
|
+
initialDelaySeconds: 15
|
|
78
|
+
periodSeconds: 20
|
|
79
|
+
---
|
|
80
|
+
apiVersion: v1
|
|
81
|
+
kind: Service
|
|
82
|
+
metadata:
|
|
83
|
+
name: myapp
|
|
84
|
+
spec:
|
|
85
|
+
selector:
|
|
86
|
+
app: myapp
|
|
87
|
+
ports:
|
|
88
|
+
- port: 80
|
|
89
|
+
targetPort: 3000
|
|
90
|
+
type: ClusterIP
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Quick Start — Gateway API
|
|
94
|
+
|
|
95
|
+
```yaml
|
|
96
|
+
# gateway.yaml
|
|
97
|
+
apiVersion: gateway.networking.k8s.io/v1
|
|
98
|
+
kind: HTTPRoute
|
|
99
|
+
metadata:
|
|
100
|
+
name: myapp-route
|
|
101
|
+
spec:
|
|
102
|
+
parentRefs:
|
|
103
|
+
- name: main-gateway
|
|
104
|
+
hostnames:
|
|
105
|
+
- "api.example.com"
|
|
106
|
+
rules:
|
|
107
|
+
- matches:
|
|
108
|
+
- path:
|
|
109
|
+
type: PathPrefix
|
|
110
|
+
value: /api
|
|
111
|
+
backendRefs:
|
|
112
|
+
- name: myapp
|
|
113
|
+
port: 80
|
|
114
|
+
weight: 100
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Production Checklist
|
|
118
|
+
|
|
119
|
+
- [ ] Set `requests` AND `limits` on all containers
|
|
120
|
+
- [ ] Add `readinessProbe` and `livenessProbe`
|
|
121
|
+
- [ ] Use `PodDisruptionBudget` (minAvailable: 1)
|
|
122
|
+
- [ ] Apply `Pod Security Standards` (restricted)
|
|
123
|
+
- [ ] Set `securityContext.runAsNonRoot: true`
|
|
124
|
+
- [ ] Use `Namespace` isolation for multi-tenancy
|
|
125
|
+
- [ ] Configure `NetworkPolicy` for pod-to-pod isolation
|
|
126
|
+
- [ ] Enable `HorizontalPodAutoscaler` for scaling
|
|
127
|
+
- [ ] Use `topologySpreadConstraints` across zones
|
|
128
|
+
- [ ] Implement `startupProbe` for slow-starting apps
|
|
129
|
+
|
|
5
130
|
## Patterns (20 total)
|
|
6
131
|
|
|
7
132
|
### Networking (5)
|
|
@@ -36,14 +161,6 @@ Kubernetes orchestration patterns for K8s 1.32-1.33+. Covers Gateway API, Sideca
|
|
|
36
161
|
- Priority classes for preemption
|
|
37
162
|
- Cluster autoscaler configuration
|
|
38
163
|
|
|
39
|
-
## Best Practices
|
|
40
|
-
|
|
41
|
-
- Use Namespace isolation for multi-tenancy
|
|
42
|
-
- Set resource requests AND limits on all containers
|
|
43
|
-
- Use PodDisruptionBudget for high availability
|
|
44
|
-
- Enable audit logging for security compliance
|
|
45
|
-
- Use Helm or Kustomize for reproducible deployments
|
|
46
|
-
|
|
47
164
|
## Data Files
|
|
48
165
|
|
|
49
166
|
- `data/gateway-api.yaml` — Gateway API patterns
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react
|
|
3
3
|
detect: ["package.json:react", "*.jsx", "*.tsx", "vite.config.ts"]
|
|
4
|
-
version: "6.2.
|
|
4
|
+
version: "6.2.7"
|
|
5
5
|
category: frontend
|
|
6
6
|
tier: 1
|
|
7
7
|
---
|
|
@@ -13,6 +13,29 @@ tier: 1
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
## Decision Tree
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Task → What React pattern?
|
|
20
|
+
├─ Component design
|
|
21
|
+
│ ├─ List/forms → Server Components (RSC)
|
|
22
|
+
│ ├─ Interactive → Client Component ('use client')
|
|
23
|
+
│ └─ Layout → Composition pattern (children)
|
|
24
|
+
├─ State management
|
|
25
|
+
│ ├─ Local → useState / useReducer
|
|
26
|
+
│ ├─ Shared (small) → Context + useReducer
|
|
27
|
+
│ ├─ Complex → Zustand (simple) / Jotai (atomic)
|
|
28
|
+
│ └─ Server → TanStack Query / SWR
|
|
29
|
+
├─ Data fetching
|
|
30
|
+
│ ├─ Server → use() + fetch in RSC
|
|
31
|
+
│ ├─ Client → TanStack Query
|
|
32
|
+
│ └─ Forms → Server Actions + useActionState
|
|
33
|
+
└─ Rendering
|
|
34
|
+
├─ SEO needed → Next.js SSR/SSG
|
|
35
|
+
├─ SPA → Vite + React Router
|
|
36
|
+
└─ Static → Astro + React islands
|
|
37
|
+
```
|
|
38
|
+
|
|
16
39
|
## 🎯 When to Use This Skill
|
|
17
40
|
|
|
18
41
|
Use for: React SPAs, component libraries, client-side apps.
|