Files
OBLITERATUS/ci/conditional-test-policy.json
T

175 lines
6.9 KiB
JSON

{
"schema_version": 1,
"owner": "OBLITERATUS maintainers",
"workflow": ".github/workflows/conditional-tests.yml",
"cadence": "weekly and on published releases; manual dispatch is always available",
"evidence_retention_days": 30,
"maximum_evidence_age_days": 8,
"resources": {
"tiny_model": {
"repository": "hf-internal-testing/tiny-random-gpt2",
"revision": "71034c5d8bde858ff824298bdedc65515b97d2b9",
"trust_remote_code": false,
"cache": "GitHub Actions cache keyed by repository, revision, runner OS, and Python version",
"timeout_minutes": 20
},
"cuda_torch": {
"version_source": "Exact base version from the locked CPU Torch package",
"backend": "cu130",
"index": "https://download.pytorch.org/whl/cu130",
"installer": "uv pip with UV_TORCH_BACKEND=cu130",
"rationale": "Mandatory Linux CI stays CPU-only; the selected CUDA lane replaces only Torch with the same-version official CUDA build and verifies dependency consistency"
}
},
"environment_waivers": [
{
"gate": "cuda-runtime",
"reason": "Titan has a verified RTX 4090 and Gitea GPU runner, but no GitHub self-hosted CUDA runner is registered or selectable for this workflow.",
"issue": "https://github.com/elder-plinius/OBLITERATUS/issues/110",
"opened": "2026-08-16",
"expires": "2026-09-15",
"blocked_claim": "CUDA runtime support, compatibility, correctness, and performance are not claimed while this waiver is active."
},
{
"gate": "bitsandbytes-runtime",
"reason": "Titan has a verified RTX 4090 and Gitea GPU runner, but no GitHub self-hosted CUDA and bitsandbytes runner is registered or selectable for this workflow.",
"issue": "https://github.com/elder-plinius/OBLITERATUS/issues/110",
"opened": "2026-08-16",
"expires": "2026-09-15",
"blocked_claim": "bitsandbytes runtime support, compatibility, correctness, and performance are not claimed while this waiver is active."
},
{
"gate": "mps-runtime",
"reason": "Mutsu is a verified 16 GB Apple M4 builder, but no GitHub self-hosted MPS runner is registered or selectable for this workflow.",
"issue": "https://github.com/elder-plinius/OBLITERATUS/issues/110",
"opened": "2026-08-16",
"expires": "2026-09-15",
"blocked_claim": "Apple MPS runtime support, compatibility, correctness, and performance are not claimed while this waiver is active."
},
{
"gate": "mlx-runtime",
"reason": "Mutsu is a verified 16 GB Apple M4 builder, but no GitHub self-hosted MLX runner is registered or selectable for this workflow.",
"issue": "https://github.com/elder-plinius/OBLITERATUS/issues/110",
"opened": "2026-08-16",
"expires": "2026-09-15",
"blocked_claim": "Apple MLX runtime support, compatibility, correctness, and performance are not claimed while this waiver is active."
},
{
"gate": "remote-execution",
"reason": "No least-privileged remote test target or required repository credentials are configured.",
"issue": "https://github.com/elder-plinius/OBLITERATUS/issues/110",
"opened": "2026-08-16",
"expires": "2026-09-15",
"blocked_claim": "Remote execution support, compatibility, correctness, and performance are not claimed while this waiver is active."
}
],
"gates": [
{
"id": "model-download-runtime",
"job": "model_runtime",
"marker": "network and download",
"runner": "ubuntu-latest",
"prerequisites": "public HTTPS access to the pinned tiny model",
"expected_cost": "under 20 runner-minutes and 100 MB download",
"coverage_paths": [
"obliteratus/abliterate.py",
"obliteratus/auto_obliterate.py",
"obliteratus/bayesian_optimizer.py",
"obliteratus/evaluation/baselines.py",
"obliteratus/evaluation/evaluator.py",
"obliteratus/informed_pipeline.py",
"obliteratus/lora_ablation.py",
"obliteratus/sweep.py"
]
},
{
"id": "external-evaluation",
"job": "model_runtime",
"marker": "network and download",
"runner": "ubuntu-latest",
"prerequisites": "public HTTPS access to the pinned tiny model",
"expected_cost": "included in model-runtime",
"coverage_paths": [
"obliteratus/evaluation/heretic_eval.py",
"obliteratus/evaluation/lm_eval_integration.py",
"obliteratus/tourney.py"
]
},
{
"id": "network-services",
"job": "network_services",
"marker": "network",
"runner": "ubuntu-latest",
"prerequisites": "loopback networking; no credentials",
"expected_cost": "under 5 runner-minutes",
"coverage_paths": [
"obliteratus/bestiary_sync.py",
"obliteratus/models_client.py",
"obliteratus/watchtower.py"
]
},
{
"id": "operator-ui",
"job": "operator_ui",
"marker": "operator_ui",
"runner": "ubuntu-latest",
"prerequisites": "locked spaces extra; no public listener",
"expected_cost": "under 10 runner-minutes",
"coverage_paths": [
"obliteratus/interactive.py",
"obliteratus/local_ui.py",
"obliteratus/ui_watchtower.py"
]
},
{
"id": "cuda-runtime",
"job": "cuda",
"marker": "gpu",
"runner": "self-hosted, linux, x64, cuda",
"prerequisites": "ENABLE_CUDA_GATE=true and a dedicated CUDA runner",
"expected_cost": "under 15 self-hosted runner-minutes",
"coverage_paths": [
"obliteratus/device.py",
"obliteratus/models/loader.py",
"obliteratus/models/quant_dequant.py"
]
},
{
"id": "bitsandbytes-runtime",
"job": "cuda",
"marker": "gpu",
"runner": "self-hosted, linux, x64, cuda",
"prerequisites": "ENABLE_CUDA_GATE=true, NVIDIA CUDA, and locked bitsandbytes",
"expected_cost": "included in cuda",
"coverage_paths": ["obliteratus/models/loader.py"]
},
{
"id": "mps-runtime",
"job": "mps",
"marker": "mps",
"runner": "self-hosted, macOS, ARM64, mps",
"prerequisites": "ENABLE_MPS_GATE=true and an Apple Silicon MPS runner",
"expected_cost": "under 10 self-hosted runner-minutes",
"coverage_paths": ["obliteratus/device.py"]
},
{
"id": "mlx-runtime",
"job": "mlx",
"marker": "mlx",
"runner": "self-hosted, macOS, ARM64, mlx",
"prerequisites": "ENABLE_MLX_GATE=true and an Apple Silicon runner with MLX",
"expected_cost": "under 15 self-hosted runner-minutes",
"coverage_paths": ["obliteratus/mlx_backend.py"]
},
{
"id": "remote-execution",
"job": "remote",
"marker": "remote",
"runner": "ubuntu-latest",
"prerequisites": "ENABLE_REMOTE_GATE=true plus least-privileged SSH host, user, key, and pinned known_hosts secrets",
"expected_cost": "under 5 runner-minutes plus provider charges",
"coverage_paths": ["obliteratus/remote.py"]
}
]
}