@r1z4x/tezgah 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 (582) hide show
  1. package/CHANGELOG.md +738 -0
  2. package/LICENSE +21 -0
  3. package/MANIFEST +753 -0
  4. package/README.de.md +169 -0
  5. package/README.es.md +168 -0
  6. package/README.fr.md +166 -0
  7. package/README.md +161 -0
  8. package/README.tr.md +163 -0
  9. package/agents/tezgah-reviewer.md +70 -0
  10. package/bin/codegen +337 -0
  11. package/bin/consult +797 -0
  12. package/bin/tezgah-adhd +50 -0
  13. package/bin/tezgah-agents +45 -0
  14. package/bin/tezgah-capture +66 -0
  15. package/bin/tezgah-context +96 -0
  16. package/bin/tezgah-decisions +213 -0
  17. package/bin/tezgah-design +953 -0
  18. package/bin/tezgah-docs +1199 -0
  19. package/bin/tezgah-doctor +497 -0
  20. package/bin/tezgah-dsh +37 -0
  21. package/bin/tezgah-dsh.cmd +70 -0
  22. package/bin/tezgah-gate +75 -0
  23. package/bin/tezgah-import-ai-research +439 -0
  24. package/bin/tezgah-index +32 -0
  25. package/bin/tezgah-lessons +148 -0
  26. package/bin/tezgah-mcp +322 -0
  27. package/bin/tezgah-migrate +324 -0
  28. package/bin/tezgah-pony +50 -0
  29. package/bin/tezgah-research +772 -0
  30. package/bin/tezgah-rollback +93 -0
  31. package/bin/tezgah-route +124 -0
  32. package/bin/tezgah-setup +5798 -0
  33. package/bin/tezgah-status +383 -0
  34. package/bin/tezgah-task +607 -0
  35. package/bin/tezgah-taste +423 -0
  36. package/bin/tezgah-triage +485 -0
  37. package/bin/tezgah.js +36 -0
  38. package/commands/adhd.md +21 -0
  39. package/commands/ponytail.md +21 -0
  40. package/docs/README.md +112 -0
  41. package/docs/architecture.md +226 -0
  42. package/docs/citations-baseline.json +59 -0
  43. package/docs/clarity-baseline.json +116 -0
  44. package/docs/contract.md +416 -0
  45. package/docs/environment.md +141 -0
  46. package/docs/evidence.md +831 -0
  47. package/docs/feature-audit.md +139 -0
  48. package/docs/gate.md +407 -0
  49. package/docs/glossary.md +201 -0
  50. package/docs/hosts.md +400 -0
  51. package/docs/index.json +471 -0
  52. package/docs/judge.md +193 -0
  53. package/docs/layers.md +189 -0
  54. package/docs/models.md +160 -0
  55. package/docs/operations.md +666 -0
  56. package/docs/research.md +809 -0
  57. package/docs/results/paired-outcome-2026-10.jsonl +254 -0
  58. package/docs/results/paired-outcome-2026-10.md +204 -0
  59. package/docs/skills.md +236 -0
  60. package/docs/status-line.md +315 -0
  61. package/docs/testing.md +287 -0
  62. package/docs/vision.md +117 -0
  63. package/hooks/hooks.json +33 -0
  64. package/hooks/projects-auto-init.py +98 -0
  65. package/hooks/projects-posttooluse.py +149 -0
  66. package/hooks/projects-pretooluse.py +40 -0
  67. package/hooks/projects-stop.py +60 -0
  68. package/hooks/tezgah_agents.py +817 -0
  69. package/hooks/tezgah_apps.py +266 -0
  70. package/hooks/tezgah_attest.py +255 -0
  71. package/hooks/tezgah_clarity.py +171 -0
  72. package/hooks/tezgah_components.py +140 -0
  73. package/hooks/tezgah_context.py +2953 -0
  74. package/hooks/tezgah_embed.py +765 -0
  75. package/hooks/tezgah_gate.py +2736 -0
  76. package/hooks/tezgah_guard.py +177 -0
  77. package/hooks/tezgah_index.py +124 -0
  78. package/hooks/tezgah_integrity.py +5141 -0
  79. package/hooks/tezgah_judge.py +487 -0
  80. package/hooks/tezgah_lang.py +230 -0
  81. package/hooks/tezgah_lessons.py +210 -0
  82. package/hooks/tezgah_models.py +855 -0
  83. package/hooks/tezgah_paths.py +1132 -0
  84. package/hooks/tezgah_policy.py +1039 -0
  85. package/hooks/tezgah_rank.py +77 -0
  86. package/hooks/tezgah_replay.py +1109 -0
  87. package/hooks/tezgah_research.py +5176 -0
  88. package/hooks/tezgah_shapes.py +305 -0
  89. package/hooks/tezgah_skill_pick.py +227 -0
  90. package/hooks/tezgah_snapshot.py +490 -0
  91. package/hooks/tezgah_stopspec.py +320 -0
  92. package/hooks/tezgah_task.py +458 -0
  93. package/hooks/tezgah_taste.py +201 -0
  94. package/hooks/tezgah_untrusted.py +112 -0
  95. package/hooks/tezgah_update.py +430 -0
  96. package/hosts/codex/hook.py +268 -0
  97. package/hosts/codex/hooks.json +26 -0
  98. package/hosts/cursor/hook.py +461 -0
  99. package/hosts/cursor/hooks.json +44 -0
  100. package/hosts/dsh/hooks.json +21 -0
  101. package/hosts/dsh/statusline/lib/client.js +138 -0
  102. package/hosts/dsh/statusline/lib/index.js +104 -0
  103. package/hosts/dsh/statusline/package.json +28 -0
  104. package/hosts/omp/hook.py +277 -0
  105. package/hosts/omp/tezgah-hook.ts.in +701 -0
  106. package/hosts/opencode/plugins/tezgah.js +2742 -0
  107. package/hosts/opencode/tui/tezgah-tui.tsx +151 -0
  108. package/output-styles/tezgah.md +142 -0
  109. package/package.json +32 -0
  110. package/packaging/build.sh +342 -0
  111. package/packaging/install.ps1 +166 -0
  112. package/packaging/install.sh +56 -0
  113. package/packaging/upgrade.sh +142 -0
  114. package/skills/ai-research/0-autoresearch-skill/SKILL.md +411 -0
  115. package/skills/ai-research/0-autoresearch-skill/references/agent-continuity.md +95 -0
  116. package/skills/ai-research/0-autoresearch-skill/references/progress-reporting.md +166 -0
  117. package/skills/ai-research/0-autoresearch-skill/references/skill-routing.md +219 -0
  118. package/skills/ai-research/0-autoresearch-skill/templates/findings.md +44 -0
  119. package/skills/ai-research/0-autoresearch-skill/templates/research-log.md +41 -0
  120. package/skills/ai-research/01-model-architecture/litgpt/SKILL.md +469 -0
  121. package/skills/ai-research/01-model-architecture/litgpt/references/custom-models.md +569 -0
  122. package/skills/ai-research/01-model-architecture/litgpt/references/distributed-training.md +452 -0
  123. package/skills/ai-research/01-model-architecture/litgpt/references/supported-models.md +337 -0
  124. package/skills/ai-research/01-model-architecture/litgpt/references/training-recipes.md +620 -0
  125. package/skills/ai-research/01-model-architecture/mamba/SKILL.md +260 -0
  126. package/skills/ai-research/01-model-architecture/mamba/references/architecture-details.md +207 -0
  127. package/skills/ai-research/01-model-architecture/mamba/references/benchmarks.md +256 -0
  128. package/skills/ai-research/01-model-architecture/mamba/references/training-guide.md +389 -0
  129. package/skills/ai-research/01-model-architecture/nanogpt/SKILL.md +290 -0
  130. package/skills/ai-research/01-model-architecture/nanogpt/references/architecture.md +383 -0
  131. package/skills/ai-research/01-model-architecture/nanogpt/references/data.md +477 -0
  132. package/skills/ai-research/01-model-architecture/nanogpt/references/training.md +565 -0
  133. package/skills/ai-research/01-model-architecture/rwkv/SKILL.md +260 -0
  134. package/skills/ai-research/01-model-architecture/rwkv/references/architecture-details.md +345 -0
  135. package/skills/ai-research/01-model-architecture/rwkv/references/rwkv7.md +387 -0
  136. package/skills/ai-research/01-model-architecture/rwkv/references/state-management.md +370 -0
  137. package/skills/ai-research/01-model-architecture/torchtitan/SKILL.md +358 -0
  138. package/skills/ai-research/01-model-architecture/torchtitan/references/checkpoint.md +182 -0
  139. package/skills/ai-research/01-model-architecture/torchtitan/references/custom-models.md +259 -0
  140. package/skills/ai-research/01-model-architecture/torchtitan/references/float8.md +134 -0
  141. package/skills/ai-research/01-model-architecture/torchtitan/references/fsdp.md +127 -0
  142. package/skills/ai-research/02-tokenization/huggingface-tokenizers/SKILL.md +516 -0
  143. package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/algorithms.md +654 -0
  144. package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/integration.md +638 -0
  145. package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/pipeline.md +724 -0
  146. package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/training.md +566 -0
  147. package/skills/ai-research/02-tokenization/sentencepiece/SKILL.md +235 -0
  148. package/skills/ai-research/02-tokenization/sentencepiece/references/algorithms.md +201 -0
  149. package/skills/ai-research/02-tokenization/sentencepiece/references/training.md +305 -0
  150. package/skills/ai-research/03-fine-tuning/axolotl/SKILL.md +158 -0
  151. package/skills/ai-research/03-fine-tuning/axolotl/references/api.md +5549 -0
  152. package/skills/ai-research/03-fine-tuning/axolotl/references/dataset-formats.md +1030 -0
  153. package/skills/ai-research/03-fine-tuning/axolotl/references/index.md +16 -0
  154. package/skills/ai-research/03-fine-tuning/axolotl/references/other.md +3564 -0
  155. package/skills/ai-research/03-fine-tuning/llama-factory/SKILL.md +80 -0
  156. package/skills/ai-research/03-fine-tuning/llama-factory/references/_images.md +24 -0
  157. package/skills/ai-research/03-fine-tuning/llama-factory/references/advanced.md +1056 -0
  158. package/skills/ai-research/03-fine-tuning/llama-factory/references/getting_started.md +350 -0
  159. package/skills/ai-research/03-fine-tuning/llama-factory/references/index.md +20 -0
  160. package/skills/ai-research/03-fine-tuning/llama-factory/references/other.md +32 -0
  161. package/skills/ai-research/03-fine-tuning/peft/SKILL.md +431 -0
  162. package/skills/ai-research/03-fine-tuning/peft/references/advanced-usage.md +515 -0
  163. package/skills/ai-research/03-fine-tuning/peft/references/troubleshooting.md +481 -0
  164. package/skills/ai-research/03-fine-tuning/unsloth/SKILL.md +80 -0
  165. package/skills/ai-research/03-fine-tuning/unsloth/references/index.md +8 -0
  166. package/skills/ai-research/03-fine-tuning/unsloth/references/llms.md +83 -0
  167. package/skills/ai-research/04-mechanistic-interpretability/nnsight/SKILL.md +436 -0
  168. package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/README.md +79 -0
  169. package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/api.md +345 -0
  170. package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/tutorials.md +301 -0
  171. package/skills/ai-research/04-mechanistic-interpretability/pyvene/SKILL.md +473 -0
  172. package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/README.md +74 -0
  173. package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/api.md +384 -0
  174. package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/tutorials.md +377 -0
  175. package/skills/ai-research/04-mechanistic-interpretability/saelens/SKILL.md +386 -0
  176. package/skills/ai-research/04-mechanistic-interpretability/saelens/references/README.md +71 -0
  177. package/skills/ai-research/04-mechanistic-interpretability/saelens/references/api.md +334 -0
  178. package/skills/ai-research/04-mechanistic-interpretability/saelens/references/tutorials.md +319 -0
  179. package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/SKILL.md +346 -0
  180. package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/README.md +55 -0
  181. package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/api.md +363 -0
  182. package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/tutorials.md +340 -0
  183. package/skills/ai-research/05-data-processing/nemo-curator/SKILL.md +383 -0
  184. package/skills/ai-research/05-data-processing/nemo-curator/references/deduplication.md +88 -0
  185. package/skills/ai-research/05-data-processing/nemo-curator/references/filtering.md +103 -0
  186. package/skills/ai-research/05-data-processing/ray-data/SKILL.md +326 -0
  187. package/skills/ai-research/05-data-processing/ray-data/references/integration.md +83 -0
  188. package/skills/ai-research/05-data-processing/ray-data/references/transformations.md +84 -0
  189. package/skills/ai-research/06-post-training/grpo-rl-training/README.md +98 -0
  190. package/skills/ai-research/06-post-training/grpo-rl-training/SKILL.md +572 -0
  191. package/skills/ai-research/06-post-training/miles/SKILL.md +315 -0
  192. package/skills/ai-research/06-post-training/miles/references/api-reference.md +142 -0
  193. package/skills/ai-research/06-post-training/miles/references/troubleshooting.md +353 -0
  194. package/skills/ai-research/06-post-training/openrlhf/SKILL.md +249 -0
  195. package/skills/ai-research/06-post-training/openrlhf/references/algorithm-comparison.md +405 -0
  196. package/skills/ai-research/06-post-training/openrlhf/references/custom-rewards.md +531 -0
  197. package/skills/ai-research/06-post-training/openrlhf/references/hybrid-engine.md +288 -0
  198. package/skills/ai-research/06-post-training/openrlhf/references/multi-node-training.md +455 -0
  199. package/skills/ai-research/06-post-training/simpo/SKILL.md +219 -0
  200. package/skills/ai-research/06-post-training/simpo/references/datasets.md +479 -0
  201. package/skills/ai-research/06-post-training/simpo/references/hyperparameters.md +453 -0
  202. package/skills/ai-research/06-post-training/simpo/references/loss-functions.md +351 -0
  203. package/skills/ai-research/06-post-training/slime/SKILL.md +464 -0
  204. package/skills/ai-research/06-post-training/slime/references/api-reference.md +393 -0
  205. package/skills/ai-research/06-post-training/slime/references/troubleshooting.md +387 -0
  206. package/skills/ai-research/06-post-training/torchforge/SKILL.md +433 -0
  207. package/skills/ai-research/06-post-training/torchforge/references/api-reference.md +328 -0
  208. package/skills/ai-research/06-post-training/torchforge/references/troubleshooting.md +410 -0
  209. package/skills/ai-research/06-post-training/trl-fine-tuning/SKILL.md +455 -0
  210. package/skills/ai-research/06-post-training/trl-fine-tuning/references/dpo-variants.md +228 -0
  211. package/skills/ai-research/06-post-training/trl-fine-tuning/references/online-rl.md +83 -0
  212. package/skills/ai-research/06-post-training/trl-fine-tuning/references/reward-modeling.md +123 -0
  213. package/skills/ai-research/06-post-training/trl-fine-tuning/references/sft-training.md +169 -0
  214. package/skills/ai-research/06-post-training/verl/SKILL.md +391 -0
  215. package/skills/ai-research/06-post-training/verl/references/api-reference.md +302 -0
  216. package/skills/ai-research/06-post-training/verl/references/troubleshooting.md +392 -0
  217. package/skills/ai-research/07-safety-alignment/constitutional-ai/SKILL.md +290 -0
  218. package/skills/ai-research/07-safety-alignment/llamaguard/SKILL.md +337 -0
  219. package/skills/ai-research/07-safety-alignment/nemo-guardrails/SKILL.md +297 -0
  220. package/skills/ai-research/07-safety-alignment/prompt-guard/SKILL.md +312 -0
  221. package/skills/ai-research/08-distributed-training/accelerate/SKILL.md +332 -0
  222. package/skills/ai-research/08-distributed-training/accelerate/references/custom-plugins.md +454 -0
  223. package/skills/ai-research/08-distributed-training/accelerate/references/megatron-integration.md +490 -0
  224. package/skills/ai-research/08-distributed-training/accelerate/references/performance.md +526 -0
  225. package/skills/ai-research/08-distributed-training/deepspeed/SKILL.md +141 -0
  226. package/skills/ai-research/08-distributed-training/deepspeed/references/08.md +18 -0
  227. package/skills/ai-research/08-distributed-training/deepspeed/references/09.md +174 -0
  228. package/skills/ai-research/08-distributed-training/deepspeed/references/2020.md +379 -0
  229. package/skills/ai-research/08-distributed-training/deepspeed/references/2023.md +280 -0
  230. package/skills/ai-research/08-distributed-training/deepspeed/references/assets.md +180 -0
  231. package/skills/ai-research/08-distributed-training/deepspeed/references/index.md +36 -0
  232. package/skills/ai-research/08-distributed-training/deepspeed/references/mii.md +119 -0
  233. package/skills/ai-research/08-distributed-training/deepspeed/references/other.md +1192 -0
  234. package/skills/ai-research/08-distributed-training/megatron-core/SKILL.md +366 -0
  235. package/skills/ai-research/08-distributed-training/megatron-core/references/benchmarks.md +250 -0
  236. package/skills/ai-research/08-distributed-training/megatron-core/references/parallelism-guide.md +405 -0
  237. package/skills/ai-research/08-distributed-training/megatron-core/references/production-examples.md +474 -0
  238. package/skills/ai-research/08-distributed-training/megatron-core/references/training-recipes.md +548 -0
  239. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/SKILL.md +231 -0
  240. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_async_recipe.md +14 -0
  241. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_overview.md +19 -0
  242. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_recipe.md +18 -0
  243. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_ddp_notes.md +10 -0
  244. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_device_mesh_tutorial.md +22 -0
  245. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_examples_fsdp2.md +15 -0
  246. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp1_api.md +9 -0
  247. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp2_tutorial.md +45 -0
  248. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fully_shard_api.md +49 -0
  249. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_tp_tutorial.md +22 -0
  250. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/ray_train_fsdp2_example.md +13 -0
  251. package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/torchtitan_fsdp_notes.md +14 -0
  252. package/skills/ai-research/08-distributed-training/pytorch-lightning/SKILL.md +346 -0
  253. package/skills/ai-research/08-distributed-training/pytorch-lightning/references/callbacks.md +437 -0
  254. package/skills/ai-research/08-distributed-training/pytorch-lightning/references/distributed.md +491 -0
  255. package/skills/ai-research/08-distributed-training/pytorch-lightning/references/hyperparameter-tuning.md +557 -0
  256. package/skills/ai-research/08-distributed-training/ray-train/SKILL.md +406 -0
  257. package/skills/ai-research/08-distributed-training/ray-train/references/multi-node.md +629 -0
  258. package/skills/ai-research/09-infrastructure/lambda-labs/SKILL.md +545 -0
  259. package/skills/ai-research/09-infrastructure/lambda-labs/references/advanced-usage.md +612 -0
  260. package/skills/ai-research/09-infrastructure/lambda-labs/references/troubleshooting.md +531 -0
  261. package/skills/ai-research/09-infrastructure/modal/SKILL.md +341 -0
  262. package/skills/ai-research/09-infrastructure/modal/references/advanced-usage.md +504 -0
  263. package/skills/ai-research/09-infrastructure/modal/references/troubleshooting.md +495 -0
  264. package/skills/ai-research/09-infrastructure/skypilot/SKILL.md +509 -0
  265. package/skills/ai-research/09-infrastructure/skypilot/references/advanced-usage.md +492 -0
  266. package/skills/ai-research/09-infrastructure/skypilot/references/troubleshooting.md +571 -0
  267. package/skills/ai-research/10-optimization/awq/SKILL.md +310 -0
  268. package/skills/ai-research/10-optimization/awq/references/advanced-usage.md +325 -0
  269. package/skills/ai-research/10-optimization/awq/references/troubleshooting.md +345 -0
  270. package/skills/ai-research/10-optimization/bitsandbytes/SKILL.md +411 -0
  271. package/skills/ai-research/10-optimization/bitsandbytes/references/memory-optimization.md +522 -0
  272. package/skills/ai-research/10-optimization/bitsandbytes/references/qlora-training.md +522 -0
  273. package/skills/ai-research/10-optimization/bitsandbytes/references/quantization-formats.md +448 -0
  274. package/skills/ai-research/10-optimization/flash-attention/SKILL.md +367 -0
  275. package/skills/ai-research/10-optimization/flash-attention/references/benchmarks.md +216 -0
  276. package/skills/ai-research/10-optimization/flash-attention/references/transformers-integration.md +294 -0
  277. package/skills/ai-research/10-optimization/gguf/SKILL.md +427 -0
  278. package/skills/ai-research/10-optimization/gguf/references/advanced-usage.md +505 -0
  279. package/skills/ai-research/10-optimization/gguf/references/troubleshooting.md +443 -0
  280. package/skills/ai-research/10-optimization/gptq/SKILL.md +450 -0
  281. package/skills/ai-research/10-optimization/gptq/references/calibration.md +338 -0
  282. package/skills/ai-research/10-optimization/gptq/references/integration.md +130 -0
  283. package/skills/ai-research/10-optimization/gptq/references/troubleshooting.md +96 -0
  284. package/skills/ai-research/10-optimization/hqq/SKILL.md +445 -0
  285. package/skills/ai-research/10-optimization/hqq/references/advanced-usage.md +529 -0
  286. package/skills/ai-research/10-optimization/hqq/references/troubleshooting.md +504 -0
  287. package/skills/ai-research/10-optimization/ml-training-recipes/SKILL.md +319 -0
  288. package/skills/ai-research/10-optimization/ml-training-recipes/references/architecture.md +320 -0
  289. package/skills/ai-research/10-optimization/ml-training-recipes/references/biomedical.md +498 -0
  290. package/skills/ai-research/10-optimization/ml-training-recipes/references/domain-specific.md +626 -0
  291. package/skills/ai-research/10-optimization/ml-training-recipes/references/experiment-loop.md +129 -0
  292. package/skills/ai-research/10-optimization/ml-training-recipes/references/optimizers.md +330 -0
  293. package/skills/ai-research/10-optimization/ml-training-recipes/references/scaling-and-selection.md +428 -0
  294. package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/SKILL.md +405 -0
  295. package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/benchmarks.md +394 -0
  296. package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/custom-tasks.md +425 -0
  297. package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/issues.md +395 -0
  298. package/skills/ai-research/11-evaluation/lm-evaluation-harness/SKILL.md +490 -0
  299. package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/api-evaluation.md +491 -0
  300. package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/benchmark-guide.md +489 -0
  301. package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/custom-tasks.md +603 -0
  302. package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/distributed-eval.md +520 -0
  303. package/skills/ai-research/11-evaluation/nemo-evaluator/SKILL.md +494 -0
  304. package/skills/ai-research/11-evaluation/nemo-evaluator/references/adapter-system.md +341 -0
  305. package/skills/ai-research/11-evaluation/nemo-evaluator/references/configuration.md +448 -0
  306. package/skills/ai-research/11-evaluation/nemo-evaluator/references/custom-benchmarks.md +316 -0
  307. package/skills/ai-research/11-evaluation/nemo-evaluator/references/execution-backends.md +362 -0
  308. package/skills/ai-research/12-inference-serving/llama-cpp/SKILL.md +258 -0
  309. package/skills/ai-research/12-inference-serving/llama-cpp/references/optimization.md +90 -0
  310. package/skills/ai-research/12-inference-serving/llama-cpp/references/quantization.md +214 -0
  311. package/skills/ai-research/12-inference-serving/llama-cpp/references/server.md +126 -0
  312. package/skills/ai-research/12-inference-serving/sglang/SKILL.md +442 -0
  313. package/skills/ai-research/12-inference-serving/sglang/references/deployment.md +491 -0
  314. package/skills/ai-research/12-inference-serving/sglang/references/radix-attention.md +414 -0
  315. package/skills/ai-research/12-inference-serving/sglang/references/structured-generation.md +542 -0
  316. package/skills/ai-research/12-inference-serving/tensorrt-llm/SKILL.md +187 -0
  317. package/skills/ai-research/12-inference-serving/tensorrt-llm/references/multi-gpu.md +299 -0
  318. package/skills/ai-research/12-inference-serving/tensorrt-llm/references/optimization.md +243 -0
  319. package/skills/ai-research/12-inference-serving/tensorrt-llm/references/serving.md +471 -0
  320. package/skills/ai-research/12-inference-serving/vllm/SKILL.md +364 -0
  321. package/skills/ai-research/12-inference-serving/vllm/references/optimization.md +227 -0
  322. package/skills/ai-research/12-inference-serving/vllm/references/quantization.md +285 -0
  323. package/skills/ai-research/12-inference-serving/vllm/references/server-deployment.md +256 -0
  324. package/skills/ai-research/12-inference-serving/vllm/references/troubleshooting.md +448 -0
  325. package/skills/ai-research/13-mlops/mlflow/SKILL.md +704 -0
  326. package/skills/ai-research/13-mlops/mlflow/references/deployment.md +745 -0
  327. package/skills/ai-research/13-mlops/mlflow/references/model-registry.md +771 -0
  328. package/skills/ai-research/13-mlops/mlflow/references/tracking.md +681 -0
  329. package/skills/ai-research/13-mlops/swanlab/SKILL.md +406 -0
  330. package/skills/ai-research/13-mlops/swanlab/references/integrations.md +305 -0
  331. package/skills/ai-research/13-mlops/swanlab/references/visualization.md +234 -0
  332. package/skills/ai-research/13-mlops/tensorboard/SKILL.md +629 -0
  333. package/skills/ai-research/13-mlops/tensorboard/references/integrations.md +639 -0
  334. package/skills/ai-research/13-mlops/tensorboard/references/profiling.md +546 -0
  335. package/skills/ai-research/13-mlops/tensorboard/references/visualization.md +621 -0
  336. package/skills/ai-research/13-mlops/weights-and-biases/SKILL.md +590 -0
  337. package/skills/ai-research/13-mlops/weights-and-biases/references/artifacts.md +585 -0
  338. package/skills/ai-research/13-mlops/weights-and-biases/references/integrations.md +701 -0
  339. package/skills/ai-research/13-mlops/weights-and-biases/references/sweeps.md +848 -0
  340. package/skills/ai-research/14-agents/a-evolve/SKILL.md +383 -0
  341. package/skills/ai-research/14-agents/a-evolve/references/README.md +831 -0
  342. package/skills/ai-research/14-agents/a-evolve/references/api.md +594 -0
  343. package/skills/ai-research/14-agents/a-evolve/references/architecture.md +417 -0
  344. package/skills/ai-research/14-agents/a-evolve/references/design-patterns.md +462 -0
  345. package/skills/ai-research/14-agents/a-evolve/references/examples.md +352 -0
  346. package/skills/ai-research/14-agents/a-evolve/references/issues.md +591 -0
  347. package/skills/ai-research/14-agents/a-evolve/references/releases.md +112 -0
  348. package/skills/ai-research/14-agents/a-evolve/references/tutorials.md +819 -0
  349. package/skills/ai-research/14-agents/autogpt/SKILL.md +403 -0
  350. package/skills/ai-research/14-agents/autogpt/references/advanced-usage.md +536 -0
  351. package/skills/ai-research/14-agents/autogpt/references/troubleshooting.md +421 -0
  352. package/skills/ai-research/14-agents/crewai/SKILL.md +498 -0
  353. package/skills/ai-research/14-agents/crewai/references/flows.md +439 -0
  354. package/skills/ai-research/14-agents/crewai/references/tools.md +430 -0
  355. package/skills/ai-research/14-agents/crewai/references/troubleshooting.md +481 -0
  356. package/skills/ai-research/14-agents/langchain/SKILL.md +480 -0
  357. package/skills/ai-research/14-agents/langchain/references/agents.md +500 -0
  358. package/skills/ai-research/14-agents/langchain/references/integration.md +563 -0
  359. package/skills/ai-research/14-agents/langchain/references/rag.md +601 -0
  360. package/skills/ai-research/14-agents/llamaindex/SKILL.md +569 -0
  361. package/skills/ai-research/14-agents/llamaindex/references/agents.md +84 -0
  362. package/skills/ai-research/14-agents/llamaindex/references/data_connectors.md +109 -0
  363. package/skills/ai-research/14-agents/llamaindex/references/query_engines.md +407 -0
  364. package/skills/ai-research/15-rag/chroma/SKILL.md +406 -0
  365. package/skills/ai-research/15-rag/chroma/references/integration.md +39 -0
  366. package/skills/ai-research/15-rag/faiss/SKILL.md +221 -0
  367. package/skills/ai-research/15-rag/faiss/references/index_types.md +281 -0
  368. package/skills/ai-research/15-rag/pinecone/SKILL.md +358 -0
  369. package/skills/ai-research/15-rag/pinecone/references/deployment.md +182 -0
  370. package/skills/ai-research/15-rag/qdrant/SKILL.md +493 -0
  371. package/skills/ai-research/15-rag/qdrant/references/advanced-usage.md +649 -0
  372. package/skills/ai-research/15-rag/qdrant/references/troubleshooting.md +632 -0
  373. package/skills/ai-research/15-rag/sentence-transformers/SKILL.md +255 -0
  374. package/skills/ai-research/15-rag/sentence-transformers/references/models.md +124 -0
  375. package/skills/ai-research/16-prompt-engineering/dspy/SKILL.md +590 -0
  376. package/skills/ai-research/16-prompt-engineering/dspy/references/examples.md +664 -0
  377. package/skills/ai-research/16-prompt-engineering/dspy/references/modules.md +476 -0
  378. package/skills/ai-research/16-prompt-engineering/dspy/references/optimizers.md +567 -0
  379. package/skills/ai-research/16-prompt-engineering/guidance/SKILL.md +572 -0
  380. package/skills/ai-research/16-prompt-engineering/guidance/references/backends.md +555 -0
  381. package/skills/ai-research/16-prompt-engineering/guidance/references/constraints.md +675 -0
  382. package/skills/ai-research/16-prompt-engineering/guidance/references/examples.md +768 -0
  383. package/skills/ai-research/16-prompt-engineering/instructor/SKILL.md +740 -0
  384. package/skills/ai-research/16-prompt-engineering/instructor/references/examples.md +108 -0
  385. package/skills/ai-research/16-prompt-engineering/instructor/references/providers.md +71 -0
  386. package/skills/ai-research/16-prompt-engineering/instructor/references/validation.md +607 -0
  387. package/skills/ai-research/16-prompt-engineering/outlines/SKILL.md +652 -0
  388. package/skills/ai-research/16-prompt-engineering/outlines/references/backends.md +616 -0
  389. package/skills/ai-research/16-prompt-engineering/outlines/references/examples.md +774 -0
  390. package/skills/ai-research/16-prompt-engineering/outlines/references/json_generation.md +653 -0
  391. package/skills/ai-research/17-observability/langsmith/SKILL.md +422 -0
  392. package/skills/ai-research/17-observability/langsmith/references/advanced-usage.md +549 -0
  393. package/skills/ai-research/17-observability/langsmith/references/troubleshooting.md +538 -0
  394. package/skills/ai-research/17-observability/phoenix/SKILL.md +475 -0
  395. package/skills/ai-research/17-observability/phoenix/references/advanced-usage.md +620 -0
  396. package/skills/ai-research/17-observability/phoenix/references/troubleshooting.md +539 -0
  397. package/skills/ai-research/18-multimodal/audiocraft/SKILL.md +564 -0
  398. package/skills/ai-research/18-multimodal/audiocraft/references/advanced-usage.md +667 -0
  399. package/skills/ai-research/18-multimodal/audiocraft/references/troubleshooting.md +505 -0
  400. package/skills/ai-research/18-multimodal/blip-2/SKILL.md +564 -0
  401. package/skills/ai-research/18-multimodal/blip-2/references/advanced-usage.md +681 -0
  402. package/skills/ai-research/18-multimodal/blip-2/references/troubleshooting.md +527 -0
  403. package/skills/ai-research/18-multimodal/clip/SKILL.md +253 -0
  404. package/skills/ai-research/18-multimodal/clip/references/applications.md +208 -0
  405. package/skills/ai-research/18-multimodal/cosmos-policy/SKILL.md +402 -0
  406. package/skills/ai-research/18-multimodal/cosmos-policy/references/libero-commands.md +175 -0
  407. package/skills/ai-research/18-multimodal/cosmos-policy/references/robocasa-commands.md +147 -0
  408. package/skills/ai-research/18-multimodal/llava/SKILL.md +304 -0
  409. package/skills/ai-research/18-multimodal/llava/references/training.md +198 -0
  410. package/skills/ai-research/18-multimodal/openpi/SKILL.md +480 -0
  411. package/skills/ai-research/18-multimodal/openpi/references/checkpoints-and-env-map.md +86 -0
  412. package/skills/ai-research/18-multimodal/openpi/references/config-recipes.md +50 -0
  413. package/skills/ai-research/18-multimodal/openpi/references/pytorch-gotchas.md +49 -0
  414. package/skills/ai-research/18-multimodal/openpi/references/remote-client-pattern.md +48 -0
  415. package/skills/ai-research/18-multimodal/openpi/references/training-debugging.md +46 -0
  416. package/skills/ai-research/18-multimodal/openvla-oft/SKILL.md +441 -0
  417. package/skills/ai-research/18-multimodal/openvla-oft/references/aloha-workflow.md +141 -0
  418. package/skills/ai-research/18-multimodal/openvla-oft/references/config-troubleshooting.md +97 -0
  419. package/skills/ai-research/18-multimodal/openvla-oft/references/libero-workflow.md +115 -0
  420. package/skills/ai-research/18-multimodal/openvla-oft/references/paper-and-checkpoints.md +84 -0
  421. package/skills/ai-research/18-multimodal/segment-anything/SKILL.md +500 -0
  422. package/skills/ai-research/18-multimodal/segment-anything/references/advanced-usage.md +590 -0
  423. package/skills/ai-research/18-multimodal/segment-anything/references/troubleshooting.md +485 -0
  424. package/skills/ai-research/18-multimodal/stable-diffusion/SKILL.md +519 -0
  425. package/skills/ai-research/18-multimodal/stable-diffusion/references/advanced-usage.md +717 -0
  426. package/skills/ai-research/18-multimodal/stable-diffusion/references/troubleshooting.md +556 -0
  427. package/skills/ai-research/18-multimodal/whisper/SKILL.md +317 -0
  428. package/skills/ai-research/18-multimodal/whisper/references/languages.md +190 -0
  429. package/skills/ai-research/19-emerging-techniques/knowledge-distillation/SKILL.md +458 -0
  430. package/skills/ai-research/19-emerging-techniques/knowledge-distillation/references/minillm.md +335 -0
  431. package/skills/ai-research/19-emerging-techniques/long-context/SKILL.md +536 -0
  432. package/skills/ai-research/19-emerging-techniques/long-context/references/extension_methods.md +469 -0
  433. package/skills/ai-research/19-emerging-techniques/long-context/references/fine_tuning.md +612 -0
  434. package/skills/ai-research/19-emerging-techniques/long-context/references/rope.md +403 -0
  435. package/skills/ai-research/19-emerging-techniques/model-merging/SKILL.md +497 -0
  436. package/skills/ai-research/19-emerging-techniques/model-merging/references/coefficient-tuning.md +415 -0
  437. package/skills/ai-research/19-emerging-techniques/model-merging/references/evaluation.md +463 -0
  438. package/skills/ai-research/19-emerging-techniques/model-merging/references/examples.md +429 -0
  439. package/skills/ai-research/19-emerging-techniques/model-merging/references/methods.md +353 -0
  440. package/skills/ai-research/19-emerging-techniques/model-pruning/SKILL.md +495 -0
  441. package/skills/ai-research/19-emerging-techniques/model-pruning/references/wanda.md +348 -0
  442. package/skills/ai-research/19-emerging-techniques/moe-training/SKILL.md +526 -0
  443. package/skills/ai-research/19-emerging-techniques/moe-training/references/architectures.md +433 -0
  444. package/skills/ai-research/19-emerging-techniques/moe-training/references/inference.md +349 -0
  445. package/skills/ai-research/19-emerging-techniques/moe-training/references/training.md +426 -0
  446. package/skills/ai-research/19-emerging-techniques/speculative-decoding/SKILL.md +467 -0
  447. package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/lookahead.md +310 -0
  448. package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/medusa.md +351 -0
  449. package/skills/ai-research/20-ml-paper-writing/academic-plotting/SKILL.md +479 -0
  450. package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/data-visualization.md +509 -0
  451. package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/diagram-generation.md +395 -0
  452. package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/style-guide.md +305 -0
  453. package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/SKILL.md +982 -0
  454. package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/checklists.md +348 -0
  455. package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/citation-workflow.md +563 -0
  456. package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/reviewer-guidelines.md +349 -0
  457. package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/sources.md +165 -0
  458. package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/writing-guide.md +477 -0
  459. package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/SKILL.md +298 -0
  460. package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/references/slide-templates.md +505 -0
  461. package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/SKILL.md +270 -0
  462. package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/checklist.md +279 -0
  463. package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/reviewer-guidelines.md +116 -0
  464. package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/section-blueprints.md +400 -0
  465. package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/systems-conferences.md +261 -0
  466. package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/writing-patterns.md +231 -0
  467. package/skills/ai-research/21-research-ideation/brainstorming-research-ideas/SKILL.md +384 -0
  468. package/skills/ai-research/21-research-ideation/creative-thinking-for-research/SKILL.md +366 -0
  469. package/skills/ai-research/22-agent-native-research-artifact/compiler/SKILL.md +245 -0
  470. package/skills/ai-research/22-agent-native-research-artifact/compiler/references/ara-schema.md +439 -0
  471. package/skills/ai-research/22-agent-native-research-artifact/compiler/references/exploration-tree-spec.md +125 -0
  472. package/skills/ai-research/22-agent-native-research-artifact/compiler/references/validation-checklist.md +149 -0
  473. package/skills/ai-research/22-agent-native-research-artifact/research-manager/SKILL.md +324 -0
  474. package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/event-taxonomy.md +124 -0
  475. package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/provenance-tags.md +190 -0
  476. package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/session-protocol.md +162 -0
  477. package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/SKILL.md +322 -0
  478. package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/references/review-dimensions.md +182 -0
  479. package/skills/ai-research/SKILL.md +101 -0
  480. package/skills/ai-research/SOURCE +38 -0
  481. package/skills/ai-research/index/1-frame.md +18 -0
  482. package/skills/ai-research/index/2-data.md +21 -0
  483. package/skills/ai-research/index/3-train.md +48 -0
  484. package/skills/ai-research/index/4-measure.md +25 -0
  485. package/skills/ai-research/index/5-run.md +23 -0
  486. package/skills/ai-research/index/6-write.md +35 -0
  487. package/skills/ai-research/library.json +3456 -0
  488. package/skills/analyze-app/EVALS.md +82 -0
  489. package/skills/analyze-app/SKILL.md +188 -0
  490. package/skills/design-contract/EVALS.md +80 -0
  491. package/skills/design-contract/SKILL.md +171 -0
  492. package/skills/design-library/EVALS.md +85 -0
  493. package/skills/design-library/INDEX.md +59 -0
  494. package/skills/design-library/SKILL.md +58 -0
  495. package/skills/design-library/SOURCE +131 -0
  496. package/skills/design-library/adaptive-interfaces/skills/colour-independence/SKILL.md +90 -0
  497. package/skills/design-library/adaptive-interfaces/skills/flexible-typography/SKILL.md +83 -0
  498. package/skills/design-library/adaptive-interfaces/skills/information-density/SKILL.md +87 -0
  499. package/skills/design-library/adaptive-interfaces/skills/preference-audit/SKILL.md +70 -0
  500. package/skills/design-library/adaptive-interfaces/skills/responsive-accessibility/SKILL.md +86 -0
  501. package/skills/design-library/adaptive-interfaces/skills/responsive-review/SKILL.md +76 -0
  502. package/skills/design-library/adaptive-interfaces/skills/simplified-views/SKILL.md +97 -0
  503. package/skills/design-library/adaptive-interfaces/skills/specify/SKILL.md +63 -0
  504. package/skills/design-library/adaptive-interfaces/skills/user-preference-respect/SKILL.md +100 -0
  505. package/skills/design-library/cognitive-accessibility/skills/adaptive-personalisation/SKILL.md +61 -0
  506. package/skills/design-library/cognitive-accessibility/skills/assess-load/SKILL.md +48 -0
  507. package/skills/design-library/cognitive-accessibility/skills/cognitive-load-assessment/SKILL.md +60 -0
  508. package/skills/design-library/cognitive-accessibility/skills/contextual-help-design/SKILL.md +61 -0
  509. package/skills/design-library/cognitive-accessibility/skills/error-prevention-recovery/SKILL.md +71 -0
  510. package/skills/design-library/cognitive-accessibility/skills/focus-attention-design/SKILL.md +67 -0
  511. package/skills/design-library/cognitive-accessibility/skills/memory-load-reduction/SKILL.md +60 -0
  512. package/skills/design-library/cognitive-accessibility/skills/plain-language-design/SKILL.md +78 -0
  513. package/skills/design-library/cognitive-accessibility/skills/review/SKILL.md +56 -0
  514. package/skills/design-library/cognitive-accessibility/skills/simplify/SKILL.md +39 -0
  515. package/skills/design-library/cognitive-accessibility/skills/wayfinding-navigation/SKILL.md +64 -0
  516. package/skills/design-library/design-research/skills/behavioural-analytics/SKILL.md +33 -0
  517. package/skills/design-library/design-research/skills/qual-quant-triangulation/SKILL.md +33 -0
  518. package/skills/design-library/inclusive-interaction/skills/audit/SKILL.md +50 -0
  519. package/skills/design-library/inclusive-interaction/skills/design-flow/SKILL.md +58 -0
  520. package/skills/design-library/inclusive-interaction/skills/feedback-and-status/SKILL.md +76 -0
  521. package/skills/design-library/inclusive-interaction/skills/gesture-alternatives/SKILL.md +70 -0
  522. package/skills/design-library/inclusive-interaction/skills/keyboard-navigation/SKILL.md +99 -0
  523. package/skills/design-library/inclusive-interaction/skills/keyboard-review/SKILL.md +54 -0
  524. package/skills/design-library/inclusive-interaction/skills/motion-sensitivity/SKILL.md +79 -0
  525. package/skills/design-library/inclusive-interaction/skills/multi-modal-input/SKILL.md +70 -0
  526. package/skills/design-library/inclusive-interaction/skills/touch-target-design/SKILL.md +71 -0
  527. package/skills/design-library/inclusive-interaction/skills/voice-interaction/SKILL.md +68 -0
  528. package/skills/design-library/visual-critique/skills/critique-affordance/SKILL.md +45 -0
  529. package/skills/design-library/visual-critique/skills/critique-brand-consistency/SKILL.md +42 -0
  530. package/skills/design-library/visual-critique/skills/critique-color/SKILL.md +44 -0
  531. package/skills/design-library/visual-critique/skills/critique-composition/SKILL.md +46 -0
  532. package/skills/design-library/visual-critique/skills/critique-information-density/SKILL.md +45 -0
  533. package/skills/design-library/visual-critique/skills/critique-typography/SKILL.md +45 -0
  534. package/skills/design-library/visual-critique/skills/critique-visual-hierarchy/SKILL.md +40 -0
  535. package/skills/feature-audit/EVALS.md +83 -0
  536. package/skills/feature-audit/SKILL.md +326 -0
  537. package/skills/harness/EVALS.md +81 -0
  538. package/skills/harness/SKILL.md +88 -0
  539. package/skills/i-have-adhd/EVALS.md +80 -0
  540. package/skills/i-have-adhd/SKILL.md +183 -0
  541. package/skills/no-ai-slop/EVALS.md +89 -0
  542. package/skills/no-ai-slop/SKILL.md +209 -0
  543. package/skills/no-ai-slop/eval.md +52 -0
  544. package/skills/plan-add/EVALS.md +79 -0
  545. package/skills/plan-add/SKILL.md +179 -0
  546. package/skills/plan-add/render_table.py +72 -0
  547. package/skills/plan-status/EVALS.md +78 -0
  548. package/skills/plan-status/SKILL.md +52 -0
  549. package/skills/plan-sync/EVALS.md +80 -0
  550. package/skills/plan-sync/SKILL.md +69 -0
  551. package/skills/pm-frameworks/SKILL.md +33 -0
  552. package/skills/pm-frameworks/SOURCE +39 -0
  553. package/skills/pm-frameworks/intended-vs-implemented/SKILL.md +42 -0
  554. package/skills/pm-frameworks/opportunity-solution-tree/SKILL.md +64 -0
  555. package/skills/ponytail/EVALS.md +80 -0
  556. package/skills/ponytail/SKILL.md +124 -0
  557. package/skills/product-analysis/EVALS.md +103 -0
  558. package/skills/product-analysis/SKILL.md +361 -0
  559. package/skills/research/EVALS.md +104 -0
  560. package/skills/research/SKILL.md +570 -0
  561. package/skills/rl-env/SKILL.md +53 -0
  562. package/skills/rl-env/SOURCE +41 -0
  563. package/skills/rl-env/generate-nemo-gym-env/SKILL.md +169 -0
  564. package/skills/rl-env/generate-nemo-gym-env/references/architecture.md +114 -0
  565. package/skills/rl-env/generate-openenv-env/SKILL.md +183 -0
  566. package/skills/rl-env/generate-openenv-env/references/architecture.md +82 -0
  567. package/skills/rl-env/generate-ors-env/SKILL.md +209 -0
  568. package/skills/rl-env/generate-ors-env/references/architecture.md +113 -0
  569. package/skills/rl-env/generate-verifiers-env/SKILL.md +188 -0
  570. package/skills/rl-env/generate-verifiers-env/references/architecture.md +119 -0
  571. package/skills/rl-env/rl-env-from-description/SKILL.md +124 -0
  572. package/skills/rl-env/rl-env-from-description/references/interview.md +75 -0
  573. package/skills/rl-env/rl-env-from-description/references/nemo_gym.md +41 -0
  574. package/skills/rl-env/rl-env-from-description/references/openenv.md +35 -0
  575. package/skills/rl-env/rl-env-from-description/references/ors.md +50 -0
  576. package/skills/rl-env/rl-env-from-description/references/verifiers.md +39 -0
  577. package/skills/tezgah-contract/EVALS.md +78 -0
  578. package/skills/tezgah-contract/SKILL.md +792 -0
  579. package/statusline.py +129 -0
  580. package/workflows/graph-impact.js +153 -0
  581. package/workflows/graph-map.js +158 -0
  582. package/workflows/graph-review.js +170 -0
