Artifact evaluation at NSDI is post-acceptance and opt-in: accepted authors package what the paper is made of, an Artifact Evaluation Committee tries it, and earned badges travel with the paper. Mechanics below follow the NSDI '26 Call for Artifacts as rendered on 2026-07-08 — the '27 call was not yet retrievable (待核实), so treat '26 as the model and reread the live page after acceptance.
The badge menu is a claims menu; over-claiming wastes AEC goodwill exactly as over-claiming in the paper wastes reviewer goodwill.
| You can honestly promise | Pursue | Do not pursue |
|---|---|---|
| The bits are public forever (DOI'd archive) | Available | — |
| An evaluator can build and run the core on documented hardware | + functionality-level badge | results claims tied to your production traces |
| Headline figures regenerate within characterized variance on accessible hardware | + reproduction-level badge | anything requiring your private fleet |
The networked-systems complication: results badges collide with topology dependence.
If p99.9 numbers need 80 nodes and a specific RTT matrix, ship a documented
downscaled configuration with expected outputs at that scale, and say explicitly
which paper trends survive downscaling and which do not (nsdi-reproducibility).
NSDI's Community Award goes to the best paper whose code and/or dataset is made
publicly available by the final-papers deadline. Note the trigger: not badge
completion — public release by camera-ready time. Teams that treat openness as a
post-AE cleanup task silently exit the running. If the artifact will be public
anyway, make it public early enough to count (nsdi-camera-ready).
AEC members evaluate many artifacts on volunteer time. The artifact that wins is the one where the first fifteen minutes succeed:
artifact/
README.md # claims -> badge(s) sought; hardware/software needs up front
GETTING_STARTED.md # <=30 min smoke path: build, tiny topology, one sanity result
CLAIMS.md # paper claim -> experiment -> script -> expected output ± variance
setup/ # topology recipes: containers/CloudLab profile/VM configs
traces/ # shippable traces or synthetic generators + fidelity notes
experiments/<id>/ # one runnable unit per paper experiment (run.sh + provenance)
figures/Makefile # regenerate paper figures from logs (fresh or shipped)
LICENSE # explicit license; unlicensed code is not "available"
NSDI-specific packaging notes:
The single highest-yield hour: a lab member who did not build the artifact follows
GETTING_STARTED.md on a machine you did not prepare.
nsdi-camera-ready and
the live instructions.[Badge plan] sought badges + honest basis for each
[Fifteen-minute test] GETTING_STARTED verified on a clean machine? time observed
[Scale strategy] downscale config + surviving-trends statement present?
[Trace shippability] per-dataset: ship / substitute / withhold (documented)
[Community Award] public release date vs final-papers deadline
[Gaps] ordered fixes before artifact submission