# 市场API

<cite>
**本文引用的文件**
- [src/app/api/marketplace/route.ts](file://src/app/api/marketplace/route.ts)
- [src/app/api/marketplace/[id]/route.ts](file://src/app/api/marketplace/[id]/route.ts)
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts)
- [src/app/api/marketplace/[id]/tree/route.ts](file://src/app/api/marketplace/[id]/tree/route.ts)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts)
- [src/app/api/marketplace/[id]/fs/import/route.ts](file://src/app/api/marketplace/[id]/fs/import/route.ts)
- [src/app/api/marketplace/[id]/use/route.ts](file://src/app/api/marketplace/[id]/use/route.ts)
- [src/app/api/marketplace/save-from-workspace/route.ts](file://src/app/api/marketplace/save-from-workspace/route.ts)
- [src/lib/marketplace-fs.ts](file://src/lib/marketplace-fs.ts)
- [src/lib/db.ts](file://src/lib/db.ts)
- [src/hooks/use-marketplace.ts](file://src/hooks/use-marketplace.ts)
- [src/components/marketplace/template-list-panel.tsx](file://src/components/marketplace/template-list-panel.tsx)
- [src/components/marketplace/template-editor-panel.tsx](file://src/components/marketplace/template-editor-panel.tsx)
- [src/components/views/marketplace-view.tsx](file://src/components/views/marketplace-view.tsx)
- [src/lib/types.ts](file://src/lib/types.ts)
- [templates/init/CLAUDE.md](file://templates/init/CLAUDE.md)
</cite>

## 目录
1. [简介](#简介)
2. [项目结构](#项目结构)
3. [核心组件](#核心组件)
4. [架构总览](#架构总览)
5. [详细组件分析](#详细组件分析)
6. [依赖关系分析](#依赖关系分析)
7. [性能考量](#性能考量)
8. [故障排查指南](#故障排查指南)
9. [结论](#结论)
10. [附录](#附录)

## 简介
本文件为Forge市场API的详细参考文档，覆盖模板市场的RESTful接口与前端交互，包括模板列表获取、详情查询、文件读写、树形浏览、导入导出、从工作区保存为模板、使用模板创建项目等能力。文档同时说明模板文件结构、元数据格式、安全校验策略、版本与兼容性建议，并给出模板开发规范与最佳实践。

## 项目结构
市场API由三层组成：
- 后端路由层：Next.js App Router风格的API路由，负责请求解析、参数校验、权限与安全检查、调用业务函数与持久化。
- 业务工具层：模板文件系统工具，负责模板目录结构、复制、排除规则、树构建等。
- 前端交互层：React Hook与UI组件，负责模板列表、编辑器、拖拽/粘贴导入、键盘快捷键等。

```mermaid
graph TB
subgraph "前端"
MV["MarketplaceView<br/>视图容器"]
TLP["TemplateListPanel<br/>模板列表"]
TEP["TemplateEditorPanel<br/>模板编辑器"]
UMP["useMarketplace<br/>状态钩子"]
end
subgraph "后端API"
API_ROOT["GET/POST /api/marketplace"]
API_ID["PATCH/DELETE /api/marketplace/[id]"]
API_FILES["GET/PUT /api/marketplace/[id]/files"]
API_TREE["GET /api/marketplace/[id]/tree"]
API_FS["POST/PATCH/DELETE /api/marketplace/[id]/fs"]
API_IMPORT["POST /api/marketplace/[id]/fs/import"]
API_USE["POST /api/marketplace/[id]/use"]
API_SAVE["POST /api/marketplace/save-from-workspace"]
end
subgraph "业务工具"
FS["marketplace-fs<br/>模板文件系统"]
DB["db<br/>SQLite数据库"]
end
MV --> TLP
MV --> TEP
TLP --> UMP
TEP --> API_TREE
TEP --> API_FILES
TEP --> API_FS
TEP --> API_IMPORT
TEP --> API_USE
UMP --> API_ROOT
UMP --> API_ID
API_ROOT --> DB
API_ID --> DB
API_FILES --> FS
API_TREE --> FS
API_FS --> FS
API_IMPORT --> FS
API_USE --> FS
API_SAVE --> FS
API_USE --> DB
API_SAVE --> DB
```

**图表来源**
- [src/components/views/marketplace-view.tsx:16-109](file://src/components/views/marketplace-view.tsx#L16-L109)
- [src/components/marketplace/template-list-panel.tsx:26-247](file://src/components/marketplace/template-list-panel.tsx#L26-L247)
- [src/components/marketplace/template-editor-panel.tsx:40-867](file://src/components/marketplace/template-editor-panel.tsx#L40-L867)
- [src/hooks/use-marketplace.ts:22-85](file://src/hooks/use-marketplace.ts#L22-L85)
- [src/app/api/marketplace/route.ts:7-39](file://src/app/api/marketplace/route.ts#L7-L39)
- [src/app/api/marketplace/[id]/route.ts](file://src/app/api/marketplace/[id]/route.ts#L6-L45)
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L7-L71)
- [src/app/api/marketplace/[id]/tree/route.ts](file://src/app/api/marketplace/[id]/tree/route.ts#L5-L19)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts#L15-L129)
- [src/app/api/marketplace/[id]/fs/import/route.ts](file://src/app/api/marketplace/[id]/fs/import/route.ts#L7-L69)
- [src/app/api/marketplace/[id]/use/route.ts](file://src/app/api/marketplace/[id]/use/route.ts#L7-L68)
- [src/app/api/marketplace/save-from-workspace/route.ts:6-48](file://src/app/api/marketplace/save-from-workspace/route.ts#L6-L48)
- [src/lib/marketplace-fs.ts:1-158](file://src/lib/marketplace-fs.ts#L1-L158)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

**章节来源**
- [src/components/views/marketplace-view.tsx:16-109](file://src/components/views/marketplace-view.tsx#L16-L109)
- [src/components/marketplace/template-list-panel.tsx:26-247](file://src/components/marketplace/template-list-panel.tsx#L26-L247)
- [src/components/marketplace/template-editor-panel.tsx:40-867](file://src/components/marketplace/template-editor-panel.tsx#L40-L867)
- [src/hooks/use-marketplace.ts:22-85](file://src/hooks/use-marketplace.ts#L22-L85)
- [src/app/api/marketplace/route.ts:7-39](file://src/app/api/marketplace/route.ts#L7-L39)
- [src/app/api/marketplace/[id]/route.ts](file://src/app/api/marketplace/[id]/route.ts#L6-L45)
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L7-L71)
- [src/app/api/marketplace/[id]/tree/route.ts](file://src/app/api/marketplace/[id]/tree/route.ts#L5-L19)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts#L15-L129)
- [src/app/api/marketplace/[id]/fs/import/route.ts](file://src/app/api/marketplace/[id]/fs/import/route.ts#L7-L69)
- [src/app/api/marketplace/[id]/use/route.ts](file://src/app/api/marketplace/[id]/use/route.ts#L7-L68)
- [src/app/api/marketplace/save-from-workspace/route.ts:6-48](file://src/app/api/marketplace/save-from-workspace/route.ts#L6-L48)
- [src/lib/marketplace-fs.ts:1-158](file://src/lib/marketplace-fs.ts#L1-L158)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

## 核心组件
- 模板数据库表：marketplace_templates（id、name、created_at、updated_at）
- 模板文件系统：模板目录位于~/.forge/marketplace/<templateId>/，内容结构与项目中的.claudefiles一致
- 前端状态与交互：useMarketplace Hook负责模板列表的增删改查；TemplateListPanel与TemplateEditorPanel提供UI与操作入口

**章节来源**
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)
- [src/lib/marketplace-fs.ts:35-40](file://src/lib/marketplace-fs.ts#L35-L40)
- [src/hooks/use-marketplace.ts:22-85](file://src/hooks/use-marketplace.ts#L22-L85)

## 架构总览
市场API采用“前端请求—后端路由—业务工具—持久化”的分层设计。所有模板操作均通过安全校验与路径限制，确保不越权访问或破坏系统文件。模板文件复制遵循排除规则（如MEMORY.md、memory、HEARTBEAT.md），以避免污染模板。

```mermaid
sequenceDiagram
participant FE as "前端"
participant API as "API路由"
participant FS as "模板文件系统"
participant DB as "SQLite数据库"
FE->>API : "GET /api/marketplace"
API->>DB : "查询模板列表"
DB-->>API : "返回模板数组"
API-->>FE : "JSON响应"
FE->>API : "POST /api/marketplace"
API->>FS : "创建模板目录"
API->>DB : "插入模板记录"
API-->>FE : "返回新建模板"
FE->>API : "GET /api/marketplace/[id]/files?name=..."
API->>DB : "校验模板存在"
API->>FS : "读取文件内容"
API-->>FE : "返回{filename,content}"
FE->>API : "PUT /api/marketplace/[id]/files"
API->>DB : "校验模板存在"
API->>FS : "写入文件并更新时间戳"
API-->>FE : "{ok : true}"
```

**图表来源**
- [src/app/api/marketplace/route.ts:7-39](file://src/app/api/marketplace/route.ts#L7-L39)
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L7-L71)
- [src/lib/marketplace-fs.ts:35-40](file://src/lib/marketplace-fs.ts#L35-L40)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

## 详细组件分析

### 模板生命周期与REST接口
- 列表与创建
  - GET /api/marketplace：按updated_at倒序返回模板列表
  - POST /api/marketplace：创建空模板，生成唯一ID并在磁盘上建立目录，同时写入数据库
- 重命名与删除
  - PATCH /api/marketplace/[id]：重命名模板
  - DELETE /api/marketplace/[id]：删除模板目录与数据库记录
- 文件读写与树形浏览
  - GET /api/marketplace/[id]/files?name=path：读取模板内文件内容
  - PUT /api/marketplace/[id]/files：写入模板内文件内容
  - GET /api/marketplace/[id]/tree：返回模板树形结构
- 文件系统操作与批量导入
  - POST /api/marketplace/[id]/fs：创建文件或文件夹
  - PATCH /api/marketplace/[id]/fs：重命名文件或文件夹
  - DELETE /api/marketplace/[id]/fs?path=...：删除文件或文件夹
  - POST /api/marketplace/[id]/fs/import：从外部绝对路径导入文件到模板
- 使用模板与从工作区保存
  - POST /api/marketplace/[id]/use：将模板复制到目标项目路径下的.claudefiles中，注册工作区并创建会话
  - POST /api/marketplace/save-from-workspace：从工作区的.claudefiles中复制到模板（排除特定文件）

```mermaid
flowchart TD
Start(["开始"]) --> List["GET /api/marketplace"]
List --> Create["POST /api/marketplace"]
Create --> Edit["编辑模板文件<br/>GET/PUT /files 或 /fs"]
Edit --> Import["POST /fs/import 导入外部文件"]
Edit --> Use["POST /use 创建项目"]
Use --> Save["POST /save-from-workspace 保存为模板"]
Save --> End(["结束"])
```

**图表来源**
- [src/app/api/marketplace/route.ts:7-39](file://src/app/api/marketplace/route.ts#L7-L39)
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L7-L71)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts#L15-L129)
- [src/app/api/marketplace/[id]/fs/import/route.ts](file://src/app/api/marketplace/[id]/fs/import/route.ts#L7-L69)
- [src/app/api/marketplace/[id]/use/route.ts](file://src/app/api/marketplace/[id]/use/route.ts#L7-L68)
- [src/app/api/marketplace/save-from-workspace/route.ts:6-48](file://src/app/api/marketplace/save-from-workspace/route.ts#L6-L48)

**章节来源**
- [src/app/api/marketplace/route.ts:7-39](file://src/app/api/marketplace/route.ts#L7-L39)
- [src/app/api/marketplace/[id]/route.ts](file://src/app/api/marketplace/[id]/route.ts#L6-L45)
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L7-L71)
- [src/app/api/marketplace/[id]/tree/route.ts](file://src/app/api/marketplace/[id]/tree/route.ts#L5-L19)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts#L15-L129)
- [src/app/api/marketplace/[id]/fs/import/route.ts](file://src/app/api/marketplace/[id]/fs/import/route.ts#L7-L69)
- [src/app/api/marketplace/[id]/use/route.ts](file://src/app/api/marketplace/[id]/use/route.ts#L7-L68)
- [src/app/api/marketplace/save-from-workspace/route.ts:6-48](file://src/app/api/marketplace/save-from-workspace/route.ts#L6-L48)

### 模板文件结构与元数据
- 存储位置：~/.forge/marketplace/<templateId>/
- 结构映射：与项目.claudefiles保持一致，支持多级目录与文件
- 元数据字段：id、name、created_at、updated_at
- 排除规则：从工作区复制到模板时，排除MEMORY.md、memory目录、HEARTBEAT.md

```mermaid
classDiagram
class MarketplaceTemplate {
+string id
+string name
+string createdAt
+string updatedAt
}
class DB {
+createTable_ifNotExists(marketplace_templates)
+SELECT/INSERT/UPDATE/DELETE
}
class FS {
+getTemplatePath(id)
+buildTemplateTree(id)
+copyClaudeToTemplate(projectPath, templateId)
+copyTemplateToProject(templateId, projectPath)
}
MarketplaceTemplate <.. DB : "持久化"
FS <.. DB : "模板目录"
```

**图表来源**
- [src/lib/types.ts:213-221](file://src/lib/types.ts#L213-L221)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)
- [src/lib/marketplace-fs.ts:35-40](file://src/lib/marketplace-fs.ts#L35-L40)
- [src/lib/marketplace-fs.ts:76-116](file://src/lib/marketplace-fs.ts#L76-L116)

**章节来源**
- [src/lib/marketplace-fs.ts:35-40](file://src/lib/marketplace-fs.ts#L35-L40)
- [src/lib/marketplace-fs.ts:76-116](file://src/lib/marketplace-fs.ts#L76-L116)
- [src/lib/types.ts:213-221](file://src/lib/types.ts#L213-L221)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

### 安全与路径校验
- 路径遍历防护：所有文件操作均对相对路径进行解析与边界检查，禁止越界访问
- 输入校验：JSON解析失败、必填字段缺失、非法字符（..）均返回错误
- 权限控制：仅存在模板才允许后续操作，否则返回404

```mermaid
flowchart TD
A["接收请求"] --> B["解析JSON/查询参数"]
B --> C{"参数有效?"}
C -- 否 --> E["返回400 错误"]
C -- 是 --> D["校验模板是否存在"]
D --> F{"模板存在?"}
F -- 否 --> G["返回404 错误"]
F -- 是 --> H["执行业务逻辑"]
H --> I["返回成功响应"]
```

**图表来源**
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L15-L35)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts#L25-L53)
- [src/app/api/marketplace/[id]/fs/import/route.ts](file://src/app/api/marketplace/[id]/fs/import/route.ts#L17-L28)

**章节来源**
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L15-L35)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts#L25-L53)
- [src/app/api/marketplace/[id]/fs/import/route.ts](file://src/app/api/marketplace/[id]/fs/import/route.ts#L17-L28)

### 使用模板与工作区集成
- POST /api/marketplace/[id]/use：将模板复制到目标项目.claudefiles，若工作区不存在则注册，再创建会话，返回工作区ID与会话ID
- 与前端协作：MarketplaceView弹出系统目录选择器，收集项目路径后调用该接口

```mermaid
sequenceDiagram
participant FE as "前端"
participant API as "use/route.ts"
participant FS as "marketplace-fs"
participant DB as "db"
FE->>API : "POST /use {projectPath}"
API->>DB : "查询模板是否存在"
API->>FS : "copyTemplateToProject(id, projectPath)"
API->>DB : "查找/注册工作区"
API->>DB : "创建新会话"
API-->>FE : "{workspaceId, sessionId}"
```

**图表来源**
- [src/app/api/marketplace/[id]/use/route.ts](file://src/app/api/marketplace/[id]/use/route.ts#L7-L68)
- [src/lib/marketplace-fs.ts:118-134](file://src/lib/marketplace-fs.ts#L118-L134)
- [src/lib/db.ts:159-164](file://src/lib/db.ts#L159-L164)

**章节来源**
- [src/app/api/marketplace/[id]/use/route.ts](file://src/app/api/marketplace/[id]/use/route.ts#L7-L68)
- [src/lib/marketplace-fs.ts:118-134](file://src/lib/marketplace-fs.ts#L118-L134)
- [src/lib/db.ts:159-164](file://src/lib/db.ts#L159-L164)

### 从工作区保存为模板
- POST /api/marketplace/save-from-workspace：根据workspaceId定位项目路径，将.claudefiles复制到新模板目录并写入数据库

```mermaid
sequenceDiagram
participant FE as "前端"
participant API as "save-from-workspace/route.ts"
participant FS as "marketplace-fs"
participant DB as "db"
FE->>API : "POST {workspaceId, name}"
API->>DB : "查询工作区"
API->>FS : "copyClaudeToTemplate(path, templateId)"
API->>DB : "INSERT marketplace_templates"
API-->>FE : "返回新建模板"
```

**图表来源**
- [src/app/api/marketplace/save-from-workspace/route.ts:6-48](file://src/app/api/marketplace/save-from-workspace/route.ts#L6-L48)
- [src/lib/marketplace-fs.ts:76-92](file://src/lib/marketplace-fs.ts#L76-L92)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

**章节来源**
- [src/app/api/marketplace/save-from-workspace/route.ts:6-48](file://src/app/api/marketplace/save-from-workspace/route.ts#L6-L48)
- [src/lib/marketplace-fs.ts:76-92](file://src/lib/marketplace-fs.ts#L76-L92)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

### 前端交互与编辑器
- useMarketplace：封装模板列表的增删改查与选中态
- TemplateListPanel：模板列表、搜索、上下文菜单、创建/重命名/删除
- TemplateEditorPanel：文件树、文件内容编辑、预览/拆分视图、拖拽/粘贴导入、快捷键保存

```mermaid
graph LR
UMP["useMarketplace"] --> API_ROOT["/api/marketplace"]
UMP --> API_ID["/api/marketplace/[id]"]
TEP["TemplateEditorPanel"] --> API_TREE["/api/marketplace/[id]/tree"]
TEP --> API_FILES["/api/marketplace/[id]/files"]
TEP --> API_FS["/api/marketplace/[id]/fs"]
TEP --> API_IMPORT["/api/marketplace/[id]/fs/import"]
TEP --> API_USE["/api/marketplace/[id]/use"]
TLP["TemplateListPanel"] --> UMP
MV["MarketplaceView"] --> TLP
MV --> TEP
```

**图表来源**
- [src/hooks/use-marketplace.ts:22-85](file://src/hooks/use-marketplace.ts#L22-L85)
- [src/components/marketplace/template-list-panel.tsx:26-247](file://src/components/marketplace/template-list-panel.tsx#L26-L247)
- [src/components/marketplace/template-editor-panel.tsx:40-867](file://src/components/marketplace/template-editor-panel.tsx#L40-L867)
- [src/components/views/marketplace-view.tsx:16-109](file://src/components/views/marketplace-view.tsx#L16-L109)

**章节来源**
- [src/hooks/use-marketplace.ts:22-85](file://src/hooks/use-marketplace.ts#L22-L85)
- [src/components/marketplace/template-list-panel.tsx:26-247](file://src/components/marketplace/template-list-panel.tsx#L26-L247)
- [src/components/marketplace/template-editor-panel.tsx:40-867](file://src/components/marketplace/template-editor-panel.tsx#L40-L867)
- [src/components/views/marketplace-view.tsx:16-109](file://src/components/views/marketplace-view.tsx#L16-L109)

## 依赖关系分析
- 组件耦合
  - 前端组件通过API路由与业务工具解耦，便于替换实现
  - 模板文件系统与数据库共同维护模板元数据与内容
- 外部依赖
  - better-sqlite3：本地轻量数据库
  - Node fs/path：文件系统操作
  - Electron API：目录对话框与剪贴板文件读取（在Electron环境中）

```mermaid
graph TB
TEP["TemplateEditorPanel"] --> API_FILES
TEP --> API_FS
TEP --> API_IMPORT
API_FILES --> FS["marketplace-fs"]
API_FS --> FS
API_IMPORT --> FS
API_USE --> FS
API_SAVE --> FS
FS --> DB["db"]
API_ROOT --> DB
API_ID --> DB
```

**图表来源**
- [src/components/marketplace/template-editor-panel.tsx:107-123](file://src/components/marketplace/template-editor-panel.tsx#L107-L123)
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L37-L71)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts#L15-L129)
- [src/app/api/marketplace/[id]/fs/import/route.ts](file://src/app/api/marketplace/[id]/fs/import/route.ts#L22-L69)
- [src/lib/marketplace-fs.ts:76-158](file://src/lib/marketplace-fs.ts#L76-L158)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

**章节来源**
- [src/lib/marketplace-fs.ts:76-158](file://src/lib/marketplace-fs.ts#L76-L158)
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

## 性能考量
- 数据库
  - WAL模式与外键约束已启用，适合频繁读写的场景
  - 模板列表按updated_at排序，建议在前端做分页或懒加载
- 文件系统
  - 复制与导入操作涉及大量IO，建议在后台线程或异步任务中执行
  - 树构建递归深度默认限制，避免深层目录导致的性能问题
- 前端
  - 编辑器按需渲染，预览与拆分视图可减少不必要的重绘
  - 拖拽与粘贴导入采用乐观更新，失败回滚，提升交互体验

## 故障排查指南
- 常见错误
  - 400 Invalid JSON：请求体非JSON或字段缺失
  - 400 Invalid filename/path：包含非法字符或路径越界
  - 404 Template not found：模板ID无效
  - 404 File not found：文件不存在或为目录
- 排查步骤
  - 确认模板ID正确且存在
  - 检查路径是否包含“..”或越界
  - 验证目标目录存在且为目录
  - 查看数据库日志与文件系统权限
- 建议
  - 对外部导入路径进行白名单校验
  - 在高并发场景下增加幂等与锁机制

**章节来源**
- [src/app/api/marketplace/[id]/files/route.ts](file://src/app/api/marketplace/[id]/files/route.ts#L15-L35)
- [src/app/api/marketplace/[id]/fs/route.ts](file://src/app/api/marketplace/[id]/fs/route.ts#L104-L128)
- [src/app/api/marketplace/[id]/use/route.ts](file://src/app/api/marketplace/[id]/use/route.ts#L20-L34)

## 结论
Forge市场API提供了完整的模板生命周期管理能力，从前端交互到后端路由与文件系统，形成清晰的分层架构。通过严格的路径校验与排除规则，保障了安全性与稳定性。建议在生产环境中结合缓存、分页与异步任务进一步优化性能，并完善审核与推荐机制以支撑更丰富的市场生态。

## 附录

### 模板开发规范与最佳实践
- 文件组织
  - 优先使用标准配置文件（如CLAUDE.md、IDENTITY.md、USER.md等），避免自定义文件名
  - 将可复用的提示词与规则放入独立文件，便于版本管理
- 内容质量
  - 明确角色与边界，避免过度泛化
  - 提供示例与约束，降低歧义
- 版本与兼容
  - 通过目录版本号或文件头注释标识版本
  - 保持向后兼容，避免破坏已有工作流

**章节来源**
- [templates/init/CLAUDE.md:1-82](file://templates/init/CLAUDE.md#L1-L82)

### 模板元数据与字段说明
- marketplace_templates
  - id：模板唯一标识
  - name：模板名称
  - created_at：创建时间
  - updated_at：最后更新时间

**章节来源**
- [src/lib/db.ts:201-206](file://src/lib/db.ts#L201-L206)

### 审核流程与推荐算法（概念性说明）
- 审核流程（概念）
  - 自动扫描：关键词过滤、敏感信息检测
  - 人工复核：评分与标注
  - 上架/下架：基于评分与举报
- 推荐算法（概念）
  - 协同过滤：基于相似模板的使用行为
  - 内容检索：基于标签与描述的向量匹配
  - 排序策略：综合评分、下载量、时效性

[本节为概念性内容，不直接分析具体源码文件]