paput-mcp 4.2.23 → 4.2.27

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.
Files changed (51) hide show
  1. package/README.md +6 -2
  2. package/dist/cli/rules/paput-project-context.md +3 -1
  3. package/dist/handlers/add-knowledge-candidates/handler.js +19 -3
  4. package/dist/handlers/add-knowledge-candidates/handler.js.map +1 -1
  5. package/dist/handlers/add-project-document/tool.js +1 -1
  6. package/dist/handlers/add-project-document/tool.js.map +1 -1
  7. package/dist/handlers/get-project-context/handler.js +25 -24
  8. package/dist/handlers/get-project-context/handler.js.map +1 -1
  9. package/dist/handlers/get-project-context/tool.js +1 -1
  10. package/dist/handlers/get-project-context/tool.js.map +1 -1
  11. package/dist/handlers/get-project-document/tool.js +1 -1
  12. package/dist/handlers/get-project-document/tool.js.map +1 -1
  13. package/dist/handlers/get-skill-sheet/handler.js +23 -1
  14. package/dist/handlers/get-skill-sheet/handler.js.map +1 -1
  15. package/dist/handlers/index.js +2 -0
  16. package/dist/handlers/index.js.map +1 -1
  17. package/dist/handlers/search-project-documents/handler.js +69 -0
  18. package/dist/handlers/search-project-documents/handler.js.map +1 -0
  19. package/dist/handlers/search-project-documents/index.js +3 -0
  20. package/dist/handlers/search-project-documents/index.js.map +1 -0
  21. package/dist/handlers/search-project-documents/tool.js +27 -0
  22. package/dist/handlers/search-project-documents/tool.js.map +1 -0
  23. package/dist/handlers/update-project-document/handler.js +14 -0
  24. package/dist/handlers/update-project-document/handler.js.map +1 -1
  25. package/dist/handlers/update-project-document/tool.js +7 -2
  26. package/dist/handlers/update-project-document/tool.js.map +1 -1
  27. package/dist/handlers/update-skill-sheet-faq/handler.js +86 -0
  28. package/dist/handlers/update-skill-sheet-faq/handler.js.map +1 -0
  29. package/dist/handlers/update-skill-sheet-faq/index.js +2 -0
  30. package/dist/handlers/update-skill-sheet-faq/index.js.map +1 -0
  31. package/dist/handlers/update-skill-sheet-faq/tool.js +49 -0
  32. package/dist/handlers/update-skill-sheet-faq/tool.js.map +1 -0
  33. package/dist/http.js +21 -19
  34. package/dist/http.js.map +1 -1
  35. package/dist/plugin/skills/interview-qa/SKILL.md +78 -0
  36. package/dist/schemas/tool-input.js +49 -2
  37. package/dist/schemas/tool-input.js.map +1 -1
  38. package/dist/server.js +1 -0
  39. package/dist/server.js.map +1 -1
  40. package/dist/services/api/project-context.js +11 -0
  41. package/dist/services/api/project-context.js.map +1 -1
  42. package/dist/services/api/skill-sheet.js +7 -2
  43. package/dist/services/api/skill-sheet.js.map +1 -1
  44. package/dist/tool.js +6 -3
  45. package/dist/tool.js.map +1 -1
  46. package/dist/types/constants.js +8 -0
  47. package/dist/types/constants.js.map +1 -1
  48. package/docs/reviewer-guide.md +2 -2
  49. package/docs/tools.md +53 -37
  50. package/docs/usage-examples.md +22 -0
  51. package/package.json +1 -1
package/README.md CHANGED
@@ -144,6 +144,7 @@ Generated skills:
144
144
  - `paput-project-document` - Save a project-specific design decision or repeatable procedure as a PaPut project document.
145
145
  - `paput-project-episodes` - Draft and optionally save design-and-judgment episodes for a skill sheet project.
146
146
  - `paput-self-pr-draft` - Draft the skill sheet self PR and save it only after explicit approval.
147
+ - `paput-interview-qa` - Source, draft, and optionally save the skill sheet Q&A (FAQ) section from interview questions, memo clusters, and general interview FAQ research.
147
148
 
148
149
  For Claude Desktop, export skill ZIP files and upload them from
149
150
  `Customize > Skills`:
