@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.
@@ -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" # prints the base commit: $BASE below
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 (no Pharaoh, no PR Guard), raise it under SHIP WITH CHANGES, not BLOCK
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 and tested (libraries)
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.45",
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",
@@ -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.1
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" # prints the base commit: $BASE below
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 (no Pharaoh, no PR Guard), raise it under SHIP WITH CHANGES, not BLOCK
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 and tested (libraries)
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