Coverage map
What covers each part of the kit: every command, documented error code, lib file, tool, skill, subagent and workflow
job, with the self-tests (tests/) and self-test.yml steps that exercise it. Made by pwsh tests/Get-CoverageMap.ps1
from what the tests say (the commands they run, the codes they check, the files they name) and what their kit runs
reached (tests/coverage-records.json, refreshed with -From <records>; see the script). Do not edit it by hand: the
lint job runs Get-CoverageMap.ps1 -Check, which fails when something has no row here. tests/Get-KitCoverage.ps1
gives the percentages and the floors CI holds them to.
| Part | Items | Covered |
|---|---|---|
| Commands | 19 | 19 |
| Error codes | 64 | 61 |
| Library files | 38 | 38 |
| Tools | 23 | 23 |
| Skills | 53 | 53 |
| Subagents | 2 | 2 |
| Workflow jobs, actions, hooks and the GitLab template | 35 | 32 |
Commands
The values of hyperdot.ps1's -Command, and the self-tests and workflow steps that run them.
| Command | Covered by |
|---|---|
test |
Test-DotnetTempDir.ps1, Test-EditCheck.ps1, Test-ErrorCodes.ps1, Test-ErrorKeys.ps1, Test-EvalGraders.ps1, Test-Flaky.ps1, Test-Flows.ps1, Test-Handoffs.ps1 and 22 more |
build |
Test-BuildSize.ps1, Test-CrashRetry.ps1, Test-ErrorCodes.ps1 |
export |
Test-BuildSize.ps1, Test-CrashRetry.ps1, Test-ErrorCodes.ps1, Test-GameVersion.ps1, Test-GpuValidation.ps1, Test-Web.ps1, self-test.yml local-windows: Export the Windows build and launch it |
setup |
Test-BenchmarkIsolation.ps1, Test-DownloadFailed.ps1, Test-FieldTest.ps1, Test-GameBenchmark.ps1, Test-GameProgramme.ps1, Test-InstallLock.ps1, self-test.yml field-test: Godot, self-test.yml game-benchmark: Godot and 1 more |
detect |
Test-Detect.ps1, Test-ErrorCodes.ps1, Test-Localization.ps1, Test-OldState.ps1, Test-Playthrough.ps1, Test-StopGate.ps1, Test-Telemetry.ps1, self-test.yml init: The juice runner passes timely feedback and fails late feedback and 2 more |
doctor |
Test-Addons.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-Context.ps1, Test-DoctorFixture.ps1, Test-ErrorCodes.ps1, Test-EvalGraders.ps1, Test-Flaky.ps1 and 8 more |
init |
Test-ErrorCodes.ps1, Test-ErrorKeys.ps1, Test-InitializeGame.ps1, Test-OldState.ps1, Test-Plan.ps1, Test-UpdatePins.ps1, self-test.yml init: Agent efficiency, self-test.yml init: step 3 and 1 more |
plan |
Test-ErrorCodes.ps1, Test-Plan.ps1, Test-ProjectSync.ps1, self-test.yml lint: status reads the GDD, self-test.yml local-windows: Plan |
bench |
Test-BenchHotspots.ps1, Test-BenchSweep.ps1, Test-ErrorCodes.ps1, Test-GpuValidation.ps1, Test-SceneCount.ps1, self-test.yml measure: bench |
shot |
Test-BenchSweep.ps1, Test-Capture.ps1, Test-ColorVision.ps1, Test-ErrorCodes.ps1, Test-GpuValidation.ps1, Test-Palette.ps1, Test-ShotChanged.ps1, self-test.yml measure: shot and 1 more |
status |
Test-AssetManifest.ps1, Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Handoffs.ps1, Test-InitializeGame.ps1, Test-Plan.ps1, Test-Telemetry.ps1, Test-Workflow.ps1 and 1 more |
audio |
Test-Audio.ps1, Test-ErrorCodes.ps1, Test-SceneCount.ps1 |
soak |
Test-Soak.ps1 |
credits |
Test-Credits.ps1, Test-ErrorCodes.ps1 |
sfx |
Test-Sfx.ps1 |
playtest |
Test-Playtest.ps1 |
help |
Test-ErrorCodes.ps1, Test-Help.ps1 |
deck |
Test-Deck.ps1 |
telemetry |
Test-Telemetry.ps1 |
Error codes
The codes in docs/json.md, and the tests that raise them and check them in the JSON.
| Code | Covered by |
|---|---|
build-failed |
Test-ErrorCodes.ps1 |
import-failed |
Test-ErrorCodes.ps1 |
engine-errors |
Test-BenchSweep.ps1, Test-Capture.ps1, Test-CrashRetry.ps1 |
tests-failed |
Test-Deck.ps1, Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Flows.ps1, Test-Handoffs.ps1, Test-Layout.ps1, Test-Localization.ps1, Test-Placement.ps1 and 7 more |
invalid-quarantine |
Test-Flaky.ps1 |
coverage-below-minimum |
Test-ErrorCodes.ps1 |
no-coverage |
Test-ErrorCodes.ps1 |
export-failed |
Test-ErrorCodes.ps1 |
no-presets |
Test-ErrorCodes.ps1 |
preset-not-found |
Test-ErrorCodes.ps1 |
export-no-path |
Test-CrashRetry.ps1, Test-ErrorCodes.ps1 |
export-no-keystore |
none |
export-template-missing |
none |
unsafe-results-dir |
Test-ResultsDir.ps1 |
doctor-problems |
Test-ErrorCodes.ps1, Test-Steam.ps1 |
invalid-arguments |
Test-BenchHotspots.ps1, Test-BenchSweep.ps1, Test-BuildSize.ps1, Test-ColorVision.ps1, Test-Deck.ps1, Test-ErrorCodes.ps1, Test-GameVersion.ps1, Test-Handoffs.ps1 and 13 more |
no-plan |
Test-ErrorCodes.ps1 |
invalid-plan |
Test-ErrorCodes.ps1, Test-Plan.ps1, Test-ProjectSync.ps1 |
unknown-gate |
Test-ErrorCodes.ps1, Test-Plan.ps1 |
auto-gate |
Test-Plan.ps1 |
unknown-task |
Test-ErrorCodes.ps1, Test-Plan.ps1, Test-ProjectSync.ps1 |
wip-limit |
Test-ErrorCodes.ps1, Test-Plan.ps1 |
command-timeout |
Test-Plan.ps1 |
project-credentials |
Test-ProjectSync.ps1 |
project-error |
Test-ProjectSync.ps1 |
project-column-missing |
Test-ProjectSync.ps1 |
invalid-mcp-config |
Test-ErrorCodes.ps1 |
aseprite-not-found |
Test-ErrorCodes.ps1, self-test.yml local-windows: MCP config is written |
bench-over-budget |
Test-BenchSweep.ps1, Test-Deck.ps1, Test-ErrorCodes.ps1, self-test.yml measure: bench |
bench-over-draw-calls |
Test-BenchHotspots.ps1 |
bench-over-load-time |
Test-BenchHotspots.ps1 |
bench-failed |
Test-ErrorCodes.ps1 |
bench-sweep-failed |
Test-BenchSweep.ps1 |
shot-failed |
Test-ErrorCodes.ps1 |
deck-failed |
Test-Deck.ps1 |
gpu-validation-errors |
Test-GpuValidation.ps1 |
no-gpu-validation |
Test-GpuValidation.ps1 |
soak-failed |
Test-Soak.ps1 |
soak-leak |
Test-Soak.ps1 |
soak-unclean-stop |
Test-Soak.ps1 |
web-run-failed |
Test-Web.ps1 |
no-browser |
Test-ErrorCodes.ps1 |
shot-changed |
Test-ShotChanged.ps1 |
shot-size |
Test-ShotChanged.ps1 |
shot-text |
self-test.yml measure: shot -Locale -Pseudo finds cut-off |
shot-off-palette |
Test-Palette.ps1 |
no-palette |
Test-Palette.ps1 |
no-display |
Test-Deck.ps1, Test-ErrorCodes.ps1 |
no-ffmpeg |
Test-ErrorCodes.ps1 |
audio-failed |
Test-ErrorCodes.ps1 |
audio-silent |
Test-Audio.ps1 |
audio-clipping |
Test-Audio.ps1 |
audio-off-target |
Test-Audio.ps1 |
no-asset-manifest |
Test-ErrorCodes.ps1 |
credits-invalid |
Test-Credits.ps1 |
engine-notices-failed |
Test-Credits.ps1 |
no-playtest-sessions |
Test-Playtest.ps1 |
invalid-playtest-config |
Test-Playtest.ps1 |
shallow-checkout |
Test-GameVersion.ps1 |
download-failed |
Test-DownloadFailed.ps1 |
checksum-mismatch |
none |
install-busy |
Test-InstallLock.ps1 |
unexpected-error |
Test-ErrorCodes.ps1 |
failed |
Test-ErrorCodes.ps1, Test-GameVersion.ps1 |
Library files
ci/godot/lib/*.ps1: the tests whose kit runs enter its functions (recorded) or that load it themselves; "Reached" counts the functions some recorded kit run entered (a test that calls them in-process, such as Test-Data.ps1, is not recorded). The tests entering most of them come first.
| File | Reached | Covered by |
|---|---|---|
Addons.ps1 |
7/13 | Test-Addons.ps1, Test-Steam.ps1, Test-SelectJobs.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-Context.ps1, Test-DoctorFixture.ps1, Test-ErrorCodes.ps1 and 5 more |
Architecture.ps1 |
4/9 | Test-ArchitectureFixtures.ps1, Test-Detect.ps1, Test-ResultsDir.ps1 |
Assets.ps1 |
12/12 | Test-AssetManifest.ps1, Test-Addons.ps1, Test-Audio.ps1, Test-Context.ps1, Test-DoctorFixture.ps1, Test-ErrorCodes.ps1, Test-Flaky.ps1, Test-OldState.ps1 and 6 more |
Audio.ps1 |
10/11 | Test-Localization.ps1, Test-SelectJobs.ps1, Test-Audio.ps1, Test-ErrorCodes.ps1, Test-AssetManifest.ps1, Test-Addons.ps1, Test-Context.ps1, Test-DoctorFixture.ps1 and 6 more |
BuildSize.ps1 |
4/4 | Test-BuildSize.ps1, Test-SelectJobs.ps1, Test-ErrorCodes.ps1 |
Common.ps1 |
46/65 | Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Deck.ps1, Test-BenchSweep.ps1, Test-GpuValidation.ps1, Test-Localization.ps1, Test-Flows.ps1, Test-Palette.ps1 and 54 more |
Context.ps1 |
8/10 | Test-Context.ps1, Test-Help.ps1, Test-DoctorFixture.ps1, Test-Addons.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-ErrorCodes.ps1, Test-Flaky.ps1 and 5 more |
Credits.ps1 |
6/7 | Test-Credits.ps1, Test-ErrorCodes.ps1 |
Data.ps1 |
0/20 | Test-Data.ps1 |
Deck.ps1 |
3/5 | Test-Deck.ps1 |
Detect.ps1 |
11/12 | Test-Addons.ps1, Test-Steam.ps1, Test-Detect.ps1, Test-Platforms.ps1, Test-ErrorCodes.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-BuildSize.ps1 and 37 more |
Doctor.ps1 |
13/16 | Test-Addons.ps1, Test-Steam.ps1, Test-SelectJobs.ps1, Test-DoctorFixture.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-Context.ps1, Test-ErrorCodes.ps1 and 5 more |
Help.ps1 |
5/11 | Test-Help.ps1, Test-ErrorCodes.ps1 |
Init.ps1 |
10/14 | Test-KitPaths.ps1, Test-UpdatePins.ps1, Test-ErrorCodes.ps1, Test-OldState.ps1, Test-Plan.ps1 |
Juice.ps1 |
1/4 | Test-JuiceLog.ps1, Test-AssetManifest.ps1, Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Handoffs.ps1, Test-Plan.ps1 |
Layout.ps1 |
3/3 | Test-Deck.ps1, Test-Layout.ps1 |
Localization.ps1 |
19/22 | Test-Localization.ps1, Test-Data.ps1, Test-Detect.ps1, Test-Addons.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-BenchHotspots.ps1, Test-BenchSweep.ps1 and 28 more |
Measure.ps1 |
11/13 | Test-GpuValidation.ps1, Test-SelectJobs.ps1, Test-BenchSweep.ps1, Test-Deck.ps1, Test-ErrorCodes.ps1, Test-BenchHotspots.ps1, Test-Capture.ps1, Test-ColorVision.ps1 and 36 more |
Palette.ps1 |
3/3 | Test-Palette.ps1, Test-Capture.ps1, Test-ColorVision.ps1, Test-Deck.ps1, Test-ErrorCodes.ps1, Test-GpuValidation.ps1, Test-ShotChanged.ps1 |
Placement.ps1 |
2/2 | Test-Placement.ps1 |
Plan.ps1 |
31/32 | Test-Plan.ps1, Test-ProjectSync.ps1, Test-ErrorCodes.ps1, Test-AssetManifest.ps1, Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Handoffs.ps1 |
Platforms.ps1 |
1/1 | Test-Platforms.ps1, Test-Addons.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-Context.ps1, Test-DoctorFixture.ps1, Test-ErrorCodes.ps1, Test-Flaky.ps1 and 5 more |
Playtest.ps1 |
8/8 | Test-Playtest.ps1 |
Playthrough.ps1 |
3/3 | Test-Playthrough.ps1 |
Report.ps1 |
29/34 | Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Flows.ps1, Test-Localization.ps1, Test-ArchitectureFixtures.ps1, Test-Data.ps1, Test-Detect.ps1, Test-FailureDelta.ps1 and 25 more |
Runners.ps1 |
7/9 | Test-Flaky.ps1, Test-Flows.ps1, Test-StaleTres.ps1, Test-Detect.ps1, Test-SelectJobs.ps1, Test-TestsNotRun.ps1, Test-ErrorCodes.ps1, Test-DotnetTempDir.ps1 and 10 more |
Setup.ps1 |
11/16 | Test-DownloadFailed.ps1, Test-BenchSweep.ps1, Test-Flows.ps1, Test-InstallLock.ps1, Test-GameVersion.ps1, Test-InstallAddon.ps1, Test-ReportPins.ps1, Test-SelectJobs.ps1 and 34 more |
Sfx.ps1 |
5/6 | Test-SelectJobs.ps1, Test-Sfx.ps1 |
Soak.ps1 |
6/10 | Test-Soak.ps1 |
Status.ps1 |
16/16 | Test-ArchitectureFixtures.ps1, Test-Data.ps1, Test-Localization.ps1, Test-Telemetry.ps1, Test-TestDuration.ps1, Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Handoffs.ps1 and 10 more |
Steam.ps1 |
9/10 | Test-Steam.ps1, Test-Addons.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-Context.ps1, Test-DoctorFixture.ps1, Test-ErrorCodes.ps1, Test-Flaky.ps1 and 4 more |
Store.ps1 |
8/12 | Test-Store.ps1, Test-Addons.ps1, Test-AssetManifest.ps1, Test-Audio.ps1, Test-Context.ps1, Test-DoctorFixture.ps1, Test-ErrorCodes.ps1, Test-Flaky.ps1 and 4 more |
Telemetry.ps1 |
0/11 | Test-Telemetry.ps1 |
TextSize.ps1 |
3/3 | Test-Deck.ps1, Test-TextSize.ps1 |
Version.ps1 |
3/6 | Test-GameVersion.ps1, Test-KitPaths.ps1 |
Web.ps1 |
3/3 | Test-InputHash.ps1, Test-SelectJobs.ps1, Test-ErrorCodes.ps1 |
Workflow.ps1 |
0/3 | Test-Workflow.ps1 |
WorkingTree.ps1 |
0/1 | Test-StopGate.ps1 |
Tools
ci/godot/tools/: the tests that name the tool, or whose kit runs entered a function that starts it.
| Tool | Covered by |
|---|---|
bench.gd |
Test-BenchHotspots.ps1, Test-BenchSweep.ps1, Test-Deck.ps1, Test-ErrorCodes.ps1, Test-GpuValidation.ps1, Test-SelectJobs.ps1 |
editcheck.gd |
Test-EditCheck.ps1 |
flows.gd |
Test-Deck.ps1, Test-ErrorCodes.ps1, Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Flows.ps1, Test-Layout.ps1, Test-Localization.ps1, Test-MonoAudio.ps1 and 6 more |
glyphs.gd |
Test-Localization.ps1 |
Heatmap.cs |
Test-Playtest.ps1 |
Initialize-HyperdotGame.ps1 |
Test-Context.ps1, Test-DoctorFixture.ps1, Test-InitializeGame.ps1 |
Invoke-Canary.ps1 |
Test-UpdatePins.ps1 |
layout.gd |
Test-Deck.ps1, Test-Layout.ps1 |
notices.gd |
Test-Credits.ps1, Test-ErrorCodes.ps1 |
Palette.cs |
Test-Palette.ps1 |
placement.gd |
Test-Placement.ps1 |
Publish-PrComment.ps1 |
Test-PrComment.ps1, self-test.yml csharp (through godot.yml test), self-test.yml explicit-runners (through godot.yml test), self-test.yml zero-config (through godot.yml test) |
Publish-Release.ps1 |
self-test.yml csharp (through godot.yml release) |
Sfxr.cs |
Test-Sfx.ps1 |
shot.gd |
Test-Capture.ps1, Test-ColorVision.ps1, Test-Deck.ps1, Test-ErrorCodes.ps1, Test-GpuValidation.ps1, Test-Palette.ps1, Test-ShotChanged.ps1 |
Test-Skills.ps1 |
Test-SkillFixtures.ps1, Test-UpdatePins.ps1, self-test.yml lint |
textsize.gd |
Test-Deck.ps1, Test-TextSize.ps1 |
Update-AddonStatus.ps1 |
Test-Addons.ps1 |
Update-Changelog.ps1 |
Test-Changelog.ps1 |
Update-Versions.ps1 |
Test-UpdatePins.ps1, Test-WorkflowLint.ps1 |
validate_logger.gd |
Test-Deck.ps1 (through validate.gd), Test-ErrorCodes.ps1 (through validate.gd), Test-ErrorKeys.ps1 (through validate.gd), Test-Flaky.ps1 (through validate.gd), Test-Flows.ps1 (through validate.gd), Test-Layout.ps1 (through validate.gd), Test-Localization.ps1 (through validate.gd), Test-MonoAudio.ps1 (through validate.gd) and 7 more |
validate.gd |
Test-Deck.ps1, Test-ErrorCodes.ps1, Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Flows.ps1, Test-Layout.ps1, Test-Localization.ps1, Test-MonoAudio.ps1 and 7 more |
web-smoke.mjs |
Test-ErrorCodes.ps1 |
Skills
.agents/skills/: every skill is checked by the skill validator and needs an entry in docs/help.md; other tests listed run something the skill quotes.
| Skill | Covered by |
|---|---|
algorithms |
Test-Help.ps1, Test-Skills.ps1 |
animation |
Test-Help.ps1, Test-Skills.ps1 |
anti-cheat |
Test-Help.ps1, Test-Skills.ps1 |
asset-pipeline |
Test-Help.ps1, Test-Skills.ps1 |
automation-hooks |
Test-Help.ps1, Test-Skills.ps1 |
camera |
Test-Help.ps1, Test-Skills.ps1 |
console-cert |
Test-Help.ps1, Test-Skills.ps1 |
debug-tools |
Test-Capture.ps1, Test-Help.ps1, Test-Skills.ps1 |
determinism |
Test-Help.ps1, Test-Skills.ps1 |
game |
Test-Help.ps1, Test-Plan.ps1, Test-Skills.ps1 |
game-ai |
Test-Help.ps1, Test-Skills.ps1 |
game-audio |
Test-Help.ps1, Test-Skills.ps1 |
game-data |
Test-Help.ps1, Test-Skills.ps1 |
game-design |
Test-Data.ps1, Test-Help.ps1, Test-Skills.ps1 |
game-juice |
Test-Help.ps1, Test-Skills.ps1 |
game-plan |
Test-Context.ps1, Test-Help.ps1, Test-Plan.ps1, Test-Skills.ps1 |
game-playtest |
Test-Help.ps1, Test-Skills.ps1 |
game-telemetry |
Test-Help.ps1, Test-Skills.ps1 |
godot-addons |
Test-Help.ps1, Test-Skills.ps1 |
godot-diagnose |
Test-Help.ps1, Test-Skills.ps1 |
godot-editor-bridge |
Test-Help.ps1, Test-Skills.ps1 |
godot-export-release |
Test-Help.ps1, Test-Skills.ps1 |
godot-pitfalls |
Test-Help.ps1, Test-Skills.ps1 |
godot-shaders-vfx |
Test-SkillShaders.ps1, Test-Help.ps1, Test-Skills.ps1 |
godot-test-loop |
Test-Help.ps1, Test-Skills.ps1 |
input |
Test-Help.ps1, Test-Skills.ps1 |
kit |
Test-Help.ps1, Test-Skills.ps1 |
kit-review |
Test-Help.ps1, Test-Skills.ps1 |
legal |
Test-Help.ps1, Test-Skills.ps1 |
llm |
Test-Help.ps1, Test-Skills.ps1 |
localization |
Test-Help.ps1, Test-Skills.ps1 |
look |
Test-Help.ps1, Test-Skills.ps1 |
math |
Test-Help.ps1, Test-Skills.ps1 |
mobile-web |
Test-Help.ps1, Test-Skills.ps1 |
modding |
Test-Help.ps1, Test-Skills.ps1 |
multiplayer |
Test-Help.ps1, Test-Skills.ps1 |
narrative |
Test-Help.ps1, Test-Skills.ps1 |
patterns |
Test-Help.ps1, Test-Skills.ps1 |
performance |
Test-Help.ps1, Test-Skills.ps1 |
procgen |
Test-Help.ps1, Test-Skills.ps1 |
progression |
Test-Help.ps1, Test-Skills.ps1 |
release-readiness |
Test-Help.ps1, Test-Skills.ps1 |
retro |
Test-Help.ps1, Test-Skills.ps1 |
saves |
Test-Help.ps1, Test-Skills.ps1 |
servers |
Test-Help.ps1, Test-Skills.ps1 |
steam |
Test-Help.ps1, Test-Skills.ps1 |
store-page |
Test-Help.ps1, Test-Skills.ps1 |
typography |
Test-Help.ps1, Test-Skills.ps1, Test-Typography.ps1 |
ui-accessibility |
Test-Help.ps1, Test-Skills.ps1 |
ui-flows |
Test-Help.ps1, Test-Skills.ps1 |
verify-before-done |
Test-Help.ps1, Test-Skills.ps1 |
weekly-review |
Test-Help.ps1, Test-Skills.ps1 |
xr |
Test-Help.ps1, Test-Skills.ps1, Test-Xr.ps1 |
Subagents
agents/: the Claude Code plugin's subagents.
| Subagent | Covered by |
|---|---|
godot-architect |
Test-Handoffs.ps1, Test-Help.ps1 |
godot-verifier |
Test-Context.ps1, Test-Handoffs.ps1, Test-Help.ps1, Test-Plan.ps1, Test-SelectJobs.ps1, self-test.yml init: Agent efficiency |
Workflow jobs, actions, hooks and the GitLab template
A job of self-test.yml is a test itself (it lists what it runs); another workflow's job is covered by the self-test jobs that call it and the tests of the scripts it runs.
| Job | Covered by |
|---|---|
| canary.yml/try | Test-UpdatePins.ps1; weekly against new releases; Test-UpdatePins.ps1 checks its exit checks and pairing; Test-WorkflowLint.ps1 checks that it has no write permission or token |
| canary.yml/propose | none; opens the pull request and the issues with the write token, from the patch try made; Test-WorkflowLint.ps1 checks that it runs no upstream code; the rest needs the real repository |
| evals.yml/evals | none; runs claude plugin eval, which costs money; started by hand |
| godot.yml/test | Test-PrComment.ps1, self-test.yml csharp, self-test.yml explicit-runners, self-test.yml zero-config |
| godot.yml/export | self-test.yml csharp, self-test.yml explicit-runners, self-test.yml zero-config |
| godot.yml/release | self-test.yml csharp |
| pages.yml/build | Test-SelectJobs.ps1, Test-Site.ps1 |
| pages.yml/deploy | none; publishes the site the build job made and Test-Site.ps1 checked; runs on main only |
| project-sync.yml/live | Test-ProjectSync.ps1; runs Test-ProjectSync.ps1 -Live against GitHub on a private project; needs the HYPERDOT_PROJECT_TOKEN secret |
| release.yml/release | Test-ReleaseNotes.ps1, Test-SelectJobs.ps1, Test-WorkflowLint.ps1 |
| self-test.yml/lint | itself (on every pull request, push to main and nightly run); runs Test-Addons.ps1, Test-ArchitectureFixtures.ps1, Test-AssetManifest.ps1, Test-Changelog.ps1, Test-Context.ps1, Test-CoverageMap.ps1, Test-CrashRetry.ps1, Test-Data.ps1, Test-Detect.ps1, Test-DocLinks.ps1, Test-DoctorFixture.ps1, Test-DotnetTempDir.ps1, Test-DownloadFailed.ps1, Test-EvalGraders.ps1, Test-FailureDelta.ps1, Test-GameVersion.ps1, Test-GitLabTemplate.ps1, Test-Handoffs.ps1, Test-Help.ps1, Test-HyperdotLabel.ps1, Test-InitializeGame.ps1, Test-InputHash.ps1, Test-InstallAddon.ps1, Test-InstallLock.ps1, Test-JuiceLog.ps1, Test-KitPaths.ps1, Test-LibNames.ps1, Test-OldState.ps1, Test-Plan.ps1, Test-Platforms.ps1, Test-Playtest.ps1, Test-PowerShellPatterns.ps1, Test-PrComment.ps1, Test-ProcessTimeout.ps1, Test-ProjectSync.ps1, Test-ReleaseNotes.ps1, Test-RepoHygiene.ps1, Test-ReviewPairs.ps1, Test-SceneCount.ps1, Test-SelectJobs.ps1, Test-Sfx.ps1, Test-Site.ps1, Test-SkillFixtures.ps1, Test-Steam.ps1, Test-StopGate.ps1, Test-Store.ps1, Test-Telemetry.ps1, Test-TestDuration.ps1, Test-TestsNotRun.ps1, Test-TokenBenchmark.ps1, Test-UpdatePins.ps1, Test-Workflow.ps1, Test-WorkflowLint.ps1, Test-Skills.ps1, 2 step(s) of its own |
| self-test.yml/zero-config | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run) |
| self-test.yml/csharp | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run) |
| self-test.yml/explicit-runners | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run) |
| self-test.yml/init | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run); runs Test-ErrorKeys.ps1, Test-Flaky.ps1, Test-Localization.ps1, Test-Placement.ps1, Test-ReportPins.ps1, Test-ResultsDir.ps1, Test-SkillShaders.ps1, Test-Typography.ps1, Test-Xr.ps1, 5 step(s) of its own |
| self-test.yml/measure | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run); runs Test-Audio.ps1, Test-BenchHotspots.ps1, Test-BenchSweep.ps1, Test-Capture.ps1, Test-ColorVision.ps1, Test-Credits.ps1, Test-Deck.ps1, Test-EditCheck.ps1, Test-ErrorCodes.ps1, Test-Flows.ps1, Test-KitPaths.ps1, Test-Layout.ps1, Test-MonoAudio.ps1, Test-Palette.ps1, Test-Playthrough.ps1, Test-ShotChanged.ps1, Test-Soak.ps1, Test-StaleTres.ps1, Test-TextSize.ps1, 4 step(s) of its own |
| self-test.yml/game-benchmark | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run); runs Test-BenchmarkIsolation.ps1, Test-GameBenchmark.ps1, Test-GameProgramme.ps1, 1 step(s) of its own |
| self-test.yml/changes | itself (on every pull request, push to main and nightly run) |
| self-test.yml/game-programme | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run); runs Test-GameProgramme.ps1, 1 step(s) of its own |
| self-test.yml/field-test | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run); runs Test-FieldTest.ps1, 1 step(s) of its own |
| self-test.yml/web | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run); runs Test-BuildSize.ps1, Test-GpuValidation.ps1, Test-Web.ps1 |
| self-test.yml/action | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run) |
| self-test.yml/local-windows | itself (on a pull request when the files it exercises change; always on pushes to main and in the nightly run); runs Test-CrashRetry.ps1, Test-ProcessTimeout.ps1, 7 step(s) of its own |
| self-test.yml/coverage | itself (on every pull request, push to main and nightly run) |
| self-test.yml/record | itself (on every pull request, push to main and nightly run) |
| token-benchmark.yml/plan | Test-BenchmarkIsolation.ps1, Test-FieldTest.ps1, Test-GameBenchmark.ps1, Test-GameProgramme.ps1, Test-TokenBenchmark.ps1; plans the matrix for the benchmark job; started by hand |
| token-benchmark.yml/benchmark | Test-BenchmarkIsolation.ps1, Test-FieldTest.ps1, Test-GameBenchmark.ps1, Test-GameProgramme.ps1, Test-SelectJobs.ps1, Test-TokenBenchmark.ps1, Test-WorkflowLint.ps1; each real run costs money; -DryRun is what the self-test runs |
| token-benchmark.yml/calibrate | Test-GameBenchmark.ps1, Test-ReviewPairs.ps1 |
| actions/apt | self-test.yml init, self-test.yml lint, self-test.yml measure, self-test.yml web |
| actions/godot | self-test.yml action, self-test.yml csharp (through godot.yml), self-test.yml explicit-runners (through godot.yml), self-test.yml zero-config (through godot.yml) |
| hooks/edit-check.ps1 | Test-EditCheck.ps1, Test-SelectJobs.ps1 |
| hooks/project-sync.ps1 | Test-ProjectSync.ps1 |
| hooks/stop-gate.ps1 | Test-SelectJobs.ps1, Test-StopGate.ps1, self-test.yml init: Agent efficiency |
| gitlab/hyperdot.gitlab-ci.yml | Test-GitLabTemplate.ps1, Test-Plan.ps1 |
| gitlab/Invoke-Hyperdot.ps1 | Test-GitLabTemplate.ps1 |
Gaps
- Code
export-no-keystore - Code
export-template-missing - Code
checksum-mismatch - Job
canary.yml/propose: opens the pull request and the issues with the write token, from the patchtrymade;Test-WorkflowLint.ps1checks that it runs no upstream code; the rest needs the real repository - Job
evals.yml/evals: runsclaude plugin eval, which costs money; started by hand - Job
pages.yml/deploy: publishes the site the build job made andTest-Site.ps1checked; runs on main only