718 lines
18 KiB
Markdown
718 lines
18 KiB
Markdown
---
|
||
description: "系统性探索:扫描分析代码库,构建知识图谱,更新记忆系统"
|
||
---
|
||
|
||
# 系统性探索模式
|
||
|
||
## 目的
|
||
|
||
面对全新或复杂的代码库,像人类探索陌生环境一样——系统化扫描、识别模式、建立认知地图,将碎片信息整合为结构化知识,并更新我们的记忆网络。
|
||
|
||
## 何时使用
|
||
|
||
### 应当使用 /runtime.explore 的场景
|
||
- ✅ 刚克隆一个全新的项目仓库
|
||
- ✅ 接手一个陌生的代码库
|
||
- ✅ 代码库发生大规模重构后
|
||
- ✅ 发现模块间依赖关系模糊不清
|
||
- ✅ 需要生成项目全景图
|
||
- ✅ 置信度低于0.5时进行全面验证
|
||
|
||
## 探索流程
|
||
|
||
### 阶段1:宏观架构扫描
|
||
|
||
#### 1.1 文件系统拓扑
|
||
分析项目骨架:
|
||
```bash
|
||
# 执行脚本:scan-filesystem.sh
|
||
find . -type f -name "*.js" -o -name "*.ts" -o -name "*.py" \
|
||
-o -name "*.json" -o -name "*.md" | head -200 | treeify
|
||
```
|
||
|
||
提取关键信息:
|
||
- 目录语义(src, lib, tests, docs的含义)
|
||
- 文件分布密度(哪些目录是核心)
|
||
- 命名模式(kebab-case vs camelCase)
|
||
- 入口点识别(index.js, main.py, app.js)
|
||
|
||
#### 1.2 技术栈识别
|
||
扫描配置文件:
|
||
- `package.json` / `requirements.txt` / `go.mod` → 语言与依赖
|
||
- `.eslintrc.js` / `tsconfig.json` → 代码规范
|
||
- `Dockerfile` / `docker-compose.yml` → 部署环境
|
||
- `webpack.config.js` / `vite.config.ts` → 构建工具
|
||
|
||
**记忆更新**:
|
||
```markdown
|
||
## 技术栈
|
||
**发现时间**: 2025-11-14
|
||
**置信度**: 0.95
|
||
|
||
**核心语言**: JavaScript (Node.js 18+)
|
||
**框架**: Express.js 4.18 + React 18
|
||
**数据库**: PostgreSQL 14 + Redis 6
|
||
**测试**: Jest + Supertest
|
||
**构建**: Webpack 5 + Babel
|
||
**部署**: Docker + Kubernetes
|
||
|
||
**关键依赖**:
|
||
- auth0: JWT认证
|
||
- prisma: ORM
|
||
- bull: 任务队列
|
||
```
|
||
|
||
### 阶段2:代码模式识别
|
||
|
||
#### 2.1 架构模式检测
|
||
|
||
扫描关键模块,识别高层模式:
|
||
|
||
```javascript
|
||
// 识别MVC模式
|
||
if (hasDirectory('controllers') && hasDirectory('models') && hasDirectory('views')) {
|
||
pattern = 'MVC';
|
||
confidence += 0.3;
|
||
}
|
||
|
||
// 识别分层架构
|
||
if (hasDirectory('api/service') && hasDirectory('api/data-access')) {
|
||
pattern = 'Layered Architecture';
|
||
confidence += 0.25;
|
||
}
|
||
|
||
// 识别微服务迹象
|
||
if (hasManyPackageJSON() && hasSharedLibs()) {
|
||
pattern = 'Microservices';
|
||
confidence += 0.2;
|
||
}
|
||
```
|
||
|
||
**记忆更新**:
|
||
```markdown
|
||
## 架构模式
|
||
**识别时间**: 2025-11-14
|
||
**置信度**: 0.85
|
||
|
||
**主要模式**: Layered Architecture (API层 → Service层 → Repository层)
|
||
**次要模式**: Service Object模式、Repository模式
|
||
|
||
**分层结构**:
|
||
- /api/controllers: HTTP请求处理
|
||
- /services: 业务逻辑 (纯JS,无框架依赖)
|
||
- /repositories: 数据访问 (Prisma封装)
|
||
- /models: Prisma schema
|
||
- /libs: 通用工具
|
||
```
|
||
|
||
#### 2.2 代码质量指纹
|
||
|
||
提取质量指标:
|
||
- 函数平均长度
|
||
- 文件平均行数
|
||
- 注释覆盖率
|
||
- 测试覆盖率(如果存在)
|
||
- 重复代码模式
|
||
|
||
使用工具辅助:
|
||
```bash
|
||
# 计算代码统计
|
||
cloc --json --exclude-dir=node_modules .
|
||
|
||
# 提取函数长度
|
||
grep -r "function\|const.*=" src --include="*.js" | wc -l
|
||
|
||
# 识别重复模式
|
||
jscpd --min-tokens 50 --reporters json src/
|
||
```
|
||
|
||
**记忆更新**:
|
||
```markdown
|
||
## 代码质量指纹
|
||
**扫描时间**: 2025-11-14
|
||
**置信度**: 0.8
|
||
|
||
**健康指标**:
|
||
- 平均函数长度: 25行 ✅ (良好)
|
||
- 平均文件长度: 150行 ✅ (良好)
|
||
- 测试覆盖率: 67% ⚠️ (中等)
|
||
- 注释密度: 8% ⚠️ (偏低)
|
||
- 技术债务标记: 12个 TODO, 5个 FIXME
|
||
|
||
**模式识别**:
|
||
- ✅ 一致的async/await使用
|
||
- ✅ 良好的错误处理模式
|
||
- ⚠️ 部分文件过长 (auth.service.js: 450行)
|
||
- ❌ 缺少单元测试 (auth.controller.js)
|
||
```
|
||
|
||
### 阶段3:依赖关系图谱构建
|
||
|
||
#### 3.1 模块依赖图
|
||
|
||
分析模块间的import/require关系:
|
||
|
||
```javascript
|
||
// scan-imports.js
|
||
const results = {};
|
||
|
||
// 提取依赖
|
||
for (const file of allFiles) {
|
||
const content = readFile(file);
|
||
const imports = extractImports(content);
|
||
|
||
results[file] = {
|
||
imports: imports,
|
||
importedBy: [],
|
||
centrality: calculateCentrality(file, allDeps)
|
||
};
|
||
}
|
||
|
||
// 构建反向索引
|
||
for (const [file, data] of Object.entries(results)) {
|
||
for (const imp of data.imports) {
|
||
if (results[imp]) {
|
||
results[imp].importedBy.push(file);
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
**知识图谱输出**:
|
||
```json
|
||
{
|
||
"nodes": [
|
||
{
|
||
"id": "auth/service.js",
|
||
"type": "service",
|
||
"centrality": 0.85,
|
||
"complexity": "high"
|
||
}
|
||
],
|
||
"edges": [
|
||
{
|
||
"from": "auth/controller.js",
|
||
"to": "auth/service.js",
|
||
"type": "calls",
|
||
"strength": 0.9
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
**记忆更新**:
|
||
```markdown
|
||
## 模块依赖图谱
|
||
**构建时间**: 2025-11-14
|
||
**节点数**: 47个文件
|
||
**边数**: 132条依赖关系
|
||
|
||
**核心节点** (centrality > 0.7):
|
||
1. auth/service.js (0.85) - 认证业务核心
|
||
2. user/repository.js (0.78) - 用户数据访问
|
||
3. utils/logger.js (0.72) - 日志工具
|
||
|
||
**关键路径**:
|
||
- api → services → repositories → database
|
||
- libs被所有层调用
|
||
|
||
**潜在问题**:
|
||
- auth/service.js 过于中心化(风险单点)
|
||
- utils/helpers.js 反向依赖了api层(违反分层)
|
||
```
|
||
|
||
#### 3.2 数据流分析
|
||
|
||
识别关键数据流:
|
||
- 请求生命周期(middleware → controller → service → db)
|
||
- 异步任务流(bull queue processors)
|
||
- 事件流(EventEmitter patterns)
|
||
|
||
**记忆更新**:
|
||
```markdown
|
||
## 数据流模式
|
||
**识别时间**: 2025-11-14
|
||
|
||
**HTTP请求流**:
|
||
1. middleware/auth.js (JWT验证)
|
||
2. api/controllers/*.js (路由处理)
|
||
3. services/*.js (业务逻辑)
|
||
4. repositories/*.js (数据访问)
|
||
5. return to controller (响应格式化)
|
||
|
||
**异步任务流**:
|
||
1. services/job-queues.js 提交任务
|
||
2. workers/email-worker.js 处理
|
||
3. 回调更新数据库
|
||
4. Event: job:completed
|
||
|
||
**关键发现**: 缺少统一的错误处理中间件
|
||
```
|
||
|
||
### 阶段4:概念与实体识别
|
||
|
||
#### 4.1 领域实体映射
|
||
|
||
扫描代码识别核心实体:
|
||
|
||
```javascript
|
||
// 从Prisma schema识别
|
||
entity User { id, email, password, createdAt }
|
||
entity Post { id, title, content, authorId }
|
||
entity Comment { id, text, postId, userId }
|
||
|
||
// 从文件命名识别
|
||
controllers/userController.js → User实体
|
||
services/authService.js → Auth领域
|
||
```
|
||
|
||
**记忆更新**:
|
||
```markdown
|
||
## 领域实体映射
|
||
**识别时间**: 2025-11-14
|
||
|
||
**核心实体** (5个):
|
||
1. User - 用户账户
|
||
2. Post - 博客文章
|
||
3. Comment - 评论
|
||
4. Tag - 标签
|
||
5. File - 上传文件
|
||
|
||
**实体关系**:
|
||
User 1:N Post (一个用户多篇文章)
|
||
Post N:N Tag (多对多标签)
|
||
Post 1:N Comment (一篇文章多个评论)
|
||
User 1:N Comment (一个用户多个评论)
|
||
|
||
**CRUD模式**:
|
||
每个实体都有对应的repository和service,采用标准命名:
|
||
- user.service.js: createUser, getUser, updateUser, deleteUser
|
||
- post.service.js: createPost, getPost, updatePost, deletePost
|
||
```
|
||
|
||
#### 4.2 设计模式识别
|
||
|
||
识别代码中的模式:
|
||
|
||
```javascript
|
||
// Factory模式识别
|
||
if (hasFunction('create*') && returnsDifferentTypes()) {
|
||
pattern = 'Factory';
|
||
}
|
||
|
||
// Strategy模式识别
|
||
if (hasInterface() && multipleImplementations()) {
|
||
pattern = 'Strategy';
|
||
}
|
||
|
||
// Observer模式识别
|
||
if (hasEventEmitter() && multipleListeners()) {
|
||
pattern = 'Observer';
|
||
}
|
||
```
|
||
|
||
**记忆更新**:
|
||
```markdown
|
||
## 设计模式库
|
||
**识别时间**: 2025-11-14
|
||
|
||
**已识别模式** (8个):
|
||
|
||
### 创建型
|
||
1. **Factory模式**: libs/email/email-factory.js
|
||
- 根据类型创建邮件服务实例
|
||
|
||
### 结构型
|
||
2. **Repository模式**: repositories/*.js
|
||
- 统一数据访问接口,隔离Prisma细节
|
||
|
||
3. **Service Object模式**: services/*.js
|
||
- 业务逻辑封装,无框架依赖
|
||
|
||
### 行为型
|
||
4. **Strategy模式**: auth/strategies/*.js
|
||
- JWT策略、Local策略、OAuth策略
|
||
|
||
5. **Middleware模式**: middleware/*.js
|
||
- 可组合的请求处理管道
|
||
|
||
6. **Observer模式**: services/event-bus.js
|
||
- 跨模块事件通信
|
||
|
||
**项目自定义约定**:
|
||
- Service层返回格式: { success: boolean, data?, error? }
|
||
- Repository层不处理业务错误,只抛数据错误
|
||
```
|
||
|
||
### 阶段5:神经元连接构建(知识图谱)
|
||
|
||
#### 5.1 构建概念网络
|
||
|
||
基于以上扫描结果,构建多层知识图谱:
|
||
|
||
##### 层级1:文件依赖图
|
||
```javascript
|
||
// nodes: 文件
|
||
// edges: import关系
|
||
{
|
||
"nodes": [
|
||
{"id": "auth/controller.js", "type": "controller", "layer": "api"},
|
||
{"id": "auth/service.js", "type": "service", "layer": "business"}
|
||
],
|
||
"edges": [
|
||
{"from": "auth/controller.js", "to": "auth/service.js", "type": "imports", "weight": 1}
|
||
]
|
||
}
|
||
```
|
||
|
||
##### 层级2:概念关联图
|
||
```javascript
|
||
// nodes: 概念(函数、类、实体)
|
||
// edges: 调用关系、继承关系
|
||
{
|
||
"nodes": [
|
||
{"id": "createUser", "type": "function", "domain": "user"},
|
||
{"id": "User", "type": "entity"},
|
||
{"id": "JWT", "type": "concept"}
|
||
],
|
||
"edges": [
|
||
{"from": "createUser", "to": "User", "type": "creates"},
|
||
{"from": "createUser", "to": "JWT", "type": "generates"}
|
||
]
|
||
}
|
||
```
|
||
|
||
##### 层级3:架构模式图
|
||
```javascript
|
||
// nodes: 架构层和模式
|
||
// edges: 实现关系
|
||
{
|
||
"nodes": [
|
||
{"id": "Layered Architecture", "type": "pattern"},
|
||
{"id": "API Layer", "type": "layer"},
|
||
{"id": "Service Layer", "type": "layer"}
|
||
],
|
||
"edges": [
|
||
{"from": "API Layer", "to": "Layered Architecture", "type": "implements"},
|
||
{"from": "Service Layer", "to": "Layered Architecture", "type": "implements"}
|
||
]
|
||
}
|
||
```
|
||
|
||
**记忆更新**: 创建知识图谱文件
|
||
```bash
|
||
mkdir -p cognition/graphs
|
||
echo '{...json...}' > cognition/graphs/dependency-graph.json
|
||
echo '{...json...}' > cognition/graphs/concept-graph.json
|
||
echo '{...json...}' > cognition/graphs/architecture-graph.json
|
||
```
|
||
|
||
#### 5.2 神经元连接模拟
|
||
|
||
类似人脑突触连接,建立强度权重:
|
||
|
||
```javascript
|
||
// memory/short-term/neural-connections.md
|
||
|
||
## 连接强度矩阵
|
||
**更新时间**: 2025-11-14
|
||
|
||
### 强连接 (strength > 0.8)
|
||
1. **auth/controller.js** ↔ **auth/service.js**
|
||
- 强度: 0.95
|
||
- 类型: 调用依赖
|
||
- 激活频率: 高频(每个HTTP请求)
|
||
|
||
2. **services/*.js** ↔ **repositories/*.js**
|
||
- 强度: 0.90
|
||
- 类型: 数据访问
|
||
- 激活频率: 高频
|
||
|
||
### 中等连接 (0.5 < strength ≤ 0.8)
|
||
3. **utils/logger.js** → **所有层**
|
||
- 强度: 0.70
|
||
- 类型: 横向依赖
|
||
- 激活频率: 每个日志点
|
||
|
||
### 弱连接 (strength ≤ 0.5)
|
||
4. **libs/helpers.js** → **api/controllers**
|
||
- 强度: 0.30
|
||
- 类型: 反向依赖(违反分层)
|
||
- 注: 需要重构
|
||
|
||
## 激活阈值
|
||
- 高频访问 (activations > 100): 强连接
|
||
- 中频访问 (10-100): 中等连接
|
||
- 低频访问 (< 10): 弱连接
|
||
|
||
## 突触可塑性
|
||
根据赫布法则(一起激活则连接加强):
|
||
- 下次访问auth/controller.js时,会预激活auth/service.js
|
||
- 减少认知负荷(快速模式识别)
|
||
```
|
||
|
||
#### 5.3 网络中心性分析
|
||
|
||
识别关键代码节点:
|
||
|
||
```bash
|
||
# 使用NetworkX计算中心性
|
||
python3 -c "
|
||
import json
|
||
import networkx as nx
|
||
|
||
with open('cognition/graphs/dependency-graph.json') as f:
|
||
graph = json.load(f)
|
||
|
||
G = nx.DiGraph()
|
||
G.add_nodes_from([n['id'] for n in graph['nodes']])
|
||
G.add_edges_from([(e['from'], e['to']) for e in graph['edges']])
|
||
|
||
# 计算PageRank(节点重要性)
|
||
pagerank = nx.pagerank(G)
|
||
sorted_nodes = sorted(pagerank.items(), key=lambda x: x[1], reverse=True)
|
||
|
||
print('Top 10 Critical Files:')
|
||
for node, score in sorted_nodes[:10]:
|
||
print(f' {node}: {score:.4f}')
|
||
"
|
||
```
|
||
|
||
**记忆更新**:
|
||
```markdown
|
||
## 网络中心性分析
|
||
**分析时间**: 2025-11-14
|
||
|
||
### PageRank Top 10
|
||
1. auth/service.js: 0.1523 (核心认证逻辑)
|
||
2. user/repository.js: 0.1345 (用户数据访问)
|
||
3. api/middleware/auth.js: 0.1234 (认证中间件)
|
||
4. utils/logger.js: 0.1123 (日志工具)
|
||
5. services/email-service.js: 0.0987 (邮件服务)
|
||
...
|
||
|
||
### 关键发现
|
||
- **auth/service.js** 是最核心节点——风险单点,需要重点测试
|
||
- **user/repository.js** 的高中心性表明用户模块是系统核心
|
||
- **libs/** 目录中的工具函数中心性很高——监控对这些文件的修改影响
|
||
- 10个文件占总依赖流量的47%
|
||
|
||
### 网络健康指标
|
||
- 平均介数中心性: 0.032 (中等)
|
||
- 聚类系数: 0.34 (良好)
|
||
- 网络直径: 8 (从请求到数据库最长路径)
|
||
```
|
||
|
||
### 阶段6:生成探索报告
|
||
|
||
整合所有发现到结构化报告:
|
||
|
||
```markdown
|
||
# 代码库探索报告
|
||
|
||
**探索时间**: 2025-11-14 04:12:33
|
||
**代码库大小**: 47个文件,12,450行代码
|
||
**探索耗时**: 3.2秒
|
||
**置信度**: 0.82
|
||
|
||
## 1. 宏观概览
|
||
|
||
**技术栈**: Node.js + Express + React + PostgreSQL
|
||
**架构**: 分层架构(API → Service → Repository)
|
||
**测试覆盖**: 67%(中等)
|
||
**代码质量**: 良好,函数平均25行
|
||
|
||
## 2. 核心发现
|
||
|
||
**关键文件** (PageRank > 0.1):
|
||
```
|
||
✓ auth/service.js (0.152) - 认证核心业务
|
||
✓ user/repository.js (0.134) - 用户数据访问
|
||
✓ api/middleware/auth.js (0.123) - 认证中间件
|
||
```
|
||
|
||
**架构模式**:
|
||
- ✅ Repository模式(数据访问隔离)
|
||
- ✅ Service Object模式(业务逻辑封装)
|
||
- ✅ Middleware模式(可组合性)
|
||
|
||
**潜在问题**:
|
||
- ⚠️ auth/service.js 过于中心化(单点风险)
|
||
- ⚠️ libs/helpers.js 反向依赖api层(违反分层)
|
||
- ⚠️ 测试覆盖率不足(67%,目标80%)
|
||
- ⚠️ 注释密度偏低(8%)
|
||
|
||
## 3. 依赖图谱
|
||
|
||
**核心层间依赖**:
|
||
```
|
||
api/controllers → services (47条边)
|
||
services → repositories (38条边)
|
||
repositories → database (12条边)
|
||
libs → all layers (横向依赖)
|
||
```
|
||
|
||
**检测到的环**: 0个(良好)
|
||
**最大依赖深度**: 4层(合理)
|
||
|
||
**可视化建议**: `cognition/graphs/dependency-graph.json` 可用Gephi绘制
|
||
|
||
## 4. 记忆已更新
|
||
|
||
**已创建/更新的记忆文件**:
|
||
```
|
||
✓ memory/long-term/project-context.md
|
||
✓ memory/long-term/design-patterns.md
|
||
✓ memory/long-term/quality-patterns.md
|
||
✓ memory/episodic/exploration-2025-11-14.md
|
||
✓ cognition/graphs/dependency-graph.json
|
||
✓ cognition/graphs/concept-graph.json
|
||
✓ cognition/graphs/architecture-graph.json
|
||
✓ memory/short-term/neural-connections.md
|
||
```
|
||
|
||
## 5. 下一步建议
|
||
|
||
### 立即行动(高风险)
|
||
1. [ ] 为重点测试auth/service.js添加单元测试
|
||
2. [ ] 重构libs/helpers.js,消除反向依赖
|
||
|
||
### 短期优化(质量)
|
||
3. [ ] 增加代码注释到15%
|
||
4. [ ] 将测试覆盖率提升至80%
|
||
5. [ ] 统一错误处理中间件
|
||
|
||
### 中期演进(架构)
|
||
6. [ ] 考虑将auth/service.js拆分为更小的服务
|
||
7. [ ] 引入依赖注入,减少直接耦合
|
||
|
||
## 6. 不确定性与假设
|
||
|
||
**已验证的假设**:
|
||
- ✅ 分层架构假设(确认)
|
||
- ✅ Repository模式假设(确认)
|
||
|
||
**需要验证的假设**:
|
||
- ⚠️ 所有数据库访问都通过repository(置信度0.7)
|
||
- 建议: 全局搜索直接prisma调用
|
||
- ⚠️ 没有未处理的安全漏洞(置信度0.6)
|
||
- 建议: 运行npm audit
|
||
|
||
**完全未知的领域**:
|
||
- ❌ 前端代码结构(未扫描)
|
||
- ❌ 部署配置(Kubernetes manifests)
|
||
- ❌ CI/CD管道
|
||
|
||
## 7. 宪法遵循度
|
||
|
||
**探索过程遵循**: ✓ 1.2 类脑思维(模式优先)✓ 1.3 谦逊(标注不确定性)
|
||
|
||
---
|
||
|
||
**报告生成于**: 2025-11-14 04:12:33
|
||
**下次建议探索**: 一周后或代码库重大变更后
|
||
```
|
||
|
||
## 执行要求
|
||
|
||
### 输入
|
||
- 无需输入参数(扫描当前目录)
|
||
- 可选:`--focus=auth` 未来版本支持聚焦特定目录
|
||
- 可选:`--deep` 未来版本支持深度分析
|
||
|
||
### 执行方式
|
||
|
||
```bash
|
||
# 方式1: 直接执行综合脚本
|
||
bash .ai-runtime/scripts/runtime-explore.sh
|
||
|
||
# 方式2: 分步骤执行(用于调试)
|
||
bash .ai-runtime/scripts/scan-filesystem.sh
|
||
python3 .ai-runtime/scripts/build-dependency-graph.py
|
||
python3 .ai-runtime/scripts/generate-exploration-report.py
|
||
```
|
||
|
||
### 自动化执行
|
||
|
||
可以在项目初始化时自动执行:
|
||
|
||
```bash
|
||
# 克隆项目后
|
||
git clone <repo>
|
||
cd project
|
||
sh .ai-runtime/scripts/runtime-explore.sh # 自动构建认知地图
|
||
```
|
||
|
||
### 输出
|
||
1. **报告文件**: `cognition/exploration-reports/exploration-{timestamp}.md`
|
||
2. **知识图谱**: `cognition/graphs/*.json`
|
||
3. **更新的记忆文件**:
|
||
- `memory/long-term/*.md`
|
||
- `memory/episodic/exploration-{timestamp}.md`
|
||
- `memory/short-term/neural-connections.md`
|
||
|
||
### 约束
|
||
- ✅ 只读取代码,不修改任何文件
|
||
- ✅ 可以创建新的记忆文件
|
||
- ✅ 可以覆盖旧记忆(如果是更新)
|
||
- ❌ 不执行破坏性操作
|
||
|
||
### 脚本自动化
|
||
|
||
创建辅助脚本:
|
||
|
||
```bash
|
||
# .ai-runtime/scripts/explore-codebase.sh
|
||
echo "AI Runtime Explorer v1.0"
|
||
echo "========================"
|
||
|
||
# 步骤1: 扫描文件系统
|
||
echo "📂 扫描文件系统结构..."
|
||
find . -type f \
|
||
-name "*.js" -o -name "*.ts" -o -name "*.jsx" -o -name "*.tsx" \
|
||
-o -name "*.py" -o -name "*.json" -o -name "*.md" \
|
||
| grep -v node_modules \
|
||
| grep -v ".git" \
|
||
> /tmp/file-list.txt
|
||
|
||
FILE_COUNT=$(wc -l < /tmp/file-list.txt)
|
||
echo " 发现 $FILE_COUNT 个文件"
|
||
|
||
# 步骤2: 识别技术栈
|
||
echo "🔍 识别技术栈..."
|
||
if [ -f package.json ]; then
|
||
echo " JavaScript/Node.js 项目"
|
||
cat package.json | grep '"name"\|"version"\|"dependencies"' > /tmp/tech-stack.json
|
||
fi
|
||
|
||
if [ -f requirements.txt ]; then
|
||
echo " Python 项目"
|
||
fi
|
||
|
||
# 步骤3: 构建依赖图
|
||
echo "🕸️ 构建依赖图谱..."
|
||
python3 .ai-runtime/scripts/build-dependency-graph.py
|
||
|
||
# 步骤4: 生成报告
|
||
echo "📊 生成探索报告..."
|
||
python3 .ai-runtime/scripts/generate-exploration-report.py
|
||
|
||
echo "✅ 探索完成!报告保存在: cognition/exploration-reports/"
|
||
echo " 记忆已更新到: memory/{short-term,long-term,episodic}/"
|
||
```
|
||
|
||
## 宪法遵循
|
||
|
||
**遵循原则**:
|
||
- ✓ 1.2 类脑思维方式:模式识别优先
|
||
- ✓ 1.3 谦逊与不确定:明确标注置信度
|
||
- ✓ 1.4 记忆层次:更新所有三层记忆
|
||
- ✓ 2.1 代码即知识:代码是认知单元
|
||
- ✓ 4.1 从经验学习:提取通用模式
|
||
|
||
---
|
||
|
||
**命令路径**: `.ai-runtime/commands/runtime.explore.md`
|
||
**脚本路径**: `.ai-runtime/scripts/explore-codebase.sh`
|
||
**治理文件**: `.ai-runtime/constitution.md`
|