@pathmode/mcp-server 1.23.0 → 1.25.0

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 CHANGED
@@ -241,6 +241,8 @@ Pass `--local` only to force local mode when an API key *is* configured:
241
241
  |------|-------------|
242
242
  | `get_current_intent` | Get the active intent (first approved, or most recent) |
243
243
  | `get_intent` | Get a single intent by ID with full details |
244
+ | `get_intent_evidence` | Dereference one intent's repo-safe evidence IDs with trust tiers |
245
+ | `propose_spec_change` | Propose an exact, revision-bound correction for a person to accept; stores the observation as unreviewed agent evidence |
244
246
  | `list_intents` | List all intents, optionally filtered by status |
245
247
  | `search_intents` | Search intents by keyword across goals, objectives, and outcomes |
246
248
  | `update_intent_status` | Update intent status (draft > validated > approved > shipped > verified) |
package/dist/index.js CHANGED
@@ -39892,6 +39892,15 @@ class PathmodeClient {
39892
39892
  if (!response.ok) {
39893
39893
  const body = await response.json().catch(() => ({ error: response.statusText }));
39894
39894
  console.error(`[pathmode-mcp] API error ${response.status}: ${body.error || response.statusText}`);
39895
+ // A 403 with a server code is a policy answer (SESSION_REQUIRED, REPO_OWNED_FIELDS, …),
39896
+ // not a rejected key: relay it verbatim instead of telling the agent to re-run setup.
39897
+ if (response.status === 403 && body.code) {
39898
+ throw new Error(`API error (403) [${body.code}]: ${body.error || response.statusText}`);
39899
+ }
39900
+ // Validation failures carry field-level details; relay them so the agent can fix the call.
39901
+ if (response.status === 400 && body.details) {
39902
+ throw new Error(`API error (400)${body.code ? ` [${body.code}]` : ''}: ${body.error || 'Invalid request'} ${JSON.stringify(body.details)}`);
39903
+ }
39895
39904
  // A rejected key is the sharpest first-run cliff: with a stale key EVERY tool
39896
39905
  // fails, and the agent relays this error verbatim, so the error must carry its
39897
39906
  // own fix. (No fallback to local mode here: silently ignoring a configured key
@@ -39999,6 +40008,16 @@ class PathmodeClient {
39999
40008
  const res = await this.fetch(`/intents/${id}`);
40000
40009
  return res.json();
40001
40010
  }
40011
+ /**
40012
+ * The evidence an intent cites, resolved server-side through the trust contract: excluded
40013
+ * (archived/dismissed) items never appear, every item carries `tier`, and `evidenceTiers` is
40014
+ * computed over the same cited set. Replaces paging the product pool, which could miss older
40015
+ * citations and disagree with the intent's own tier counts.
40016
+ */
40017
+ async getIntentEvidence(id) {
40018
+ const res = await this.fetch(`/intents/${id}/evidence`);
40019
+ return res.json();
40020
+ }
40002
40021
  async completeRepoOnboarding(sessionId, intentId) {
40003
40022
  const res = await this.fetch('/onboarding/repo/complete', {
40004
40023
  method: 'POST',
@@ -40103,12 +40122,26 @@ class PathmodeClient {
40103
40122
  });
40104
40123
  return res.json();
40105
40124
  }
40106
- async listIntentChangeRequests(intentId, status = 'open') {
40107
- const res = await this.fetch(`/intents/${intentId}/change-requests?status=${encodeURIComponent(status)}`);
40125
+ async listIntentChangeRequests(intentId, status = 'open', include = 'consumable') {
40126
+ const res = await this.fetch(`/intents/${intentId}/change-requests?status=${encodeURIComponent(status)}&include=${include}`);
40108
40127
  return res.json();
40109
40128
  }
40110
- async listWorkspaceIntentChangeRequests(status = 'open') {
40111
- const res = await this.fetch(`/change-requests?status=${encodeURIComponent(status)}`);
40129
+ async listWorkspaceIntentChangeRequests(status = 'open', include = 'consumable') {
40130
+ const res = await this.fetch(`/change-requests?status=${encodeURIComponent(status)}&include=${include}`);
40131
+ return res.json();
40132
+ }
40133
+ /**
40134
+ * Agent-proposed correction (agent-proposed-corrections.md): records a structured proposal
40135
+ * against one exact base revision, answering an implementation finding. The server stores it
40136
+ * as a change request the repository agent may NOT consume until a signed-in person accepts
40137
+ * it, and writes one origin='agent' evidence row anchored to the claim. Nothing in the spec
40138
+ * changes as a result of this call.
40139
+ */
40140
+ async proposeSpecChange(intentId, body) {
40141
+ const res = await this.fetch(`/intents/${intentId}/change-requests`, {
40142
+ method: 'POST',
40143
+ body: JSON.stringify(body),
40144
+ });
40112
40145
  return res.json();
40113
40146
  }
40114
40147
  async getIntentChangeRequest(intentId, requestId) {
@@ -72866,7 +72899,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"$schema":"http://json-schema.org/dra
72866
72899
  /***/ ((module) => {
72867
72900
 
72868
72901
  "use strict";
72869
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@pathmode/mcp-server","version":"1.23.0","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"}}');
72902
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@pathmode/mcp-server","version":"1.25.0","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"}}');
72870
72903
 
72871
72904
  /***/ })
72872
72905
 
@@ -73239,6 +73272,9 @@ function startMcpServer() {
73239
73272
  citedCount: collectCitedEvidenceIds(intent).length,
73240
73273
  linkedCount: (intent?.evidenceIds || []).length,
73241
73274
  anchoredSections: Object.keys(intent?.evidenceAnchors || {}).length,
73275
+ // Trust tiers (evidence-trust-contract.md): only `backing` is human-reviewed evidence;
73276
+ // `unreviewed` was captured but not reviewed; `assumption` is an AI-drafted hypothesis.
73277
+ tiers: intent?.evidenceTiers ?? undefined,
73242
73278
  note: 'Evidence is referenced by ID. Call get_agent_prompt for the full evidence-backed execution prompt, or re-call get_current_intent with include_evidence=true to inline the evidence content and get per-tier (backing/unreviewed/assumption) counts.',
73243
73279
  };
73244
73280
  }
@@ -73282,25 +73318,21 @@ function startMcpServer() {
73282
73318
  const current = listed?.id
73283
73319
  ? (await cloud.getIntent(listed.id).catch(() => listed))
73284
73320
  : listed;
73285
- // Default: a fetch-free coverage summary (no extra API call). On request: the cited
73286
- // evidence content, fetched once for the product and filtered to this intent's citations.
73321
+ // Default: a fetch-free coverage summary (no extra API call). On request: resolve exactly
73322
+ // this intent's cited evidence through the trust-contract endpoint.
73287
73323
  const evidenceSummary = summarizeCitedEvidence(current);
73288
73324
  let evidence;
73289
73325
  let evidenceTiers;
73290
73326
  let unresolvedEvidenceIds;
73291
- if (include_evidence && current?.productId) {
73327
+ if (include_evidence && current?.id) {
73292
73328
  const cited = collectCitedEvidenceIds(current);
73293
73329
  if (cited.length > 0) {
73294
- // Pull up to the API max (200) and filter to this intent's citations. A cited item
73295
- // older than that page won't resolve surface it as unresolvedEvidenceIds rather
73296
- // than silently returning an incomplete evidence block. The API excludes dismissed
73297
- // (excluded-tier) evidence by default, so nothing further is filtered out here.
73298
- const { evidence: pool } = await cloud.queryEvidence({ productId: current.productId, limit: 200 });
73299
- const found = new Map(pool.map(e => [e.id, e]));
73300
- const items = cited
73301
- .map(id => found.get(id))
73302
- .filter((e) => !!e)
73303
- .map(e => ({
73330
+ // One handoff call: the server resolves exactly this intent's citations through the
73331
+ // trust contract (lib/evidence/evidenceTier.ts owns tiering; this package applies no
73332
+ // policy of its own), so nothing is lost to paging and the tier totals here are the
73333
+ // same numbers the intent endpoint reports. The server records the exposure.
73334
+ const resolved = await cloud.getIntentEvidence(current.id);
73335
+ const items = resolved.evidence.map(e => ({
73304
73336
  id: e.id,
73305
73337
  type: e.type,
73306
73338
  content: e.content.length > 200 ? `${e.content.slice(0, 200)}…` : e.content,
@@ -73310,24 +73342,14 @@ function startMcpServer() {
73310
73342
  triageStatus: e.triageStatus,
73311
73343
  tier: e.tier,
73312
73344
  }));
73313
- // Group by trust tier — backing first, then unreviewed, then assumption. This
73314
- // package trusts the `tier` the API computed server-side (lib/evidence/evidenceTier.ts
73315
- // owns tiering) and applies no policy of its own; an item without a tier (should not
73316
- // happen once the deploy carries the trust-contract API) falls back to 'unreviewed'
73317
- // rather than being silently dropped.
73318
73345
  evidence = { backing: [], unreviewed: [], assumption: [] };
73319
73346
  for (const item of items) {
73320
73347
  const t = item.tier === 'backing' || item.tier === 'assumption' ? item.tier : 'unreviewed';
73321
73348
  evidence[t].push(item);
73322
73349
  }
73323
- evidenceTiers = {
73324
- backing: evidence.backing.length,
73325
- unreviewed: evidence.unreviewed.length,
73326
- assumption: evidence.assumption.length,
73327
- };
73328
- const missing = cited.filter(id => !found.has(id));
73329
- if (missing.length > 0)
73330
- unresolvedEvidenceIds = missing;
73350
+ evidenceTiers = resolved.evidenceTiers;
73351
+ if (resolved.unresolvedEvidenceIds.length > 0)
73352
+ unresolvedEvidenceIds = resolved.unresolvedEvidenceIds;
73331
73353
  }
73332
73354
  }
73333
73355
  return { content: [{ type: 'text', text: JSON.stringify({ ...current, evidenceSummary, ...(evidence ? { evidence, evidenceTiers } : {}), ...(unresolvedEvidenceIds ? { unresolvedEvidenceIds } : {}) }, null, 2) }] };
@@ -73379,19 +73401,31 @@ function startMcpServer() {
73379
73401
  return { content: [{ type: 'text', text: `Failed to fetch intent: ${e.message}` }] };
73380
73402
  }
73381
73403
  });
73404
+ cloudOnly.registerTool('get_intent_evidence', {
73405
+ title: 'Get Intent Evidence',
73406
+ description: 'Resolve the evidence cited by one intent using its full ID. Returns handoff-visible items with server-computed trust tiers and exact tier counts. Use this to dereference evidence IDs carried by repo-safe intent.md, CLAUDE.md, AGENTS.md, and .cursorrules files.',
73407
+ inputSchema: {
73408
+ intentId: zod_1.z.string().describe('The full intent ID whose cited evidence should be resolved'),
73409
+ },
73410
+ annotations: READ_ONLY,
73411
+ }, async ({ intentId }) => {
73412
+ const resolved = await requireCloudClient().getIntentEvidence(intentId);
73413
+ return { content: [{ type: 'text', text: JSON.stringify(resolved, null, 2) }] };
73414
+ });
73382
73415
  cloudOnly.registerTool('list_intent_change_requests', {
73383
73416
  title: 'List Intent Change Requests',
73384
73417
  description: 'List structured PM requests waiting on this repository. Omit intentId to discover open requests across the connected workspace; pass it to narrow to one intent. Read these before editing intent.md. Each open request is bound to one baseRepoBodyRevision; pass its id and base revision to intent_save when you deliberately apply it.',
73385
73418
  inputSchema: {
73386
73419
  intentId: zod_1.z.string().optional().describe('Repository-authority intent to inspect. Omit to list workspace-wide.'),
73387
73420
  status: zod_1.z.enum(['open', 'applied', 'rejected', 'withdrawn', 'superseded', 'all']).optional().describe('Lifecycle filter; defaults to open'),
73421
+ include: zod_1.z.enum(['consumable', 'proposals', 'all']).optional().describe('consumable (default) = PM judgment you may act on; proposals = your own pending propose_spec_change proposals awaiting a human; all = both. Only act on rows with consumable=true.'),
73388
73422
  },
73389
73423
  annotations: READ_ONLY,
73390
- }, async ({ intentId, status }) => {
73424
+ }, async ({ intentId, status, include }) => {
73391
73425
  const cloud = requireCloudClient();
73392
73426
  const result = intentId
73393
- ? await cloud.listIntentChangeRequests(intentId, status ?? 'open')
73394
- : await cloud.listWorkspaceIntentChangeRequests(status ?? 'open');
73427
+ ? await cloud.listIntentChangeRequests(intentId, status ?? 'open', include ?? 'consumable')
73428
+ : await cloud.listWorkspaceIntentChangeRequests(status ?? 'open', include ?? 'consumable');
73395
73429
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
73396
73430
  });
73397
73431
  cloudOnly.registerTool('get_intent_change_request', {
@@ -73424,6 +73458,49 @@ function startMcpServer() {
73424
73458
  }],
73425
73459
  };
73426
73460
  });
73461
+ const proposeSpecChangeTargetField = zod_1.z.enum([
73462
+ 'title', 'severity', 'objective', 'currentState', 'outcomes', 'scope.inScope', 'scope.outOfScope',
73463
+ 'constraints', 'healthMetrics', 'edgeCases', 'decisions', 'verification', 'implementationContext',
73464
+ ]);
73465
+ cloudOnly.registerTool('propose_spec_change', {
73466
+ title: 'Propose Spec Change',
73467
+ description: 'Propose an exact correction to the intent when building it revealed the spec is wrong. This records a proposal for a signed-in person to accept or reject; it does NOT change the spec, and you must not implement against the proposed value until list_intent_change_requests shows the request with consumable=true. Pair it with the implementation finding behind it (findingId from record_implementation_finding, or record the finding inline). The observation is also stored as unreviewed agent evidence anchored to the claim it concerns. Use intent_save only for PM requests you were asked to apply, never for your own proposal.',
73468
+ inputSchema: {
73469
+ intentId: zod_1.z.string().describe('The repository-authority intent'),
73470
+ baseRepoBodyRevision: zod_1.z.string().regex(/^[a-f0-9]{64}$/i).describe('The exact repoBodyRevision you read; the proposal is bound to it'),
73471
+ targetField: proposeSpecChangeTargetField.describe('Which part of the spec the correction targets'),
73472
+ targetItemId: zod_1.z.string().optional().describe('Stable item id for outcomes / edgeCases / decisions / verification checks'),
73473
+ operation: zod_1.z.enum(['replace', 'add', 'remove']).describe('Scalars support replace only'),
73474
+ expectedOldValue: zod_1.z.any().optional().describe('The current value as you read it (required for replace/remove without a stable id); a mismatch is refused, never silently rebased'),
73475
+ proposedValue: zod_1.z.any().optional().describe('The corrected value (required for replace/add)'),
73476
+ reason: zod_1.z.string().trim().min(1).max(4_000).describe('The contradiction: what building it revealed and why the spec should change (max 4000 chars)'),
73477
+ findingId: zod_1.z.string().optional().describe('Id of a finding you already recorded with record_implementation_finding'),
73478
+ finding: zod_1.z.object({
73479
+ assumption: zod_1.z.string().trim().min(1),
73480
+ finding: zod_1.z.string().trim().min(1),
73481
+ target: zod_1.z.string().optional(),
73482
+ source: zod_1.z.string().optional(),
73483
+ }).optional().describe('Record the finding inline instead of passing findingId'),
73484
+ sourceUrl: zod_1.z.string().url().refine(u => /^https?:\/\//i.test(u), 'sourceUrl must be an http(s) URL').optional().describe('PR or commit link for the observation (http/https)'),
73485
+ },
73486
+ annotations: WRITE_OP,
73487
+ }, async ({ intentId, ...body }) => {
73488
+ if (!body.findingId && !body.finding) {
73489
+ return { content: [{ type: 'text', text: 'A proposal must answer an implementation finding: pass findingId (from record_implementation_finding) or record the finding inline with `finding`.' }] };
73490
+ }
73491
+ const result = await requireCloudClient().proposeSpecChange(intentId, body);
73492
+ const cr = result.changeRequest;
73493
+ return {
73494
+ content: [{
73495
+ type: 'text',
73496
+ text: [
73497
+ `Proposal ${cr.id} recorded against revision ${cr.baseRepoBodyRevision} (${cr.operation} ${cr.targetField}${cr.targetItemId ? ` ${cr.targetItemId}` : ''}).`,
73498
+ `Adjudication: ${cr.adjudication ?? 'pending'}. A signed-in person must accept it before the repository agent may apply it; keep implementing against the current authorized revision.`,
73499
+ cr.evidenceItemId ? `The observation is stored as unreviewed agent evidence ${cr.evidenceItemId}, anchored to the claim.` : 'The proposal was stored; the evidence row could not be written.',
73500
+ ].join('\n'),
73501
+ }],
73502
+ };
73503
+ });
73427
73504
  const outcomeInputShape = zod_1.z.union([
73428
73505
  zod_1.z.string().trim().min(1),
73429
73506
  zod_1.z.object({
@@ -73801,10 +73878,38 @@ function startMcpServer() {
73801
73878
  return { content: [{ type: 'text', text: 'Agent prompts require cloud mode for full context generation.' }] };
73802
73879
  }
73803
73880
  const cloud = requireCloudClient();
73804
- const [result, openRequests] = await Promise.all([
73881
+ // Fail CLOSED: if change-request state cannot be read, the prompt must say so and block
73882
+ // implementation rather than silently presenting the intent as free of open requests.
73883
+ let requestStateUnavailable = false;
73884
+ const unavailable = () => { requestStateUnavailable = true; return { changeRequests: [], count: 0 }; };
73885
+ const [result, openRequests, pendingProposals] = await Promise.all([
73805
73886
  cloud.getIntentPrompt(intentId, 'claude-code', mode || 'execute'),
73806
- cloud.listIntentChangeRequests(intentId, 'open').catch(() => ({ changeRequests: [], count: 0 })),
73887
+ cloud.listIntentChangeRequests(intentId, 'open', 'consumable').catch(unavailable),
73888
+ cloud.listIntentChangeRequests(intentId, 'open', 'proposals').catch(unavailable),
73807
73889
  ]);
73890
+ const unavailableBlock = requestStateUnavailable
73891
+ ? [
73892
+ '# CHANGE-REQUEST STATE UNAVAILABLE — DO NOT IMPLEMENT',
73893
+ '',
73894
+ 'Pathmode could not read the open PM change requests for this intent. There may be judgment waiting that this prompt cannot show. Retry get_agent_prompt or list_intent_change_requests before doing any implementation work against this spec.',
73895
+ '',
73896
+ '---',
73897
+ '',
73898
+ ].join('\n')
73899
+ : '';
73900
+ // Your own unaccepted proposals: listed so you neither re-propose them nor build on them.
73901
+ const proposalBlock = pendingProposals.changeRequests.length > 0
73902
+ ? [
73903
+ '# YOUR PENDING PROPOSALS — AWAITING A HUMAN DECISION',
73904
+ '',
73905
+ 'You proposed these corrections; nobody has accepted them yet. Do not propose them again and do not implement against the proposed values. Keep building against the current authorized revision.',
73906
+ '',
73907
+ ...pendingProposals.changeRequests.map((request) => `- ${request.id}: ${request.operation} ${request.targetField}${request.targetItemId ? ` (${request.targetItemId})` : ''} — ${request.reason}`),
73908
+ '',
73909
+ '---',
73910
+ '',
73911
+ ].join('\n')
73912
+ : '';
73808
73913
  const requestBlock = openRequests.changeRequests.length > 0
73809
73914
  ? [
73810
73915
  '# OPEN PM CHANGE REQUESTS — HANDLE BEFORE IMPLEMENTATION',
@@ -73827,7 +73932,7 @@ function startMcpServer() {
73827
73932
  return {
73828
73933
  content: [{
73829
73934
  type: 'text',
73830
- text: `${requestBlock}${result.prompt}`,
73935
+ text: `${unavailableBlock}${requestBlock}${proposalBlock}${result.prompt}`,
73831
73936
  }]
73832
73937
  };
73833
73938
  });
@@ -73977,10 +74082,11 @@ function startMcpServer() {
73977
74082
  }
73978
74083
  const result = await requireCloudClient().recordFinding(intentId, { assumption, finding, target, correction, source });
73979
74084
  const openCount = result?.openCount;
74085
+ const findingId = result?.finding?.id;
73980
74086
  return {
73981
74087
  content: [{
73982
74088
  type: 'text',
73983
- text: `Finding recorded for intent ${intentId}. The next agent that pulls this intent will see it flagged as unreconciled until a human folds it into the spec.${typeof openCount === 'number' ? ` Open findings now: ${openCount}.` : ''}`
74089
+ text: `Finding recorded for intent ${intentId}${findingId ? ` (findingId: ${findingId})` : ''}. The next agent that pulls this intent will see it flagged as unreconciled until a human folds it into the spec.${typeof openCount === 'number' ? ` Open findings now: ${openCount}.` : ''} If you can name the exact correction, call propose_spec_change with this findingId.`
73984
74090
  }]
73985
74091
  };
73986
74092
  });
@@ -74102,7 +74208,7 @@ function startMcpServer() {
74102
74208
  });
74103
74209
  cloudOnly.registerTool('query_evidence', {
74104
74210
  title: 'Query Evidence',
74105
- description: 'Search evidence items (friction points, user quotes, observations, metrics, feature requests) by product, type, severity, or text. Returns matching evidence with IDs that can be linked to intents. Dismissed and archived evidence are excluded by default pass triageStatus="dismissed" to see dismissed items explicitly. Every item carries a `tier`: "backing" is human-reviewed evidence; "unreviewed" is captured but not yet reviewed by a person; "assumption" is an AI-drafted hypothesis, not observed — never treat unreviewed or assumption items as confirmed user feedback.',
74211
+ description: 'Search handoff-visible evidence items (friction points, user quotes, observations, metrics, feature requests) by product, type, severity, or text. Dismissed and archived evidence never leave the store through this tool. Every item carries a `tier`: "backing" is human-reviewed evidence; "unreviewed" is captured but not yet reviewed by a person; "assumption" is an AI-drafted hypothesis, not observed — never treat unreviewed or assumption items as confirmed user feedback.',
74106
74212
  inputSchema: {
74107
74213
  productId: zod_1.z.string().optional().describe('Filter by product (Space) ID'),
74108
74214
  type: zod_1.z.enum(['friction', 'quote', 'observation', 'metric', 'request']).optional().describe('Filter by evidence type'),
@@ -44,6 +44,13 @@ export interface IntentDecision {
44
44
  }
45
45
  export interface ApiIntent {
46
46
  id: string;
47
+ /** Per-tier counts of the evidence this intent cites (server >= 1.24 API). Metadata only. */
48
+ evidenceTiers?: {
49
+ backing: number;
50
+ unreviewed: number;
51
+ assumption: number;
52
+ excluded: number;
53
+ };
47
54
  /** Which side owns the spec body. Absent only when talking to an older server. */
48
55
  specAuthority?: 'cloud' | 'repo';
49
56
  /** Opaque semantic revision of the repository-owned body; never computed by the client. */
@@ -212,6 +219,24 @@ export interface UpdateIntentInput {
212
219
  */
213
220
  confirmations?: Record<string, unknown>[];
214
221
  }
222
+ export type ChangeRequestInclude = 'consumable' | 'proposals' | 'all';
223
+ export interface ProposeSpecChangeBody {
224
+ baseRepoBodyRevision: string;
225
+ targetField: string;
226
+ targetItemId?: string;
227
+ operation: 'replace' | 'add' | 'remove';
228
+ expectedOldValue?: unknown;
229
+ proposedValue?: unknown;
230
+ reason: string;
231
+ findingId?: string;
232
+ finding?: {
233
+ assumption: string;
234
+ finding: string;
235
+ target?: string;
236
+ source?: string;
237
+ };
238
+ sourceUrl?: string;
239
+ }
215
240
  export interface ApiIntentChangeRequest {
216
241
  id: string;
217
242
  intentId: string;
@@ -223,7 +248,19 @@ export interface ApiIntentChangeRequest {
223
248
  operation: 'replace' | 'add' | 'remove';
224
249
  proposedValue?: unknown;
225
250
  reason: string;
226
- authorUserId: string;
251
+ /** Set for PM-authored requests; absent on agent proposals. */
252
+ authorUserId?: string;
253
+ /** 'session' = PM judgment; 'api-key' = an agent proposal awaiting human acceptance. */
254
+ authorPrincipal?: 'session' | 'api-key';
255
+ /** The implementation finding an agent proposal answers. */
256
+ findingId?: string;
257
+ /** 'pending' | 'accepted' for agent proposals; null for PM requests. Never re-derive it. */
258
+ adjudication?: 'pending' | 'accepted' | null;
259
+ /** Whether the repository agent may act on this request right now. Only act when true. */
260
+ consumable?: boolean;
261
+ acceptedAt?: number;
262
+ /** The origin='agent' evidence row written with a proposal. */
263
+ evidenceItemId?: string;
227
264
  status: 'open' | 'applied' | 'rejected' | 'withdrawn' | 'superseded';
228
265
  firstConsumedAt?: number;
229
266
  lastConsumedAt?: number;
@@ -386,6 +423,17 @@ export interface ApiEvidence {
386
423
  createdAt: string;
387
424
  updatedAt: string;
388
425
  }
426
+ export interface ApiIntentEvidence {
427
+ intentId: string;
428
+ evidence: ApiEvidence[];
429
+ evidenceTiers: {
430
+ backing: number;
431
+ unreviewed: number;
432
+ assumption: number;
433
+ excluded: number;
434
+ };
435
+ unresolvedEvidenceIds: string[];
436
+ }
389
437
  export interface ApiWorkspace {
390
438
  id: string;
391
439
  name: string;
@@ -484,6 +532,13 @@ export declare class PathmodeClient {
484
532
  recordToolCall(tool: string, outcome: 'ok' | 'error', repo?: string | null): Promise<void>;
485
533
  listIntents(status?: string): Promise<ApiIntent[]>;
486
534
  getIntent(id: string): Promise<ApiIntent>;
535
+ /**
536
+ * The evidence an intent cites, resolved server-side through the trust contract: excluded
537
+ * (archived/dismissed) items never appear, every item carries `tier`, and `evidenceTiers` is
538
+ * computed over the same cited set. Replaces paging the product pool, which could miss older
539
+ * citations and disagree with the intent's own tier counts.
540
+ */
541
+ getIntentEvidence(id: string): Promise<ApiIntentEvidence>;
487
542
  completeRepoOnboarding(sessionId: string, intentId: string): Promise<void>;
488
543
  getIntentPrompt(id: string, agentType?: string, mode?: string): Promise<{
489
544
  prompt: string;
@@ -527,14 +582,24 @@ export declare class PathmodeClient {
527
582
  exportContext(format: 'claude-md' | 'agents-md' | 'cursorrules' | 'intent-md', intentId?: string, productId?: string): Promise<string>;
528
583
  createIntent(input: CreateIntentInput): Promise<ApiIntent>;
529
584
  updateIntent(id: string, updates: UpdateIntentInput): Promise<ApiIntent>;
530
- listIntentChangeRequests(intentId: string, status?: ApiIntentChangeRequest['status'] | 'all'): Promise<{
585
+ listIntentChangeRequests(intentId: string, status?: ApiIntentChangeRequest['status'] | 'all', include?: ChangeRequestInclude): Promise<{
531
586
  changeRequests: ApiIntentChangeRequest[];
532
587
  count: number;
533
588
  }>;
534
- listWorkspaceIntentChangeRequests(status?: ApiIntentChangeRequest['status'] | 'all'): Promise<{
589
+ listWorkspaceIntentChangeRequests(status?: ApiIntentChangeRequest['status'] | 'all', include?: ChangeRequestInclude): Promise<{
535
590
  changeRequests: ApiIntentChangeRequest[];
536
591
  count: number;
537
592
  }>;
593
+ /**
594
+ * Agent-proposed correction (agent-proposed-corrections.md): records a structured proposal
595
+ * against one exact base revision, answering an implementation finding. The server stores it
596
+ * as a change request the repository agent may NOT consume until a signed-in person accepts
597
+ * it, and writes one origin='agent' evidence row anchored to the claim. Nothing in the spec
598
+ * changes as a result of this call.
599
+ */
600
+ proposeSpecChange(intentId: string, body: ProposeSpecChangeBody): Promise<{
601
+ changeRequest: ApiIntentChangeRequest;
602
+ }>;
538
603
  getIntentChangeRequest(intentId: string, requestId: string): Promise<{
539
604
  changeRequest: ApiIntentChangeRequest;
540
605
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["file:///Users/jannelammi/code/Pathmode/packages/mcp-server/src/api-client.ts"],"names":[],"mappings":"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"}
@@ -75,12 +75,12 @@ export declare const expectationShape: z.ZodObject<{
75
75
  target: z.ZodNumber;
76
76
  unit: z.ZodOptional<z.ZodString>;
77
77
  }, "strip", z.ZodTypeAny, {
78
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
79
78
  target: number;
79
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
80
80
  unit?: string | undefined;
81
81
  }, {
82
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
83
82
  target: number;
83
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
84
84
  unit?: string | undefined;
85
85
  }>;
86
86
  /** Mirrors the optional query recipe stored on a StructuredOutcome. */
@@ -116,12 +116,12 @@ export declare const outcomeMeasurementDefinitionShape: z.ZodObject<{
116
116
  target: z.ZodNumber;
117
117
  unit: z.ZodOptional<z.ZodString>;
118
118
  }, "strip", z.ZodTypeAny, {
119
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
120
119
  target: number;
120
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
121
121
  unit?: string | undefined;
122
122
  }, {
123
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
124
123
  target: number;
124
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
125
125
  unit?: string | undefined;
126
126
  }>;
127
127
  window: z.ZodEffects<z.ZodEffects<z.ZodObject<{
@@ -169,8 +169,8 @@ export declare const outcomeMeasurementDefinitionShape: z.ZodObject<{
169
169
  };
170
170
  };
171
171
  expectation: {
172
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
173
172
  target: number;
173
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
174
174
  unit?: string | undefined;
175
175
  };
176
176
  window: {
@@ -189,8 +189,8 @@ export declare const outcomeMeasurementDefinitionShape: z.ZodObject<{
189
189
  };
190
190
  };
191
191
  expectation: {
192
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
193
192
  target: number;
193
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
194
194
  unit?: string | undefined;
195
195
  };
196
196
  window: {
@@ -233,12 +233,12 @@ export declare const outcomeMeasurementEntryShape: z.ZodObject<{
233
233
  target: z.ZodNumber;
234
234
  unit: z.ZodOptional<z.ZodString>;
235
235
  }, "strip", z.ZodTypeAny, {
236
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
237
236
  target: number;
237
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
238
238
  unit?: string | undefined;
239
239
  }, {
240
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
241
240
  target: number;
241
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
242
242
  unit?: string | undefined;
243
243
  }>;
244
244
  window: z.ZodEffects<z.ZodEffects<z.ZodObject<{
@@ -288,8 +288,8 @@ export declare const outcomeMeasurementEntryShape: z.ZodObject<{
288
288
  };
289
289
  };
290
290
  expectation: {
291
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
292
291
  target: number;
292
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
293
293
  unit?: string | undefined;
294
294
  };
295
295
  window: {
@@ -309,8 +309,8 @@ export declare const outcomeMeasurementEntryShape: z.ZodObject<{
309
309
  };
310
310
  };
311
311
  expectation: {
312
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
313
312
  target: number;
313
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
314
314
  unit?: string | undefined;
315
315
  };
316
316
  window: {
@@ -377,12 +377,12 @@ export declare const provenanceShape: z.ZodObject<{
377
377
  target: z.ZodNumber;
378
378
  unit: z.ZodOptional<z.ZodString>;
379
379
  }, "strip", z.ZodTypeAny, {
380
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
381
380
  target: number;
381
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
382
382
  unit?: string | undefined;
383
383
  }, {
384
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
385
384
  target: number;
385
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
386
386
  unit?: string | undefined;
387
387
  }>>;
388
388
  rawResponse: z.ZodOptional<z.ZodUnknown>;
@@ -400,8 +400,8 @@ export declare const provenanceShape: z.ZodObject<{
400
400
  end?: string | undefined;
401
401
  };
402
402
  expectation?: {
403
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
404
403
  target: number;
404
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
405
405
  unit?: string | undefined;
406
406
  } | undefined;
407
407
  queryVersion?: string | undefined;
@@ -421,8 +421,8 @@ export declare const provenanceShape: z.ZodObject<{
421
421
  end?: string | undefined;
422
422
  };
423
423
  expectation?: {
424
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
425
424
  target: number;
425
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
426
426
  unit?: string | undefined;
427
427
  } | undefined;
428
428
  queryVersion?: string | undefined;
@@ -496,12 +496,12 @@ export declare const recordOutcomeMeasurementInputSchema: {
496
496
  target: z.ZodNumber;
497
497
  unit: z.ZodOptional<z.ZodString>;
498
498
  }, "strip", z.ZodTypeAny, {
499
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
500
499
  target: number;
500
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
501
501
  unit?: string | undefined;
502
502
  }, {
503
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
504
503
  target: number;
504
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
505
505
  unit?: string | undefined;
506
506
  }>>;
507
507
  rawResponse: z.ZodOptional<z.ZodUnknown>;
@@ -519,8 +519,8 @@ export declare const recordOutcomeMeasurementInputSchema: {
519
519
  end?: string | undefined;
520
520
  };
521
521
  expectation?: {
522
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
523
522
  target: number;
523
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
524
524
  unit?: string | undefined;
525
525
  } | undefined;
526
526
  queryVersion?: string | undefined;
@@ -540,8 +540,8 @@ export declare const recordOutcomeMeasurementInputSchema: {
540
540
  end?: string | undefined;
541
541
  };
542
542
  expectation?: {
543
- operator: "gt" | "gte" | "lt" | "lte" | "eq";
544
543
  target: number;
544
+ operator: "gt" | "gte" | "lt" | "lte" | "eq";
545
545
  unit?: string | undefined;
546
546
  } | undefined;
547
547
  queryVersion?: string | undefined;
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.23.0",
5
+ "version": "1.25.0",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pathmode/mcp-server",
3
- "version": "1.23.0",
3
+ "version": "1.25.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -38,3 +38,7 @@ Create a small implementation plan mapped to the outcomes. Make only the changes
38
38
  In connected mode, name the intent where the merge can find it: branch `intent/<intent-id>`, or `pathmode:<intent-id>` in the pull-request body. When a pull request is involved, do not call `update_intent_status`; the merge grades the real diff and owns the transition to Shipped. Without a pull request, mark Shipped only when the outcome is observable.
39
39
 
40
40
  </supporting-info>
41
+
42
+ ## When building contradicts the spec
43
+
44
+ Record the contradiction with `record_implementation_finding` the moment you find it. If you can name the exact correction, call `propose_spec_change` with the same finding (`findingId`), the `baseRepoBodyRevision` you read, the target field and item, the value you observed and the value you propose, and the contradiction as the reason. That records a proposal for a signed-in person to accept or reject and stores your observation as unreviewed evidence; it does not change the spec. Keep implementing against the current authorized revision. Never call `intent_save` for your own proposal, and do not re-propose anything listed under "YOUR PENDING PROPOSALS" in the execution bundle.
@@ -52,3 +52,5 @@ If a change introduces a constraint violation, treat it as a blocker. Be specifi
52
52
  When the review finds gaps, the user often wants to record what's not yet done so a future session can pick it up. Call `log_implementation_note` for each significant gap. Make the note self-contained — the next reader won't have this conversation's context.
53
53
 
54
54
  </supporting-info>
55
+
56
+ If the diff is right and the spec is wrong (the code satisfies what users need but contradicts an outcome, constraint, or edge case as written), do not approve the diff against the stale text and do not rewrite intent.md yourself. Record the finding with `record_implementation_finding` and propose the exact correction with `propose_spec_change`; a signed-in product owner accepts or rejects it, and only an accepted request may be applied. Say in the review which claim is contradicted and that a proposal is pending.