Feature request: host-managed one-time human review callback for Spec Phase gates
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
背景
Spec Phase の independent review では、human fallback を品質ゲートとして安全に扱うため、Desktop host が一回限りの callback を提供する必要があります。現行の caller JSON、環境変数、OS 一時ファイルによる証跡注入は caller-controlled であり、受理できません。
要望
Codex Desktop host に、review harness と接続する host-managed IPC bridge と確認 UI を追加してください。
プロトコル
- request:
spec-phase-human-review-request - response:
spec-phase-human-review-response
必須動作
- host は harness request を一回だけ受信し、request の
callbackIdを検証して、同じ値を response に設定する。 - host UI で人間レビュー結果を確認・入力できる。
- response は reviewer identifier、direct read 確認、structured result 確認、phase approval 分離、
pass | fail | blocked、findings を渡せる。 - author context、correlation、attestation の固定値は host 側で当回 invocation から再構築し、caller JSON・環境変数・一時ファイル由来の証跡を harness へ渡さない。
- response 送信後は callbackId を無効化し、同じ callbackId の再送、別 callbackId、期限切れ response を拒否する。
- callback capability がない通常端末実行は
human-handoff-unavailableで fail-closed を維持する。
受入条件
npm run review:spec-phase -- --phase design ...の実行時に host UI へレビュー要求が表示される。- 人間が PASS を送信すると
gateStatus: "pass"になる。 - 同一 callbackId の二重応答、異なる callbackId、期限切れ応答が拒否される。
- host callback なしの通常端末実行は
human-handoff-unavailableで停止する。
安全性
この機能は human review を自動承認するものではありません。runtime isolation は not-applicable-human とし、残存リスク runtime-isolation-unverified-human を明示します。
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running npm run review:spec-phase -- --phase design ... and trace how the Desktop host and review harness currently communicate. Done means a host-managed one-time callback shows the review UI, validates and invalidates callback IDs, returns the required structured result, and preserves fail-closed behavior when no callback capability exists.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100