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

readybody converged for implementationspeclanguage or system specification

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions