Skip to content

Commit c44a61a

Browse files
committed
feat(docs): 重构文档结构并添加新内容
- 将文档从 Jekyll 迁移到 Docsify 架构 - 新增用户文档、开发者文档和贡献指南 - 添加快速开始、安装指南和工具列表等实用内容 - 更新 README 以反映最新文档结构 - 添加安全审计报告和测试覆盖率文档 - 完善 CLI 命令参考和常见问题解答
1 parent 1d62c16 commit c44a61a

62 files changed

Lines changed: 2662 additions & 2993 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
"Bash(do)",
3939
"Bash(done)",
4040
"Bash(npm test:*)",
41-
"Bash(npm run test:integration:*)"
41+
"Bash(npm run test:integration:*)",
42+
"Bash(blade mcp:*)"
4243
],
4344
"deny": [],
4445
"ask": [],

CLAUDE.md

Lines changed: 187 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ Root (blade-code)
1414
│ ├── agent/ # Agent核心逻辑和控制器
1515
│ ├── cli/ # CLI配置和中间件
1616
│ ├── commands/ # CLI命令定义和处理
17-
│ ├── config/ # 统一配置管理
17+
│ ├── config/ # 统一配置管理(双文件系统)
18+
│ │ ├── ConfigManager.ts # 配置管理器
19+
│ │ ├── PermissionChecker.ts # 权限检查器
20+
│ │ ├── types.ts # 配置类型定义
21+
│ │ └── defaults.ts # 默认配置
1822
│ ├── context/ # 上下文管理和压缩
1923
│ ├── error/ # 错误处理和恢复
2024
│ ├── ide/ # IDE集成和扩展
@@ -26,7 +30,20 @@ Root (blade-code)
2630
│ ├── slash-commands/ # 内置斜杠命令
2731
│ ├── telemetry/ # 遥测和监控
2832
│ ├── tools/ # 工具系统
33+
│ │ ├── builtin/ # 内置工具(Read/Write/Bash等)
34+
│ │ ├── execution/ # 执行管道
35+
│ │ │ ├── ExecutionPipeline.ts # 6阶段管道
36+
│ │ │ └── PipelineStages.ts # 各阶段实现
37+
│ │ ├── registry/ # 工具注册中心
38+
│ │ ├── types/ # 工具类型定义
39+
│ │ └── validation/ # 参数验证
2940
│ ├── ui/ # UI组件和界面(基于Ink)
41+
│ │ ├── components/ # UI组件
42+
│ │ │ ├── BladeInterface.tsx # 主界面
43+
│ │ │ └── ConfirmationPrompt.tsx # 确认提示
44+
│ │ └── hooks/ # React Hooks
45+
│ │ ├── useCommandHandler.ts # 命令处理
46+
│ │ └── useConfirmation.ts # 确认管理
3047
│ ├── utils/ # 工具函数
3148
│ ├── index.ts # 公共API导出
3249
│ └── blade.tsx # CLI应用入口
@@ -35,6 +52,25 @@ Root (blade-code)
3552
│ ├── integration/ # 多组件工作流测试
3653
│ ├── e2e/ # 端到端CLI测试
3754
│ └── security/ # 安全测试
55+
├── docs/ # 项目文档(按受众分类)
56+
│ ├── index.md # 文档中心导航
57+
│ ├── public/ # 用户文档(Docsify站点)
58+
│ │ ├── getting-started/ # 快速开始
59+
│ │ ├── configuration/ # 配置指南
60+
│ │ ├── guides/ # 使用指南
61+
│ │ └── reference/ # 参考文档
62+
│ ├── development/ # 开发者文档(内部技术)
63+
│ │ ├── architecture/ # 架构设计
64+
│ │ ├── implementation/ # 实现细节
65+
│ │ ├── planning/ # 技术方案
66+
│ │ ├── testing/ # 测试文档
67+
│ │ └── api-reference.md # API参考
68+
│ ├── contributing/ # 贡献者文档(开源贡献)
69+
│ │ ├── README.md # 贡献指南
70+
│ │ ├── pr-creation-guide.md
71+
│ │ ├── release-process.md
72+
│ │ └── security-policy.md
73+
│ └── archive/ # 归档文档(历史参考)
3874
├── dist/blade.js # 构建后的CLI可执行文件
3975
└── package.json # 项目配置
4076
```
@@ -59,8 +95,18 @@ Root (blade-code)
5995
- 工具调用集成
6096

6197
### Key Services
62-
- **ConfigManager** ([src/config/config-manager.ts](src/config/config-manager.ts)): 分层配置管理,支持加密
63-
- 配置优先级:命令行参数 > 环境变量 > 用户配置 > 全局配置 > 默认值
98+
- **ConfigManager** ([src/config/ConfigManager.ts](src/config/ConfigManager.ts)): 双文件配置管理系统
99+
- config.json: 基础配置(API、模型、UI)
100+
- settings.json: 行为配置(权限、Hooks、环境变量)
101+
- 配置优先级:环境变量 > 本地配置 > 项目配置 > 用户配置 > 默认值
102+
- **PermissionChecker** ([src/config/PermissionChecker.ts](src/config/PermissionChecker.ts)): 三级权限控制系统
103+
- 支持 allow/ask/deny 规则
104+
- 支持精确匹配、通配符、Glob 模式
105+
- 集成在执行管道的第 3 阶段
106+
- **ExecutionPipeline** ([src/tools/execution/ExecutionPipeline.ts](src/tools/execution/ExecutionPipeline.ts)): 6 阶段执行管道
107+
- Discovery → Validation → Permission → Confirmation → Execution → Formatting
108+
- 事件驱动架构,支持监听各阶段事件
109+
- 自动记录执行历史
64110
- **PromptBuilder** ([src/prompts/](src/prompts/)): 提示模板管理和构建
65111

66112
## Build & Development Commands
@@ -207,3 +253,141 @@ rm -rf dist && bun build src/blade.tsx \
207253
- **行宽**: 最大 88 字符
208254
- **缩进**: 2 空格
209255
- **TypeScript**: 尽量避免 `any`,测试文件除外
256+
257+
## Documentation Guidelines
258+
259+
### 文档结构
260+
261+
项目文档按受众分为三大类:
262+
263+
1. **用户文档** (`docs/public/`) - 面向最终用户
264+
- 安装、配置、使用指南
265+
- 通过 Docsify 构建静态站点
266+
- 适合 GitHub Pages 部署
267+
268+
2. **开发者文档** (`docs/development/`) - 面向项目开发者
269+
- 架构设计、实现细节
270+
- 技术方案、测试文档
271+
- 不对外公开
272+
273+
3. **贡献者文档** (`docs/contributing/`) - 面向开源贡献者
274+
- 贡献指南、PR 规范
275+
- 发布流程、安全策略
276+
- 适合 GitHub 仓库展示
277+
278+
### 创建新文档指南
279+
280+
#### 1. 确定文档类型
281+
282+
**问自己以下问题:**
283+
- 这个文档是给谁看的?(用户/开发者/贡献者)
284+
- 这个文档的目的是什么?(教程/指南/参考/技术方案)
285+
- 这个文档需要对外公开吗?
286+
287+
**文档归属判断:**
288+
289+
| 文档内容 | 目标目录 | 示例 |
290+
|---------|---------|------|
291+
| 用户安装、配置 | `docs/public/getting-started/` | installation.md, quick-start.md |
292+
| 用户配置指南 | `docs/public/configuration/` | config-system.md, permissions.md |
293+
| 用户使用教程 | `docs/public/guides/` | advanced-usage.md |
294+
| CLI/工具参考 | `docs/public/reference/` | cli-commands.md, tool-list.md |
295+
| 架构设计 | `docs/development/architecture/` | execution-pipeline.md, tool-system.md |
296+
| 实现细节 | `docs/development/implementation/` | logging-system.md, mcp-support.md |
297+
| 技术方案 | `docs/development/planning/` | xxx-plan.md, xxx-proposal.md |
298+
| 测试相关 | `docs/development/testing/` | index.md, coverage.md |
299+
| 贡献规范 | `docs/contributing/` | README.md, pr-creation-guide.md |
300+
| 过时文档 | `docs/archive/` | 历史参考文档 |
301+
302+
#### 2. 文档命名规范
303+
304+
- 使用小写字母和连字符:`config-system.md`(不是 `ConfigSystem.md`
305+
- 名称要描述性强:`execution-pipeline.md`(不是 `pipeline.md`
306+
- 技术方案文档加后缀:`feature-name-plan.md``feature-name-proposal.md`
307+
308+
#### 3. 文档内容规范
309+
310+
**每个文档应包含:**
311+
312+
```markdown
313+
# 标题
314+
315+
> 简短描述:一句话说明这个文档的目的
316+
317+
## 目录(可选,复杂文档需要)
318+
319+
- [章节1](#章节1)
320+
- [章节2](#章节2)
321+
322+
## 正文内容
323+
324+
### 使用代码示例
325+
326+
\`\`\`typescript
327+
// 代码示例要完整且可运行
328+
const example = 'hello';
329+
\`\`\`
330+
331+
### 使用相对链接
332+
333+
引用其他文档时使用相对路径:
334+
- 同目录:[其他文档](other-doc.md)
335+
- 父目录:[上级文档](../parent-doc.md)
336+
- 其他分类:[开发文档](../../development/architecture/tool-system.md)
337+
338+
### 使用表格和图表
339+
340+
让文档易于理解。
341+
342+
## 参考资源(可选)
343+
344+
- 相关文档链接
345+
- 外部资源链接
346+
```
347+
348+
#### 4. 更新文档索引
349+
350+
创建新文档后,必须更新相应的索引:
351+
352+
- **用户文档**: 更新 `docs/public/_sidebar.md``docs/public/README.md`
353+
- **开发者文档**: 更新 `docs/development/README.md`
354+
- **贡献者文档**: 更新 `docs/contributing/README.md`
355+
- **文档中心**: 如果是重要文档,更新 `docs/index.md`
356+
357+
#### 5. 文档维护原则
358+
359+
- **避免重复**:一个主题只写一份文档,其他地方通过链接引用
360+
- **保持同步**:代码变更时及时更新相关文档
361+
- **及时归档**:过时文档移到 `docs/archive/`,不要直接删除
362+
- **交叉引用**:相关文档之间相互链接,形成文档网络
363+
364+
### Docsify 用户文档站点
365+
366+
`docs/public/` 目录配置了 Docsify 静态站点:
367+
368+
- **本地预览**:
369+
```bash
370+
npm install -g docsify-cli
371+
docsify serve docs/public
372+
# 访问 http://localhost:3000
373+
```
374+
375+
- **配置文件**:
376+
- `index.html` - Docsify 配置
377+
- `_sidebar.md` - 侧边栏导航
378+
- `_coverpage.md` - 封面页
379+
- `.nojekyll` - 禁用 Jekyll
380+
381+
- **添加新页面**:
382+
1.`docs/public/` 对应目录创建 `.md` 文件
383+
2.`_sidebar.md` 中添加导航链接
384+
3. 本地预览验证效果
385+
386+
### 文档编写最佳实践
387+
388+
1. **从用户角度出发**:用户文档应该回答"如何做"而非"这是什么"
389+
2. **提供完整示例**:代码示例要能直接运行,不需要额外修改
390+
3. **循序渐进**:从简单到复杂,从基础到高级
391+
4. **使用视觉辅助**:表格、流程图、代码高亮让文档更易读
392+
5. **保持简洁**:一个文档只讲一个主题,不要贪多
393+
6. **定期审查**:每个月检查文档是否还与代码实现一致

README.md

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,15 @@
5252

5353
---
5454

55+
## 📖 文档
56+
57+
- **[完整文档](docs/index.md)** - 文档中心导航
58+
- **[用户文档](docs/public/README.md)** - 安装、配置、使用指南
59+
- **[开发者文档](docs/development/README.md)** - 架构设计、技术实现
60+
- **[贡献指南](docs/contributing/README.md)** - 参与开源贡献
61+
62+
---
63+
5564
## 🚀 快速开始
5665

5766
### ⚡ 零安装试用
@@ -260,6 +269,8 @@ blade --agents '{"reviewer": {"model": "qwen-max"}}' "审查代码"
260269

261270
### 安全与权限
262271

272+
Blade 提供强大的三级权限控制系统(allow/ask/deny):
273+
263274
```bash
264275
# 跳过权限检查(危险)
265276
blade --dangerouslySkipPermissions "执行命令"
@@ -278,6 +289,30 @@ blade --permissionMode acceptEdits "修改代码" # 自动接受编辑
278289
blade --addDir /path/to/dir "访问目录"
279290
```
280291

292+
**权限配置示例** (`.blade/settings.json`):
293+
```json
294+
{
295+
"permissions": {
296+
"allow": [
297+
"Read(file_path:**/*.ts)",
298+
"Grep",
299+
"Glob"
300+
],
301+
"ask": [
302+
"Write",
303+
"Edit",
304+
"Bash(command:npm *)"
305+
],
306+
"deny": [
307+
"Read(file_path:.env)",
308+
"Bash(command:rm -rf *)"
309+
]
310+
}
311+
}
312+
```
313+
314+
详见 [权限系统指南](docs/public/configuration/permissions.md)
315+
281316
### IDE 集成
282317

283318
```bash
@@ -397,13 +432,19 @@ Blade Code 采用现代化的扁平化架构设计:
397432

398433
```
399434
src/
400-
├── agent/ # Agent 核心逻辑
435+
├── agent/ # Agent 核心逻辑和控制器
401436
├── cli/ # CLI 配置和中间件
402-
├── commands/ # 命令处理器
403-
├── config/ # 配置管理
404-
├── tools/ # 工具系统
405-
├── ui/ # UI 组件(基于 Ink)
406-
├── services/ # 共享服务
437+
├── commands/ # CLI 命令定义和处理
438+
├── config/ # 统一配置管理(双文件系统)
439+
├── tools/ # 工具系统(含执行管道)
440+
│ ├── builtin/ # 内置工具
441+
│ ├── execution/ # 6阶段执行管道
442+
│ ├── registry/ # 工具注册中心
443+
│ └── validation/ # 参数验证
444+
├── ui/ # UI 组件和界面(基于 Ink)
445+
├── services/ # 共享服务层
446+
├── prompts/ # 提示模板管理
447+
├── mcp/ # MCP 协议实现
407448
└── utils/ # 工具函数
408449
```
409450

@@ -414,6 +455,9 @@ src/
414455
- 🎨 **React for CLI**:基于 Ink 的现代化 UI
415456
- 🔧 **TypeScript**:完整类型支持
416457
-**全面测试**:单元、集成、E2E 测试覆盖
458+
- 🔒 **6阶段执行管道**:Discovery → Validation → Permission → Confirmation → Execution → Formatting
459+
- 🛡️ **三级权限控制**:allow/ask/deny 精细化权限管理
460+
- 🎯 **双配置文件系统**:config.json(基础配置) + settings.json(行为配置)
417461

418462
---
419463

docs/_config.yml

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/_coverpage.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

docs/_sidebar.md

Lines changed: 0 additions & 37 deletions
This file was deleted.
File renamed without changes.

0 commit comments

Comments
 (0)