Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
17c4231
Enhance multi-codex support:
seyyah Mar 15, 2026
fc14a0a
Refactor benchmark from Claude-only to support multiple AI coding
seyyah Mar 15, 2026
bfb5999
Add scripts for benchmarking, report generation, and figure creation
seyyah Mar 15, 2026
2956673
Add MiniGit version 1.0 and 2.0 specifications, initial test scripts,…
seyyah Mar 15, 2026
147740a
Add dry-run results for minigit problem in gemini codex
seyyah Mar 15, 2026
c3dd998
Add checkout and reset commands to minigit implementation
seyyah Mar 15, 2026
e5f1f08
contributors
seyyah Mar 15, 2026
c57173c
Add section for similar projects in README
seyyah Mar 16, 2026
714aac0
feat: Add automated Windows environment installer script (install_win…
Ahmetngz Mar 18, 2026
a32133c
Merge pull request #3 from Ahmetngz/feat/windows-auto-installer
seyyah Mar 18, 2026
90d4b29
Update README.md
seyyah Mar 18, 2026
b7ea4e1
feat: Add cross-platform environment setup scripts and update README
Ahmetngz Mar 18, 2026
4ab0381
Merge pull request #4 from ahmettngz/Windows-MAC-auto-installer-update
seyyah Mar 19, 2026
b006076
feat: Add Aider Gemini
Ahmetngz Mar 19, 2026
3fa8140
codexes.yml reviewed and fixed
Ahmetngz Mar 21, 2026
ee4e270
Merge pull request #5 from ahmettngz/Aider
seyyah Mar 21, 2026
cf6ed9b
.
seyyah Mar 23, 2026
7a90ecc
migrate new dir struct
seyyah Mar 23, 2026
fe733b3
add files
seyyah Mar 23, 2026
015186c
move files
seyyah Mar 23, 2026
a48fbbd
Add Aider codex adapter with Ollama and Gemini free tier support
cerenazar Mar 17, 2026
e5e8b5a
add Groq Codex adapter
berkevnl Mar 23, 2026
f5fc45c
Add Groq Codex configuration to codexes.yml
berkevnl Mar 23, 2026
bead3fb
Add GROQ API key to .env.example
berkevnl Mar 23, 2026
507b554
add benchmark artifacts for Groq - Llama 3.3 70B
berkevnl Mar 23, 2026
dab14bd
Load environment variables using dotenv
berkevnl Mar 23, 2026
66aef5d
Merge pull request #6 from berkevnl/main
seyyah Mar 24, 2026
6019372
Add Groq API adapter to README
berkevnl Mar 24, 2026
a0ecec2
Update Groq codex for Kimi K2 model
berkevnl Mar 24, 2026
f19a8b8
Update version commands for Go and TypeScript
berkevnl Mar 24, 2026
d4003d5
Implement results.json fallback and update report format
berkevnl Mar 24, 2026
9179271
Update model for Groq codex in codexes.yml
berkevnl Mar 24, 2026
7ce6ed4
feat: Replace Groq artifacts with new benchmark results
berkevnl Mar 24, 2026
6b3e592
Enhance Groq API adapter configuration
berkevnl Mar 25, 2026
3657101
Refactor Groq codex for improved configuration and API
berkevnl Mar 25, 2026
fe491cc
Implement code saving and extraction methods
berkevnl Mar 25, 2026
e22ac73
Refactor GroqCodex to use instance variable for API URL
berkevnl Mar 25, 2026
cb0ad9b
Update API URL for Groq API adapter
berkevnl Mar 25, 2026
25d61c0
Merge pull request #7 from berkevnl/main
seyyah Mar 25, 2026
8249a07
Create minitimer_SPEC-v1.1.txt
AliEfeAkin-57 Mar 25, 2026
c745f44
Update codexes configuration with descriptions and enable flags
berkevnl Mar 25, 2026
a204be3
Refactor AiderCodex for improved configuration and error handling
berkevnl Mar 25, 2026
e80fb77
Refactor BaseCodex for improved clarity and functionality
berkevnl Mar 25, 2026
04b7f2c
Enhance ClaudeCodex with better CLI command handling
berkevnl Mar 25, 2026
9dd3d26
Optimize GeminiCodex initialization and API calls
berkevnl Mar 25, 2026
b5a26d0
Refactor GroqCodex for better configuration and error handling
berkevnl Mar 25, 2026
5ade346
Refactor OpenAICodex for chat completions support
berkevnl Mar 25, 2026
ed25973
Update API key comments and instructions in .env.example
berkevnl Mar 25, 2026
ffafb10
Merge pull request #8 from berkevnl/main
seyyah Mar 25, 2026
05cb1ec
feat: add mini-grades v0 baseline implementation
berkevnl Mar 26, 2026
0db70ca
Remove minigrades directory for restructuring
berkevnl Mar 26, 2026
8e1c365
Add MiniGrades v0 baseline implementation
berkevnl Mar 26, 2026
4328ef5
Add Ollama/qwen2.5-coder-7b benchmark artifacts under correct variant…
cerenazar Mar 25, 2026
e9d0fad
Revise SPEC.txt for mini-grades v1
berkevnl Mar 26, 2026
76f4167
Enhance minigrades with advanced features and error handling
berkevnl Mar 26, 2026
72403a9
Refactor test suite for v1 core logic and structured reporting
berkevnl Mar 26, 2026
29a0dd7
Merge branch 'main' into feature/aider-codex
berkevnl Mar 26, 2026
653d4d7
Merge pull request #2 from cerenazr/feature/aider-codex
berkevnl Mar 26, 2026
72847d1
Add: New problem added
Ahmetngz Mar 27, 2026
1459d19
Fixing
Ahmetngz Mar 27, 2026
09d08d2
Add and Fix: New problem added and README fixed.
Ahmetngz Mar 27, 2026
e7eea24
Added: necessery files fixed and added
Ahmetngz Mar 27, 2026
67a9e4c
Add v1/v2 specs and tests with problem.json configuration
berkevnl Mar 27, 2026
da41c39
Revise README.md with new problem: MiniGrades
berkevnl Mar 27, 2026
3cd1153
minitimer_SPEC v1.1txt
AliEfeAkin-57 Mar 27, 2026
8c44915
Delete minitimer_SPEC-v1.1.txt
AliEfeAkin-57 Mar 27, 2026
ad8eca7
Merge pull request #9 from berkevnl/main
berkevnl Mar 27, 2026
b53929b
Refactor: Simplify spec-v1 to core skeleton features
berkevnl Mar 27, 2026
0fd2f4e
Refactor: Evolve spec-v2 with advanced features
berkevnl Mar 27, 2026
495c6c2
Refactor: Simplify test-v1 for skeleton validation
berkevnl Mar 27, 2026
efa5276
Refactor: Evolve test-v2 with advanced scenarios
berkevnl Mar 27, 2026
dd572f7
DRY codebase and migrate Karpathy/autoresearch: program form
seyyah Mar 27, 2026
cf15c9a
enhance minigrades
seyyah Mar 27, 2026
7dd3d14
feat: Add GPT-4o-mini benchmark artifacts, update codex configuration…
seyyah Mar 27, 2026
c7807f7
Merge branch 'main' into miniplaylist
seyyah Mar 27, 2026
03210eb
Merge pull request #14 from ahmettngz/miniplaylist
seyyah Mar 27, 2026
1c464dd
refactor: Generalize miniplaylist problem definition and test scripts…
seyyah Mar 27, 2026
36ed012
feat: introduce AI Native Language Initiative with a rewritten README…
seyyah Mar 27, 2026
81ded3a
feat: Introduce `bin/which-language` CLI to consolidate benchmarking,…
seyyah Mar 27, 2026
398f377
refactor: Implement a unified `bin/which-language` CLI, externalize l…
seyyah Mar 27, 2026
00f5601
Update and rename problems/minitimer_SPEC v1.1txt to problems/minitim…
AliEfeAkin-57 Mar 28, 2026
03253de
problem.json
AliEfeAkin-57 Mar 28, 2026
fc83a0a
Test-v1.sh
AliEfeAkin-57 Mar 28, 2026
c0e2dc9
Test-v2.sh
AliEfeAkin-57 Mar 28, 2026
cec806e
SPEC v1.txt
AliEfeAkin-57 Mar 28, 2026
1d6c431
Initialize mini-inventory project with commands overview
TunahanCnrYildiz Mar 29, 2026
667aa64
Delete problems/miniinventory
TunahanCnrYildiz Mar 29, 2026
489459c
Add files via upload
TunahanCnrYildiz Mar 29, 2026
db486a2
Improve validation and data consistency in SPEC
TunahanCnrYildiz Mar 29, 2026
e48a9ec
Implement V1 features and update README
TunahanCnrYildiz Mar 29, 2026
fa13d71
Merge pull request #15 from AliEfeAkin-57/main
seyyah Mar 29, 2026
ae6455c
Create .gitkeep
utkuhanakar Mar 30, 2026
ce26031
Project: mini-scoreboard - Utkuhan Akar
utkuhanakar Mar 30, 2026
a7aae3c
Delete problems/mini-scoreboard/.gitkeep
utkuhanakar Mar 30, 2026
2325f08
Rename README.txt to README.md
utkuhanakar Mar 30, 2026
4389c52
Update README.md
utkuhanakar Mar 30, 2026
fa1d324
Update README.md
utkuhanakar Mar 30, 2026
f3e904e
Create SPEC.txt
HuzursuzAdam Mar 30, 2026
961f76f
Add project overview and command specifications
HuzursuzAdam Mar 30, 2026
44a97c7
Update author name and project date in SPEC.txt
HuzursuzAdam Mar 30, 2026
85adfd4
Delete problems/mini-library/SPEC.txt
HuzursuzAdam Mar 31, 2026
824070e
Add problem.json for Mini-library project
HuzursuzAdam Mar 31, 2026
8236cc8
Add initial implementation of mini-library
HuzursuzAdam Mar 31, 2026
41558a3
Update student name in mini-library test spec
HuzursuzAdam Mar 31, 2026
fcbc075
Add files via upload
HuzursuzAdam Mar 31, 2026
a8bdbee
Update student information in Solution_v1.py
HuzursuzAdam Mar 31, 2026
4e9355d
Change student name and ID in test_spec_v1.py
HuzursuzAdam Mar 31, 2026
e6c97dd
Update student ID in test specification
HuzursuzAdam Mar 31, 2026
9621034
Rename solution_v0 to solution_v0.py
HuzursuzAdam Mar 31, 2026
6964c03
Rename SPEC v1.txt to SPEC-v1.txt
berkevnl Mar 31, 2026
2b36b6c
Rename SPEC v2.txt to SPEC-v2.txt
berkevnl Mar 31, 2026
9c672f2
[problem] Restructure mini-library to match standard problem format
mustafa Mar 31, 2026
5b323bd
Create problem.json
utkuhanakar Mar 31, 2026
da506de
Delete problems/mini-scoreboard directory
utkuhanakar Mar 31, 2026
638b2e7
Create SPEC-v1.txt
utkuhanakar Mar 31, 2026
97de4e1
Create SPEC-v2.txt
utkuhanakar Mar 31, 2026
7387c85
Create test-v1.sh
utkuhanakar Mar 31, 2026
b7272ed
Create test-v2.sh
utkuhanakar Mar 31, 2026
82cdfc1
Update SPEC-v2.txt
utkuhanakar Apr 1, 2026
3313016
Update test-v2.sh
utkuhanakar Apr 1, 2026
5b96455
Merge pull request #42 from utkuhanakar/main
berkevnl Apr 1, 2026
e916ea5
[problem] Fix v2 files to include all v1 content plus v2 additions
mustafa Apr 1, 2026
5d90f71
Update project list in README.md
berkevnl Apr 1, 2026
36d957b
Fix formatting for minitimer and miniscoreboard entries
berkevnl Apr 1, 2026
2d987fa
Merge pull request #43 from HuzursuzAdam/main
berkevnl Apr 1, 2026
cadfba1
feat: Add mini-inventory benchmark problem
TunahanCnrYildiz Apr 1, 2026
b7edb1e
Merge pull request #52 from TunahanCnrYildiz/main
berkevnl Apr 1, 2026
f9e4b74
Update project list in README
berkevnl Apr 1, 2026
a349284
Update README.md
251478025-coder Apr 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Get your API key from https://ai.google.dev/
GOOGLE_API_KEY=your-api-key-here

# Get your API key from https://console.groq.com/
GROQ_API_KEY=your-api-key-here

# Get your API key from https://platform.openai.com/
OPENAI_API_KEY=your-api-key-here
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
generated/
logs/
artifacts/generated/
.env
config/codexes.local.yml
_doc/
140 changes: 140 additions & 0 deletions AGENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Agent & Contributor Protocol

> Rules of engagement for human and AI (codex) contributors.
> Read [program.md](./program.md) first for the high-level iteration loop.

---

## Golden rule

**Every session must leave the project better documented than it found it.**

After each iteration (experiment run, code change, bug fix):

1. **Append** a dated entry to [walkthrough.md](./walkthrough.md)
2. **Update** [plan.md](./plan.md) — mark completed items, add new next steps

This is **mandatory**, not optional. Skipping documentation means the next contributor (human or AI) starts blind.

---

## Session protocol

### Start of session

```
1. Read program.md → understand the current research question
2. Read plan.md → see active experiments + backlog
3. Read walkthrough.md → see recent results + decisions
4. Pick a task from plan.md and mark it [/] (in progress)
```

### During session

```
5. Do the work (run benchmarks, add adapters, fix bugs, add problems)
6. Run tests: `bin/which-language run <codex> <problem> --lang <lang> --trials 1`
7. Observe metrics: time, cost, LOC, pass rate
```

### End of session

```
8. Append walkthrough.md entry (template below)
9. Update plan.md: mark completed [x], add new items [ ], note blockers
10. Commit with descriptive message
```

---

## Walkthrough entry template

```markdown
## YYYY-MM-DD — [Brief title]

**Contributor**: [human / codex-name]
**What was done**: [1–3 sentences]
**Codex/Problem/Language**: [e.g., gemini / minigit / python]
**Key metrics**: [time, cost, LOC, pass rate — if applicable]
**Observations**: [what worked, what didn't]
**Decisions made**: [any design choices or trade-offs]
**Next**: [immediate next step, links to plan.md items]
```

---

## Code conventions

### Ruby (benchmark runner + adapters)

- `# frozen_string_literal: true` at the top of every `.rb` file
- Codex adapters extend `BaseCodex` (`lib/codexes/base_codex.rb`)
- Required interface: `run_generation(prompt, dir:, log_path:)`, `version`
- Optional interface: `warmup(dir)`, `parse_metrics(raw_output)`
- Use `config/codexes.local.yml` for secrets — never commit API keys

### Python (plot.py)

- Python 3.10+, stdlib + matplotlib

### Problem layout

```
problems/<problem>/
problem.json # metadata + prompt templates
SPEC-v1.txt # v1 specification
SPEC-v2.txt # v2 specification (extends v1)
test-v1.sh # v1 test suite
test-v2.sh # v2 test suite
```

---

## New codex adapter checklist

When adding support for a new AI coding system:

- [ ] Create `lib/codexes/<name>_codex.rb` extending `BaseCodex`
- [ ] Implement `run_generation(prompt, dir:, log_path:)`
- [ ] Implement `version`
- [ ] Implement `parse_metrics(raw_output)` if the API returns token/cost data
- [ ] Add configuration block to `config/codexes.yml`
- [ ] Add API key handling (env var expansion in config)
- [ ] Test dry-run: `bin/which-language benchmark <name> minigit --lang python --trials 1 --dry-run`
- [ ] Run 1 real trial: `bin/which-language run <name> minigit --lang python --trials 1`
- [ ] Run 3+ trials for variance data
- [ ] Document pricing in `CLAUDE.md`
- [ ] Document the new adapter in relevant `.md` files (e.g., `program.md`, `README.md`) to update project context
- [ ] Update `plan.md` status
- [ ] Add walkthrough.md entry

## New problem checklist

- [ ] Create `problems/<problem>/problem.json` with all required keys
- [ ] Write `SPEC-v1.txt` and `SPEC-v2.txt`
- [ ] Write `test-v1.sh` and `test-v2.sh` (deterministic, self-contained)
- [ ] Test with at least 1 codex × 1 language × 1 trial
- [ ] Document the new problem in relevant `.md` files (e.g., `program.md`, `CLAUDE.md`, `README.md`) to update project context
- [ ] Add walkthrough.md entry
- [ ] Update `plan.md` status

---

## PR guidelines

- Title format: `[component] Brief description` (e.g., `[codex] Add DeepSeek adapter`)
- Include benchmark results if adding/modifying adapters
- Keep PRs focused — one adapter or one problem per PR
- Run `bin/which-language benchmark <name> minigit --dry-run` before submitting

---

## For AI agents specifically

If you are an AI agent (Claude, Gemini, Codex, etc.) working in this repo:

1. **Do not modify `prepare.py`-equivalent files** — `report.rb` and `plot.py` are reporting tools, modify only if explicitly asked
2. **Scope your changes** — touch only the files relevant to your task
3. **Be explicit about failures** — if a benchmark run fails, document the failure mode in walkthrough.md
4. **Prefer small iterations** — one codex adapter or one problem per session
5. **Always update documentation** — this is the most important rule
152 changes: 113 additions & 39 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,63 +1,135 @@
# Claude Code Language Benchmark
# AI Coding Language Benchmark

> **Contributors**: Read [AGENT.md](./AGENT.md) for the contribution protocol and [program.md](./program.md) for the current research focus.

## Overview

Benchmark that has Claude Code (Opus) implement "MiniGit" (a minimal git clone) in multiple languages, comparing generation time, LOC, token usage, and pass rate.
Multi-codex benchmark that has various AI coding assistants (Claude Code, Gemini, etc.) implement coding problems (MiniGit, MiniGrades, etc.) in multiple languages, comparing generation time, LOC, token usage, and pass rate.

## Repository Structure

```
SPEC-v1.txt # MiniGit v1 spec (init/add/commit/log)
SPEC-v2.txt # MiniGit v2 spec (v1 + status/diff/checkout/reset/rm/show)
test-v1.sh # v1 test suite (11 tests)
test-v2.sh # v2 test suite (30 tests)
benchmark.rb # Benchmark runner (Ruby)
report.rb # Report generator (results.json -> report.md)
plot.py # Graph generator (results.json -> figures/*.png)
results/
results.json # Raw result data
meta.json # Environment metadata
report.md # Generated report
figures/ # Generated graphs
bin/
which-language # Unified CLI entry point (benchmark / report / plot / run)
src/
benchmark.rb # Benchmark runner (Ruby)
report.rb # Report generator (results.json -> report.md)
plot.py # Graph generator (results.json -> figures/*.png)
lib/
codexes/
base_codex.rb # Abstract interface
claude_codex.rb # Claude Code CLI adapter
gemini_codex.rb # Google Gemini API adapter
openai_codex.rb # OpenAI Responses API adapter
groq_codex.rb # Groq API adapter
aider_codex.rb # Aider CLI adapter
codex_loader.rb # Loads and instantiates adapters
language_loader.rb # Loads language config from YAML
config/
codexes.yml # Codex configuration
languages.yml # Language toolchain configuration
problems/
minigit/
problem.json # Problem-specific prompt + asset config
SPEC-v1.txt # v1 spec
SPEC-v2.txt # v2 spec (extends v1)
test-v1.sh # v1 test suite
test-v2.sh # v2 test suite
artifacts/
<codex>/<model>/<problem>/
generated/ # Generated source/build artifacts
logs/ # Codex logs
results/ # Raw result data + meta + report
figures/ # Generated graphs
```

The `data` branch (orphan) contains:
```
generated/ # Source code generated by Claude (binaries removed)
minigit-{lang}-{trial}-v1/
minigit-{lang}-{trial}-v2/
logs/ # Claude JSON output logs
minigit-{lang}-{trial}-v1.json
minigit-{lang}-{trial}-v2.json
```
The `data` branch (orphan) contains generated artifacts and logs.

## How It Works

1. Run `ruby benchmark.rb`
2. For each language x trial:
- v1: Create `generated/minigit-{lang}-{trial}-v1/`, copy spec and tests, invoke `claude -p`
- v2: Copy v1 result to `minigit-{lang}-{trial}-v2/`, invoke `claude -p` to extend
1. Run `bin/which-language run <codex> <problem>`
2. For each language × trial:
- v1: Create working dir, copy problem assets, invoke the selected codex
- v2: Copy v1 result, invoke the codex to extend
3. Run test scripts independently to verify
4. Measure wall-clock time, LOC, token usage, and cost
5. Run `ruby report.rb` to generate the report
6. Run `python3 plot.py` to generate graphs
5. Report and figures are generated automatically by the `run` subcommand

## Key Commands

```bash
ruby benchmark.rb # All languages x 3 trials
ruby benchmark.rb --lang python --trials 1 # Single language test
ruby benchmark.rb --trials 10 --start 11 # Trials 11-20
ruby benchmark.rb --dry-run # Dry run
ruby report.rb # Generate report
python3 plot.py # Generate graphs
bin/which-language run claude minigit # Full pipeline (default: all langs × 3 trials)
bin/which-language benchmark claude minigit --lang python --trials 1 # Benchmark only
bin/which-language report claude minigit # Generate report from existing results
bin/which-language plot claude minigit # Generate figures from existing results
bin/which-language benchmark claude minigit --dry-run # Dry run (no API calls)
```

## Supported Languages (LANGUAGES hash in benchmark.rb)
Prefer `config/codexes.local.yml` for local secrets and enablement overrides.

## Multi-Codex Architecture

Each codex adapter implements:
- `run_generation(prompt, dir:, log_path:)` — Generate code
- `version` — Get codex version
- `warmup(warmup_dir)` — Optional warmup
- `parse_metrics(raw_output)` — Extract token/cost data

To add a new codex:
1. Create `lib/codexes/your_codex.rb` extending `BaseCodex`
2. Add configuration to `config/codexes.yml`
3. Run: `bin/which-language benchmark your_codex minigit --dry-run`

See [AGENT.md](./AGENT.md) for the full integration checklist.

## Codex Specifications

### Implemented

| Codex | Provider | Type | Context | Pricing (in/out per 1M) |
|-------|----------|------|---------|------------------------|
| **Claude Code** | Anthropic | CLI | 200K | ~$15/$75 |
| **Gemini** | Google | API | 1M | $0.25/$1.50 |
| **OpenAI** | OpenAI | API | 128K | $5/$15 (GPT-4o) |
| **Groq** | Groq | API | 128K | varies by model |
| **Aider** | Open Source | CLI | model-dependent | N/A (wraps other models) |

### Benchmark Results (historical)

rust, go, c, typescript, javascript, java, perl, python, python/mypy, ruby, ruby/steep, lua, scheme, ocaml, haskell
**Claude Code** (Original Study):
- Ruby: 73.1s, $0.36, 219 LOC, 40/40 pass
- Python: 74.6s, $0.38, 235 LOC, 40/40 pass
- JavaScript: 81.1s, $0.39, 248 LOC, 40/40 pass

To add a language, add an entry to the `LANGUAGES` hash. Tests just call `./minigit`, so the implementation only needs to produce an executable with that name.
**Gemini** (Flash-Lite):
- JavaScript: 173.3s, $0.005, 125 LOC, 40/40 pass
- Python: 167.9s, $0.005, 138 LOC, 39/40 pass
- Ruby: 136.5s, $0.004, 154 LOC, 29/40 pass

### Research Questions

1. Which codex is **fastest** for different languages?
2. Which is most **cost-effective**?
3. Do **specialized models** (e.g., Qwen Coder) outperform general ones?
4. How do **open source** models compare to proprietary ones?
5. What's the overhead of **CLI tools** (Aider, Cline) vs direct API?

See [plan.md](./plan.md) for planned codex integrations and current experiment status.

## Supported Languages

`rust`, `go`, `c`, `typescript`, `javascript`, `java`, `perl`, `python`, `python/mypy`, `ruby`, `ruby/steep`, `lua`, `scheme`, `ocaml`, `haskell`

To add a language, add an entry to `config/languages.yml`.

## Problem Model

Problems are loaded from `problems/<problem>/problem.json` and assume a two-phase structure:

- `v1_spec`, `v1_test`, `v1_prompt`
- `v2_spec`, `v2_test`, `v2_prompt`

Each run writes outputs under `artifacts/<codex>/<model>/<problem>/`, while dry-runs are isolated under `artifacts/<codex>/<model>/<problem>/dry-run/`.

## MiniGit Technical Notes

Expand All @@ -68,5 +140,7 @@ To add a language, add an entry to the `LANGUAGES` hash. Tests just call `./mini

## Notes

- This is not a git repository for MiniGit itself; individual implementations under `generated/` may use `git init` as part of their build process
- This is not a git repository for MiniGit itself; individual implementations under `artifacts/<codex>/<model>/<problem>/generated/` may use `git init` as part of their build process
- The `data` branch is an orphan branch with no common history with `main`
- Originally focused on Claude Code, now a **multi-codex benchmark platform**

Loading