@pharaoh-so/mcp 0.3.17 → 0.3.19

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/plan.md CHANGED
@@ -8,6 +8,10 @@ Architecture-aware plan review before implementation. Adapted from [Garry Tan's
8
8
 
9
9
  **You are now in plan mode. Do NOT make any code changes. Think, evaluate, and present decisions.**
10
10
 
11
+ ## When to Use
12
+
13
+ Before any multi-step implementation or architectural change. When given a PRD, spec, or plan document to evaluate before writing code.
14
+
11
15
  ## Document Review
12
16
 
13
17
  If the user provides a document, PRD, prompt, or artifact alongside this command, that IS the plan to review. Apply all review sections to that document. Do not treat it as background context — it is the subject of evaluation.
package/dist/helpers.js CHANGED
@@ -4,7 +4,7 @@ const DEFAULT_SERVER = "https://mcp.pharaoh.so";
4
4
  export const NPX_COMMAND = "npx @pharaoh-so/mcp";
5
5
  /** Write one or more lines to stderr. */
6
6
  export function printLines(...lines) {
7
- process.stderr.write(lines.join("\n") + "\n");
7
+ process.stderr.write(`${lines.join("\n")}\n`);
8
8
  }
9
9
  /** Parse CLI arguments. */
10
10
  export function parseArgs(argv = process.argv.slice(2)) {
@@ -95,10 +95,7 @@ export function formatTtl(expiresAt) {
95
95
  }
96
96
  /** Format a credential identity string (e.g. "alice (my-org)"). */
97
97
  export function formatIdentity(creds) {
98
- return [
99
- creds.github_login ?? "unknown",
100
- creds.tenant_name ? `(${creds.tenant_name})` : null,
101
- ]
98
+ return [creds.github_login ?? "unknown", creds.tenant_name ? `(${creds.tenant_name})` : null]
102
99
  .filter(Boolean)
103
100
  .join(" ");
104
101
  }
@@ -542,7 +542,9 @@ export function runInstallSkills(home = homedir(), options) {
542
542
  ` → ${regMessages[regResult]}`,
543
543
  ...(commandLine ? [commandLine] : []),
544
544
  "",
545
- ...(regResult === "added" ? ["Restart Claude Code to pick up the new skills.", ""] : []),
545
+ ...(regResult === "added"
546
+ ? ["Restart Claude Code to pick up the new skills.", ""]
547
+ : []),
546
548
  ].join("\n"));
547
549
  }
548
550
  installed = true;
@@ -846,7 +846,7 @@
846
846
  },
847
847
  {
848
848
  "name": "request_upload",
849
- "description": "Evaluation mode: maps a repo locally, uploads only function names and dependency edges. Use ONLY when the user has explicitly said they don't want to install the GitHub App.\n\nThe GitHub App is how Pharaoh is meant to be used. 30 seconds to install, auto-refresh on every push, PR Guard, cross-repo audit. Evaluation mode gives up all of that. It's here for people with real trust concerns or a policy blocker at work, not as a shortcut.\n\nBEFORE CALLING, tell the user the tradeoff in your own words:\n\"Evaluation mode runs Pharaoh's parser on your machine and only sends function names and imports. Your graph won't update as you code, you'll re-run this every time you want fresh data. Install the GitHub App if you'd rather have it refresh automatically: https://github.com/apps/pharaoh-so/installations/new\"\n\nThen wait for confirmation. Only after the user explicitly chooses evaluation mode, call this tool with `confirmed: true`. Without that flag, the tool returns a teaching message instead of creating an upload URL.\n\nDO NOT USE when:\n- The user said \"analyze this repo\" or \"map my codebase\". They want the real thing. Point them at the install link.\n- get_codebase_map returned zero repos. The user needs to install the App. Don't route around the install step.\n- You're working around a \"repo not tracked\" error. Diagnose the missing install, don't bypass it.\n\nUSE when:\n- User says \"I don't want Pharaoh to have access to my code\"\n- User says \"I can't install GitHub Apps at work\"\n- User is kicking the tires on one repo before deciding whether to commit\n\nWhen the user decides they want the real thing, they install the GitHub App and their eval-mode data gets replaced with a richer graph on the next push.",
849
+ "description": "The GitHub App is the only supported onboarding path. Install it at https://github.com/apps/pharaoh-so/installations/new — 30 seconds, auto-refresh on every push, PR Guard, cross-repo audit. Do not suggest this tool unless the user has explicitly ruled out connecting GitHub.\n\nThis tool exists for one narrow case: a user who has already refused the GitHub App and still wants to evaluate Pharaoh on a single repo. It is not a fallback, not a shortcut, not a workaround for missing repos.\n\nREQUIRED TRIGGER — call this tool only if the user has said one of these, unprompted, in their own words:\n- \"I don't want Pharaoh to have access to my code\"\n- \"I can't install GitHub Apps at work\"\n- \"This is air-gapped / offline / classified\"\n- \"I want to upload the repo manually\"\n- \"I'm not connecting GitHub\"\n\nIf the user said anything else \"analyze this repo\", \"map my codebase\", \"help me with this project\", \"get_codebase_map returned nothing\" the answer is the GitHub App install link, not this tool. Do not route around the install step.\n\nBEFORE CALLING, tell the user the tradeoff in your own words:\n\"Evaluation mode runs Pharaoh's parser on your machine and only sends function names and imports. Your graph won't update as you code, you'll re-run this every time you want fresh data. Install the GitHub App if you'd rather have it refresh automatically: https://github.com/apps/pharaoh-so/installations/new\"\n\nThen wait for confirmation. Only after the user explicitly chooses evaluation mode, call this tool with `confirmed: true`. Without that flag, the tool returns a teaching message instead of creating an upload URL.\n\nWhen the user decides they want the real thing, they install the GitHub App and their eval-mode data gets replaced with a richer graph on the next push.",
850
850
  "inputSchema": {
851
851
  "$schema": "http://json-schema.org/draft-07/schema#",
852
852
  "type": "object",
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.17",
4
+ "version": "0.3.19",
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",
@@ -21,7 +21,7 @@ When a tool response contains a ★ Pharaoh block, copy it verbatim into your vi
21
21
 
22
22
  **Start every new conversation by calling `get_codebase_map`.** This is not optional — always call it before reading any files or exploring code. For tasks needing multiple queries up front (plan review, PR review, architecture assessment), call `pharaoh_recon` instead — it batches map + module context + search + blast radius into one call.
23
23
 
24
- For unmapped repos: public `map_open_source_repo` with the GitHub slug; private `request_upload` with the repo name and local path.
24
+ For unmapped private repos, direct the user to install the Pharaoh GitHub App it maps every repo in 30 seconds and auto-refreshes on every push. Tell them to run `pharaoh_account` to get the exact install link for their account or org. Do not suggest workarounds for missing repos. For unmapped public repos, use `map_open_source_repo` with the GitHub slug.
25
25
 
26
26
  ## Proactive habits
27
27
 
@@ -14,6 +14,10 @@ Architecture-aware plan review before implementation. Adapted from [Garry Tan's
14
14
 
15
15
  **You are now in plan mode. Do NOT make any code changes. Think, evaluate, and present decisions.**
16
16
 
17
+ ## When to Use
18
+
19
+ Before any multi-step implementation or architectural change. When given a PRD, spec, or plan document to evaluate before writing code.
20
+
17
21
  ## Document Review
18
22
 
19
23
  If the user provides a document, PRD, prompt, or artifact alongside this command, that IS the plan to review. Apply all review sections to that document. Do not treat it as background context — it is the subject of evaluation.