Skip to content

Issue Form と /issue が Issue の種別を付ける - #38

Merged
massu2002 merged 1 commit into
mainfrom
feature/37-issue-types
Sep 30, 2026
Merged

massu2002 merged 1 commit into
mainfrom
feature/37-issue-types

Conversation

@massu2002

Copy link
Copy Markdown
Contributor

関連Issue

Closes #37

変更目的

Issue を作る 2 つの経路(Web の Issue Form と CLI の /issue)が Issue の種別(Feature / Bug / Experiment)を付けるようにする(development-docs の D10)。直近の Issue 71 件はすべて種別なしだった。

変更内容

  • 3 つの Form に type: を付けた(feature → Feature、bug → Bug、experiment → Experiment)。種別の正本はここ 1 箇所
  • issue-form.sh が Form の type: を読み、skeleton(標準エラー)と check の直後に --type <種別> を表示する。種別を書き写さない
  • /issue の作成コマンドに --type を付けた。gh 2.94.0 以降が必要(Add Issues 2.0 support: issue types, sub-issues, and relationships cli/cli#13057)。古い gh では外さずに更新を依頼させる
  • test_issue_form.py(新規、CI に追加): 各 Form に type: があること、issue-form.sh がそれを表示すること(gh を差し替え、ネットワークなし)
  • 監査: Form の type: が Organization の有効な種別にあるか。取れなかったときは「無い」と言わない
  • CLAUDE.md の構成の説明に種別を足した

確認結果

  • Issueの完了条件を満たしている
  • 変更箇所の動作確認を実施した
  • 既存機能への影響を確認した
  • 必要なテストが通っている
確認 結果
CLI の実経路 gh issue create --type Feature で作った #37 に種別 Feature が付いた(この Organization で最初)。--type なしの #35 は種別なし
test_issue_form.py 4 件 OK
test_org_audit.py 42 件 OK
壊す 9 通り(照合しない / 取れない一覧を「無い」扱い / 無効な種別を使える扱い / config.yml を Form 扱い / skeleton・check が種別を出さない / 種別が無いのに --type を案内 / 種別を書き写す / Form から type: を外す) すべて落ちた
実 Organization への読み取り実行 所見 0 件
他の CI(basic / 混入 / 照合 / 記録 / 秘密情報 / guard 65 件) すべて OK
#36 との合流 文字の衝突なし。合流後の木でテスト 2 種とも OK

影響範囲

  • この PR の後に Web の Form で作る Issue に種別が付く(Form は Organization 共通)
  • CLI は、各 Repository の issue-form.sh と /issue を同じ内容にしてから(他 5 Repository の PR を続けて出す)
  • 既存の Issue は変わらない

顧客差分・Coreへの影響(該当する場合)

Reviewerに確認してほしい点

  • Form に存在しない種別を書いたときの挙動は公式文書に無いため、Web の Form 経由で種別が付くことは、merge 後に最初に Form で作る Issue で確かめる
  • issue-form.sh と /issue は全 6 Repository に同じ複製がある。今回は照合(copy_sync_check.py)の対象に入れていない(入れると、複製を直す PR が merge されるまで他 5 件の CI が止まる)

🤖 Generated with Claude Code

直近の Issue 71 件はすべて種別なしだった。Form も /issue も種別を指定して
いなかったためで、Organization に種別を足しただけでは使われない。
Experiment 種別を 2026-09-30 に足したので、Issue を作る 2 つの経路に
種別を入れる(development-docs の D10)。

種別は Form の type: 1 箇所に書く。Web の Form はそれで付く。CLI の
issue-form.sh は Form の type: を読んで skeleton と check に表示し、
/issue は gh issue create --type に渡す。種別を書き写さないので、Form を
直せば両方が変わる。--type は gh 2.94.0 で入った(cli/cli#13057)。古い gh
で unknown flag と出たら、--type を外さずに更新を依頼させる。

Form に存在しない種別を書いたときの挙動は公式文書に無い。種別の名前を
Organization 側で変えたり無効にしたりしても Form は黙って残るので、監査
(org_audit.py)が Form の type: を Organization の有効な種別と照合する。
取れなかったときは「無い」と言わない。

実測: gh issue create --type Feature で作った #37 に種別が付いた(この
Organization で最初)。テスト: 監査 42 件、Form と issue-form.sh 4 件
(gh を差し替え)すべて OK。壊す 9 通りすべてで落ちた。実 Organization
への読み取り実行で所見 0 件。

Closes #37

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@massu2002
massu2002 merged commit 8905101 into main Sep 30, 2026
1 check passed
@massu2002
massu2002 deleted the feature/37-issue-types branch September 30, 2026 06:24
massu2002 added a commit that referenced this pull request Sep 30, 2026
2 つは全 6 Repository に同じ複製がある。種別の対応(#38)では、正本を
直した後に 5 Repository へ 1 件ずつ同期する必要があった。照合の対象外
なので、同期を忘れた Repository だけ種別の無い Issue に戻っても気づけ
ない。validator で 3 回起きたのと同じ形である。

いまは 6 Repository すべてで同一(2026-09-30 実測)なので、入れても
どの Repository の CI も止まらない。SHARED に足し、hook・混入検査と同じ
形で「対象であること」のテストを足した。

実測: 5 Repository の現在の main を新しい正本で照合し、すべて一致(Core
2 件は 7 ファイル、混入検査を持たない 3 件は 6 ファイル)。テスト 11 件
OK。2 つを SHARED から外す / byte 比較を無効にする、の 3 通りで落ちた。

Closes #39

Co-authored-by: Claude Opus 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Issue Form と /issue が Issue の種別を付ける

1 participant