You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(release): align all release docs to v3.11.0 (#182) [skip-closes-check] (#321)
* docs(release): align all release docs to v3.11.0 (#182) [skip-closes-check]
The #182 citation-verification-gate feature code merged across PR-A/B/C1 but
the release docs still said v3.10.0 and the CHANGELOG [Unreleased] body was
empty. This aligns the 6 release-discipline invariants to v3.11.0.
- CHANGELOG: convert [Unreleased] → [3.11.0] entry covering all five #182 deltas
+ C-V6 + lint (invariant 1).
- README (en/zh-TW/zh-CN/ja-JP): version badge → v3.11.0; "Academic Pipeline"
heading → v3.11.0; zh-TW adds a faithful v3.11 changelog entry; en/zh-CN/ja-JP
sync version markers only (invariants 2/3/5).
- .claude/CLAUDE.md: Skills Overview pipeline row → v3.11.0; Suite version →
3.11.0; Last Updated → 2026-06-04; add "v3.11 Key Additions" section.
- docs/ARCHITECTURE.md: title + 6 pipeline-version markers → v3.11.0; evolution
timeline gains v3.10.0 (a prior-release omission) + v3.11.0; Stage 5 FINALIZE
gate now documents formatter rule 11 (v3.10 HIGH-BLOCK) + rule 12 (v3.11
citation_existence strict).
- docs/SETUP{,.zh-TW}: add the citation-verification-cache section + the
ARS_VERIFICATION_CACHE_PATH optional flag; correct the stale Opus 4.7 → 4.8
model recommendation.
- docs/PERFORMANCE{,.zh-TW}: note that the #182 gate calls external APIs (no
Claude token cost) + the cache amortization; correct Opus 4.7 → 4.8.
- academic-pipeline/SKILL.md + plugin manifests: version → 3.11.0 (invariant 6).
Only academic-pipeline tracks the suite version; the other three skill versions
are unchanged. #182 was closed earlier (2026-06-02), so this does not re-close it.
Version-consistency lint passes; full suite 2078 passed / 3 skipped. No tag in
this PR — tagging is a separate, deliberate step.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs(release): sync version-mirror lint + fixtures + MODE_REGISTRY to v3.11.0 [skip-closes-check]
The first PR-C2 commit aligned the human-facing docs but missed three mirrored
surfaces that CI's spec-consistency lint guards — caught by the CI run, not the
local check_version_consistency lint (which reads CHANGELOG dynamically; the
spec lint hardcodes expected version strings).
- MODE_REGISTRY.md: "Last updated: v3.10.0" → v3.11.0 (the 15th release doc,
outside the original sweep).
- scripts/check_spec_consistency.py: expected-string assertions bumped to
v3.11.0 (badge / tag link / Suite version / "Academic Pipeline (vX)" heading /
MODE_REGISTRY last-updated). Changelog-entry assertions ADD v3.11.0 while
KEEPING the v3.10.0 history-guard line (these assert past entries still exist,
so they must not be replaced).
- scripts/test_check_spec_consistency.py: fixture templates parameterize the
"Academic Pipeline (vX)" heading and carry both v3.11.0 + v3.10.0 changelog
entries; aligned/stale fixtures and drift assertions rebased to v3.11.0 so the
stale-badge regression tests still exercise real drift.
- README.zh-CN.md + README.ja-JP.md: add the v3.11 changelog entry the lint now
requires, each marked [machine-translated] pending native-contributor review
(zh-TW was authored natively and is unmarked).
Spec lint + its self-tests pass; version-consistency lint passes; full suite
2078 passed / 3 skipped. Mutation-checked: reverting a badge to v3.10.0 still
fails the lint (not accept-all).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
**External motivation:** Zhao et al. arXiv:2605.07723 (2026-05). #182 promotes a **deterministic citation-existence verification gate** that runs independently of LLM peer review, closing the lookup-channel half of the hallucinated-citation problem. v3.11 implements all five spec deltas; the gate **inherits the v3.10 `terminal_policies` opt-in model** rather than introducing a second hard-block philosophy.
17
+
18
+
-**Four-index verification (Delta 1).** New `scripts/arxiv_client.py` adds arXiv (no API key) as the fourth resolver alongside Semantic Scholar / OpenAlex / Crossref. The v3.9.0 contamination triangulation matrix extends from three indexes (k=0..3) to four (k=0..4) with `arxiv_unmatched`; four new advisory suffixes render (`CONTAMINATED-ARXIV-UNMATCHED` at the k=1/k_max=1 arxiv-only carve-out, `CONTAMINATED-QUADRANGULATION-UNMATCHED` at k=4/k_max=4, + two PREPRINT compositions). All advisory — the refusal list is unchanged (R-L3-2-E).
19
+
-**Persistent cache (Delta 2).**`scripts/verification_cache.py` — local SQLite (`~/.cache/ars/verification.db`, `ARS_VERIFICATION_CACHE_PATH` override, 90-day TTL) so each paper is verified once across drafts. New `/ars-cache-invalidate <citation_key>` command.
20
+
-**`citation_existence` terminal policy (Delta 3 / C-V6).** New `terminal_policies` key `citation_existence` ∈ {`advisory`, `strict`} (per-key absence = advisory). The finalizer is the sole policy evaluator; `formatter_agent.md` rule 12 refuses on a `lookup_verified == false` row **only under `strict`**. `false` is narrowed to **ID-keyed unmatched** (C-V6(a)) — a title-only-unmatched legitimately-unindexed citation is `unresolvable`, never blocked (acknowledged precision-over-recall tradeoff, mirroring `strict_articles_only`). Detection is unconditional; only terminality is policy-gated.
21
+
-**Unified status surface + standalone API (Delta 4+5).**`citation_verification_summary.schema.json` + `.py` write a per-citation `lookup_verified` ∈ {`true`, `false`, `unresolvable`} + `anchor_present` + `resolver_outcomes`. `scripts/verification_gate/__init__.py` + `scripts/verify_passport.py` extract the gate into a callable API + standalone CLI.
0 commit comments