prooflist 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "prooflist",
3
+ "version": "0.1.0",
4
+ "description": "Evidence-gated dev/test checklist for Claude-operated repos — no 'done' without proof. CLI + MCP server + Stop-hook + local trust-ledger dashboard.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "repository": { "type": "git", "url": "git+https://github.com/zbfs2cgh2h-sketch/prooflist.git" },
8
+ "homepage": "https://github.com/zbfs2cgh2h-sketch/prooflist#readme",
9
+ "keywords": ["claude", "claude-code", "mcp", "testing", "evidence", "checklist", "maestro", "agent-guardrails", "trust-ledger"],
10
+ "engines": { "node": ">=20" },
11
+ "files": ["dist", "skill", "plugin"],
12
+ "bin": {
13
+ "pl": "dist/cli.js",
14
+ "prooflist": "dist/cli.js",
15
+ "prooflist-hook": "dist/hook.js",
16
+ "prooflist-init": "dist/init.js",
17
+ "prooflist-ui": "dist/dashboard.js",
18
+ "prooflist-mcp": "dist/mcp.js"
19
+ },
20
+ "scripts": {
21
+ "build": "tsc -p tsconfig.json && mkdir -p dist/web && cp src/web/index.html dist/web/",
22
+ "test": "vitest run",
23
+ "dev": "tsx src/cli.ts",
24
+ "prepublishOnly": "npm run build && npm test"
25
+ },
26
+ "dependencies": {
27
+ "@modelcontextprotocol/sdk": "^1.29.0",
28
+ "commander": "^12.1.0",
29
+ "zod": "^4.4.3"
30
+ },
31
+ "devDependencies": {
32
+ "@types/node": "^20.14.0",
33
+ "tsx": "^4.16.0",
34
+ "typescript": "^5.5.0",
35
+ "vitest": "^2.0.0"
36
+ }
37
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "prooflist",
3
+ "displayName": "ProofList",
4
+ "version": "0.1.0",
5
+ "description": "Evidence-based dev/test checklist for Claude-operated repos: prove screen work with Maestro before claiming done. Bundles the prooflist skill, /pl-status command, and the gate-core MCP server (signoff/init/ui intentionally NOT exposed). Per-project enforcement (Stop hook) is wired by `pl init`, not this plugin.",
6
+ "author": {
7
+ "name": "승기"
8
+ },
9
+ "keywords": ["testing", "evidence", "checklist", "maestro", "agent-guardrails"]
10
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "mcpServers": {
3
+ "prooflist": {
4
+ "type": "stdio",
5
+ "command": "npx",
6
+ "args": ["prooflist-mcp"]
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,29 @@
1
+ # ProofList — Claude Code Plugin
2
+
3
+ Uniform delivery of ProofList's **convenience surfaces** across repos. The plugin is *wiring only* — per-repo state (`.prooflist/checklist.json`, `artifacts/`) lives in each repo, never here.
4
+
5
+ ## What this plugin provides (auto-discovered)
6
+
7
+ - `skills/prooflist/SKILL.md` — the operating skill: use ProofList for work management and **prove screen work before claiming done**.
8
+ - `commands/pl-status.md` — the `/pl-status` slash command (read-only trust-ledger summary).
9
+ - `.mcp.json` — registers the `prooflist` stdio MCP server (`prooflist-mcp`), exposing the gate core as the 6 safe tools: `pl_plan` · `pl_start` · `pl_test` · `pl_done` · `pl_status` · `pl_gate`.
10
+
11
+ ## What this plugin deliberately does NOT provide
12
+
13
+ - **The Stop hook (enforcement) is NOT in this plugin.** It is wired per-project by `pl init` into the repo's `.claude/settings.json`. Why:
14
+ - Enforcement must be **project-scoped and reliable** (design §5/§12) — `pl init` guarantees it in the repo regardless of whether this plugin is installed.
15
+ - A global plugin Stop hook *and* a per-project hook would **double-fire** (two block messages per turn).
16
+ - So: **plugin = convenience (skill/commands/MCP); `pl init` = enforcement (Stop hook).**
17
+ - **`signoff` / `init` / `ui` are NOT MCP tools** (F2): an exposed tool is an action Claude can call, and Claude must never sign off a `human-gate`. Those remain human-only paths (dashboard button / `pl signoff` typed by the human).
18
+
19
+ ## Relationship to `pl init`
20
+
21
+ `pl init` (run once per repo) scaffolds `.prooflist/`, wires the **Stop hook** into `.claude/settings.json`, and writes a per-project `.mcp.json`. If this plugin is installed, the plugin's `.mcp.json` already provides the MCP server, so the per-project one is redundant (harmless; pick either — the per-project file is what makes ProofList work **without** the plugin).
22
+
23
+ ## Install
24
+
25
+ Add this directory as a Claude Code plugin (e.g. via a marketplace entry or local plugin path). The MCP server command is `npx prooflist-mcp`, so the `prooflist` package must be resolvable (installed/published) in the environment.
26
+
27
+ ## NOT YET SMOKE-TESTED
28
+
29
+ The manifest/structure follow the current Claude Code plugin spec (`.claude-plugin/plugin.json` + root-level auto-discovered components), but a **live install smoke test** (skill auto-loads, `/pl-status` runs, MCP tools appear) requires a real Claude Code plugin environment and has **not** been run here. Verify on first install. If Claude Code does not de-duplicate, choose *either* the plugin's `.mcp.json` *or* `pl init`'s per-project `.mcp.json`, not both.
@@ -0,0 +1,11 @@
1
+ ---
2
+ description: Show the ProofList trust-ledger status for the current repo
3
+ allowed-tools: Bash(pl status:*), Bash(npx prooflist status:*)
4
+ argument-hint: (no args)
5
+ ---
6
+
7
+ Current ProofList checklist status:
8
+
9
+ !`pl status --human 2>/dev/null || npx prooflist status --human 2>/dev/null || echo '{"ok":false,"reason":"prooflist not initialized here — run pl init"}'`
10
+
11
+ Summarize the status above for the supervisor: how many tasks are done with valid evidence vs. claimed-done-without-evidence (⚠ — call these out first and by name), and which await human signoff (human-gate). If there are ⚠ items, state plainly that those completion claims are unproven. Do not mark anything done yourself — that is gated.
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: prooflist
3
+ description: Use when implementing/testing features in a repo that has .prooflist/ — manage the work checklist and PROVE screen work with Maestro before claiming done. Triggers on 작업 분할·완료 처리·화면 테스트·"다 됐다" 선언 전.
4
+ ---
5
+
6
+ # ProofList — 증거 기반 체크리스트 운영
7
+
8
+ 이 repo에 `.prooflist/`가 있으면 작업 관리·완료를 반드시 ProofList로 한다.
9
+ **이 도구의 운영자는 너(Claude)다.** 사람(승기)은 감독·서명만 한다.
10
+
11
+ ## 인터페이스
12
+ - **1차 = MCP 도구** (등록돼 있으면): `pl_plan` · `pl_start` · `pl_test` · `pl_done` · `pl_status` · `pl_gate`.
13
+ - **폴백 = `pl` CLI**: 같은 게이트 코어를 공유한다(판정 동일). 모든 출력은 JSON + `nextAction`.
14
+
15
+ ## 워크플로우
16
+ 1. 기획·분할: `pl_plan` (MCP 도구) — 작업 트리 + 각 작업 kind(logic/screen/human-gate). (CLI에는 plan 명령이 없다; 분할은 MCP로.)
17
+ 2. 시작: `pl_start <id>` / `pl start <id>`.
18
+ 3. 화면 작업이면 `.maestro/<id>.yaml` 작성 후 `pl_test <id>` / `pl test <id>` — 스샷·pass 증거 생성(+영상이면 화면 녹화).
19
+ 4. 완료: `pl_done <id>` / `pl done <id>` — 게이트 통과 시에만 done. 거부되면 응답의 `nextAction`을 **그대로** 실행한다.
20
+ 5. 점검: `pl_gate` / `pl gate --check` — 무결성 위반이 있으면 위반과 `nextAction`을 반환.
21
+
22
+ ## 증거 강도 (strength)
23
+ `none < scenario < ran-pass < visual-verified`. screen 작업은 통과한 Maestro 아티팩트(≥ `ran-pass`)가 있어야 done.
24
+ `visual-verified`는 **사람이 영상을 확인**해야만 올라간다 — 네가 스스로 올릴 수 없다.
25
+
26
+ ## 금지 (게이트가 막는 것 — F1~F5)
27
+ - 증거 없이 `done` 시도 (screen) — 거부됨.
28
+ - `human-gate` 작업을 네가 완료 처리 — **절대 불가**. 승기의 대시보드 서명만 통과. signoff는 MCP에 노출돼 있지 않다.
29
+ - 게이트 회피용으로 kind를 screen→logic 낮추기 — UI 파일을 건드린 logic done은 차단.
30
+ - 오래되거나 다른 작업의 아티팩트 재사용 — 해시·최신성 검사로 차단.
31
+ - `checklist.json` 손편집으로 가짜 done 주입 — Stop 훅의 `pl gate --check`가 턴 종료를 차단한다.
32
+
33
+ watch/영상 분석 노트는 **참고용 힌트**일 뿐 게이트 판정에 반영되지 않는다(사람이 판정).
package/skill/SKILL.md ADDED
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: prooflist
3
+ description: Use when implementing/testing features in a repo that has .prooflist/ — manage the work checklist and PROVE screen work with Maestro before claiming done. Triggers on 작업 분할·완료 처리·화면 테스트·"다 됐다" 선언 전.
4
+ ---
5
+
6
+ # ProofList — 증거 기반 체크리스트 운영
7
+
8
+ 이 repo에 `.prooflist/`가 있으면 작업 관리·완료를 반드시 ProofList로 한다.
9
+ **이 도구의 운영자는 너(Claude)다.** 사람(승기)은 감독·서명만 한다.
10
+
11
+ ## 인터페이스
12
+ - **1차 = MCP 도구** (등록돼 있으면): `pl_plan` · `pl_start` · `pl_test` · `pl_done` · `pl_status` · `pl_gate`.
13
+ - **폴백 = `pl` CLI**: 같은 게이트 코어를 공유한다(판정 동일). 모든 출력은 JSON + `nextAction`.
14
+
15
+ ## 워크플로우
16
+ 1. 기획·분할: `pl_plan` (MCP 도구) — 작업 트리 + 각 작업 kind(logic/screen/human-gate). (CLI에는 plan 명령이 없다; 분할은 MCP로.)
17
+ 2. 시작: `pl_start <id>` / `pl start <id>`.
18
+ 3. 화면 작업이면 `.maestro/<id>.yaml` 작성 후 `pl_test <id>` / `pl test <id>` — 스샷·pass 증거 생성(+영상이면 화면 녹화).
19
+ 4. 완료: `pl_done <id>` / `pl done <id>` — 게이트 통과 시에만 done. 거부되면 응답의 `nextAction`을 **그대로** 실행한다.
20
+ 5. 점검: `pl_gate` / `pl gate --check` — 무결성 위반이 있으면 위반과 `nextAction`을 반환.
21
+
22
+ ## 증거 강도 (strength)
23
+ `none < scenario < ran-pass < visual-verified`. screen 작업은 통과한 Maestro 아티팩트(≥ `ran-pass`)가 있어야 done.
24
+ `visual-verified`는 **사람이 영상을 확인**해야만 올라간다 — 네가 스스로 올릴 수 없다.
25
+
26
+ ## 금지 (게이트가 막는 것 — F1~F5)
27
+ - 증거 없이 `done` 시도 (screen) — 거부됨.
28
+ - `human-gate` 작업을 네가 완료 처리 — **절대 불가**. 승기의 대시보드 서명만 통과. signoff는 MCP에 노출돼 있지 않다.
29
+ - 게이트 회피용으로 kind를 screen→logic 낮추기 — UI 파일을 건드린 logic done은 차단.
30
+ - 오래되거나 다른 작업의 아티팩트 재사용 — 해시·최신성 검사로 차단.
31
+ - `checklist.json` 손편집으로 가짜 done 주입 — Stop 훅의 `pl gate --check`가 턴 종료를 차단한다.
32
+
33
+ watch/영상 분석 노트는 **참고용 힌트**일 뿐 게이트 판정에 반영되지 않는다(사람이 판정).