Skip to content

Document Aver support and add comparison language guide#52

Merged
aallan merged 5 commits into
mainfrom
docs/aver-support-docs
Apr 13, 2026
Merged

Document Aver support and add comparison language guide#52
aallan merged 5 commits into
mainfrom
docs/aver-support-docs

Conversation

@aallan

@aallan aallan commented Apr 13, 2026

Copy link
Copy Markdown
Owner

Summary

Depends on #48 — CHANGELOG.md will need a rebase after #48 merges (both add to [Unreleased]). All other files are non-overlapping.

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added Aver as a supported comparison language; CLI and benchmark suite accept --language aver and include Aver generation and baseline targets, increasing visible suite targets.
  • Documentation

    • Introduced a language‑agnostic problem field (description_neutral) and updated contributor checklist for adding comparison languages.
    • Updated README, design notes, contributing guide, CLAUDE guidance, roadmap (v0.0.8) and changelog with Aver setup, CLI examples, zero‑training‑data guidance and Tier 5 cross‑language caveats.

@coderabbitai

coderabbitai Bot commented Apr 13, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds Aver as a comparison language: introduces a language‑agnostic description_neutral field for problem JSONs, updates documentation and contributor guidance for multi‑language support, and adds Aver generation and baseline targets to the benchmark runner and related scripts.

Changes

Cohort / File(s) Summary
Problem & Language Spec docs
CLAUDE.md, DESIGN.md, CONTRIBUTING.md
Added description_neutral requirement and guidance; documented per-language solutions/{lang}/ layout (including solutions/aver/), prompt builder/evaluator/baseline integration hooks (build_{lang}_prompt, _evaluate_{lang}_code, run_{lang}_baseline), CLI --language choices, runtime reference fetching (e.g. Aver llms.txt), and contributor checklist for adding new comparison languages.
User & roadmap docs
README.md, ROADMAP.md, CHANGELOG.md
Declared Aver as an additional baseline/generation target, updated CLI examples to include --language aver, bumped roadmap to v0.0.8, and recorded changelog entries and Tier‑5 notes.
Benchmark harness
scripts/run_full_benchmark.py
Extended targets list and per-target summary/report to include “Aver LLM” and “Aver baselines”; updated docstring and target counts accordingly.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

docs, ci

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarises the main objective: documenting Aver support and adding a comparison language guide across multiple documentation files and scripts.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/aver-support-docs

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Apr 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.06%. Comparing base (89e2689) to head (12c4897).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #52   +/-   ##
=======================================
  Coverage   83.06%   83.06%           
=======================================
  Files          10       10           
  Lines        1346     1346           
=======================================
  Hits         1118     1118           
  Misses        228      228           
Flag Coverage Δ
python 83.06% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CLAUDE.md`:
- Line 13: The document references an invalid external URL for "Aver's llms.txt"
(the line containing "**Aver's llms.txt** is fetched from
`https://averlang.org/llms.txt` at runtime"); update this to a valid Aver
resource or remove the reference: replace the broken
`https://averlang.org/llms.txt` link with a correct repo or docs URL such as
`https://github.com/jasisz/aver` or `https://jasisz.github.io/aver-language/`,
and if `llms.txt` is not provided by Aver, remove or reword the sentence to
point to the appropriate file/resource in the Aver project.

