원클릭으로
post-build-validation
Validate side effects after build/deploy operations with graceful degradation
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Validate side effects after build/deploy operations with graceful degradation
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
How to create reference documentation for complex coordinate systems and building constraints
Prevents subsystems from modifying blocks within placed building volumes using 3D bounding box clipping
Correctly place directional blocks (doors, levers, torches, signs, banners, stairs) in Minecraft via RCON
Ensures all build areas are chunk-loaded before placing blocks via /fill commands
NuGet packaging patterns for the Aspire.Hosting.Minecraft package
Pattern for attaching infrastructure (canals, beacons, paths) to each building in the village
| name | post-build-validation |
| description | Validate side effects after build/deploy operations with graceful degradation |
| domain | error-handling, resilience, observability |
| confidence | low |
| source | earned |
When build or deployment operations rely on external systems (APIs, remote commands, databases), individual operations can fail silently or be rate-limited. Post-build validation helps detect these failures and provides observability without blocking the entire process.
Validate After Build, Not During:
Graceful Degradation:
LogWarning() with structured logging (include coordinates, expected values)Verification Helper Pattern:
private async Task<bool> VerifyBlockAsync(int x, int y, int z, string expectedBlock, CancellationToken ct)
{
try
{
var response = await rcon.SendCommandAsync($"testforblock {x} {y} {z} {expectedBlock}", ct);
return !response.Contains("did not match", StringComparison.OrdinalIgnoreCase);
}
catch
{
return false; // Fail gracefully on exceptions
}
}
Structure-Specific Validation:
private async Task BuildWatchtowerAsync(int x, int y, int z, CancellationToken ct)
{
// ... build operations ...
await ValidateWatchtowerAsync(x, y, z, ct);
}
private async Task ValidateWatchtowerAsync(int x, int y, int z, CancellationToken ct)
{
if (!await VerifyBlockAsync(x + 3, y + 4, z + 1, "minecraft:glass_pane", ct))
logger.LogWarning("Validation failed at ({X},{Y},{Z})", x + 3, y + 4, z + 1);
}
StructureBuilder.cs:
Build*Async() method calls corresponding Validate*Async() methodVerifyBlockAsync() helper for consistent validation logicDon't throw exceptions from validation:
throw new ValidationException("Block mismatch")logger.LogWarning("Block mismatch at {X},{Y},{Z}", x, y, z)Don't validate everything:
Don't block the build process: