paperops
PaperOps 2 1.0
新規pops initはResearch / Editorial / Results hierarchy / Manuscript / Issue / Publicationの六モデルだけを権威として作る。通常の構造化変更はpops changeがindex、revision/hash、依存検証、manifest、journal、rollbackを処理する。旧cardとmacro-stateは新規scaffoldに含めないが、既存projectのartifactはsetupやmanaged updateで削除せず、pops model / pops workflow migrateのread-only migration readerを維持する。
paperops は、AI エージェントと論文を書くためのプロジェクトハーネスである。
人間が template/ を手でコピーして使う道具ではなく、pops CLI で論文プロジェクトを初期化・診断・更新する。
まず使う
新規論文プロジェクト:
uvx --from paper-harness-cli pops init paper-my-topic
cd paper-my-topic
uvx --from paper-harness-cli pops doctor
この新規projectは六モデルのstarterを検証し、そのsemantic hashとtyped workflowを.pops/manifest.tomlへ原子的に記録する。既存projectをv2へ移す場合はpops init --forceで権威を上書きせず、pops model diff|adoptとpops workflow migrateを使う。
既存プロジェクトを pops 管理に寄せる:
uvx --from paper-harness-cli pops setup
uvx --from paper-harness-cli pops doctor
pops は常に uvx --from paper-harness-cli pops ... で実行する。.venv は CLI 用ではなく、論文プロジェクト側の Python 実行環境が必要な場合に make venv で作る。
何を提供するか
template/: 個別論文リポジトリに展開される scaffoldsrc/paperops/: scaffold を初期化・診断・更新するpopsCLI.github/workflows/: 下流論文リポジトリから呼び出せる reusable workflow.agents/skills/,.claude/skills/: paperops 自体を保守するための skilldocs/: CLI、配布、アーキテクチャ、変更ルール
論文プロジェクトの基本モデル
下流の論文リポジトリでは、原稿だけでなく中間層も明示的に持つ。
_paperops/model/research/: claim / result / figure / source / scientific gate_paperops/model/editorial/: story decision と Results hierarchy_paperops/model/manuscript/: section / block topology と operation_paperops/model/issues/: feedback / request / response / review round / workflow issue_paperops/model/publication/: submission candidate / approval / round snapshot reference_paperops/notes/views/: pure overview view と controlled authoring view_paperops/model/editorial/results-hierarchy.yml: project-owned の typed Results hierarchy 正本_paperops/defaults/schemas/: paperops-managed の schema default_paperops/defaults/contracts/: paperops-managed の標準 section / figure story 契約_paperops/contracts/: 論文固有の contract overlaypops workflow status: 六モデルから全体状態、review、submission、section、staleを投影manuscript/writing-profile.yml: 論文種別・投稿先ごとの overlaymanuscript/ja,manuscript/en: block ID で対応する原稿_paperops/refs/: 文献サマリー、外部 source、外部 project link_paperops/refs/imports/: 外部 export bundle の source index / integrity / provenance state_handoff/: 人間から AI へ渡す未整理ファイルの一時置き場_archives/: 同じ repo で1から書き直すために封印した過去稿 archive
人間は主に原稿レベルのレビューや自然文の指示を出す。Agent はそれを _paperops/model/issues/feedback/ の card にし、必要なら claim / gate / evidence / request / manuscript へ遡って反映する。本文生成の前には、必要に応じて pops workflow status、_paperops/defaults/contracts/、_paperops/contracts/、manuscript/writing-profile.yml を確認し、plan-figure-story で visual obligation と主図構成を決めてから、card と controlled view から paper_ir を作り、Results / Discussion / Methods の section compiler を通す。
新規 scaffold ではtyped modelだけを使う。既存下流 projectのlegacy artifactは移行完了まで読み取り可能であり、1.0.0への更新だけでは削除されない。
PaperOps 2 P1-B は Research、Editorial、Results hierarchy、Manuscript、Issue、Publication の正確な六モデルを提供する。P2 は pops model の deterministic migrationとして、legacy inventory、shadow diff、strict validation、model単位のadopt、snapshot rollbackをAIなしで反復できるようにする。authorityはlegacy-authoritative、shadow-compare、v2-authoritativeをmodelごとに持ち、Editorial / Results hierarchyだけはcompanionとして同時に切り替える。
AI Agentはscientific / editorial judgment、候補の選択理由、未解決fieldを埋めるための人間との対話を担当し、定型的なfile discovery、hash、conservation、transaction、recoveryを直接操作しない。P3 compiler / WriterとP4 workflow writerの導入後もhuman-edited living TeXを維持する。legacy互換artifactは新規scaffoldから削除済みで、既存projectのproject-owned artifactだけを明示migrationと確認が終わるまで保持する。
検証phaseは schema → references → semantics → canonical semantic-v1 hash の順で、mechanism-led、boundary-led、negative-result-led の三つの合成fixtureを回帰corpusとして維持する。
よく使うコマンド
uvx --from paper-harness-cli pops version
uvx --from paper-harness-cli pops doctor
uvx --from paper-harness-cli pops update-paperops --plan
uvx --from paper-harness-cli pops update-paperops --apply
uvx --from paper-harness-cli pops links check
uvx --from paper-harness-cli pops model status all
uvx --from paper-harness-cli pops model diff research
uvx --from paper-harness-cli pops model adopt research --yes
uvx --from paper-harness-cli pops model rollback research
uvx --from paper-harness-cli pops change plan .paperops/request.yml
uvx --from paper-harness-cli pops change apply CHG-... --yes
uvx --from paper-harness-cli pops compile prepare all
uvx --from paper-harness-cli pops write start CMP-...
uvx --from paper-harness-cli pops scratch archive --label before-rewrite
uvx --from paper-harness-cli pops scratch reset --yes
下流プロジェクトでの確認:
make ci
make audit
make schema-check
make pre-submit
make figure-reference-check
make figure-obligation-check
paperops 本体の確認:
make venv
make smoke
詳細
- PaperOps 2 設計 RFC: docs/rfcs/0001-paperops-2.md
- CLI: docs/cli.md
- 配布とリリース: docs/distribution.md
- アーキテクチャ: docs/architecture.md
- Skill 一覧: docs/skill-catalog.md
- 更新方針: docs/upgrade-policy.md
- 変更ルール: docs/change-policy.md, docs/triage-rules.md
Metadata
Release files for paper-harness-cli 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| paper_harness_cli-1.0.0.tar.gz | 748.2 kB | With provenance | Details for paper_harness_cli-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| paper_harness_cli-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for paper_harness_cli-1.0.0-py3-none-any.whl |
Total release size: 1.5 MB
Release files / paper_harness_cli-1.0.0.tar.gz
| Download URL | paper_harness_cli-1.0.0.tar.gz |
|---|---|
| Size | 748.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23e4b44d0fb0e151493d9ecb668003c06ff21ce0d9c45b8d463d881f6c2ed54f
|
|
BLAKE2b-256 checksum How to use checksums |
64d6973e6ac5d7da11c86b964968d40daf6951e9ec1d691360e4a994ff49dcc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logRelease files / paper_harness_cli-1.0.0-py3-none-any.whl
| Download URL | paper_harness_cli-1.0.0-py3-none-any.whl |
|---|---|
| Size | 712.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
02cb1172f11773f332fbf0742b6b4e06799cc931fe068db040989f7a6ce11dba
|
|
BLAKE2b-256 checksum How to use checksums |
1e2ce47148b37e52f9ba3f1fdef9ae4d606ef12d8f55625c2a12d420b1f5d36d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logSecurity for paper-harness-cli 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for paper_harness_cli-1.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.