@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.
Files changed (411) hide show
  1. package/README.md +155 -0
  2. package/assets/skills/ci-cd/.claude-plugin/plugin.json +8 -0
  3. package/assets/skills/ci-cd/SKILL.md +573 -0
  4. package/assets/skills/ci-cd/assets/templates/github-actions/docker-build.yml +164 -0
  5. package/assets/skills/ci-cd/assets/templates/github-actions/go-ci.yml +420 -0
  6. package/assets/skills/ci-cd/assets/templates/github-actions/node-ci.yml +313 -0
  7. package/assets/skills/ci-cd/assets/templates/github-actions/python-ci.yml +388 -0
  8. package/assets/skills/ci-cd/assets/templates/github-actions/security-scan.yml +416 -0
  9. package/assets/skills/ci-cd/assets/templates/gitlab-ci/docker-build.yml +298 -0
  10. package/assets/skills/ci-cd/assets/templates/gitlab-ci/go-ci.yml +548 -0
  11. package/assets/skills/ci-cd/assets/templates/gitlab-ci/node-ci.yml +334 -0
  12. package/assets/skills/ci-cd/assets/templates/gitlab-ci/python-ci.yml +472 -0
  13. package/assets/skills/ci-cd/assets/templates/gitlab-ci/security-scan.yml +479 -0
  14. package/assets/skills/ci-cd/references/best_practices.md +675 -0
  15. package/assets/skills/ci-cd/references/devsecops.md +862 -0
  16. package/assets/skills/ci-cd/references/optimization.md +651 -0
  17. package/assets/skills/ci-cd/references/security.md +611 -0
  18. package/assets/skills/ci-cd/references/troubleshooting.md +656 -0
  19. package/assets/skills/ci-cd/scripts/ci_health.py +301 -0
  20. package/assets/skills/ci-cd/scripts/pipeline_analyzer.py +440 -0
  21. package/assets/skills/context-optimization/CONTRIBUTING.md +78 -0
  22. package/assets/skills/context-optimization/LICENSE +22 -0
  23. package/assets/skills/context-optimization/README.md +228 -0
  24. package/assets/skills/context-optimization/SKILL.md +104 -0
  25. package/assets/skills/context-optimization/docs/agentskills.md +1264 -0
  26. package/assets/skills/context-optimization/docs/blogs.md +1230 -0
  27. package/assets/skills/context-optimization/docs/claude_research.md +85 -0
  28. package/assets/skills/context-optimization/docs/compression.md +298 -0
  29. package/assets/skills/context-optimization/docs/gemini_research.md +22 -0
  30. package/assets/skills/context-optimization/docs/hncapsule.md +92 -0
  31. package/assets/skills/context-optimization/docs/netflix_context.md +10 -0
  32. package/assets/skills/context-optimization/docs/vercel_tool.md +140 -0
  33. package/assets/skills/context-optimization/examples/book-sft-pipeline/README.md +78 -0
  34. package/assets/skills/context-optimization/examples/book-sft-pipeline/SKILL.md +380 -0
  35. package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/README.md +168 -0
  36. package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/dataset_sample.jsonl +5 -0
  37. 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
  38. 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
  39. 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
  40. package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/sample_outputs.md +63 -0
  41. package/assets/skills/context-optimization/examples/book-sft-pipeline/examples/gertrude-stein/training_config.json +80 -0
  42. package/assets/skills/context-optimization/examples/book-sft-pipeline/references/segmentation-strategies.md +324 -0
  43. package/assets/skills/context-optimization/examples/book-sft-pipeline/references/tinker-format.md +211 -0
  44. package/assets/skills/context-optimization/examples/book-sft-pipeline/references/tinker.txt +3176 -0
  45. package/assets/skills/context-optimization/examples/book-sft-pipeline/scripts/pipeline_example.py +187 -0
  46. package/assets/skills/context-optimization/examples/digital-brain-skill/AGENT.md +35 -0
  47. package/assets/skills/context-optimization/examples/digital-brain-skill/HOW-SKILLS-BUILT-THIS.md +407 -0
  48. package/assets/skills/context-optimization/examples/digital-brain-skill/README.md +209 -0
  49. package/assets/skills/context-optimization/examples/digital-brain-skill/SKILL.md +203 -0
  50. package/assets/skills/context-optimization/examples/digital-brain-skill/SKILLS-MAPPING.md +219 -0
  51. package/assets/skills/context-optimization/examples/digital-brain-skill/agents/AGENTS.md +82 -0
  52. package/assets/skills/context-optimization/examples/digital-brain-skill/agents/scripts/content_ideas.py +132 -0
  53. package/assets/skills/context-optimization/examples/digital-brain-skill/agents/scripts/idea_to_draft.py +181 -0
  54. package/assets/skills/context-optimization/examples/digital-brain-skill/agents/scripts/stale_contacts.py +139 -0
  55. package/assets/skills/context-optimization/examples/digital-brain-skill/agents/scripts/weekly_review.py +121 -0
  56. package/assets/skills/context-optimization/examples/digital-brain-skill/content/CONTENT.md +88 -0
  57. package/assets/skills/context-optimization/examples/digital-brain-skill/content/calendar.md +108 -0
  58. package/assets/skills/context-optimization/examples/digital-brain-skill/content/engagement.jsonl +2 -0
  59. package/assets/skills/context-optimization/examples/digital-brain-skill/content/ideas.jsonl +2 -0
  60. package/assets/skills/context-optimization/examples/digital-brain-skill/content/posts.jsonl +2 -0
  61. package/assets/skills/context-optimization/examples/digital-brain-skill/content/templates/linkedin-post.md +102 -0
  62. package/assets/skills/context-optimization/examples/digital-brain-skill/content/templates/newsletter.md +92 -0
  63. package/assets/skills/context-optimization/examples/digital-brain-skill/content/templates/thread.md +73 -0
  64. package/assets/skills/context-optimization/examples/digital-brain-skill/examples/content-workflow.md +204 -0
  65. package/assets/skills/context-optimization/examples/digital-brain-skill/examples/meeting-prep.md +243 -0
  66. package/assets/skills/context-optimization/examples/digital-brain-skill/identity/IDENTITY.md +46 -0
  67. package/assets/skills/context-optimization/examples/digital-brain-skill/identity/bio-variants.md +101 -0
  68. package/assets/skills/context-optimization/examples/digital-brain-skill/identity/brand.md +165 -0
  69. package/assets/skills/context-optimization/examples/digital-brain-skill/identity/prompts/content-generation.xml +46 -0
  70. package/assets/skills/context-optimization/examples/digital-brain-skill/identity/prompts/reply-generator.xml +40 -0
  71. package/assets/skills/context-optimization/examples/digital-brain-skill/identity/values.yaml +60 -0
  72. package/assets/skills/context-optimization/examples/digital-brain-skill/identity/voice.md +165 -0
  73. package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/KNOWLEDGE.md +85 -0
  74. package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/bookmarks.jsonl +2 -0
  75. package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/competitors.md +117 -0
  76. package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/learning.yaml +74 -0
  77. package/assets/skills/context-optimization/examples/digital-brain-skill/knowledge/research/_template.md +79 -0
  78. package/assets/skills/context-optimization/examples/digital-brain-skill/network/NETWORK.md +110 -0
  79. package/assets/skills/context-optimization/examples/digital-brain-skill/network/circles.yaml +80 -0
  80. package/assets/skills/context-optimization/examples/digital-brain-skill/network/contacts.jsonl +2 -0
  81. package/assets/skills/context-optimization/examples/digital-brain-skill/network/interactions.jsonl +2 -0
  82. package/assets/skills/context-optimization/examples/digital-brain-skill/network/intros.md +92 -0
  83. package/assets/skills/context-optimization/examples/digital-brain-skill/operations/OPERATIONS.md +75 -0
  84. package/assets/skills/context-optimization/examples/digital-brain-skill/operations/goals.yaml +83 -0
  85. package/assets/skills/context-optimization/examples/digital-brain-skill/operations/meetings.jsonl +2 -0
  86. package/assets/skills/context-optimization/examples/digital-brain-skill/operations/metrics.jsonl +2 -0
  87. package/assets/skills/context-optimization/examples/digital-brain-skill/operations/reviews/_weekly_template.md +114 -0
  88. package/assets/skills/context-optimization/examples/digital-brain-skill/operations/todos.md +76 -0
  89. package/assets/skills/context-optimization/examples/digital-brain-skill/package.json +41 -0
  90. package/assets/skills/context-optimization/examples/digital-brain-skill/references/file-formats.md +386 -0
  91. package/assets/skills/context-optimization/examples/digital-brain-skill/scripts/install.sh +79 -0
  92. package/assets/skills/context-optimization/examples/interleaved_thinking/README.md +620 -0
  93. package/assets/skills/context-optimization/examples/interleaved_thinking/SKILL.md +221 -0
  94. package/assets/skills/context-optimization/examples/interleaved_thinking/docs/agentthinking.md +63 -0
  95. package/assets/skills/context-optimization/examples/interleaved_thinking/docs/interleavedthinking.md +610 -0
  96. package/assets/skills/context-optimization/examples/interleaved_thinking/docs/m2-1.md +224 -0
  97. package/assets/skills/context-optimization/examples/interleaved_thinking/examples/01_basic_capture.py +76 -0
  98. package/assets/skills/context-optimization/examples/interleaved_thinking/examples/02_tool_usage.py +187 -0
  99. package/assets/skills/context-optimization/examples/interleaved_thinking/examples/03_full_optimization.py +1222 -0
  100. package/assets/skills/context-optimization/examples/interleaved_thinking/generated_skills/comprehensive-research-agent/SKILL.md +90 -0
  101. package/assets/skills/context-optimization/examples/interleaved_thinking/generated_skills/comprehensive-research-agent/references/optimization_summary.json +9 -0
  102. package/assets/skills/context-optimization/examples/interleaved_thinking/generated_skills/comprehensive-research-agent/references/optimized_prompt.txt +1 -0
  103. package/assets/skills/context-optimization/examples/interleaved_thinking/generated_skills/comprehensive-research-agent/references/patterns_found.json +205 -0
  104. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/final_prompt.txt +67 -0
  105. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_1/analysis.txt +48 -0
  106. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_1/optimization.txt +15 -0
  107. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_1/optimized_prompt.txt +1 -0
  108. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_1/trace.txt +178 -0
  109. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_10/analysis.txt +47 -0
  110. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_10/trace.txt +162 -0
  111. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_2/analysis.txt +48 -0
  112. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_2/optimization.txt +130 -0
  113. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_2/optimized_prompt.txt +72 -0
  114. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_2/trace.txt +156 -0
  115. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_3/analysis.txt +46 -0
  116. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_3/optimization.txt +147 -0
  117. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_3/optimized_prompt.txt +84 -0
  118. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_3/trace.txt +159 -0
  119. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_4/analysis.txt +46 -0
  120. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_4/optimization.txt +134 -0
  121. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_4/optimized_prompt.txt +67 -0
  122. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_4/trace.txt +165 -0
  123. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_5/analysis.txt +50 -0
  124. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_5/optimization.txt +135 -0
  125. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_5/optimized_prompt.txt +71 -0
  126. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_5/trace.txt +146 -0
  127. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_6/analysis.txt +15 -0
  128. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_6/optimization.txt +15 -0
  129. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_6/optimized_prompt.txt +1 -0
  130. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_6/trace.txt +147 -0
  131. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_7/analysis.txt +46 -0
  132. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_7/optimization.txt +103 -0
  133. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_7/optimized_prompt.txt +45 -0
  134. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_7/trace.txt +134 -0
  135. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_8/analysis.txt +47 -0
  136. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_8/optimization.txt +114 -0
  137. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_8/optimized_prompt.txt +60 -0
  138. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_8/trace.txt +135 -0
  139. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_9/analysis.txt +44 -0
  140. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_9/optimization.txt +106 -0
  141. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_9/optimized_prompt.txt +51 -0
  142. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/iteration_9/trace.txt +170 -0
  143. package/assets/skills/context-optimization/examples/interleaved_thinking/optimization_artifacts/summary.json +11 -0
  144. package/assets/skills/context-optimization/examples/interleaved_thinking/pyproject.toml +70 -0
  145. package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/__init__.py +53 -0
  146. package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/analyzer.py +465 -0
  147. package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/capture.py +417 -0
  148. package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/cli.py +271 -0
  149. package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/loop.py +468 -0
  150. package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/models.py +193 -0
  151. package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/optimizer.py +449 -0
  152. package/assets/skills/context-optimization/examples/interleaved_thinking/reasoning_trace_optimizer/skill_generator.py +502 -0
  153. package/assets/skills/context-optimization/examples/interleaved_thinking/tests/__init__.py +1 -0
  154. package/assets/skills/context-optimization/examples/interleaved_thinking/tests/test_models.py +144 -0
  155. package/assets/skills/context-optimization/examples/llm-as-judge-skills/.prettierrc +8 -0
  156. package/assets/skills/context-optimization/examples/llm-as-judge-skills/CONTRIBUTING.md +78 -0
  157. package/assets/skills/context-optimization/examples/llm-as-judge-skills/LICENSE +21 -0
  158. package/assets/skills/context-optimization/examples/llm-as-judge-skills/README.md +659 -0
  159. package/assets/skills/context-optimization/examples/llm-as-judge-skills/agents/evaluator-agent/evaluator-agent.md +177 -0
  160. package/assets/skills/context-optimization/examples/llm-as-judge-skills/agents/index.md +114 -0
  161. package/assets/skills/context-optimization/examples/llm-as-judge-skills/agents/orchestrator-agent/orchestrator-agent.md +205 -0
  162. package/assets/skills/context-optimization/examples/llm-as-judge-skills/agents/research-agent/research-agent.md +183 -0
  163. package/assets/skills/context-optimization/examples/llm-as-judge-skills/env.example +6 -0
  164. package/assets/skills/context-optimization/examples/llm-as-judge-skills/eslint.config.js +18 -0
  165. package/assets/skills/context-optimization/examples/llm-as-judge-skills/examples/basic-evaluation.ts +89 -0
  166. package/assets/skills/context-optimization/examples/llm-as-judge-skills/examples/full-evaluation-workflow.ts +136 -0
  167. package/assets/skills/context-optimization/examples/llm-as-judge-skills/examples/generate-rubric.ts +67 -0
  168. package/assets/skills/context-optimization/examples/llm-as-judge-skills/examples/pairwise-comparison.ts +97 -0
  169. package/assets/skills/context-optimization/examples/llm-as-judge-skills/package.json +79 -0
  170. package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/agent-system/orchestrator-prompt.md +197 -0
  171. package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/evaluation/direct-scoring-prompt.md +153 -0
  172. package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/evaluation/pairwise-comparison-prompt.md +200 -0
  173. package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/index.md +138 -0
  174. package/assets/skills/context-optimization/examples/llm-as-judge-skills/prompts/research/research-synthesis-prompt.md +171 -0
  175. package/assets/skills/context-optimization/examples/llm-as-judge-skills/skills/context-fundamentals/context-fundamentals.md +114 -0
  176. package/assets/skills/context-optimization/examples/llm-as-judge-skills/skills/index.md +79 -0
  177. package/assets/skills/context-optimization/examples/llm-as-judge-skills/skills/llm-evaluator/llm-evaluator.md +77 -0
  178. package/assets/skills/context-optimization/examples/llm-as-judge-skills/skills/tool-design/tool-design.md +198 -0
  179. package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/agents/evaluator.ts +112 -0
  180. package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/agents/index.ts +3 -0
  181. package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/config/index.ts +18 -0
  182. package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/index.ts +19 -0
  183. package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/tools/evaluation/direct-score.ts +164 -0
  184. package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/tools/evaluation/generate-rubric.ts +161 -0
  185. package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/tools/evaluation/index.ts +9 -0
  186. package/assets/skills/context-optimization/examples/llm-as-judge-skills/src/tools/evaluation/pairwise-compare.ts +255 -0
  187. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tests/evaluation.test.ts +233 -0
  188. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tests/setup.ts +27 -0
  189. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tests/skills.test.ts +213 -0
  190. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/evaluation/direct-score.md +159 -0
  191. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/evaluation/generate-rubric.md +189 -0
  192. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/evaluation/pairwise-compare.md +182 -0
  193. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/index.md +141 -0
  194. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/orchestration/delegate-to-agent.md +171 -0
  195. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/research/read-url.md +162 -0
  196. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tools/research/web-search.md +128 -0
  197. package/assets/skills/context-optimization/examples/llm-as-judge-skills/tsconfig.json +26 -0
  198. package/assets/skills/context-optimization/examples/llm-as-judge-skills/vitest.config.ts +20 -0
  199. package/assets/skills/context-optimization/examples/x-to-book-system/PRD.md +644 -0
  200. package/assets/skills/context-optimization/examples/x-to-book-system/README.md +181 -0
  201. package/assets/skills/context-optimization/examples/x-to-book-system/SKILLS-MAPPING.md +187 -0
  202. package/assets/skills/context-optimization/researcher/example_output.md +75 -0
  203. package/assets/skills/context-optimization/researcher/llm-as-a-judge.md +362 -0
  204. package/assets/skills/context-optimization/skills/advanced-evaluation/SKILL.md +454 -0
  205. package/assets/skills/context-optimization/skills/advanced-evaluation/references/bias-mitigation.md +288 -0
  206. package/assets/skills/context-optimization/skills/advanced-evaluation/references/implementation-patterns.md +315 -0
  207. package/assets/skills/context-optimization/skills/advanced-evaluation/references/metrics-guide.md +331 -0
  208. package/assets/skills/context-optimization/skills/advanced-evaluation/scripts/evaluation_example.py +337 -0
  209. package/assets/skills/context-optimization/skills/bdi-mental-states/SKILL.md +295 -0
  210. package/assets/skills/context-optimization/skills/bdi-mental-states/references/bdi-ontology-core.md +207 -0
  211. package/assets/skills/context-optimization/skills/bdi-mental-states/references/framework-integration.md +582 -0
  212. package/assets/skills/context-optimization/skills/bdi-mental-states/references/rdf-examples.md +315 -0
  213. package/assets/skills/context-optimization/skills/bdi-mental-states/references/sparql-competency.md +420 -0
  214. package/assets/skills/context-optimization/skills/context-compression/SKILL.md +265 -0
  215. package/assets/skills/context-optimization/skills/context-compression/references/evaluation-framework.md +213 -0
  216. package/assets/skills/context-optimization/skills/context-compression/scripts/compression_evaluator.py +658 -0
  217. package/assets/skills/context-optimization/skills/context-degradation/SKILL.md +231 -0
  218. package/assets/skills/context-optimization/skills/context-degradation/references/patterns.md +314 -0
  219. package/assets/skills/context-optimization/skills/context-degradation/scripts/degradation_detector.py +419 -0
  220. package/assets/skills/context-optimization/skills/context-fundamentals/SKILL.md +185 -0
  221. package/assets/skills/context-optimization/skills/context-fundamentals/references/context-components.md +283 -0
  222. package/assets/skills/context-optimization/skills/context-fundamentals/scripts/context_manager.py +370 -0
  223. package/assets/skills/context-optimization/skills/context-optimization/SKILL.md +179 -0
  224. package/assets/skills/context-optimization/skills/context-optimization/references/optimization_techniques.md +272 -0
  225. package/assets/skills/context-optimization/skills/context-optimization/scripts/compaction.py +379 -0
  226. package/assets/skills/context-optimization/skills/evaluation/SKILL.md +231 -0
  227. package/assets/skills/context-optimization/skills/evaluation/references/metrics.md +339 -0
  228. package/assets/skills/context-optimization/skills/evaluation/scripts/evaluator.py +474 -0
  229. package/assets/skills/context-optimization/skills/filesystem-context/SKILL.md +321 -0
  230. package/assets/skills/context-optimization/skills/filesystem-context/references/implementation-patterns.md +549 -0
  231. package/assets/skills/context-optimization/skills/filesystem-context/scripts/filesystem_context.py +353 -0
  232. package/assets/skills/context-optimization/skills/hosted-agents/SKILL.md +279 -0
  233. package/assets/skills/context-optimization/skills/hosted-agents/references/infrastructure-patterns.md +700 -0
  234. package/assets/skills/context-optimization/skills/hosted-agents/scripts/sandbox_manager.py +495 -0
  235. package/assets/skills/context-optimization/skills/memory-systems/SKILL.md +221 -0
  236. package/assets/skills/context-optimization/skills/memory-systems/references/implementation.md +458 -0
  237. package/assets/skills/context-optimization/skills/memory-systems/scripts/memory_store.py +396 -0
  238. package/assets/skills/context-optimization/skills/multi-agent-patterns/SKILL.md +255 -0
  239. package/assets/skills/context-optimization/skills/multi-agent-patterns/references/frameworks.md +433 -0
  240. package/assets/skills/context-optimization/skills/multi-agent-patterns/scripts/coordination.py +439 -0
  241. package/assets/skills/context-optimization/skills/project-development/SKILL.md +342 -0
  242. package/assets/skills/context-optimization/skills/project-development/references/case-studies.md +388 -0
  243. package/assets/skills/context-optimization/skills/project-development/references/pipeline-patterns.md +610 -0
  244. package/assets/skills/context-optimization/skills/project-development/scripts/pipeline_template.py +677 -0
  245. package/assets/skills/context-optimization/skills/tool-design/SKILL.md +311 -0
  246. package/assets/skills/context-optimization/skills/tool-design/references/architectural_reduction.md +210 -0
  247. package/assets/skills/context-optimization/skills/tool-design/references/best_practices.md +176 -0
  248. package/assets/skills/context-optimization/skills/tool-design/scripts/description_generator.py +237 -0
  249. package/assets/skills/context-optimization/template/SKILL.md +98 -0
  250. package/assets/skills/dremio-analytics/SKILL.md +287 -0
  251. package/assets/skills/elevenlabs-voice/SKILL.md +269 -0
  252. package/assets/skills/git-workflow/SKILL.md +266 -0
  253. package/assets/skills/gitops-workflows/.claude-plugin/plugin.json +8 -0
  254. package/assets/skills/gitops-workflows/SKILL.md +568 -0
  255. package/assets/skills/gitops-workflows/assets/applicationsets/cluster-generator.yaml +32 -0
  256. package/assets/skills/gitops-workflows/assets/argocd/install-argocd-3.x.yaml +92 -0
  257. package/assets/skills/gitops-workflows/assets/flux/flux-bootstrap-github.sh +49 -0
  258. package/assets/skills/gitops-workflows/assets/flux/oci-helmrelease.yaml +38 -0
  259. package/assets/skills/gitops-workflows/assets/progressive-delivery/argo-rollouts-canary.yaml +62 -0
  260. package/assets/skills/gitops-workflows/assets/secrets/sops-age-config.yaml +33 -0
  261. package/assets/skills/gitops-workflows/references/argocd_vs_flux.md +243 -0
  262. package/assets/skills/gitops-workflows/references/best_practices.md +160 -0
  263. package/assets/skills/gitops-workflows/references/multi_cluster.md +80 -0
  264. package/assets/skills/gitops-workflows/references/oci_artifacts.md +290 -0
  265. package/assets/skills/gitops-workflows/references/progressive_delivery.md +94 -0
  266. package/assets/skills/gitops-workflows/references/repo_patterns.md +184 -0
  267. package/assets/skills/gitops-workflows/references/secret_management.md +213 -0
  268. package/assets/skills/gitops-workflows/references/troubleshooting.md +134 -0
  269. package/assets/skills/gitops-workflows/scripts/applicationset_generator.py +156 -0
  270. package/assets/skills/gitops-workflows/scripts/check_argocd_health.py +275 -0
  271. package/assets/skills/gitops-workflows/scripts/check_flux_health.py +418 -0
  272. package/assets/skills/gitops-workflows/scripts/oci_artifact_checker.py +150 -0
  273. package/assets/skills/gitops-workflows/scripts/promotion_validator.py +88 -0
  274. package/assets/skills/gitops-workflows/scripts/secret_audit.py +178 -0
  275. package/assets/skills/gitops-workflows/scripts/sync_drift_detector.py +144 -0
  276. package/assets/skills/gitops-workflows/scripts/validate_gitops_repo.py +299 -0
  277. package/assets/skills/iac-terraform/.claude-plugin/plugin.json +8 -0
  278. package/assets/skills/iac-terraform/SKILL.md +653 -0
  279. package/assets/skills/iac-terraform/assets/templates/MODULE_TEMPLATE.md +386 -0
  280. package/assets/skills/iac-terraform/assets/workflows/github-actions-terraform.yml +224 -0
  281. package/assets/skills/iac-terraform/assets/workflows/github-actions-terragrunt.yml +236 -0
  282. package/assets/skills/iac-terraform/assets/workflows/gitlab-ci-terraform.yml +184 -0
  283. package/assets/skills/iac-terraform/references/best_practices.md +709 -0
  284. package/assets/skills/iac-terraform/references/cost_optimization.md +665 -0
  285. package/assets/skills/iac-terraform/references/troubleshooting.md +635 -0
  286. package/assets/skills/iac-terraform/scripts/init_module.py +319 -0
  287. package/assets/skills/iac-terraform/scripts/inspect_state.py +232 -0
  288. package/assets/skills/iac-terraform/scripts/validate_module.py +227 -0
  289. package/assets/skills/k8s-troubleshooter/.claude-plugin/plugin.json +8 -0
  290. package/assets/skills/k8s-troubleshooter/SKILL.md +336 -0
  291. package/assets/skills/k8s-troubleshooter/references/common_issues.md +582 -0
  292. package/assets/skills/k8s-troubleshooter/references/helm_troubleshooting.md +708 -0
  293. package/assets/skills/k8s-troubleshooter/references/incident_response.md +466 -0
  294. package/assets/skills/k8s-troubleshooter/references/performance_troubleshooting.md +687 -0
  295. package/assets/skills/k8s-troubleshooter/scripts/check_namespace.py +500 -0
  296. package/assets/skills/k8s-troubleshooter/scripts/cluster_health.py +223 -0
  297. package/assets/skills/k8s-troubleshooter/scripts/diagnose_pod.py +157 -0
  298. package/assets/skills/mattermost-notify/SKILL.md +248 -0
  299. package/assets/skills/monitoring-observability/SKILL.md +869 -0
  300. package/assets/skills/monitoring-observability/assets/templates/otel-config/collector-config.yaml +227 -0
  301. package/assets/skills/monitoring-observability/assets/templates/prometheus-alerts/kubernetes-alerts.yml +293 -0
  302. package/assets/skills/monitoring-observability/assets/templates/prometheus-alerts/webapp-alerts.yml +243 -0
  303. package/assets/skills/monitoring-observability/assets/templates/runbooks/incident-runbook-template.md +409 -0
  304. package/assets/skills/monitoring-observability/monitoring-observability.skill +0 -0
  305. package/assets/skills/monitoring-observability/references/alerting_best_practices.md +609 -0
  306. package/assets/skills/monitoring-observability/references/datadog_migration.md +649 -0
  307. package/assets/skills/monitoring-observability/references/dql_promql_translation.md +756 -0
  308. package/assets/skills/monitoring-observability/references/logging_guide.md +775 -0
  309. package/assets/skills/monitoring-observability/references/metrics_design.md +406 -0
  310. package/assets/skills/monitoring-observability/references/slo_sla_guide.md +652 -0
  311. package/assets/skills/monitoring-observability/references/tool_comparison.md +697 -0
  312. package/assets/skills/monitoring-observability/references/tracing_guide.md +663 -0
  313. package/assets/skills/monitoring-observability/scripts/alert_quality_checker.py +315 -0
  314. package/assets/skills/monitoring-observability/scripts/analyze_metrics.py +279 -0
  315. package/assets/skills/monitoring-observability/scripts/dashboard_generator.py +395 -0
  316. package/assets/skills/monitoring-observability/scripts/datadog_cost_analyzer.py +477 -0
  317. package/assets/skills/monitoring-observability/scripts/health_check_validator.py +297 -0
  318. package/assets/skills/monitoring-observability/scripts/log_analyzer.py +321 -0
  319. package/assets/skills/monitoring-observability/scripts/slo_calculator.py +365 -0
  320. package/assets/skills/neo4j-graph-rag/SKILL.md +258 -0
  321. package/assets/skills/pagerduty-ops/SKILL.md +380 -0
  322. package/assets/skills/playwright/API_REFERENCE.md +653 -0
  323. package/assets/skills/playwright/SKILL.md +453 -0
  324. package/assets/skills/playwright/lib/helpers.js +441 -0
  325. package/assets/skills/playwright/package.json +26 -0
  326. package/assets/skills/playwright/run.js +228 -0
  327. package/assets/skills/project-memory/README.md +687 -0
  328. package/assets/skills/project-memory/SKILL.md +298 -0
  329. package/assets/skills/project-memory/references/bugs_template.md +41 -0
  330. package/assets/skills/project-memory/references/decisions_template.md +92 -0
  331. package/assets/skills/project-memory/references/issues_template.md +76 -0
  332. package/assets/skills/project-memory/references/key_facts_template.md +158 -0
  333. package/assets/skills/recruit-workflow/SKILL.md +276 -0
  334. package/assets/skills/recruit-workflow/references/email-templates.md +347 -0
  335. package/assets/skills/recruit-workflow/references/workflow-stages.md +395 -0
  336. package/assets/skills/recruit-workflow/scripts/clay_client.py +188 -0
  337. package/assets/skills/recruit-workflow/scripts/lever_client.py +197 -0
  338. package/assets/skills/recruit-workflow/scripts/mailgun_client.py +245 -0
  339. package/assets/skills/recruit-workflow/scripts/minio_client.py +426 -0
  340. package/assets/skills/shakudo-microservice/SKILL.md +215 -0
  341. package/assets/skills/tmux/SKILL.md +631 -0
  342. package/assets/skills/tmux/references/direct-socket-control.md +108 -0
  343. package/assets/skills/tmux/references/session-lifecycle.md +503 -0
  344. package/assets/skills/tmux/references/session-registry.md +1484 -0
  345. package/assets/skills/tmux/tools/cleanup-sessions.sh +263 -0
  346. package/assets/skills/tmux/tools/create-session.sh +224 -0
  347. package/assets/skills/tmux/tools/find-sessions.sh +262 -0
  348. package/assets/skills/tmux/tools/kill-session.sh +308 -0
  349. package/assets/skills/tmux/tools/lib/registry.sh +437 -0
  350. package/assets/skills/tmux/tools/lib/time_utils.sh +54 -0
  351. package/assets/skills/tmux/tools/list-sessions.sh +255 -0
  352. package/assets/skills/tmux/tools/pane-health.sh +424 -0
  353. package/assets/skills/tmux/tools/safe-send.sh +503 -0
  354. package/assets/skills/tmux/tools/wait-for-text.sh +260 -0
  355. package/assets/skills/twilio-sms/SKILL.md +508 -0
  356. package/assets/skills/zellij/SKILL.md +274 -0
  357. package/assets/skills/zellij/references/actions.md +558 -0
  358. package/assets/skills/zellij/references/layouts.md +424 -0
  359. package/bin/cli.ts +46 -0
  360. package/package.json +43 -0
  361. package/src/alias.ts +108 -0
  362. package/src/backup.ts +51 -0
  363. package/src/config.ts +115 -0
  364. package/src/dependencies.ts +163 -0
  365. package/src/errors.ts +77 -0
  366. package/src/index.ts +207 -0
  367. package/src/prompts.ts +142 -0
  368. package/src/schemas.ts +21 -0
  369. package/src/skills.ts +45 -0
  370. package/src/speckit.ts +116 -0
  371. package/src/types.ts +106 -0
  372. package/src/utils.ts +110 -0
  373. package/src/vibe-git.ts +50 -0
  374. package/templates/.specify/memory/constitution.md +109 -0
  375. package/templates/.specify/scripts/bash/check-prerequisites.sh +262 -0
  376. package/templates/.specify/scripts/bash/common.sh +670 -0
  377. package/templates/.specify/scripts/bash/create-new-feature.sh +594 -0
  378. package/templates/.specify/scripts/bash/create-worktree-feature.sh +401 -0
  379. package/templates/.specify/scripts/bash/init-workspace.sh +433 -0
  380. package/templates/.specify/scripts/bash/list-spec-worktrees.sh +198 -0
  381. package/templates/.specify/scripts/bash/setup-plan.sh +105 -0
  382. package/templates/.specify/scripts/bash/test-workspace-rollup.sh +175 -0
  383. package/templates/.specify/scripts/bash/update-agent-context.sh +799 -0
  384. package/templates/.specify/templates/agent-file-template.md +28 -0
  385. package/templates/.specify/templates/checklist-template.md +40 -0
  386. package/templates/.specify/templates/commands/analyze.md +197 -0
  387. package/templates/.specify/templates/commands/checklist.md +306 -0
  388. package/templates/.specify/templates/commands/clarify.md +194 -0
  389. package/templates/.specify/templates/commands/constitution.md +97 -0
  390. package/templates/.specify/templates/commands/implement.md +149 -0
  391. package/templates/.specify/templates/commands/plan.md +123 -0
  392. package/templates/.specify/templates/commands/projects.md +48 -0
  393. package/templates/.specify/templates/commands/rollup.md +66 -0
  394. package/templates/.specify/templates/commands/specify.md +275 -0
  395. package/templates/.specify/templates/commands/specs.md +71 -0
  396. package/templates/.specify/templates/commands/tasks.md +151 -0
  397. package/templates/.specify/templates/commands/taskstoissues.md +35 -0
  398. package/templates/.specify/templates/commands/workspace.md +128 -0
  399. package/templates/.specify/templates/plan-template.md +104 -0
  400. package/templates/.specify/templates/spec-template.md +115 -0
  401. package/templates/.specify/templates/tasks-template.md +251 -0
  402. package/templates/.specify/templates/workspace.yaml +110 -0
  403. package/templates/.specify/workspace.yaml +95 -0
  404. package/templates/AGENTS.md +460 -0
  405. package/templates/oh-my-opencode.json +27 -0
  406. package/templates/opencode.json +383 -0
  407. package/templates/package.json +10 -0
  408. package/templates/project-memory/bugs.md +16 -0
  409. package/templates/project-memory/decisions.md +22 -0
  410. package/templates/project-memory/issues.md +15 -0
  411. package/templates/project-memory/key_facts.md +26 -0