@@ -0,0 +1,819 @@
1
+ <!-- vendored from orchestra-research/AI-research-SKILLs@773a52944ba4747a18bd4ae9ade53fff041adcbc 14-agents/a-evolve/references/tutorials.md; MIT (c) Orchestra Research -->
2
+ # A-Evolve Tutorials
3
+
4
+ ## Tutorial 1: Build and Evolve a Custom Agent from Scratch
5
+
6
+ This tutorial walks through creating a complete agent-benchmark-evolution pipeline for a custom domain: text summarization quality.
7
+
8
+ ### Step 1: Create the Workspace
9
+
10
+ ```bash
11
+ mkdir -p summarizer/{prompts/fragments,skills,memory,tools}
12
+ ```
13
+
14
+ Write the manifest:
15
+
16
+ ```yaml
17
+ # summarizer/manifest.yaml
18
+ agent:
19
+ type: reference
20
+ entrypoint: summarizer_agent.SummarizerAgent
21
+
22
+ evolvable_layers:
23
+ - prompts
24
+ - skills
25
+ - memory
26
+
27
+ reload_strategy: hot
28
+ ```
29
+
30
+ Write the initial system prompt:
31
+
32
+ ```markdown
33
+ # summarizer/prompts/system.md
34
+ You are an expert text summarizer. Given a document, produce a concise summary that captures the key points.
35
+
36
+ ## Guidelines
37
+ - Keep summaries under 3 sentences for documents under 500 words
38
+ - Preserve numerical data and proper nouns
39
+ - Use active voice
40
+ - Do not add information not present in the source
41
+ ```
42
+
43
+ Initialize git:
44
+
45
+ ```bash
46
+ cd summarizer && git init && git add -A && git commit -m "Initial workspace"
47
+ ```
48
+
49
+ ### Step 2: Implement the Agent
50
+
51
+ ```python
52
+ # summarizer_agent.py
53
+ import agent_evolve as ae
54
+ import anthropic
55
+
56
+ class SummarizerAgent(ae.BaseAgent):
57
+ def __init__(self, workspace_dir: str):
58
+ super().__init__(workspace_dir)
59
+ self.client = anthropic.Anthropic()
60
+
61
+ def solve(self, task: ae.Task) -> ae.Trajectory:
62
+ # 1. Build system prompt with evolved content + skills
63
+ skill_text = ""
64
+ for skill_meta in self.skills:
65
+ content = self.get_skill_content(skill_meta.name)
66
+ skill_text += f"\n## Skill: {skill_meta.name}\n{content}\n"
67
+
68
+ system = self.system_prompt
69
+ if skill_text:
70
+ system += f"\n\n# Learned Skills\n{skill_text}"
71
+
72
+ # 2. Include episodic memories if available
73
+ if self.memories:
74
+ memory_text = "\n".join(
75
+ f"- {m.get('content', '')}" for m in self.memories[-5:]
76
+ )
77
+ system += f"\n\n# Lessons Learned\n{memory_text}"
78
+
79
+ # 3. Call the LLM
80
+ response = self.client.messages.create(
81
+ model="claude-sonnet-4-20250514",
82
+ max_tokens=1024,
83
+ system=system,
84
+ messages=[{"role": "user", "content": f"Summarize this:\n\n{task.input}"}],
85
+ )
86
+ output = response.content[0].text
87
+
88
+ # 4. Record trajectory
89
+ return ae.Trajectory(
90
+ task_id=task.id,
91
+ output=output,
92
+ steps=[{
93
+ "tool": "llm",
94
+ "model": "claude-sonnet-4-20250514",
95
+ "input_tokens": response.usage.input_tokens,
96
+ "output_tokens": response.usage.output_tokens,
97
+ }],
98
+ )
99
+ ```
100
+
101
+ **Key points:**
102
+ - `self.system_prompt` reads from `prompts/system.md` — this gets evolved
103
+ - `self.skills` lists skills discovered by the evolution engine
104
+ - `self.memories` contains episodic lessons from past failures
105
+ - All state is loaded from the workspace filesystem
106
+
107
+ ### Step 3: Implement the Benchmark
108
+
109
+ ```python
110
+ # summarizer_benchmark.py
111
+ import json
112
+ import agent_evolve as ae
113
+
114
+ class SummarizerBenchmark(ae.BenchmarkAdapter):
115
+ def __init__(self, data_path: str):
116
+ self.data_path = data_path
117
+
118
+ def get_tasks(self, split="train", limit=10):
119
+ with open(f"{self.data_path}/{split}.jsonl") as f:
120
+ items = [json.loads(line) for line in f]
121
+ if limit:
122
+ items = items[:limit]
123
+ return [
124
+ ae.Task(
125
+ id=item["id"],
126
+ input=item["document"],
127
+ metadata={
128
+ "reference_summary": item["summary"],
129
+ "key_facts": item.get("key_facts", []),
130
+ },
131
+ )
132
+ for item in items
133
+ ]
134
+
135
+ def evaluate(self, task: ae.Task, trajectory: ae.Trajectory) -> ae.Feedback:
136
+ reference = task.metadata["reference_summary"]
137
+ generated = trajectory.output
138
+ key_facts = task.metadata.get("key_facts", [])
139
+
140
+ # Score components
141
+ brevity_score = self._score_brevity(generated)
142
+ fact_score = self._score_facts(generated, key_facts)
143
+ quality_score = self._score_quality(generated, reference)
144
+
145
+ # Weighted average
146
+ score = 0.3 * brevity_score + 0.4 * fact_score + 0.3 * quality_score
147
+
148
+ detail_parts = [
149
+ f"brevity={brevity_score:.2f}",
150
+ f"facts={fact_score:.2f} ({sum(1 for f in key_facts if f.lower() in generated.lower())}/{len(key_facts)})",
151
+ f"quality={quality_score:.2f}",
152
+ ]
153
+
154
+ return ae.Feedback(
155
+ success=score > 0.7,
156
+ score=score,
157
+ detail=", ".join(detail_parts),
158
+ raw={"brevity": brevity_score, "facts": fact_score, "quality": quality_score},
159
+ )
160
+
161
+ def _score_brevity(self, summary: str) -> float:
162
+ words = len(summary.split())
163
+ if words <= 75:
164
+ return 1.0
165
+ elif words <= 150:
166
+ return 0.7
167
+ else:
168
+ return max(0.0, 1.0 - (words - 75) / 200)
169
+
170
+ def _score_facts(self, summary: str, key_facts: list[str]) -> float:
171
+ if not key_facts:
172
+ return 1.0
173
+ found = sum(1 for fact in key_facts if fact.lower() in summary.lower())
174
+ return found / len(key_facts)
175
+
176
+ def _score_quality(self, generated: str, reference: str) -> float:
177
+ # Simple word overlap metric (replace with ROUGE in production)
178
+ gen_words = set(generated.lower().split())
179
+ ref_words = set(reference.lower().split())
180
+ if not ref_words:
181
+ return 0.0
182
+ overlap = len(gen_words & ref_words)
183
+ precision = overlap / (len(gen_words) + 1e-9)
184
+ recall = overlap / len(ref_words)
185
+ return 2 * precision * recall / (precision + recall + 1e-9)
186
+ ```
187
+
188
+ **Key design decisions:**
189
+ - Multiple scoring components give the evolver rich signal about *what* to improve
190
+ - `feedback.detail` includes component breakdowns — the evolver reads these to decide what to mutate
191
+ - `feedback.raw` stores structured data for post-hoc analysis
192
+
193
+ ### Step 4: Prepare the Dataset
194
+
195
+ ```python
196
+ # prepare_data.py
197
+ import json
198
+ import os
199
+
200
+ os.makedirs("data", exist_ok=True)
201
+
202
+ train_data = [
203
+ {
204
+ "id": "train-001",
205
+ "document": "The Federal Reserve announced today that it will maintain...",
206
+ "summary": "The Fed held interest rates steady at 5.25-5.50%...",
207
+ "key_facts": ["5.25-5.50%", "Federal Reserve", "inflation target"],
208
+ },
209
+ # ... add 50-100 training examples
210
+ ]
211
+
212
+ test_data = [
213
+ # ... add 20-30 held-out test examples
214
+ ]
215
+
216
+ with open("data/train.jsonl", "w") as f:
217
+ for item in train_data:
218
+ f.write(json.dumps(item) + "\n")
219
+
220
+ with open("data/test.jsonl", "w") as f:
221
+ for item in test_data:
222
+ f.write(json.dumps(item) + "\n")
223
+ ```
224
+
225
+ **Pro Tips:**
226
+ - Training set should cover diverse document types (news, technical, narrative)
227
+ - Include edge cases: very short documents, documents with tables/lists, multi-topic documents
228
+ - Key facts should be objective and verifiable (numbers, names, dates)
229
+
230
+ ### Step 5: Run Evolution
231
+
232
+ ```python
233
+ # evolve_summarizer.py
234
+ import agent_evolve as ae
235
+ from summarizer_agent import SummarizerAgent
236
+ from summarizer_benchmark import SummarizerBenchmark
237
+
238
+ config = ae.EvolveConfig(
239
+ batch_size=10, # 10 documents per evolution cycle
240
+ max_cycles=15, # 15 rounds of improvement
241
+ evolve_prompts=True, # Mutate the system prompt
242
+ evolve_skills=True, # Discover summarization skills
243
+ evolve_memory=True, # Learn from failures
244
+ holdout_ratio=0.2, # 20% held out for validation
245
+ evolver_model="us.anthropic.claude-opus-4-6-v1",
246
+ egl_threshold=0.02, # Stop if < 2% improvement
247
+ egl_window=4, # Over 4 consecutive cycles
248
+ )
249
+
250
+ evolver = ae.Evolver(
251
+ agent=SummarizerAgent("./summarizer"),
252
+ benchmark=SummarizerBenchmark("./data"),
253
+ config=config,
254
+ )
255
+
256
+ results = evolver.run()
257
+
258
+ print(f"Evolution complete!")
259
+ print(f" Cycles: {results.cycles_completed}")
260
+ print(f" Final score: {results.final_score:.3f}")
261
+ print(f" Converged: {results.converged}")
262
+ print(f" Score trajectory: {[f'{s:.3f}' for s in results.score_history]}")
263
+ ```
264
+
265
+ ### Step 6: Inspect the Evolved Agent
266
+
267
+ ```bash
268
+ # See what changed
269
+ cd summarizer
270
+ git log --oneline --decorate
271
+
272
+ # Compare initial vs final prompt
273
+ git diff evo-1 evo-15 -- prompts/system.md
274
+
275
+ # List discovered skills
276
+ ls skills/
277
+ # Example: skills/handle-numerical-data/SKILL.md
278
+ # skills/multi-topic-structure/SKILL.md
279
+
280
+ # Read a discovered skill
281
+ cat skills/handle-numerical-data/SKILL.md
282
+ ```
283
+
284
+ Example evolved prompt additions (actual results will vary):
285
+
286
+ ```markdown
287
+ ## Numerical Data Handling
288
+ When the source contains numbers, percentages, or dates:
289
+ 1. Always include the exact figure in your summary
290
+ 2. Provide context for the number (what it measures, comparison point)
291
+ 3. Round only when the original uses approximate language
292
+
293
+ ## Multi-Topic Documents
294
+ For documents covering multiple distinct topics:
295
+ 1. Identify the primary topic (most space/emphasis in source)
296
+ 2. Lead with the primary topic
297
+ 3. Mention secondary topics only if they affect the primary narrative
298
+ ```
299
+
300
+ ### Step 7: Iterate and Refine
301
+
302
+ After reviewing the evolved state, you can:
303
+
304
+ 1. **Run more cycles** on the same workspace:
305
+ ```python
306
+ # The workspace retains its evolved state
307
+ results2 = evolver.run(cycles=10) # 10 more cycles
308
+ ```
309
+
310
+ 2. **Adjust configuration** based on what you see:
311
+ ```python
312
+ # If skills are too narrow, let the evolver merge them
313
+ config.extra["merge_threshold"] = 0.7
314
+
315
+ # If the prompt is growing too long, enable pruning
316
+ config.extra["max_prompt_length"] = 5000
317
+ ```
318
+
319
+ 3. **Add harder tasks** to the benchmark to push the agent further:
320
+ ```python
321
+ # Add adversarial examples
322
+ hard_tasks = [
323
+ {"id": "hard-001", "document": "...", "summary": "...",
324
+ "key_facts": ["subtle fact buried in paragraph 4"]},
325
+ ]
326
+ ```
327
+
328
+ ---
329
+
330
+ ## Tutorial 2: Evolve a Built-in Agent on a Standard Benchmark
331
+
332
+ For a faster start, use one of the built-in agent + benchmark combinations.
333
+
334
+ ### SWE-bench Evolution
335
+
336
+ ```python
337
+ import agent_evolve as ae
338
+
339
+ # 1. Create evolver with built-in seed
340
+ evolver = ae.Evolver(
341
+ agent="swe", # Uses seed_workspaces/swe/
342
+ benchmark="swe-verified", # SWE-bench Verified dataset
343
+ config=ae.EvolveConfig(
344
+ batch_size=10,
345
+ max_cycles=20,
346
+ evolve_skills=True,
347
+ ),
348
+ )
349
+
350
+ # 2. Run evolution
351
+ results = evolver.run()
352
+
353
+ # 3. The evolved workspace is at evolver._workspace.path
354
+ print(f"Evolved workspace: {evolver._workspace.path}")
355
+ print(f"Score improvement: {results.score_history[0]:.3f} -> {results.final_score:.3f}")
356
+ ```
357
+
358
+ **What happens under the hood:**
359
+ 1. The `"swe"` seed workspace is copied to a working directory
360
+ 2. `SweAgent` is instantiated with the workspace path
361
+ 3. Each cycle: agent solves 10 SWE-bench tasks, benchmark evaluates patches
362
+ 4. The SkillForge engine analyzes failures and mutates prompts/skills
363
+ 5. Agent reloads evolved state and solves the next batch
364
+
365
+ ### Terminal-Bench Evolution
366
+
367
+ ```python
368
+ import agent_evolve as ae
369
+
370
+ evolver = ae.Evolver(
371
+ agent="terminal",
372
+ benchmark="terminal2",
373
+ config=ae.EvolveConfig(
374
+ batch_size=5, # Terminal tasks are slower
375
+ max_cycles=15,
376
+ evolve_skills=True,
377
+ evolve_memory=False, # Terminal tasks are time-sensitive
378
+ ),
379
+ )
380
+ results = evolver.run()
381
+ ```
382
+
383
+ ### MCP-Atlas Evolution
384
+
385
+ ```python
386
+ import agent_evolve as ae
387
+
388
+ evolver = ae.Evolver(
389
+ agent="mcp",
390
+ benchmark="mcp-atlas",
391
+ config=ae.EvolveConfig(
392
+ batch_size=10,
393
+ max_cycles=20,
394
+ ),
395
+ )
396
+ results = evolver.run()
397
+ ```
398
+
399
+ ---
400
+
401
+ ## Tutorial 3: Using Different Evolution Algorithms
402
+
403
+ A-Evolve ships four evolution algorithms. Choose based on your domain:
404
+
405
+ ### Default: A-Evolve/SkillForge
406
+
407
+ Best for general-purpose evolution. Uses an LLM with bash tools to directly edit workspace files.
408
+
409
+ ```python
410
+ # This is the default — no need to specify engine
411
+ evolver = ae.Evolver(agent="swe", benchmark="swe-verified")
412
+ ```
413
+
414
+ ### Guided Synthesis
415
+
416
+ Best for domains where skill discovery is the primary goal. Focuses on extracting lessons from failures and curating a minimal skill library.
417
+
418
+ ```python
419
+ from agent_evolve.algorithms.guided_synth import GuidedSynthesisEngine
420
+
421
+ evolver = ae.Evolver(
422
+ agent="swe",
423
+ benchmark="swe-verified",
424
+ engine=GuidedSynthesisEngine(config),
425
+ )
426
+ ```
427
+
428
+ ### Adaptive Evolution
429
+
430
+ Best for fine-grained control. Filters observations intelligently and tracks reward signals to adjust intervention density.
431
+
432
+ ```python
433
+ from agent_evolve.algorithms.adaptive import AdaptiveEvolutionEngine
434
+
435
+ evolver = ae.Evolver(
436
+ agent="swe",
437
+ benchmark="swe-verified",
438
+ engine=AdaptiveEvolutionEngine(config),
439
+ )
440
+ ```
441
+
442
+ ### Adaptive Skill
443
+
444
+ Best for skill-heavy domains where the primary improvement comes from building a procedure library.
445
+
446
+ ```python
447
+ from agent_evolve.algorithms.adaptive_skill import AdaptiveSkillEngine
448
+
449
+ evolver = ae.Evolver(
450
+ agent="swe",
451
+ benchmark="swe-verified",
452
+ engine=AdaptiveSkillEngine(config),
453
+ )
454
+ ```
455
+
456
+ ---
457
+
458
+ ## Tutorial 4: Post-Evolution Analysis
459
+
460
+ After an evolution run, understanding what changed is crucial for deciding next steps.
461
+
462
+ ### Score Trajectory Analysis
463
+
464
+ ```python
465
+ import matplotlib.pyplot as plt
466
+
467
+ results = evolver.run(cycles=15)
468
+
469
+ # Plot score curve
470
+ plt.figure(figsize=(10, 5))
471
+ plt.plot(range(1, len(results.score_history) + 1), results.score_history, marker='o')
472
+ plt.xlabel("Cycle")
473
+ plt.ylabel("Score")
474
+ plt.title("Evolution Score Trajectory")
475
+ plt.grid(True, alpha=0.3)
476
+ plt.savefig("evolution_curve.png")
477
+ ```
478
+
479
+ ### Workspace Diff Analysis
480
+
481
+ ```bash
482
+ cd my-workspace
483
+
484
+ # What changed overall?
485
+ git diff evo-1 evo-15 --stat
486
+
487
+ # Prompt changes
488
+ git diff evo-1 evo-15 -- prompts/system.md
489
+
490
+ # New skills
491
+ git diff evo-1 evo-15 -- skills/
492
+
493
+ # Memory entries
494
+ git diff evo-1 evo-15 -- memory/
495
+ ```
496
+
497
+ ### Skill Library Review
498
+
499
+ ```python
500
+ workspace = evolver._workspace
501
+
502
+ for skill in workspace.list_skills():
503
+ content = workspace.read_skill(skill.name)
504
+ print(f"\n{'='*60}")
505
+ print(f"Skill: {skill.name}")
506
+ print(f"Description: {skill.description}")
507
+ print(f"{'='*60}")
508
+ print(content[:500]) # First 500 chars
509
+ ```
510
+
511
+ ### Cycle-by-Cycle Breakdown
512
+
513
+ ```bash
514
+ # Compare consecutive cycles to see what each evolution step did
515
+ for i in $(seq 1 14); do
516
+ next=$((i + 1))
517
+ echo "=== Cycle $i -> $next ==="
518
+ git diff evo-$i evo-$next --stat
519
+ done
520
+ ```
521
+
522
+ ### Identifying Key Mutations
523
+
524
+ Look for the cycles where score jumped most:
525
+
526
+ ```python
527
+ scores = results.score_history
528
+ for i in range(1, len(scores)):
529
+ delta = scores[i] - scores[i-1]
530
+ if delta > 0.03: # Significant improvement
531
+ print(f"Cycle {i+1}: +{delta:.3f} (check evo-{i} -> evo-{i+1})")
532
+ ```
533
+
534
+ Then inspect those specific diffs to understand which mutations were most impactful.
535
+
536
+ ---
537
+
538
+ ## Tutorial 5: Configuring Evolution for Different Domains
539
+
540
+ Different domains require different evolution configurations. This tutorial covers how to tune the key parameters.
541
+
542
+ ### Fast-Feedback Domains (Classification, Summarization)
543
+
544
+ When tasks are cheap to evaluate and take seconds per solve:
545
+
546
+ ```python
547
+ config = ae.EvolveConfig(
548
+ batch_size=20, # More tasks per cycle = richer signal
549
+ max_cycles=30, # More cycles since they're cheap
550
+ evolve_prompts=True,
551
+ evolve_skills=True,
552
+ evolve_memory=True, # Memory helps for pattern recognition
553
+ egl_threshold=0.01, # Fine-grained convergence
554
+ egl_window=5, # Long patience window
555
+ )
556
+ ```
557
+
558
+ **Why these settings:**
559
+ - Large batches give the evolver more observations to find patterns
560
+ - Memory is valuable because the agent sees many similar tasks
561
+ - Tight convergence threshold avoids stopping too early
562
+
563
+ ### Slow-Feedback Domains (Code Generation, Multi-Step Reasoning)
564
+
565
+ When tasks take minutes per solve and evaluation is expensive:
566
+
567
+ ```python
568
+ config = ae.EvolveConfig(
569
+ batch_size=5, # Fewer tasks to keep cycle time manageable
570
+ max_cycles=15, # Fewer cycles, each more impactful
571
+ evolve_prompts=True,
572
+ evolve_skills=True,
573
+ evolve_memory=False, # Skip memory for time-sensitive tasks
574
+ egl_threshold=0.05, # Larger threshold — significant improvements only
575
+ egl_window=3, # Shorter patience
576
+ evolver_max_tokens=32768, # More tokens for complex analysis
577
+ )
578
+ ```
579
+
580
+ **Why these settings:**
581
+ - Small batches keep wall-clock time reasonable
582
+ - Memory disabled because tasks are diverse enough that past lessons rarely transfer
583
+ - Generous convergence threshold — each improvement is expensive to achieve
584
+
585
+ ### Skill-Discovery Focused Domains
586
+
587
+ When the agent's core reasoning is good but it needs domain-specific procedures:
588
+
589
+ ```python
590
+ config = ae.EvolveConfig(
591
+ batch_size=10,
592
+ max_cycles=25,
593
+ evolve_prompts=False, # Keep prompt stable
594
+ evolve_skills=True, # Focus entirely on skills
595
+ evolve_memory=True, # Memory informs skill creation
596
+ evolve_tools=False,
597
+ )
598
+ ```
599
+
600
+ Use the `AdaptiveSkillEngine` for this:
601
+
602
+ ```python
603
+ from agent_evolve.algorithms.adaptive_skill import AdaptiveSkillEngine
604
+
605
+ evolver = ae.Evolver(
606
+ agent="./my-agent",
607
+ benchmark=my_benchmark,
608
+ config=config,
609
+ engine=AdaptiveSkillEngine(config),
610
+ )
611
+ ```
612
+
613
+ ### Trajectory-Only Evolution (Blind Mode)
614
+
615
+ When you want to test if the evolver can improve the agent without seeing scores:
616
+
617
+ ```python
618
+ config = ae.EvolveConfig(
619
+ trajectory_only=True, # Hide scores from evolver
620
+ batch_size=10,
621
+ max_cycles=20,
622
+ )
623
+ ```
624
+
625
+ **Why use this:**
626
+ - Tests whether the evolver can infer quality from behavior alone
627
+ - Prevents the evolver from "gaming" the metric
628
+ - More realistic — mirrors how humans improve agents (by reading outputs, not scores)
629
+
630
+ ---
631
+
632
+ ## Tutorial 6: Multi-Stage Evolution
633
+
634
+ For complex agents, run multiple evolution stages with different configurations.
635
+
636
+ ### Stage 1: Prompt Optimization
637
+
638
+ First, optimize the core system prompt without skills:
639
+
640
+ ```python
641
+ import agent_evolve as ae
642
+
643
+ # Stage 1: Prompt-only evolution
644
+ config_prompt = ae.EvolveConfig(
645
+ batch_size=10,
646
+ max_cycles=10,
647
+ evolve_prompts=True,
648
+ evolve_skills=False, # No skills yet
649
+ evolve_memory=False,
650
+ )
651
+
652
+ evolver = ae.Evolver(
653
+ agent="./my-agent",
654
+ benchmark=my_benchmark,
655
+ config=config_prompt,
656
+ )
657
+ results_prompt = evolver.run()
658
+ print(f"After prompt optimization: {results_prompt.final_score:.3f}")
659
+ ```
660
+
661
+ ### Stage 2: Skill Discovery
662
+
663
+ Now evolve skills on top of the optimized prompt:
664
+
665
+ ```python
666
+ # Stage 2: Skill evolution (workspace retains optimized prompt)
667
+ config_skills = ae.EvolveConfig(
668
+ batch_size=10,
669
+ max_cycles=15,
670
+ evolve_prompts=False, # Lock the prompt
671
+ evolve_skills=True, # Focus on skills
672
+ evolve_memory=True,
673
+ )
674
+
675
+ # Re-create evolver pointing to the same evolved workspace
676
+ evolver_skills = ae.Evolver(
677
+ agent=evolver._workspace.path, # Use the evolved workspace
678
+ benchmark=my_benchmark,
679
+ config=config_skills,
680
+ )
681
+ results_skills = evolver_skills.run()
682
+ print(f"After skill discovery: {results_skills.final_score:.3f}")
683
+ ```
684
+
685
+ ### Stage 3: Joint Refinement
686
+
687
+ Finally, fine-tune everything together:
688
+
689
+ ```python
690
+ # Stage 3: Joint refinement
691
+ config_joint = ae.EvolveConfig(
692
+ batch_size=15, # Larger batches for fine-tuning
693
+ max_cycles=10,
694
+ evolve_prompts=True,
695
+ evolve_skills=True,
696
+ evolve_memory=True,
697
+ egl_threshold=0.01, # Very tight convergence
698
+ egl_window=5,
699
+ )
700
+
701
+ evolver_joint = ae.Evolver(
702
+ agent=evolver_skills._workspace.path,
703
+ benchmark=my_benchmark,
704
+ config=config_joint,
705
+ )
706
+ results_final = evolver_joint.run()
707
+ print(f"Final score: {results_final.final_score:.3f}")
708
+ print(f"Total improvement: {results_prompt.score_history[0]:.3f} -> {results_final.final_score:.3f}")
709
+ ```
710
+
711
+ **Why multi-stage:**
712
+ - Prompt optimization first establishes a strong baseline
713
+ - Skills built on a good prompt are more targeted
714
+ - Joint refinement catches interactions between prompt and skills
715
+ - Total cycles may be fewer than single-stage evolution to the same quality
716
+
717
+ ---
718
+
719
+ ## Tutorial 7: Workspace Organization Best Practices
720
+
721
+ ### Prompt Fragments
722
+
723
+ Instead of one monolithic system prompt, use fragments for modular evolution:
724
+
725
+ ```
726
+ my-agent/prompts/
727
+ ├── system.md # Core identity and approach
728
+ └── fragments/
729
+ ├── reasoning.md # Step-by-step reasoning instructions
730
+ ├── output_format.md # Output formatting rules
731
+ └── domain_rules.md # Domain-specific constraints
732
+ ```
733
+
734
+ Your agent can compose these:
735
+
736
+ ```python
737
+ class MyAgent(ae.BaseAgent):
738
+ def _build_system_prompt(self):
739
+ base = self.system_prompt # From prompts/system.md
740
+ workspace = AgentWorkspace(self._workspace_dir)
741
+ fragments = workspace.list_fragments()
742
+ for frag_name in fragments:
743
+ content = workspace.read_fragment(frag_name)
744
+ base += f"\n\n{content}"
745
+ return base
746
+ ```
747
+
748
+ ### Skill Organization
749
+
750
+ Skills should be broad procedures, not narrow fixes:
751
+
752
+ ```
753
+ skills/
754
+ ├── verify-solution/ # Good: broad procedure
755
+ │ └── SKILL.md
756
+ ├── handle-edge-cases/ # Good: reusable pattern
757
+ │ └── SKILL.md
758
+ └── debug-and-fix/ # Good: general workflow
759
+ └── SKILL.md
760
+ ```
761
+
762
+ **Avoid:**
763
+ ```
764
+ skills/
765
+ ├── fix-django-test-runner/ # Too narrow
766
+ ├── handle-empty-list-input/ # Too narrow
767
+ ├── use-pytest-fixtures/ # Too narrow
768
+ └── ...30 more narrow skills # Library bloat
769
+ ```
770
+
771
+ The default SkillForge engine merges overlapping skills automatically. If using a custom engine, implement merging:
772
+
773
+ ```python
774
+ def _should_merge(self, existing_skill: str, new_skill: str) -> bool:
775
+ """Check if two skills cover overlapping procedures."""
776
+ # Compare skill descriptions and content for overlap
777
+ overlap = compute_similarity(existing_skill, new_skill)
778
+ return overlap > 0.6
779
+
780
+ def _merge_skills(self, workspace, existing_name: str, new_content: str):
781
+ """Merge a new skill into an existing one."""
782
+ existing = workspace.read_skill(existing_name)
783
+ merged = llm_merge(existing, new_content) # Use LLM to combine
784
+ workspace.write_skill(existing_name, merged)
785
+ ```
786
+
787
+ ### Memory Categories
788
+
789
+ Use categories to organize episodic memory:
790
+
791
+ ```python
792
+ # During solve
793
+ self.remember("Test runner requires --no-header flag", category="tool_quirks")
794
+ self.remember("Django uses reverse URL resolution", category="domain_knowledge")
795
+ self.remember("Off-by-one in loop caused test failure", category="common_errors")
796
+
797
+ # During prompt composition
798
+ tool_memories = workspace.read_memories(category="tool_quirks", limit=10)
799
+ error_memories = workspace.read_memories(category="common_errors", limit=20)
800
+ ```
801
+
802
+ ### Git Tagging Strategy
803
+
804
+ The evolution loop creates `pre-evo-N` and `evo-N` tags. You can add custom tags:
805
+
806
+ ```bash
807
+ # Tag a particularly good checkpoint
808
+ git tag "best-v1" evo-7
809
+
810
+ # Tag before a major config change
811
+ git tag "pre-stage2" evo-10
812
+ ```
813
+
814
+ This makes it easy to compare across stages:
815
+
816
+ ```bash
817
+ git diff best-v1 evo-15 -- prompts/system.md
818
+ git diff pre-stage2 evo-20 -- skills/
819
+ ```