paper-harness-cli 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- paper_harness_cli-0.1.0/.agents/skills/apply-template-improvement/SKILL.md +46 -0
- paper_harness_cli-0.1.0/.agents/skills/review-template-regression/SKILL.md +24 -0
- paper_harness_cli-0.1.0/.agents/skills/triage-template-feedback/SKILL.md +55 -0
- paper_harness_cli-0.1.0/.claude/skills/apply-template-improvement/SKILL.md +46 -0
- paper_harness_cli-0.1.0/.claude/skills/review-template-regression/SKILL.md +24 -0
- paper_harness_cli-0.1.0/.claude/skills/triage-template-feedback/SKILL.md +55 -0
- paper_harness_cli-0.1.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
- paper_harness_cli-0.1.0/.github/ISSUE_TEMPLATE/skill-request.yml +35 -0
- paper_harness_cli-0.1.0/.github/ISSUE_TEMPLATE/structure-change.yml +37 -0
- paper_harness_cli-0.1.0/.github/ISSUE_TEMPLATE/template-feedback.yml +49 -0
- paper_harness_cli-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +10 -0
- paper_harness_cli-0.1.0/.github/workflows/publish-pypi.yml +62 -0
- paper_harness_cli-0.1.0/.github/workflows/reusable-build.yml +42 -0
- paper_harness_cli-0.1.0/.github/workflows/reusable-mirror-check.yml +31 -0
- paper_harness_cli-0.1.0/.github/workflows/reusable-release.yml +37 -0
- paper_harness_cli-0.1.0/.gitignore +22 -0
- paper_harness_cli-0.1.0/AGENTS.md +60 -0
- paper_harness_cli-0.1.0/CHANGELOG.md +52 -0
- paper_harness_cli-0.1.0/CLAUDE.md +61 -0
- paper_harness_cli-0.1.0/Makefile +44 -0
- paper_harness_cli-0.1.0/PKG-INFO +128 -0
- paper_harness_cli-0.1.0/README.md +117 -0
- paper_harness_cli-0.1.0/docs/architecture.md +44 -0
- paper_harness_cli-0.1.0/docs/change-policy.md +19 -0
- paper_harness_cli-0.1.0/docs/cli.md +59 -0
- paper_harness_cli-0.1.0/docs/distribution.md +66 -0
- paper_harness_cli-0.1.0/docs/skill-catalog.md +72 -0
- paper_harness_cli-0.1.0/docs/triage-rules.md +32 -0
- paper_harness_cli-0.1.0/pyproject.toml +27 -0
- paper_harness_cli-0.1.0/scripts/cli-smoke.py +24 -0
- paper_harness_cli-0.1.0/src/paperops/__init__.py +7 -0
- paper_harness_cli-0.1.0/src/paperops/cli/__init__.py +1 -0
- paper_harness_cli-0.1.0/src/paperops/cli/main.py +688 -0
- paper_harness_cli-0.1.0/template/.agents/README.md +7 -0
- paper_harness_cli-0.1.0/template/.agents/skills/ai-disclosure-check/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/calibrate-claims/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/collect-manuscript-review/SKILL.md +16 -0
- paper_harness_cli-0.1.0/template/.agents/skills/design-manuscript-claims/SKILL.md +16 -0
- paper_harness_cli-0.1.0/template/.agents/skills/feedback-paper-harness/SKILL.md +15 -0
- paper_harness_cli-0.1.0/template/.agents/skills/figure-story-audit/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/import-manuscript/SKILL.md +15 -0
- paper_harness_cli-0.1.0/template/.agents/skills/improve-writing-harness/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/note-writing-session/SKILL.md +15 -0
- paper_harness_cli-0.1.0/template/.agents/skills/paragraph-surgery/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/public-terminology-pass/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/pull-template-updates/SKILL.md +17 -0
- paper_harness_cli-0.1.0/template/.agents/skills/resolve-local-paths/SKILL.md +13 -0
- paper_harness_cli-0.1.0/template/.agents/skills/resume-session/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/review-public-manuscript/SKILL.md +19 -0
- paper_harness_cli-0.1.0/template/.agents/skills/setup/SKILL.md +16 -0
- paper_harness_cli-0.1.0/template/.agents/skills/start-manuscript-review/SKILL.md +16 -0
- paper_harness_cli-0.1.0/template/.agents/skills/sync-ja-en/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/update-refs/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.agents/skills/venue-fit-review/SKILL.md +14 -0
- paper_harness_cli-0.1.0/template/.claude/hooks/refresh-session-context.sh +15 -0
- paper_harness_cli-0.1.0/template/.claude/rules/manuscript-editing.md +10 -0
- paper_harness_cli-0.1.0/template/.claude/rules/notes-session.md +10 -0
- paper_harness_cli-0.1.0/template/.claude/rules/refs-knowledge.md +8 -0
- paper_harness_cli-0.1.0/template/.claude/rules/writing-policy.md +10 -0
- paper_harness_cli-0.1.0/template/.claude/rules/writing-quality.md +14 -0
- paper_harness_cli-0.1.0/template/.claude/settings.json +48 -0
- paper_harness_cli-0.1.0/template/.claude/skills/ai-disclosure-check/SKILL.md +37 -0
- paper_harness_cli-0.1.0/template/.claude/skills/calibrate-claims/SKILL.md +39 -0
- paper_harness_cli-0.1.0/template/.claude/skills/collect-manuscript-review/SKILL.md +77 -0
- paper_harness_cli-0.1.0/template/.claude/skills/design-manuscript-claims/SKILL.md +125 -0
- paper_harness_cli-0.1.0/template/.claude/skills/feedback-paper-harness/SKILL.md +31 -0
- paper_harness_cli-0.1.0/template/.claude/skills/figure-story-audit/SKILL.md +33 -0
- paper_harness_cli-0.1.0/template/.claude/skills/import-manuscript/SKILL.md +111 -0
- paper_harness_cli-0.1.0/template/.claude/skills/improve-writing-harness/SKILL.md +24 -0
- paper_harness_cli-0.1.0/template/.claude/skills/note-writing-session/SKILL.md +27 -0
- paper_harness_cli-0.1.0/template/.claude/skills/paragraph-surgery/SKILL.md +34 -0
- paper_harness_cli-0.1.0/template/.claude/skills/public-terminology-pass/SKILL.md +32 -0
- paper_harness_cli-0.1.0/template/.claude/skills/pull-template-updates/SKILL.md +99 -0
- paper_harness_cli-0.1.0/template/.claude/skills/resolve-local-paths/SKILL.md +23 -0
- paper_harness_cli-0.1.0/template/.claude/skills/resume-session/SKILL.md +36 -0
- paper_harness_cli-0.1.0/template/.claude/skills/resume-session/templates/session-summary.md +11 -0
- paper_harness_cli-0.1.0/template/.claude/skills/review-public-manuscript/SKILL.md +106 -0
- paper_harness_cli-0.1.0/template/.claude/skills/setup/SKILL.md +170 -0
- paper_harness_cli-0.1.0/template/.claude/skills/start-manuscript-review/SKILL.md +60 -0
- paper_harness_cli-0.1.0/template/.claude/skills/sync-ja-en/SKILL.md +32 -0
- paper_harness_cli-0.1.0/template/.claude/skills/sync-ja-en/scripts/sync_blocks.py +52 -0
- paper_harness_cli-0.1.0/template/.claude/skills/sync-ja-en/templates/drift-report.md +11 -0
- paper_harness_cli-0.1.0/template/.claude/skills/update-refs/SKILL.md +23 -0
- paper_harness_cli-0.1.0/template/.claude/skills/venue-fit-review/SKILL.md +38 -0
- paper_harness_cli-0.1.0/template/.gitattributes +5 -0
- paper_harness_cli-0.1.0/template/.github/ISSUE_TEMPLATE/config.yml +1 -0
- paper_harness_cli-0.1.0/template/.github/ISSUE_TEMPLATE/evidence-request.yml +39 -0
- paper_harness_cli-0.1.0/template/.github/ISSUE_TEMPLATE/harness-friction.yml +45 -0
- paper_harness_cli-0.1.0/template/.github/ISSUE_TEMPLATE/manuscript-feedback.yml +45 -0
- paper_harness_cli-0.1.0/template/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- paper_harness_cli-0.1.0/template/.github/workflows/ci.yml +15 -0
- paper_harness_cli-0.1.0/template/.github/workflows/mirror-check.yml +20 -0
- paper_harness_cli-0.1.0/template/.github/workflows/release.yml +11 -0
- paper_harness_cli-0.1.0/template/.gitignore +18 -0
- paper_harness_cli-0.1.0/template/AGENTS.md +136 -0
- paper_harness_cli-0.1.0/template/CLAUDE.md +139 -0
- paper_harness_cli-0.1.0/template/Makefile +56 -0
- paper_harness_cli-0.1.0/template/README.md +62 -0
- paper_harness_cli-0.1.0/template/TROUBLESHOOTING.md +32 -0
- paper_harness_cli-0.1.0/template/manuscript/en/frontmatter/authors.tex +7 -0
- paper_harness_cli-0.1.0/template/manuscript/en/frontmatter/title.tex +7 -0
- paper_harness_cli-0.1.0/template/manuscript/en/main.tex +23 -0
- paper_harness_cli-0.1.0/template/manuscript/en/sections/00_abstract.tex +10 -0
- paper_harness_cli-0.1.0/template/manuscript/en/sections/10_intro.tex +10 -0
- paper_harness_cli-0.1.0/template/manuscript/en/sections/20_method.tex +10 -0
- paper_harness_cli-0.1.0/template/manuscript/en/sections/30_results.tex +10 -0
- paper_harness_cli-0.1.0/template/manuscript/en/sections/40_discussion.tex +7 -0
- paper_harness_cli-0.1.0/template/manuscript/en/sections/90_conclusion.tex +7 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/frontmatter/authors.tex +7 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/frontmatter/title.tex +7 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/main.tex +23 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/sections/00_abstract.tex +10 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/sections/10_intro.tex +10 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/sections/20_method.tex +10 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/sections/30_results.tex +10 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/sections/40_discussion.tex +7 -0
- paper_harness_cli-0.1.0/template/manuscript/ja/sections/90_conclusion.tex +7 -0
- paper_harness_cli-0.1.0/template/manuscript/mirror/block-ledger.yml +117 -0
- paper_harness_cli-0.1.0/template/manuscript/mirror/change-queue.md +7 -0
- paper_harness_cli-0.1.0/template/manuscript/mirror/map.toml +27 -0
- paper_harness_cli-0.1.0/template/manuscript/mirror/reports/.gitkeep +0 -0
- paper_harness_cli-0.1.0/template/manuscript/mirror/status.md +17 -0
- paper_harness_cli-0.1.0/template/manuscript/mirror/terminology.yml +19 -0
- paper_harness_cli-0.1.0/template/manuscript/publication-metadata.toml +30 -0
- paper_harness_cli-0.1.0/template/manuscript/shared/bib/mypapers.bib +1 -0
- paper_harness_cli-0.1.0/template/manuscript/shared/bib/references.bib +2 -0
- paper_harness_cli-0.1.0/template/manuscript/shared/figures/.gitkeep +0 -0
- paper_harness_cli-0.1.0/template/manuscript/shared/style/journal.cls +13 -0
- paper_harness_cli-0.1.0/template/manuscript/shared/style/macros.tex +3 -0
- paper_harness_cli-0.1.0/template/manuscript/venue.md +22 -0
- paper_harness_cli-0.1.0/template/notes/ai-use.md +30 -0
- paper_harness_cli-0.1.0/template/notes/claim-evidence-map.md +29 -0
- paper_harness_cli-0.1.0/template/notes/contribution-claims.md +13 -0
- paper_harness_cli-0.1.0/template/notes/decision-log.md +6 -0
- paper_harness_cli-0.1.0/template/notes/handoff.md +12 -0
- paper_harness_cli-0.1.0/template/notes/open-questions.md +4 -0
- paper_harness_cli-0.1.0/template/notes/project-brief.md +11 -0
- paper_harness_cli-0.1.0/template/notes/reproducibility.md +47 -0
- paper_harness_cli-0.1.0/template/notes/reviewer-model.md +37 -0
- paper_harness_cli-0.1.0/template/notes/todo.md +6 -0
- paper_harness_cli-0.1.0/template/refs/index.md +23 -0
- paper_harness_cli-0.1.0/template/refs/local/README.md +4 -0
- paper_harness_cli-0.1.0/template/refs/local/aliases.md +5 -0
- paper_harness_cli-0.1.0/template/refs/local/locations.example.toml +17 -0
- paper_harness_cli-0.1.0/template/refs/papers/.gitkeep +1 -0
- paper_harness_cli-0.1.0/template/refs/summaries/.gitkeep +0 -0
- paper_harness_cli-0.1.0/template/refs/summaries/summary-template.md +35 -0
- paper_harness_cli-0.1.0/template/scripts/build-en-pdf.ps1 +7 -0
- paper_harness_cli-0.1.0/template/scripts/build-en.sh +47 -0
- paper_harness_cli-0.1.0/template/scripts/build-ja-pdf.ps1 +7 -0
- paper_harness_cli-0.1.0/template/scripts/build-ja.sh +47 -0
- paper_harness_cli-0.1.0/template/scripts/build-pdf.ps1 +131 -0
- paper_harness_cli-0.1.0/template/scripts/check-citations.py +166 -0
- paper_harness_cli-0.1.0/template/scripts/check-claim-evidence.py +140 -0
- paper_harness_cli-0.1.0/template/scripts/check-public-terms.py +214 -0
- paper_harness_cli-0.1.0/template/scripts/check-skill-mirror.py +68 -0
- paper_harness_cli-0.1.0/template/scripts/check-submission-drift.py +66 -0
- paper_harness_cli-0.1.0/template/scripts/check-tex-structure.py +231 -0
- paper_harness_cli-0.1.0/template/scripts/collect-manuscript-review.py +252 -0
- paper_harness_cli-0.1.0/template/scripts/collect-note-context.py +53 -0
- paper_harness_cli-0.1.0/template/scripts/export-arxiv.sh +29 -0
- paper_harness_cli-0.1.0/template/scripts/lint-bib.py +215 -0
- paper_harness_cli-0.1.0/template/scripts/mirror-check.py +126 -0
- paper_harness_cli-0.1.0/template/scripts/mirror-freshness-check.py +201 -0
- paper_harness_cli-0.1.0/template/scripts/readiness-check.py +279 -0
- paper_harness_cli-0.1.0/template/scripts/tex-env.sh +77 -0
- paper_harness_cli-0.1.0/template/submission/README.md +31 -0
- paper_harness_cli-0.1.0/template/tex-env.example.toml +11 -0
- paper_harness_cli-0.1.0/tests/test_pops_cli.py +83 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apply-template-improvement
|
|
3
|
+
description: 承認されたテンプレート改善を、後方互換性とドキュメント更新を伴って安全に実装する。
|
|
4
|
+
allowed-tools: Read, Edit, Write, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# apply-template-improvement
|
|
8
|
+
|
|
9
|
+
テンプレートの変更が承認され、安全に実装する必要がある場合にこのスキルを使用する。
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
13
|
+
1. ルートと `template/` のファイルを最小限のセットで更新する。
|
|
14
|
+
2. マイグレーションが明示的に意図されていない限り、既存の下流の期待を維持する。
|
|
15
|
+
3. 実装と並行してドキュメントと変更履歴のエントリを更新する。
|
|
16
|
+
4. 変更後にローカル smoke チェックを実行する。
|
|
17
|
+
|
|
18
|
+
## チェックリスト
|
|
19
|
+
|
|
20
|
+
- 編集前に影響を受けるディレクトリとスクリプトを確認する。
|
|
21
|
+
- ユーザーに影響する変更は `CHANGELOG.md` を更新する。
|
|
22
|
+
- `docs/` の関連ドキュメントを調整する。
|
|
23
|
+
- `make smoke` を実行する。
|
|
24
|
+
- 下流リポジトリに残るマイグレーション作業を要約する。
|
|
25
|
+
|
|
26
|
+
## Issue とコミットの紐付け
|
|
27
|
+
|
|
28
|
+
コミットメッセージに対応 Issue 番号を含めること:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
fix: 問題の説明 (closes #123)
|
|
32
|
+
feat: 機能の説明 (closes #456)
|
|
33
|
+
design: 設計変更の説明 (closes #789)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
複数の Issue を一つのコミットで解決する場合は、すべての番号を列挙する:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
design: 構造変更の説明 (closes #4, closes #5)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
実装完了後に手動で Issue をクローズする場合:
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
gh issue close <number> --comment "<commit-hash> で対応済み。<変更内容の要約>"
|
|
46
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-template-regression
|
|
3
|
+
description: テンプレート変更がミラー追跡、ファイル保護、セッション継続性、下流互換性にリグレッションを起こしていないかレビューする。
|
|
4
|
+
allowed-tools: Read, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# review-template-regression
|
|
8
|
+
|
|
9
|
+
テンプレートを変更するプルリクエストや差分をレビューする際にこのスキルを使用する。
|
|
10
|
+
|
|
11
|
+
## レビューの重点
|
|
12
|
+
|
|
13
|
+
- 日英ミラー追跡のリグレッション
|
|
14
|
+
- 生成ファイルやローカルパスの保護の弱体化
|
|
15
|
+
- `notes/` のセッション継続性の喪失
|
|
16
|
+
- スタータースクリプトや再利用可能ワークフローの破損
|
|
17
|
+
- 下流リポジトリに対する未文書化のインターフェース変更
|
|
18
|
+
|
|
19
|
+
## プロセス
|
|
20
|
+
|
|
21
|
+
1. 変更されたファイルを全文読む。
|
|
22
|
+
2. `docs/architecture.md` と `docs/change-policy.md` と比較する。
|
|
23
|
+
3. 具体的な破損と不足しているマイグレーションを優先する。
|
|
24
|
+
4. smoke チェックが変更されたパスを検証しない場合、テストギャップを指摘する。
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: triage-template-feedback
|
|
3
|
+
description: 受信したテンプレートフィードバックを評価し、スコープ・ラベル・実装先を判断する。Issue トリアージ時に使用。
|
|
4
|
+
allowed-tools: Read, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# triage-template-feedback
|
|
8
|
+
|
|
9
|
+
テンプレートフィードバックの Issue を評価する際、または問題がテンプレートリポジトリに属するかを判断する際にこのスキルを使用する。
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
13
|
+
1. `gh issue list --state open` でオープンな Issue を取得する。
|
|
14
|
+
2. 各 Issue の本文を `gh issue view <number>` で読み、問題を把握する。
|
|
15
|
+
3. 変更がテンプレートに属するか、プロジェクトローカルに留めるべきかを判断する。
|
|
16
|
+
4. `area:*`、`type:*`、`scope:*` ラベルで Issue を分類する。
|
|
17
|
+
5. 繰り返される摩擦を解消する最小の変更を提案する。
|
|
18
|
+
|
|
19
|
+
## 読み込むべき入力
|
|
20
|
+
|
|
21
|
+
- `README.md`
|
|
22
|
+
- `docs/architecture.md`
|
|
23
|
+
- `docs/change-policy.md`
|
|
24
|
+
- `docs/triage-rules.md`
|
|
25
|
+
- `template/` 配下の関連ファイル
|
|
26
|
+
|
|
27
|
+
## 出力形式
|
|
28
|
+
|
|
29
|
+
各 Issue について以下を含む簡潔なトリアージノートを作成する:
|
|
30
|
+
|
|
31
|
+
- Issue 番号とタイトル
|
|
32
|
+
- 問題の説明
|
|
33
|
+
- 再現手順
|
|
34
|
+
- スコープの判断
|
|
35
|
+
- 提案するラベル
|
|
36
|
+
- 提案する実装先
|
|
37
|
+
- 実施優先順位
|
|
38
|
+
|
|
39
|
+
## Issue とコミットの紐付け
|
|
40
|
+
|
|
41
|
+
トリアージ後に実装する際は、コミットメッセージに Issue 番号を含めて紐付ける:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
fix: 問題の説明 (closes #123)
|
|
45
|
+
feat: 機能の説明 (closes #456)
|
|
46
|
+
design: 設計変更の説明 (closes #789, closes #790)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`closes #N` をコミットメッセージに含めることで、main にマージされた時点で自動的に Issue がクローズされる。
|
|
50
|
+
|
|
51
|
+
実装完了後に手動で Issue をクローズする場合は、対応コミットハッシュを参照するコメントを添えてクローズする:
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
gh issue close <number> --comment "<commit-hash> で対応済み。<変更内容の要約>"
|
|
55
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apply-template-improvement
|
|
3
|
+
description: 承認されたテンプレート改善を、後方互換性とドキュメント更新を伴って安全に実装する。
|
|
4
|
+
allowed-tools: Read, Edit, Write, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# apply-template-improvement
|
|
8
|
+
|
|
9
|
+
テンプレートの変更が承認され、安全に実装する必要がある場合にこのスキルを使用する。
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
13
|
+
1. ルートと `template/` のファイルを最小限のセットで更新する。
|
|
14
|
+
2. マイグレーションが明示的に意図されていない限り、既存の下流の期待を維持する。
|
|
15
|
+
3. 実装と並行してドキュメントと変更履歴のエントリを更新する。
|
|
16
|
+
4. 変更後にローカル smoke チェックを実行する。
|
|
17
|
+
|
|
18
|
+
## チェックリスト
|
|
19
|
+
|
|
20
|
+
- 編集前に影響を受けるディレクトリとスクリプトを確認する。
|
|
21
|
+
- ユーザーに影響する変更は `CHANGELOG.md` を更新する。
|
|
22
|
+
- `docs/` の関連ドキュメントを調整する。
|
|
23
|
+
- `make smoke` を実行する。
|
|
24
|
+
- 下流リポジトリに残るマイグレーション作業を要約する。
|
|
25
|
+
|
|
26
|
+
## Issue とコミットの紐付け
|
|
27
|
+
|
|
28
|
+
コミットメッセージに対応 Issue 番号を含めること:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
fix: 問題の説明 (closes #123)
|
|
32
|
+
feat: 機能の説明 (closes #456)
|
|
33
|
+
design: 設計変更の説明 (closes #789)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
複数の Issue を一つのコミットで解決する場合は、すべての番号を列挙する:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
design: 構造変更の説明 (closes #4, closes #5)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
実装完了後に手動で Issue をクローズする場合:
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
gh issue close <number> --comment "<commit-hash> で対応済み。<変更内容の要約>"
|
|
46
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-template-regression
|
|
3
|
+
description: テンプレート変更がミラー追跡、ファイル保護、セッション継続性、下流互換性にリグレッションを起こしていないかレビューする。
|
|
4
|
+
allowed-tools: Read, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# review-template-regression
|
|
8
|
+
|
|
9
|
+
テンプレートを変更するプルリクエストや差分をレビューする際にこのスキルを使用する。
|
|
10
|
+
|
|
11
|
+
## レビューの重点
|
|
12
|
+
|
|
13
|
+
- 日英ミラー追跡のリグレッション
|
|
14
|
+
- 生成ファイルやローカルパスの保護の弱体化
|
|
15
|
+
- `notes/` のセッション継続性の喪失
|
|
16
|
+
- スタータースクリプトや再利用可能ワークフローの破損
|
|
17
|
+
- 下流リポジトリに対する未文書化のインターフェース変更
|
|
18
|
+
|
|
19
|
+
## プロセス
|
|
20
|
+
|
|
21
|
+
1. 変更されたファイルを全文読む。
|
|
22
|
+
2. `docs/architecture.md` と `docs/change-policy.md` と比較する。
|
|
23
|
+
3. 具体的な破損と不足しているマイグレーションを優先する。
|
|
24
|
+
4. smoke チェックが変更されたパスを検証しない場合、テストギャップを指摘する。
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: triage-template-feedback
|
|
3
|
+
description: 受信したテンプレートフィードバックを評価し、スコープ・ラベル・実装先を判断する。Issue トリアージ時に使用。
|
|
4
|
+
allowed-tools: Read, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# triage-template-feedback
|
|
8
|
+
|
|
9
|
+
テンプレートフィードバックの Issue を評価する際、または問題がテンプレートリポジトリに属するかを判断する際にこのスキルを使用する。
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
13
|
+
1. `gh issue list --state open` でオープンな Issue を取得する。
|
|
14
|
+
2. 各 Issue の本文を `gh issue view <number>` で読み、問題を把握する。
|
|
15
|
+
3. 変更がテンプレートに属するか、プロジェクトローカルに留めるべきかを判断する。
|
|
16
|
+
4. `area:*`、`type:*`、`scope:*` ラベルで Issue を分類する。
|
|
17
|
+
5. 繰り返される摩擦を解消する最小の変更を提案する。
|
|
18
|
+
|
|
19
|
+
## 読み込むべき入力
|
|
20
|
+
|
|
21
|
+
- `README.md`
|
|
22
|
+
- `docs/architecture.md`
|
|
23
|
+
- `docs/change-policy.md`
|
|
24
|
+
- `docs/triage-rules.md`
|
|
25
|
+
- `template/` 配下の関連ファイル
|
|
26
|
+
|
|
27
|
+
## 出力形式
|
|
28
|
+
|
|
29
|
+
各 Issue について以下を含む簡潔なトリアージノートを作成する:
|
|
30
|
+
|
|
31
|
+
- Issue 番号とタイトル
|
|
32
|
+
- 問題の説明
|
|
33
|
+
- 再現手順
|
|
34
|
+
- スコープの判断
|
|
35
|
+
- 提案するラベル
|
|
36
|
+
- 提案する実装先
|
|
37
|
+
- 実施優先順位
|
|
38
|
+
|
|
39
|
+
## Issue とコミットの紐付け
|
|
40
|
+
|
|
41
|
+
トリアージ後に実装する際は、コミットメッセージに Issue 番号を含めて紐付ける:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
fix: 問題の説明 (closes #123)
|
|
45
|
+
feat: 機能の説明 (closes #456)
|
|
46
|
+
design: 設計変更の説明 (closes #789, closes #790)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`closes #N` をコミットメッセージに含めることで、main にマージされた時点で自動的に Issue がクローズされる。
|
|
50
|
+
|
|
51
|
+
実装完了後に手動で Issue をクローズする場合は、対応コミットハッシュを参照するコメントを添えてクローズする:
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
gh issue close <number> --comment "<commit-hash> で対応済み。<変更内容の要約>"
|
|
55
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: スキルリクエスト
|
|
2
|
+
description: 新しいテンプレートまたはスキャフォールドのスキルをリクエストする。
|
|
3
|
+
title: "[skill-request] "
|
|
4
|
+
labels:
|
|
5
|
+
- area:skills
|
|
6
|
+
- type:enhancement
|
|
7
|
+
body:
|
|
8
|
+
- type: input
|
|
9
|
+
id: skill_name
|
|
10
|
+
attributes:
|
|
11
|
+
label: 提案するスキル名
|
|
12
|
+
placeholder: sync-reviewer-response
|
|
13
|
+
validations:
|
|
14
|
+
required: true
|
|
15
|
+
- type: textarea
|
|
16
|
+
id: job
|
|
17
|
+
attributes:
|
|
18
|
+
label: 解決したいタスク
|
|
19
|
+
description: このスキルによって、どの繰り返しタスクをより安全・高速にすべきですか?
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
- type: textarea
|
|
23
|
+
id: inputs
|
|
24
|
+
attributes:
|
|
25
|
+
label: 入力とファイル
|
|
26
|
+
description: スキルが読み取りまたは更新すべきファイルやアーティファクトは何ですか?
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
- type: textarea
|
|
30
|
+
id: non_goals
|
|
31
|
+
attributes:
|
|
32
|
+
label: スコープ外
|
|
33
|
+
description: スキルが避けるべきことを明確にしてください。
|
|
34
|
+
validations:
|
|
35
|
+
required: false
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: 構造変更
|
|
2
|
+
description: リポジトリまたはスキャフォールドの構造変更を提案する。
|
|
3
|
+
title: "[structure-change] "
|
|
4
|
+
labels:
|
|
5
|
+
- area:structure
|
|
6
|
+
body:
|
|
7
|
+
- type: textarea
|
|
8
|
+
id: current_pain
|
|
9
|
+
attributes:
|
|
10
|
+
label: 現在の問題点
|
|
11
|
+
description: 現在のレイアウトのどこが混乱や重複を引き起こしていますか?
|
|
12
|
+
validations:
|
|
13
|
+
required: true
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: proposed_structure
|
|
16
|
+
attributes:
|
|
17
|
+
label: 提案する構造
|
|
18
|
+
description: 希望するディレクトリまたはファイルレイアウトを記述してください。
|
|
19
|
+
validations:
|
|
20
|
+
required: true
|
|
21
|
+
- type: checkboxes
|
|
22
|
+
id: compatibility
|
|
23
|
+
attributes:
|
|
24
|
+
label: 互換性の考慮事項
|
|
25
|
+
options:
|
|
26
|
+
- label: この変更には下流リポジトリのマイグレーションが必要になる。
|
|
27
|
+
- label: この変更は追加的に導入できる。
|
|
28
|
+
- label: ドキュメントの更新が必要になる。
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
- type: textarea
|
|
32
|
+
id: rationale
|
|
33
|
+
attributes:
|
|
34
|
+
label: 根拠
|
|
35
|
+
description: なぜこの構造が長期的に優れているのですか?
|
|
36
|
+
validations:
|
|
37
|
+
required: true
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: テンプレートフィードバック
|
|
2
|
+
description: テンプレートで修正すべき繰り返しの摩擦を報告する。
|
|
3
|
+
title: "[template-feedback] "
|
|
4
|
+
labels:
|
|
5
|
+
- scope:template
|
|
6
|
+
body:
|
|
7
|
+
- type: textarea
|
|
8
|
+
id: problem
|
|
9
|
+
attributes:
|
|
10
|
+
label: 問題
|
|
11
|
+
description: 摩擦または障害モードを説明してください。
|
|
12
|
+
placeholder: 論文スキャフォールドでは...が困難です
|
|
13
|
+
validations:
|
|
14
|
+
required: true
|
|
15
|
+
- type: textarea
|
|
16
|
+
id: reproduction
|
|
17
|
+
attributes:
|
|
18
|
+
label: 再現手順
|
|
19
|
+
description: 下流の論文リポジトリで問題を再現する方法を説明してください。
|
|
20
|
+
placeholder: 1. template/ から開始... 2. 実行...
|
|
21
|
+
validations:
|
|
22
|
+
required: true
|
|
23
|
+
- type: dropdown
|
|
24
|
+
id: impact
|
|
25
|
+
attributes:
|
|
26
|
+
label: 影響度
|
|
27
|
+
options:
|
|
28
|
+
- 執筆フローをブロックする
|
|
29
|
+
- 手動クリーンアップの繰り返しが発生する
|
|
30
|
+
- AI のガイダンスの信頼性が低下する
|
|
31
|
+
- ドキュメントの明確さの問題
|
|
32
|
+
validations:
|
|
33
|
+
required: true
|
|
34
|
+
- type: textarea
|
|
35
|
+
id: proposed_change
|
|
36
|
+
attributes:
|
|
37
|
+
label: 提案する変更
|
|
38
|
+
description: 部分的でも構わないので修正案を提案してください。
|
|
39
|
+
placeholder: フックを追加、スキルを更新、スキャフォールドを調整...
|
|
40
|
+
validations:
|
|
41
|
+
required: false
|
|
42
|
+
- type: textarea
|
|
43
|
+
id: downstream_scope
|
|
44
|
+
attributes:
|
|
45
|
+
label: 下流での影響範囲
|
|
46
|
+
description: この問題が発生したリポジトリや状況を列挙してください。
|
|
47
|
+
placeholder: paper-lunar-cavity, paper-solar-wind-review, ...
|
|
48
|
+
validations:
|
|
49
|
+
required: false
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: PyPI 公開
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types:
|
|
6
|
+
- published
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
group: publish-pypi
|
|
14
|
+
cancel-in-progress: false
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build:
|
|
18
|
+
name: Build distribution
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- name: リポジトリをチェックアウト
|
|
22
|
+
uses: actions/checkout@v4
|
|
23
|
+
|
|
24
|
+
- name: Python をセットアップ
|
|
25
|
+
uses: actions/setup-python@v5
|
|
26
|
+
with:
|
|
27
|
+
python-version: "3.12"
|
|
28
|
+
|
|
29
|
+
- name: ビルドツールをインストール
|
|
30
|
+
run: python -m pip install --upgrade build twine
|
|
31
|
+
|
|
32
|
+
- name: distribution をビルド
|
|
33
|
+
run: python -m build
|
|
34
|
+
|
|
35
|
+
- name: distribution を検証
|
|
36
|
+
run: python -m twine check dist/*
|
|
37
|
+
|
|
38
|
+
- name: distribution をアップロード
|
|
39
|
+
uses: actions/upload-artifact@v4
|
|
40
|
+
with:
|
|
41
|
+
name: python-distribution
|
|
42
|
+
path: dist/*
|
|
43
|
+
|
|
44
|
+
publish:
|
|
45
|
+
name: Publish to PyPI
|
|
46
|
+
needs: build
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
environment:
|
|
49
|
+
name: pypi
|
|
50
|
+
url: https://pypi.org/p/paper-harness-cli
|
|
51
|
+
permissions:
|
|
52
|
+
contents: read
|
|
53
|
+
id-token: write
|
|
54
|
+
steps:
|
|
55
|
+
- name: distribution をダウンロード
|
|
56
|
+
uses: actions/download-artifact@v4
|
|
57
|
+
with:
|
|
58
|
+
name: python-distribution
|
|
59
|
+
path: dist
|
|
60
|
+
|
|
61
|
+
- name: PyPI に公開
|
|
62
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: 再利用可能ビルド
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
working-directory:
|
|
7
|
+
description: 検証対象のリポジトリルート。
|
|
8
|
+
required: false
|
|
9
|
+
type: string
|
|
10
|
+
default: .
|
|
11
|
+
run-latex:
|
|
12
|
+
description: 利用可能な場合に latexmk コンパイルを試行する。
|
|
13
|
+
required: false
|
|
14
|
+
type: boolean
|
|
15
|
+
default: false
|
|
16
|
+
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
build:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
defaults:
|
|
24
|
+
run:
|
|
25
|
+
working-directory: ${{ inputs.working-directory }}
|
|
26
|
+
steps:
|
|
27
|
+
- name: リポジトリをチェックアウト
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
|
|
30
|
+
- name: Python をセットアップ
|
|
31
|
+
uses: actions/setup-python@v5
|
|
32
|
+
with:
|
|
33
|
+
python-version: "3.12"
|
|
34
|
+
|
|
35
|
+
- name: ハーネスチェックを実行
|
|
36
|
+
run: |
|
|
37
|
+
if [ "${{ inputs.run-latex }}" = "true" ]; then
|
|
38
|
+
export PAPER_TEMPLATE_RUN_LATEX=1
|
|
39
|
+
else
|
|
40
|
+
export PAPER_TEMPLATE_RUN_LATEX=0
|
|
41
|
+
fi
|
|
42
|
+
make ci
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: 再利用可能ミラーチェック
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
working-directory:
|
|
7
|
+
description: 検証対象のリポジトリルート。
|
|
8
|
+
required: false
|
|
9
|
+
type: string
|
|
10
|
+
default: .
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
mirror-check:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
defaults:
|
|
19
|
+
run:
|
|
20
|
+
working-directory: ${{ inputs.working-directory }}
|
|
21
|
+
steps:
|
|
22
|
+
- name: リポジトリをチェックアウト
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Python をセットアップ
|
|
26
|
+
uses: actions/setup-python@v5
|
|
27
|
+
with:
|
|
28
|
+
python-version: "3.12"
|
|
29
|
+
|
|
30
|
+
- name: ミラーチェックを実行
|
|
31
|
+
run: python3 scripts/mirror-check.py --root manuscript --report manuscript/mirror/reports/ci-report.md
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: 再利用可能リリース
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
working-directory:
|
|
7
|
+
description: パッケージ対象のリポジトリルート。
|
|
8
|
+
required: false
|
|
9
|
+
type: string
|
|
10
|
+
default: .
|
|
11
|
+
artifact-name:
|
|
12
|
+
description: アップロードするアーティファクトの名前。
|
|
13
|
+
required: false
|
|
14
|
+
type: string
|
|
15
|
+
default: arxiv-export
|
|
16
|
+
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
release:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
defaults:
|
|
24
|
+
run:
|
|
25
|
+
working-directory: ${{ inputs.working-directory }}
|
|
26
|
+
steps:
|
|
27
|
+
- name: リポジトリをチェックアウト
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
|
|
30
|
+
- name: エクスポートバンドルを準備
|
|
31
|
+
run: ./scripts/export-arxiv.sh
|
|
32
|
+
|
|
33
|
+
- name: エクスポートアーティファクトをアップロード
|
|
34
|
+
uses: actions/upload-artifact@v4
|
|
35
|
+
with:
|
|
36
|
+
name: ${{ inputs.artifact-name }}
|
|
37
|
+
path: ${{ inputs.working-directory }}/dist/arxiv-export
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.DS_Store
|
|
2
|
+
.codex-tmp/
|
|
3
|
+
.venv/
|
|
4
|
+
__pycache__/
|
|
5
|
+
src/**/__pycache__/
|
|
6
|
+
*.egg-info/
|
|
7
|
+
build/
|
|
8
|
+
dist/
|
|
9
|
+
template/**/__pycache__/
|
|
10
|
+
template/**/*.pyc
|
|
11
|
+
template/dist/
|
|
12
|
+
template/manuscript/shared/build/*
|
|
13
|
+
!template/manuscript/shared/build/README.md
|
|
14
|
+
template/manuscript/mirror/reports/latest.md
|
|
15
|
+
template/manuscript/mirror/reports/smoke-check.md
|
|
16
|
+
template/notes/session-context.generated.md
|
|
17
|
+
template/refs/local/locations.toml
|
|
18
|
+
template/.claude/settings.local.json
|
|
19
|
+
template/refs/papers/**
|
|
20
|
+
!template/refs/papers/.gitkeep
|
|
21
|
+
template/**/*.pdf
|
|
22
|
+
!template/manuscript/shared/figures/**/*.pdf
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
ユーザーとは**日本語**でコミュニケーションすること。
|
|
4
|
+
|
|
5
|
+
これは `paperops` の**テンプレート管理リポジトリ**である。
|
|
6
|
+
|
|
7
|
+
## アーキテクチャ
|
|
8
|
+
|
|
9
|
+
二層構成:
|
|
10
|
+
|
|
11
|
+
- **ルート層**: テンプレートガバナンス、再利用可能ワークフロー、`pops` CLI、テンプレート保守スキル
|
|
12
|
+
- **`template/` 層**: 個別の `paper-<topic>` リポジトリにコピーされる論文用スキャフォールド
|
|
13
|
+
|
|
14
|
+
この二つを混同しないこと。ルートレベルのファイルはテンプレート自体を管理し、`template/` は下流ユーザーが受け取る内容を格納する。
|
|
15
|
+
|
|
16
|
+
## 主要コマンド
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
make venv # Python 3.11 で .venv を作成
|
|
20
|
+
make smoke # template/ に対して lint-bib + citation-check + mirror-check + collect-context + readiness-check を実行
|
|
21
|
+
make cli-smoke # pops CLI の最小 smoke test を実行
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 変更ワークフロー
|
|
25
|
+
|
|
26
|
+
1. 構造化された Issue フォーム(`template-feedback`, `skill-request`, `structure-change`)で Issue を受理する。
|
|
27
|
+
2. `/triage-template-feedback` でトリアージする。
|
|
28
|
+
3. `/apply-template-improvement` で実装する。
|
|
29
|
+
4. `/review-template-regression` でレビューする。
|
|
30
|
+
5. マージ前に `make smoke` を実行する。
|
|
31
|
+
6. ユーザーに影響する変更ごとに `CHANGELOG.md` を更新する。
|
|
32
|
+
|
|
33
|
+
変更を反映する前に `docs/change-policy.md` と `docs/triage-rules.md` を確認すること。
|
|
34
|
+
|
|
35
|
+
## ルール
|
|
36
|
+
|
|
37
|
+
- `template/AGENTS.md`、`template/CLAUDE.md`、`template/.agents/skills/`、`template/.claude/skills/`、`template/scripts/` は**ユーザー向けインターフェース**として扱う。変更にはマイグレーションノートが必要。
|
|
38
|
+
- 構造的な書き換えよりも追加的な変更を優先する。
|
|
39
|
+
- 生成されたコンテンツはバージョン管理に含めない。
|
|
40
|
+
- 下流作成は `pops init` に統一する。
|
|
41
|
+
- `template/` 配下を変更した後は必ず `make smoke` を実行する。
|
|
42
|
+
- 長時間セッションでは、コンテキスト使用量が約50%の時点で手動で `/compact` を実行する。
|
|
43
|
+
|
|
44
|
+
## Git コミットルール
|
|
45
|
+
|
|
46
|
+
- 意味のある作業単位ごとにコミットする。大量の変更を一つのコミットにまとめない。
|
|
47
|
+
- コミットメッセージは日本語で、変更の「なぜ」を記述する。
|
|
48
|
+
- `git push` はユーザーの明示的な指示なしに実行しない。
|
|
49
|
+
|
|
50
|
+
## リポジトリマップ
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
docs/ architecture, change-policy, triage-rules, skill-catalog, distribution
|
|
54
|
+
.Codex/skills/ triage-template-feedback, apply-template-improvement, review-template-regression
|
|
55
|
+
.github/workflows/ reusable-build, reusable-mirror-check, reusable-release, publish-pypi
|
|
56
|
+
.github/ISSUE_TEMPLATE/ template-feedback, skill-request, structure-change
|
|
57
|
+
src/paperops/ pops CLI
|
|
58
|
+
scripts/ smoke helpers
|
|
59
|
+
template/ 下流スキャフォールド一式(template/AGENTS.md を参照)
|
|
60
|
+
```
|