pincer-workflow 0.2.2 → 0.2.3
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/README.md
CHANGED
|
@@ -86,7 +86,7 @@ want the repo-side rules too can copy `AGENTS.md` from the
|
|
|
86
86
|
npx pincer-workflow@latest update
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
Files you never touched are refreshed in place. (Installs older than v0.2.0 gain the ticket state machine, the status report and the ticket-guard hook on update; `.claude/settings.json` conflicts if you edited it — merge the new hook entry from the `.new` file. v0.2.2 replaces the Codex adapter: the commands are now skills in `.agents/skills/` invoked as `$pincer-*`, since Codex no longer loads `~/.codex/prompts/` — you can delete the copies there.) Files you edited are left
|
|
89
|
+
Files you never touched are refreshed in place. (Installs older than v0.2.0 gain the ticket state machine, the status report and the ticket-guard hook on update; `.claude/settings.json` conflicts if you edited it — merge the new hook entry from the `.new` file. v0.2.2 replaces the Codex adapter: the commands are now skills in `.agents/skills/` invoked as `$pincer-*`, since Codex no longer loads `~/.codex/prompts/` — you can delete the copies there. v0.2.3 ships the playbooks, rubrics and templates under `.claude/` on every platform, which Codex- and Copilot-only installs were missing.) Files you edited are left
|
|
90
90
|
alone — the new version lands next to them as `<file>.new` for a manual merge.
|
|
91
91
|
`npx pincer-workflow doctor` checks the health of an install (hook executable,
|
|
92
92
|
`.gitignore` covering `.env*`, no unmerged `*.new` files, version current).
|
|
@@ -96,7 +96,7 @@ alone — the new version lands next to them as `<file>.new` for a manual merge.
|
|
|
96
96
|
| Piece | Purpose |
|
|
97
97
|
| --- | --- |
|
|
98
98
|
| `AGENTS.md` | Project rules, single cross-platform source (workflow order, security defaults, secrets, untrusted-content and dependency rules) |
|
|
99
|
-
| `.claude/commands/` | The five playbooks plus `/pincer-status` (canonical — adapters are generated from them) |
|
|
99
|
+
| `.claude/commands/` | The five playbooks plus `/pincer-status` (canonical — adapters are generated from them; ships on every platform together with `agents/` and `references/`) |
|
|
100
100
|
| `.claude/agents/` | `codebase-explorer` and `code-quality-reviewer` subagents, with inline fallbacks for platforms without subagents |
|
|
101
101
|
| `scripts/pincer-ticket.sh` | The ticket state machine: `start` (enforces dependency order) → `verify` (runs the ticket's check, stamps a receipt only on green) → `done` (refuses without a matching receipt or with unticked criteria) |
|
|
102
102
|
| `scripts/pincer-status.sh` | Read-only state report: PRD, every ticket with clock-based elapsed time, blocked tickets, build time vs budget, next command |
|
package/bin/pincer.js
CHANGED
|
@@ -20,9 +20,13 @@ const TEMPLATE = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', '
|
|
|
20
20
|
const VERSION = createRequire(import.meta.url)('../package.json').version;
|
|
21
21
|
const MANIFEST = '.pincer.json';
|
|
22
22
|
|
|
23
|
+
// The playbooks, subagent rubrics and PRD/ticket templates under .claude/ are
|
|
24
|
+
// the canonical kit and are read by every platform's adapter (the Codex skills
|
|
25
|
+
// and Copilot prompts point at them), so they ship everywhere; only Claude
|
|
26
|
+
// Code's own wiring (CLAUDE.md, settings.json, hooks) is platform-specific.
|
|
23
27
|
const PLATFORM_ROOTS = {
|
|
24
|
-
common: ['AGENTS.md', 'docs/dry-run-checklist.md', 'scripts/sync-prompts.sh', 'scripts/pincer-ticket.sh', 'scripts/pincer-status.sh'],
|
|
25
|
-
claude: ['CLAUDE.md', '.claude'],
|
|
28
|
+
common: ['AGENTS.md', 'docs/dry-run-checklist.md', 'scripts/sync-prompts.sh', 'scripts/pincer-ticket.sh', 'scripts/pincer-status.sh', '.claude/commands', '.claude/agents', '.claude/references'],
|
|
29
|
+
claude: ['CLAUDE.md', '.claude/settings.json', '.claude/hooks'],
|
|
26
30
|
codex: ['.codex', '.agents'],
|
|
27
31
|
copilot: ['.github'],
|
|
28
32
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pincer-workflow",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "PINCER — a PRD-driven agentic delivery workflow for Claude Code, Codex CLI, and GitHub Copilot. Plan · Investigate · Narrow · Code · Evaluate · Release.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"pincer": "bin/pincer.js"
|
|
@@ -30,7 +30,7 @@ from wherever the receipt says you are. Confirm the starting point with the user
|
|
|
30
30
|
1. **Start:** `scripts/pincer-ticket.sh start T-{NN}` — refuses while a `depends_on` ticket
|
|
31
31
|
isn't done, and stamps the start time. Read the ticket and the files it references.
|
|
32
32
|
Announce: "Starting T-{NN}: {title}."
|
|
33
|
-
2. **Implement.** Follow the conventions in `
|
|
33
|
+
2. **Implement.** Follow the conventions in `AGENTS.md` and the PRD's architecture and
|
|
34
34
|
visual direction. Installing a dependency not named in the PRD's architecture is a
|
|
35
35
|
stop-and-ask: verify it's the real package on the registry (linked repo, downloads —
|
|
36
36
|
hallucinated names get typosquatted), say why it earns its place, and wait for a yes.
|
|
@@ -49,7 +49,7 @@ from wherever the receipt says you are. Confirm the starting point with the user
|
|
|
49
49
|
`.env.example` as a blocker.
|
|
50
50
|
- External input touched by this diff is validated server-side, and untrusted
|
|
51
51
|
content (user input, LLM output) is escaped where rendered — per the
|
|
52
|
-
Security defaults in `
|
|
52
|
+
Security defaults in `AGENTS.md`.
|
|
53
53
|
- No error path leaks internals (stack traces, key names with values) to the client.
|
|
54
54
|
If the review changed code, run `verify` again — the receipt must match the code you commit.
|
|
55
55
|
5. **Close the ticket:** tick every verified acceptance-criteria checkbox (`- [ ]` → `- [x]`;
|
|
@@ -28,7 +28,7 @@ from wherever the receipt says you are. Confirm the starting point with the user
|
|
|
28
28
|
1. **Start:** `scripts/pincer-ticket.sh start T-{NN}` — refuses while a `depends_on` ticket
|
|
29
29
|
isn't done, and stamps the start time. Read the ticket and the files it references.
|
|
30
30
|
Announce: "Starting T-{NN}: {title}."
|
|
31
|
-
2. **Implement.** Follow the conventions in `
|
|
31
|
+
2. **Implement.** Follow the conventions in `AGENTS.md` and the PRD's architecture and
|
|
32
32
|
visual direction. Installing a dependency not named in the PRD's architecture is a
|
|
33
33
|
stop-and-ask: verify it's the real package on the registry (linked repo, downloads —
|
|
34
34
|
hallucinated names get typosquatted), say why it earns its place, and wait for a yes.
|
|
@@ -47,7 +47,7 @@ from wherever the receipt says you are. Confirm the starting point with the user
|
|
|
47
47
|
`.env.example` as a blocker.
|
|
48
48
|
- External input touched by this diff is validated server-side, and untrusted
|
|
49
49
|
content (user input, LLM output) is escaped where rendered — per the
|
|
50
|
-
Security defaults in `
|
|
50
|
+
Security defaults in `AGENTS.md`.
|
|
51
51
|
- No error path leaks internals (stack traces, key names with values) to the client.
|
|
52
52
|
If the review changed code, run `verify` again — the receipt must match the code you commit.
|
|
53
53
|
5. **Close the ticket:** tick every verified acceptance-criteria checkbox (`- [ ]` → `- [x]`;
|
|
@@ -15,6 +15,10 @@ $pincer-narrow → $pincer-code → $pincer-evaluate → $pincer-rel
|
|
|
15
15
|
$pincer-status
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
The skills point at the canonical playbooks, the two subagent rubrics and the
|
|
19
|
+
PRD/ticket templates under `.claude/` — those ship on every platform, so the
|
|
20
|
+
directory is expected here even without Claude Code.
|
|
21
|
+
|
|
18
22
|
`/skills` lists what Codex has loaded — the six `pincer-*` entries should be
|
|
19
23
|
there whenever you start `codex` inside this repo. The skills are generated
|
|
20
24
|
from `.claude/commands/` by `scripts/sync-prompts.sh` (cross-references are
|
|
@@ -30,7 +30,7 @@ from wherever the receipt says you are. Confirm the starting point with the user
|
|
|
30
30
|
1. **Start:** `scripts/pincer-ticket.sh start T-{NN}` — refuses while a `depends_on` ticket
|
|
31
31
|
isn't done, and stamps the start time. Read the ticket and the files it references.
|
|
32
32
|
Announce: "Starting T-{NN}: {title}."
|
|
33
|
-
2. **Implement.** Follow the conventions in `
|
|
33
|
+
2. **Implement.** Follow the conventions in `AGENTS.md` and the PRD's architecture and
|
|
34
34
|
visual direction. Installing a dependency not named in the PRD's architecture is a
|
|
35
35
|
stop-and-ask: verify it's the real package on the registry (linked repo, downloads —
|
|
36
36
|
hallucinated names get typosquatted), say why it earns its place, and wait for a yes.
|
|
@@ -49,7 +49,7 @@ from wherever the receipt says you are. Confirm the starting point with the user
|
|
|
49
49
|
`.env.example` as a blocker.
|
|
50
50
|
- External input touched by this diff is validated server-side, and untrusted
|
|
51
51
|
content (user input, LLM output) is escaped where rendered — per the
|
|
52
|
-
Security defaults in `
|
|
52
|
+
Security defaults in `AGENTS.md`.
|
|
53
53
|
- No error path leaks internals (stack traces, key names with values) to the client.
|
|
54
54
|
If the review changed code, run `verify` again — the receipt must match the code you commit.
|
|
55
55
|
5. **Close the ticket:** tick every verified acceptance-criteria checkbox (`- [ ]` → `- [x]`;
|