OATHYARD is a deterministic native-PC planned-time physical melee duel foundation. The current repository verifies truth, replay, nonvisual artifacts, source-built runtime 3D asset structure, packaging smoke, and readiness boundaries. Public-demo-ready, release-candidate-ready, owner-final-accepted, legal clearance, and trademark clearance remain false unless those external gates are actually performed. The project is license-pending/unlicensed; see LICENSE.
Normal verification keeps nonvisual evidence:
trace.jsonreplay.jsonfinal_state_hash.txtduel_report.mdfight_film_manifest.json- export-bundle manifest/report/hash files
- build, test, audit, package, environment, and readiness reports
Standalone two-dimensional diagrams, image rollups, frame dumps, debug panels, browser canvas output, and fallback captures are not accepted as visual evidence. Visual evidence is produced by a native 3D renderer capture path (oathyard-native-wgpu-production-v1) that writes manifest-backed PNG captures with renderer, asset, camera, replay/hash, and truth_mutation=false metadata. Current native 3D captures are real production renders but are not yet owner-accepted or production-final.
cargo build --locked
cargo test --locked
./tools/build_assets.sh
./tools/run_duel.sh examples/duels/basic_oathyard.duel --out artifacts/latest
./tools/replay_verify.sh artifacts/latest/replay.json
./tools/verify.shartifacts/, assets/, and target/ are local build/evidence caches. They are ignored and regenerated from source inputs.
src/— Rust truth, replay, artifact, and CLI source.tests/— Cargo integration tests.tools/— repo-native build, audit, verification, package, and smoke scripts.docs/— canon, scope, acceptance, roadmap, visual policy, and decision records.examples/duels/— runnable duel scenarios.assets_src/— source asset definitions; generated runtime files are emitted under ignoredassets/.content/— content manifest consumed by asset/runtime/package flows.packaging/linux/— Linux desktop/AppStream-blocker metadata used by package gates.spikes/— retained experiments only; not production substrate and not package entrypoints.
./tools/build.sh
./tools/test.sh
cargo build --locked
cargo test --locked./tools/build_assets.sh
./tools/validate_assets.sh
./tools/asset_budget_audit.sh artifacts/asset_budget/latest
./tools/asset_visual_atlas.sh artifacts/asset_atlas/latestThe asset builder writes runtime mesh summaries, deterministic extruded 3D glTF files under assets/gltf/, PBR material manifests, provenance reports, and validation reports. Validation fails if production runtime glTF assets have no Z depth. Asset atlas evidence is structural/nonvisual until a native 3D renderer captures the assets.
./tools/run_duel.sh examples/duels/basic_oathyard.duel --out artifacts/latest
./tools/replay_verify.sh artifacts/latest/replay.jsonThe run writes deterministic truth/replay/report artifacts only. trace.json, replay.json, and duel_report.md include deterministic non-HP end-condition evidence. fight_film_manifest.json is trace-derived shot metadata, not visual proof.
./tools/export_replay_bundle.sh artifacts/latest/replay.json artifacts/export_bundle/latest
./tools/verify_replay_bundle.sh artifacts/export_bundle/latestThe export command verifies the replay, regenerates canonical trace/replay/report/manifest evidence, writes export_bundle_manifest.json, export_bundle_report.md, and bundle_hashes.txt, and excludes forbidden standalone visual proof files. Bundle verification replays the bundle and fails if any bundled file hash changes or forbidden visual files are present.
./tools/native_combat_render.sh examples/duels/basic_oathyard.duel artifacts/native_combat/latestThe native combat render path calls the production wgpu renderer after truth hashing, producing a real native 3D capture at 1920x1080 with manifest-backed metadata (oathyard.native_combat_render.v1). The renderer uses skinned glTF geometry (saltreach_duelist, 16 joints, 13598 vertices) with animation clip sampling (idle/walk/attack), lighting, fog, and UI overlay. The command must not mutate truth or substitute non-3D evidence for visual readiness.
./tools/audit_visual_artifacts.sh
./tools/capture_high_fidelity_screens.sh artifacts/high_fidelity_screens/latest
./tools/visual_gap_audit.sh artifacts/visual_review/latest
./tools/visual_benchmark.sh artifacts/visual_review/latestVisual evidence requires native 3D renderer/engine captures with current-run metadata. The production renderer (oathyard-native-wgpu-production-v1) now produces real native 3D captures with manifest-backed metadata. If the renderer path is absent on a given platform, the correct status is blocked, while nonvisual truth/replay/build/package evidence can still pass. See docs/visual/THREE_D_ONLY_VISUAL_EVIDENCE.md and docs/decisions/0002-remove-2d-visual-artifacts.md.
./tools/audit_truth.sh
./tools/audit_secrets.sh
./tools/audit_environment.sh
./tools/contact_matrix.sh artifacts/contact_matrix/latest
./tools/ai_duel.sh artifacts/ai/latest 6
./tools/ai_sweep.sh artifacts/ai_sweep/latest
./tools/truth_stress.sh artifacts/truth_stress/latest
./tools/truth_edge_audit.sh artifacts/truth_edge/latest
./tools/negative_audit.sh artifacts/negative_audit/latest
./tools/audio_vfx_render.sh examples/duels/basic_oathyard.duel artifacts/audio_vfx/latest
./tools/package.sh
./tools/smoke_package.sh artifacts/package/oathyard-linux-x86_64.tarThese gates preserve deterministic truth, replay loud-failure behavior, no-HP/no-stat canon, readiness false flags, and presentation/truth isolation.
./tools/verify.shverify.sh runs build/test, asset build/validation, deterministic duel twice, replay verification, replay export/verification, truth audits, negative audits, AI/truth stress checks, environment/native status checks, and audit_visual_artifacts.sh. It fails if normal verification generates forbidden standalone visual files or if visual readiness is claimed without native 3D renderer evidence.
./tools/publishable_gate.shThis wraps local verification into a timestamped evidence bundle under artifacts/publishable/<UTC>/. It can only produce a local package-candidate result; it does not claim owner-final acceptance, public demo readiness, release-candidate readiness, legal clearance, trademark clearance, or store readiness.