pi-gauntlet 4.12.2 → 4.13.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/CHANGELOG.md +6 -0
- package/README.md +103 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v4.13.0 - 2026-08-20
|
|
4
|
+
|
|
5
|
+
- Claude Code plugin marketplace (gh-11): new `.claude-plugin/marketplace.json` exposes exactly three tracker-facing skills (`shape-ticket`, `gatekeep-pr`, `check-delivery`) to Claude Code in place - plugin `gauntlet`, marketplace `pi-gauntlet`, consumer setting `"enabledPlugins": {"gauntlet@pi-gauntlet": true}`. Exclusivity rests on `source: "./"` + `strict: false` + specific subdir paths; `"agents": []` suppresses the default `agents/` scan so pi personas never register as CC agents. Zero skill-body edits; the directory is excluded from the npm tarball and never read by pi.
|
|
6
|
+
- `scripts/ci.mjs`: new marketplace guard - identity pins (`gauntlet`@`pi-gauntlet`), source/strict/agents assertions, scan-leak entry ban, allowlist path + frontmatter existence checks, bundle-local `.md` reference integrity for allowlisted skills, and a negative npm-pack assertion for `.claude-plugin/`.
|
|
7
|
+
- README: new "Use from Claude Code" section - consumer settings snippet, register/install/enable distinction, `CLAUDE.md` symlink advice, folder-trust gotcha, and an 11-step smoke-test cookbook.
|
|
8
|
+
|
|
3
9
|
## v4.12.2 - 2026-08-19
|
|
4
10
|
|
|
5
11
|
- New `skills/shape-ticket/reference/split-axes.md`: the shared split test for tickets and specs - identity test (same precipitating failure / mooted outcome = one concern), user-observable outcome test, closed axis list with pass/fail examples, Never-axis list (fix location, service/repo/layer/team, "keep tickets small"), discovery-conversion exemption, fail-closed release-timing precondition gated on a documented `## Deployment` overrides section.
|
package/README.md
CHANGED
|
@@ -124,6 +124,109 @@ cd ~/path/to/your/repo && pi install -l ~/repos/pi-gauntlet
|
|
|
124
124
|
cd ~/repos/pi-gauntlet && npm run link-agents # local-path installs skip npm install; run this once
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
+
## Use from Claude Code
|
|
128
|
+
|
|
129
|
+
Three skills are exposed to Claude Code via the plugin marketplace at
|
|
130
|
+
`.claude-plugin/marketplace.json`: **shape-ticket**, **gatekeep-pr**, and
|
|
131
|
+
**check-delivery**. They are harness-portable by design - every pi-specific
|
|
132
|
+
mechanic they touch (`plan_tracker`, `gauntlet_setting`, `subagent()`) carries
|
|
133
|
+
an inline fallback, so they run on Claude Code's native facilities. This is the
|
|
134
|
+
supported set. Not exposed, in two classes: (a) genuinely pi-bound surface -
|
|
135
|
+
the full gated pipeline (brainstorming -> writing-plans ->
|
|
136
|
+
subagent-driven-development -> verify -> finish), the spec council, the
|
|
137
|
+
conformance gate, flow guards, verify-before-ship, and all `piGauntlet.*`
|
|
138
|
+
settings, which depend on pi extensions; (b) runtime-neutral skills
|
|
139
|
+
(e.g. `systematic-debugging`, `receiving-code-review`, `using-git-worktrees`) that
|
|
140
|
+
are simply out of scope for this channel, not incompatible - re-adding one is a
|
|
141
|
+
one-line allowlist append. For Claude-Code-native equivalents of the
|
|
142
|
+
methodology skills, see [obra/superpowers](https://github.com/obra/superpowers).
|
|
143
|
+
|
|
144
|
+
### Setup
|
|
145
|
+
|
|
146
|
+
Add to your repo's `.claude/settings.json`:
|
|
147
|
+
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"extraKnownMarketplaces": {
|
|
151
|
+
"pi-gauntlet": {
|
|
152
|
+
"source": { "source": "github", "repo": "jjuraszek/pi-gauntlet" }
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"enabledPlugins": { "gauntlet@pi-gauntlet": true }
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Add `"ref": "vX.Y.Z"` to the source object to pin a tag; the default tracks the
|
|
160
|
+
default branch. Claude Code merges settings entries whole (no field-level
|
|
161
|
+
merge), so teams layering managed settings must carry the full objects.
|
|
162
|
+
|
|
163
|
+
Registration, installation, and enablement are distinct steps in Claude Code:
|
|
164
|
+
`extraKnownMarketplaces` registers the marketplace, `enabledPlugins` records
|
|
165
|
+
enablement intent. If a fresh machine shows the plugin as known but not
|
|
166
|
+
installed, run `/plugin install gauntlet@pi-gauntlet` once. Alternative path
|
|
167
|
+
without touching settings.json: `/plugin marketplace add jjuraszek/pi-gauntlet`,
|
|
168
|
+
then install.
|
|
169
|
+
|
|
170
|
+
Invocation: `/gauntlet:shape-ticket` (or bare `/shape-ticket` when unambiguous).
|
|
171
|
+
|
|
172
|
+
Project instructions: Claude Code reads `CLAUDE.md`, pi reads `AGENTS.md` - a
|
|
173
|
+
symlink keeps one source of truth: `ln -s AGENTS.md CLAUDE.md`. The gauntlet
|
|
174
|
+
overrides ladder (`.pi/gauntlet-overrides.md` -> `gauntlet-overrides.md` ->
|
|
175
|
+
`doc/gauntlet-overrides.md`) works unchanged on Claude Code - it is a plain
|
|
176
|
+
file read.
|
|
177
|
+
|
|
178
|
+
**Trust gotcha:** the marketplace auto-activates only after you trust *that
|
|
179
|
+
exact repo folder* in interactive Claude Code. Trusting a parent folder,
|
|
180
|
+
`claude -p`, or SDK runs in untrusted folders silently skip
|
|
181
|
+
`extraKnownMarketplaces` with no error.
|
|
182
|
+
|
|
183
|
+
### Smoke test
|
|
184
|
+
|
|
185
|
+
1. Create a scratch repo and add the marketplace config:
|
|
186
|
+
|
|
187
|
+
mkdir -p /tmp/cc-smoke/.claude && cd /tmp/cc-smoke && git init
|
|
188
|
+
cat > .claude/settings.json <<'EOF'
|
|
189
|
+
{
|
|
190
|
+
"extraKnownMarketplaces": {
|
|
191
|
+
"pi-gauntlet": {
|
|
192
|
+
"source": { "source": "github", "repo": "jjuraszek/pi-gauntlet" }
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"enabledPlugins": { "gauntlet@pi-gauntlet": true }
|
|
196
|
+
}
|
|
197
|
+
EOF
|
|
198
|
+
|
|
199
|
+
2. Start Claude Code interactively in that directory: `claude`
|
|
200
|
+
3. When prompted, trust the folder (this exact folder - trust is what activates
|
|
201
|
+
the marketplace; there is no separate marketplace prompt).
|
|
202
|
+
4. Run `/plugin` and confirm: marketplace `pi-gauntlet` is listed, plugin
|
|
203
|
+
`gauntlet` is enabled. If it shows as known but not installed, run
|
|
204
|
+
`/plugin install gauntlet@pi-gauntlet` and re-check.
|
|
205
|
+
5. Confirm exactly three skills are registered under the plugin (via the
|
|
206
|
+
`/plugin` details view): shape-ticket, gatekeep-pr, check-delivery.
|
|
207
|
+
6. Invoke `/gauntlet:shape-ticket` with a deliberately two-concern ask (e.g.
|
|
208
|
+
"shape a ticket: CSV import for operators, plus a partner-facing status
|
|
209
|
+
API") so the skill deterministically consults its
|
|
210
|
+
`reference/split-axes.md` before proposing a split. Expected: skill
|
|
211
|
+
activates, reads the reference file, reaches its tracker capability ladder
|
|
212
|
+
without erroring on missing pi tools. Stop at the first human gate; write
|
|
213
|
+
nothing to any tracker.
|
|
214
|
+
7. Invoke `/gauntlet:gatekeep-pr` in the scratch repo (which has no PR).
|
|
215
|
+
Expected: the skill activates and stops at its configuration/verification
|
|
216
|
+
ladder reporting nothing to gate - no error about missing pi tools, no
|
|
217
|
+
mutation.
|
|
218
|
+
8. Invoke `/gauntlet:check-delivery` with no deliverable reference. Expected:
|
|
219
|
+
the skill activates and asks for / reports a missing deliverable set - a
|
|
220
|
+
reported skip, not a pass, and no pi-tool error.
|
|
221
|
+
9. Negative check: type `/gauntlet:brainstorming`. Expected: no such skill -
|
|
222
|
+
the allowlist excluded it.
|
|
223
|
+
10. Optional validator pass: `claude plugin validate .` from a checkout of
|
|
224
|
+
pi-gauntlet (strict mode if available). Expected: no schema errors.
|
|
225
|
+
11. Agent check: type `@gauntlet:` in the mention typeahead (or open the
|
|
226
|
+
plugin's details). Expected: the plugin registers no agents - `"agents": []`
|
|
227
|
+
in the marketplace entry suppresses the default `agents/` scan of the
|
|
228
|
+
repo's pi personas.
|
|
229
|
+
|
|
127
230
|
## Project-specific overrides
|
|
128
231
|
|
|
129
232
|
The skills shipped here are generic on purpose - they describe *how* to TDD, brainstorm, debug, request review, etc., without naming your services, your CI command, or your worktree wrapper. When you need that level of detail, drop a file at `.pi/gauntlet-overrides.md` in your repo. The skills read it at runtime and merge sections that match the skill's name or topic:
|
package/package.json
CHANGED