Files
ISEP/.claude-plugin/plugin.json
T
Leo 7b51db3d0b feat: 收件端核對——A 的結果寫進 B 的票會被擋(inkstone/ISEP#132)
派工有票號、工人有名字(roster)、留言有【身份】三件都在派工/回覆那頭;
缺的是總管改票的那一刻,把「要改的票」跟「這個 session 派出去的那一批票」比一次
(leo 2026-09-05:「明明已經都憑 milestone 和票號了」——subagent 回報的東西被
總管當成另一件事更新)。

- hooks/dispatched-ticket-stamp.sh(PostToolUse Agent|Task):按 session 記
  「哪張票派給了哪位工人」(subagent_type,剝掉 plugin 前綴)。回報(SendMessage)不記。
- hooks/report-ticket-match-guard.sh(PreToolUse Bash):總管 say/close/handback
  (+ Gitea API 側門)一張不在那批派工票裡的票 → 擋一次,印「X 被派的是 #A」。
  判準是票號(唯一識別碼)往放行方向比對,不看措辭(leo 2026-08-17 已證偽文字層封路)。
  沒派過工的 session 整支休眠;動被派出去的那張放行;讀取/別的動詞放行;
  同一張只擋一次(重下就過);逃生口 report-match-ok。
- 測試 scripts/test-report-ticket-match-guard.sh 31/31(離線,戳記走 ISEP_STAMP_DIR)。
- 盤點:hooks 62→64、註冊 88→90、scripts 66→67(在這棵樹上實數);
  docs/hooks-inventory.md、docs/TESTING.md A43、plugin.json 描述一併更新。
  版本號待總管定(未動 plugin.json version,避開 check-version-consistency)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TGxitYq49FzYC7EFkbhzF5
2026-09-18 18:27:23 +00:00

17 lines
599 B
JSON

{
"name": "isep",
"description": "InkStone Environment Plugin —— leo 的 Claude Code 環境唯一真相源:64 支機械閘(90 條註冊,白話盤點見 docs/hooks-inventory.md)、7 支 slash command、2 支 skill、8 位有名字的工人(agents/,見 docs/governance/worker-roster.md)、67 支腳本,外加治理規範與標籤真相源。本機與雲端裝同一份,沒有子集。",
"version": "0.30.10",
"keywords": [
"inkstone",
"guardrails",
"hooks",
"gitea",
"arcrun"
],
"author": {
"name": "Leo",
"url": "https://uncle6.me"
}
}