@shakudo/kaji-setup-external 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +155 -0
- package/assets/skills/ci-cd/.claude-plugin/plugin.json +8 -0
- package/assets/skills/ci-cd/SKILL.md +573 -0
- package/assets/skills/ci-cd/assets/templates/github-actions/docker-build.yml +164 -0
- package/assets/skills/ci-cd/assets/templates/github-actions/go-ci.yml +420 -0
- package/assets/skills/ci-cd/assets/templates/github-actions/node-ci.yml +313 -0
- package/assets/skills/ci-cd/assets/templates/github-actions/python-ci.yml +388 -0
- package/assets/skills/ci-cd/assets/templates/github-actions/security-scan.yml +416 -0
- package/assets/skills/ci-cd/assets/templates/gitlab-ci/docker-build.yml +298 -0
- package/assets/skills/ci-cd/assets/templates/gitlab-ci/go-ci.yml +548 -0
- package/assets/skills/ci-cd/assets/templates/gitlab-ci/node-ci.yml +334 -0
- package/assets/skills/ci-cd/assets/templates/gitlab-ci/python-ci.yml +472 -0
- package/assets/skills/ci-cd/assets/templates/gitlab-ci/security-scan.yml +479 -0
- package/assets/skills/ci-cd/references/best_practices.md +675 -0
- package/assets/skills/ci-cd/references/devsecops.md +862 -0
- package/assets/skills/ci-cd/references/optimization.md +651 -0
- package/assets/skills/ci-cd/references/security.md +611 -0
- package/assets/skills/ci-cd/references/troubleshooting.md +656 -0
- package/assets/skills/ci-cd/scripts/ci_health.py +301 -0
- package/assets/skills/ci-cd/scripts/pipeline_analyzer.py +440 -0
- package/assets/skills/context-optimization/CONTRIBUTING.md +78 -0
- package/assets/skills/context-optimization/LICENSE +22 -0
- package/assets/skills/context-optimization/README.md +228 -0
- package/assets/skills/context-optimization/SKILL.md +104 -0
- package/assets/skills/context-optimization/docs/agentskills.md +1264 -0
- package/assets/skills/context-optimization/docs/blogs.md +1230 -0
- package/assets/skills/context-optimization/docs/claude_research.md +85 -0
- package/assets/skills/context-optimization/docs/compression.md +298 -0
- package/assets/skills/context-optimization/docs/gemini_research.md +22 -0
- package/assets/skills/context-optimization/docs/hncapsule.md +92 -0
- package/assets/skills/context-optimization/docs/netflix_context.md +10 -0
- package/assets/skills/context-optimization/docs/vercel_tool.md +140 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/README.md +78 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/SKILL.md +380 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/README.md +168 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/dataset_sample.jsonl +5 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/pangram/Screenshot 2025-12-27 at 3.05.04/342/200/257AM.png +0 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/pangram/Screenshot 2025-12-27 at 3.05.36/342/200/257AM.png +0 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/pangram/Screenshot 2025-12-27 at 3.07.18/342/200/257AM.png +0 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/sample_outputs.md +63 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/training_config.json +80 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/references/segmentation-strategies.md +324 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/references/tinker-format.md +211 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/references/tinker.txt +3176 -0
- package/assets/skills/context-optimization/examples/book-sft-pipeline/scripts/pipeline_example.py +187 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/AGENT.md +35 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/HOW-SKILLS-BUILT-THIS.md +407 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/README.md +209 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/SKILL.md +203 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/SKILLS-MAPPING.md +219 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/agents/AGENTS.md +82 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/agents/scripts/content_ideas.py +132 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/agents/scripts/idea_to_draft.py +181 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/agents/scripts/stale_contacts.py +139 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/agents/scripts/weekly_review.py +121 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/content/CONTENT.md +88 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/content/calendar.md +108 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/content/engagement.jsonl +2 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/content/ideas.jsonl +2 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/content/posts.jsonl +2 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/content/templates/linkedin-post.md +102 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/content/templates/newsletter.md +92 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/content/templates/thread.md +73 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/examples/content-workflow.md +204 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/examples/meeting-prep.md +243 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/identity/IDENTITY.md +46 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/identity/bio-variants.md +101 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/identity/brand.md +165 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/identity/prompts/content-generation.xml +46 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/identity/prompts/reply-generator.xml +40 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/identity/values.yaml +60 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/identity/voice.md +165 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/KNOWLEDGE.md +85 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/bookmarks.jsonl +2 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/competitors.md +117 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/learning.yaml +74 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/research/_template.md +79 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/network/NETWORK.md +110 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/network/circles.yaml +80 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/network/contacts.jsonl +2 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/network/interactions.jsonl +2 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/network/intros.md +92 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/operations/OPERATIONS.md +75 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/operations/goals.yaml +83 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/operations/meetings.jsonl +2 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/operations/metrics.jsonl +2 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/operations/reviews/_weekly_template.md +114 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/operations/todos.md +76 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/package.json +41 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/references/file-formats.md +386 -0
- package/assets/skills/context-optimization/examples/digital-brain-skill/scripts/install.sh +79 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/README.md +620 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/SKILL.md +221 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/docs/agentthinking.md +63 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/docs/interleavedthinking.md +610 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/docs/m2-1.md +224 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/examples/01_basic_capture.py +76 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/examples/02_tool_usage.py +187 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/examples/03_full_optimization.py +1222 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/generated_skills/comprehensive-research-agent/SKILL.md +90 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/generated_skills/comprehensive-research-agent/references/optimization_summary.json +9 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/generated_skills/comprehensive-research-agent/references/optimized_prompt.txt +1 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/generated_skills/comprehensive-research-agent/references/patterns_found.json +205 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/final_prompt.txt +67 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_1/analysis.txt +48 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_1/optimization.txt +15 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_1/optimized_prompt.txt +1 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_1/trace.txt +178 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_10/analysis.txt +47 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_10/trace.txt +162 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_2/analysis.txt +48 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_2/optimization.txt +130 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_2/optimized_prompt.txt +72 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_2/trace.txt +156 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_3/analysis.txt +46 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_3/optimization.txt +147 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_3/optimized_prompt.txt +84 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_3/trace.txt +159 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_4/analysis.txt +46 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_4/optimization.txt +134 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_4/optimized_prompt.txt +67 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_4/trace.txt +165 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_5/analysis.txt +50 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_5/optimization.txt +135 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_5/optimized_prompt.txt +71 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_5/trace.txt +146 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_6/analysis.txt +15 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_6/optimization.txt +15 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_6/optimized_prompt.txt +1 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_6/trace.txt +147 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_7/analysis.txt +46 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_7/optimization.txt +103 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_7/optimized_prompt.txt +45 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_7/trace.txt +134 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_8/analysis.txt +47 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_8/optimization.txt +114 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_8/optimized_prompt.txt +60 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_8/trace.txt +135 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_9/analysis.txt +44 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_9/optimization.txt +106 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_9/optimized_prompt.txt +51 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_9/trace.txt +170 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/summary.json +11 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/pyproject.toml +70 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/__init__.py +53 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/analyzer.py +465 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/capture.py +417 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/cli.py +271 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/loop.py +468 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/models.py +193 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/optimizer.py +449 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/skill_generator.py +502 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/tests/__init__.py +1 -0
- package/assets/skills/context-optimization/examples/interleaved_thinking/tests/test_models.py +144 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/.prettierrc +8 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/CONTRIBUTING.md +78 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/LICENSE +21 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/README.md +659 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/agents/evaluator-agent/evaluator-agent.md +177 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/agents/index.md +114 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/agents/orchestrator-agent/orchestrator-agent.md +205 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/agents/research-agent/research-agent.md +183 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/env.example +6 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/eslint.config.js +18 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/examples/basic-evaluation.ts +89 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/examples/full-evaluation-workflow.ts +136 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/examples/generate-rubric.ts +67 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/examples/pairwise-comparison.ts +97 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/package.json +79 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/agent-system/orchestrator-prompt.md +197 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/evaluation/direct-scoring-prompt.md +153 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/evaluation/pairwise-comparison-prompt.md +200 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/index.md +138 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/research/research-synthesis-prompt.md +171 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/skills/context-fundamentals/context-fundamentals.md +114 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/skills/index.md +79 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/skills/llm-evaluator/llm-evaluator.md +77 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/skills/tool-design/tool-design.md +198 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/agents/evaluator.ts +112 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/agents/index.ts +3 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/config/index.ts +18 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/index.ts +19 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/tools/evaluation/direct-score.ts +164 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/tools/evaluation/generate-rubric.ts +161 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/tools/evaluation/index.ts +9 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/tools/evaluation/pairwise-compare.ts +255 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tests/evaluation.test.ts +233 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tests/setup.ts +27 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tests/skills.test.ts +213 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/evaluation/direct-score.md +159 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/evaluation/generate-rubric.md +189 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/evaluation/pairwise-compare.md +182 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/index.md +141 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/orchestration/delegate-to-agent.md +171 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/research/read-url.md +162 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/research/web-search.md +128 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/tsconfig.json +26 -0
- package/assets/skills/context-optimization/examples/llm-as-judge-skills/vitest.config.ts +20 -0
- package/assets/skills/context-optimization/examples/x-to-book-system/PRD.md +644 -0
- package/assets/skills/context-optimization/examples/x-to-book-system/README.md +181 -0
- package/assets/skills/context-optimization/examples/x-to-book-system/SKILLS-MAPPING.md +187 -0
- package/assets/skills/context-optimization/researcher/example_output.md +75 -0
- package/assets/skills/context-optimization/researcher/llm-as-a-judge.md +362 -0
- package/assets/skills/context-optimization/skills/advanced-evaluation/SKILL.md +454 -0
- package/assets/skills/context-optimization/skills/advanced-evaluation/references/bias-mitigation.md +288 -0
- package/assets/skills/context-optimization/skills/advanced-evaluation/references/implementation-patterns.md +315 -0
- package/assets/skills/context-optimization/skills/advanced-evaluation/references/metrics-guide.md +331 -0
- package/assets/skills/context-optimization/skills/advanced-evaluation/scripts/evaluation_example.py +337 -0
- package/assets/skills/context-optimization/skills/bdi-mental-states/SKILL.md +295 -0
- package/assets/skills/context-optimization/skills/bdi-mental-states/references/bdi-ontology-core.md +207 -0
- package/assets/skills/context-optimization/skills/bdi-mental-states/references/framework-integration.md +582 -0
- package/assets/skills/context-optimization/skills/bdi-mental-states/references/rdf-examples.md +315 -0
- package/assets/skills/context-optimization/skills/bdi-mental-states/references/sparql-competency.md +420 -0
- package/assets/skills/context-optimization/skills/context-compression/SKILL.md +265 -0
- package/assets/skills/context-optimization/skills/context-compression/references/evaluation-framework.md +213 -0
- package/assets/skills/context-optimization/skills/context-compression/scripts/compression_evaluator.py +658 -0
- package/assets/skills/context-optimization/skills/context-degradation/SKILL.md +231 -0
- package/assets/skills/context-optimization/skills/context-degradation/references/patterns.md +314 -0
- package/assets/skills/context-optimization/skills/context-degradation/scripts/degradation_detector.py +419 -0
- package/assets/skills/context-optimization/skills/context-fundamentals/SKILL.md +185 -0
- package/assets/skills/context-optimization/skills/context-fundamentals/references/context-components.md +283 -0
- package/assets/skills/context-optimization/skills/context-fundamentals/scripts/context_manager.py +370 -0
- package/assets/skills/context-optimization/skills/context-optimization/SKILL.md +179 -0
- package/assets/skills/context-optimization/skills/context-optimization/references/optimization_techniques.md +272 -0
- package/assets/skills/context-optimization/skills/context-optimization/scripts/compaction.py +379 -0
- package/assets/skills/context-optimization/skills/evaluation/SKILL.md +231 -0
- package/assets/skills/context-optimization/skills/evaluation/references/metrics.md +339 -0
- package/assets/skills/context-optimization/skills/evaluation/scripts/evaluator.py +474 -0
- package/assets/skills/context-optimization/skills/filesystem-context/SKILL.md +321 -0
- package/assets/skills/context-optimization/skills/filesystem-context/references/implementation-patterns.md +549 -0
- package/assets/skills/context-optimization/skills/filesystem-context/scripts/filesystem_context.py +353 -0
- package/assets/skills/context-optimization/skills/hosted-agents/SKILL.md +279 -0
- package/assets/skills/context-optimization/skills/hosted-agents/references/infrastructure-patterns.md +700 -0
- package/assets/skills/context-optimization/skills/hosted-agents/scripts/sandbox_manager.py +495 -0
- package/assets/skills/context-optimization/skills/memory-systems/SKILL.md +221 -0
- package/assets/skills/context-optimization/skills/memory-systems/references/implementation.md +458 -0
- package/assets/skills/context-optimization/skills/memory-systems/scripts/memory_store.py +396 -0
- package/assets/skills/context-optimization/skills/multi-agent-patterns/SKILL.md +255 -0
- package/assets/skills/context-optimization/skills/multi-agent-patterns/references/frameworks.md +433 -0
- package/assets/skills/context-optimization/skills/multi-agent-patterns/scripts/coordination.py +439 -0
- package/assets/skills/context-optimization/skills/project-development/SKILL.md +342 -0
- package/assets/skills/context-optimization/skills/project-development/references/case-studies.md +388 -0
- package/assets/skills/context-optimization/skills/project-development/references/pipeline-patterns.md +610 -0
- package/assets/skills/context-optimization/skills/project-development/scripts/pipeline_template.py +677 -0
- package/assets/skills/context-optimization/skills/tool-design/SKILL.md +311 -0
- package/assets/skills/context-optimization/skills/tool-design/references/architectural_reduction.md +210 -0
- package/assets/skills/context-optimization/skills/tool-design/references/best_practices.md +176 -0
- package/assets/skills/context-optimization/skills/tool-design/scripts/description_generator.py +237 -0
- package/assets/skills/context-optimization/template/SKILL.md +98 -0
- package/assets/skills/dremio-analytics/SKILL.md +287 -0
- package/assets/skills/elevenlabs-voice/SKILL.md +269 -0
- package/assets/skills/git-workflow/SKILL.md +266 -0
- package/assets/skills/gitops-workflows/.claude-plugin/plugin.json +8 -0
- package/assets/skills/gitops-workflows/SKILL.md +568 -0
- package/assets/skills/gitops-workflows/assets/applicationsets/cluster-generator.yaml +32 -0
- package/assets/skills/gitops-workflows/assets/argocd/install-argocd-3.x.yaml +92 -0
- package/assets/skills/gitops-workflows/assets/flux/flux-bootstrap-github.sh +49 -0
- package/assets/skills/gitops-workflows/assets/flux/oci-helmrelease.yaml +38 -0
- package/assets/skills/gitops-workflows/assets/progressive-delivery/argo-rollouts-canary.yaml +62 -0
- package/assets/skills/gitops-workflows/assets/secrets/sops-age-config.yaml +33 -0
- package/assets/skills/gitops-workflows/references/argocd_vs_flux.md +243 -0
- package/assets/skills/gitops-workflows/references/best_practices.md +160 -0
- package/assets/skills/gitops-workflows/references/multi_cluster.md +80 -0
- package/assets/skills/gitops-workflows/references/oci_artifacts.md +290 -0
- package/assets/skills/gitops-workflows/references/progressive_delivery.md +94 -0
- package/assets/skills/gitops-workflows/references/repo_patterns.md +184 -0
- package/assets/skills/gitops-workflows/references/secret_management.md +213 -0
- package/assets/skills/gitops-workflows/references/troubleshooting.md +134 -0
- package/assets/skills/gitops-workflows/scripts/applicationset_generator.py +156 -0
- package/assets/skills/gitops-workflows/scripts/check_argocd_health.py +275 -0
- package/assets/skills/gitops-workflows/scripts/check_flux_health.py +418 -0
- package/assets/skills/gitops-workflows/scripts/oci_artifact_checker.py +150 -0
- package/assets/skills/gitops-workflows/scripts/promotion_validator.py +88 -0
- package/assets/skills/gitops-workflows/scripts/secret_audit.py +178 -0
- package/assets/skills/gitops-workflows/scripts/sync_drift_detector.py +144 -0
- package/assets/skills/gitops-workflows/scripts/validate_gitops_repo.py +299 -0
- package/assets/skills/iac-terraform/.claude-plugin/plugin.json +8 -0
- package/assets/skills/iac-terraform/SKILL.md +653 -0
- package/assets/skills/iac-terraform/assets/templates/MODULE_TEMPLATE.md +386 -0
- package/assets/skills/iac-terraform/assets/workflows/github-actions-terraform.yml +224 -0
- package/assets/skills/iac-terraform/assets/workflows/github-actions-terragrunt.yml +236 -0
- package/assets/skills/iac-terraform/assets/workflows/gitlab-ci-terraform.yml +184 -0
- package/assets/skills/iac-terraform/references/best_practices.md +709 -0
- package/assets/skills/iac-terraform/references/cost_optimization.md +665 -0
- package/assets/skills/iac-terraform/references/troubleshooting.md +635 -0
- package/assets/skills/iac-terraform/scripts/init_module.py +319 -0
- package/assets/skills/iac-terraform/scripts/inspect_state.py +232 -0
- package/assets/skills/iac-terraform/scripts/validate_module.py +227 -0
- package/assets/skills/k8s-troubleshooter/.claude-plugin/plugin.json +8 -0
- package/assets/skills/k8s-troubleshooter/SKILL.md +336 -0
- package/assets/skills/k8s-troubleshooter/references/common_issues.md +582 -0
- package/assets/skills/k8s-troubleshooter/references/helm_troubleshooting.md +708 -0
- package/assets/skills/k8s-troubleshooter/references/incident_response.md +466 -0
- package/assets/skills/k8s-troubleshooter/references/performance_troubleshooting.md +687 -0
- package/assets/skills/k8s-troubleshooter/scripts/check_namespace.py +500 -0
- package/assets/skills/k8s-troubleshooter/scripts/cluster_health.py +223 -0
- package/assets/skills/k8s-troubleshooter/scripts/diagnose_pod.py +157 -0
- package/assets/skills/mattermost-notify/SKILL.md +248 -0
- package/assets/skills/monitoring-observability/SKILL.md +869 -0
- package/assets/skills/monitoring-observability/assets/templates/otel-config/collector-config.yaml +227 -0
- package/assets/skills/monitoring-observability/assets/templates/prometheus-alerts/kubernetes-alerts.yml +293 -0
- package/assets/skills/monitoring-observability/assets/templates/prometheus-alerts/webapp-alerts.yml +243 -0
- package/assets/skills/monitoring-observability/assets/templates/runbooks/incident-runbook-template.md +409 -0
- package/assets/skills/monitoring-observability/monitoring-observability.skill +0 -0
- package/assets/skills/monitoring-observability/references/alerting_best_practices.md +609 -0
- package/assets/skills/monitoring-observability/references/datadog_migration.md +649 -0
- package/assets/skills/monitoring-observability/references/dql_promql_translation.md +756 -0
- package/assets/skills/monitoring-observability/references/logging_guide.md +775 -0
- package/assets/skills/monitoring-observability/references/metrics_design.md +406 -0
- package/assets/skills/monitoring-observability/references/slo_sla_guide.md +652 -0
- package/assets/skills/monitoring-observability/references/tool_comparison.md +697 -0
- package/assets/skills/monitoring-observability/references/tracing_guide.md +663 -0
- package/assets/skills/monitoring-observability/scripts/alert_quality_checker.py +315 -0
- package/assets/skills/monitoring-observability/scripts/analyze_metrics.py +279 -0
- package/assets/skills/monitoring-observability/scripts/dashboard_generator.py +395 -0
- package/assets/skills/monitoring-observability/scripts/datadog_cost_analyzer.py +477 -0
- package/assets/skills/monitoring-observability/scripts/health_check_validator.py +297 -0
- package/assets/skills/monitoring-observability/scripts/log_analyzer.py +321 -0
- package/assets/skills/monitoring-observability/scripts/slo_calculator.py +365 -0
- package/assets/skills/neo4j-graph-rag/SKILL.md +258 -0
- package/assets/skills/pagerduty-ops/SKILL.md +380 -0
- package/assets/skills/playwright/API_REFERENCE.md +653 -0
- package/assets/skills/playwright/SKILL.md +453 -0
- package/assets/skills/playwright/lib/helpers.js +441 -0
- package/assets/skills/playwright/package.json +26 -0
- package/assets/skills/playwright/run.js +228 -0
- package/assets/skills/project-memory/README.md +687 -0
- package/assets/skills/project-memory/SKILL.md +298 -0
- package/assets/skills/project-memory/references/bugs_template.md +41 -0
- package/assets/skills/project-memory/references/decisions_template.md +92 -0
- package/assets/skills/project-memory/references/issues_template.md +76 -0
- package/assets/skills/project-memory/references/key_facts_template.md +158 -0
- package/assets/skills/recruit-workflow/SKILL.md +276 -0
- package/assets/skills/recruit-workflow/references/email-templates.md +347 -0
- package/assets/skills/recruit-workflow/references/workflow-stages.md +395 -0
- package/assets/skills/recruit-workflow/scripts/clay_client.py +188 -0
- package/assets/skills/recruit-workflow/scripts/lever_client.py +197 -0
- package/assets/skills/recruit-workflow/scripts/mailgun_client.py +245 -0
- package/assets/skills/recruit-workflow/scripts/minio_client.py +426 -0
- package/assets/skills/shakudo-microservice/SKILL.md +215 -0
- package/assets/skills/tmux/SKILL.md +631 -0
- package/assets/skills/tmux/references/direct-socket-control.md +108 -0
- package/assets/skills/tmux/references/session-lifecycle.md +503 -0
- package/assets/skills/tmux/references/session-registry.md +1484 -0
- package/assets/skills/tmux/tools/cleanup-sessions.sh +263 -0
- package/assets/skills/tmux/tools/create-session.sh +224 -0
- package/assets/skills/tmux/tools/find-sessions.sh +262 -0
- package/assets/skills/tmux/tools/kill-session.sh +308 -0
- package/assets/skills/tmux/tools/lib/registry.sh +437 -0
- package/assets/skills/tmux/tools/lib/time_utils.sh +54 -0
- package/assets/skills/tmux/tools/list-sessions.sh +255 -0
- package/assets/skills/tmux/tools/pane-health.sh +424 -0
- package/assets/skills/tmux/tools/safe-send.sh +503 -0
- package/assets/skills/tmux/tools/wait-for-text.sh +260 -0
- package/assets/skills/twilio-sms/SKILL.md +508 -0
- package/assets/skills/zellij/SKILL.md +274 -0
- package/assets/skills/zellij/references/actions.md +558 -0
- package/assets/skills/zellij/references/layouts.md +424 -0
- package/bin/cli.ts +46 -0
- package/package.json +43 -0
- package/src/alias.ts +108 -0
- package/src/backup.ts +51 -0
- package/src/config.ts +115 -0
- package/src/dependencies.ts +163 -0
- package/src/errors.ts +77 -0
- package/src/index.ts +207 -0
- package/src/prompts.ts +142 -0
- package/src/schemas.ts +21 -0
- package/src/skills.ts +45 -0
- package/src/speckit.ts +116 -0
- package/src/types.ts +106 -0
- package/src/utils.ts +110 -0
- package/src/vibe-git.ts +50 -0
- package/templates/.specify/memory/constitution.md +109 -0
- package/templates/.specify/scripts/bash/check-prerequisites.sh +262 -0
- package/templates/.specify/scripts/bash/common.sh +670 -0
- package/templates/.specify/scripts/bash/create-new-feature.sh +594 -0
- package/templates/.specify/scripts/bash/create-worktree-feature.sh +401 -0
- package/templates/.specify/scripts/bash/init-workspace.sh +433 -0
- package/templates/.specify/scripts/bash/list-spec-worktrees.sh +198 -0
- package/templates/.specify/scripts/bash/setup-plan.sh +105 -0
- package/templates/.specify/scripts/bash/test-workspace-rollup.sh +175 -0
- package/templates/.specify/scripts/bash/update-agent-context.sh +799 -0
- package/templates/.specify/templates/agent-file-template.md +28 -0
- package/templates/.specify/templates/checklist-template.md +40 -0
- package/templates/.specify/templates/commands/analyze.md +197 -0
- package/templates/.specify/templates/commands/checklist.md +306 -0
- package/templates/.specify/templates/commands/clarify.md +194 -0
- package/templates/.specify/templates/commands/constitution.md +97 -0
- package/templates/.specify/templates/commands/implement.md +149 -0
- package/templates/.specify/templates/commands/plan.md +123 -0
- package/templates/.specify/templates/commands/projects.md +48 -0
- package/templates/.specify/templates/commands/rollup.md +66 -0
- package/templates/.specify/templates/commands/specify.md +275 -0
- package/templates/.specify/templates/commands/specs.md +71 -0
- package/templates/.specify/templates/commands/tasks.md +151 -0
- package/templates/.specify/templates/commands/taskstoissues.md +35 -0
- package/templates/.specify/templates/commands/workspace.md +128 -0
- package/templates/.specify/templates/plan-template.md +104 -0
- package/templates/.specify/templates/spec-template.md +115 -0
- package/templates/.specify/templates/tasks-template.md +251 -0
- package/templates/.specify/templates/workspace.yaml +110 -0
- package/templates/.specify/workspace.yaml +95 -0
- package/templates/AGENTS.md +460 -0
- package/templates/oh-my-opencode.json +27 -0
- package/templates/opencode.json +383 -0
- package/templates/package.json +10 -0
- package/templates/project-memory/bugs.md +16 -0
- package/templates/project-memory/decisions.md +22 -0
- package/templates/project-memory/issues.md +15 -0
- package/templates/project-memory/key_facts.md +26 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Flux 2.7+ Bootstrap Script for GitHub
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
# Configuration
|
|
7
|
+
GITHUB_USER="${GITHUB_USER:-your-org}"
|
|
8
|
+
GITHUB_REPO="${GITHUB_REPO:-fleet-infra}"
|
|
9
|
+
GITHUB_TOKEN="${GITHUB_TOKEN:-}"
|
|
10
|
+
CLUSTER_NAME="${CLUSTER_NAME:-production}"
|
|
11
|
+
CLUSTER_PATH="clusters/${CLUSTER_NAME}"
|
|
12
|
+
|
|
13
|
+
# Check prerequisites
|
|
14
|
+
command -v flux >/dev/null 2>&1 || { echo "flux CLI required"; exit 1; }
|
|
15
|
+
command -v kubectl >/dev/null 2>&1 || { echo "kubectl required"; exit 1; }
|
|
16
|
+
|
|
17
|
+
# Check GitHub token
|
|
18
|
+
if [ -z "$GITHUB_TOKEN" ]; then
|
|
19
|
+
echo "Error: GITHUB_TOKEN environment variable not set"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Bootstrap Flux
|
|
24
|
+
echo "🚀 Bootstrapping Flux for cluster: $CLUSTER_NAME"
|
|
25
|
+
|
|
26
|
+
flux bootstrap github \
|
|
27
|
+
--owner="$GITHUB_USER" \
|
|
28
|
+
--repository="$GITHUB_REPO" \
|
|
29
|
+
--branch=main \
|
|
30
|
+
--path="$CLUSTER_PATH" \
|
|
31
|
+
--personal \
|
|
32
|
+
--token-auth
|
|
33
|
+
|
|
34
|
+
# Enable source-watcher (Flux 2.7+)
|
|
35
|
+
echo "✨ Enabling source-watcher component..."
|
|
36
|
+
flux install --components-extra=source-watcher
|
|
37
|
+
|
|
38
|
+
# Verify installation
|
|
39
|
+
echo "✅ Verifying Flux installation..."
|
|
40
|
+
flux check
|
|
41
|
+
|
|
42
|
+
echo "
|
|
43
|
+
✅ Flux bootstrapped successfully!
|
|
44
|
+
|
|
45
|
+
Next steps:
|
|
46
|
+
1. Add your applications to ${CLUSTER_PATH}/apps/
|
|
47
|
+
2. Commit and push to trigger Flux reconciliation
|
|
48
|
+
3. Monitor with: flux get all
|
|
49
|
+
"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Flux OCI Repository + HelmRelease (Flux 2.6+)
|
|
2
|
+
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
|
3
|
+
kind: OCIRepository
|
|
4
|
+
metadata:
|
|
5
|
+
name: podinfo-oci
|
|
6
|
+
namespace: flux-system
|
|
7
|
+
spec:
|
|
8
|
+
interval: 5m
|
|
9
|
+
url: oci://ghcr.io/stefanprodan/charts/podinfo
|
|
10
|
+
ref:
|
|
11
|
+
semver: ">=6.0.0"
|
|
12
|
+
verify:
|
|
13
|
+
provider: cosign
|
|
14
|
+
secretRef:
|
|
15
|
+
name: cosign-public-key
|
|
16
|
+
---
|
|
17
|
+
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
18
|
+
kind: HelmRelease
|
|
19
|
+
metadata:
|
|
20
|
+
name: podinfo
|
|
21
|
+
namespace: default
|
|
22
|
+
spec:
|
|
23
|
+
interval: 10m
|
|
24
|
+
chart:
|
|
25
|
+
spec:
|
|
26
|
+
chart: podinfo
|
|
27
|
+
sourceRef:
|
|
28
|
+
kind: OCIRepository
|
|
29
|
+
name: podinfo-oci
|
|
30
|
+
namespace: flux-system
|
|
31
|
+
values:
|
|
32
|
+
replicaCount: 2
|
|
33
|
+
resources:
|
|
34
|
+
limits:
|
|
35
|
+
memory: 256Mi
|
|
36
|
+
requests:
|
|
37
|
+
cpu: 100m
|
|
38
|
+
memory: 64Mi
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Argo Rollouts Canary Deployment with Analysis
|
|
2
|
+
apiVersion: argoproj.io/v1alpha1
|
|
3
|
+
kind: Rollout
|
|
4
|
+
metadata:
|
|
5
|
+
name: my-app
|
|
6
|
+
spec:
|
|
7
|
+
replicas: 5
|
|
8
|
+
strategy:
|
|
9
|
+
canary:
|
|
10
|
+
steps:
|
|
11
|
+
- setWeight: 20
|
|
12
|
+
- pause: {duration: 2m}
|
|
13
|
+
- setWeight: 40
|
|
14
|
+
- pause: {duration: 2m}
|
|
15
|
+
- setWeight: 60
|
|
16
|
+
- pause: {duration: 2m}
|
|
17
|
+
- setWeight: 80
|
|
18
|
+
- pause: {duration: 2m}
|
|
19
|
+
analysis:
|
|
20
|
+
templates:
|
|
21
|
+
- templateName: success-rate
|
|
22
|
+
startingStep: 2
|
|
23
|
+
args:
|
|
24
|
+
- name: service-name
|
|
25
|
+
value: my-app
|
|
26
|
+
selector:
|
|
27
|
+
matchLabels:
|
|
28
|
+
app: my-app
|
|
29
|
+
template:
|
|
30
|
+
metadata:
|
|
31
|
+
labels:
|
|
32
|
+
app: my-app
|
|
33
|
+
spec:
|
|
34
|
+
containers:
|
|
35
|
+
- name: my-app
|
|
36
|
+
image: myapp:v2.0.0
|
|
37
|
+
ports:
|
|
38
|
+
- containerPort: 8080
|
|
39
|
+
---
|
|
40
|
+
# Analysis Template using Prometheus
|
|
41
|
+
apiVersion: argoproj.io/v1alpha1
|
|
42
|
+
kind: AnalysisTemplate
|
|
43
|
+
metadata:
|
|
44
|
+
name: success-rate
|
|
45
|
+
spec:
|
|
46
|
+
args:
|
|
47
|
+
- name: service-name
|
|
48
|
+
metrics:
|
|
49
|
+
- name: success-rate
|
|
50
|
+
interval: 1m
|
|
51
|
+
successCondition: result[0] >= 0.95
|
|
52
|
+
failureLimit: 3
|
|
53
|
+
provider:
|
|
54
|
+
prometheus:
|
|
55
|
+
address: http://prometheus.monitoring:9090
|
|
56
|
+
query: |
|
|
57
|
+
sum(rate(
|
|
58
|
+
http_requests_total{job="{{args.service-name}}",status!~"5.."}[2m]
|
|
59
|
+
)) /
|
|
60
|
+
sum(rate(
|
|
61
|
+
http_requests_total{job="{{args.service-name}}"}[2m]
|
|
62
|
+
))
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# .sops.yaml - SOPS configuration with age encryption
|
|
2
|
+
# Place in repository root
|
|
3
|
+
creation_rules:
|
|
4
|
+
# Production secrets (encrypted with prod age key)
|
|
5
|
+
- path_regex: production/.*\.yaml$
|
|
6
|
+
encrypted_regex: ^(data|stringData)$
|
|
7
|
+
age: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p
|
|
8
|
+
|
|
9
|
+
# Staging secrets (encrypted with staging age key)
|
|
10
|
+
- path_regex: staging/.*\.yaml$
|
|
11
|
+
encrypted_regex: ^(data|stringData)$
|
|
12
|
+
age: age1staging... # Replace with your staging age public key
|
|
13
|
+
|
|
14
|
+
# Development secrets (encrypted with dev age key)
|
|
15
|
+
- path_regex: dev/.*\.yaml$
|
|
16
|
+
encrypted_regex: ^(data|stringData)$
|
|
17
|
+
age: age1dev... # Replace with your dev age public key
|
|
18
|
+
|
|
19
|
+
# Generate age keys:
|
|
20
|
+
# age-keygen -o prod-key.txt
|
|
21
|
+
# age-keygen -o staging-key.txt
|
|
22
|
+
# age-keygen -o dev-key.txt
|
|
23
|
+
|
|
24
|
+
# Encrypt secret:
|
|
25
|
+
# kubectl create secret generic my-secret --dry-run=client -o yaml \
|
|
26
|
+
# --from-literal=password=supersecret > secret.yaml
|
|
27
|
+
# sops -e secret.yaml > secret.enc.yaml
|
|
28
|
+
# git add secret.enc.yaml .sops.yaml
|
|
29
|
+
|
|
30
|
+
# Flux integration:
|
|
31
|
+
# kubectl create secret generic sops-age \
|
|
32
|
+
# --from-file=age.agekey=./prod-key.txt \
|
|
33
|
+
# -n flux-system
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# ArgoCD vs Flux: Comprehensive Comparison (2024-2025)
|
|
2
|
+
|
|
3
|
+
## Current Versions (October 2025)
|
|
4
|
+
|
|
5
|
+
- **ArgoCD**: v3.1.9 (stable), v3.2.0-rc4 (release candidate)
|
|
6
|
+
- **Flux**: v2.7.1 (latest)
|
|
7
|
+
|
|
8
|
+
## Quick Decision Matrix
|
|
9
|
+
|
|
10
|
+
| Criteria | Choose ArgoCD | Choose Flux |
|
|
11
|
+
|----------|---------------|-------------|
|
|
12
|
+
| **Primary Focus** | Developer experience, UI | Platform engineering, modularity |
|
|
13
|
+
| **Team Size** | Medium-large teams | Small teams, platform engineers |
|
|
14
|
+
| **UI Required** | Yes | No (CLI-driven) |
|
|
15
|
+
| **Complexity** | Simpler onboarding | Steeper learning curve |
|
|
16
|
+
| **Customization** | Less modular | Highly modular |
|
|
17
|
+
| **Multi-tenancy** | Built-in with Projects | Manual configuration |
|
|
18
|
+
| **Best For** | Application teams, demos | Infrastructure teams, advanced users |
|
|
19
|
+
|
|
20
|
+
## Key Differences
|
|
21
|
+
|
|
22
|
+
### Architecture
|
|
23
|
+
|
|
24
|
+
**ArgoCD**:
|
|
25
|
+
- Monolithic design with integrated components
|
|
26
|
+
- Web UI, API server, application controller in one system
|
|
27
|
+
- Centralized control plane
|
|
28
|
+
|
|
29
|
+
**Flux**:
|
|
30
|
+
- Modular microservices architecture
|
|
31
|
+
- Separate controllers: source, kustomize, helm, notification, image-automation
|
|
32
|
+
- Distributed reconciliation
|
|
33
|
+
|
|
34
|
+
### User Experience
|
|
35
|
+
|
|
36
|
+
**ArgoCD**:
|
|
37
|
+
- Rich web UI for visualization and management
|
|
38
|
+
- GUI dashboard for deployment, syncing, troubleshooting
|
|
39
|
+
- Easier onboarding for developers
|
|
40
|
+
- Better for demos and presentations
|
|
41
|
+
|
|
42
|
+
**Flux**:
|
|
43
|
+
- CLI-driven (flux CLI + kubectl)
|
|
44
|
+
- No built-in UI (can integrate with Weave GitOps UI separately)
|
|
45
|
+
- Requires comfort with command-line tools
|
|
46
|
+
- Steeper learning curve
|
|
47
|
+
|
|
48
|
+
### Application Management
|
|
49
|
+
|
|
50
|
+
**ArgoCD 3.x**:
|
|
51
|
+
- Application and ApplicationSet CRDs
|
|
52
|
+
- App-of-apps pattern for organizing applications
|
|
53
|
+
- Fine-grained RBAC (new in v3.0)
|
|
54
|
+
- Annotation-based tracking (default in v3.0, changed from labels)
|
|
55
|
+
|
|
56
|
+
**Flux 2.7**:
|
|
57
|
+
- Kustomization and HelmRelease CRDs
|
|
58
|
+
- No built-in grouping mechanism
|
|
59
|
+
- RBAC through Kubernetes RBAC
|
|
60
|
+
- Label-based tracking
|
|
61
|
+
|
|
62
|
+
### Multi-Cluster Support
|
|
63
|
+
|
|
64
|
+
**ArgoCD ApplicationSets**:
|
|
65
|
+
- Cluster generator for auto-discovery
|
|
66
|
+
- Matrix generator for cluster x app combinations
|
|
67
|
+
- Hub-and-spoke pattern (one ArgoCD manages multiple clusters)
|
|
68
|
+
- 83% faster deployments vs manual (30min → 5min)
|
|
69
|
+
|
|
70
|
+
**Flux Multi-Tenancy**:
|
|
71
|
+
- Manual cluster configuration
|
|
72
|
+
- Separate Flux installations per cluster or shared
|
|
73
|
+
- More flexible but requires more setup
|
|
74
|
+
- No built-in cluster generator
|
|
75
|
+
|
|
76
|
+
### Secrets Management
|
|
77
|
+
|
|
78
|
+
Both support:
|
|
79
|
+
- Sealed Secrets
|
|
80
|
+
- External Secrets Operator
|
|
81
|
+
- SOPS
|
|
82
|
+
|
|
83
|
+
**ArgoCD 3.0 Change**:
|
|
84
|
+
- Now explicitly endorses secrets operators
|
|
85
|
+
- Cautions against config management plugins for secrets
|
|
86
|
+
- Better integration with ESO
|
|
87
|
+
|
|
88
|
+
**Flux**:
|
|
89
|
+
- Native SOPS integration with age encryption
|
|
90
|
+
- Decryption happens in-cluster
|
|
91
|
+
- .sops.yaml configuration support
|
|
92
|
+
|
|
93
|
+
### Progressive Delivery
|
|
94
|
+
|
|
95
|
+
**ArgoCD + Argo Rollouts**:
|
|
96
|
+
- Separate project but tight integration
|
|
97
|
+
- Rich UI for visualizing rollouts
|
|
98
|
+
- Supports canary, blue-green, A/B testing
|
|
99
|
+
- Metric analysis with Prometheus, Datadog, etc.
|
|
100
|
+
|
|
101
|
+
**Flux + Flagger**:
|
|
102
|
+
- Flagger as companion project
|
|
103
|
+
- CLI-driven
|
|
104
|
+
- Supports canary, blue-green, A/B testing
|
|
105
|
+
- Metric analysis with Prometheus, Datadog, etc.
|
|
106
|
+
|
|
107
|
+
## Feature Comparison
|
|
108
|
+
|
|
109
|
+
| Feature | ArgoCD 3.x | Flux 2.7 |
|
|
110
|
+
|---------|-----------|----------|
|
|
111
|
+
| **Web UI** | ✅ Built-in | ❌ (3rd party available) |
|
|
112
|
+
| **CLI** | ✅ argocd | ✅ flux |
|
|
113
|
+
| **Git Sources** | ✅ | ✅ |
|
|
114
|
+
| **OCI Artifacts** | ❌ | ✅ (GA in v2.6) |
|
|
115
|
+
| **Helm Support** | ✅ | ✅ |
|
|
116
|
+
| **Kustomize** | ✅ (v5.7.0) | ✅ (v5.7.0) |
|
|
117
|
+
| **Multi-tenancy** | ✅ Projects | Manual |
|
|
118
|
+
| **Image Automation** | ⚠️ Via Image Updater | ✅ GA in v2.7 |
|
|
119
|
+
| **Notifications** | ✅ | ✅ |
|
|
120
|
+
| **RBAC** | ✅ Fine-grained (v3.0) | Kubernetes RBAC |
|
|
121
|
+
| **Progressive Delivery** | Argo Rollouts | Flagger |
|
|
122
|
+
| **Signature Verification** | ⚠️ Limited | ✅ cosign/notation |
|
|
123
|
+
|
|
124
|
+
## Performance & Scale
|
|
125
|
+
|
|
126
|
+
**ArgoCD**:
|
|
127
|
+
- Can manage 1000+ applications per instance
|
|
128
|
+
- Better defaults in v3.0 (resource exclusions reduce API load)
|
|
129
|
+
- ApplicationSets reduce management overhead
|
|
130
|
+
|
|
131
|
+
**Flux**:
|
|
132
|
+
- Lighter resource footprint
|
|
133
|
+
- Better for large-scale monorepos
|
|
134
|
+
- Source-watcher (v2.7) improves reconciliation efficiency
|
|
135
|
+
|
|
136
|
+
## Community & Support
|
|
137
|
+
|
|
138
|
+
**ArgoCD**:
|
|
139
|
+
- CNCF Graduated project
|
|
140
|
+
- Large community, many contributors
|
|
141
|
+
- Akuity offers commercial support
|
|
142
|
+
- Annual ArgoCon conference
|
|
143
|
+
|
|
144
|
+
**Flux**:
|
|
145
|
+
- CNCF Graduated project
|
|
146
|
+
- Weaveworks shutdown (Feb 2024) but project remains strong
|
|
147
|
+
- Grafana Labs offers Grafana Cloud integration
|
|
148
|
+
- GitOpsCon events
|
|
149
|
+
|
|
150
|
+
## Version 3.0 Changes (ArgoCD)
|
|
151
|
+
|
|
152
|
+
**Breaking Changes**:
|
|
153
|
+
- Annotation-based tracking (default, was labels)
|
|
154
|
+
- RBAC logs enforcement (no longer optional)
|
|
155
|
+
- Removed legacy metrics (argocd_app_sync_status, etc.)
|
|
156
|
+
|
|
157
|
+
**New Features**:
|
|
158
|
+
- Fine-grained RBAC (per-resource permissions)
|
|
159
|
+
- Better defaults (resource exclusions for high-churn objects)
|
|
160
|
+
- Secrets operators endorsement
|
|
161
|
+
|
|
162
|
+
## Version 2.7 Changes (Flux)
|
|
163
|
+
|
|
164
|
+
**New Features**:
|
|
165
|
+
- Image automation GA
|
|
166
|
+
- ExternalArtifact and ArtifactGenerator APIs
|
|
167
|
+
- Source-watcher component
|
|
168
|
+
- OpenTelemetry tracing support
|
|
169
|
+
- CEL expressions for readiness
|
|
170
|
+
|
|
171
|
+
## Migration Considerations
|
|
172
|
+
|
|
173
|
+
### From ArgoCD → Flux
|
|
174
|
+
|
|
175
|
+
**Pros**:
|
|
176
|
+
- Lower resource consumption
|
|
177
|
+
- More modular architecture
|
|
178
|
+
- Better OCI support
|
|
179
|
+
- Native SOPS integration
|
|
180
|
+
|
|
181
|
+
**Cons**:
|
|
182
|
+
- Lose web UI
|
|
183
|
+
- More complex setup
|
|
184
|
+
- Manual multi-tenancy
|
|
185
|
+
|
|
186
|
+
**Effort**: Medium-High (2-4 weeks for large deployment)
|
|
187
|
+
|
|
188
|
+
### From Flux → ArgoCD
|
|
189
|
+
|
|
190
|
+
**Pros**:
|
|
191
|
+
- Gain web UI
|
|
192
|
+
- Easier multi-tenancy
|
|
193
|
+
- ApplicationSets for multi-cluster
|
|
194
|
+
- Better for teams new to GitOps
|
|
195
|
+
|
|
196
|
+
**Cons**:
|
|
197
|
+
- Higher resource consumption
|
|
198
|
+
- Less modular
|
|
199
|
+
- Limited OCI support
|
|
200
|
+
|
|
201
|
+
**Effort**: Medium (1-3 weeks)
|
|
202
|
+
|
|
203
|
+
## Recommendations by Use Case
|
|
204
|
+
|
|
205
|
+
### Choose ArgoCD if:
|
|
206
|
+
- ✅ Developer teams need visibility (UI required)
|
|
207
|
+
- ✅ Managing dozens of applications across teams
|
|
208
|
+
- ✅ Multi-tenancy with Projects model
|
|
209
|
+
- ✅ Fast onboarding is priority
|
|
210
|
+
- ✅ Need built-in RBAC with fine-grained control
|
|
211
|
+
|
|
212
|
+
### Choose Flux if:
|
|
213
|
+
- ✅ Platform engineering focus
|
|
214
|
+
- ✅ Infrastructure-as-code emphasis
|
|
215
|
+
- ✅ Using OCI artifacts extensively
|
|
216
|
+
- ✅ Want modular, composable architecture
|
|
217
|
+
- ✅ Team comfortable with CLI tools
|
|
218
|
+
- ✅ SOPS+age encryption requirement
|
|
219
|
+
|
|
220
|
+
### Use Both if:
|
|
221
|
+
- Different teams have different needs
|
|
222
|
+
- ArgoCD for app teams, Flux for infrastructure
|
|
223
|
+
- Separate concerns (apps vs infrastructure)
|
|
224
|
+
|
|
225
|
+
## Cost Considerations
|
|
226
|
+
|
|
227
|
+
**ArgoCD**:
|
|
228
|
+
- Higher memory/CPU usage (~500MB-1GB per instance)
|
|
229
|
+
- Commercial support available (Akuity)
|
|
230
|
+
|
|
231
|
+
**Flux**:
|
|
232
|
+
- Lower resource footprint (~200-400MB total)
|
|
233
|
+
- Grafana Cloud integration available
|
|
234
|
+
|
|
235
|
+
## Conclusion
|
|
236
|
+
|
|
237
|
+
**2024-2025 Recommendation**:
|
|
238
|
+
- **For most organizations**: Start with ArgoCD for ease of use
|
|
239
|
+
- **For platform teams**: Flux offers more control and modularity
|
|
240
|
+
- **For enterprises**: Consider ArgoCD for UI + Flux for infrastructure
|
|
241
|
+
- Both are production-ready CNCF Graduated projects
|
|
242
|
+
|
|
243
|
+
The choice depends more on team preferences and workflows than technical capability.
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# GitOps Best Practices (2024-2025)
|
|
2
|
+
|
|
3
|
+
## CNCF GitOps Principles (OpenGitOps v1.0)
|
|
4
|
+
|
|
5
|
+
1. **Declarative**: System desired state expressed declaratively
|
|
6
|
+
2. **Versioned**: State stored in version control (Git)
|
|
7
|
+
3. **Automated**: Changes automatically applied
|
|
8
|
+
4. **Continuous Reconciliation**: Software agents ensure desired state
|
|
9
|
+
5. **Auditable**: All changes tracked in Git history
|
|
10
|
+
|
|
11
|
+
## Repository Organization
|
|
12
|
+
|
|
13
|
+
✅ **DO**:
|
|
14
|
+
- Separate infrastructure from applications
|
|
15
|
+
- Use clear directory structure (apps/, infrastructure/, clusters/)
|
|
16
|
+
- Implement environment promotion (dev → staging → prod)
|
|
17
|
+
- Use Kustomize overlays for environment differences
|
|
18
|
+
|
|
19
|
+
❌ **DON'T**:
|
|
20
|
+
- Commit secrets to Git (use SOPS/Sealed Secrets/ESO)
|
|
21
|
+
- Use `:latest` image tags (pin to specific versions)
|
|
22
|
+
- Make manual cluster changes (everything through Git)
|
|
23
|
+
- Skip testing in lower environments
|
|
24
|
+
|
|
25
|
+
## Security Best Practices
|
|
26
|
+
|
|
27
|
+
1. **Secrets**: Never plain text, use encryption or external stores
|
|
28
|
+
2. **RBAC**: Least privilege for GitOps controllers
|
|
29
|
+
3. **Image Security**: Pin to digests, scan for vulnerabilities
|
|
30
|
+
4. **Network Policies**: Restrict controller traffic
|
|
31
|
+
5. **Audit**: Enable audit logging
|
|
32
|
+
|
|
33
|
+
## ArgoCD 3.x Specific
|
|
34
|
+
|
|
35
|
+
**Fine-Grained RBAC** (new in 3.0):
|
|
36
|
+
```yaml
|
|
37
|
+
p, role:dev, applications, *, dev/*, allow
|
|
38
|
+
p, role:dev, applications/resources, *, dev/*/Deployment/*, allow
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Resource Exclusions** (default in 3.0):
|
|
42
|
+
- Reduces API load
|
|
43
|
+
- Excludes high-churn resources (Endpoints, Leases)
|
|
44
|
+
|
|
45
|
+
**Annotation Tracking** (default):
|
|
46
|
+
- More reliable than labels
|
|
47
|
+
- Auto-migrates on sync
|
|
48
|
+
|
|
49
|
+
## Flux 2.7 Specific
|
|
50
|
+
|
|
51
|
+
**OCI Artifacts** (GA in 2.6):
|
|
52
|
+
- Prefer OCI over Git for generated configs
|
|
53
|
+
- Use digest pinning for immutability
|
|
54
|
+
- Sign artifacts with cosign/notation
|
|
55
|
+
|
|
56
|
+
**Image Automation** (GA in 2.7):
|
|
57
|
+
- Automated image updates
|
|
58
|
+
- GitRepository write-back
|
|
59
|
+
|
|
60
|
+
**Source-Watcher** (new in 2.7):
|
|
61
|
+
- Improves reconciliation efficiency
|
|
62
|
+
- Enable with: `--components-extra=source-watcher`
|
|
63
|
+
|
|
64
|
+
## CI/CD Integration
|
|
65
|
+
|
|
66
|
+
**Git Workflow**:
|
|
67
|
+
```
|
|
68
|
+
1. Developer commits to feature branch
|
|
69
|
+
2. CI runs tests, builds image
|
|
70
|
+
3. CI updates Git manifest with new image tag
|
|
71
|
+
4. Developer creates PR to main
|
|
72
|
+
5. GitOps controller syncs after merge
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Don't**: Deploy directly from CI to cluster (breaks GitOps)
|
|
76
|
+
**Do**: Update Git from CI, let GitOps deploy
|
|
77
|
+
|
|
78
|
+
## Monitoring & Observability
|
|
79
|
+
|
|
80
|
+
**Track**:
|
|
81
|
+
- Sync success rate
|
|
82
|
+
- Reconciliation time
|
|
83
|
+
- Drift detection frequency
|
|
84
|
+
- Failed syncs/reconciliations
|
|
85
|
+
|
|
86
|
+
**Tools**:
|
|
87
|
+
- Prometheus metrics (both ArgoCD and Flux)
|
|
88
|
+
- Grafana dashboards
|
|
89
|
+
- Alert on sync failures
|
|
90
|
+
|
|
91
|
+
## Image Management
|
|
92
|
+
|
|
93
|
+
✅ **Good**:
|
|
94
|
+
```yaml
|
|
95
|
+
image: myapp:v1.2.3
|
|
96
|
+
image: myapp@sha256:abc123...
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
❌ **Bad**:
|
|
100
|
+
```yaml
|
|
101
|
+
image: myapp:latest
|
|
102
|
+
image: myapp:dev
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Strategy**: Semantic versioning + digest pinning
|
|
106
|
+
|
|
107
|
+
## Environment Promotion
|
|
108
|
+
|
|
109
|
+
**Recommended Flow**:
|
|
110
|
+
```
|
|
111
|
+
Dev (auto-sync) → Staging (auto-sync) → Production (manual approval)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Implementation**:
|
|
115
|
+
- Separate directories or repos per environment
|
|
116
|
+
- PR-based promotion
|
|
117
|
+
- Automated tests before promotion
|
|
118
|
+
- Manual approval for production
|
|
119
|
+
|
|
120
|
+
## Disaster Recovery
|
|
121
|
+
|
|
122
|
+
1. **Git is Source of Truth**: Cluster can be rebuilt from Git
|
|
123
|
+
2. **Backup**: Git repo + cluster state
|
|
124
|
+
3. **Test Recovery**: Practice cluster rebuild
|
|
125
|
+
4. **Document Bootstrap**: How to restore from scratch
|
|
126
|
+
|
|
127
|
+
## Performance Optimization
|
|
128
|
+
|
|
129
|
+
**ArgoCD**:
|
|
130
|
+
- Use ApplicationSets for multi-cluster
|
|
131
|
+
- Enable resource exclusions (3.x default)
|
|
132
|
+
- Server-side diff for large apps
|
|
133
|
+
|
|
134
|
+
**Flux**:
|
|
135
|
+
- Use OCI artifacts for large repos
|
|
136
|
+
- Enable source-watcher (2.7)
|
|
137
|
+
- Tune reconciliation intervals
|
|
138
|
+
|
|
139
|
+
## Common Anti-Patterns to Avoid
|
|
140
|
+
|
|
141
|
+
1. **Manual kubectl apply**: Bypasses GitOps, creates drift
|
|
142
|
+
2. **Multiple sources of truth**: Git should be only source
|
|
143
|
+
3. **Secrets in Git**: Always encrypt
|
|
144
|
+
4. **Direct cluster modifications**: All changes through Git
|
|
145
|
+
5. **No testing**: Always test in dev/staging first
|
|
146
|
+
6. **Missing RBAC**: Controllers need minimal permissions
|
|
147
|
+
|
|
148
|
+
## 2025 Trends
|
|
149
|
+
|
|
150
|
+
✅ **Adopt**:
|
|
151
|
+
- OCI artifacts (Flux)
|
|
152
|
+
- Workload identity (no static credentials)
|
|
153
|
+
- SOPS + age (over PGP)
|
|
154
|
+
- External Secrets Operator (dynamic secrets)
|
|
155
|
+
- Multi-cluster with ApplicationSets/Flux
|
|
156
|
+
|
|
157
|
+
⚠️ **Avoid**:
|
|
158
|
+
- Label-based tracking (use annotations - ArgoCD 3.x default)
|
|
159
|
+
- PGP encryption (use age)
|
|
160
|
+
- Long-lived service account tokens (use workload identity)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Multi-Cluster GitOps Management (2024-2025)
|
|
2
|
+
|
|
3
|
+
## ArgoCD ApplicationSets
|
|
4
|
+
|
|
5
|
+
**Cluster Generator** (auto-discover clusters):
|
|
6
|
+
```yaml
|
|
7
|
+
apiVersion: argoproj.io/v1alpha1
|
|
8
|
+
kind: ApplicationSet
|
|
9
|
+
metadata:
|
|
10
|
+
name: my-apps
|
|
11
|
+
spec:
|
|
12
|
+
generators:
|
|
13
|
+
- cluster:
|
|
14
|
+
selector:
|
|
15
|
+
matchLabels:
|
|
16
|
+
environment: production
|
|
17
|
+
template:
|
|
18
|
+
spec:
|
|
19
|
+
source:
|
|
20
|
+
repoURL: https://github.com/org/repo
|
|
21
|
+
path: apps/{{name}}
|
|
22
|
+
destination:
|
|
23
|
+
server: '{{server}}'
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Matrix Generator** (Cluster x Apps):
|
|
27
|
+
```yaml
|
|
28
|
+
generators:
|
|
29
|
+
- matrix:
|
|
30
|
+
generators:
|
|
31
|
+
- cluster: {}
|
|
32
|
+
- git:
|
|
33
|
+
directories:
|
|
34
|
+
- path: apps/*
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Performance**: 83% faster than manual (30min → 5min)
|
|
38
|
+
|
|
39
|
+
## Flux Multi-Cluster
|
|
40
|
+
|
|
41
|
+
**Option 1: Flux Per Cluster**
|
|
42
|
+
```
|
|
43
|
+
cluster-1/ → Flux instance 1
|
|
44
|
+
cluster-2/ → Flux instance 2
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Option 2: Hub-and-Spoke**
|
|
48
|
+
```
|
|
49
|
+
management-cluster/
|
|
50
|
+
└── flux manages → cluster-1, cluster-2
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Setup**:
|
|
54
|
+
```bash
|
|
55
|
+
flux bootstrap github --owner=org --repository=fleet \
|
|
56
|
+
--path=clusters/production --context=prod-cluster
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Hub-and-Spoke Pattern
|
|
60
|
+
|
|
61
|
+
**Benefits**: Centralized management, single source of truth
|
|
62
|
+
**Cons**: Single point of failure
|
|
63
|
+
**Best for**: < 50 clusters
|
|
64
|
+
|
|
65
|
+
## Workload Identity (2025 Best Practice)
|
|
66
|
+
|
|
67
|
+
**Instead of service account tokens, use**:
|
|
68
|
+
- AWS IRSA
|
|
69
|
+
- GCP Workload Identity
|
|
70
|
+
- Azure AD Workload Identity
|
|
71
|
+
|
|
72
|
+
No more long-lived credentials!
|
|
73
|
+
|
|
74
|
+
## Best Practices
|
|
75
|
+
|
|
76
|
+
1. **Cluster labeling** for organization
|
|
77
|
+
2. **Progressive rollout** (dev → staging → prod clusters)
|
|
78
|
+
3. **Separate repos** for cluster config vs apps
|
|
79
|
+
4. **Monitor sync status** across all clusters
|
|
80
|
+
5. **Use workload identity** (no static credentials)
|