@@ -234,6 +235,7 @@ Detailed public tool documentation is available in [docs/tools.md](docs/tools.md
234
235
  - `paput_delete_skill_sheet_project` - Delete a skill sheet project.
235
236
  - `paput_get_skill_sheet_project_episodes_context` - Get project information and public linked memo bodies so the MCP client AI model can draft design-and-judgment episodes.
236
237
  - `paput_update_skill_sheet_project_episodes` - Full-replace the generated project episodes after explicit user approval.
238
+ - `paput_update_skill_sheet_faq` - Full-replace the user-authored Q&A (FAQ) section. Pass `faq: []` to clear it.
237
239
 
238
240
  ### Goal Management
239
241
 
@@ -253,10 +255,11 @@ Detailed public tool documentation is available in [docs/tools.md](docs/tools.md
253
255
  Project document state is private, project-scoped, API-backed, and available
254
256
  through Remote HTTP MCP.
255
257
 
256
- - `paput_get_project_context` - Get a project's always-applied instructions and document index. Call at session start.
258
+ - `paput_get_project_context` - Get a project's always-applied instructions, pending skill proposals, and document counts by kind. Call at session start.
257
259
  - `paput_get_project_document` - Read the full body of a project document by ID.
260
+ - `paput_search_project_documents` - Find project documents semantically similar to a query (vector search). Use before drafting a design decision or plan to check past decisions and rejected alternatives.
258
261
  - `paput_add_project_document` - Save a design decision, procedure, or skill candidate linked to a project.
259
- - `paput_update_project_document` - Replace a project document's title, summary, and body.
262
+ - `paput_update_project_document` - Replace a project document's title, summary, and body. Optionally set status to active or archived.
260
263
  - `paput_update_project_instructions` - Overwrite a project's always-applied instructions. Requires explicit user approval.
261
264
  - `paput_discard_project_proposal` - Record that the user rejected a skill proposal.
262
265
  - `paput_promote_project_documents` - Mark a skill proposal and related procedure documents as promoted after a skill is created.
@@ -293,6 +296,7 @@ Write and destructive tools should be used only when the user intent is clear. I
293
296
  - `paput_save_pending_candidate` requires explicit user approval to save a pending candidate to PaPut.
294
297
  - `paput_delete_skill_sheet_project` should be used only when the user intends to delete a project.
295
298
  - `paput_update_skill_sheet_project_episodes` should be used only after the MCP client AI model has drafted project episodes and the user intends to save them.
299
+ - `paput_update_skill_sheet_faq` full-replaces the user-authored FAQ and should be used only after the user explicitly approves the FAQ content.
296
300
  - `paput_delete_goal` should be used only when the user intends to delete a goal.
297
301
  - `paput_set_skill_sheet_skills` replaces the full skill list and should be used only when the desired final list is known.
298
302
  - `paput_update_dashboard_analysis` should be used only after the MCP client AI model has generated an analysis and the user intends to save it.
@@ -1,6 +1,8 @@
1
1
  ## PaPut Project Context Rules
2
2
 
3
- At the start of a session, when the current project is known or can be inferred from the repository or the user's request, call `paput_get_project_context` with the project name. Apply the returned instructions throughout the session. Use the document index only as a table of contents, and fetch bodies on demand with `paput_get_project_document` instead of reading everything upfront.
3
+ At the start of a session, when the current project is known or can be inferred from the repository or the user's request, call `paput_get_project_context` with the project name. Apply the returned instructions throughout the session.
4
+
5
+ Before drafting a design decision, implementation plan, or refactor direction, search past decisions and rejected alternatives with `paput_search_project_documents` so you do not re-propose a rejected alternative or contradict a settled decision. Fetch a document body on demand with `paput_get_project_document` only for the results that matter.
4
6
 
5
7
  This section is the procedure for Check 1 of the PaPut Completion Checklist. When a design decision is settled or a repeatable procedure is completed, save it with `paput_add_project_document` (kind `design_doc` or `procedure`) and report what you saved. For design decisions, include the decision, the reasons, and the rejected alternatives. Do not save repository conventions or anything that belongs in CLAUDE.md / AGENTS.md, and do not save secrets or customer data. Follow the `paput-project-document` skill for the full procedure.
6
8
 
@@ -69,9 +69,7 @@ export async function handleAddKnowledgeCandidates(args, apiClient, context) {
69
69
  return await addRemoteCandidates(args, apiClient, context, source, candidates);
70
70
  }
71
71
  async function addRemoteCandidates(args, apiClient, context = {}, source, candidates) {
72
- const contextProjects = context.projectId
73
- ? [{ id: context.projectId, title: context.projectTitle }]
74
- : [];
72
+ const contextProjects = await getContextProjects(context);
75
73
  const semanticDuplicates = [];
76
74
  const candidatesToAdd = [];
77
75
  for (const candidate of candidates) {
@@ -136,6 +134,24 @@ async function addRemoteCandidates(args, apiClient, context = {}, source, candid
136
134
  ],
137
135
  };
138
136
  }
137
+ async function getContextProjects(context) {
138
+ if (context.projectId) {
139
+ return [{ id: context.projectId, title: context.projectTitle }];
140
+ }
141
+ if (!context.resolveProject)
142
+ return [];
143
+ // alias が解決できなくても候補追加自体は続行する(project 紐付けだけ落とす)。
144
+ try {
145
+ const resolved = await context.resolveProject();
146
+ if (!resolved)
147
+ return [];
148
+ return [{ id: resolved.projectId, title: resolved.projectTitle }];
149
+ }
150
+ catch (error) {
151
+ console.error('Failed to resolve project_alias for candidates:', error);
152
+ return [];
153
+ }
154
+ }
139
155
  async function findSimilarMemosForCandidate(apiClient, title, body) {
140
156
  const query = `${title}\n${body.slice(0, 200)}`;
141
157
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/add-knowledge-candidates/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/add-knowledge-candidates/handler.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export const addProjectDocumentTool = {
21
21
  },
22
22
  summary: {
23
23
  type: 'string',
24
- description: 'One-line summary shown in the document index (keep it short)',
24
+ description: 'One-line summary shown in search results (keep it short)',
25
25
  },
26
26
  body: {
27
27
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/add-project-document/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,UAAU,EAAE;QACV,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,uXAAuX;QACzX,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,sBAAsB,EAAE;oBACtB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gEAAgE;iBACnE;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC;oBACpD,WAAW,EACT,8KAA8K;iBACjL;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8DAA8D;iBACjE;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+FAA+F;iBAClG;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACpE;aACF;YACD,QAAQ,EAAE,CAAC,wBAAwB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;SAC9D;KACF;IACD,OAAO,EAAE,wBAAwB;CAClC,CAAC"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/add-project-document/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,UAAU,EAAE;QACV,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,uXAAuX;QACzX,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,sBAAsB,EAAE;oBACtB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gEAAgE;iBACnE;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC;oBACpD,WAAW,EACT,8KAA8K;iBACjL;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0DAA0D;iBAC7D;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+FAA+F;iBAClG;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACpE;aACF;YACD,QAAQ,EAAE,CAAC,wBAAwB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;SAC9D;KACF;IACD,OAAO,EAAE,wBAAwB;CAClC,CAAC"}
@@ -1,18 +1,18 @@
1
1
  import { getProjectContext, } from '../../services/api/project-context.js';
2
2
  export async function handleGetProjectContext(args, apiClient, context) {
3
- const project = getProjectSelector(args, context);
4
- if (!project) {
5
- return {
6
- content: [
7
- {
8
- type: 'text',
9
- text: 'project is required when no MCP project_alias is configured.',
10
- },
11
- ],
12
- isError: true,
13
- };
14
- }
15
3
  try {
4
+ const project = await getProjectSelector(args, context);
5
+ if (!project) {
6
+ return {
7
+ content: [
8
+ {
9
+ type: 'text',
10
+ text: 'project is required when no MCP project_alias is configured.',
11
+ },
12
+ ],
13
+ isError: true,
14
+ };
15
+ }
16
16
  const result = await getProjectContext(apiClient, project);
17
17
  return {
18
18
  structuredContent: result,
@@ -37,10 +37,17 @@ export async function handleGetProjectContext(args, apiClient, context) {
37
37
  };
38
38
  }
39
39
  }
40
- function getProjectSelector(args, context) {
40
+ async function getProjectSelector(args, context) {
41
41
  if (context?.projectId) {
42
42
  return { project_id: context.projectId };
43
43
  }
44
+ if (context?.resolveProject) {
45
+ const resolved = await context.resolveProject();
46
+ if (!resolved) {
47
+ throw new Error(`project_alias "${context.projectAlias ?? ''}" was not found. Check the alias in the MCP URL or set it on the skill sheet project.`);
48
+ }
49
+ return { project_id: resolved.projectId };
50
+ }
44
51
  const explicit = args && typeof args.project === 'string' ? args.project.trim() : '';
45
52
  return explicit || undefined;
46
53
  }
@@ -63,18 +70,12 @@ function buildContextText(result) {
63
70
  lines.push('(not set — use paput_update_project_instructions to set them)');
64
71
  }
65
72
  lines.push('');
66
- lines.push('## Document index');
67
- if (result.documents.length === 0) {
68
- lines.push('(no documents yet)');
69
- }
70
- else {
71
- for (const doc of result.documents) {
72
- const summary = doc.summary ? ` — ${doc.summary}` : '';
73
- lines.push(`- [${doc.id}] (${doc.kind}) ${doc.title}${summary}`);
74
- }
75
- lines.push('');
76
- lines.push('Fetch a document body on demand with paput_get_project_document.');
73
+ lines.push('## Project documents');
74
+ const counts = result.document_counts;
75
+ if (counts) {
76
+ lines.push(`Active documents: ${counts.design_doc} design decisions, ${counts.procedure} procedures, ${counts.skill_candidate} skill candidates.`);
77
77
  }
78
+ lines.push('Search past design decisions and rejected alternatives with paput_search_project_documents before drafting a new one.');
78
79
  if (result.proposals.length > 0) {
79
80
  lines.push('');
80
81
  lines.push('## Pending skill proposals');
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-project-context/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-project-context/handler.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { handleGetProjectContext } from './handler.js';
2
2
  export const getProjectContextTool = {
3
3
  definition: {
4
4
  name: 'paput_get_project_context',
5
- description: 'Get the private project context (always-applied instructions and an index of accumulated project documents) for a PaPut skill sheet project, resolved from the MCP URL project_alias or a fuzzy project name. Call this at session start when working on a known project. Document bodies are not included; fetch them on demand with paput_get_project_document.',
5
+ description: 'Get the private project context (always-applied instructions, pending skill proposals, and document counts by kind) for a PaPut skill sheet project, resolved from the MCP URL project_alias or a fuzzy project name. Call this at session start when working on a known project. Before drafting a design decision, implementation plan, or refactor, search past decisions and rejected alternatives with paput_search_project_documents.',
6
6
  inputSchema: {
7
7
  type: 'object',
8
8
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/get-project-context/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,qBAAqB,GAAgB;IAChD,UAAU,EAAE;QACV,IAAI,EAAE,2BAA2B;QACjC,WAAW,EACT,mWAAmW;QACrW,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yGAAyG;iBAC5G;aACF;SACF;KACF;IACD,OAAO,EAAE,uBAAuB;CACjC,CAAC"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/get-project-context/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,qBAAqB,GAAgB;IAChD,UAAU,EAAE;QACV,IAAI,EAAE,2BAA2B;QACjC,WAAW,EACT,6aAA6a;QAC/a,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yGAAyG;iBAC5G;aACF;SACF;KACF;IACD,OAAO,EAAE,uBAAuB;CACjC,CAAC"}
@@ -2,7 +2,7 @@ import { handleGetProjectDocument } from './handler.js';
2
2
  export const getProjectDocumentTool = {
3
3
  definition: {
4
4
  name: 'paput_get_project_document',
5
- description: 'Get the full body of a private project document by ID. Use the document index returned by paput_get_project_context to find the ID.',
5
+ description: 'Get the full body of a private project document by ID. Find the ID with paput_search_project_documents.',
6
6
  inputSchema: {
7
7
  type: 'object',
8
8
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/get-project-document/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,UAAU,EAAE;QACV,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,qIAAqI;QACvI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qBAAqB;iBACnC;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD,OAAO,EAAE,wBAAwB;CAClC,CAAC"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/get-project-document/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,UAAU,EAAE;QACV,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,yGAAyG;QAC3G,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qBAAqB;iBACnC;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD,OAAO,EAAE,wBAAwB;CAClC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { getSkillSheet } from '../../services/api/skill-sheet.js';
2
- import { GENDER, PROJECT_TYPE, CATEGORY_TYPE } from '../../types/index.js';
2
+ import { GENDER, PROJECT_TYPE, CATEGORY_TYPE, PROCESS, } from '../../types/index.js';
3
3
  export async function handleGetSkillSheet(_args, apiClient) {
4
4
  try {
5
5
  const skillSheet = await getSkillSheet(apiClient);
@@ -22,6 +22,14 @@ export async function handleGetSkillSheet(_args, apiClient) {
22
22
  const techNames = project.technologies
23
23
  .map((t) => t.name)
24
24
  .join(', ');
25
+ const processNames = project.processes.length > 0
26
+ ? project.processes
27
+ .map((id) => {
28
+ const name = PROCESS[id];
29
+ return name ? `${id} (${name})` : `${id}`;
30
+ })
31
+ .join(', ')
32
+ : 'None';
25
33
  const memoNames = project.memos.map((m) => m.title).join(', ');
26
34
  const achievements = project.achievements && project.achievements.length > 0
27
35
  ? project.achievements
@@ -44,6 +52,7 @@ export async function handleGetSkillSheet(_args, apiClient) {
44
52
  Scale: ${project.scale}
45
53
  Description: ${project.description}
46
54
  Technologies: ${techNames || 'None'}
55
+ Processes: ${processNames}
47
56
  Memos: ${memoNames || 'None'}
48
57
  Achievements:
49
58
  ${achievements}
@@ -53,6 +62,16 @@ ${episodes}`;
53
62
  .join('\n\n')
54
63
  : ' None';
55
64
  const genderText = GENDER[skillSheet.gender] || `Other`;
65
+ const faq = skillSheet.faq ?? [];
66
+ const faqText = faq.length > 0
67
+ ? faq
68
+ .map((item) => {
69
+ const theme = item.theme ? ` [${item.theme}]` : '';
70
+ const relatedMemoCount = item.related_memos?.length ?? 0;
71
+ return ` Q${theme}: ${item.question}\n A: ${item.answer} (related memos: ${relatedMemoCount})`;
72
+ })
73
+ .join('\n\n')
74
+ : ' None';
56
75
  const content = `Skill sheet:
57
76
  ID: ${skillSheet.id}
58
77
  Nearest station: ${skillSheet.nearest_station || 'Not set'}
@@ -63,6 +82,9 @@ Years of experience: ${skillSheet.years_of_experience} year(s)
63
82
  Self PR:
64
83
  ${skillSheet.self_pr || 'Not set'}
65
84
 
85
+ FAQ:
86
+ ${faqText}
87
+
66
88
  Skills:
67
89
  ${skillsText}
68
90
 
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-skill-sheet/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-skill-sheet/handler.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export * from './upsert-skill-sheet-project/index.js';
17
17
  export * from './delete-skill-sheet-project/index.js';
18
18
  export * from './get-skill-sheet-project-episodes-context/index.js';
19
19
  export * from './update-skill-sheet-project-episodes/index.js';
20
+ export * from './update-skill-sheet-faq/index.js';
20
21
  export * from './list-goals/index.js';
21
22
  export * from './create-goal/index.js';
22
23
  export * from './update-goal/index.js';
@@ -26,6 +27,7 @@ export * from './update-dashboard-analysis/index.js';
26
27
  export * from './get-dashboard-analysis-context/index.js';
27
28
  export * from './get-project-context/index.js';
28
29
  export * from './get-project-document/index.js';
30
+ export * from './search-project-documents/index.js';
29
31
  export * from './add-project-document/index.js';
30
32
  export * from './update-project-document/index.js';
31
33
  export * from './update-project-instructions/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { searchProjectDocuments } from '../../services/api/project-context.js';
2
+ export async function handleSearchProjectDocuments(args, apiClient) {
3
+ if (!args || typeof args.query !== 'string' || args.query.trim() === '') {
4
+ return {
5
+ content: [
6
+ {
7
+ type: 'text',
8
+ text: 'query is required.',
9
+ },
10
+ ],
11
+ isError: true,
12
+ };
13
+ }
14
+ const query = args.query;
15
+ const limit = typeof args.limit === 'number' ? args.limit : undefined;
16
+ const includeArchived = typeof args.include_archived === 'boolean'
17
+ ? args.include_archived
18
+ : undefined;
19
+ try {
20
+ const result = await searchProjectDocuments(apiClient, {
21
+ query,
22
+ limit,
23
+ include_archived: includeArchived,
24
+ });
25
+ if (result.documents.length === 0) {
26
+ return {
27
+ structuredContent: {
28
+ documents: [],
29
+ },
30
+ content: [
31
+ {
32
+ type: 'text',
33
+ text: 'No matching project documents found.',
34
+ },
35
+ ],
36
+ };
37
+ }
38
+ const documentList = result.documents
39
+ .map((doc) => {
40
+ const summary = doc.summary ? ` — ${doc.summary}` : '';
41
+ return `- [${doc.id}] (${doc.kind}, ${doc.status}, score ${doc.score.toFixed(3)}) ${doc.title}${summary}`;
42
+ })
43
+ .join('\n');
44
+ return {
45
+ structuredContent: {
46
+ documents: result.documents,
47
+ },
48
+ content: [
49
+ {
50
+ type: 'text',
51
+ text: `${result.documents.length} matching project documents found:\n\n${documentList}\n\nFetch a document body on demand with paput_get_project_document.`,
52
+ },
53
+ ],
54
+ };
55
+ }
56
+ catch (error) {
57
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
58
+ return {
59
+ content: [
60
+ {
61
+ type: 'text',
62
+ text: `Failed to search project documents: ${errorMessage}`,
63
+ },
64
+ ],
65
+ isError: true,
66
+ };
67
+ }
68
+ }
69
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/search-project-documents/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,IAAyC,EACzC,SAAoB;IAEpB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oBAAoB;iBAC3B;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,eAAe,GACnB,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS;QACxC,CAAC,CAAC,IAAI,CAAC,gBAAgB;QACvB,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE;YACrD,KAAK;YACL,KAAK;YACL,gBAAgB,EAAE,eAAe;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO;gBACL,iBAAiB,EAAE;oBACjB,SAAS,EAAE,EAAE;iBACd;gBACD,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,sCAAsC;qBAC7C;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS;aAClC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC;QAC5G,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;YACL,iBAAiB,EAAE;gBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B;YACD,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,yCAAyC,YAAY,sEAAsE;iBAC5J;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAE3D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,uCAAuC,YAAY,EAAE;iBAC5D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './handler.js';
2
+ export * from './tool.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/search-project-documents/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { handleSearchProjectDocuments } from './handler.js';
2
+ export const searchProjectDocumentsTool = {
3
+ definition: {
4
+ name: 'paput_search_project_documents',
5
+ description: 'Find private project documents (design decisions, procedures, skill candidates) semantically similar to a natural-language query using vector search. Use this before drafting a design decision, implementation plan, or refactor to check past decisions and rejected alternatives so you do not re-propose or contradict them. Only active documents are returned by default; set include_archived to also search settled or superseded ones. Document bodies are not included; fetch them on demand with paput_get_project_document.',
6
+ inputSchema: {
7
+ type: 'object',
8
+ properties: {
9
+ query: {
10
+ type: 'string',
11
+ description: 'Natural-language query describing the design decision, procedure, or topic to find',
12
+ },
13
+ limit: {
14
+ type: 'number',
15
+ description: 'Maximum number of documents to return (default 5, max 20)',
16
+ },
17
+ include_archived: {
18
+ type: 'boolean',
19
+ description: 'Include archived (settled/superseded) documents in the results. Defaults to false.',
20
+ },
21
+ },
22
+ required: ['query'],
23
+ },
24
+ },
25
+ handler: handleSearchProjectDocuments,
26
+ };
27
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/search-project-documents/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACrD,UAAU,EAAE;QACV,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,0gBAA0gB;QAC5gB,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,oFAAoF;iBACvF;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2DAA2D;iBAC9D;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,oFAAoF;iBACvF;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IACD,OAAO,EAAE,4BAA4B;CACtC,CAAC"}
@@ -11,6 +11,7 @@ export async function handleUpdateProjectDocument(args, apiClient) {
11
11
  title: input.title,
12
12
  summary: typeof input.summary === 'string' ? input.summary : undefined,
13
13
  body: input.body,
14
+ status: input.status,
14
15
  });
15
16
  const decided = document.decided_at
16
17
  ? `\nDecided at: ${document.decided_at}`
@@ -56,6 +57,19 @@ function validateArgs(args) {
56
57
  isError: true,
57
58
  };
58
59
  }
60
+ if (args.status !== undefined &&
61
+ args.status !== 'active' &&
62
+ args.status !== 'archived') {
63
+ return {
64
+ content: [
65
+ {
66
+ type: 'text',
67
+ text: 'status must be "active" or "archived" when provided.',
68
+ },
69
+ ],
70
+ isError: true,
71
+ };
72
+ }
59
73
  return null;
60
74
  }
61
75
  //# sourceMappingURL=handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-project-document/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAyC,EACzC,SAAoB;IAEpB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,IAA+B,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE;YACtD,EAAE,EAAE,KAAK,CAAC,EAAY;YACtB,KAAK,EAAE,KAAK,CAAC,KAAe;YAC5B,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACtE,IAAI,EAAE,KAAK,CAAC,IAAc;SAC3B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU;YACjC,CAAC,CAAC,iBAAiB,QAAQ,CAAC,UAAU,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACL,iBAAiB,EAAE,QAA8C;YACjE,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,8BAA8B,QAAQ,CAAC,KAAK,SAAS,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE;iBAC1H;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAE3D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sCAAsC,YAAY,EAAE;iBAC3D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAyC;IAC7D,IACE,CAAC,IAAI;QACL,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;QAC3B,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QACxB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EACvB,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mCAAmC;iBAC1C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-project-document/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAyC,EACzC,SAAoB;IAEpB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,IAA+B,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE;YACtD,EAAE,EAAE,KAAK,CAAC,EAAY;YACtB,KAAK,EAAE,KAAK,CAAC,KAAe;YAC5B,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACtE,IAAI,EAAE,KAAK,CAAC,IAAc;YAC1B,MAAM,EAAE,KAAK,CAAC,MAA2C;SAC1D,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU;YACjC,CAAC,CAAC,iBAAiB,QAAQ,CAAC,UAAU,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACL,iBAAiB,EAAE,QAA8C;YACjE,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,8BAA8B,QAAQ,CAAC,KAAK,SAAS,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE;iBAC1H;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAE3D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sCAAsC,YAAY,EAAE;iBAC3D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAyC;IAC7D,IACE,CAAC,IAAI;QACL,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;QAC3B,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QACxB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EACvB,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mCAAmC;iBAC1C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IACE,IAAI,CAAC,MAAM,KAAK,SAAS;QACzB,IAAI,CAAC,MAAM,KAAK,QAAQ;QACxB,IAAI,CAAC,MAAM,KAAK,UAAU,EAC1B,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sDAAsD;iBAC7D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -2,7 +2,7 @@ import { handleUpdateProjectDocument } from './handler.js';
2
2
  export const updateProjectDocumentTool = {
3
3
  definition: {
4
4
  name: 'paput_update_project_document',
5
- description: 'Update an existing private project document (identified by ID) by replacing its title, summary, and body. This is a full replace of those fields, so provide the complete desired state; an omitted summary is cleared. Fetch the current document with paput_get_project_document first when you only intend to change part of it. Kind, status, decided_at, and skill promotion are not changed by this tool.',
5
+ description: 'Update an existing private project document (identified by ID) by replacing its title, summary, and body. This is a full replace of those fields, so provide the complete desired state; an omitted summary is cleared. Fetch the current document with paput_get_project_document first when you only intend to change part of it. Kind, decided_at, and skill promotion are not changed by this tool. Optionally set status to active or archived.',
6
6
  inputSchema: {
7
7
  type: 'object',
8
8
  properties: {
@@ -16,12 +16,17 @@ export const updateProjectDocumentTool = {
16
16
  },
17
17
  summary: {
18
18
  type: 'string',
19
- description: 'One-line summary shown in the document index (keep it short). Omitting it clears the summary.',
19
+ description: 'One-line summary shown in search results (keep it short). Omitting it clears the summary.',
20
20
  },
21
21
  body: {
22
22
  type: 'string',
23
23
  description: 'Markdown body. For design decisions include the decision, reasons, and rejected alternatives.',
24
24
  },
25
+ status: {
26
+ type: 'string',
27
+ enum: ['active', 'archived'],
28
+ description: 'Optional status change. Archive settled or superseded documents to exclude them from default search results.',
29
+ },
25
30
  },
26
31
  required: ['id', 'title', 'body'],
27
32
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/update-project-document/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,CAAC,MAAM,yBAAyB,GAAgB;IACpD,UAAU,EAAE;QACV,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,iZAAiZ;QACnZ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+FAA+F;iBAClG;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+FAA+F;iBAClG;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;SAClC;KACF;IACD,OAAO,EAAE,2BAA2B;CACrC,CAAC"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/update-project-document/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,CAAC,MAAM,yBAAyB,GAAgB;IACpD,UAAU,EAAE;QACV,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,sbAAsb;QACxb,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2FAA2F;iBAC9F;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+FAA+F;iBAClG;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;oBAC5B,WAAW,EACT,8GAA8G;iBACjH;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;SAClC;KACF;IACD,OAAO,EAAE,2BAA2B;CACrC,CAAC"}