In `@CONTRIBUTING.md`:
- Around line 27-47: The .coderabbit.yaml path_filters are missing the Aver
exclusions referenced by CONTRIBUTING.md step 8; update the path_filters block
in .coderabbit.yaml to include the patterns !**/*.av and !solutions/aver/**
alongside the existing !**/*.vera, !solutions/python/** and
!solutions/typescript/** entries so the documented guidance for excluding Aver
solutions from CodeRabbit is enforced.

In `@scripts/run_full_benchmark.py`:
- Around line 237-245: The "Aver baselines" benchmark entry currently uses
"--language", "aver" which will raise NotImplementedError; either remove or
disable that tuple from the benchmarks list in run_full_benchmark.py (the tuple
starting with "Aver baselines") or replace "aver" with a supported language
("python" or "typescript"); if you prefer to keep the target, implement support
for "aver" in the baseline runner by updating vera_bench/baseline_runner.py to
accept "aver" alongside "python"/"typescript" and provide the corresponding
baseline implementation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3cac3557-4568-4981-9cec-983c0d4c7da0

📥 Commits

Reviewing files that changed from the base of the PR and between 4f012fe and 9f583ec.

📒 Files selected for processing (7)
  • CHANGELOG.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • DESIGN.md
  • README.md
  • ROADMAP.md
  • scripts/run_full_benchmark.py

Comment thread CLAUDE.md Outdated
Comment thread CONTRIBUTING.md
Comment thread scripts/run_full_benchmark.py

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CLAUDE.md`:
- Line 91: Replace the incorrect Aver repo URL in the CLAUDE.md sentence that
mentions Aver and its reference doc (the text containing
"https://github.com/pchj/aver-lang" and the surrounding mention of `llms.txt`
and the `aver` command) with the official repository URL
"https://github.com/jasisz/aver" so the link points to the correct Aver project.
- Line 13: Replace the incorrect GitHub URL string
"https://github.com/pchj/aver-lang" in CLAUDE.md with the correct repository
"https://github.com/jasisz/aver" (this is the link referenced alongside the Aver
resource mention such as "Aver's llms.txt"); locate the existing URL text in the
file and update the link so both occurrences (line ~13/91 mentions) point to the
correct Aver repo.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: d31bd782-5f13-452d-8f83-65b6505e5ff6

📥 Commits

Reviewing files that changed from the base of the PR and between 9f583ec and 5f38189.

📒 Files selected for processing (1)
  • CLAUDE.md

Comment thread CLAUDE.md
Comment thread CLAUDE.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
README.md (1)

136-150: ⚠️ Potential issue | 🟡 Minor

Update the full-suite target count to match current behaviour.

The comment on Line 149 still says “all 6 targets”, but this PR’s benchmark scope is now 8 targets. Please update that line to avoid misleading run expectations.

Suggested doc fix
-# Or run the full benchmark suite (all 6 targets) with one command
+# Or run the full benchmark suite (all 8 targets) with one command
 python scripts/run_full_benchmark.py

As per coding guidelines, **/*.md: “Review for factual accuracy and broken links. Do not review for grammar or prose style.”

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 136 - 150, The README's final comment "all 6 targets"
is outdated; update the text near the "python scripts/run_full_benchmark.py"
example to reflect the current benchmark scope (change "all 6 targets" to "all 8
targets") so the run_full_benchmark.py invocation accurately describes behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@README.md`:
- Around line 136-150: The README's final comment "all 6 targets" is outdated;
update the text near the "python scripts/run_full_benchmark.py" example to
reflect the current benchmark scope (change "all 6 targets" to "all 8 targets")
so the run_full_benchmark.py invocation accurately describes behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 428ca627-503b-4a2d-8212-086529dd07ed

📥 Commits

Reviewing files that changed from the base of the PR and between 5f38189 and 8265b3e.

📒 Files selected for processing (2)
  • CLAUDE.md
  • README.md

@aallan

aallan commented Apr 13, 2026

Copy link
Copy Markdown
Owner Author

Fixed in f95abdc — README now says "all 8 targets" to match run_full_benchmark.py (added Aver LLM + Aver baselines). Thanks @coderabbitai for catching the stale count.

@coderabbitai

coderabbitai Bot commented Apr 13, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

@aallan: Thanks for the quick fix! Glad the count is now consistent — run_full_benchmark.py's 8 targets (6 original + Aver LLM + Aver baselines) now match the README description. ✅


🧠 Learnings used
Learnt from: aallan
Repo: aallan/vera-bench PR: 52
File: scripts/run_full_benchmark.py:237-245
Timestamp: 2026-04-13T18:21:32.098Z
Learning: In aallan/vera-bench, PR `#52` (docs/aver-support-docs) explicitly depends on PR `#48` for the Aver baseline runner implementation. `run_aver_baseline()` is added to `vera_bench/baseline_runner.py` in PR `#48` and wired into the CLI there. The `NotImplementedError` guard for unknown languages does NOT apply to "aver" once PR `#48` is merged/rebased. Do not flag `--language aver` usage in `scripts/run_full_benchmark.py` as broken; it is valid after the PR `#48` dependency is satisfied.

Learnt from: aallan
Repo: aallan/vera-bench PR: 43
File: README.md:14-14
Timestamp: 2026-04-08T16:11:17.628Z
Learning: In aallan/vera-bench, model identifiers (e.g., `claude-sonnet-4-20250514`, `gpt-4.1-2025-04-14`) are considered sufficient for reproducibility. Do not flag missing per-model release dates or LLM API versions in README.md — the identifiers already encode this information precisely.

Learnt from: aallan
Repo: aallan/vera-bench PR: 46
File: ROADMAP.md:0-0
Timestamp: 2026-04-09T15:16:09.687Z
Learning: In aallan/vera-bench ROADMAP.md, coverage claims should use a live Codecov badge and a reference to the CI enforcement policy (e.g., `--cov-fail-under=80` in `.github/workflows/ci.yml`) rather than a static point-in-time percentage, so the claim remains verifiable at read-time without drifting.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T4_001_fibonacci.av:7-12
Timestamp: 2026-04-13T07:53:18.646Z
Learning: In vera-bench (aallan/vera-bench), Aver is a zero-training-data language with its own type system, contract model (`verify` blocks), and syntax (`.av` files). Do not apply Vera-specific, Haskell-style, or general FP heuristics (e.g., `Nat` types, `decreases` clauses, specific function naming conventions from the problem spec) to Aver source files in `solutions/aver/**`. Aver's `verify` blocks constrain the input domain in the same way Vera's `requires`/`ensures` clauses do. Aver solution files are excluded from automated review via `path_filters: !solutions/aver/**` and `!**/*.av` in `.coderabbit.yaml`.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T4_005_sum_to_n.av:8-10
Timestamp: 2026-04-13T07:53:21.428Z
Learning: In vera-bench (aallan/vera-bench), Aver is a statically typed language (file extension `.av`) for which CodeRabbit has no training data. Aver's `verify` blocks serve the same role as Vera's `requires`/`ensures` clauses: they constrain the valid input domain and make out-of-contract edge cases (e.g., negative inputs to a natural-number function) unreachable in valid usage. Do not apply general-purpose type or recursion heuristics to `.av` files — all Aver solutions under `solutions/aver/` are excluded from review via `path_filters` (`!solutions/aver/**`, `!**/*.av`) in `.coderabbit.yaml`.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T5_007_exn_negate.av:1-15
Timestamp: 2026-04-13T07:53:31.038Z
Learning: In vera-bench (aallan/vera-bench), Aver is a zero-training-data language. CodeRabbit has no training data for Aver syntax or semantics and must not apply general-purpose or Vera-specific heuristics to `.av` files. Aver source files live under `solutions/aver/` and use the `.av` extension. Do not flag missing Vera constructs (e.g., `requires`/`ensures`, `Exn<E>` effect handlers) in Aver solutions.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T1_007_safe_modulo.av:4-12
Timestamp: 2026-04-13T07:53:17.689Z
Learning: In vera-bench (aallan/vera-bench), Aver (`.av`) source files use `verify` blocks and inline `?` doc-strings as precondition/postcondition contracts that constrain the valid input domain — exactly analogous to Vera's `requires`/`ensures` clauses. Edge cases excluded by these contracts (e.g. `b == 0` when the contract states `b != 0`) are not reachable in valid usage. Do not flag missing runtime guards for inputs that are excluded by an Aver contract. Aver solution files live under `solutions/aver/` and are excluded from automated review via `path_filters: ["!solutions/aver/**", "!**/*.av"]` in `.coderabbit.yaml`.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T4_010_div_natural.av:6-10
Timestamp: 2026-04-13T07:53:24.567Z
Learning: In vera-bench (aallan/vera-bench), Aver is a zero-training-data statically typed language whose `verify` blocks and contract system constrain the input domain at the call site, in the same way that Vera's `requires`/`ensures` clauses do. Edge cases such as b <= 0 in `div_natural` are not reachable in valid usage because the `verify` contracts enforce valid inputs. Do not flag missing guards or defensive checks in Aver solution files (solutions/aver/**/*.av) based on general-purpose heuristics — the contract system makes them unnecessary.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T2_005_contains_substring.av:5-7
Timestamp: 2026-04-13T07:53:32.059Z
Learning: In the vera-bench repository (aallan/vera-bench), Aver source files (*.av) use `verify` blocks and a contract system analogous to Vera's `requires`/`ensures` clauses. These contracts constrain the input domain, so edge-case arguments (e.g. empty string, negative index, zero divisor) that are excluded by contract are not reachable in valid usage. Do not flag missing edge-case handling as a deficiency in Aver solutions when the verify/contract block already guards against those inputs.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T4_004_power.av:6-10
Timestamp: 2026-04-13T07:53:18.896Z
Learning: In vera-bench (aallan/vera-bench), Aver source files (`solutions/aver/**`, `**/*.av`) are excluded from CodeRabbit review via `path_filters` in `.coderabbit.yaml`. CodeRabbit has no training data for the Aver language and applying general-purpose heuristics to Aver code produces false positives. Aver's `verify` blocks constrain the callable input domain in the same way Vera's `requires`/`ensures` clauses do — edge cases that appear unreachable under those constraints should not be flagged as deficiencies. Do not review `*.av` files.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T5_002_greeter_io_boundary.av:8-8
Timestamp: 2026-04-13T07:53:26.985Z
Learning: In the vera-bench repository (aallan/vera-bench), Aver source files (`solutions/aver/**`, `**/*.av`) should be excluded from CodeRabbit automated reviews via `path_filters` in `.coderabbit.yaml`, matching the existing exclusions for `!**/*.vera`, `!solutions/python/**`, and `!solutions/typescript/**`. CodeRabbit has no training data for the Aver language and applying general-purpose heuristics produces false positives.

Learnt from: aallan
Repo: aallan/vera-bench PR: 48
File: solutions/aver/VB_T4_003_even_odd_mutual_recursion.av:7-17
Timestamp: 2026-04-13T07:53:18.214Z
Learning: In vera-bench (aallan/vera-bench), Aver (`.av`) source files in `solutions/aver/` are excluded from CodeRabbit review via `path_filters` (`!solutions/aver/**`, `!**/*.av`), matching the existing exclusions for Vera (`!**/*.vera`), Python (`!solutions/python/**`), and TypeScript (`!solutions/typescript/**`). Do not review `.av` files.

aallan and others added 4 commits April 13, 2026 19:33
Update README, CLAUDE.md, DESIGN.md, CONTRIBUTING.md, and ROADMAP.md
to document Aver as a comparison language, the description_neutral
field, and the pattern for adding new languages. Add Aver targets to
the full benchmark runner script.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The pchj/aver-lang URL is a 404. The correct repo is
github.com/jasisz/aver (the PR #48 contributor repo).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@aallan aallan force-pushed the docs/aver-support-docs branch from f95abdc to ebd1dc4 Compare April 13, 2026 18:34

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CONTRIBUTING.md`:
- Line 20: The CONTRIBUTING.md requires description_neutral but the validator
omits it; update vera_bench/validate.py by adding "description_neutral" to the
REQUIRED_FIELDS set/tuple used by the problem JSON validation (where
REQUIRED_FIELDS is declared and referenced, e.g., in validate_problem or
validate_json logic) so that vera-bench validate enforces this field; run
existing unit tests or add a small test to ensure missing description_neutral
causes validation to fail.

In `@scripts/run_full_benchmark.py`:
- Around line 16-24: Update the module's top docstring sentence that currently
says "all 6 targets" to reflect the new count "all 8 targets" so it matches the
listed targets; locate the top-level module docstring in
scripts/run_full_benchmark.py (the opening sentence of the file) and change the
numeric text to "8" or "eight" to keep the docstring and the enumerated list
consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 104c0be5-80f8-4345-9c6d-a2e479177ee7

📥 Commits

Reviewing files that changed from the base of the PR and between f95abdc and ebd1dc4.

📒 Files selected for processing (7)
  • CHANGELOG.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • DESIGN.md
  • README.md
  • ROADMAP.md
  • scripts/run_full_benchmark.py

Comment thread CONTRIBUTING.md
Comment thread scripts/run_full_benchmark.py
The validator now enforces description_neutral on problem JSONs,
matching what CONTRIBUTING.md documents. Also fix the stale '6 targets'
in run_full_benchmark.py opening docstring.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@aallan aallan merged commit 73f161b into main Apr 13, 2026
10 checks passed
@aallan aallan deleted the docs/aver-support-docs branch April 13, 2026 22:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant