docuking-mcp 1.4.1 → 1.5.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.
Files changed (2) hide show
  1. package/index.js +20 -22
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -130,7 +130,7 @@ docuking_done({
130
130
  ### 절대 규칙
131
131
  - **작업 시작 전 반드시 \`docuking_plan\` 호출**
132
132
  - **작업 완료 후 반드시 \`docuking_done\` 호출**
133
- - 결과는 \`z_DocuKing/z_Plan_Result/\`에 자동 저장됨
133
+ - 결과는 \`z_DocuKing/zz_Plan_Result/\`에 자동 저장됨 (플랫 구조)
134
134
  `;
135
135
 
136
136
  try {
@@ -357,7 +357,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
357
357
  },
358
358
  {
359
359
  name: 'docuking_talk',
360
- description: '의미 있는 대화 내용을 자동으로 z_Talk/ 폴더에 기록합니다. AI가 중요한 논의/결정이라고 판단하거나, 사용자가 "이거 기록해줘"라고 요청할 때 사용.',
360
+ description: '의미 있는 대화 내용을 z_DocuKing/z_Talk/ 폴더에 기록합니다 (플랫 구조). AI가 중요한 논의/결정이라고 판단하거나, 사용자가 "이거 기록해줘"라고 요청할 때 사용.',
361
361
  inputSchema: {
362
362
  type: 'object',
363
363
  properties: {
@@ -384,7 +384,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
384
384
  },
385
385
  {
386
386
  name: 'docuking_plan',
387
- description: '작업 계획 문서를 z_Plan_Result/ 폴더에 생성하거나 업데이트합니다. 작업 시작 시 계획을 작성하고, 진행하면서 결과를 upsert합니다.',
387
+ description: '작업 계획 문서를 z_DocuKing/zz_Plan_Result/ 폴더에 생성/업데이트합니다 (플랫 구조). 작업 시작 시 계획을 작성하고, 진행하면서 결과를 upsert합니다.',
388
388
  inputSchema: {
389
389
  type: 'object',
390
390
  properties: {
@@ -553,12 +553,12 @@ zz_Coworker_*/
553
553
  특정 커밋으로 되돌립니다. (웹 탐색기에서 사용 가능)
554
554
 
555
555
  ### 9. docuking_talk
556
- 의미 있는 대화 내용을 \`z_Talk/\` 폴더에 자동 기록합니다.
556
+ 의미 있는 대화 내용을 \`z_DocuKing/z_Talk/\` 폴더에 기록합니다 (플랫 구조).
557
557
  - AI가 중요한 논의/결정이라고 판단할 때
558
558
  - 사용자가 "이거 기록해줘"라고 요청할 때
559
559
 
560
560
  ### 10. docuking_plan
561
- 작업 계획을 \`z_Plan_Result/\` 폴더에 생성/업데이트합니다.
561
+ 작업 계획을 \`z_DocuKing/zz_Plan_Result/\` 폴더에 생성/업데이트합니다 (플랫 구조).
562
562
  - 작업 시작 시 계획 생성
563
563
  - 진행하면서 단계별 결과 upsert
564
564
  - planId로 기존 계획 찾아서 업데이트
@@ -766,7 +766,7 @@ AI: (결정이 내려졌으므로 docuking_talk 호출)
766
766
  })
767
767
  \`\`\`
768
768
 
769
- **저장 위치:** \`z_DocuKing/z_Talk/YYYY/MM/YYYY-MM-DD_HHMM__제목.md\`
769
+ **저장 위치:** \`z_DocuKing/z_Talk/YYYY-MM-DD_HHMM__제목.md\` (플랫 구조)
770
770
 
771
771
  ### 작업 계획 관리 (docuking_plan, docuking_done)
772
772
 
@@ -817,7 +817,7 @@ AI: docuking_done({
817
817
  })
818
818
  \`\`\`
819
819
 
820
- **저장 위치:** \`z_DocuKing/z_Plan_Result/YYYY/MM/YYYY-MM-DD_HHMM__제목__planId.md\`
820
+ **저장 위치:** \`z_DocuKing/zz_Plan_Result/YYYY-MM-DD_HHMM__제목__planId.md\` (플랫 구조)
821
821
 
822
822
  **핵심 가치:**
823
823
  - AI 세션이 끊겨도 (컴팩션, 세션 종료) 다음 AI가 계획 문서를 보고 이어서 작업 가능
@@ -2039,17 +2039,16 @@ function generatePlanId() {
2039
2039
  async function handleTalk(args) {
2040
2040
  const { localPath, title, content, tags = [] } = args;
2041
2041
 
2042
- // z_Talk 폴더 경로 (z_DocuKing 아래)
2042
+ // z_Talk 폴더 경로 (z_DocuKing 아래) - 플랫 구조
2043
2043
  const talkBasePath = path.join(localPath, 'z_DocuKing', 'z_Talk');
2044
2044
 
2045
2045
  // 날짜 기반 파일명 생성
2046
- const { fileName, yearMonth, timestamp } = generateDateFileName(title);
2047
- const talkFolderPath = path.join(talkBasePath, yearMonth);
2048
- const talkFilePath = path.join(talkFolderPath, fileName);
2046
+ const { fileName, timestamp } = generateDateFileName(title);
2047
+ const talkFilePath = path.join(talkBasePath, fileName);
2049
2048
 
2050
2049
  // 폴더 생성
2051
- if (!fs.existsSync(talkFolderPath)) {
2052
- fs.mkdirSync(talkFolderPath, { recursive: true });
2050
+ if (!fs.existsSync(talkBasePath)) {
2051
+ fs.mkdirSync(talkBasePath, { recursive: true });
2053
2052
  }
2054
2053
 
2055
2054
  // 태그 문자열
@@ -2093,8 +2092,8 @@ ${content}
2093
2092
  async function handlePlan(args) {
2094
2093
  const { localPath, planId, title, goal, steps = [], notes } = args;
2095
2094
 
2096
- // z_Plan_Result 폴더 경로 (z_DocuKing 아래)
2097
- const planBasePath = path.join(localPath, 'z_DocuKing', 'z_Plan_Result');
2095
+ // zz_Plan_Result 폴더 경로 (z_DocuKing 아래) - 플랫 구조
2096
+ const planBasePath = path.join(localPath, 'z_DocuKing', 'zz_Plan_Result');
2098
2097
 
2099
2098
  // 기존 계획 업데이트 또는 새 계획 생성
2100
2099
  let targetPlanId = planId;
@@ -2120,16 +2119,15 @@ async function handlePlan(args) {
2120
2119
  } else {
2121
2120
  // 새 계획 생성
2122
2121
  targetPlanId = generatePlanId();
2123
- const { fileName, yearMonth, timestamp } = generateDateFileName(title);
2124
- const planFolderPath = path.join(planBasePath, yearMonth);
2122
+ const { fileName, timestamp } = generateDateFileName(title);
2125
2123
 
2126
- if (!fs.existsSync(planFolderPath)) {
2127
- fs.mkdirSync(planFolderPath, { recursive: true });
2124
+ if (!fs.existsSync(planBasePath)) {
2125
+ fs.mkdirSync(planBasePath, { recursive: true });
2128
2126
  }
2129
2127
 
2130
2128
  // 파일명에 planId 포함
2131
2129
  const fileNameWithId = fileName.replace('.md', `__${targetPlanId}.md`);
2132
- planFilePath = path.join(planFolderPath, fileNameWithId);
2130
+ planFilePath = path.join(planBasePath, fileNameWithId);
2133
2131
  }
2134
2132
 
2135
2133
  // 현재 시간
@@ -2244,8 +2242,8 @@ function findPlanFiles(basePath, planId) {
2244
2242
  async function handleDone(args) {
2245
2243
  const { localPath, planId, summary, artifacts = [] } = args;
2246
2244
 
2247
- // z_Plan_Result 폴더 경로 (z_DocuKing 아래)
2248
- const planBasePath = path.join(localPath, 'z_DocuKing', 'z_Plan_Result');
2245
+ // zz_Plan_Result 폴더 경로 (z_DocuKing 아래) - 플랫 구조
2246
+ const planBasePath = path.join(localPath, 'z_DocuKing', 'zz_Plan_Result');
2249
2247
 
2250
2248
  // 계획 파일 찾기
2251
2249
  const planFiles = findPlanFiles(planBasePath, planId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docuking-mcp",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "description": "DocuKing MCP Server - AI 시대의 문서 협업 플랫폼",
5
5
  "type": "module",
6
6
  "main": "index.js",