mirror of
https://github.com/Imbad0202/academic-research-skills.git
synced 2026-09-14 13:51:17 +08:00
9ccf4a9c9f
* fix: academic-pipeline data_access_level verified_only -> raw (#756) The orchestrator legitimately consumes raw input — Stage 1 accepts raw user requests, mid-entry accepts raw existing papers — and the governing dirtiest-input rule (ground_truth_isolation_pattern.md) requires the annotation to reflect that. The integrity gates run INSIDE the pipeline, downstream of its intake, so verified_only was internally inconsistent on the suite's most prominent consumer (option (a) of the issue: honest minimal relabel; no trust-domain split). Surfaces aligned in the same commit: - academic-pipeline/SKILL.md frontmatter (its #528 content-lock sha256 recomputed in check_pipeline_boundary_semantics.py, same commit per the lock discipline). - docs/ARCHITECTURE.md §4: pipeline node moves to the raw class, the User -> pipeline intake edge is drawn, and the rules block states the dirtiest-input rationale with a pointer to the pins. - check_data_access_level.py grows an EXPECTED_LEVELS per-skill pin layer (acceptance criterion 2): a silent flip back to verified_only, an unregistered new skill, or a stale pin now fails CI; vocabulary check unchanged. 7 mutation tests + manifest entry (152). Not touched: CHANGELOG history (records what v3.x declared at the time); shared/agents/compliance_agent.md (agent-level declaration, runs at the gates); academic-paper-reviewer verified_only (possible same-class question for standalone /ars-reviewer raw-paper input — out of #756 scope, reported separately). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: restore the pre-existing CLI-level test layer I overwrote (#756) The previous commit replaced scripts/test_check_data_access_level.py wholesale, dropping six original unittest cases (CLI subprocess via --path, including the three malformed-frontmatter stdout-reporting contracts) and breaking the run_skill_linter --path interface by removing argparse from the lint. Both restored: main takes --path again, the original unittest class is back (its valid-root case now builds the four registered skills, since the pin layer correctly rejects an unregistered synthetic skill), and the #756 pin-layer mutation tests ride alongside. 11 tests green; manifest entry verified through the CI runner. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * refactor: apply /simplify + codex R1 — single-pass lint, honest pins, aligned surfaces (#756) Review round (3 cleanup agents + codex gpt-5.6-sol xhigh R1), findings deduped and applied: - check_data_access_level.py rewritten as a SINGLE pass: one violation per problem (the vocabulary layer had zero unique failure coverage and double-reported every failure, including a twice-printed YAML traceback); non-mapping metadata (e.g. "metadata: active") is now a reported violation instead of an AttributeError crash (codex P2); LEGAL_VALUES survives as a pin-vocabulary assertion; main() stays local (run_lint no longer fits once check_metadata_field drops out) and run_lint's stale "both check scripts" docstring is corrected. - Pin provenance honesty: the docstring now says only the academic-pipeline pin is #756-derived; the other three freeze pre-existing declarations against silent drift. Follow-up derivation for reviewer/paper opened as #773. - ARCHITECTURE §4: rule restatement dropped (the pattern doc owns the rule), the two competing one-line lint descriptions merged into one, and the §2 legend disambiguates §3's per-stage "Data level" column from the skill-level declaration (the four VERIFIED_ONLY stage cells are a different, per-stage claim — left as-is). - CHANGELOG [Unreleased] gains the #756 Fixed entry (the pre-tag covers-merges gate is fail-closed). - handoff_schemas.md data_access_level block now names the pin layer. - write_skill fixture helper migrated to tests/test_helpers.py (migrate-at-next-edit convention); both skill-lint test files import it; CLI scenarios updated to registered skill names (the pin layer correctly pre-empts unregistered synthetic skills); new one-violation-per-problem and non-mapping-metadata regression tests (18 green across both files). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: restore the #753 CHANGELOG bullet heading (codex R2) (#756) The #756 entry insertion had consumed the #753 bullet opening and absorbed its body into the new bullet; the #753 heading is restored as its own bullet. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc * fix: legend example had the gate boundary reversed (codex R3) (#756) Gates consume unverified drafts and PRODUCE verified artifacts; the Data-level column is documented as a postcondition on stage outputs, not material the gate "operates on". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EosnA4RdUYgbF2KmZ1DTmc --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>