Files
imbad0202__academic-researc…/scripts/_ci_pytest_manifest.toml
T
Edward Cheng-I Wu 86bf0e5c2c feat: add hermetic tortured-phrase screening (#699)
Refs #660. Measurement and issue closure follow in the separately preregistered post-main mechanical conformance PR.
2026-08-10 12:28:42 +08:00

470 lines
12 KiB
TOML

# CI pytest invocation manifest (issue #156)
#
# Single source of truth for the pytest invocations spec-consistency.yml runs
# file-by-file. The workflow consumes this via `python scripts/run_ci_pytest_manifest.py`.
#
# Drift guard: scripts/check_ci_pytest_manifest.py validates:
# - every `path` exists on disk
# - `id` values unique
# - (path, args) tuples unique (so the manifest stays a single source, not a
# parallel list)
# - `args` is a list of strings
# - spec-consistency.yml has no direct `pytest scripts/test_*.py` outside the runner
#
# Out of scope (deliberate):
# - whether every `scripts/test_*.py` on disk is listed here (41 currently
# unlisted; that's a separate policy decision, see #156 follow-up)
# - `python3 -m unittest scripts.test_*` invocations (different runner family;
# stays inline in spec-consistency.yml)
#
# Adding a new entry:
# 1. add a [[pytest]] block with a unique `id`, the test file `path`, and
# optional `args` (list of strings, passed to pytest verbatim).
# 2. run `python scripts/check_ci_pytest_manifest.py` to validate.
# 3. run `python scripts/run_ci_pytest_manifest.py --id <id>` to smoke-test
# locally before opening a PR.
[[pytest]]
id = "v3.7.1-sha-gate"
path = "scripts/test_check_v3_6_8_pattern_protection.py"
[[pytest]]
id = "v3.7.1-trust-chain-frontmatter"
path = "scripts/test_check_v3_6_8_frontmatter_trust_schema.py"
[[pytest]]
id = "v3.7.1-audit-scope-block"
path = "scripts/test_check_v3_6_8_audit_scope_block.py"
[[pytest]]
id = "v3.7.1-cite-time-provenance"
path = "scripts/test_check_v3_6_8_cite_provenance_pipeline.py"
[[pytest]]
id = "v3.7.3-three-layer-citation"
path = "scripts/test_check_v3_7_3_three_layer_citation.py"
[[pytest]]
id = "v3.9.0-triangulation"
path = "scripts/test_check_v3_9_0_triangulation.py"
[[pytest]]
id = "v3.10-firm-rules-sync"
path = "scripts/test_check_firm_rules_sync.py"
[[pytest]]
id = "v3.10-policy-layer"
path = "scripts/test_check_v3_10_policy.py"
[[pytest]]
id = "268-nested-commitment-ledger"
path = "scripts/test_check_268_nested_commitment_ledger.py"
[[pytest]]
id = "v3.9.2-phase-boundary"
path = "scripts/test_check_v3_9_2_phase_boundary.py"
[[pytest]]
id = "v3.9.2-pipeline-integrity"
path = "scripts/test_check_pipeline_integrity.py"
[[pytest]]
id = "v3.7.1-audit-snapshot-section-0"
path = "scripts/test_audit_snapshot_render_section_0.py"
[[pytest]]
id = "v3.6.7-phase-6.3-lint"
path = "scripts/test_check_audit_artifact_consistency.py"
[[pytest]]
id = "v3.6.7-pattern-eval-manifest"
path = "scripts/test_check_pattern_eval_manifest.py"
[[pytest]]
id = "v3.6.7-pattern-eval-unit"
path = "scripts/test_pattern_eval_runtime.py"
args = ["-k", "micro or run_id or coverage or phase_inventory or fixture_phase or (synthetic and not supersession)"]
[[pytest]]
id = "v3.6.7-pattern-eval-integration"
path = "scripts/test_pattern_eval_runtime.py"
args = ["-k", "integration or (synthetic and supersession)"]
[[pytest]]
id = "v3.6.7-wrapper-e2e"
path = "scripts/test_run_codex_audit_e2e.py"
[[pytest]]
id = "kong-259-domain-evidence-profile"
path = "scripts/test_check_domain_evidence_profile.py"
[[pytest]]
id = "v3.10-184-evals-gold-set"
path = "scripts/test_check_evals_gold_set.py"
[[pytest]]
id = "kong-257-rq-framing-patterns"
path = "scripts/test_check_rq_framing_patterns.py"
[[pytest]]
id = "issue-215-field-norm-severity"
path = "scripts/test_check_field_norm_severity.py"
[[pytest]]
id = "issue-215-field-norm-coverage"
path = "scripts/test_check_215_field_norm.py"
[[pytest]]
id = "issue-216-surface-form-parity-gold"
path = "scripts/test_check_surface_form_parity.py"
[[pytest]]
id = "issue-216-surface-form-coverage"
path = "scripts/test_check_216_surface_form.py"
[[pytest]]
id = "v3.10-184-run-evals"
path = "scripts/test_run_evals.py"
[[pytest]]
id = "v3.10-184-check-ranking-lift"
path = "scripts/test_check_ranking_lift.py"
[[pytest]]
id = "v3.10-184-eval-threshold-gate"
path = "scripts/test__eval_threshold_gate.py"
[[pytest]]
id = "v3.10-184-evals-citation-extraction"
path = "scripts/test_evals_citation_extraction.py"
[[pytest]]
id = "v3.10-184-evals-lift-report-schema"
path = "scripts/test_evals_lift_report_schema.py"
[[pytest]]
id = "v3.10-184-eval-harness-workflow"
path = "scripts/test_eval_harness_workflow.py"
[[pytest]]
id = "184-render-eval-comment"
path = "scripts/test_render_eval_comment.py"
[[pytest]]
id = "v3.10-134-write-scope-guard"
path = "scripts/test_ars_write_scope_guard.py"
[[pytest]]
id = "454-write-scope-guard-launcher"
path = "scripts/test_run_guard_launcher.py"
[[pytest]]
id = "v3.10-134-write-scope-lint-mutation"
path = "scripts/test_check_v3_10_134_write_scope.py"
[[pytest]]
id = "v3.11-citation-existence-policy"
path = "scripts/test_citation_existence_policy.py"
# #182 Delta 4+5 data-layer tests (shipped via #313/#315 but not wired into the
# manifest at the time; backfilled here so the runner actually executes them).
[[pytest]]
id = "v3.10-182-citation-verification-summary"
path = "scripts/test_citation_verification_summary.py"
[[pytest]]
id = "v3.10-182-verification-gate"
path = "scripts/test_verification_gate.py"
[[pytest]]
id = "v3.10-182-arxiv-client"
path = "scripts/test_arxiv_client.py"
[[pytest]]
id = "511-transport-fixture-citation-gate"
path = "scripts/test_transport_fixture_citation_gate.py"
[[pytest]]
id = "511-degradation-registry"
path = "scripts/test_check_degradation_registry.py"
[[pytest]]
id = "v3.10-182-verification-cache"
path = "scripts/test_verification_cache.py"
[[pytest]]
id = "v3.10-182-verify-passport-cli"
path = "scripts/test_verify_passport_cli.py"
[[pytest]]
id = "346-349-cross-model-grounding-guards"
path = "scripts/test_cross_model_verification_guards.py"
[[pytest]]
id = "346-349-cross-model-sync-lint"
path = "scripts/test_check_cross_model_verification_sync.py"
[[pytest]]
id = "453-compat-verdict-normalization"
path = "scripts/test_normalize_compat_verdict.py"
[[pytest]]
id = "361-judge-prompt-version-drift"
path = "scripts/test_check_judge_prompt_version.py"
[[pytest]]
id = "272-instruction-data-boundary-mutation"
path = "scripts/test_check_instruction_data_boundary.py"
[[pytest]]
id = "272-runtime-injection-boundary-pebble"
path = "scripts/test_runtime_injection_boundary_xfail.py"
[[pytest]]
id = "250-title-fuzzy-false-positive-pin"
path = "scripts/test_title_fuzzy_false_positive.py"
[[pytest]]
id = "396-rubric-weight-consistency"
path = "scripts/test_check_rubric_weight_consistency.py"
[[pytest]]
id = "392-citation-verification-intake"
path = "scripts/test_check_392_citation_verification_intake.py"
[[pytest]]
id = "394-submission-package-verifier"
path = "scripts/test_verify_submission_package.py"
[[pytest]]
id = "394-submission-policy-lint"
path = "scripts/test_check_394_submission_policy.py"
[[pytest]]
id = "439-format-profile-lint"
path = "scripts/test_check_439_format_profile.py"
[[pytest]]
id = "413-agents-mirror-sync"
path = "scripts/test_check_agents_mirror_sync.py"
[[pytest]]
id = "390-block-parser"
path = "scripts/test_block_parser.py"
[[pytest]]
id = "390-anchorize-draft"
path = "scripts/test_ars_anchorize_draft.py"
[[pytest]]
id = "390-apply-revision-patch"
path = "scripts/test_ars_apply_revision_patch.py"
[[pytest]]
id = "390-revision-patch-discipline-lint"
path = "scripts/test_check_390_revision_patch_discipline.py"
[[pytest]]
id = "release-gate-changelog-covers-merges"
path = "scripts/test_check_changelog_covers_merges.py"
[[pytest]]
id = "v3.9.4-temporal-verification"
path = "scripts/test_check_v3_9_4_temporal_verification.py"
[[pytest]]
id = "491-setup-cross-model-parity"
path = "scripts/test_check_setup_cross_model_parity.py"
[[pytest]]
id = "517-model-tiering-classification"
path = "scripts/test_check_model_tiering.py"
[[pytest]]
id = "524-tools-allowlist-lock"
path = "scripts/test_check_tools_allowlist.py"
[[pytest]]
id = "510-panel-synthesis-checker"
path = "scripts/test_check_panel_synthesis.py"
[[pytest]]
id = "574-schema-13-2-validator"
path = "scripts/test_check_sprint_contract.py"
[[pytest]]
id = "574-phase-conformance-checker"
path = "scripts/test_check_phase_conformance.py"
[[pytest]]
id = "574-role-scoped-contract-lint"
path = "scripts/test_check_role_scoped_contract.py"
[[pytest]]
id = "574-decision-contract-lint"
path = "scripts/test_check_decision_contract.py"
[[pytest]]
id = "528-pipeline-boundary-semantics"
path = "scripts/test_check_pipeline_boundary_semantics.py"
[[pytest]]
id = "527-handoff-envelope-fixtures"
path = "scripts/test_cross_model_handoff.py"
[[pytest]]
id = "527-handoff-contract-lint"
path = "scripts/test_check_cross_model_handoff_contract.py"
[[pytest]]
id = "544-update-reminder"
path = "scripts/test_ars_update_check.py"
[[pytest]]
id = "570-revision-token-conservation"
path = "scripts/test_check_revision_token_conservation.py"
[[pytest]]
id = "574-seeded-defect-fixtures"
path = "scripts/test_check_seeded_defect_fixtures.py"
[[pytest]]
id = "574-reviewer-data-fences"
path = "scripts/test_check_reviewer_data_fences.py"
[[pytest]]
id = "574-reviewer-finding-contract"
path = "scripts/test_check_reviewer_finding_contract.py"
[[pytest]]
id = "576-re-review-synthesis-checker"
path = "scripts/test_check_re_review_synthesis.py"
[[pytest]]
id = "670-non-ranking-revision-roadmap"
path = "scripts/test_revision_roadmap.py"
[[pytest]]
id = "670-revision-roadmap-integration"
path = "scripts/test_check_670_revision_roadmap_integration.py"
[[pytest]]
id = "576-persuasion-invariance-fixtures"
path = "scripts/test_check_persuasion_invariance_fixtures.py"
[[pytest]]
id = "608-e4-dispatch-harness"
path = "scripts/test_dispatch_e4_panel.py"
[[pytest]]
id = "616-e4-promotion-integrity"
path = "scripts/test_check_e4_promotion.py"
[[pytest]]
id = "616-e4-resume-record"
path = "scripts/test_resume_e4_record.py"
[[pytest]]
id = "611-reviewer-sprint-prompt-sync"
path = "scripts/test_check_reviewer_sprint_prompt_sync.py"
[[pytest]]
id = "610-receipt-enum-sync"
path = "scripts/test_check_receipt_enum_sync.py"
[[pytest]]
id = "610-step5-recompute-calculator"
path = "scripts/test_recompute_receipts.py"
[[pytest]]
id = "611-reviewer-role-label"
path = "scripts/test_check_reviewer_role_label.py"
[[pytest]]
id = "611-calibration-tiers"
path = "scripts/test_check_calibration_tiers.py"
[[pytest]]
id = "619-disclosure-closeout"
path = "scripts/test_check_619_disclosure_closeout.py"
[[pytest]]
id = "615-venue-disclosure-contract"
path = "scripts/test_venue_disclosure_contract.py"
[[pytest]]
id = "595-chinese-literature-client"
path = "scripts/test_chinese_literature_client.py"
[[pytest]]
id = "617-harness-retirement-generator"
path = "scripts/test_render_harness_retirement_issue.py"
[[pytest]]
id = "633-command-frontmatter-name"
path = "scripts/test_check_command_frontmatter_name.py"
[[pytest]]
id = "654-heldout-measurement-contract"
path = "scripts/test_check_heldout_measurement_report.py"
[[pytest]]
id = "665-human-subjects-output-contract"
path = "scripts/test_check_human_subjects_output_contract.py"
[[pytest]]
id = "666-human-subjects-authority"
path = "scripts/test_resolve_human_subjects_authority.py"
[[pytest]]
id = "667-submission-packet-manifest"
path = "scripts/test_build_submission_packet_manifest.py"
[[pytest]]
id = "667-submission-packet-integration"
path = "scripts/test_check_submission_packet_manifest_integration.py"
[[pytest]]
id = "681-content-coverage-advisory"
path = "scripts/test_content_coverage_advisory.py"
[[pytest]]
id = "681-content-coverage-integration"
path = "scripts/test_check_content_coverage_advisory_integration.py"
[[pytest]]
id = "680-human-subjects-reference-migration"
path = "scripts/test_check_human_subjects_reference_migration.py"
[[pytest]]
id = "678-bibliographic-integrity-signals"
path = "scripts/test_check_bibliographic_integrity_signals.py"
[[pytest]]
id = "660-tortured-phrase-screening"
path = "scripts/test_tortured_phrase_screening.py"
[[pytest]]
id = "660-tortured-phrase-integration"
path = "scripts/test_check_tortured_phrase_screening_integration.py"
[[pytest]]
id = "651-retraction-status"
path = "scripts/test_retraction_status.py"
[[pytest]]
id = "668-committee-correspondence"
path = "scripts/test_check_committee_correspondence.py"
[[pytest]]
id = "683-review-target-context"
path = "scripts/test_resolve_review_target_context.py"
[[pytest]]
id = "656-shared-evidence-row-contract"
path = "scripts/test_evidence_rows.py"
[[pytest]]
id = "656-evidence-row-integration"
path = "scripts/test_check_evidence_row_integration.py"