add-test
Skill3.7k starsChanged 3 months agoMITView on GitHub
Create a new Verona compiler test case. Use when the user wants to add a test, create a test, or scaffold a test for the compiler.
18 other projects use a version of this.
Trending
Quiet this year.about the whole repository
Most recently taken up by
- TidalPaladin/skillstheir own version, first seen Nov 8, 2026
- flavien-ia/hypervibe-crafttheir own version, first seen Oct 25, 2026
- flavien-ia/hypervibe-harnesstheir own version, first seen Oct 23, 2026
- WhatIfWeDigDeeper/claude-code-courseratheir own version, first seen Oct 20, 2026
- nativewind/react-native-csstheir own version, first seen Oct 9, 2026
- osmandapp/webtheir own version, first seen Oct 9, 2026
Who's talking about microsoft/verona
- A Hacker News story“Microsoft Project Verona: Research programming language for concurrent ownership”Hacker News · Jan 17, 2020 · 142 points
- A Hacker News story“Project Verona FAQ”Hacker News · Feb 10, 2020 · 29 points
- A Hacker News story“Project Verona: Research programming language for concurrent ownership”Hacker News · Jan 16, 2020 · 7 points
- A Hacker News story“Microsoft/Verona”Hacker News · Jan 18, 2020 · 3 points
- A Hacker News story“Concurrent Ownership in Verona”Hacker News · Dec 14, 2022 · 2 points
The biggest 5 of 18 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 18
Talked about on GitHub and Hacker News (18 times).
On GitHub · 12
- Dec 31, 2023Check ideas from Verona language for concurrency — lambdaclass/concrete0 reactions
- Jul 21, 2023Add Verona — ChessMax/awesome-programming-languages0 reactions
- Jul 13, 2023Move the Verona compiler to microsoft/verona — microsoft/Trieste0 reactions
- Oct 24, 2022Optimise for waking an empty queue — microsoft/verona-rt0 reactions
- Oct 24, 2022Token source — microsoft/verona-rt0 reactions
7 more on GitHub
- Oct 20, 2022Small optimisations and refactors around message send and receive — microsoft/verona-rt0 reactions
- Jul 29, 2022Don't run CI on doc-only changes — microsoft/CCF0 reactions · 4 comments
- Aug 26, 2021Enable passthrough to an underlying allocator — microsoft/snmalloc0 reactions · 1 comment
- Jan 25, 2021Meta: Some interesting pointers to borrow ideas — flix/flix0 reactions · 1 comment
- Jan 4, 2021Meta: Some interesting pointers to borrow ideas — HigherOrderCO/Kind0 reactions
- Jun 18, 2020Refactor Pal and LargeAlloc interaction. — microsoft/snmalloc0 reactions
- Jan 27, 2020Automating keeping snmalloc up to date. — SchrodingerZhu/snmalloc-rs0 reactions · 2 comments
On Hacker News · 6
- Jan 17, 2020Microsoft Project Verona: Research programming language for concurrent ownership142 points · 16 comments
- Feb 10, 2020Project Verona FAQ29 points · 8 comments
- Jan 16, 2020Project Verona: Research programming language for concurrent ownership7 points
- Jan 18, 2020Microsoft/Verona3 points
- Dec 14, 2022Concurrent Ownership in Verona2 points
1 more on Hacker News
- Sep 17, 2023Microsoft Project Verona, a research programming language1 point
Used with
Projects with it also use review-pr and triage.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
DockerSkillreview-pr
Review one or more incoming Docker documentation pull requests as a maintainer. Independently validate technical claims, assess editorial fit and information architecture, choose a verdict, and draft exact inline or PR-wide feedback behind a confirmation gate. Use for requests such as "review PR 123", "is this PR correct?", "does this information belong here?", "validate this PR", or "help review backlog PRs". Do not use to maintain or fix a PR you own; use maintain-pr for that.
Also in 3 projects that use this
Google CloudSkilltriage
Gather context on a change or bug and plan the implementation.
Also in 3 projects that use this
Other versions18 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 18
- gitkraken/vscode-gitlens★ 10ksame name
- nativewind/nativewind★ 8.1ksame name
- The-OpenROAD-Project/OpenROAD★ 3.3ksame name
- OpenAEV-Platform/openaev★ 1.8ksame name
- DexForce/EmbodiChain★ 240same name
- fpindej/netrock★ 234same name
- nativewind/react-native-css★ 167same name
- osmandapp/web★ 63same name
- flavien-ia/hypervibe-craft★ 50same name
- flavien-ia/hypervibe-harness★ 50same name
8 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- debugSkill
- docs-updateSkill
- reviewSkill
- testsuiteSkill
- vbci-memorySkill
- verona-codingSkill
- verona-conventionsSkill
- verona-type-inferenceSkill
- add-testSkill
- docs-updateSkill
- reviewSkill
- testsuiteSkill
- vbci-memorySkill
- verona-codingSkill
- verona-conventionsSkill
- verona-type-inferenceSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. 0 are common, 2 are distinctive, and 15 are very specific to this project.
0
Common
Most of the 17 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Create a new test case in testsuite/v/ for the Verona compiler.
- Very specific: line 20
Create testsuite/v/$0/$0.v with appropriate Verona source code.
- Very specific: line 26
Use only _builtin types
- Very specific: line 27
Do NOT write use "_builtin" — it is always implicitly available
- Very specific: line 28
No semicolons after closing braces of control flow (for, if, while)
- Very specific: line 30
Don't use explicit type annotations on literals when inference can determine the type from context (write 0 not usize 0)
- Very specific: line 34
Use Type(args) constructor sugar: callback(f) instead of callback::create(f)
- Very specific: line 35
Use (obj.field)(args) for apply on field access, x.method for zero-arg methods
- Very specific: line 38
Use the bitmask exit code pattern: var result = 0.
- Distinctive: line 43
Write code that should fail to compile
- Very specific: line 45
Keep the test under testsuite/v/compile_only/ so no run node is registered
- Distinctive: line 49
If the test relies on init functions running, it MUST include at least one reachable FFI call from the same lib — init functions are only …
- Very specific: line 51
Call FFI wrappers as ffi::func_name(args) for functions in _builtin/ffi/
- Very specific: line 55
Run from the build directory:
- Very specific: line 71
Check that the golden compile/ directory has the expected files:
- Very specific: line 72
All 14 pass dumps: 00_parse.trieste through 13_typecheck.trieste
- Very specific: line 78
If pass dumps are missing (e.g., only 0–5 present), it usually means a WF violation in a later pass.
“Common” is measured: kept by at least 6 in 10 of the 17 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Add a Verona Compiler Test
Create a new test case in testsuite/v/ for the Verona compiler.
Arguments
$0— the test name (required, snake_case)$1— if set toerror, creates a compile-error test (exit code 1, no run/ directory). If set toffi, creates a test that uses FFI builtins.
Steps
1. Create the source file
Create testsuite/v/$0/$0.v with appropriate Verona source code. For an
expected compile error, use
testsuite/v/compile_only/$0/$0.v instead.
Conventions:
- Tests must be self-contained — no external dependencies (no
use "https://...") - Use only
_builtintypes - Do NOT write
use "_builtin"— it is always implicitly available - No semicolons after closing braces of control flow (
for,if,while) - Semicolons are needed after statements and field definitions
- Don't use explicit type annotations on literals when inference can determine the type from context (write
0notusize 0) - Class definitions use bare names:
myclass[T] { ... } - Fields need semicolons:
val: T; newusesnew { field = val }(no class name afternew)- Use
Type(args)constructor sugar:callback(f)instead ofcallback::create(f) - Use
(obj.field)(args)for apply on field access,x.methodfor zero-arg methods
For success tests (default):
- Use the bitmask exit code pattern:
var result = 0;thenif cond { result = result + N; }with powers of 2 - Exit code 0 means all checks passed
- The
mainfunction must returni32
For compile-error tests ($1 = error):
- Write code that should fail to compile
- The test validates that the compiler correctly rejects invalid code
- Keep the test under
testsuite/v/compile_only/so no run node is registered
For FFI tests ($1 = ffi):
- Tests that use FFI builtins (
:::name(...)syntax) or_builtin/ffi/wrappers (e.g.,ffi::add_external()) - If the test relies on init functions running, it MUST include at least one reachable FFI call from the same lib — init functions are only reified when their lib's FFI symbols are called from reachable code
- Declare FFI symbols in a
useblock with aLibstring - Call FFI wrappers as
ffi::func_name(args)for functions in_builtin/ffi/
2. Generate golden files
Run from the build directory:
cd build
ninja install && ninja update-dumpThis auto-generates the golden file directory structure:
testsuite/v/$0/$0/compile/(ortestsuite/v/compile_only/$0/$0/compile/for errors) — containsexit_code.txt,stdout.txt,stderr.txt, pass dump files (00_parse.triestethrough13_typecheck.trieste),*_final.trieste, and.vbcfile (success tests only)testsuite/v/$0/$0/run/— containsexit_code.txt,stdout.txt,stderr.txt(only for success tests that produce a.vbc)
3. Verify golden file completeness
Check that the golden compile/ directory has the expected files:
- All 14 pass dumps:
00_parse.triestethrough13_typecheck.trieste *_final.triesteexit_code.txt(value0for success,1for error, no trailing newline)stdout.txtandstderr.txt*.vbcfile (success tests only)
If pass dumps are missing (e.g., only 0–5 present), it usually means a WF violation in a later pass. Investigate with dist/vc/vc build ../testsuite/v/$0 --dump_passes=dump_$0 to see which pass fails.
For error tests: no run/ directory, no .vbc file, exit_code.txt = 1.
4. Verify the test passes
cd build && ctest --output-on-failure -R "^vbc/v/$0/$0" -j$(nproc)This should show the test passing. If it fails, check the source code and re-run ninja update-dump.
For an expected compile error, use
"^vbc/v/compile_only/$0/$0" instead.
5. Report
State the test name, whether it's a success/error/ffi test, what it tests, and the expected exit code.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

