@pharaoh-so/mcp 0.3.45 → 0.3.46
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/commands/review.md +5 -4
- package/package.json +1 -1
- package/skills/review/SKILL.md +6 -5
package/commands/review.md
CHANGED
|
@@ -33,12 +33,13 @@ Before merging any branch. Before opening any PR. When reviewing changes that to
|
|
|
33
33
|
[ -n "$TARGET" ] || for b in origin/main origin/master main master; do
|
|
34
34
|
git rev-parse -q --verify "$b" >/dev/null && TARGET=$b && break
|
|
35
35
|
done
|
|
36
|
-
git merge-base HEAD "$TARGET"
|
|
36
|
+
BASE=$(git merge-base HEAD "$TARGET") && echo "base: $BASE"
|
|
37
37
|
```
|
|
38
|
-
If no base comes out, stop and ask which branch this merges into. An empty base makes every diff below come out empty, and the review would report no changes.
|
|
38
|
+
If no base comes out, stop and ask which branch this merges into. An empty base makes every diff below come out empty, and the review would report no changes. If your shell doesn't keep variables between commands, set `BASE` to the printed commit at the start of each one.
|
|
39
39
|
|
|
40
40
|
3. Collect the full changeset from the base:
|
|
41
41
|
```bash
|
|
42
|
+
: "${BASE:?no base: ask which branch this merges into}" # stops here rather than diff HEAD against itself
|
|
42
43
|
git diff --name-only "$BASE"...HEAD # all changed files
|
|
43
44
|
git diff --stat "$BASE"...HEAD # summary stats
|
|
44
45
|
git log --oneline "$BASE"..HEAD # all commits on this branch
|
|
@@ -256,7 +257,7 @@ If none of these triggers are met, **skip Phase 3** and proceed to Phase 4.
|
|
|
256
257
|
### Auto-block triggers (any of these = BLOCK)
|
|
257
258
|
|
|
258
259
|
- Any CRITICAL security finding (injection, broken access control, tenant isolation violation, secret exposure)
|
|
259
|
-
- Unreachable exports in an application (new public code that nothing calls). In a library, exports are the public API: check each new one is documented or tested instead. Without reachability data
|
|
260
|
+
- Unreachable exports in an application (new public code that nothing calls). In a library, exports are the public API: check each new one is documented or tested instead. Without graph reachability data, a search can't prove nothing calls it: raise it under SHIP WITH CHANGES, not BLOCK
|
|
260
261
|
- New circular dependencies between modules
|
|
261
262
|
- HIGH regression risk without corresponding test coverage
|
|
262
263
|
- **A MUST-bullet in `docs/VISION.md` is violated by this change** (without VISION.md being updated in the same PR with user approval)
|
|
@@ -275,7 +276,7 @@ If none of these triggers are met, **skip Phase 3** and proceed to Phase 4.
|
|
|
275
276
|
### SHIP triggers
|
|
276
277
|
|
|
277
278
|
- No CRITICAL or confirmed IMPORTANT findings
|
|
278
|
-
- All new exports are reachable (applications) or documented
|
|
279
|
+
- All new exports are reachable (applications) or documented or tested (libraries)
|
|
279
280
|
- Regression risk is LOW or MEDIUM with adequate test coverage
|
|
280
281
|
- Spec alignment is clean or intentionally divergent with documentation
|
|
281
282
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pharaoh-so/mcp",
|
|
3
3
|
"mcpName": "so.pharaoh/pharaoh",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.46",
|
|
5
5
|
"description": "MCP proxy for Pharaoh — maps codebases into queryable knowledge graphs for AI agents. Enables Claude Code in headless environments (VPS, SSH, CI) via device flow auth.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
package/skills/review/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: review
|
|
3
3
|
prompt-name: review-with-pharaoh
|
|
4
4
|
description: "The definitive code review, for any codebase. Five-phase workflow: git context detection (worktree, branch, base, changed files), Pharaoh recon (architecture map, module context, blast radius in one call, with a fallback when the repo isn't mapped), parallel specialized agent dispatch (code quality, security against the project's own rules, error handling, test coverage, type design), adversarial review for security-sensitive changes, and a final synthesized verdict of SHIP / SHIP WITH CHANGES / BLOCK. Architecture-aware wherever Pharaoh maps the repo, always branch-aware."
|
|
5
|
-
version: 0.4.
|
|
5
|
+
version: 0.4.2
|
|
6
6
|
homepage: https://pharaoh.so
|
|
7
7
|
user-invocable: true
|
|
8
8
|
metadata: {"emoji": "☥", "tags": ["code-review", "pull-request", "architecture", "pharaoh", "multi-agent", "adversarial-review", "regression-risk", "spec-alignment"]}
|
|
@@ -39,12 +39,13 @@ Before merging any branch. Before opening any PR. When reviewing changes that to
|
|
|
39
39
|
[ -n "$TARGET" ] || for b in origin/main origin/master main master; do
|
|
40
40
|
git rev-parse -q --verify "$b" >/dev/null && TARGET=$b && break
|
|
41
41
|
done
|
|
42
|
-
git merge-base HEAD "$TARGET"
|
|
42
|
+
BASE=$(git merge-base HEAD "$TARGET") && echo "base: $BASE"
|
|
43
43
|
```
|
|
44
|
-
If no base comes out, stop and ask which branch this merges into. An empty base makes every diff below come out empty, and the review would report no changes.
|
|
44
|
+
If no base comes out, stop and ask which branch this merges into. An empty base makes every diff below come out empty, and the review would report no changes. If your shell doesn't keep variables between commands, set `BASE` to the printed commit at the start of each one.
|
|
45
45
|
|
|
46
46
|
3. Collect the full changeset from the base:
|
|
47
47
|
```bash
|
|
48
|
+
: "${BASE:?no base: ask which branch this merges into}" # stops here rather than diff HEAD against itself
|
|
48
49
|
git diff --name-only "$BASE"...HEAD # all changed files
|
|
49
50
|
git diff --stat "$BASE"...HEAD # summary stats
|
|
50
51
|
git log --oneline "$BASE"..HEAD # all commits on this branch
|
|
@@ -262,7 +263,7 @@ If none of these triggers are met, **skip Phase 3** and proceed to Phase 4.
|
|
|
262
263
|
### Auto-block triggers (any of these = BLOCK)
|
|
263
264
|
|
|
264
265
|
- Any CRITICAL security finding (injection, broken access control, tenant isolation violation, secret exposure)
|
|
265
|
-
- Unreachable exports in an application (new public code that nothing calls). In a library, exports are the public API: check each new one is documented or tested instead. Without reachability data
|
|
266
|
+
- Unreachable exports in an application (new public code that nothing calls). In a library, exports are the public API: check each new one is documented or tested instead. Without graph reachability data, a search can't prove nothing calls it: raise it under SHIP WITH CHANGES, not BLOCK
|
|
266
267
|
- New circular dependencies between modules
|
|
267
268
|
- HIGH regression risk without corresponding test coverage
|
|
268
269
|
- **A MUST-bullet in `docs/VISION.md` is violated by this change** (without VISION.md being updated in the same PR with user approval)
|
|
@@ -281,7 +282,7 @@ If none of these triggers are met, **skip Phase 3** and proceed to Phase 4.
|
|
|
281
282
|
### SHIP triggers
|
|
282
283
|
|
|
283
284
|
- No CRITICAL or confirmed IMPORTANT findings
|
|
284
|
-
- All new exports are reachable (applications) or documented
|
|
285
|
+
- All new exports are reachable (applications) or documented or tested (libraries)
|
|
285
286
|
- Regression risk is LOW or MEDIUM with adequate test coverage
|
|
286
287
|
- Spec alignment is clean or intentionally divergent with documentation
|
|
287
288
|
|