Academic Research Skills for Claude Code: research → write → review → revise → finalize
1951 matches across 13 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | evals/calibration/commitment_ledger_seed.yaml | 2 | # ---------------------------------------------------------------- |
| MEDIUM | scripts/policy_anchor_disclosure_referee.py | 134 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/policy_anchor_disclosure_referee.py | 136 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/policy_anchor_disclosure_referee.py | 275 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/policy_anchor_disclosure_referee.py | 277 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/policy_anchor_disclosure_referee.py | 291 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/policy_anchor_disclosure_referee.py | 293 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/policy_anchor_disclosure_referee.py | 311 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/policy_anchor_disclosure_referee.py | 313 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 63 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 65 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 79 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 81 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 106 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 108 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 196 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 198 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 221 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 223 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 247 | # ========================================================================= |
| MEDIUM | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 249 | # ========================================================================= |
| MEDIUM | scripts/test_audit_schemas.py | 37 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/test_audit_schemas.py | 39 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/test_audit_schemas.py | 222 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/test_audit_schemas.py | 224 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 27 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 29 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 49 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 51 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 315 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 317 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 556 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 558 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 582 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 584 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 641 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 643 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 650 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/parse_audit_verdict.py | 652 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/test_slr_lineage_emission.py | 35 | # ============================================================================ |
| MEDIUM | scripts/test_slr_lineage_emission.py | 37 | # ============================================================================ |
| MEDIUM | scripts/test_slr_lineage_emission.py | 98 | # ============================================================================ |
| MEDIUM | scripts/test_slr_lineage_emission.py | 100 | # ============================================================================ |
| MEDIUM | scripts/test_slr_lineage_emission.py | 151 | # ============================================================================ |
| MEDIUM | scripts/test_slr_lineage_emission.py | 153 | # ============================================================================ |
| MEDIUM | scripts/test_slr_lineage_emission.py | 194 | # ============================================================================ |
| MEDIUM | scripts/test_slr_lineage_emission.py | 196 | # ============================================================================ |
| MEDIUM | scripts/claim_audit_pipeline.py | 633 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 635 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 51 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 53 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 116 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 121 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 352 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 354 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 673 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 675 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 821 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/claim_audit_pipeline.py | 823 | # --------------------------------------------------------------------------- |
| MEDIUM | scripts/check_v3_6_8_pattern_protection.py | 430 | # ============================================================================= |
| 369 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_mark_read_args.py | 39 | def test_ars_mark_read_writes_read_log(passport_with_corpus: Path) -> None: |
| LOW | tests/test_mark_read_args.py | 70 | def test_ars_mark_read_rejects_zero_keys(passport_with_corpus: Path) -> None: |
| LOW | tests/test_mark_read_args.py | 85 | def test_ars_mark_read_rejects_unknown_key(passport_with_corpus: Path) -> None: |
| LOW | tests/test_mark_read_args.py | 101 | def test_ars_mark_read_argument_parsing(passport_with_corpus: Path) -> None: |
| LOW | …s/design/2026-05-21-v3.10-183-epistemic-status-spec.md | 737 | def classify_claim_audit_result(entry: dict) -> list[dict]: |
| LOW | …design/2026-04-23-ars-v3.6.2-sprint-contract-design.md | 324 | def check_structural_invariants(contract: dict) -> list[str]: |
| LOW | …-15-issue-105-contamination-signals-backfill-design.md | 51 | def compute_ss_unmatched_signal(entry, ss_client) -> bool | None: |
| LOW | docs/design/2026-05-05-phase-6.6-scoping-note.md | 120 | def test_orchestrator_prompt_contains_audit_artifact_gate(): |
| LOW | docs/design/2026-05-05-phase-6.6-scoping-note.md | 124 | def test_orchestrator_prompt_references_all_phase_ids(): |
| LOW | docs/design/2026-05-05-phase-6.6-scoping-note.md | 140 | def test_orchestrator_prompt_has_audit_gate_hard_rules(): |
| LOW | docs/design/2026-05-05-phase-6.6-scoping-note.md | 151 | def test_orchestrator_prompt_size_within_budget(): |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 417 | def test_integration_passes_against_real_repo(): |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 871 | def test_neg_a_drop_ship_enum(tmp_path): |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 919 | def test_neg_b_disqualifying_rename(tmp_path): |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 927 | def test_neg_c_strip_fallback_case(tmp_path): |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 935 | def test_neg_d_delete_legacy_text(tmp_path): |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 946 | def test_neg_e_remove_policy_fold(tmp_path): |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 963 | def test_neg_f_leak_into_deep_research(tmp_path): |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 990 | def test_neg_g_carrier_regression(tmp_path): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1024 | def test_sanitize_strips_non_alnum(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1033 | def test_sanitize_rejects_empty(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1037 | def test_make_citation_key_simple(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1044 | def test_make_citation_key_collision_suffix(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1050 | def test_make_citation_key_multiple_collisions(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1056 | def test_parse_csl_name_family_given(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1060 | def test_parse_csl_name_family_initial(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1064 | def test_parse_csl_name_institution_with_paren_marker(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1069 | def test_parse_csl_name_bare_single_token_literal(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1075 | def test_parse_semicolon_names(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1083 | def test_parse_semicolon_names_empty_returns_empty_list(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1088 | def test_dump_yaml_stable_is_sorted(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 149 | def test_required_set_matches_spec(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 160 | def test_additional_properties_is_false(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 165 | def test_valid_personal_author_entry_passes(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 177 | def test_valid_institution_author_entry_passes(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 189 | def test_missing_required_field_fails(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 203 | def test_author_must_be_either_personal_or_literal(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 217 | def test_year_out_of_range_fails(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 231 | def test_citation_key_pattern_rejects_leading_digit(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 245 | def test_additional_property_fails(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 260 | def test_obtained_via_enum_constrained(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 473 | def test_schema_self_consistent(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 478 | def test_empty_rejected_is_valid(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 489 | def test_missing_required_top_level_fails(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 496 | def test_rejection_with_object_raw(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 514 | def test_rejection_with_string_raw(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 531 | def test_rejection_with_array_raw_rejected(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 550 | def test_reason_enum_constrained(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 562 | def test_additional_properties_false_on_rejection(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 738 | def test_passes_on_valid_passport(tmp_path): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 755 | def test_fails_on_schema_violation(tmp_path): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 773 | def test_fails_on_duplicate_citation_key(tmp_path): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 798 | def test_passes_on_valid_rejection_log(tmp_path): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 810 | def test_default_mode_scans_repo_examples(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1102 | def test_adapter_spec_version_is_string(): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1155 | def _first_title_word_non_stopword(title_hint: str | None) -> str: |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1463 | def test_empty_folder_emits_empty_passport(tmp_path): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1480 | def test_missing_input_dir_fails_loud(tmp_path): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1490 | def test_deterministic_output(tmp_path, load_yaml, clean_timestamps): |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 1501 | def test_duplicate_collision_handled(tmp_path): |
| 1074 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | conftest.py | 2 | |
| LOW | scripts/contamination_signals.py | 12 | |
| LOW | scripts/test_text_similarity.py | 12 | |
| LOW | scripts/check_v3_8_annotation_literal_sync.py | 35 | |
| LOW | scripts/check_policy_anchor_protocol.py | 40 | |
| LOW | scripts/policy_anchor_disclosure_referee.py | 23 | |
| LOW | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 18 | |
| LOW | scripts/test_check_v3_6_8_cite_provenance_pipeline.py | 385 | |
| LOW | scripts/test_audit_schemas.py | 17 | |
| LOW | scripts/test_check_v3_7_3_three_layer_citation.py | 6 | |
| LOW | scripts/test_check_v3_7_3_three_layer_citation.py | 10 | |
| LOW | scripts/sync_adapter_docs.py | 18 | |
| LOW | scripts/test_check_ci_pytest_manifest.py | 18 | |
| LOW | scripts/test_check_v3_8_annotation_literal_sync.py | 17 | |
| LOW | scripts/test_check_version_consistency.py | 2 | |
| LOW | scripts/test_check_spec_consistency.py | 9 | |
| LOW | scripts/check_pattern_eval_manifest.py | 23 | |
| LOW | scripts/parse_audit_verdict.py | 17 | |
| LOW | scripts/test_check_v3_9_2_phase_boundary.py | 5 | |
| LOW | scripts/check_rq_framing_patterns.py | 8 | |
| LOW | scripts/test_run_ci_pytest_manifest.py | 13 | |
| LOW | scripts/test_temporal_integrity_audit.py | 2 | |
| LOW | scripts/test_temporal_integrity_audit.py | 4 | |
| LOW | scripts/test_check_sprint_contract.py | 2 | |
| LOW | scripts/check_literature_corpus_schema.py | 22 | |
| LOW | scripts/check_literature_corpus_schema.py | 32 | |
| LOW | scripts/test_slr_lineage_emission.py | 21 | |
| LOW | scripts/claim_audit_pipeline.py | 17 | |
| LOW | scripts/_passport_yaml.py | 27 | |
| LOW | scripts/check_v3_6_8_pattern_protection.py | 44 | |
| LOW | scripts/test_pattern_eval_runtime.py | 26 | |
| LOW | scripts/test_pattern_eval_runtime.py | 31 | |
| LOW | scripts/check_v3_6_8_mark_read_commands.py | 12 | |
| LOW | scripts/test__next_verified_at_ms.py | 24 | |
| LOW | scripts/openalex_client.py | 10 | |
| LOW | scripts/openalex_client.py | 26 | |
| LOW | scripts/openalex_client.py | 34 | |
| LOW | scripts/crossref_client.py | 15 | |
| LOW | scripts/crossref_client.py | 28 | |
| LOW | scripts/crossref_client.py | 36 | |
| LOW | scripts/test_audit_snapshot_render_section_0.py | 14 | |
| LOW | scripts/test_audit_snapshot_render_section_0.py | 18 | |
| LOW | scripts/test_check_policy_anchor_table.py | 10 | |
| LOW | scripts/ars_mark_read.py | 24 | |
| LOW | scripts/test_check_collaboration_depth_rubric.py | 2 | |
| LOW | scripts/test_uncited_assertion.py | 17 | |
| LOW | scripts/test_policy_anchor_disclosure.py | 21 | |
| LOW | scripts/check_repro_lock.py | 11 | |
| LOW | scripts/test_check_v3_6_8_audit_scope_block.py | 31 | |
| LOW | scripts/test_ars_mark_read.py | 13 | |
| LOW | scripts/_skill_lint.py | 7 | |
| LOW | scripts/check_v3_7_3_three_layer_citation.py | 33 | |
| LOW | scripts/test_check_pattern_eval_manifest.py | 15 | |
| LOW | scripts/check_preprint_venues_consistency.py | 23 | |
| LOW | scripts/test_check_v3_9_0_triangulation.py | 3 | |
| LOW | scripts/test_check_v3_9_0_triangulation.py | 9 | |
| LOW | scripts/test_check_v3_6_8_pattern_protection.py | 20 | |
| LOW | scripts/test_check_v3_6_8_pattern_protection.py | 23 | |
| LOW | scripts/test_check_v3_6_8_pattern_protection.py | 24 | |
| LOW | scripts/test_check_v3_6_8_pattern_protection.py | 29 | |
| 95 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | academic-paper/references/policy_anchor_table.md | 80 | - Field #16 mandate produces a paragraph noting (a) appropriate attribution + full citations for AI-quoted material, (b) |
| HIGH | academic-paper/references/policy_anchor_table.md | 107 | | 16 | AI-generated image / figure / content rights | explicit-mandate | "Springer Nature journals are unable to permit |
| HIGH | shared/policy_data/nature_policy.md | 34 | > "All exceptions must be labelled clearly as generated by AI within the image field." |
| HIGH | …cs/design/2026-05-13-ai-disclosure-schema-discovery.md | 199 | | 16 | AI-generated image / figure / content rights | explicit-mandate | "Springer Nature journals are unable to permit |
| HIGH | …cs/design/2026-05-13-ai-disclosure-schema-discovery.md | 261 | - ICMJE #16 = text-attribution clause; Nature #16 = default-prohibit + 3 carve-outs + labelling-required; IEEE #16 = fol |
| HIGH | …cs/design/2026-05-13-ai-disclosure-schema-discovery.md | 383 | - Nature #16 image-rights regime requires labelling text "generated by AI" at the location "within the image field" (ver |
| HIGH | docs/design/2026-05-14-ai-disclosure-impl-spec.md | 83 | | 4 | IEEE section locator shape | Free-form list with recommended IMRaD exemplars (parallel to G8 `level_of_involvement |
| HIGH | docs/design/2026-05-14-ai-disclosure-schema-decision.md | 213 | **Companion mandate — IEEE #6 affected sections locator.** IEEE #5 ("level") is paired with IEEE #6 ("specific sections |
| HIGH | docs/design/2026-05-14-ai-disclosure-schema-decision.md | 219 | **Rationale.** §4.4 ICMJE #16 (text-attribution rule, no-AI-as-primary-source — mandate), §4.5 Nature #16 (default-prohi |
| HIGH | docs/design/2026-05-14-ai-disclosure-schema-decision.md | 293 | 4. **Renderer input contract — IEEE section locator.** IEEE #6 is explicit-mandate on "specific sections of the article |
| HIGH | docs/design/2026-05-14-ai-disclosure-schema-decision.md | 294 | 5. **Renderer input contract — Nature image metadata.** Nature #16 default-deny + 3 carve-outs + labelling requires per- |
| HIGH | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 219 | </a></div> <div class="container"><div class="row"><div class="col-lg-3 mb-5 sidebar-sections"><div |
| HIGH | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 219 | </a></div> <div class="container"><div class="row"><div class="col-lg-3 mb-5 sidebar-sections"><div |
| HIGH | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 321 | </p></div></div></div></footer></section></div></div> <div><a tabindex="0" href="javascript:;" t |
| HIGH | …apshots/2026-05-13-ai-disclosure-discovery/nature.html | 713 | <p>*All exceptions must be labelled clearly as generated by AI within the image field.</p> |
| HIGH | …ademic-pipeline/agents/integrity_verification_agent.md | 64 | - Walters, W. H., & Wilder, E. I. (2023). Fabrication and errors in the bibliographic citations generated by ChatGPT. *S |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | scripts/claim_audit_pipeline.py | 593 | # U-INV-4 (manifest_claim_id null ↔ scoped_manifest_id null). |
| HIGH | scripts/claim_audit_finalizer.py | 175 | # synthesis_overclaim, null} on AMBIGUOUS — the §6 consistency lint is |
| HIGH | scripts/check_repro_lock.py | 6 | - Missing `repro_lock` key (not even null): ERROR, exit 1. |
| HIGH | scripts/check_v3_6_8_frontmatter_trust_schema.py | 154 | # null). Round-6 codex P2 closure tightened the value to the literal |
| HIGH | scripts/test_check_passport_reset_contract.py | 145 | # Binary bytes (0xff, 0xfe, null) fail UTF-8 decode; the lint must |
| HIGH | scripts/test_claim_audit_finalizer.py | 167 | # T-F1b — AMBIGUOUS + {source_description, citation_anchor, synthesis_overclaim, null} |
| HIGH | scripts/test_check_v3_6_8_frontmatter_trust_schema.py | 157 | # ---------- Rule #2 — source_acquired=false → description_last_audit ∈ {null, 'none'} ---------- |
| HIGH | scripts/test_claim_audit_schema.py | 412 | # INV-9: upstream_dispute != null -> defect_stage NOT in {null, not_applicable} |
| HIGH | scripts/check_evals_gold_set.py | 171 | errors.append(f"I6: {stem}.json kind={kind!r} but arxiv_id={arxiv_id!r} present (must be null)") |
| HIGH | scripts/check_claim_audit_consistency.py | 930 | # CV-INV-3: MNC -> manifest_claim_id null; NC -> manifest_claim_id non-null and matches. |
| HIGH | scripts/migrate_literature_corpus_to_v3_7_3.py | 75 | the spec rule are undefined). Schema marks `year` as required so this |
| HIGH | scripts/check_audit_artifact_consistency.py | 2069 | # passed `[]` / a scalar / null) would crash check_e3_e4 with |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | evals/calibration/commitment_ledger_seed.yaml | 1 | # Kong A1 / v3.11 — Commitment Ledger Calibration Seed |
| LOW | evals/calibration/commitment_ledger_seed.yaml | 21 | # P1 (1 case): single-commitment, partial (evidence-exists-but-incomplete, with rationale) |
| LOW | …026-04-30-ars-v3.6.7-step-6-orchestrator-hooks-spec.md | 661 | } |
| LOW | …026-04-30-ars-v3.6.7-step-6-orchestrator-hooks-spec.md | 701 | # fsyncs the tmp file, then renames it over <path>. Used for sidecar, verdict, |
| LOW | …026-04-30-ars-v3.6.7-step-6-orchestrator-hooks-spec.md | 721 | fi |
| LOW | …026-04-30-ars-v3.6.7-step-6-orchestrator-hooks-spec.md | 801 | "${supporting_args[@]}" \ |
| LOW | …026-04-30-ars-v3.6.7-step-6-orchestrator-hooks-spec.md | 821 | # |
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 761 | f: list[str] = [] |
| LOW | …shots/2026-05-13-ai-disclosure-discovery/manifest.yaml | 101 | # anchor below, re-compute the SHA-256 of the local HTML and confirm it matches the value here. |
| LOW | scripts/check_v3_8_annotation_literal_sync.py | 181 | # Closed literals end in `]` and require exact byte-equivalent |
| LOW | scripts/test_check_spec_consistency.py | 41 | |
| LOW | scripts/test_check_spec_consistency.py | 61 | ### v3.6.7 (2026-04-30) — pattern protection |
| LOW | scripts/test_check_spec_consistency.py | 121 | ### v3.9.4(2026-05-18)— temporal verification |
| LOW | scripts/test_check_spec_consistency.py | 181 | |
| LOW | scripts/parse_audit_verdict.py | 321 | # Form A (findings present): |
| LOW | scripts/claim_audit_pipeline.py | 1141 | # so a drifted-yet-violated citation does not produce a |
| LOW | scripts/claim_audit_pipeline.py | 1161 | # a sentence-level `scoped_manifest_id`. Pre-fix this loop required the |
| LOW | scripts/claim_audit_pipeline.py | 1221 | continue |
| LOW | scripts/_ci_pytest_manifest.toml | 1 | # CI pytest invocation manifest (issue #156) |
| LOW | scripts/check_v3_6_8_pattern_protection.py | 321 | # the hashed range (round-8 closure: BOM-before-heading mutation |
| LOW | scripts/check_v3_6_8_pattern_protection.py | 421 | files = data.get("files") |
| LOW | scripts/check_v3_6_8_pattern_protection.py | 441 | # Block scope: starts at the H2 line `## Two-Layer Citation Emission (v3.7.1)` |
| LOW | scripts/check_v3_6_8_pattern_protection.py | 461 | re.compile(_NON_IDENT_BEFORE + r"finalizers?" + _NON_IDENT_AFTER, re.IGNORECASE), |
| LOW | scripts/check_v3_6_8_pattern_protection.py | 481 | # Whitespace between verb and target spans `\s` (newline + indent) not just |
| LOW | scripts/check_v3_6_8_pattern_protection.py | 521 | r"cannot|can'?t|may\s+not|shall\s+not|forbidden|" |
| LOW | scripts/test_pattern_eval_runtime.py | 101 | # a subsequent candidate succeeds; the rule is the orchestrator commits at most |
| LOW | scripts/check_v3_7_3_three_layer_citation.py | 141 | """Return a list of violation strings; empty list = PASS.""" |
| LOW | scripts/check_v3_7_3_three_layer_citation.py | 221 | f"percent-encoded as `%2D` to prevent premature HTML " |
| LOW | scripts/test_check_v3_6_8_pattern_protection.py | 581 | assert _strip_file_bom(b"hi\xef\xbb\xbfworld") == b"hi\xef\xbb\xbfworld" |
| LOW | scripts/claim_audit_calibration.py | 21 | from typing import Any, Callable |
| LOW | scripts/check_v3_6_8_audit_scope_block.py | 101 | # Forbidden combined-aggregate "PASSED" verb in audit summary contexts. |
| LOW | scripts/check_v3_6_8_audit_scope_block.py | 301 | # N — Scope Report"`) inside Section 0 must NOT satisfy the contract. |
| LOW | scripts/check_v3_6_8_audit_scope_block.py | 361 | |
| LOW | scripts/check_v3_6_8_audit_scope_block.py | 381 | # post-Section-0 surface violates the spec line 152 contract. Quoted |
| LOW | scripts/_claim_audit_constants.py | 41 | DRIFT_RULE_VERSION = "D4-a-v1" |
| LOW | scripts/_claim_audit_constants.py | 61 | # of truth — a spec bump touches one literal, not three. |
| LOW | scripts/_claim_audit_constants.py | 81 | # context proves them to be years, version triples, or section numbers |
| LOW | scripts/_claim_audit_constants.py | 101 | # R1 P1-3). Applied AFTER RE_NUMERIC_QUANTIFIER to the matched substring + |
| LOW | scripts/_claim_audit_constants.py | 121 | RE_VERSION_PREFIX = re.compile(r"v\s*$", re.IGNORECASE) |
| LOW | scripts/_claim_audit_constants.py | 141 | # R0 `[^-]+` — rejected hyphenated slugs. |
| LOW | scripts/semantic_scholar_client.py | 201 | f"S2 API HTTP {e.code} after {_MAX_RETRIES} retries" |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 41 | # Markdown heading pattern that closes a `block_marker` scope. A check's scope |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 101 | # `optional` only counts as a weakener when it directly modifies an |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 121 | # (`will`, `would`, `ought to`) and the advisory adverb framings |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 301 | # Reject if the bullet/paragraph containing the match carries |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 401 | # "ask upstream for advice" was previously accepted). |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 541 | target=SYNTHESIS_AGENT, |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 741 | ( |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 781 | # --------------------------------------------------------------------------- |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 801 | # inside is tolerant (collapse whitespace runs to a single space) so a future |
| LOW | scripts/uncited_assertion_detector.py | 101 | # Three-or-more-segment dotted forms are unambiguously version |
| LOW | scripts/uncited_assertion_detector.py | 121 | # Two reattachment shapes: |
| LOW | scripts/announce-ars-loaded.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/announce-ars-loaded.sh | 21 | set -euo pipefail |
| LOW | scripts/check_claim_audit_consistency.py | 1061 | # UAF-INV-5: rationale MUST begin with this row's own fault_class |
| LOW | scripts/test_v3_6_7_phase_6_6.py | 41 | # from main commit 02b87ae (the last main commit before any Phase 6.6 prompt |
| LOW | scripts/test_v3_6_7_phase_6_6.py | 61 | # + L3-2 contamination annotation matrix + updated resolution order + |
| LOW | scripts/test_v3_6_7_phase_6_6.py | 81 | LINE_BUDGET_V3_8_AUDIT_GATE = 60 |
| LOW | scripts/run_codex_audit.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/run_codex_audit.sh | 21 | # [--dry-run] # validate inputs only; write nothing |
| 27 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | evals/calibration/commitment_ledger_seed.yaml | 4 | # trigger (re_review_mode_protocol step 5) once #263 Phase 1b harness |
| MEDIUM | evals/calibration/commitment_ledger_seed.yaml | 34 | # Pass criterion (when harness arrives via #263): |
| MEDIUM | evals/calibration/commitment_ledger_seed.yaml | 35 | # For each case, harness output must match expected_commitment_gap (boolean), |
| MEDIUM | …contracts/passport/literature_corpus_entry.schema.json | 127 | "description": "v3.7.1 trust-chain field. Method used to verify the entry against the original source. 'none' mean |
| MEDIUM | …contracts/passport/literature_corpus_entry.schema.json | 190 | "description": "v3.7.1 spec §3.1 firm rule #1 (round-2 R2-007 amend): source_verified_against_original=true REQUIR |
| MEDIUM | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 1 | <!doctype html><html data-n-head-ssr lang="en" data-n-head="%7B%22lang%22:%7B%22ssr%22:%22en%22%7D%7D"><head ><meta data |
| MEDIUM | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 219 | </a></div> <div class="container"><div class="row"><div class="col-lg-3 mb-5 sidebar-sections"><div |
| MEDIUM | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 219 | </a></div> <div class="container"><div class="row"><div class="col-lg-3 mb-5 sidebar-sections"><div |
| MEDIUM | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 219 | </a></div> <div class="container"><div class="row"><div class="col-lg-3 mb-5 sidebar-sections"><div |
| MEDIUM | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 321 | </p></div></div></div></footer></section></div></div> <div><a tabindex="0" href="javascript:;" t |
| MEDIUM | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 321 | </p></div></div></div></footer></section></div></div> <div><a tabindex="0" href="javascript:;" t |
| MEDIUM | …/2026-05-13-ai-disclosure-discovery/prisma-trAIce.html | 321 | </p></div></div></div></footer></section></div></div> <div><a tabindex="0" href="javascript:;" t |
| MEDIUM | scripts/test_pattern_eval_runtime.py | 626 | # B10/B11 always appends to passport per §5.6 — the harness emulates this. |
| MEDIUM | scripts/test_pattern_eval_runtime.py | 763 | # NO new passport append per §5.6 A7 invariant). The harness models this |
| MEDIUM | scripts/test_pattern_eval_runtime.py | 838 | # MINOR not exercised by this curated subset; harness simplifies to MATERIAL/PASS. |
| MEDIUM | scripts/test_check_audit_artifact_consistency.py | 2043 | # Example validation harness (F4) — smoke test it runs without crash |
| MEDIUM | scripts/test_check_audit_artifact_consistency.py | 2054 | # harness should surface. We only assert the harness ran and any |
| MEDIUM | scripts/test_check_audit_artifact_consistency.py | 1941 | # and confirm it produces the documented harness exit code. Belt |
| MEDIUM | scripts/check_audit_artifact_consistency.py | 1737 | # §3.7 F4 example-validation harness |
| MEDIUM | scripts/check_audit_artifact_consistency.py | 1845 | # The harness's job is to surface drift in §3.1/§3.3/§3.4/§3.5 |
| MEDIUM | scripts/check_audit_artifact_consistency.py | 2012 | # (e.g., schematic '...' placeholders the harness intentionally skips) |
| MEDIUM | scripts/check_audit_artifact_consistency.py | 163 | mode: str # "proposal" | "persisted" | "jsonl-stream" | "harness" |
| MEDIUM | .github/workflows/harness-retirement-monthly.yml | 8 | # harness-retirement skill exists but hasn't been run against ARS |
| MEDIUM | .github/workflows/harness-retirement-monthly.yml | 15 | # `/harness-retirement` and paste results into. |
| MEDIUM | .github/workflows/spec-consistency.yml | 346 | # docs/design/2026-05-21-v3.10-184-extend-eval-harness-spec.md. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | jobs: spec: runs-on: ubuntu-latest steps: - run: python scripts/run_ci_pytest_manifest.py |
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | jobs: spec: runs-on: ubuntu-latest steps: - run: python scripts/run_ci_pytest_manifest.py |
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | jobs: spec: runs-on: ubuntu-latest steps: - run: python scripts/run_ci_pytest_manifest.py |
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | [[pytest]] id = "real-a" path = "scripts/test_real_a.py" |
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | [[pytest]] id = "real-a" path = "scripts/test_real_a.py" |
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | [[pytest]] id = "real-a" path = "scripts/test_real_a.py" |
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | [[pytest]] id = "real-a" path = "scripts/test_real_a.py" |
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | [[pytest]] id = "real-a" path = "scripts/test_real_a.py" |
| HIGH | scripts/test_check_ci_pytest_manifest.py | 0 | [[pytest]] id = "real-a" path = "scripts/test_real_a.py" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/parse_audit_verdict.py | 443 | |
| LOW | scripts/check_rq_framing_patterns.py | 85 | |
| LOW | scripts/claim_audit_pipeline.py | 444 | |
| LOW | scripts/claim_audit_pipeline.py | 638 | |
| LOW | scripts/claim_audit_pipeline.py | 826 | |
| LOW | scripts/test_pattern_eval_runtime.py | 191 | |
| LOW | scripts/test_pattern_eval_runtime.py | 606 | |
| LOW | scripts/openalex_client.py | 80 | |
| LOW | scripts/crossref_client.py | 106 | |
| LOW | scripts/check_v3_6_8_frontmatter_trust_schema.py | 81 | |
| LOW | scripts/check_domain_evidence_profile.py | 311 | |
| LOW | scripts/check_pipeline_integrity.py | 133 | |
| LOW | scripts/check_pipeline_integrity.py | 205 | |
| LOW | scripts/claim_audit_calibration.py | 75 | |
| LOW | scripts/claim_audit_calibration.py | 213 | |
| LOW | scripts/check_version_consistency.py | 104 | |
| LOW | scripts/check_v3_6_6_ab_manifest.py | 74 | |
| LOW | scripts/check_v3_6_6_ab_manifest.py | 262 | |
| LOW | scripts/check_v3_6_7_pattern_protection.py | 1147 | |
| LOW | scripts/uncited_assertion_detector.py | 68 | |
| LOW | scripts/check_corpus_consumer_protocol.py | 252 | |
| LOW | scripts/temporal_integrity_audit.py | 188 | |
| LOW | scripts/temporal_integrity_audit.py | 275 | |
| LOW | scripts/temporal_integrity_audit.py | 468 | |
| LOW | scripts/temporal_integrity_audit.py | 559 | |
| LOW | scripts/test_claim_audit_schema.py | 837 | |
| LOW | scripts/check_evals_gold_set.py | 51 | |
| LOW | scripts/check_claim_audit_consistency.py | 551 | |
| LOW | scripts/check_claim_audit_consistency.py | 656 | |
| LOW | scripts/check_claim_audit_consistency.py | 761 | |
| LOW | scripts/check_claim_audit_consistency.py | 850 | |
| LOW | scripts/check_claim_audit_consistency.py | 1124 | |
| LOW | scripts/migrate_literature_corpus_to_v3_7_3.py | 88 | |
| LOW | scripts/migrate_literature_corpus_to_v3_9_0.py | 72 | |
| LOW | scripts/test_claim_audit_pipeline.py | 392 | |
| LOW | scripts/check_passport_reset_contract.py | 113 | |
| LOW | scripts/check_audit_artifact_consistency.py | 274 | |
| LOW | scripts/check_audit_artifact_consistency.py | 453 | |
| LOW | scripts/check_audit_artifact_consistency.py | 807 | |
| LOW | scripts/check_audit_artifact_consistency.py | 1011 | |
| LOW | scripts/check_audit_artifact_consistency.py | 1412 | |
| LOW | scripts/check_audit_artifact_consistency.py | 1645 | |
| LOW | scripts/check_audit_artifact_consistency.py | 1741 | |
| LOW | scripts/check_audit_artifact_consistency.py | 1787 | |
| LOW | scripts/check_audit_artifact_consistency.py | 2001 | |
| LOW | scripts/adapters/zotero.py | 143 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …n/2026-05-30-kong-259-domain-evidence-profiles-plan.md | 808 | except Exception as exc: |
| LOW | …26-04-23-ars-v3.6.4-literature-corpus-adapters-plan.md | 884 | except Exception as e: |
| LOW | scripts/check_literature_corpus_schema.py | 54 | except Exception as e: |
| LOW | scripts/claim_audit_pipeline.py | 263 | except Exception as exc: # noqa: BLE001 — translation boundary; the source class is captured |
| LOW | scripts/claim_audit_pipeline.py | 308 | except Exception as exc: # noqa: BLE001 — translation boundary |
| LOW | scripts/check_repro_lock.py | 87 | except Exception as exc: |
| LOW | scripts/test_run_codex_audit_e2e.py | 60 | except Exception: # pragma: no cover - defensive |
| MEDIUM | scripts/test_run_codex_audit_e2e.py | 51 | def _bash_major_version() -> int: |
| LOW | scripts/check_domain_evidence_profile.py | 378 | except Exception as exc: |
| LOW | scripts/test_claim_intent_manifest.py | 47 | except Exception as exc: # pragma: no cover — RED-phase import pathway |
| LOW | scripts/test_claim_audit_finalizer.py | 92 | except Exception as exc: # pragma: no cover |
| LOW | scripts/check_v3_9_4_temporal_verification.py | 57 | except Exception as exc: |
| LOW | scripts/check_v3_9_4_temporal_verification.py | 71 | except Exception: |
| LOW | scripts/check_corpus_consumer_protocol.py | 388 | except Exception as exc: |
| LOW | scripts/bootstrap_timeline_yaml.py | 42 | except Exception: |
| LOW | scripts/bootstrap_timeline_yaml.py | 61 | except Exception: |
| LOW | scripts/test_claim_audit_pipeline.py | 28 | except Exception as exc: # pragma: no cover — import-time error pathway is exercised in RED state |
| LOW | scripts/check_audit_artifact_consistency.py | 1702 | except Exception: |
| LOW | scripts/check_audit_artifact_consistency.py | 1732 | except Exception as e: # pragma: no cover |
| LOW | scripts/check_audit_artifact_consistency.py | 1839 | except Exception as e: # pragma: no cover |
| LOW | scripts/check_audit_artifact_consistency.py | 1975 | except Exception: |
| LOW | scripts/check_audit_artifact_consistency.py | 2193 | except Exception as e: |
| LOW | scripts/check_audit_artifact_consistency.py | 2213 | except Exception as e: |
| LOW | scripts/check_audit_artifact_consistency.py | 2270 | except Exception as e: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/test_pattern_eval_runtime.py | 890 | # Step 4: at round-3 escalation, feed user_response.yaml. |
| LOW | scripts/test_pattern_eval_runtime.py | 919 | # Step 5: assert expected_passport_state.yaml matches actual. |
| LOW | scripts/check_domain_evidence_profile.py | 25 | INTAKE_STEP12_HEADING = "### Step 12: Domain Evidence Profile" |
| LOW | scripts/test_claim_audit_calibration.py | 410 | # Step 1: validate_gold_set MUST accept the manifest-only tuple |
| LOW | scripts/test_claim_audit_calibration.py | 413 | # Step 2: run_calibration MUST refuse it at run time. |
| LOW | scripts/test_check_domain_evidence_profile.py | 202 | "### Step 12: Domain Evidence Profile", |
| LOW | scripts/test_check_domain_evidence_profile.py | 203 | "### Step 12: Domain Evidence Profile\n\nStore the profile on the Material Passport.", |
| LOW | …/adapters/tests/test_check_corpus_consumer_protocol.py | 103 | ### Step 0: presence detection |
| LOW | …/adapters/tests/test_check_corpus_consumer_protocol.py | 104 | ### Step 1: pre-screen |
| LOW | …/adapters/tests/test_check_corpus_consumer_protocol.py | 105 | ### Step 2: search-fills-gap |
| LOW | …/adapters/tests/test_check_corpus_consumer_protocol.py | 106 | ### Step 3: merge |
| LOW | …/adapters/tests/test_check_corpus_consumer_protocol.py | 107 | ### Step 4: emit report |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …/adapters/tests/test_check_corpus_consumer_protocol.py | 471 | # Create the second consumer agent file by cloning bibliography_agent.md content |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/run_codex_audit.sh | 10 | # Usage: |