ClaudeMods
☰
KO
● 0 명 접속 중 · 조회 0 회
후원프로젝트 제출
GitHub 저장소 · 작성자 jobbin-ab

witness

witness를 Claude Code에 연결합니다. 내 이름으로 Done 처리하기 전에 묻고, 편집 전에 파일을 다루는 카드를 알려 주며, 세션의 rail(pull request, 카드, artifacts, 브랜치)을 표시합니다.

jobbin-ab@jobbin-ab

jobbin-ab/witness-plugins/tree/main/plugins/witness

번역 완료

이 mod 소개

Claude Code는 작업을 진행하면서 witness project를 처리하며, 내가 작업을 지켜봤다고 말하기 전까지 내 이름으로 어떤 항목도 Done으로 만들지 않습니다. witness-plugins marketplace에서 플러그인으로 설치한 뒤(claude plugin marketplace add jobbin-ab/witness-plugins, 이어서 claude plugin install witness) /mcp를 실행하고 로그인합니다. 복사할 key는 필요 없고 Claude Code 2.1.289+가 필요합니다. witness의 MCP server로 project, 작업 규칙, 카드를 연결하고 첫 번째 쓰기 전에 규칙을 읽으며 작업 중 카드를 생성합니다. 내가 확인한 Done으로 카드를 표시하기 전에 Claude Code가 먼저 묻고, 「Not yet」을 선택하면 카드를 Needs verification으로 돌립니다. agent가 파일을 처음 편집할 때 그 파일을 다루는 카드를 알려 주고, transcript 옆 rail에는 pull request, 세션 카드, 게시된 artifacts, 브랜치가 표시되며 각 행에서 해당 대상을 엽니다(/witness로 전환). prompt 없이 witness를 두 번 호출합니다(첫 파일 편집에서 covers를 켠 witness_list_cards, project마다 한 번 witness_agent_md). rail을 위해 git rev-parse --abbrev-ref HEAD와 gh pr view --json ...도 실행합니다. 파일 내용이나 명령 출력은 컴퓨터 밖으로 나가지 않으며, claude -p에서는 Done이 확인 없이 통과됩니다.

설치

먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.

claude plugin marketplace add jobbin-ab/witness-plugins
claude plugin install witness
원문 / README

witness for Claude Code

Claude Code works your witness project as it goes, and nothing goes to Done in your name until you say you watched it work.

Install

claude plugin marketplace add jobbin-ab/witness-plugins
claude plugin install witness

Then /mcp in Claude Code and sign in. There is no key to copy. Needs Claude Code 2.1.289 or later.

What it does

Connects witness. Your projects, their working rules and their cards, through witness's MCP server. The agent reads the rules before its first write and files cards as it works.

Asks before a Done goes in your name. When the agent is about to mark a card Done, verified by you, Claude Code asks you first. "Not yet" stops it, and the agent is told to send the card to Needs verification instead.

 ☐ witness
GN-412 goes to Done, verified by Robin. Did you watch it work?
❯ 1. I watched it work
  2. Not yet

Names the cards that cover a file. The first time the agent edits a file, it is told which cards cover that file and where each stands.

Shows the session's rail. Beside the transcript: the pull request, the cards this session holds with their status, the artifacts it published, and the branch. Each row opens what it names. /witness shows or hides it.

                                                             │ PULL REQUEST
                                                             │   Sessions: a pasted screenshot is kept o…
                                                             │   #365 · Draft
                                                             │
❯ Take GN-304 and GN-433.                                    │ CARDS
                                                             │   ◕ GN-304 Sessions: a pasted screenshot …
  Called witness 2 times                                     │   ○ GN-433 Sessions: how long an archived…
                                                             │
● Claimed both. Starting with GN-304.                        │ ABOUT
                                                             │   claude/gn-304-6355
                                                             │   witness from main

What the plugin does on your machine and network

What it sends. Its own calls go only to witness, through the MCP connection your session's witness tools use. It makes two calls there without the agent asking:

  • witness_list_cards with covers, the first time the agent edits a file in a session, once the session has read a project. It sends the file's path relative to the repository, with the project id and read proof the agent's own witness calls used.
  • witness_agent_md, once per project, when a card arrives before the session knows the project's page (a resumed session, or one past a compaction). It sends the project id, and keeps the page address for the rail's links.

Nothing else leaves your machine: no file contents, no command output, nothing else from the conversation.

What it runs. Two fixed commands in the session's folder, for the rail's pull request and branch: git rev-parse --abbrev-ref HEAD and gh pr view --json number,title,url,state,isDraft,baseRefName, which asks GitHub for the branch's pull request with your own gh login. They run at session start, after a Bash call holding gh pr or git push, and at /witness. Never polled, and never where nothing can show the rail (claude -p). No gh, no pull request section.

What it reads. These tool calls, keeping what the rail and the questions need for the session:

  • witness tools: input and result, for the cards the session holds (id, title, status), each project's read proof, and its page address. A write that puts a card Done with verifiedBy waits for your answer.
  • Bash: the command's text, only to see whether it holds gh pr or git push.
  • Artifact: a publish's result, for its URL and title.
  • Edit, Write, MultiEdit and NotebookEdit: the file's path, for the covers check. A covering card is added as a note to the edit's result, which waits at most two seconds for the answer.

It changes no tool's input, and the only call it stops is a Done you did not confirm. /witness is the one command it answers: it opens or closes the rail, and opening reads the pull request and branch as above.

Good to know

  • The rail opens by itself once, when the session takes its first card, in Claude Code's fullscreen layout. Elsewhere it waits for /witness, and the line under the prompt lists the cards meanwhile: ◕ GN-304 · ○ GN-433 · /witness.
  • In claude -p, or anywhere nobody can be asked, a Done passes through to witness as it would without the plugin.
  • If you added witness with claude mcp add before, remove it (claude mcp remove witness). The plugin brings its own, and with both the agent sees every tool twice.

witness.nu · docs

비슷한 프로젝트