← ClaudeAtlas

nasde-benchmark-from-historylisted

Generate benchmark tasks from git history of the current or specified repository. Use this skill when the user wants to: - Create benchmark tasks based on real problems their team already solved (closed PRs, past commits, resolved issues) - Mine git history for good evaluation candidates - Turn a commit range or set of PRs into a NASDE benchmark - Build a regression test suite from their team's actual work Even if the user doesn't say "benchmark" — if they're talking about turning past work into evaluation tasks, or want to test AI agents against problems they've already solved, this skill applies.
NoesisVision/nasde-toolkit · ★ 10 · AI & Automation · score 79
Install: claude install-skill NoesisVision/nasde-toolkit
# NASDE Benchmark from Git History Generate NASDE benchmark tasks by mining git history. You analyze commits, diffs, and PR descriptions to identify self-contained changes that make good evaluation candidates, then generate task files with user approval. ## Prerequisites - A git repository with meaningful commit history (the repo you're currently in, or a path to another local repo) - An existing NASDE benchmark project (run `nasde init` first, or use the `nasde-benchmark-creator` skill) - If the benchmark project doesn't exist yet, create it first — this skill generates tasks, not the project scaffold ## Critical: line endings on Windows (read this first) When generating `tests/test.sh`, `solution/solve.sh`, or `environment/Dockerfile` on a Windows host, write them with **LF** line endings or every trial fails with `bash: required file not found` (the kernel reads `#!/bin/bash\r` as the shebang). See the full explanation and `.gitattributes` template in the `nasde-benchmark-creator` skill. Quick rules: - The benchmark project MUST have a `.gitattributes` enforcing `*.sh text eol=lf` and `Dockerfile text eol=lf`. `nasde init` creates this. If the existing project lacks it, **create `.gitattributes` before generating any task files**. - When writing files programmatically, use `path.write_text(content, encoding="utf-8", newline="")` — never the bare default which translates `\n`→`\r\n` on Windows. - Sanity-check after generation: `find tasks/<new-task> -name '*.sh' -o -n