CLI kernel for bootstrapping and maintaining paper-harness projects
Project description
paperops
paperops は、AI エージェントと論文を書くためのプロジェクトハーネスである。
人間が template/ を手でコピーして使う道具ではない。主導線は pops CLI で、Agent が安全に project state を初期化・診断・更新するための execution kernel として扱う。
最小セットアップ
新規論文プロジェクト:
uvx --from paper-harness-cli pops init paper-my-topic
cd paper-my-topic
uvx --from paper-harness-cli pops doctor
既存プロジェクトを CLI 管理へ寄せる:
cd paper-my-topic
uvx --from paper-harness-cli pops setup
uvx --from paper-harness-cli pops doctor
template/ はこのリポジトリ内の source of truth であり、paper-harness-cli パッケージに bundled scaffold として同梱される。
pops は uvx --from paper-harness-cli pops ... で実行する。.venv は CLI 用ではなく、論文プロジェクトの Python 実行環境が必要な場合に make venv で作成する。
AI 前提の作業ループ
日常運用の主役は、CLI そのものではなく Agent との会話である。
- 人間が論文トピック、制約、投稿先候補、判断を伝える。
- Agent が
notes/project-brief.md、notes/claim-evidence-map.md、manuscript/venue.mdを整える。 uvx --from paper-harness-cli pops ...が init / setup / doctor / update-paperops のような決定的操作を担う。- 原稿は
manuscript/jaを中心に進め、必要な block をmanuscript/enへ同期する。 - 共有前に
make ci、投稿前にmake pre-submitでハーネスのゲートを通す。 - 再利用可能な摩擦は
/feedback-paper-harnessで上流paperopsに戻す。
CLI の詳細は docs/cli.md を参照する。
コア設計思想
template/は個別論文リポジトリに展開される scaffold の source of truth。src/paperops/はtemplate/を展開・診断・更新する薄い CLI。notes/はセッション継続性、主張・証拠、読者モデル、AI 利用ログの共有 memory。manuscript/jaとmanuscript/enは block ID で対応するバイリンガル原稿。refs/は raw PDF 置き場ではなく、キュレーション済みの参照知識層。submission/<venue>/は投稿先公式テンプレートと最終提出用 TeX の隔離スロット。pops update-paperopsはハーネス管理ファイルだけを扱い、下流固有のmanuscript/、notes/、refs/、submission/を自動上書きしない。
リポジトリ構成
src/paperops/:popsCLItemplate/: 論文プロジェクトに展開される scaffold.github/workflows/: 下流論文リポジトリから呼び出し可能な再利用可能 GitHub Actions workflow.github/ISSUE_TEMPLATE/: テンプレート改善、スキル要求、構造変更の Issue フォーム.claude/skills/,.agents/skills/: テンプレート保守用 skilldocs/: アーキテクチャ、変更ポリシー、トリアージルール、CLI と配布方針tests/:popsCLI の最小 smoke tests
スキャフォールドが最適化するもの
refs/: 生の PDF 置き場ではなく共有知識層として活用notes/: セッション引き継ぎ、主張・証拠、読者モデル、AI 利用ログ、継続性の状態管理- 日本語・英語の原稿をブロックレベルのミラーとして追跡
submission/<venue>/: 投稿先公式テンプレートと最終提出用 TeX の分離manuscript/publication-metadata.toml、notes/ai-use.md、notes/reproducibility.md: 公開メタデータ、AI 利用開示、計算環境、図表 provenance の投稿前確認make pre-submit:make ciに加えて引用サマリー、submission slot、スタータープレースホルダー、workflow 参照、公開メタデータ不足を検出make citation-check: TeX 本文中の citation key と.bibの不整合を早期検出make public-terms-check/make claim-evidence-check: 内部語の公開本文混入と supported claim の evidence 対応を早期検出make mirror-freshness-check/make submission-drift-check: 日英 block の同期鮮度と投稿版への科学的変更戻し忘れを点検make skill-mirror-check:.agents/skills/が.claude/skills/の同名 source of truth を参照しているかを点検scripts/build-ja.sh/scripts/build-en.sh:\input/\include/\includegraphics/ bibliography / style 参照の構造検証を行い、TeX 環境があれば PDF ビルドへ進む- 下流論文リポジトリ用の Issue フォーム: 原稿レビュー、エビデンス不足、ハーネス摩擦を分けて収集
- テンプレート自体の再利用可能な保守ワークフロー
- プロジェクトローカルの Claude / Codex スキル、フック、運用ルール
CLI
uvx --from paper-harness-cli pops init paper-my-topic
uvx --from paper-harness-cli pops setup
uvx --from paper-harness-cli pops doctor
uvx --from paper-harness-cli pops update-paperops --dry-run
uvx --from paper-harness-cli pops update-paperops --plan
uvx --from paper-harness-cli pops migrate --apply
uvx --from paper-harness-cli pops feedback
uvx --from paper-harness-cli pops version
このコマンド面は uvx 経由に一本化する。実装は小さく保ち、既存 skill と Makefile の運用を壊さないことを優先する。
version を跨ぐ scaffold 更新では、update-paperops --plan で minor checkpoint ごとの upgrade chain を確認し、必要に応じて --apply-chain で exact version の pops を順に呼び替える。詳細は docs/upgrade-policy.md を参照する。
PyPI 公開
paper-harness-cli は release publish または手動 dispatch で PyPI に公開する。
GitHub Actions の PyPI 公開 workflow は distribution を build / check し、PyPI Trusted Publishing で paper-harness-cli にアップロードする。
PyPI 側では trusted publisher として、この repository、workflow .github/workflows/publish-pypi.yml、environment pypi を設定しておく。
開発と検証
テンプレートは完全な TeX 環境を前提とせず、軽量なローカルチェックを提供する。
scripts/build-ja.sh と scripts/build-en.sh は latexmk が利用可能な場合はコンパイルを行い、そうでなければ scripts/check-tex-structure.py による構造検証にフォールバックするため、クリーンなランナーでも CI が執筆ハーネスを実行できる。
開発時のローカルセットアップは、リポジトリローカルの .venv 内の Python 3.11 以上である。
make venv
make smoke
python -m pip wheel . --no-deps -w .codex-tmp/wheelhouse
上流リファレンス
フックと設定のレイアウトは Anthropic の Claude Code ドキュメントのプロジェクト設定とフックに準拠しており、GitHub 自動化ファイルは GitHub の再利用可能ワークフローと Issue フォームのドキュメントに準拠している:
- https://code.claude.com/docs/en/settings
- https://code.claude.com/docs/en/hooks
- https://docs.github.com/en/actions/reference/workflows-and-actions/reusing-workflow-configurations
- https://docs.github.com/en/enterprise-cloud@latest/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paper_harness_cli-0.2.0.tar.gz.
File metadata
- Download URL: paper_harness_cli-0.2.0.tar.gz
- Upload date:
- Size: 125.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a19e122ec568c3567b75304ffb15ca6829b3a4a918c1fa1809592d091cd385a
|
|
| MD5 |
3ae8a71dd18b9efe99267b6a5aa7f1cc
|
|
| BLAKE2b-256 |
81af1a3f89bca811b8a4ffc3a1ce2c2db8177a034e47a69a496d48815cf64c77
|
Provenance
The following attestation bundles were made for paper_harness_cli-0.2.0.tar.gz:
Publisher:
publish-pypi.yml on Nkzono99/paperops
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paper_harness_cli-0.2.0.tar.gz -
Subject digest:
8a19e122ec568c3567b75304ffb15ca6829b3a4a918c1fa1809592d091cd385a - Sigstore transparency entry: 1524875000
- Sigstore integration time:
-
Permalink:
Nkzono99/paperops@7d0107a212a022ea2e447be393c68e09837a5047 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Nkzono99
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@7d0107a212a022ea2e447be393c68e09837a5047 -
Trigger Event:
release
-
Statement type:
File details
Details for the file paper_harness_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: paper_harness_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 159.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e11a48b9b12aa733ac7ca5cfb84145b7ece7281be9f723c7704c9717531db35f
|
|
| MD5 |
9ce5b033b72955adcc633b1d45728a5d
|
|
| BLAKE2b-256 |
e60d15ec01500ea86dd59e6d246b428ea287c2195df3469fb839492612409073
|
Provenance
The following attestation bundles were made for paper_harness_cli-0.2.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on Nkzono99/paperops
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paper_harness_cli-0.2.0-py3-none-any.whl -
Subject digest:
e11a48b9b12aa733ac7ca5cfb84145b7ece7281be9f723c7704c9717531db35f - Sigstore transparency entry: 1524875008
- Sigstore integration time:
-
Permalink:
Nkzono99/paperops@7d0107a212a022ea2e447be393c68e09837a5047 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Nkzono99
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@7d0107a212a022ea2e447be393c68e09837a5047 -
Trigger Event:
release
-
Statement type: