# Project Reconstruction

> 基于已有项目做重构/新建（搬家不重写）的完整流程 Skill。当用户需要从现有混乱项目迁移到干净新项目时激活，引导完成：新项目文件夹 → PM功能清单 → 技术架构+红蓝推演（回写闭环）→ Cursor规范配置 → 分Phase构建。区别于 role-技术架构师（后者设计新技术方案）：本 Skill 是迁移型，先盘点已有资产，再设计去哪里放。触发词：「基于已有项目重构」「重构方案」「新建项目并迁移」「搬家不重写」「从零开始但复用现有代码」「项目架构整改」。

- **Type:** Skill
- **Install:** `agentstack add skill-tashangkd-tashan-cursor-skills-project-reconstruction`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [TashanGKD](https://agentstack.voostack.com/s/tashangkd)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [TashanGKD](https://github.com/TashanGKD)
- **Source:** https://github.com/TashanGKD/tashan-cursor-skills/tree/main/skills/project-reconstruction

## Install

```sh
agentstack add skill-tashangkd-tashan-cursor-skills-project-reconstruction
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 基于已有项目重构 Skill（project-reconstruction）

> **版本**：v1.1 · 2026-03-23

> 适用场景：现有项目技术债积累严重，但 90% 业务逻辑是对的，只是放错了地方。
> 核心原则：**迁移单位是「目录结构和模块边界」，不是重写业务逻辑**。
>
> 关联角色：
> - role-产品经理（Step 2：功能清单）
> - role-技术架构师（Step 3：框架设计）
> - role-审核者-系统破坏（Step 3.5：红蓝推演）
> - skill-designer（Step 4：Cursor 规范配置）

---

## 知识导航表（激活前按顺序读取）

| 层级 | 文档 | 用途 |
|---|---|---|
| D0 | 现有项目的 `产品经理/产品定义.md` | 了解当前产品是什么 |
| D1 | 现有项目的 `产品经理/开发计划.md` | 了解哪些功能已实现 |
| D2 | 现有项目的 `技术架构师/*.md`（若有）| 了解现有技术积累 |
| D3 | `_内部总控/认知结构/L1_系统性文档/系统架构思维维度/` | 架构设计的认知根 |

---

## 激活后立即执行

### Step 0：评估是否适合重构（而非增量整改）

与用户确认以下判断（全部 Yes 才进入重构流程）：

```
□ 现有项目的技术债是「结构性的」（不是几个 Bug），改一个地方要追 3-5 个依赖方？
□ 业务逻辑大体正确，问题主要在「东西放错了地方」？
□ 可以接受约 1-2 周的迁移期（新旧项目并行）？
□ 核心数据（DB/文件系统）可以无损迁移？
```

若有 No → 评估增量整改是否更合适，向用户说明。
若全部 Yes → 继续 Step 1。

---

### Step 1：新建项目文件夹 + 规范结构

```
在 项目群/ 下新建：{新项目名}/
├── 0_迁移决策/
│   └── 重构决策.md        ← Step 1 完成后写入
├── 1_产品定义/
│   └── 功能清单.md         ← Step 2 输出
├── 2_技术架构/
│   ├── 技术框架.md         ← Step 3 输出
│   └── 红蓝推演.md         ← Step 3.5 输出（必须回写到技术框架）
├── 3_开发计划/
│   └── 开发计划.md         ← Step 5 输出
├── 开发规范.md             ← Step 4 输出
└── README.md              ← 阅读顺序说明
```

写入 `0_迁移决策/重构决策.md`，包含：
- 为什么选重构而非增量整改（具体原因，不是套话）
- 哪些代码直接 copy，哪些需要重写（按文件级估计）
- 数据迁移策略（DB/文件系统）
- 风险评估（功能遗漏风险 / 数据迁移风险 / API兼容风险）

---

### Step 2：PM 视角——功能清单（角色：role-产品经理）

**目标**：让「怕遗漏」的风险变成可验证的清单

执行以下操作：
1. 读取 D0（现有产品定义）和 D1（开发计划），提取所有功能
2. 按功能域分组，为每个功能标注状态：
   - ✅ 已实现且验证通过
   - ⚠️ 已实现但有已知缺陷（记录缺陷描述）
   - 🔄 正在开发中
   - ⏳ 规划中（明确需求但未实现）
   - ❌ 废弃（设计过但不再做）
3. 为功能清单中每个功能分配优先级（P0/P1/P2/P3）

输出：`1_产品定义/功能清单.md`

**验收**：用户确认功能清单无遗漏（重点检查 ✅ 的功能是否都在新框架里有对应位置）

---

### Step 3：技术架构师视角——新框架设计（角色：role-技术架构师）

**目标**：设计「第一天就是对的」的架构，然后把旧代码搬进来

执行顺序（不可跳过）：

**3a. 第一性原理推导**

先定义核心数据模型（不看旧代码），回答：
```
这个系统的核心实体是什么？它们之间是什么关系？
每个实体的生命周期是什么？谁拥有谁？
```

**3b. 模块切片**（从依赖关系推导，不从旧项目目录推导）

按 Slice 依赖层次从底向上设计：
```
Slice 1（最底层，无依赖）→ Slice 2 → ... → Slice N（最上层）
每个 Slice：
  - 职责一句话
  - 对外接口（输入/输出）
  - 内部不对外暴露的内容
  - 与其他 Slice 的依赖关系
```

**3c. 目录结构**（从切片推导，不从旧项目复制）

每个 Slice 对应的目录，目录名应该直接体现 Slice 的职责。

**3d. 关键接口定义**（代码级，能直接实现的精度）

对每个 Slice 边界，写出 Python/TypeScript 接口定义（方法签名 + 一句话说明），确保：
```
任何工程师看到接口定义，可以不问任何问题直接实现
```

**3e. 技术积累对应**（读旧项目代码）

读现有项目的代码，对每个新框架模块，找到旧项目中对应的实现，标注：
```
[新框架模块] ← 来自 [旧项目文件/函数]（直接 copy / 微调 / 重写）
```

**3f. 设计决策记录（ADR）**

任何非显而易见的设计选择，写 ADR：
```
ADR-NN：为什么选X而非Y
决策/原因/代价/验证方法
```

输出：`2_技术架构/技术框架.md`

---

### Step 3.5：红蓝推演（角色：role-审核者-系统破坏）

⚠️ **这步是强制的，不是可选的**

对 Step 3 输出的技术框架，执行安全/稳定性/可演化性攻击：

至少覆盖以下场景：
```
安全类：用户可控的输入如何攻击系统？（路径穿越/注入/越权）
并发类：多个请求同时操作同一资源会怎样？
一致性类：操作中断时，系统数据是否还自洽？
边界类：空状态/超大文件/特殊字符如何处理？
迁移类：旧数据迁入后，新系统能正确读取吗？
```

**必须闭环**：
```
发现问题（R编号）
    ↓
在技术框架里写修复（标注「来源：红蓝 Rx」）
    ↓
在红蓝报告里标注「已回写 ✅」
    ↓
在开发计划里写对应的单元测试（test_Rx_xxx）
```

⚠️ **禁止**：写完红蓝报告就停。必须确认每个发现都已回写到技术框架。

输出：`2_技术架构/红蓝推演.md`（含回写状态表）

---

### Step 4：建立项目规范（Cursor 规范层）

⚠️ **规范建在主工作区，不是子项目** 

规范文件建在 **被激活的主 Cursor 工作区**，不是新项目的子目录，因为 AI 始终在主工作区工作。

**4a. 开发规范文档**（写在新项目目录里，供人读）

`{新项目}/开发规范.md` 包含：
- Phase 执行门槛（完成条件 = 测试通过，不是「基本完成」）
- 代码约束（哪些做法被禁止，来自红蓝推演的发现）
- 测试分层规范（单元/Layer0/Layer1 各自的责任边界）
- 文档自洽规范（技术框架是单一真源）
- AI 辅助开发规范（AI 不自决架构，只提方案等用户确认）

**4b. Cursor Rule（写在主工作区）**

在主工作区 `.cursor/rules/` 下新建 1-3 个 project-specific Rule：

`{项目名}-arch-guard.mdc`（alwaysApply: false，触发词为项目名）：
- 本项目的架构约束（来自技术框架的禁止项）
- Phase 完成门槛
- 文档同步要求

**注意**：Rule 的 `alwaysApply: true` 仅用于系统级全局约束。项目级 Rule 用 description + 触发词激活，避免 context 膨胀。

---

### Step 5：分 Phase 开发计划（开发计划.md）

按技术框架的 Slice 层次，从底层向上规划 Phase：

```
Phase 0：项目脚手架（目录结构 + 第一个 /health 端点）
Phase 1：Slice 1+2（最底层两个 Slice）
Phase 2：Slice 3+4
...
Phase N：数据迁移 + 切流量
```

每个 Phase 的标准格式：
```markdown
### Phase N | ⬜ | [描述]

**目标**：[一句话，用户体感的变化]

**任务清单**（逐一勾选）：
- [ ] [具体任务，包含文件名]

**测试**（在任务完成后运行）：
- [ ] pytest tests/unit/test_xxx.py → X/X PASS
- [ ] integration_test.py --layer0 → X/X PASS

**验收**（人工确认，不可省略）：
- [具体的用户操作，不是「功能正确」这种模糊表述]
```

**关键约束**：
- Phase 顺序 = Slice 依赖顺序（不能跳过前置 Phase）
- 每个 Phase 的验收必须包含 Layer 0 测试通过证明
- Phase 标记为 ✅ 之前，必须已更新功能清单的对应项状态

输出：`3_开发计划/开发计划.md`

---

## Skill 完成标准

本 Skill 执行完毕时，以下文档必须全部存在且内容完整：

| 文档 | 最低内容要求 |
|---|---|
| `重构决策.md` | 有具体原因，不是套话；有代码级迁移策略 |
| `功能清单.md` | 覆盖现有所有功能，每个有状态和优先级 |
| `技术框架.md` | 接口定义到方法签名级别；有技术积累对应表；红蓝发现已回写 |
| `红蓝推演.md` | 有回写状态表（每个Rx标注已回写/接受风险）|
| `开发规范.md` | 有Phase完成门槛；有代码约束（可执行，不是原则）|
| `开发计划.md` | 每Phase有具体任务+测试+验收 |
| 主工作区 Rule | 至少一个project-specific Rule 在 `.cursor/rules/` 下 |

---

## 常见失败模式

| 失败模式 | 根因 | 预防 |
|---|---|---|
| 红蓝推演写完就存档，没有回写 | 把推演当「存档」而非「设计迭代」| Step 3.5 明确要求每个Rx在框架里有对应 |
| 新框架「参考」旧项目目录，导致新项目和旧项目结构一样 | Step 3b 没有先做第一性原理，直接看旧目录 | Step 3a 必须先于 Step 3b（不看旧代码推导切片）|
| Rule 建在子项目目录，AI 工作时不自动激活 | 不理解 Cursor 的 Rule 生效范围 | Step 4 明确指出 Rule 建在主工作区 |
| Phase 完成但功能清单没更新 | 文档同步被遗忘 | 开发规范第五章 + doc-sync Rule |
| 重写而非搬家（代码量翻倍）| 没有在迁移计划里标注「直接copy」| 重构决策.md 必须有文件级迁移策略 |
| 登录后全站 API 401（请求无 Authorization）| 前端 `localStorage` 读写 token 的 key 跨文件不一致（如 `api.ts` 读 A、`AuthContext` 写 B）| 迁移前 grep 全项目 `localStorage.getItem`/`setItem`，统一 key 并写入开发规范 |
| 后端 `ModuleNotFoundError`（旧 import 路径）| 文件迁入新包/目录后，模块内部仍 `from routers.xxx` 等旧路径，未随物理位置更新 | 批量 grep 旧路径前缀，系统性替换 import；移动文件后复查该文件及调用方 |
| 前端调 API 404（端点不存在或路径错位）| 仅 copy 功能代码，未对照旧后端完整路由表；路径前缀（如 `/cognition`）或整段路由遗漏 | Phase 0 脚手架阶段列出旧项目全部注册路由，与新项目对照；缺失则补兼容端点或统一前后端契约 |

---

## 变更记录

### v1.0 — 2026-03-22 — 初始创建

**触发事件**：tashan-openbrain_myagent 项目因架构债务积累（workspace 隔离失效、npc-content 外置、sources_dir 安全漏洞），决定创建 tashan-openbrain_v2 干净重建。本次执行过程（PM→架构师→红蓝→规范→计划）被提炼为通用 Skill。

**核心经验**：
- 红蓝推演必须有回写闭环（不是存档）
- Cursor Rule 必须建在主工作区（不是子项目目录）
- 功能清单先行（防止迁移遗漏），技术框架后行（先第一性原理再看旧代码）

**验证状态**：✅ 已验证（tashan-openbrain_v2 完整走完本流程）

### v1.1 — 2026-03-23 — 常见失败模式补充（v2 迁移实战）

**根因**：tashanbrain v2 迁移实战中出现 localStorage key 分裂、模块搬迁后 internal import 未更新、前后端路由不对照三类问题，原有「常见失败模式」未覆盖。

**经验核心**：复制代码不等于行为一致；token key、import 路径、HTTP 路由必须在迁移清单中可 grep、可对照。

**修改内容**：
- 「常见失败模式」表格新增 3 行：localStorage token key 一致性、平台/模块迁移后 import 批量校正、Phase 0 旧路由清单与前后端契约对照。

**验证结果**：
- 正向验证：下次迁移类任务中，执行者应能按表内「预防」列执行检查项 → 🔵 待验证

**验证状态**：🔵 待验证

**备份路径**：`history/SKILL_v1.0_20260323.md`

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [TashanGKD](https://github.com/TashanGKD)
- **Source:** [TashanGKD/tashan-cursor-skills](https://github.com/TashanGKD/tashan-cursor-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-tashangkd-tashan-cursor-skills-project-reconstruction
- Seller: https://agentstack.voostack.com/s/tashangkd
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
