clean-room-skill 0.1.12 → 0.1.14

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.
Files changed (64) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/README.md +35 -8
  5. package/agents/clean-architect.md +3 -0
  6. package/agents/clean-implementer-verifier-shell.md +3 -0
  7. package/agents/clean-polish-reviewer.md +3 -0
  8. package/agents/clean-qa-editor.md +3 -0
  9. package/agents/contaminated-handoff-sanitizer.md +3 -0
  10. package/agents/contaminated-manager-verifier.md +3 -0
  11. package/agents/contaminated-source-analyst.md +3 -0
  12. package/bin/install.js +11 -1621
  13. package/docs/ARCHITECTURE.md +1 -1
  14. package/docs/HOOKS.md +15 -10
  15. package/docs/REFERENCE.md +24 -4
  16. package/examples/codex/.codex/agents/clean-architect.toml +3 -3
  17. package/examples/codex/.codex/agents/clean-polish-reviewer.toml +2 -2
  18. package/examples/codex/.codex/agents/clean-qa-editor.toml +2 -2
  19. package/examples/codex/.codex/agents/contaminated-handoff-sanitizer.toml +2 -2
  20. package/examples/codex/.codex/agents/contaminated-manager-verifier.toml +3 -3
  21. package/examples/codex/.codex/agents/contaminated-source-analyst.toml +2 -2
  22. package/hooks/agent3-verification-runner.py +2 -0
  23. package/hooks/agent4-polish-runner.py +2 -0
  24. package/lib/bootstrap.cjs +5 -1
  25. package/lib/doctor.cjs +157 -5
  26. package/lib/hooks.cjs +18 -0
  27. package/lib/install-artifacts.cjs +178 -4
  28. package/lib/install-claude-plugin.cjs +374 -0
  29. package/lib/install-cli.cjs +99 -0
  30. package/lib/install-operations.cjs +376 -0
  31. package/lib/install-options.cjs +149 -0
  32. package/lib/install-runtime-selection.cjs +180 -0
  33. package/lib/install-status.cjs +292 -0
  34. package/lib/install-tui.cjs +359 -0
  35. package/lib/preflight-bootstrap.cjs +39 -0
  36. package/lib/preflight-cli.cjs +95 -0
  37. package/lib/preflight-constants.cjs +25 -0
  38. package/lib/preflight-output.cjs +37 -0
  39. package/lib/preflight-paths.cjs +67 -0
  40. package/lib/preflight-template.cjs +103 -0
  41. package/lib/preflight-validation.cjs +276 -0
  42. package/lib/preflight.cjs +18 -461
  43. package/lib/run-clean-artifacts.cjs +276 -0
  44. package/lib/run-cli.cjs +90 -0
  45. package/lib/run-constants.cjs +171 -0
  46. package/lib/run-controller.cjs +247 -0
  47. package/lib/run-coverage.cjs +350 -0
  48. package/lib/run-hooks.cjs +96 -0
  49. package/lib/run-manifest.cjs +111 -0
  50. package/lib/run-progress.cjs +160 -0
  51. package/lib/run-results.cjs +433 -0
  52. package/lib/run-roots.cjs +230 -0
  53. package/lib/run-stages.cjs +409 -0
  54. package/lib/run.cjs +4 -2254
  55. package/lib/runtime-layout.cjs +12 -5
  56. package/package.json +8 -2
  57. package/plugin.json +1 -1
  58. package/skills/attended/SKILL.md +4 -2
  59. package/skills/clean-room/SKILL.md +4 -4
  60. package/skills/clean-room/references/PREFLIGHT.md +1 -1
  61. package/skills/clean-room/references/PROCESS.md +1 -1
  62. package/skills/clean-room/references/SPEC-SCHEMA.md +1 -1
  63. package/skills/{resume → resume-cr}/SKILL.md +1 -1
  64. package/skills/unattended/SKILL.md +4 -2
@@ -9,7 +9,7 @@
9
9
  "name": "clean-room",
10
10
  "source": "./",
