@pathmode/mcp-server 1.26.1 → 1.26.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 +28 -2
- package/dist/index.js +2 -2
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/README.md +1 -1
- package/skills/compile-intent/SKILL.md +4 -0
- package/skills/grill-intent/SKILL.md +3 -1
package/README.md
CHANGED
|
@@ -131,8 +131,11 @@ Restart Claude Code. The skills register at session start and auto-invoke when y
|
|
|
131
131
|
|
|
132
132
|
| Tool | Description |
|
|
133
133
|
|------|-------------|
|
|
134
|
+
| `check_intent_readiness` | The deterministic preflight: six calibrated gates, no model call, the same spec always gets the same verdict. With no arguments it resolves the `intent.md` bound to this repository |
|
|
135
|
+
| `confirm_intent_dimension` | Resolve a dimension the gate READ but could not confirm (it matches a fixed English vocabulary and misses valid phrasing, including other languages), or waive one as not applicable |
|
|
134
136
|
| `intent_save` | Save an intent spec to `intent.md` in the project root |
|
|
135
137
|
| `intent_export` | Export as `.cursorrules`, a `CLAUDE.md` or `AGENTS.md` section, or an Outcomes rubric |
|
|
138
|
+
| `intent_import` | Adopt an existing OpenSpec change as the intent record; the change folder is never modified |
|
|
136
139
|
|
|
137
140
|
### Intent Compiler Prompt
|
|
138
141
|
|
|
@@ -245,8 +248,9 @@ Pass `--local` only to force local mode when an API key *is* configured:
|
|
|
245
248
|
| `propose_spec_change` | Propose an exact, revision-bound correction for a person to accept; stores the observation as unreviewed agent evidence |
|
|
246
249
|
| `list_intents` | List all intents, optionally filtered by status |
|
|
247
250
|
| `search_intents` | Search intents by keyword across goals, objectives, and outcomes |
|
|
248
|
-
| `
|
|
249
|
-
| `
|
|
251
|
+
| `create_intent` | Create an intent in the workspace without writing a file. Inside a repo prefer `intent_save` |
|
|
252
|
+
| `update_intent` | Update an existing intent's content; pass only the fields you want to change |
|
|
253
|
+
| `update_intent_status` | Move an intent through draft > validated > approved > shipped > verified. **Not for work delivered by pull request:** name the intent on the branch or in the PR body and let the merge grade the real diff and set shipped. Use it for work that never appears in a PR, and for shipped > verified once the outcome is confirmed in production |
|
|
250
254
|
|
|
251
255
|
#### PM-to-Repository Change Requests
|
|
252
256
|
|
|
@@ -260,6 +264,27 @@ Apply a request by editing `intent.md`, then call `intent_save` with both `chang
|
|
|
260
264
|
`baseRepoBodyRevision`. Pathmode compares immutable snapshots and closes the request itself; an
|
|
261
265
|
agent cannot submit a success flag or diff.
|
|
262
266
|
|
|
267
|
+
#### Delivery & Verification
|
|
268
|
+
|
|
269
|
+
| Tool | Description |
|
|
270
|
+
|------|-------------|
|
|
271
|
+
| `verify_implementation` | Grade an implementation against the spec by reading the pull request. Pass `prUrl` and Pathmode fetches the diff itself, grading each outcome, constraint, constitution rule, edge case and verification check against what the code actually shows, with citations. Describing your own work instead is weaker evidence and the result says so |
|
|
272
|
+
| `record_implementation_finding` | The spec was wrong: record what it assumed and what building revealed. Targeting a verification check flips that check to failing. Open findings ride into future agent prompts until a human reconciles them |
|
|
273
|
+
| `record_implementation_context` | Hand back what the repo actually looks like where this intent lands: files and modules involved, how it behaves today, what a change would risk, how to verify it |
|
|
274
|
+
| `record_outcome_measurement` | What actually happened to an outcome after it shipped. The spec said what should change; this says whether it did |
|
|
275
|
+
| `log_implementation_note` | The handoff to the next session. The newest notes render into the next agent's execution prompt, so write each one self-contained |
|
|
276
|
+
|
|
277
|
+
An agent never settles its own delivery. The merge owns the shipped transition for PR-delivered work,
|
|
278
|
+
and a proposed correction (`propose_spec_change`) waits for a signed-in person to accept it.
|
|
279
|
+
|
|
280
|
+
#### Evidence
|
|
281
|
+
|
|
282
|
+
| Tool | Description |
|
|
283
|
+
|------|-------------|
|
|
284
|
+
| `query_evidence` | Search evidence items by product, type, severity, or text; returns IDs that can be linked to intents |
|
|
285
|
+
| `create_evidence` | Create an evidence item: a discovered bug, a user quote, a behavioral observation, a feature request |
|
|
286
|
+
| `link_evidence` | Link or unlink evidence to an intent, establishing traceability between user problems and planned solutions |
|
|
287
|
+
|
|
263
288
|
#### Strategic Analysis
|
|
264
289
|
|
|
265
290
|
| Tool | Description |
|
|
@@ -275,6 +300,7 @@ agent cannot submit a success flag or diff.
|
|
|
275
300
|
| `get_agent_prompt` | Get a structured execution prompt for an intent |
|
|
276
301
|
| `get_workspace` | Get workspace details including strategy, active products, and constitution |
|
|
277
302
|
| `get_constitution` | Get mandatory constraint rules for the workspace |
|
|
303
|
+
| `sync_context` | Write this workspace's canonical context into the repo's `CLAUDE.md` or `AGENTS.md`, idempotently, replacing the PATHMODE-marked section in place |
|
|
278
304
|
|
|
279
305
|
#### Team Prompts
|
|
280
306
|
|
package/dist/index.js
CHANGED
|
@@ -72903,7 +72903,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"$schema":"http://json-schema.org/dra
|
|
|
72903
72903
|
/***/ ((module) => {
|
|
72904
72904
|
|
|
72905
72905
|
"use strict";
|
|
72906
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@pathmode/mcp-server","version":"1.26.
|
|
72906
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@pathmode/mcp-server","version":"1.26.3","publishConfig":{"access":"public"},"mcpName":"io.github.pathmodeio/mcp-server","description":"Deterministic intent preflight before your agent builds: six calibrated gates, keyless, no model call. Draft and sharpen specs in conversation, or connect a Pathmode workspace to sync intent and evidence across a team.","main":"dist/index.js","bin":{"pathmode-mcp":"dist/index.js"},"files":["dist/","manifest.json","icon.svg","README.md","skills/"],"scripts":{"build":"rm -rf dist && ncc build src/index.ts -o dist","dev":"ts-node src/index.ts","prepublishOnly":"npm run build"},"keywords":["pathmode","mcp","model-context-protocol","claude-code","claude-code-skills","agent-skills","cursor","windsurf","intent-engineering","intent-compiler","ai-agents","product-development","dependency-graph","strategic-planning"],"author":"Pathmode","license":"MIT","type":"commonjs","engines":{"node":">=18.0.0"},"homepage":"https://pathmode.io","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","gray-matter":"^4.0.3","zod":"^3.24.0"},"overrides":{"@hono/node-server":"^1.19.17","body-parser":"^2.3.0","fast-uri":"^3.1.6","hono":"^4.13.5","ip-address":"^10.7.0","js-yaml":"^3.15.2"},"devDependencies":{"@types/node":"^25.1.0","@vercel/ncc":"^0.38.4","ts-node":"^10.9.2","typescript":"^5.9.3"}}');
|
|
72907
72907
|
|
|
72908
72908
|
/***/ })
|
|
72909
72909
|
|
|
@@ -74075,7 +74075,7 @@ function startMcpServer() {
|
|
|
74075
74075
|
liftEstimate: zod_1.z.enum(['low', 'medium', 'high']).optional().describe('Rough size of the change.'),
|
|
74076
74076
|
risks: zod_1.z.array(zod_1.z.string()).optional().describe('What a change here could break. Reaches the implementing agent as prose; it does NOT become a grading criterion until a human promotes it, because you would otherwise be writing the rubric you are graded against.'),
|
|
74077
74077
|
verificationSuggestions: zod_1.z.array(zod_1.z.string()).optional().describe('Checks worth running. Same promotion rule as risks.'),
|
|
74078
|
-
expectedSpecVersion: zod_1.z.string().optional().describe('The
|
|
74078
|
+
expectedSpecVersion: zod_1.z.string().optional().describe('The specVersion from the get_intent (or intent_save) read you gathered this against. Carry it back verbatim, never compute it. If the spec has moved since, the write is refused with 409 rather than attaching a description of a spec that no longer exists.'),
|
|
74079
74079
|
},
|
|
74080
74080
|
}, async ({ intentId, ...input }) => {
|
|
74081
74081
|
if (isLocalMode) {
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "pathmode",
|
|
4
4
|
"display_name": "Pathmode",
|
|
5
|
-
"version": "1.26.
|
|
5
|
+
"version": "1.26.3",
|
|
6
6
|
"description": "Deterministic preflight for the intent you hand to a coding agent: six calibrated gates, the exact blockers named, no model call, no key needed.",
|
|
7
7
|
"long_description": "Pathmode MCP Server runs a deterministic preflight before your coding agent builds: check_intent_readiness scores an intent spec against six calibrated gates (title, objective, outcomes, constraints, edge cases, verification) and names the exact blockers, with no model call and no account. Keyless local mode works out of the box; specs live in intent.md in your repo, plain markdown you own, and skills for drafting, pressure-testing, and handing off intent ride along. Connect a Pathmode workspace with an API key to sync intent and evidence across a team, analyze dependency graphs, and verify pull requests against the outcomes you agreed to.",
|
|
8
8
|
"author": {
|
package/package.json
CHANGED
package/skills/README.md
CHANGED
|
@@ -50,7 +50,7 @@ You don't need to remember `/compile-intent` — just talk in plain English.
|
|
|
50
50
|
|
|
51
51
|
## Skills + MCP
|
|
52
52
|
|
|
53
|
-
Each skill orchestrates calls to the @pathmode/mcp-server. The MCP server is the engine —
|
|
53
|
+
Each skill orchestrates calls to the @pathmode/mcp-server. The MCP server is the engine — 9 tools keyless and 32 with a workspace connected, evidence handling, Socratic preamble, dependency graphs. The skills are the auto-trigger surface on top.
|
|
54
54
|
|
|
55
55
|
You can also invoke the underlying MCP prompts directly via slash commands:
|
|
56
56
|
|
|
@@ -51,6 +51,10 @@ status: "draft"
|
|
|
51
51
|
|
|
52
52
|
If `PATHMODE_API_KEY` is set, the spec also syncs to the user's Pathmode workspace and becomes visible to other team members and other agents.
|
|
53
53
|
|
|
54
|
+
## Evidence in a file that lives in git
|
|
55
|
+
|
|
56
|
+
`intent.md` is committed, so everyone who clones the repo can read it forever and deleting a line later does not remove it from history. Under the IntentSpec repo-safe profile the file must not carry raw customer quotes, names or contact details of individuals, support transcripts, confidential internal metrics, or credentials. Cite evidence as a summary or a reference instead: a ticket id, a dashboard name, a one-line paraphrase. Full evidence with quotes and attribution belongs in the private system of record (a connected Pathmode workspace), and the repo file points back at it. A claim with no evidence yet is labelled an assumption, not dressed as a fact.
|
|
57
|
+
|
|
54
58
|
## Downstream skills
|
|
55
59
|
|
|
56
60
|
After compiling, these skills consume the spec:
|
|
@@ -19,12 +19,14 @@ Stop when all five dimensions below pass, or the user explicitly accepts a known
|
|
|
19
19
|
|
|
20
20
|
## The five dimensions
|
|
21
21
|
|
|
22
|
-
1. **Objective** — Does it name who is harmed? Is it specific enough to disqualify other interpretations?
|
|
22
|
+
1. **Objective** — Does it name who is harmed? Is it specific enough to disqualify other interpretations? Is it a problem, or a solution in disguise? ("Add a dropdown" is a solution; "members cannot switch products without leaving their work" is a problem.)
|
|
23
23
|
2. **Outcomes** — Are they observable state changes, not activities? Could someone verify this in 5 minutes without asking the spec author?
|
|
24
24
|
3. **Edge cases** — Are they real edge cases, or restatements of the outcome failing?
|
|
25
25
|
4. **Constraints** — What must NEVER happen? An intent with zero constraints has no teeth.
|
|
26
26
|
5. **Contradictions** — Do any two fields imply opposite things?
|
|
27
27
|
|
|
28
|
+
Alongside the five, check scope. More than about seven outcomes usually means several intents; split before building. One outcome and no edge cases is usually a task, not an intent.
|
|
29
|
+
|
|
28
30
|
## Stop conditions
|
|
29
31
|
|
|
30
32
|
- All five dimensions pass — the spec is agent-ready
|