Skip to content

Commit c086f19

Browse files
Imbad0202claude
andauthored
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>
1 parent a0dca2c commit c086f19

17 files changed

Lines changed: 211 additions & 65 deletions

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"name": "academic-research-skills",
1111
"source": "./",
1212
"description": "4 skills + 35+ modes + Material Passport pipeline. Includes v3.6.7 cross-model audit gate and v3.6.8 generator-evaluator contract.",
13-
"version": "3.10.0",
13+
"version": "3.11.0",
1414
"license": "CC-BY-NC-4.0"
1515
}
1616
]

.claude-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "academic-research-skills",
3-
"version": "3.10.0",
4-
"description": "Production-grade academic research pipeline for Claude Code: research → write → review → revise → finalize. 4 skills, 35+ modes, 38-agent ensemble, v3.7.3 + v3.8 L3 claim-faithfulness gate, v3.9.0 cross-index triangulation, v3.9.2 phase boundary fence (#133).",
3+
"version": "3.11.0",
4+
"description": "Production-grade academic research pipeline for Claude Code: research → write → review → revise → finalize. 4 skills, 35+ modes, 38-agent ensemble, v3.7.3 + v3.8 L3 claim-faithfulness gate, v3.9.0 cross-index triangulation, v3.10 triangulation policy layer, v3.11 deterministic citation verification gate (#182).",
55
"author": {
66
"name": "Cheng-I Wu",
77
"url": "https://github.com/Imbad0202"

.claude/CLAUDE.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,18 @@ A suite of Claude Code skills for rigorous academic research, paper writing, pee
99
| `deep-research` v2.9.4 | 13-agent research team | full, quick, socratic, review, lit-review, fact-check, systematic-review |
1010
| `academic-paper` v3.2.0 | 12-agent paper writing | full, plan, outline-only, revision, revision-coach, abstract-only, lit-review, format-convert, citation-check, disclosure |
1111
| `academic-paper-reviewer` v1.10.0 | Multi-perspective paper review (5 reviewers + optional cross-model DA critique) | full, re-review, quick, methodology-focus, guided, calibration |
12-
| `academic-pipeline` v3.10.0 | Full pipeline orchestrator | (coordinates all above) |
12+
| `academic-pipeline` v3.11.0 | Full pipeline orchestrator | (coordinates all above) |
13+
14+
## v3.11 Key Additions (#182 — deterministic citation verification gate)
15+
16+
**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.
22+
23+
Spec: `docs/design/2026-05-21-v3.10-182-promote-citation-gate-spec.md` (§0 v3.11 amendment + INVARIANT C-V6).
1324

1425
## v3.10 Key Additions (#127 — triangulation policy layer)
1526

@@ -246,7 +257,7 @@ Materials: Complete paper text. field_analyst_agent auto-detects domain and conf
246257
Materials: Editorial Decision Letter, Revision Roadmap, Per-reviewer detailed comments
247258

248259
## Version Info
249-
- **Suite version**: 3.10.0 (per CHANGELOG.md)
250-
- **Last Updated**: 2026-06-01
260+
- **Suite version**: 3.11.0 (per CHANGELOG.md)
261+
- **Last Updated**: 2026-06-04
251262
- **Author**: Cheng-I Wu
252263
- **License**: CC-BY-NC 4.0

CHANGELOG.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,76 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
## [3.11.0] - 2026-06-04 — Deterministic citation verification gate (#182)
8+
9+
The v3.11.0 minor release ships **#182 — a deterministic citation-existence verification gate**
10+
that runs independently of LLM peer review. It cross-checks every cited reference against up to
11+
four bibliographic indexes (Semantic Scholar + OpenAlex + Crossref + the new arXiv resolver) and
12+
surfaces a per-citation `lookup_verified` status, so a fabricated citation with a provably-bogus
13+
DOI/arXiv ID is caught by deterministic lookup rather than by hoping a reviewer agent notices.
14+
The gate **inherits the v3.10 `terminal_policies` opt-in model** — default advisory, opt-in
15+
`strict` — rather than introducing a second hard-block philosophy: detection always runs and
16+
populates the summary, but a `lookup_verified == false` row is terminal only under
17+
`terminal_policies.citation_existence == strict`. **Default behavior is non-blocking** (advisory,
18+
`/ars-mark-read`-acknowledgeable); a user must opt into `strict` to make existence-failure
19+
terminal. The `false` definition is deliberately **narrowed to ID-keyed unmatched** (an exact
20+
DOI/arXiv lookup that provably fails), so a legitimately-unindexed humanities / non-English /
21+
regional citation with only a title-unmatched stays `unresolvable` and never blocks (C-V6(a); an
22+
acknowledged precision-over-recall tradeoff documented in the spec, mirroring `strict_articles_only`).
23+
24+
**Five delta items (#182):**
25+
26+
- **Delta 1 — arXiv API resolver + four-index contamination rendering.** New `scripts/arxiv_client.py`
27+
verifies citation existence against `export.arxiv.org` (metadata + existence; no API key, no
28+
polite-pool email — built-in rate-limit pacing per arXiv ToU; accepts both old-style
29+
`hep-th/9711200` and new-style `2605.07723` IDs). `scripts/contamination_signals.py` extends the
30+
v3.9.0 cross-index triangulation advisory matrix from three indexes (k=0..3) to four (k=0..4) with
31+
an `arxiv_unmatched` signal, and the orchestrator finalizer + formatter render the four new
32+
advisory suffixes (`CONTAMINATED-ARXIV-UNMATCHED` at the k=1/k_max=1 arxiv-only carve-out;
33+
`CONTAMINATED-QUADRANGULATION-UNMATCHED` at k=4/k_max=4; plus their two `PREPRINT` compositions).
34+
All advisory — the terminal gate / refusal list is unchanged (R-L3-2-E). `arxiv_unmatched` field
35+
added to `literature_corpus_entry.schema.json`.
36+
- **Delta 2 — persistent verification cache.** New `scripts/verification_cache.py` — a local SQLite
37+
store (`~/.cache/ars/verification.db`, override via `ARS_VERIFICATION_CACHE_PATH`; WAL mode;
38+
90-day TTL) keyed by `(citation_key, resolver_name, query_form)`, so the same paper cited across
39+
drafts is verified once. Each resolver entry point (crossref / openalex / S2 / arxiv) gains an
40+
optional `cache` parameter. New `/ars-cache-invalidate <citation_key>` command removes every
41+
cached row for a key (idempotent no-op when absent).
42+
- **Delta 3 / C-V6 — citation-existence terminal policy.** New `terminal_policies` key
43+
`citation_existence` (closed enum `{advisory, strict}`, per-key absence = advisory) in
44+
`terminal_policies.schema.json`, alongside `contamination_triangulation`. This replaces the
45+
original Delta-3 `ARS_CLAIM_AUDIT` default-flip as the gate's on/off control. The finalizer is the
46+
sole policy evaluator; `formatter_agent.md` rule 12 refuses on a `lookup_verified == false` row
47+
**only under `strict`**, co-emitting `[UNVERIFIED CITATION — lookup_verified=false: ...]` alongside
48+
the advisory annotation. `HIGH-BLOCK` is terminal — not `/ars-mark-read`-clearable. Manual entries
49+
structurally exempt.
50+
- **Delta 4 — unified per-citation status surface.** New
51+
`shared/contracts/passport/citation_verification_summary.schema.json` +
52+
`scripts/citation_verification_summary.py` write a `lookup_verified` (enum `{true, false,
53+
unresolvable}`) + `anchor_present` + `resolver_outcomes` (per-resolver `{matched, unmatched,
54+
unreachable, skipped}`) row per citation. The classification is anti-fabrication-biased (one
55+
ID-keyed `unmatched` is positive evidence of non-existence; a single transient outage does not
56+
cancel it) and the `false` form is narrowed to ID-keyed unmatched per C-V6(a).
57+
- **Delta 5 — standalone `verification_gate` API.** New `scripts/verification_gate/__init__.py`
58+
extracts the gate logic into a callable API composing the four resolvers + the unified summary
59+
writer (a second caller of the same lower-layer infrastructure as the v3.8 audit, not a
60+
duplicate). New `scripts/verify_passport.py` CLI runs the gate over a Material Passport
61+
standalone.
62+
63+
**Lint + CI:**
64+
65+
- `scripts/check_v3_9_0_triangulation.py` (the canonical cross-version contamination-suffix oracle)
66+
rule 1 upgraded from subsection token-presence to a **matrix-row oracle**: each Delta-1 token must
67+
sit on the finalizer suffix-table row carrying its exact `(k, k_max)` cell, so deleting or
68+
mistokening an operational row fails even when the same token survives in surrounding prose. The
69+
formatter pass-through allowlist set-equality oracle extends 9 → 13 tokens.
70+
- `scripts/_ci_pytest_manifest.toml` backfills 5 data-layer test entries (citation-verification-summary
71+
/ verification-gate / arxiv-client / verification-cache / verify-passport-cli) that shipped with
72+
the data layer but were not wired into the manifest runner at the time.
73+
74+
Spec: `docs/design/2026-05-21-v3.10-182-promote-citation-gate-spec.md` (§0 v3.11 amendment +
75+
INVARIANT C-V6).
76+
777
## [3.10.0] - 2026-06-01 — Triangulation policy layer, Kong et al. survey adoptions, eval harness, scoped-write guard
878

979
The v3.10.0 minor release bundles the opt-in contamination-triangulation **terminal policy

MODE_REGISTRY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Single source of truth for all modes across the ARS suite. **25 modes** across 4
44

55
When adding or modifying modes, update this file first — SKILL.md files and CLAUDE.md should reference this registry.
66

7-
Last updated: v3.10.0 (2026-06-01)
7+
Last updated: v3.11.0 (2026-06-04)
88

99
---
1010

README.ja-JP.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Claude Code 向け Academic Research Skills
22

3-
[![Version](https://img.shields.io/badge/version-v3.10.0-blue)](https://github.com/Imbad0202/academic-research-skills/releases/tag/v3.10.0)
3+
[![Version](https://img.shields.io/badge/version-v3.11.0-blue)](https://github.com/Imbad0202/academic-research-skills/releases/tag/v3.11.0)
44
[![License: CC BY-NC 4.0](https://img.shields.io/badge/license-CC%20BY--NC%204.0-lightgrey)](https://creativecommons.org/licenses/by-nc/4.0/)
55
[![Sponsor](https://img.shields.io/badge/sponsor-Buy%20Me%20a%20Coffee-orange?logo=buy-me-a-coffee)](https://buymeacoffee.com/crucify020v)
66

@@ -240,7 +240,7 @@ You: "status"
240240

241241
**0-100 品質ルーブリック** を持つ 7 エージェントの多視点レビュー。モード: full、re-review、quick、methodology-focus、guided、calibration。**決定マッピング:** ≥80 Accept、65-79 Minor Revision、50-64 Major Revision、<50 Reject。初回レビューチーム vs. 限定的な再レビューチームの境界: ARCHITECTURE.md §3 Stage 3 / Stage 3' を参照。
242242

243-
### Academic Pipeline(v3.10.0)
243+
### Academic Pipeline(v3.11.0)
244244

245245
整合性検証、二段階レビュー、ソクラテス式コーチング、コラボレーション評価を持つ 10 ステージのオーケストレーター。パイプライン保証: 各ステージにユーザー確認チェックポイントが必要。整合性検証(Stage 2.5 + 4.5)はスキップできない。R&R Traceability Matrix(Schema 11)は著者の改訂主張を独立に検証する。v3.4 は Stage 2.5 / 4.5 に Compliance Agent(PRISMA-trAIce + RAISE)を追加した。v3.5 はすべての FULL/SLIM チェックポイントとパイプライン完了時に **Collaboration Depth Observer**(`collaboration_depth_agent`、advisory のみ — 決してブロックしない)を追加する。MANDATORY 整合性ゲート(2.5 / 4.5)は、コンプライアンスチェックが希薄化されないよう observer を明示的にスキップする。Wang & Zhang(2026), IJETHE 23:11 に基づく。エージェント、成果物、ゲートを含むステージごとのマトリクス: ARCHITECTURE.md §3 を参照。
246246

@@ -321,6 +321,12 @@ https://github.com/Imbad0202/academic-research-skills
321321

322322
## Changelog
323323

324+
### v3.11.0 (2026-06-04) — 決定論的引用検証ゲート(#182
325+
326+
> **[machine-translated]** この項目は機械翻訳であり、ネイティブ contributor によるレビュー待ちです。正本は英語版 CHANGELOG です。
327+
328+
> LLM ピアレビューとは独立に動作する**決定論的な引用存在性検証ゲート**を追加。各引用は最大 4 つの書誌インデックス(Semantic Scholar、OpenAlex、Crossref、および新規の **arXiv resolver**、`scripts/arxiv_client.py`、API キー不要)と照合され、引用ごとの `lookup_verified` 状態(`{true, false, unresolvable}`)が統一サマリに書き込まれる。捏造された、解決できない DOI/arXiv ID を持つ引用は、レビュー agent が気づくことを期待するのではなく、lookup によって検出・マークされる(ユーザーが strict を選択したときのみ終止に昇格)。このゲートは **v3.10 の `terminal_policies` opt-in モデルを継承**する。検出は常に実行されるが、`lookup_verified == false` の行が終止的になるのはユーザーが `terminal_policies.citation_existence == strict` を選択したときのみで、デフォルトの挙動は advisory(`/ars-mark-read` で承認可能)である。`false` の定義は意図的に **ID-keyed unmatched に限定**(正確な DOI/arXiv で照会して解決できないことが証明された場合)されており、正当だが未索引の人文系 / 非英語 / 地域ジャーナルの引用は `unresolvable` に分類され、決してブロックされない(ドキュメントに明記された「精度優先・再現率劣後」のトレードオフ)。本バージョンには永続的な SQLite 検証 cache(`~/.cache/ars/verification.db`、90 日 TTL)と `/ars-cache-invalidate` コマンド、独立した `verification_gate` API と `verify_passport.py` CLI、および v3.9.0 の汚染トライアンギュレーション行列を 4 インデックス(k=0..4、すべて advisory)へ拡張したものも含まれる。`academic-pipeline` は suite に追従して v3.11.0、他の 3 つの skill バージョンは変更なし。仕様: `docs/design/2026-05-21-v3.10-182-promote-citation-gate-spec.md`(§0 amendment + C-V6)。
329+
324330
### v3.10.0 (2026-06-01) — トライアンギュレーション・ポリシー層、Kong サーベイ採用、評価ハーネス、スコープ書き込みガード
325331

326332
> *[machine-translated, pending native review by @eltociear]*

0 commit comments

Comments
 (0)