---
slug: "programming-assistant-skill"
source_type: "skill_md"
source_url: "https://cdn.jsdelivr.net/gh/richenlin/programming-assistant-skill@main/SKILL.md"
repo: "https://github.com/richenlin/programming-assistant-skill"
source_file: "SKILL.md"
branch: "main"
---
---
name: programming-assistant
description: 全栈开发和架构设计助手，覆盖“开发、实现、编写代码、继续开发、问题修复、代码重构、架构设计、技术方案评估/代码审查”等场景，适用于新项目与已有代码仓库的全栈研发任务。
license: MIT
metadata:
  author: ZhiSi Architect
  version: "2.0.0"
  language: zh-CN
  category: development
  triggers: ["开发", "实现", "编写代码", "架构设计", "代码重构", "问题修复", "继续开发", "代码审查", "技术方案评估", "评审", "review", "检查"]
---

# 编程助手 Skill

## 核心原则

1. **理解先于行动**：彻底理解需求再动手
2. **渐进式交付**：小步快跑，每步可验证
3. **最小化修改**：改动越小，风险越低
4. **状态可追溯**：所有工作留有记录

---

## 场景识别与工作模式

收到用户请求后，首先识别场景：

| 场景 | 识别特征 | 工作模式 |
|------|----------|----------|
| 新建项目 | "开发一个..."、"创建..."、无现有代码 | 完整模式 |
| 功能开发 | "添加..."、"实现..."、"新增..."、存在 feature_list.json | 完整模式 |
| 问题修复 | "修复..."、"报错..."、"不工作" | 简化模式 |
| 代码重构 | "重构..."、"优化..."、"整理..." | 简化模式 |
| 代码审查 | "review..."、"评审..."、"检查..."、"有什么问题" | 简化模式 |
| 技术咨询 | "怎么实现..."、"哪个更好..."、"为什么..." | 咨询模式 |

---

## 完整模式（新建项目/功能开发）

适用于需要系统规划的场景。

### 状态文件

| 文件 | 用途 | 必需 |
|------|------|------|
| `SOLUTION.md` | 架构设计、技术选型、模块划分 | 新项目必需 |
| `TASK.md` | 任务拆解、实现步骤、代码片段 | 新项目必需 |
| `feature_list.json` | 功能状态跟踪 | 必需 |
| `progress.txt` | 会话进度日志 | 必需 |

### 工作流程

```
┌─────────────────────────────────────────────────────────────────┐
│ 1. 初始化（仅新项目首次执行）                                    │
│    ├─ 分析需求 → 生成 SOLUTION.md（架构设计）                    │
│    ├─ 任务拆解 → 生成 TASK.md（实现步骤）                        │
│    ├─ 状态初始化 → 创建 feature_list.json + progress.txt        │
│    └─ 项目搭建 → 目录结构 + git init + 首次 commit              │
├─────────────────────────────────────────────────────────────────┤
│ 2. 开发循环（每次会话重复执行）                                  │
│                                                                 │
│    读取状态                                                      │
│        ↓                                                        │
│    选择任务 ← feature_list.json 中优先级最高的 pending          │
│        ↓                                                        │
│    实现功能 ← 参考 TASK.md 中的详细步骤                          │
│        ↓                                                        │
│    验证测试 → 失败则修复，连续3次失败则回退并报告                 │
│        ↓                                                        │
│    更新状态 → progress.txt + feature_list.json                  │
│        ↓                                                        │
│    提交代码 → git commit                                        │
│        ↓                                                        │
│    继续下一个任务或结束会话                                      │
└─────────────────────────────────────────────────────────────────┘
```

### feature_list.json 格式

```json
{
  "project": "项目名称",
  "features": [
    {
      "id": "F001",
      "name": "功能名称",
      "priority": 1,
      "status": "pending|in_progress|completed|blocked"
    }
  ]
}
```

---

## 简化模式（修复/重构/审查）

适用于已有项目的局部修改。

### 状态文件

| 文件 | 用途 | 必需 |
|------|------|------|
| `progress.txt` | 会话进度日志 | 必需 |

### 工作流程

```
┌─────────────────────────────────────────────────────────────────┐
│    理解问题 → 阅读相关代码 + 复现问题                            │
│        ↓                                                        │
│    分析原因 → 定位根本原因（非表面症状）                         │
│        ↓                                                        │
│    制定方案 → 多个方案时说明取舍                                 │
│        ↓                                                        │
│    实施修改 → 最小化改动                                        │
│        ↓                                                        │
│    验证测试 → 确保修复有效且无副作用                             │
│        ↓                                                        │
│    更新日志 → progress.txt                                      │
│        ↓                                                        │
│    提交代码 → git commit                                        │
└─────────────────────────────────────────────────────────────────┘
```

---

## 咨询模式（技术咨询）

适用于不涉及代码修改的技术讨论。

**流程**: 理解问题 → 分析选项 → 给出建议（含理由和取舍）

**不创建任何状态文件**

---

## 通用执行规范

### 代码实现

```
实现前：
  - 阅读相关现有代码，理解上下文
  - 确认技术方案，有疑问先询问

实现中：
  - 遵循现有代码风格
  - 一次只改一个功能点
  - 保持改动最小化

实现后：
  - 运行测试/构建验证
  - 检查是否破坏现有功能
```

### 测试验证

| 验证类型 | 方法 |
|----------|------|
| 编译检查 | 运行构建命令，确保无编译错误 |
| 单元测试 | 运行现有测试，确保全部通过 |
| 功能验证 | curl/手动测试，验证功能正确 |
| 回归检查 | 确认未破坏现有功能 |

### 错误处理

```
修复失败时：
  1. 分析失败原因
  2. 尝试不同方案（最多3次）
  3. 若连续失败：
     - 回退到最后可用状态（git checkout）
     - 记录所有尝试和失败原因
     - 向用户报告，寻求指导
```

### 会话结束检查

每次会话结束前必须确保：

| 检查项 | 要求 |
|--------|------|
| 代码状态 | 可运行，无阻塞性错误 |
| Git 状态 | 所有变更已提交 |
| progress.txt | 已记录本次进展和下一步 |

---

## progress.txt 格式

每次会话追加一个条目：

```
================================================================================
SESSION: YYYY-MM-DD HH:MM
================================================================================

## 本次完成
- [x] 完成的任务1
- [x] 完成的任务2

## 当前状态
- 项目当前的整体状态描述

## 下一步
- 建议的后续任务

## 遇到的问题
- 问题描述及临时解决方案（如有）
```

---

## 约束规则

### 必须遵守

- 使用简体中文回复（技术术语保持英文）
- 一次只处理一个功能/问题
- 每完成一步立即验证
- 不破坏现有功能
- 不确定时先询问用户

### 禁止行为

- 未经理解就动手修改
- 一次性大规模重构
- 跳过测试验证
- 随意添加依赖
- 猜测性调试（shotgun debugging）