@@ -0,0 +1,379 @@
1
+ """
2
+ Context Optimization Utilities
3
+
4
+ This module provides utilities for context compaction, observation masking, and budget management.
5
+
6
+ PRODUCTION NOTES:
7
+ - Token estimation uses simplified heuristics (~4 chars/token for English).
8
+ Production systems should use model-specific tokenizers:
9
+ - OpenAI: tiktoken library
10
+ - Anthropic: anthropic tokenizer
11
+ - Local models: HuggingFace tokenizers
12
+
13
+ - Summarization functions use simple heuristics for demonstration.
14
+ Production systems should use:
15
+ - LLM-based summarization for high-quality compression
16
+ - Domain-specific summarization models
17
+ - Schema-based summarization for structured outputs
18
+
19
+ - Cache metrics are illustrative. Production systems should integrate
20
+ with actual inference infrastructure metrics.
21
+ """
22
+
23
+ from typing import List, Dict
24
+ import hashlib
25
+ import time
26
+
27
+
28
+ def estimate_token_count(text: str) -> int:
29
+ """
30
+ Estimate token count for text.
31
+
32
+ Uses approximation: ~4 characters per token for English.
33
+
34
+ WARNING: This is a rough estimate. Actual tokenization varies by:
35
+ - Model (GPT-5.2, Claude 4.5, Gemini 3 have different tokenizers)
36
+ - Content type (code typically has higher token density)
37
+ - Language (non-English may have 2-3x higher token/char ratio)
38
+
39
+ Production usage:
40
+ import tiktoken
41
+ enc = tiktoken.encoding_for_model("gpt-4") # Use appropriate model
42
+ token_count = len(enc.encode(text))
43
+ """
44
+ return len(text) // 4
45
+
46
+
47
+ def estimate_message_tokens(messages: list) -> int:
48
+ """Estimate token count for message list."""
49
+ total = 0
50
+ for msg in messages:
51
+ # Count content
52
+ content = msg.get("content", "")
53
+ total += estimate_token_count(content)
54
+
55
+ # Add overhead for role/formatting
56
+ total += 10
57
+
58
+ return total
59
+
60
+
61
+ # Compaction Functions
62
+
63
+ def categorize_messages(messages: list) -> dict:
64
+ """
65
+ Categorize messages for selective compaction.
66
+
67
+ Returns dict mapping category to messages.
68
+ """
69
+ categories = {
70
+ "system_prompt": [],
71
+ "tool_definition": [],
72
+ "tool_output": [],
73
+ "conversation": [],
74
+ "retrieved_document": [],
75
+ "other": []
76
+ }
77
+
78
+ for msg in messages:
79
+ role = msg.get("role", "user")
80
+ content = msg.get("content", "")
81
+
82
+ if role == "system":
83
+ categories["system_prompt"].append({**msg, "category": "system_prompt"})
84
+ elif "tool_use" in msg.get("type", ""):
85
+ categories["tool_output"].append({**msg, "category": "tool_output"})
86
+ elif role == "user":
87
+ categories["conversation"].append({**msg, "category": "conversation"})
88
+ elif "retrieved" in msg.get("tags", []):
89
+ categories["retrieved_document"].append({**msg, "category": "retrieved_document"})
90
+ else:
91
+ categories["other"].append({**msg, "category": "other"})
92
+
93
+ return categories
94
+
95
+
96
+ def summarize_content(content: str, category: str, max_length: int = 500) -> str:
97
+ """
98
+ Summarize content for compaction.
99
+
100
+ Different summarization for different categories.
101
+ """
102
+ if category == "tool_output":
103
+ return summarize_tool_output(content, max_length)
104
+ elif category == "conversation":
105
+ return summarize_conversation(content, max_length)
106
+ elif category == "retrieved_document":
107
+ return summarize_document(content, max_length)
108
+ else:
109
+ return summarize_general(content, max_length)
110
+
111
+
112
+ def summarize_tool_output(content: str, max_length: int = 500) -> str:
113
+ """Summarize tool output."""
114
+ # Extract key metrics and findings
115
+ import re
116
+
117
+ # Look for metrics (numbers with context)
118
+ metrics = re.findall(r'(\w+):\s*([\d.,]+)', content)
119
+
120
+ # Look for key findings (lines with important keywords)
121
+ keywords = ["result", "found", "total", "success", "error", "value"]
122
+ findings = []
123
+ for line in content.split('\n'):
124
+ if any(kw in line.lower() for kw in keywords):
125
+ findings.append(line.strip())
126
+
127
+ summary_parts = []
128
+ if metrics:
129
+ summary_parts.append(f"Metrics: {', '.join([f'{k}={v}' for k, v in metrics])}")
130
+ if findings:
131
+ summary_parts.append("Key findings: " + "; ".join(findings[:3]))
132
+
133
+ result = " | ".join(summary_parts) if summary_parts else "[Tool output summarized]"
134
+ return result[:max_length]
135
+
136
+
137
+ def summarize_conversation(content: str, max_length: int = 500) -> str:
138
+ """Summarize conversational content."""
139
+ # Identify key decisions and questions
140
+ import re
141
+
142
+ decisions = re.findall(r'(?i)(?:decided|decision|chose|chosen)[:\s]+([^.]+)', content)
143
+ questions = re.findall(r'(?:\?|question)[:\s]+([^.]+)', content)
144
+
145
+ summary_parts = []
146
+ if decisions:
147
+ summary_parts.append(f"Decisions: {len(decisions)} made")
148
+ if questions:
149
+ summary_parts.append(f"Questions: {len(questions)} raised")
150
+
151
+ result = " | ".join(summary_parts) if summary_parts else "[Conversation summarized]"
152
+ return result[:max_length]
153
+
154
+
155
+ def summarize_document(content: str, max_length: int = 500) -> str:
156
+ """Summarize document content."""
157
+ # Extract first paragraph as summary
158
+ paragraphs = content.split('\n\n')
159
+ if paragraphs:
160
+ first_para = paragraphs[0].strip()
161
+ # Truncate to first few sentences
162
+ sentences = first_para.split('. ')
163
+ if len(sentences) > 2:
164
+ first_para = '. '.join(sentences[:2]) + '.'
165
+ return first_para[:max_length]
166
+ return "[Document summarized]"
167
+
168
+
169
+ def summarize_general(content: str, max_length: int = 500) -> str:
170
+ """General purpose summarization."""
171
+ return content[:max_length] + "..." if len(content) > max_length else content
172
+
173
+
174
+ # Observation Masking
175
+
176
+ class ObservationStore:
177
+ def __init__(self, max_size=1000):
178
+ self.observations = {}
179
+ self.order = []
180
+ self.max_size = max_size
181
+
182
+ def store(self, content: str, metadata: dict = None) -> str:
183
+ """Store observation and return reference ID."""
184
+ ref_id = self._generate_ref_id(content)
185
+
186
+ self.observations[ref_id] = {
187
+ "content": content,
188
+ "metadata": metadata or {},
189
+ "stored_at": time.time(),
190
+ "last_accessed": time.time()
191
+ }
192
+ self.order.append(ref_id)
193
+
194
+ # Evict oldest if over limit
195
+ if len(self.order) > self.max_size:
196
+ oldest = self.order.pop(0)
197
+ del self.observations[oldest]
198
+
199
+ return ref_id
200
+
201
+ def retrieve(self, ref_id: str) -> str:
202
+ """Retrieve observation by reference ID."""
203
+ if ref_id in self.observations:
204
+ self.observations[ref_id]["last_accessed"] = time.time()
205
+ return self.observations[ref_id]["content"]
206
+ return None
207
+
208
+ def mask(self, content: str, max_length: int = 200) -> tuple:
209
+ """
210
+ Mask observation if longer than max_length.
211
+
212
+ Returns (masked_content, stored_ref_id_or_None).
213
+ """
214
+ if len(content) <= max_length:
215
+ return content, None
216
+
217
+ ref_id = self.store(content)
218
+
219
+ # Extract key point for reference
220
+ key_point = self._extract_key_point(content)
221
+
222
+ masked = f"[Obs:{ref_id} elided. Key: {key_point}. Full content retrievable.]"
223
+ return masked, ref_id
224
+
225
+ def _generate_ref_id(self, content: str) -> str:
226
+ """Generate unique reference ID."""
227
+ hash_input = f"{content[:100]}{time.time()}"
228
+ return hashlib.md5(hash_input.encode()).hexdigest()[:8]
229
+
230
+ def _extract_key_point(self, content: str) -> str:
231
+ """Extract key point from observation."""
232
+ # First substantial line or sentence
233
+ lines = [l for l in content.split('\n') if len(l) > 20]
234
+ if lines:
235
+ return lines[0][:50] + "..."
236
+ sentences = content.split('. ')
237
+ if sentences:
238
+ return sentences[0][:50] + "..."
239
+ return content[:50] + "..."
240
+
241
+
242
+ # Context Budget Management
243
+
244
+ class ContextBudget:
245
+ def __init__(self, total_limit: int):
246
+ self.total_limit = total_limit
247
+ self.allocated = {
248
+ "system_prompt": 0,
249
+ "tool_definitions": 0,
250
+ "retrieved_docs": 0,
251
+ "message_history": 0,
252
+ "tool_outputs": 0,
253
+ "other": 0
254
+ }
255
+ self.reserved = 5000 # Reserved buffer
256
+ self.reservation_limit = total_limit - self.reserved
257
+
258
+ def allocate(self, category: str, amount: int) -> bool:
259
+ """Allocate budget to category. Returns success status."""
260
+ if category not in self.allocated:
261
+ category = "other"
262
+
263
+ current = sum(self.allocated.values())
264
+ proposed = current + amount
265
+
266
+ if proposed > self.reservation_limit:
267
+ return False
268
+
269
+ self.allocated[category] += amount
270
+ return True
271
+
272
+ def remaining(self) -> int:
273
+ """Get remaining unallocated budget."""
274
+ current = sum(self.allocated.values())
275
+ return self.reservation_limit - current
276
+
277
+ def get_usage(self) -> dict:
278
+ """Get current usage breakdown."""
279
+ total = sum(self.allocated.values())
280
+ return {
281
+ "total_used": total,
282
+ "total_limit": self.total_limit,
283
+ "remaining": self.remaining(),
284
+ "by_category": dict(self.allocated),
285
+ "utilization_ratio": total / self.total_limit
286
+ }
287
+
288
+ def should_optimize(self, current_usage: int, metrics: dict = None) -> tuple:
289
+ """
290
+ Determine if optimization should trigger.
291
+
292
+ Returns (should_optimize, reasons).
293
+ """
294
+ reasons = []
295
+
296
+ # Check utilization
297
+ utilization = current_usage / self.total_limit
298
+ if utilization > 0.8:
299
+ reasons.append(("high_utilization", utilization))
300
+
301
+ # Check degradation metrics if provided
302
+ if metrics:
303
+ if metrics.get("attention_degradation", 0) > 0.3:
304
+ reasons.append(("attention_degradation", True))
305
+
306
+ if metrics.get("quality_score", 1.0) < 0.8:
307
+ reasons.append(("quality_degradation", True))
308
+
309
+ should_optimize = len(reasons) > 0
310
+ return should_optimize, reasons
311
+
312
+
313
+ # Cache Optimization
314
+
315
+ def design_stable_prompt(template: str, dynamic_values: dict) -> str:
316
+ """
317
+ Design prompt to maximize KV-cache stability.
318
+
319
+ Replaces dynamic values with stable placeholders.
320
+ """
321
+ result = template
322
+
323
+ # Replace timestamps
324
+ import re
325
+ date_pattern = r'\d{4}-\d{2}-\d{2}'
326
+ result = re.sub(date_pattern, '[DATE_STABLE]', result)
327
+
328
+ # Replace session IDs
329
+ session_pattern = r'Session \d+'
330
+ result = re.sub(session_pattern, 'Session [STABLE]', result)
331
+
332
+ # Replace counters
333
+ counter_pattern = r'\d+/\d+'
334
+ result = re.sub(counter_pattern, '[COUNTER_STABLE]', result)
335
+
336
+ return result
337
+
338
+
339
+ def calculate_cache_metrics(requests: list, cache: dict) -> dict:
340
+ """
341
+ Calculate KV-cache hit metrics for request sequence.
342
+ """
343
+ hits = 0
344
+ misses = 0
345
+
346
+ for req in requests:
347
+ prefix = req.get("prefix_hash", "")
348
+ token_count = req.get("token_count", 0)
349
+
350
+ if prefix in cache:
351
+ hits += token_count * cache[prefix].get("hit_ratio", 0)
352
+ else:
353
+ misses += token_count
354
+
355
+ total = hits + misses
356
+
357
+ return {
358
+ "hit_rate": hits / total if total > 0 else 0,
359
+ "cache_hits": hits,
360
+ "cache_misses": misses,
361
+ "recommendations": generate_cache_recommendations(hits, misses)
362
+ }
363
+
364
+
365
+ def generate_cache_recommendations(hits: int, misses: int) -> list:
366
+ """Generate recommendations for cache optimization."""
367
+ recommendations = []
368
+
369
+ hit_rate = hits / (hits + misses) if (hits + misses) > 0 else 0
370
+
371
+ if hit_rate < 0.5:
372
+ recommendations.append("Consider stabilizing system prompts")
373
+ recommendations.append("Reduce variation in request prefixes")
374
+
375
+ if hit_rate < 0.8:
376
+ recommendations.append("Group similar requests together")
377
+ recommendations.append("Use consistent formatting across requests")
378
+
379
+ return recommendations
@@ -0,0 +1,231 @@
1
+ ---
2
+ name: evaluation
3
+ description: This skill should be used when the user asks to "evaluate agent performance", "build test framework", "measure agent quality", "create evaluation rubrics", or mentions LLM-as-judge, multi-dimensional evaluation, agent testing, or quality gates for agent pipelines.
4
+ ---
5
+
6
+ # Evaluation Methods for Agent Systems
7
+
8
+ Evaluation of agent systems requires different approaches than traditional software or even standard language model applications. Agents make dynamic decisions, are non-deterministic between runs, and often lack single correct answers. Effective evaluation must account for these characteristics while providing actionable feedback. A robust evaluation framework enables continuous improvement, catches regressions, and validates that context engineering choices achieve intended effects.
9
+
10
+ ## When to Activate
11
+
12
+ Activate this skill when:
13
+ - Testing agent performance systematically
14
+ - Validating context engineering choices
15
+ - Measuring improvements over time
16
+ - Catching regressions before deployment
17
+ - Building quality gates for agent pipelines
18
+ - Comparing different agent configurations
19
+ - Evaluating production systems continuously
20
+
21
+ ## Core Concepts
22
+
23
+ Agent evaluation requires outcome-focused approaches that account for non-determinism and multiple valid paths. Multi-dimensional rubrics capture various quality aspects: factual accuracy, completeness, citation accuracy, source quality, and tool efficiency. LLM-as-judge provides scalable evaluation while human evaluation catches edge cases.
24
+
25
+ The key insight is that agents may find alternative paths to goals—the evaluation should judge whether they achieve right outcomes while following reasonable processes.
26
+
27
+ **Performance Drivers: The 95% Finding**
28
+ Research on the BrowseComp evaluation (which tests browsing agents' ability to locate hard-to-find information) found that three factors explain 95% of performance variance:
29
+
30
+ | Factor | Variance Explained | Implication |
31
+ |--------|-------------------|-------------|
32
+ | Token usage | 80% | More tokens = better performance |
33
+ | Number of tool calls | ~10% | More exploration helps |
34
+ | Model choice | ~5% | Better models multiply efficiency |
35
+
36
+ This finding has significant implications for evaluation design:
37
+ - **Token budgets matter**: Evaluate agents with realistic token budgets, not unlimited resources
38
+ - **Model upgrades beat token increases**: Upgrading to Claude Sonnet 4.5 or GPT-5.2 provides larger gains than doubling token budgets on previous versions
39
+ - **Multi-agent validation**: The finding validates architectures that distribute work across agents with separate context windows
40
+
41
+ ## Detailed Topics
42
+
43
+ ### Evaluation Challenges
44
+
45
+ **Non-Determinism and Multiple Valid Paths**
46
+ Agents may take completely different valid paths to reach goals. One agent might search three sources while another searches ten. They might use different tools to find the same answer. Traditional evaluations that check for specific steps fail in this context.
47
+
48
+ The solution is outcome-focused evaluation that judges whether agents achieve right outcomes while following reasonable processes.
49
+
50
+ **Context-Dependent Failures**
51
+ Agent failures often depend on context in subtle ways. An agent might succeed on simple queries but fail on complex ones. It might work well with one tool set but fail with another. Failures may emerge only after extended interaction when context accumulates.
52
+
53
+ Evaluation must cover a range of complexity levels and test extended interactions, not just isolated queries.
54
+
55
+ **Composite Quality Dimensions**
56
+ Agent quality is not a single dimension. It includes factual accuracy, completeness, coherence, tool efficiency, and process quality. An agent might score high on accuracy but low in efficiency, or vice versa.
57
+
58
+ Evaluation rubrics must capture multiple dimensions with appropriate weighting for the use case.
59
+
60
+ ### Evaluation Rubric Design
61
+
62
+ **Multi-Dimensional Rubric**
63
+ Effective rubrics cover key dimensions with descriptive levels:
64
+
65
+ Factual accuracy: Claims match ground truth (excellent to failed)
66
+
67
+ Completeness: Output covers requested aspects (excellent to failed)
68
+
69
+ Citation accuracy: Citations match claimed sources (excellent to failed)
70
+
71
+ Source quality: Uses appropriate primary sources (excellent to failed)
72
+
73
+ Tool efficiency: Uses right tools reasonable number of times (excellent to failed)
74
+
75
+ **Rubric Scoring**
76
+ Convert dimension assessments to numeric scores (0.0 to 1.0) with appropriate weighting. Calculate weighted overall scores. Determine passing threshold based on use case requirements.
77
+
78
+ ### Evaluation Methodologies
79
+
80
+ **LLM-as-Judge**
81
+ LLM-based evaluation scales to large test sets and provides consistent judgments. The key is designing effective evaluation prompts that capture the dimensions of interest.
82
+
83
+ Provide clear task description, agent output, ground truth (if available), evaluation scale with level descriptions, and request structured judgment.
84
+
85
+ **Human Evaluation**
86
+ Human evaluation catches what automation misses. Humans notice hallucinated answers on unusual queries, system failures, and subtle biases that automated evaluation misses.
87
+
88
+ Effective human evaluation covers edge cases, samples systematically, tracks patterns, and provides contextual understanding.
89
+
90
+ **End-State Evaluation**
91
+ For agents that mutate persistent state, end-state evaluation focuses on whether the final state matches expectations rather than how the agent got there.
92
+
93
+ ### Test Set Design
94
+
95
+ **Sample Selection**
96
+ Start with small samples during development. Early in agent development, changes have dramatic impacts because there is abundant low-hanging fruit. Small test sets reveal large effects.
97
+
98
+ Sample from real usage patterns. Add known edge cases. Ensure coverage across complexity levels.
99
+
100
+ **Complexity Stratification**
101
+ Test sets should span complexity levels: simple (single tool call), medium (multiple tool calls), complex (many tool calls, significant ambiguity), and very complex (extended interaction, deep reasoning).
102
+
103
+ ### Context Engineering Evaluation
104
+
105
+ **Testing Context Strategies**
106
+ Context engineering choices should be validated through systematic evaluation. Run agents with different context strategies on the same test set. Compare quality scores, token usage, and efficiency metrics.
107
+
108
+ **Degradation Testing**
109
+ Test how context degradation affects performance by running agents at different context sizes. Identify performance cliffs where context becomes problematic. Establish safe operating limits.
110
+
111
+ ### Continuous Evaluation
112
+
113
+ **Evaluation Pipeline**
114
+ Build evaluation pipelines that run automatically on agent changes. Track results over time. Compare versions to identify improvements or regressions.
115
+
116
+ **Monitoring Production**
117
+ Track evaluation metrics in production by sampling interactions and evaluating randomly. Set alerts for quality drops. Maintain dashboards for trend analysis.
118
+
119
+ ## Practical Guidance
120
+
121
+ ### Building Evaluation Frameworks
122
+
123
+ 1. Define quality dimensions relevant to your use case
124
+ 2. Create rubrics with clear, actionable level descriptions
125
+ 3. Build test sets from real usage patterns and edge cases
126
+ 4. Implement automated evaluation pipelines
127
+ 5. Establish baseline metrics before making changes
128
+ 6. Run evaluations on all significant changes
129
+ 7. Track metrics over time for trend analysis
130
+ 8. Supplement automated evaluation with human review
131
+
132
+ ### Avoiding Evaluation Pitfalls
133
+
134
+ Overfitting to specific paths: Evaluate outcomes, not specific steps.
135
+ Ignoring edge cases: Include diverse test scenarios.
136
+ Single-metric obsession: Use multi-dimensional rubrics.
137
+ Neglecting context effects: Test with realistic context sizes.
138
+ Skipping human evaluation: Automated evaluation misses subtle issues.
139
+
140
+ ## Examples
141
+
142
+ **Example 1: Simple Evaluation**
143
+ ```python
144
+ def evaluate_agent_response(response, expected):
145
+ rubric = load_rubric()
146
+ scores = {}
147
+ for dimension, config in rubric.items():
148
+ scores[dimension] = assess_dimension(response, expected, dimension)
149
+ overall = weighted_average(scores, config["weights"])
150
+ return {"passed": overall >= 0.7, "scores": scores}
151
+ ```
152
+
153
+ **Example 2: Test Set Structure**
154
+
155
+ Test sets should span multiple complexity levels to ensure comprehensive evaluation:
156
+
157
+ ```python
158
+ test_set = [
159
+ {
160
+ "name": "simple_lookup",
161
+ "input": "What is the capital of France?",
162
+ "expected": {"type": "fact", "answer": "Paris"},
163
+ "complexity": "simple",
164
+ "description": "Single tool call, factual lookup"
165
+ },
166
+ {
167
+ "name": "medium_query",
168
+ "input": "Compare the revenue of Apple and Microsoft last quarter",
169
+ "complexity": "medium",
170
+ "description": "Multiple tool calls, comparison logic"
171
+ },
172
+ {
173
+ "name": "multi_step_reasoning",
174
+ "input": "Analyze sales data from Q1-Q4 and create a summary report with trends",
175
+ "complexity": "complex",
176
+ "description": "Many tool calls, aggregation, analysis"
177
+ },
178
+ {
179
+ "name": "research_synthesis",
180
+ "input": "Research emerging AI technologies, evaluate their potential impact, and recommend adoption strategy",
181
+ "complexity": "very_complex",
182
+ "description": "Extended interaction, deep reasoning, synthesis"
183
+ }
184
+ ]
185
+ ```
186
+
187
+ ## Guidelines
188
+
189
+ 1. Use multi-dimensional rubrics, not single metrics
190
+ 2. Evaluate outcomes, not specific execution paths
191
+ 3. Cover complexity levels from simple to complex
192
+ 4. Test with realistic context sizes and histories
193
+ 5. Run evaluations continuously, not just before release
194
+ 6. Supplement LLM evaluation with human review
195
+ 7. Track metrics over time for trend detection
196
+ 8. Set clear pass/fail thresholds based on use case
197
+
198
+ ## Integration
199
+
200
+ This skill connects to all other skills as a cross-cutting concern:
201
+
202
+ - context-fundamentals - Evaluating context usage
203
+ - context-degradation - Detecting degradation
204
+ - context-optimization - Measuring optimization effectiveness
205
+ - multi-agent-patterns - Evaluating coordination
206
+ - tool-design - Evaluating tool effectiveness
207
+ - memory-systems - Evaluating memory quality
208
+
209
+ ## References
210
+
211
+ Internal reference:
212
+ - [Metrics Reference](./references/metrics.md) - Detailed evaluation metrics and implementation
213
+
214
+ ## References
215
+
216
+ Internal skills:
217
+ - All other skills connect to evaluation for quality measurement
218
+
219
+ External resources:
220
+ - LLM evaluation benchmarks
221
+ - Agent evaluation research papers
222
+ - Production monitoring practices
223
+
224
+ ---
225
+
226
+ ## Skill Metadata
227
+
228
+ **Created**: 2025-12-20
229
+ **Last Updated**: 2025-12-20
230
+ **Author**: Agent Skills for Context Engineering Contributors
231
+ **Version**: 1.0.0