11
11
  "description": "Spec-first clean-room workflow for authorized source analysis without replacement code.",
12
- "version": "0.1.12",
12
+ "version": "0.1.14",
13
13
  "author": {
14
14
  "name": "whit3rabbit"
15
15
  },
@@ -2,7 +2,7 @@
2
2
  "name": "clean-room",
3
3
  "displayName": "Clean Room",
4
4
  "description": "Spec-first clean-room workflow for authorized source analysis without replacement code.",
5
- "version": "0.1.12",
5
+ "version": "0.1.14",
6
6
  "author": {
7
7
  "name": "whit3rabbit"
8
8
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clean-room",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "Spec-first clean-room workflow for authorized source analysis without replacement code.",
5
5
  "author": {
6
6
  "name": "whit3rabbit"
package/README.md CHANGED
@@ -52,10 +52,10 @@ Claude global installs use Claude's plugin system for skills and agents, so entr
52
52
  Hook modes:
53
53
 
54
54
  - `--hooks=safe`: default. Hooks are installed but enforce only during clean-room role sessions with the required environment.
55
- - `--hooks=strict`: fail-closed hook mode for dedicated Codex or Claude clean-room homes.
55
+ - `--hooks=strict`: fail-closed hook mode for dedicated Codex, Claude, or OpenCode clean-room homes.
56
56
  - `--hooks=copy-only` or `--no-hooks`: copy hook files without registering runtime hook config.
57
57
 
58
- Verified runtimes are Codex and Claude Code. Other runtime layouts are installed on a best-effort basis. See [docs/REFERENCE.md](docs/REFERENCE.md#runtime-support) for the full support table and install roots.
58
+ Verified runtimes are Codex, Claude Code, and OpenCode. OpenCode support uses native skills, commands, and a generated local plugin bridge for hook enforcement. Other runtime layouts are installed on a best-effort basis. See [docs/REFERENCE.md](docs/REFERENCE.md#runtime-support) for the full support table and install roots.
59
59
 
60
60
  Marketplace install is also supported.
61
61
 
@@ -72,6 +72,15 @@ Claude Code:
72
72
  /plugin install clean-room@clean-room-skill
73
73
  ```
74
74
 
75
+ Pi:
76
+
77
+ ```bash
78
+ pi install npm:clean-room-skill@latest
79
+ pi install https://github.com/whit3rabbit/clean-room-skill
80
+ ```
81
+
82
+ Pi loads bundled skills as `/skill:<name>`, for example `/skill:clean-room`. Pi package install is skill compatibility only; it does not register clean-room hooks. Clean-room safety still depends on role separation, path isolation, schema validation, and supported hook runtimes.
83
+
75
84
  ## How To Run
76
85
 
77
86
  Optionally create neutral external run folders and a clean-safe repository stub:
@@ -90,13 +99,26 @@ In Claude Code, invoke skills with the plugin namespace:
90
99
  /clean-room
91
100
  /clean-room:attended
92
101
  /clean-room:unattended
93
- /clean-room:resume
102
+ /clean-room:resume-cr
94
103
  /clean-room:start-over
95
104
  /clean-room:refocus
96
105
  ```
97
106
 
98
107
  In Codex, invoke the `clean-room` plugin or bundled skills through `@` or the skills UI. Do not rely on Claude-style slash namespacing in Codex.
99
108
 
109
+ In Pi, invoke package skills with `/skill:<name>`:
110
+
111
+ ```text
112
+ /skill:init
113
+ /skill:preflight
114
+ /skill:clean-room
115
+ /skill:attended
116
+ /skill:unattended
117
+ /skill:resume-cr
118
+ /skill:start-over
119
+ /skill:refocus
120
+ ```
121
+
100
122
  For unattended inner-loop execution from durable artifacts:
101
123
 
102
124
  ```bash
@@ -115,13 +137,13 @@ In strict context-management mode, every `agent-commands.json` stage must set `c
115
137
  ![Clean Room Architecture](assets/clean-room-arch.svg)
116
138
 
117
139
  1. Initialize or bootstrap the run.
118
- Use `npx clean-room-skill@latest init` to create neutral external run folders and a clean-safe repository stub, or use `/clean-room:init` for skill-driven run preferences. The active `init-config.json` stays out of the clean implementation repository.
140
+ Use `npx clean-room-skill@latest init` to create neutral external run folders and a clean-safe repository stub, or use `/clean-room:init` in Claude Code or `/skill:init` in Pi for skill-driven run preferences. The active `init-config.json` stays out of the clean implementation repository.
119
141
 
120
142
  2. Record the goal contract.
121
143
  Use `npx clean-room-skill@latest preflight` or `/clean-room:preflight` before source discovery, attended mode, or unattended mode. This creates or validates `preflight-goal.json` on the contaminated/controller side.
122
144
 
123
145
  3. Start the controller.
124
- Use `/clean-room` or `/clean-room:attended` for human review gates. Use `/clean-room:unattended` only after preflight allows bounded unattended work with finite iteration limits and no open questions.
146
+ Use `/clean-room` or `/clean-room:attended` in Claude Code, or `/skill:clean-room` or `/skill:attended` in Pi, for human review gates. Use unattended entry points only after preflight allows bounded unattended work with finite iteration limits and no open questions.
125
147
 
126
148
  4. Analyze and sanitize.
127
149
  Source-reading roles produce neutral draft behavior specs and record contaminated-only `discovery_leads` when authorized related surfaces are detected but not analyzed in the assigned unit. A source-denied sanitizer reviews handoff candidates before anything enters the clean domain.
@@ -134,7 +156,7 @@ In strict context-management mode, every `agent-commands.json` stage must set `c
134
156
 
135
157
  Use recovery skills instead of chat history:
136
158
 
137
- - `/clean-room:resume`: continue from durable artifacts.
159
+ - `/clean-room:resume-cr`: continue from durable artifacts.
138
160
  - `/clean-room:start-over`: archive or quarantine current artifacts without deletion, then restart with a fresh neutral task id.
139
161
  - `/clean-room:refocus`: audit current artifacts against declared scope without expanding scope.
140
162
 
@@ -144,18 +166,23 @@ Use recovery skills instead of chat history:
144
166
  | --- | --- | --- | --- |
145
167
  | 1 | `npx clean-room-skill@latest init` | CLI command | Create neutral external run folders and a clean-safe `.clean-room/README.md` stub. |
146
168
  | 1 | `/clean-room:init` | Skill | Record run preferences, separated roots, schema profile, and model policy. |
169
+ | 1 | `/skill:init` | Pi skill | Record run preferences, separated roots, schema profile, and model policy. |
147
170
  | 2 | `npx clean-room-skill@latest preflight` | CLI command | Create or validate the Stage 0 goal contract. |
148
171
  | 2 | `/clean-room:preflight` | Skill | Record the required goal, policy, output, and controller-mode contract. |
172
+ | 2 | `/skill:preflight` | Pi skill | Record the required goal, policy, output, and controller-mode contract. |
149
173
  | 3 | `/clean-room` | Skill | Start the setup wizard for authorized clean-room work. |
150
174
  | 3 | `/clean-room:attended` | Skill | Start the wizard in attended mode with human review gates. |
151
175
  | 3 | `/clean-room:unattended` | Skill | Start the wizard in bounded unattended mode with finite loop limits. |
176
+ | 3 | `/skill:clean-room` | Pi skill | Start the setup wizard for authorized clean-room work. |
177
+ | 3 | `/skill:attended` | Pi skill | Start the wizard in attended mode with human review gates. |
178
+ | 3 | `/skill:unattended` | Pi skill | Start the wizard in bounded unattended mode with finite loop limits. |
152
179
  | 4 | `npx clean-room-skill@latest run` | CLI command | Execute the bounded inner clean-room runner for one approved spec slice. |
153
180
 
154
181
  ### Maintenance CLI Commands
155
182
 
156
183
  | Command | Use it for |
157
184
  | --- | --- |
158
- | `npx clean-room-skill@latest doctor` | Smoke test generated Codex or Claude hook registration. |
185
+ | `npx clean-room-skill@latest doctor` | Smoke test generated Codex, Claude, or OpenCode hook registration. |
159
186
  | `npx clean-room-skill@latest status` | Report installed runtime version, drift, and hook state. |
160
187
  | `npx clean-room-skill@latest update` | Refresh installed runtime files without onboarding. |
161
188
 
@@ -163,7 +190,7 @@ Use recovery skills instead of chat history:
163
190
 
164
191
  | Skill | Use it for |
165
192
  | --- | --- |
166
- | `/clean-room:resume` | Continue an existing run from durable artifacts. |
193
+ | `/clean-room:resume-cr` | Continue an existing run from durable artifacts. |
167
194
  | `/clean-room:start-over` | Non-destructively archive or quarantine current artifacts and restart. |
168
195
  | `/clean-room:refocus` | Audit a run and route it back to missed gates without adding scope. |
169
196
 
@@ -2,6 +2,9 @@
2
2
  name: clean-architect
3
3
  description: Plans clean implementation from approved clean behavioral specs and the clean destination foundation without reading contaminated source or chat history.
4
4
  tools: Read, Write, Edit, Glob
5
+ model: opus
6
+ effort: high
7
+ color: blue
5
8
  ---
6
9
 
7
10
  # Clean Architect
@@ -2,6 +2,9 @@
2
2
  name: clean-implementer-verifier-shell
3
3
  description: Shell-capable Agent 3 profile for isolated clean implementation verification homes.
4
4
  tools: Read, Write, Edit, Glob, Bash
5
+ model: sonnet
6
+ effort: high
7
+ color: cyan
5
8
  ---
6
9
 
7
10
  # Clean Implementer Verifier Shell
@@ -2,6 +2,9 @@
2
2
  name: clean-polish-reviewer
3
3
  description: Performs final source-denied clean code polish, repository hygiene, verification review, and constrained implementation-root commit after Agent 3 completes.
4
4
  tools: Read, Write, Edit, Glob
5
+ model: sonnet
6
+ effort: high
7
+ color: pink
5
8
  ---
6
9
 
7
10
  # Clean Polish Reviewer
@@ -2,6 +2,9 @@
2
2
  name: clean-qa-editor
3
3
  description: Implements the clean implementation plan, verifies the clean destination code, records implementation status, and emits one terminal report for Agent 0.
4
4
  tools: Read, Write, Edit, Glob
5
+ model: sonnet
6
+ effort: high
7
+ color: green
5
8
  ---
6
9
 
7
10
  # Clean Implementer Verifier
@@ -2,6 +2,9 @@
2
2
  name: contaminated-handoff-sanitizer
3
3
  description: Reviews Agent 1 draft specs from a fresh source-denied contaminated context, removes identifying material, and approves only scrubbed artifacts for clean handoff.
4
4
  tools: Read, Write, Edit, Glob
5
+ model: sonnet
6
+ effort: high
7
+ color: yellow
5
8
  ---
6
9
 
7
10
  # Contaminated Handoff Sanitizer
@@ -2,6 +2,9 @@
2
2
  name: contaminated-manager-verifier
3
3
  description: Consumes contaminated source indexes, decomposes authorized source scope, tracks clean-room coverage, and verifies clean specs against source without sending source expression across the wall.
4
4
  tools: Read, Write, Edit, Glob, Grep
5
+ model: opus
6
+ effort: high
7
+ color: purple
5
8
  ---
6
9
 
7
10
  # Contaminated Manager Verifier
@@ -2,6 +2,9 @@
2
2
  name: contaminated-source-analyst
3
3
  description: Reads authorized source in a contaminated workspace and produces neutral draft task slices plus behavioral specs with evidence references, not replacement code.
4
4
  tools: Read, Write, Edit, Glob, Grep, view_image
5
+ model: sonnet
6
+ effort: medium
7
+ color: orange
5
8
  ---
6
9
 
7
10
  # Contaminated Source Analyst