@pharaoh-so/mcp 0.2.12 → 0.3.1
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 +6 -16
- package/dist/helpers.d.ts +1 -0
- package/dist/helpers.js +7 -3
- package/dist/index.js +31 -1
- package/dist/setup.d.ts +7 -0
- package/dist/setup.js +76 -0
- package/package.json +1 -1
- package/skills/audit-tests/SKILL.md +1 -0
- package/skills/brainstorm/SKILL.md +1 -0
- package/skills/debt/SKILL.md +1 -0
- package/skills/debug/SKILL.md +1 -0
- package/skills/execute/SKILL.md +1 -0
- package/skills/explore/SKILL.md +1 -0
- package/skills/finish/SKILL.md +1 -0
- package/skills/health/SKILL.md +1 -0
- package/skills/investigate/SKILL.md +1 -0
- package/skills/onboard/SKILL.md +1 -0
- package/skills/orchestrate/SKILL.md +1 -0
- package/skills/parallel/SKILL.md +1 -0
- package/skills/pharaoh/SKILL.md +5 -4
- package/skills/plan/SKILL.md +1 -0
- package/skills/pr/SKILL.md +1 -0
- package/skills/refactor/SKILL.md +1 -0
- package/skills/review/SKILL.md +1 -0
- package/skills/review-codex/SKILL.md +1 -0
- package/skills/review-receive/SKILL.md +1 -0
- package/skills/sessions/SKILL.md +1 -0
- package/skills/tdd/SKILL.md +1 -0
- package/skills/verify/SKILL.md +1 -0
- package/skills/wiring/SKILL.md +1 -0
- package/skills/worktree/SKILL.md +1 -0
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ This displays a device code and a URL. Open the URL on **any device** (phone, la
|
|
|
26
26
|
### Step 2 — Add to Claude Code
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
|
|
29
|
+
npx @pharaoh-so/mcp --setup
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
Verify the connection:
|
|
@@ -43,19 +43,9 @@ If you previously added Pharaoh as an SSE server, remove it first:
|
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
45
|
claude mcp remove pharaoh
|
|
46
|
-
|
|
46
|
+
npx @pharaoh-so/mcp --setup
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
### Desktop with Browser (Alternative)
|
|
50
|
-
|
|
51
|
-
If you have a browser available (desktop, laptop), you can connect directly via SSE instead:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
claude mcp add --transport sse --scope user pharaoh https://mcp.pharaoh.so/sse
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
This uses OAuth in the browser and doesn't require this package.
|
|
58
|
-
|
|
59
49
|
## How It Works
|
|
60
50
|
|
|
61
51
|
```
|
|
@@ -156,10 +146,10 @@ npx @pharaoh-so/mcp --logout
|
|
|
156
146
|
|
|
157
147
|
### Custom Server
|
|
158
148
|
|
|
159
|
-
For self-hosted Pharaoh instances or development:
|
|
149
|
+
For self-hosted Pharaoh instances or development, register manually:
|
|
160
150
|
|
|
161
151
|
```bash
|
|
162
|
-
claude mcp add pharaoh -- npx @pharaoh-so/mcp --server https://your-pharaoh-instance.com
|
|
152
|
+
claude mcp add --scope user pharaoh -- npx @pharaoh-so/mcp --server https://your-pharaoh-instance.com
|
|
163
153
|
```
|
|
164
154
|
|
|
165
155
|
### Environment Variables
|
|
@@ -213,7 +203,7 @@ npx @pharaoh-so/mcp
|
|
|
213
203
|
Make sure you added it with the correct command:
|
|
214
204
|
|
|
215
205
|
```bash
|
|
216
|
-
|
|
206
|
+
npx @pharaoh-so/mcp --setup
|
|
217
207
|
```
|
|
218
208
|
|
|
219
209
|
Note the `--` separator between `pharaoh` and `npx`.
|
|
@@ -230,7 +220,7 @@ The first run after installation may take a moment as npm downloads the package.
|
|
|
230
220
|
|
|
231
221
|
```bash
|
|
232
222
|
npm install -g @pharaoh-so/mcp
|
|
233
|
-
claude mcp add pharaoh -- pharaoh-mcp
|
|
223
|
+
claude mcp add --scope user pharaoh -- pharaoh-mcp
|
|
234
224
|
```
|
|
235
225
|
|
|
236
226
|
## How Pharaoh Works
|
package/dist/helpers.d.ts
CHANGED
package/dist/helpers.js
CHANGED
|
@@ -8,6 +8,7 @@ export function printLines(...lines) {
|
|
|
8
8
|
export function parseArgs(argv = process.argv.slice(2)) {
|
|
9
9
|
let server = DEFAULT_SERVER;
|
|
10
10
|
let logout = false;
|
|
11
|
+
let setup = false;
|
|
11
12
|
for (let i = 0; i < argv.length; i++) {
|
|
12
13
|
if (argv[i] === "--server" && argv[i + 1]) {
|
|
13
14
|
server = argv[i + 1];
|
|
@@ -16,6 +17,9 @@ export function parseArgs(argv = process.argv.slice(2)) {
|
|
|
16
17
|
else if (argv[i] === "--logout") {
|
|
17
18
|
logout = true;
|
|
18
19
|
}
|
|
20
|
+
else if (argv[i] === "--setup") {
|
|
21
|
+
setup = true;
|
|
22
|
+
}
|
|
19
23
|
}
|
|
20
24
|
// Strip trailing slash
|
|
21
25
|
server = server.replace(/\/+$/, "");
|
|
@@ -37,10 +41,10 @@ export function parseArgs(argv = process.argv.slice(2)) {
|
|
|
37
41
|
printLines(`Pharaoh: --server is not a valid URL: ${server}`);
|
|
38
42
|
process.exit(1);
|
|
39
43
|
}
|
|
40
|
-
return { server, logout };
|
|
44
|
+
return { server, logout, setup };
|
|
41
45
|
}
|
|
42
46
|
export function printUsage() {
|
|
43
|
-
printLines("Usage: pharaoh-mcp [options]", "", "Options:", " --server <url> Pharaoh server URL (default: https://mcp.pharaoh.so)", " --logout Clear stored credentials and exit", " --install-skills Force reinstall Pharaoh skills (Claude Code + OpenClaw)", " --help, -h Show this help", "", "
|
|
47
|
+
printLines("Usage: pharaoh-mcp [options]", "", "Options:", " --setup Full install: auth, register MCP, install skills (start here)", " --server <url> Pharaoh server URL (default: https://mcp.pharaoh.so)", " --logout Clear stored credentials and exit", " --install-skills Force reinstall Pharaoh skills (Claude Code + OpenClaw)", " --help, -h Show this help", "", "Get started:", " npx @pharaoh-so/mcp --setup", "");
|
|
44
48
|
}
|
|
45
49
|
/**
|
|
46
50
|
* Validate that a server-supplied SSE URL shares the same origin as the configured server.
|
|
@@ -96,7 +100,7 @@ export function formatTtl(expiresAt) {
|
|
|
96
100
|
* after auth completes (or when credentials already exist).
|
|
97
101
|
*/
|
|
98
102
|
export function printSetupInstructions() {
|
|
99
|
-
printLines("", "┌───────────────────────────────────────────────────────┐", "│
|
|
103
|
+
printLines("", "┌───────────────────────────────────────────────────────┐", "│ To register Pharaoh in Claude Code, run: │", "│ npx @pharaoh-so/mcp --setup │", "│ │", "│ This removes stale entries, registers the MCP │", "│ server globally, and installs all skills. │", "└───────────────────────────────────────────────────────┘", "");
|
|
100
104
|
}
|
|
101
105
|
/** Format a credential identity string (e.g. "alice (my-org)"). */
|
|
102
106
|
export function formatIdentity(creds) {
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,7 @@ async function main() {
|
|
|
33
33
|
runInstallSkills();
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
const { server, logout } = parseArgs(args);
|
|
36
|
+
const { server, logout, setup } = parseArgs(args);
|
|
37
37
|
if (logout) {
|
|
38
38
|
deleteCredentials();
|
|
39
39
|
printLines("Pharaoh: credentials cleared");
|
|
@@ -41,6 +41,36 @@ async function main() {
|
|
|
41
41
|
}
|
|
42
42
|
const creds = readCredentials();
|
|
43
43
|
const isInteractive = Boolean(process.stdin.isTTY);
|
|
44
|
+
// ── Setup mode (--setup): full automated install ──
|
|
45
|
+
// Auth → remove stale → register MCP → install skills → done.
|
|
46
|
+
if (setup) {
|
|
47
|
+
// Authenticate if needed
|
|
48
|
+
let activeCreds = creds && !isExpired(creds) ? creds : null;
|
|
49
|
+
if (activeCreds) {
|
|
50
|
+
printLines(`Pharaoh: authenticated as ${formatIdentity(activeCreds)} — token valid for ${formatTtl(activeCreds.expires_at)}`);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
printLines("Pharaoh: starting device authorization...");
|
|
54
|
+
const deviceCode = await requestDeviceCode(server);
|
|
55
|
+
printActivationPrompt(deviceCode.user_code, deviceCode.verification_uri);
|
|
56
|
+
const token = await pollForToken(server, deviceCode.device_code, deviceCode.interval);
|
|
57
|
+
if (token.provisional) {
|
|
58
|
+
printLines(`Pharaoh: provisional access — install the GitHub App to map your repos: ${token.install_url ?? ""}`);
|
|
59
|
+
}
|
|
60
|
+
const sseUrl = resolveSseUrl(token.sse_url, server);
|
|
61
|
+
const newCreds = tokenToCredentials(token, sseUrl);
|
|
62
|
+
writeCredentials(newCreds);
|
|
63
|
+
activeCreds = newCreds;
|
|
64
|
+
printAuthSuccess(token.github_login ?? null, token.tenant_name ?? null, token.repos?.length ?? 0);
|
|
65
|
+
}
|
|
66
|
+
// Register MCP server in Claude Code
|
|
67
|
+
const { runSetup } = await import("./setup.js");
|
|
68
|
+
runSetup();
|
|
69
|
+
// Install skills
|
|
70
|
+
runInstallSkills();
|
|
71
|
+
printLines("", "Pharaoh is ready. Start a new Claude Code conversation and ask:", ' "What modules does this codebase have?"', "");
|
|
72
|
+
process.exit(0);
|
|
73
|
+
}
|
|
44
74
|
// ── Interactive mode (user running in a terminal) ──
|
|
45
75
|
// Authenticate if needed, print setup instructions, and exit.
|
|
46
76
|
// The proxy is useless without Claude Code on the other end of stdin.
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full automated setup: remove stale entries, register MCP server globally,
|
|
3
|
+
* install skills. Requires valid credentials (caller handles auth first).
|
|
4
|
+
*
|
|
5
|
+
* @returns true if setup succeeded, false if Claude CLI not found.
|
|
6
|
+
*/
|
|
7
|
+
export declare function runSetup(): boolean;
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* --setup implementation for the Pharaoh MCP proxy CLI.
|
|
3
|
+
*
|
|
4
|
+
* Full automated install: authenticates via device flow, removes stale MCP
|
|
5
|
+
* entries, registers Pharaoh as a global stdio MCP server, and installs skills.
|
|
6
|
+
* One command does everything: `npx @pharaoh-so/mcp --setup`
|
|
7
|
+
*/
|
|
8
|
+
import { execFileSync } from "node:child_process";
|
|
9
|
+
import { printLines } from "./helpers.js";
|
|
10
|
+
/** Check if `claude` CLI is available in PATH. */
|
|
11
|
+
function hasClaude() {
|
|
12
|
+
try {
|
|
13
|
+
const which = process.platform === "win32" ? "where" : "which";
|
|
14
|
+
execFileSync(which, ["claude"], {
|
|
15
|
+
encoding: "utf-8",
|
|
16
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
17
|
+
});
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Run a claude CLI command, returning true on success. Surfaces stderr on failure. */
|
|
25
|
+
function runClaude(args) {
|
|
26
|
+
try {
|
|
27
|
+
execFileSync("claude", args, {
|
|
28
|
+
encoding: "utf-8",
|
|
29
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
30
|
+
timeout: 30_000,
|
|
31
|
+
});
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
if (err && typeof err === "object" && "stderr" in err) {
|
|
36
|
+
const stderr = err.stderr?.toString().trim();
|
|
37
|
+
if (stderr)
|
|
38
|
+
printLines(` claude ${args.slice(0, 3).join(" ")}: ${stderr}`);
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Full automated setup: remove stale entries, register MCP server globally,
|
|
45
|
+
* install skills. Requires valid credentials (caller handles auth first).
|
|
46
|
+
*
|
|
47
|
+
* @returns true if setup succeeded, false if Claude CLI not found.
|
|
48
|
+
*/
|
|
49
|
+
export function runSetup() {
|
|
50
|
+
if (!hasClaude()) {
|
|
51
|
+
printLines("Pharaoh: Claude Code CLI not found.", "", "Install Claude Code first: https://claude.ai/download", "Then re-run: npx @pharaoh-so/mcp --setup", "");
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
printLines("Pharaoh: setting up...");
|
|
55
|
+
// Step 1: Remove any stale entry (ignore failures — may not exist)
|
|
56
|
+
runClaude(["mcp", "remove", "pharaoh"]);
|
|
57
|
+
// Step 2: Register as global stdio MCP server
|
|
58
|
+
const added = runClaude([
|
|
59
|
+
"mcp",
|
|
60
|
+
"add",
|
|
61
|
+
"--scope",
|
|
62
|
+
"user",
|
|
63
|
+
"pharaoh",
|
|
64
|
+
"--",
|
|
65
|
+
"npx",
|
|
66
|
+
"@pharaoh-so/mcp",
|
|
67
|
+
]);
|
|
68
|
+
if (!added) {
|
|
69
|
+
printLines("Pharaoh: failed to register MCP server.", "Try manually: npx @pharaoh-so/mcp --setup", "");
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
printLines("Pharaoh: registered as global MCP server (scope: user)");
|
|
73
|
+
// Step 3: Install skills (handled by caller via runInstallSkills)
|
|
74
|
+
// We just report the MCP registration success here.
|
|
75
|
+
return true;
|
|
76
|
+
}
|
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.
|
|
4
|
+
"version": "0.3.1",
|
|
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",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: audit-tests
|
|
3
|
+
prompt-name: audit-tests
|
|
3
4
|
description: "Classify tests by real value: ceremony versus protection. Mutation score over line coverage — tests that can't detect mutations are theater. Identify tests that prove nothing, tests that duplicate coverage, and gaps where real protection is missing. Produce an actionable audit with keep, rewrite, and delete verdicts."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brainstorm
|
|
3
|
+
prompt-name: brainstorm
|
|
3
4
|
description: "Explore intent, requirements, and design before implementation. Collaborative dialogue to turn ideas into specs. Ask clarifying questions one at a time, propose 2-3 approaches with trade-offs, get approval before writing any code. Prevents wasted work from unexamined assumptions."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/debt/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debt
|
|
3
|
+
prompt-name: find-tech-debt
|
|
3
4
|
description: "Categorized technical debt report using Pharaoh knowledge graph. Four-step pro-tier workflow: dead code detection, duplicate logic discovery, undocumented complex functions via spec gaps, and volatile high-complexity module identification. Categorizes findings as DELETE, CONSOLIDATE, DOCUMENT, STABILIZE, or TEST — each with the specific function or file, effort estimate, and risk of ignoring."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/debug/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debug
|
|
3
|
+
prompt-name: systematic-debugging
|
|
3
4
|
description: "Systematic 4-phase debugging methodology. Root cause investigation before any fixes. Read errors carefully, reproduce consistently, trace data flow, form hypotheses, test minimally. If 3+ fixes fail, question the architecture. No guessing, no quick patches, no symptom fixes."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/execute/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: execute
|
|
3
|
+
prompt-name: execute-plan
|
|
3
4
|
description: "Execute a written implementation plan with review checkpoints. Load plan, review critically, execute tasks sequentially with verification at each step. Stop and ask when blocked — never guess through ambiguity. Finish with branch completion workflow."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/explore/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: explore
|
|
3
|
+
prompt-name: explore-module
|
|
3
4
|
description: "Deep-dive into a single codebase module using Pharaoh knowledge graph. Four-step free-tier workflow: full structure with functions, exports, and complexity scores; blast radius of what depends on it; upstream and downstream dependency mapping; and related function discovery. Produces a module briefing with purpose, key functions, dependencies, risk areas, and external API surface."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/finish/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: finish
|
|
3
|
+
prompt-name: finish-branch
|
|
3
4
|
description: "Complete a development branch after implementation. Verify all tests pass, present structured options (merge locally, create PR, keep branch, or discard), execute the chosen workflow, and clean up worktrees. Never merge broken code or delete work without confirmation."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/health/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: health
|
|
3
|
+
prompt-name: health-check
|
|
3
4
|
description: "Full codebase health sweep using Pharaoh knowledge graph. Six-step pro-tier workflow: module map with metrics, dead code detection, test coverage gaps, duplicate logic, regression risk scoring, and spec drift analysis. Produces an A-F grade, top 5 risks, tech debt hotspots (high-complexity + low-coverage + high-volatility intersections), spec drift summary, and prioritized actions with effort estimates."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: investigate
|
|
3
|
+
prompt-name: investigate-change
|
|
3
4
|
description: "Full architectural context gathering before modifying a function, file, or module using Pharaoh knowledge graph. Four-step free-tier workflow: module structure, blast radius of downstream callers, related function discovery, and dependency mapping. Blocks code suggestions until all context is gathered. Produces an investigation report with structure, blast radius, related functions, dependency context, and risk assessment."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/onboard/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: onboard
|
|
3
|
+
prompt-name: onboard-to-codebase
|
|
3
4
|
description: "Quick codebase orientation using Pharaoh knowledge graph. Five-step workflow using only free-tier tools: full module map, deep-dive into the three largest modules, entry point discovery, critical path blast radius, and core data flow mapping. Produces an onboarding summary with module descriptions, entry points, data flow, and key functions to read first."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orchestrate
|
|
3
|
+
prompt-name: orchestrate-plan
|
|
3
4
|
description: "Execute implementation plans by dispatching one subagent per task with two-stage review (spec compliance then code quality). Sequential task execution with quality gates. Controller stays in session, constructs focused context for each agent, never shares session history. Handles DONE/DONE_WITH_CONCERNS/NEEDS_CONTEXT/BLOCKED status protocol."
|
|
4
5
|
version: 0.2.5
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/parallel/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: parallel
|
|
3
|
+
prompt-name: parallel-agents
|
|
3
4
|
description: "Dispatch 2+ independent subagent tasks that run concurrently. Each agent gets focused scope, clear goal, constraints, and expected output. No shared state between agents. Review and integrate results after all complete."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/pharaoh/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pharaoh
|
|
3
|
+
prompt-name: pharaoh-core
|
|
3
4
|
description: "Codebase knowledge graph — gives AI agents full architectural awareness. Query architecture, dependencies, blast radius, module context, and function search instead of reading files one at a time. Code intelligence via MCP: understand any codebase in seconds."
|
|
4
5
|
version: 0.3.0
|
|
5
6
|
homepage: https://pharaoh.so
|
|
@@ -70,12 +71,12 @@ Full docs at [pharaoh.so/docs](https://pharaoh.so/docs).
|
|
|
70
71
|
|
|
71
72
|
## Connection options
|
|
72
73
|
|
|
73
|
-
**
|
|
74
|
+
**CLI** (Claude Code, OpenClaw — works everywhere):
|
|
74
75
|
```
|
|
75
|
-
|
|
76
|
+
npx @pharaoh-so/mcp --setup
|
|
76
77
|
```
|
|
77
78
|
|
|
78
|
-
**
|
|
79
|
+
**URL** (Claude.ai, Cursor, ChatGPT — paste in settings):
|
|
79
80
|
```
|
|
80
|
-
|
|
81
|
+
https://mcp.pharaoh.so/sse
|
|
81
82
|
```
|
package/skills/plan/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan
|
|
3
|
+
prompt-name: plan-with-pharaoh
|
|
3
4
|
description: "Full-cycle architecture-aware planning: Pharaoh reconnaissance, structured plan writing with bite-sized TDD steps and zero placeholders, then deep adversarial review with wiring verification and interactive issue resolution. Replaces both writing-plans and plan-review."
|
|
4
5
|
version: 0.3.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/pr/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pr
|
|
3
|
+
prompt-name: pre-pr-review
|
|
3
4
|
description: "Pre-pull-request architectural review checklist using Pharaoh codebase knowledge graph. Covers module context, blast radius per touched module, hidden coupling between modules, duplicate logic detection, regression risk scoring, and vision spec alignment. Produces a structured review summary before opening a PR."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/refactor/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: refactor
|
|
3
|
+
prompt-name: safe-refactor
|
|
3
4
|
description: "Safe refactoring workflow using Pharaoh codebase knowledge graph. Six-step process: module context, blast radius of downstream callers, reachability verification, dependency mapping, naming conflict detection, and test coverage assessment. Produces a refactoring plan with every caller listed, test files identified, unreachable code flagged, and high-risk paths warned."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/review/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review
|
|
3
|
+
prompt-name: review-with-pharaoh
|
|
3
4
|
description: "Architecture-aware pre-PR code review using Pharaoh codebase knowledge graph. Four-phase workflow: context gathering with module structure and blast radius, risk assessment with regression scoring and wiring checks, spec alignment against vision docs, and a final verdict of SHIP / SHIP WITH CHANGES / BLOCK. Auto-block rules for unreachable exports, circular dependencies, high regression risk, and spec violations."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-codex
|
|
3
|
+
prompt-name: cross-model-review
|
|
3
4
|
description: "Cross-model security review. Dispatch code to a different AI model or subagent for independent second-opinion review. Evaluator applies AGREE, DISAGREE, or CONTEXT verdicts to each finding. Catches blind spots from single-model reasoning. Use for security-sensitive code, auth flows, data access, and architectural decisions."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-receive
|
|
3
|
+
prompt-name: receive-code-review
|
|
3
4
|
description: "Receive code review feedback with technical rigor. No performative agreement — verify suggestions against codebase reality before implementing. Push back with evidence when feedback is wrong. Clarify all unclear items before implementing any. External feedback is suggestions to evaluate, not orders to follow."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/sessions/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sessions
|
|
3
|
+
prompt-name: session-decomposition
|
|
3
4
|
description: "Decompose work into parallel, isolated sessions using git worktrees. Each session gets fresh context, a narrow scope, and produces atomic commits. Prevents context window pollution from large tasks. Coordinate across sessions without shared state."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/tdd/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tdd
|
|
3
|
+
prompt-name: test-driven-development
|
|
3
4
|
description: "Test-driven development discipline. Write the failing test first, watch it fail, write minimal code to pass, refactor. No production code without a failing test. No exceptions without explicit permission. Covers red-green-refactor cycle, common rationalizations, and when to start over."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/verify/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: verify
|
|
3
|
+
prompt-name: verification
|
|
3
4
|
description: "Evidence before assertions. Run verification commands and confirm output before claiming work is complete, fixed, or passing. No 'should work now' — run the command, read the output, then claim the result. Covers tests, builds, linting, agent delegation, and requirement checklists."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/wiring/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wiring
|
|
3
|
+
prompt-name: validate-wiring
|
|
3
4
|
description: "Wiring validation for a codebase module using Pharaoh knowledge graph. Four-step pro-tier workflow: entry point reachability, caller verification via blast radius, test coverage per function, and dead code detection. Categorizes functions as CONNECTED, UNREACHABLE, DEAD, or UNTESTED. Produces a PASS or FAIL verdict with specific issues listed. Iron law: zero callers on a non-entry-point export means the code is not wired."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|
package/skills/worktree/SKILL.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: worktree
|
|
3
|
+
prompt-name: git-worktree
|
|
3
4
|
description: "Set up isolated git worktrees for feature work. Smart directory selection with safety verification — checks for existing worktree directories, verifies gitignore, auto-detects project setup, and confirms clean test baseline before starting. Prevents accidentally committing worktree contents."
|
|
4
5
|
version: 0.2.0
|
|
5
6
|
homepage: https://pharaoh.so
|