[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JK2W2WVS2SX4VFCGRGG1FT":3,"skill-same:01M6JK2W2WVS2SX4VFCGRGG1FT":101},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6JK2W2WVS2SX4VFCGRGG1FT","spark-bench",null,"Run LLM evaluation harnesses (AIME 25, GPQA, LiveCodeBench v6, tau2-bench, SWE-Bench Verified via SWE-agent) against the spark-cluster from a dedicated x86 bench host (intel-nuc.tworivers). The harness runs in the spark-bench primate; only the OpenAI-compatible endpoint URL needs to change between baseline (cluster LB) and test (ad-hoc model server) runs.","jeffersonjhunt\u002Fcode-monkeys","jeffersonjhunt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2308584?v=4","01M6JK0Z7Y76REMWVB4JM2CQN9","Jefferson J Hunt","01M6JK0ZD5DFCQW66H6P76JGMG",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"spark bench","spark","host","SWE","lb","harnesses","openai-compatible","URL","ad","cluster","via","test","container","only","model","baseline","server","harness","run","change","2026-11-10 10:12:30",false,"---\nname: spark-bench\ndescription: Run LLM evaluation harnesses (AIME 25, GPQA, LiveCodeBench v6, tau2-bench, SWE-Bench Verified via SWE-agent) against the spark-cluster from a dedicated x86 bench host (intel-nuc.tworivers). The harness runs in the spark-bench primate; only the OpenAI-compatible endpoint URL needs to change between baseline (cluster LB) and test (ad-hoc model server) runs.\nlicense: Apache-2.0\nmetadata:\n  author: ooe\n  version: \"1.1.0\"\n  # These scripts are container-resident: they need openai\u002Fdatasets, the LiveCodeBench clone at\n  # \u002Fopt\u002Flivecodebench, and the sweagent binary — all of which live in the spark-bench primate, not on\n  # a dev box. Declaring it lets `make test` SKIP them with a stated reason instead of reporting five\n  # permanent FAILs, among which a real breakage would be invisible.\n  runtime: container:spark-bench\n---\n\n# spark-bench\n\nBenchmark orchestration for the spark-cluster.\n\nThree things matter and the rest follows:\n\n1. **Bench host is x86** (intel-nuc.tworivers). SWE-Bench's testbed Docker images are published as `swebench\u002Fsweb.eval.x86_64.*` — they qemu-emulate badly on aarch64. The bench harness runs here; vLLM stays on the GPU box (hutch).\n2. **Bench host needs the host Docker daemon** for SWE-Bench's sandbox spawning. Pattern is Docker-out-of-Docker — mount `\u002Fvar\u002Frun\u002Fdocker.sock`, add the matching group GID. The `spark-bench` wrapper does this automatically.\n3. **Endpoint URL switches the model under test.** Default points at the cluster LB — the **LiteLLM router** at `http:\u002F\u002Fminerva.tworivers:8888\u002Fv1`, which routes the `code` model to starsky (Qwen3.8-27B-FP8; the standalone coder was retired 2026-09). (The old HAProxy LB on `starsky:8080` was retired in June 2026; that endpoint is dead.) Override `VLLM_BASE_URL` and `SPARK_BENCH_MODEL` to point at any other OpenAI-compatible endpoint (e.g. an ad-hoc `vllm serve` on `http:\u002F\u002Fhutch.tworivers:8001\u002Fv1`).\n\n## When to Use\n\n- Establishing a baseline before swapping a served model.\n- A\u002FB-testing a candidate model against the production pin.\n- One-off bench runs (single harness, single model) for investigations.\n\nDo NOT use for:\n- Training\u002Ffine-tuning (this image only orchestrates evals, no GPU).\n- Running anything on the bench host that needs CUDA — intel-nuc is CPU-only.\n\n## Prerequisites\n\n- Passwordless SSH to `intel-nuc.tworivers` as `jhunt`, with NOPASSWD sudo.\n- `codemonkey:latest`, `miniforge3:latest`, `spark-bench:latest` built on the bench host (see [Build](#build)).\n- Cluster reachable from bench host (`curl http:\u002F\u002Fminerva.tworivers:8888\u002Fv1\u002Fmodels` returns JSON).\n- The `bin\u002Fspark-bench` workstation shim on PATH (the `setup` script symlinks this into `~\u002F.local\u002Fbin\u002F` automatically).\n\n## Build\n\nThe spark-bench primate extends `miniforge3` which extends `codemonkey`. Build all three on the bench host (intel-nuc), in order:\n\n```bash\nssh jhunt@intel-nuc.tworivers '\n  cd ~\u002FSource\u002FEdda\u002Fcode-monkeys\u002Fprimates\n  sudo make codemonkey.build FRESH=false   # ~4 min  (skip freshclam)\n  sudo make miniforge3.build               # ~1 min\n  sudo make spark-bench.build              # ~10-15 min (harness installs)\n'\n```\n\n`FRESH=false` skips the ClamAV signature update during codemonkey's build — saves ~10-15 min and is fine for a bench host that never sees external content.\n\n## Usage\n\nThe `spark-bench` shim on the workstation runs commands inside the spark-bench primate on intel-nuc, with the cluster endpoint pre-wired:\n\n```bash\n# Interactive shell inside the container (default endpoint = cluster LB)\nspark-bench\n\n# One-shot: hello completion smoke test\nspark-bench python -c '\nimport os, openai\nc = openai.OpenAI(base_url=os.environ[\"OPENAI_API_BASE\"], api_key=os.environ[\"OPENAI_API_KEY\"])\nr = c.chat.completions.create(\n    model=os.environ[\"SPARK_BENCH_MODEL\"],\n    messages=[{\"role\": \"user\", \"content\": \"Say hello in one word.\"}],\n    max_tokens=8,\n)\nprint(r.choices[0].message.content)\n'\n\n# Point at the GLM test endpoint instead of the cluster LB\nVLLM_BASE_URL=http:\u002F\u002Fhutch.tworivers:8001\u002Fv1 SPARK_BENCH_MODEL=glm-4.7-flash \\\n  spark-bench python -c '...'\n```\n\nResults land in `\u002Fresults\u002F` inside the container, which is bind-mounted from `~\u002Fspark-bench\u002Fresults\u002F` on the bench host. Cache (HF datasets, SWE-Bench testbed metadata, pip cache) lives at `\u002Fcache\u002F` → `~\u002Fspark-bench\u002Fcache\u002F`.\n\n## Harness Invocations\n\nAll commands assume `spark-bench` shim on PATH; replace `VLLM_BASE_URL` + `SPARK_BENCH_MODEL` to switch endpoints.\n\n### AIME 25 (math, 30 problems, ~30 min)\n\n```bash\nspark-bench python -m \u003Crunner>\n```\n\n*(harness runner TBD — likely a custom 30-problem script vs lighteval; pin once first run validates.)*\n\n### GPQA Diamond (no tools, 198 questions, ~1 h)\n\n```bash\nspark-bench python -m \u003Crunner>\n```\n\n### LiveCodeBench v6\n\n```bash\n# subset: --debug = deterministic first 15 problems; --n = SAMPLES PER PROBLEM (not a subset!)\nspark-bench python \u002Fopt\u002Fskill\u002Fscripts\u002Frun-lcb.py --debug --n 1\nspark-bench python \u002Fopt\u002Fskill\u002Fscripts\u002Frun-lcb.py            # full v6 set, 1 sample per problem\n```\n\n### tau2-bench\n\n```bash\nspark-bench python -m tau2.run --domain retail --num_tasks 20 --model \"$SPARK_BENCH_MODEL\"\n```\n\n### SWE-Bench Verified (via SWE-agent)\n\n```bash\nspark-bench sweagent run-batch \\\n  --instances.type swe_bench --instances.subset verified --instances.split test \\\n  --instances.shuffle=True --instances.evaluate=True --instances.deployment.docker_args=--privileged \\\n  --agent.model.name \"openai\u002F$SPARK_BENCH_MODEL\" --agent.model.api_base \"$OPENAI_API_BASE\" \\\n  --num_workers 1\n```\n\n(`--num_workers 1` because intel-nuc has 4 cores; bumping to 2 is OK but expect saturation. Full Verified set on intel-nuc serial ≈ 2-3 days; use `--instances.slice=:20` for a subset first.)\n\n## Recovery \u002F Common Pitfalls\n\n- **Harness refs and `anthropic` are pinned** in `spark-bench.dockerfile` (`LCB_REF`, `TAU2_REF`,\n  `ANTHROPIC_VERSION`) to the 2026-08-30 image. Bumping any of them changes the harness itself, so\n  re-run the baseline side of every comparison you care about after a bump.\n- **`exec: \"python\": executable file not found in $PATH`** — the image's python lives in the\n  `spark-bench-env` conda env, which only an *interactive* zsh activates (conda init in `~\u002F.zshrc`).\n  Images built before the `ENV PATH=\u002Fopt\u002Fminiforge3\u002Fenvs\u002Fspark-bench-env\u002Fbin:…` line in\n  `spark-bench.dockerfile` need the command wrapped: `spark-bench \u002Fbin\u002Fzsh -ic 'python …'`\n  (or the explicit `\u002Fopt\u002Fminiforge3\u002Fenvs\u002Fspark-bench-env\u002Fbin\u002Fpython`). Rebuild to drop the wrapper —\n  but not in the middle of an A\u002FB pair; the bench image must be identical on both sides.\n\n- **`docker: permission denied`** — `--group-add` failed. Run `stat -c '%g' \u002Fvar\u002Frun\u002Fdocker.sock` on the host to find the actual GID; export `SPARK_BENCH_DOCKER_GID` (not implemented yet) or fall back to `sudo` inside the container.\n- **SWE-Bench testbed image pull is slow\u002Ffails** — first run downloads ~50-100 GB of `swebench\u002Fsweb.eval.x86_64.*` images. Pre-pull manually on the bench host with `docker pull swebench\u002Fsweb.eval.x86_64.\u003Cproblem_id>` if needed.\n- **Cluster endpoint errors mid-bench** — LiteLLM has no healthy backend for the requested `model` (the replica is draining for a build, etc.); with a single coding replica there is no failover, so this is a hard outage until it returns. Check `curl http:\u002F\u002Fminerva:8888\u002Fv1\u002Fmodels` and the replica's own `curl http:\u002F\u002Fhutch:8000\u002Fhealth`, then resume once vLLM is back up.\n- **Out of disk on intel-nuc** — SWE-Bench testbed cache + cloned repos can grow to ~150 GB. `rm -rf ~\u002Fspark-bench\u002Fcache\u002Fswebench` to reset.\n\n## Results Layout\n\n```\n~\u002Fspark-bench\u002Fresults\u002F\n  \u003CYYYYMMDD-HHMMSS>-\u003Cmodel>-\u003Charness>\u002F\n    summary.json   # one-line headline metric\n    raw\u002F           # per-problem outputs, logs\n```\n\nFor analysis, `rsync` snapshots back to the workstation:\n\n```bash\nrsync -av jhunt@intel-nuc.tworivers:~\u002Fspark-bench\u002Fresults\u002F .\u002Fbench-results\u002F\n```\n\n## Dependencies\n\n- Build-time: docker (≥24), git\n- Runtime: bash, ssh, the `bin\u002Fspark-bench` shim, intel-nuc reachable on the LAN\n\n## Agent Instructions\n\nWhen the user asks to run a benchmark or compare two models:\n\n1. Confirm which endpoint(s) and model name(s) — the cluster LB (LiteLLM on `minerva:8888`, model `code`) is the default baseline; test endpoints are ad-hoc per investigation.\n2. Default to **subsets first** (e.g. `--instances.slice=:20` for SWE-Bench, `--num_tasks 20` for tau2-bench) — full runs take hours-to-days on the 4-core bench host.\n3. After each run, summarise the headline metric and save raw output for rsync-back. Do not commit raw output to the repo.\n4. For A\u002FB comparisons, run the **same harness invocation** against both endpoints back-to-back so sampling parameters and prompt templates are identical.\n","# spark-bench\n\nBenchmark orchestration for the spark-cluster.\n\nThree things matter and the rest follows:\n\n1. **Bench host is x86** (intel-nuc.tworivers). SWE-Bench's testbed Docker images are published as `swebench\u002Fsweb.eval.x86_64.*` — they qemu-emulate badly on aarch64. The bench harness runs here; vLLM stays on the GPU box (hutch).\n2. **Bench host needs the host Docker daemon** for SWE-Bench's sandbox spawning. Pattern is Docker-out-of-Docker — mount `\u002Fvar\u002Frun\u002Fdocker.sock`, add the matching group GID. The `spark-bench` wrapper does this automatically.\n3. **Endpoint URL switches the model under test.** Default points at the cluster LB — the **LiteLLM router** at `http:\u002F\u002Fminerva.tworivers:8888\u002Fv1`, which routes the `code` model to starsky (Qwen3.8-27B-FP8; the standalone coder was retired 2026-09). (The old HAProxy LB on `starsky:8080` was retired in June 2026; that endpoint is dead.) Override `VLLM_BASE_URL` and `SPARK_BENCH_MODEL` to point at any other OpenAI-compatible endpoint (e.g. an ad-hoc `vllm serve` on `http:\u002F\u002Fhutch.tworivers:8001\u002Fv1`).\n\n## When to Use\n\n- Establishing a baseline before swapping a served model.\n- A\u002FB-testing a candidate model against the production pin.\n- One-off bench runs (single harness, single model) for investigations.\n\nDo NOT use for:\n- Training\u002Ffine-tuning (this image only orchestrates evals, no GPU).\n- Running anything on the bench host that needs CUDA — intel-nuc is CPU-only.\n\n## Prerequisites\n\n- Passwordless SSH to `intel-nuc.tworivers` as `jhunt`, with NOPASSWD sudo.\n- `codemonkey:latest`, `miniforge3:latest`, `spark-bench:latest` built on the bench host (see [Build](#build)).\n- Cluster reachable from bench host (`curl http:\u002F\u002Fminerva.tworivers:8888\u002Fv1\u002Fmodels` returns JSON).\n- The `bin\u002Fspark-bench` workstation shim on PATH (the `setup` script symlinks this into `~\u002F.local\u002Fbin\u002F` automatically).\n\n## Build\n\nThe spark-bench primate extends `miniforge3` which extends `codemonkey`. Build all three on the bench host (intel-nuc), in order:\n\n```bash\nssh jhunt@intel-nuc.tworivers '\n  cd ~\u002FSource\u002FEdda\u002Fcode-monkeys\u002Fprimates\n  sudo make codemonkey.build FRESH=false   # ~4 min  (skip freshclam)\n  sudo make miniforge3.build               # ~1 min\n  sudo make spark-bench.build              # ~10-15 min (harness installs)\n'\n```\n\n`FRESH=false` skips the ClamAV signature update during codemonkey's build — saves ~10-15 min and is fine for a bench host that never sees external content.\n\n## Usage\n\nThe `spark-bench` shim on the workstation runs commands inside the spark-bench primate on intel-nuc, with the cluster endpoint pre-wired:\n\n```bash\n# Interactive shell inside the container (default endpoint = cluster LB)\nspark-bench\n\n# One-shot: hello completion smoke test\nspark-bench python -c '\nimport os, openai\nc = openai.OpenAI(base_url=os.environ[\"OPENAI_API_BASE\"], api_key=os.environ[\"OPENAI_API_KEY\"])\nr = c.chat.completions.create(\n    model=os.environ[\"SPARK_BENCH_MODEL\"],\n    messages=[{\"role\": \"user\", \"content\": \"Say hello in one word.\"}],\n    max_tokens=8,\n)\nprint(r.choices[0].message.content)\n'\n\n# Point at the GLM test endpoint instead of the cluster LB\nVLLM_BASE_URL=http:\u002F\u002Fhutch.tworivers:8001\u002Fv1 SPARK_BENCH_MODEL=glm-4.7-flash \\\n  spark-bench python -c '...'\n```\n\nResults land in `\u002Fresults\u002F` inside the container, which is bind-mounted from `~\u002Fspark-bench\u002Fresults\u002F` on the bench host. Cache (HF datasets, SWE-Bench testbed metadata, pip cache) lives at `\u002Fcache\u002F` → `~\u002Fspark-bench\u002Fcache\u002F`.\n\n## Harness Invocations\n\nAll commands assume `spark-bench` shim on PATH; replace `VLLM_BASE_URL` + `SPARK_BENCH_MODEL` to switch endpoints.\n\n### AIME 25 (math, 30 problems, ~30 min)\n\n```bash\nspark-bench python -m \u003Crunner>\n```\n\n*(harness runner TBD — likely a custom 30-problem script vs lighteval; pin once first run validates.)*\n\n### GPQA Diamond (no tools, 198 questions, ~1 h)\n\n```bash\nspark-bench python -m \u003Crunner>\n```\n\n### LiveCodeBench v6\n\n```bash\n# subset: --debug = deterministic first 15 problems; --n = SAMPLES PER PROBLEM (not a subset!)\nspark-bench python \u002Fopt\u002Fskill\u002Fscripts\u002Frun-lcb.py --debug --n 1\nspark-bench python \u002Fopt\u002Fskill\u002Fscripts\u002Frun-lcb.py            # full v6 set, 1 sample per problem\n```\n\n### tau2-bench\n\n```bash\nspark-bench python -m tau2.run --domain retail --num_tasks 20 --model \"$SPARK_BENCH_MODEL\"\n```\n\n### SWE-Bench Verified (via SWE-agent)\n\n```bash\nspark-bench sweagent run-batch \\\n  --instances.type swe_bench --instances.subset verified --instances.split test \\\n  --instances.shuffle=True --instances.evaluate=True --instances.deployment.docker_args=--privileged \\\n  --agent.model.name \"openai\u002F$SPARK_BENCH_MODEL\" --agent.model.api_base \"$OPENAI_API_BASE\" \\\n  --num_workers 1\n```\n\n(`--num_workers 1` because intel-nuc has 4 cores; bumping to 2 is OK but expect saturation. Full Verified set on intel-nuc serial ≈ 2-3 days; use `--instances.slice=:20` for a subset first.)\n\n## Recovery \u002F Common Pitfalls\n\n- **Harness refs and `anthropic` are pinned** in `spark-bench.dockerfile` (`LCB_REF`, `TAU2_REF`,\n  `ANTHROPIC_VERSION`) to the 2026-08-30 image. Bumping any of them changes the harness itself, so\n  re-run the baseline side of every comparison you care about after a bump.\n- **`exec: \"python\": executable file not found in $PATH`** — the image's python lives in the\n  `spark-bench-env` conda env, which only an *interactive* zsh activates (conda init in `~\u002F.zshrc`).\n  Images built before the `ENV PATH=\u002Fopt\u002Fminiforge3\u002Fenvs\u002Fspark-bench-env\u002Fbin:…` line in\n  `spark-bench.dockerfile` need the command wrapped: `spark-bench \u002Fbin\u002Fzsh -ic 'python …'`\n  (or the explicit `\u002Fopt\u002Fminiforge3\u002Fenvs\u002Fspark-bench-env\u002Fbin\u002Fpython`). Rebuild to drop the wrapper —\n  but not in the middle of an A\u002FB pair; the bench image must be identical on both sides.\n\n- **`docker: permission denied`** — `--group-add` failed. Run `stat -c '%g' \u002Fvar\u002Frun\u002Fdocker.sock` on the host to find the actual GID; export `SPARK_BENCH_DOCKER_GID` (not implemented yet) or fall back to `sudo` inside the container.\n- **SWE-Bench testbed image pull is slow\u002Ffails** — first run downloads ~50-100 GB of `swebench\u002Fsweb.eval.x86_64.*` images. Pre-pull manually on the bench host with `docker pull swebench\u002Fsweb.eval.x86_64.\u003Cproblem_id>` if needed.\n- **Cluster endpoint errors mid-bench** — LiteLLM has no healthy backend for the requested `model` (the replica is draining for a build, etc.); with a single coding replica there is no failover, so this is a hard outage until it returns. Check `curl http:\u002F\u002Fminerva:8888\u002Fv1\u002Fmodels` and the replica's own `curl http:\u002F\u002Fhutch:8000\u002Fhealth`, then resume once vLLM is back up.\n- **Out of disk on intel-nuc** — SWE-Bench testbed cache + cloned repos can grow to ~150 GB. `rm -rf ~\u002Fspark-bench\u002Fcache\u002Fswebench` to reset.\n\n## Results Layout\n\n```\n~\u002Fspark-bench\u002Fresults\u002F\n  \u003CYYYYMMDD-HHMMSS>-\u003Cmodel>-\u003Charness>\u002F\n    summary.json   # one-line headline metric\n    raw\u002F           # per-problem outputs, logs\n```\n\nFor analysis, `rsync` snapshots back to the workstation:\n\n```bash\nrsync -av jhunt@intel-nuc.tworivers:~\u002Fspark-bench\u002Fresults\u002F .\u002Fbench-results\u002F\n```\n\n## Dependencies\n\n- Build-time: docker (≥24), git\n- Runtime: bash, ssh, the `bin\u002Fspark-bench` shim, intel-nuc reachable on the LAN\n\n## Agent Instructions\n\nWhen the user asks to run a benchmark or compare two models:\n\n1. Confirm which endpoint(s) and model name(s) — the cluster LB (LiteLLM on `minerva:8888`, model `code`) is the default baseline; test endpoints are ad-hoc per investigation.\n2. Default to **subsets first** (e.g. `--instances.slice=:20` for SWE-Bench, `--num_tasks 20` for tau2-bench) — full runs take hours-to-days on the 4-core bench host.\n3. After each run, summarise the headline metric and save raw output for rsync-back. Do not commit raw output to the repo.\n4. For A\u002FB comparisons, run the **same harness invocation** against both endpoints back-to-back so sampling parameters and prompt templates are identical.\n",{"name":5,"license":15,"metadata":44,"description":7},{"author":45,"runtime":46,"version":47},"ooe","container:spark-bench","1.1.0","master","dbe7ba1a341696481a7f736baf501fe0a6b0d449","007\u002Fskills\u002Fspark-bench",0,"https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys","https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt","2026-10-22 00:14:11",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add jeffersonjhunt\u002Fcode-monkeys --skill spark-bench",{"tool":61,"command":62},"bunx","bunx skills add jeffersonjhunt\u002Fcode-monkeys --skill spark-bench",{"tool":64,"command":65},"pnpm","pnpm dlx skills add jeffersonjhunt\u002Fcode-monkeys --skill spark-bench","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002FSKILL.md",true,[69,75,81,85,89,93,97],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"CHANGELOG.md","REFERENCE","参考文档",162,"https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002FCHANGELOG.md",{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"scripts\u002Frun-aime25.py","SCRIPT","脚本",8732,"https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002Fscripts\u002Frun-aime25.py",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"scripts\u002Frun-gpqa.py",8483,"https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002Fscripts\u002Frun-gpqa.py",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002Frun-lcb.py",6828,"https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002Fscripts\u002Frun-lcb.py",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Frun-swebench.py",6581,"https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002Fscripts\u002Frun-swebench.py",{"path":94,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":95,"sourceHtmlUrl":96},"scripts\u002Frun-tau2.py",8137,"https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002Fscripts\u002Frun-tau2.py",{"path":98,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":99,"sourceHtmlUrl":100},"swebench\u002Fdefault_backticks_submit_strict.yaml",5173,"https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-bench\u002Fswebench\u002Fdefault_backticks_submit_strict.yaml",[102,127,152,176,201,218],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":39},"01M6JK30ZK7FPRR7T7G0H98CBF","spark-build","Build the cuda-* primate images (cuda-llama-cpp, cuda-comfy, cuda-vllm — the shared base for g.deceiver's six vLLM services) on a Blackwell GB10, freeing that box's unified memory first by stopping whatever it runs, then restarting it. NOTE the standalone coding cluster (qwen3-coder-next) was RETIRED 2026-09-05, so a \"drain\" is no longer a coding outage — it's a g.deceiver-service outage (hutch = memory stack; starsky = the live 27B brain, never build there mid-stream). Checks memory BEFORE stopping anything; --allow-outage \u002F --skip-drain control the trade.","https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fspark-build\u002FSKILL.md",[],[20,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,28,124,125,126],"build","spark build","memory","cpp","services","vLLM","first","stack","never","images","next","qwen3","trade","shared","control","drain","standalone","for",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":39},"01M6JK2NCXEKJXPFQ5XMXY3TG7","secret-ops","Decrypt\u002Fencrypt this project's SOPS+age secrets and manage the private hemlighet repo. Use whenever a task reads or changes a secret — sops, age, vault, hemlighet, a *.sops file, personal\u002F* dotfiles. Crypto runs on the configured secret host over ssh, NOT inside a primate. Host\u002Fidentity come from env or ~\u002F.config\u002Fsecret-ops.conf (never hardcoded here).","https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fsecret-ops\u002FSKILL.md",[],[134,135,136,137,138,139,140,141,142,143,117,144,145,146,147,148,149,21,150,151],"ops","secret ops","config","encrypt","file","vault","secrets","dotfiles","repo","use","manage","task","crypto","project","age","env","sops","changes",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":39},"01M6JK2DY9DJYPPS8C0QB291NV","sdlc","The default software development lifecycle every agent follows — intake, plan, isolate, implement, verify, review, land, deploy, observe, release. Use at the start of any coding task, and whenever deciding whether work is ready to deploy or ready to merge.","https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fsdlc\u002FSKILL.md",[],[154,159,160,161,162,163,164,165,166,167,168,143,169,170,171,172,145,173,174,175],"review","implement","merge","development","release","intake","lifecycle","verify","plan","work","ready","observe","default","development lifecycle","software development","software","at",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":187,"publishedAt":39},"01M6JK277C0HA9JGZSSR6Z5QF2","review-adversarial","Adversarial code review with structured findings and a review loop. Use when asked to critically review code, diffs, or design docs with an adversarial mindset.","https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Freview-adversarial\u002FSKILL.md",[182],{"categoryNo":183,"categoryName":184,"taxonomyType":185,"taxonomyTypeDesc":186},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[159,188,189,190,191,192,193,194,195,196,143,197,198,199,200],"review adversarial","code review","design","docs","diffs","code","loop","review code","review loop","mindset","structured","design docs","with",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":39},"01M6JK23MZG8D9WNSWHCJDX9YE","math-fibonacci","Create a fibonacci sequence, as a list, as ascii art to display the divine proportions, etc...","https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fmath-fibonacci\u002FSKILL.md",[],[208,209,210,211,212,213,214,215,216,217],"math","math fibonacci","create","list","ascii art","Art","as","ascii","display","sequence",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":222,"categories":223,"keywords":224,"publishedAt":39},"01M6JK1YKTX26HATGPE7B8FWJZ","img-sixel","Display images as SIXEL graphics in the terminal or convert SIXEL files to PNG. Use when asked to show an image inline, render graphics in a terminal, or convert between SIXEL and PNG formats.","https:\u002F\u002Fgithub.com\u002Fjeffersonjhunt\u002Fcode-monkeys\u002Fblob\u002Fmaster\u002F007\u002Fskills\u002Fimg-sixel\u002FSKILL.md",[],[225,226,227,228,229,230,231,143,118,232,233,214,234,235,216,236],"img","img sixel","image","terminal","graphics","convert","png","files","show","render","formats","inline"]