version: "1"
project:
  id: "obliteratus"
  displayName: "OBLITERATUS"
  family: "research-tool"
repository:
  canonicalRemote: "origin"
  baseBranch: "main"
  expectedSlug: "elder-plinius/OBLITERATUS"
  ciRemote: "origin"
tracker:
  authorityRemote: "origin"
  provider: "github"
  expectedActor: "jmagly"
delivery:
  requireCiGreen: true
  requireCurrentHead: true
  defaultMergeMethod: "merge"
  allowedMergeMethods: ["merge"]
validation:
  quick:
    - "python -m ruff check --select F app.py obliteratus tests scripts/check_coverage_thresholds.py scripts/check_supply_chain_policy.py scripts/gemma4_12b_recursive_loop.py"
    - "uv lock --check"
    - "mkdir -p test-results && python scripts/select_pr_tests.py --base-ref origin/main > test-results/selected-tests.txt && xargs python -m pytest --cov=app --cov-branch --cov-fail-under=0 --cov-report=json:test-results/coverage-pr-core.json < test-results/selected-tests.txt"
    - "python scripts/check_coverage_thresholds.py test-results/coverage-pr-core.json --min-line 0 --min-branch 0 --min-changed 50 --base-ref origin/main"
    - "python scripts/check_conditional_policy.py && python scripts/check_test_risk_map.py"
  full:
    - "mkdir -p test-results && python -m pytest -m 'not slow and not gpu and not mps and not mlx and not network and not download and not remote and not operator_ui' --cov-branch --cov-fail-under=0 --cov-report=json:test-results/coverage-release.json"
    - "python scripts/check_coverage_thresholds.py test-results/coverage-release.json --min-line 75 --min-branch 60 --min-file obliteratus/device.py=70 --min-file obliteratus/models/loader.py=70 --min-file obliteratus/architecture_profiles.py=70 --min-file obliteratus/cli.py=70 --min-file obliteratus/mlx_backend.py=70 --min-file obliteratus/evaluation/metrics.py=70 --min-file obliteratus/evaluation/advanced_metrics.py=70 --min-file obliteratus/reporting/report.py=70 --min-file obliteratus/community.py=70 --min-file obliteratus/telemetry.py=70"
    - "python scripts/check_quality_policy.py --policy ci/test-quality-policy.json --coverage test-results/coverage-release.json && python scripts/check_conditional_policy.py && python scripts/check_test_risk_map.py"
    - "python -c 'import obliteratus; print(obliteratus.__version__)'"
    - "python -m obliteratus --help"
  qualityPolicy:
    pullRequestChangedLineCoverageFloor: 50
    requireBehaviorTests: true
    fullSuiteTrigger: "release-readiness-and-tagged-validation"
  documentation:
    - "python -m ruff check --select F app.py obliteratus tests scripts/check_coverage_thresholds.py scripts/check_supply_chain_policy.py scripts/gemma4_12b_recursive_loop.py"
  researchIntegrity:
    - "python -m pytest tests/test_advanced_metrics.py tests/test_breakthrough_modules.py tests/test_community.py"
releaseEvidence:
  artifactType: "source-zip"
  hashAlgorithm: "sha256"
  provenanceFormat: "slsa-v1"
  attestationFormat: "in-toto"
  signingMode: "sigstore-keyless"
  sbomFormat: "cyclonedx"
  snapshotOnce: true
  verifyBeforePromotion: true
riskSurfaces:
  - id: "model-loading"
    paths: ["obliteratus/models/**", "obliteratus/device.py", "scripts/**"]
    concerns: ["remote-code-execution", "checkpoint-deserialization", "secret-handling", "device-placement"]
    requiredChecks: ["python -m pytest tests/test_strategies.py tests/test_module_imports.py"]
  - id: "abliteration-core"
    paths: ["obliteratus/abliterate.py", "obliteratus/strategies/**"]
    concerns: ["numerical-correctness", "model-integrity", "quantized-weight-handling"]
    requiredChecks: ["python -m pytest tests/test_abliterate.py"]
  - id: "research-metrics"
    paths: ["obliteratus/evaluation/**", "obliteratus/analysis/**", "paper/**", "community_results/**"]
    concerns: ["metric-correctness", "reproducibility", "provenance", "citation-integrity"]
    requiredChecks: ["python -m pytest tests/test_advanced_metrics.py tests/test_breakthrough_modules.py tests/test_community.py"]
  - id: "user-contracts"
    paths: ["obliteratus/cli.py", "obliteratus/local_ui.py", "app.py", "notebooks/**"]
    concerns: ["cli-contract", "ui-contract", "platform-compatibility", "notebook-reproducibility"]
    requiredChecks: ["python -m pytest tests/test_cli.py tests/test_module_imports.py", "python -m obliteratus --help"]
  - id: "ci-supply-chain"
    paths: [".github/workflows/**", "ci/**", "docs/SUPPLY_CHAIN_POLICY.md", "pyproject.toml", "scripts/check_supply_chain_policy.py", "uv.lock"]
    concerns: ["workflow-permissions", "dependency-pinning", "untrusted-pull-request-code"]
    requiredChecks: ["uv lock --check", "python -m pytest tests/test_ci_policy.py tests/test_supply_chain_policy.py"]
research:
  corpusPaths: ["obliteratus/prompts.py", "community_results/**"]
  evidencePaths: ["paper/**", "docs/**", "community_results/**"]
  provenanceRequired: true
  citationVerificationRequired: true
security:
  disclosureUrl: "https://github.com/elder-plinius/OBLITERATUS/blob/main/SECURITY.md"
  sensitiveDataPaths: [".env", "**/*token*", "community_results/**"]
  mutationRequiresExplicitApproval: true
support:
  requiredEnvironmentFields: ["version", "operating-system", "runtime", "model", "hardware", "reproduction"]
  translationPolicy: "validated-only"
