Skip to content

spec: silent additionalContext when pending_count == 0 (suppress per-turn empty reminder) #221

@liplus-lin-lay

Description

@liplus-lin-lay

purpose

get_pending_status の wrap delivery において pending_count == 0 の時に hookSpecificOutput.additionalContext を返さない (silent) ようにする。 現状は pending_count == 0 でも "No pending GitHub webhook events." が UserPromptSubmit hook 経由で AI に毎ターン注入されており、 削減すべき noise floor。

premise

  • github-webhook-mcp >= v0.11.3get_pending_status 結果を UserPromptSubmit decision schema に wrap して返す仕様。
  • consumer 側 (Liplus-Project/liplus-language adapter/claude/hooks-settings.md) では mcp_tool entry が LI_PLUS_WEBHOOK_DELIVERY と独立に 無条件発火。 consumer 側で empty 時の suppress は実装不可。
  • empty silent 化は MCP server 側 (本 repo) でのみ実装可能。

constraints

  • pending_count > 0 の時の挙動は据え置き (UserPromptSubmit decision schema の通常 path)。
  • 既存 v0.11.3 の natural language summary 形式は維持 (互換)。
  • empty 時の return は decision schema 自体を返さない (Claude Code 側でそのまま empty 扱い)、 もしくは hookSpecificOutput を含まない form を返すか、 のどちらが Claude Code の hook contract と整合するかは実装側で確定。

target files

  • get_pending_status ハンドラ (実装場所は本 repo の structure 依存)
  • 関連 test

coordination

Liplus-Project/liplus-language#1234 (boot トークン削減リファクタ) の sibling 計画から webhook empty silent を本 repo へ分離した coordination 案件。 本 issue 解決後、 liplus-language 側で挙動確認 (空 reminder が消えること)。

label

  • type: spec
  • maturity: forming

Metadata

Metadata

Labels

formingbody being rewritten toward canonical formspeclanguage or system specification

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions