mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-15 02:42:45 +08:00
- Implement Phase 4: Full Documentation Generation with multi-layered strategy and tool fallback. - Introduce Phase 5: Related Documentation Generation for incremental updates based on git changes. - Create new utility components for displaying execution status in the terminal panel. - Add helper functions for rendering execution status icons and formatting relative time. - Establish a recent paths configuration for improved path resolution.
230 lines
7.8 KiB
Markdown
230 lines
7.8 KiB
Markdown
---
|
||
name: memory-manage
|
||
description: Unified memory management - CLAUDE.md updates and documentation generation with interactive routing. Triggers on "memory manage", "update claude", "update memory", "generate docs", "更新记忆", "生成文档".
|
||
allowed-tools: Task(*), Bash(*), AskUserQuestion(*), Read(*)
|
||
---
|
||
|
||
# Memory Management Skill
|
||
|
||
Unified entry point for project memory (CLAUDE.md) updates and documentation (API.md/README.md) generation. Routes to specialized sub-commands via arguments or interactive needs assessment.
|
||
|
||
## Architecture Overview
|
||
|
||
```
|
||
┌──────────────────────────────────────────────────────┐
|
||
│ Memory Manage (Router) │
|
||
│ → Parse input → Detect mode → Route to phase │
|
||
└───────────────┬──────────────────────────────────────┘
|
||
│
|
||
┌───────┴───────┐
|
||
↓ ↓
|
||
┌───────────┐ ┌───────────┐
|
||
│ CLAUDE.md │ │ Docs │
|
||
│ 管理 │ │ 生成 │
|
||
└─────┬─────┘ └─────┬─────┘
|
||
│ │
|
||
┌────┼────┐ ┌────┴────┐
|
||
↓ ↓ ↓ ↓ ↓
|
||
Full Related Single Full Related
|
||
全量 增量 单模块 全量 增量
|
||
```
|
||
|
||
## Execution Flow
|
||
|
||
### Step 1: Parse Input & Route
|
||
|
||
Detect execution mode from user input:
|
||
|
||
**Auto-Route Rules** (priority order):
|
||
|
||
| Signal | Route | Examples |
|
||
|--------|-------|---------|
|
||
| Explicit sub-command token | → Direct dispatch | `update-full --tool qwen` |
|
||
| Keyword: full, 全量, all, entire + update/claude | → update-full | "全量更新claude" |
|
||
| Keyword: related, changed, 增量, diff + update/claude | → update-related | "更新变更模块" |
|
||
| Keyword: single, module, 单模块 + path-like token | → update-single | "更新 src/auth 模块" |
|
||
| Keyword: docs, documentation, 文档 + full/all/全量 | → docs-full | "全量生成文档" |
|
||
| Keyword: docs, documentation, 文档 + related/changed/增量 | → docs-related | "增量生成文档" |
|
||
| Ambiguous or no arguments | → **AskUserQuestion** | `/memory-manage` |
|
||
|
||
Valid sub-command tokens: `update-full`, `update-related`, `update-single`, `docs-full`, `docs-related`
|
||
|
||
**Direct dispatch examples**:
|
||
```
|
||
input = "update-full --tool qwen"
|
||
→ subcommand = "update-full", remainingArgs = "--tool qwen"
|
||
→ Read phases/01-update-full.md, execute
|
||
|
||
input = "update-single src/auth --tool gemini"
|
||
→ subcommand = "update-single", remainingArgs = "src/auth --tool gemini"
|
||
→ Read phases/03-update-single.md, execute
|
||
```
|
||
|
||
**When ambiguous or no arguments**, proceed to Step 2.
|
||
|
||
### Step 2: Interactive Needs Assessment
|
||
|
||
**Q1 — 确定内容类别**:
|
||
|
||
```
|
||
AskUserQuestion({
|
||
questions: [{
|
||
question: "你要管理哪类内容?",
|
||
header: "类别",
|
||
multiSelect: false,
|
||
options: [
|
||
{
|
||
label: "CLAUDE.md (项目记忆)",
|
||
description: "更新模块指令文件,帮助Claude理解代码库结构和约定"
|
||
},
|
||
{
|
||
label: "项目文档 (API+README)",
|
||
description: "生成API.md和README.md到.workflow/docs/目录"
|
||
}
|
||
]
|
||
}]
|
||
})
|
||
```
|
||
|
||
**Q2a — CLAUDE.md 管理范围** (用户选了 CLAUDE.md):
|
||
|
||
```
|
||
AskUserQuestion({
|
||
questions: [{
|
||
question: "CLAUDE.md 更新范围?",
|
||
header: "范围",
|
||
multiSelect: false,
|
||
options: [
|
||
{
|
||
label: "增量更新 (Recommended)",
|
||
description: "仅更新git变更模块及其父级,日常开发首选"
|
||
},
|
||
{
|
||
label: "全量更新",
|
||
description: "更新所有模块,3层架构bottom-up,适合重大重构后"
|
||
},
|
||
{
|
||
label: "单模块更新",
|
||
description: "指定一个模块,Explore深度分析后生成说明书式文档"
|
||
}
|
||
]
|
||
}]
|
||
})
|
||
```
|
||
|
||
Route mapping:
|
||
- "增量更新" → `update-related` → Ref: phases/02-update-related.md
|
||
- "全量更新" → `update-full` → Ref: phases/01-update-full.md
|
||
- "单模块更新" → `update-single` → continue to Q3
|
||
|
||
**Q2b — 文档生成范围** (用户选了项目文档):
|
||
|
||
```
|
||
AskUserQuestion({
|
||
questions: [{
|
||
question: "文档生成范围?",
|
||
header: "范围",
|
||
multiSelect: false,
|
||
options: [
|
||
{
|
||
label: "增量生成 (Recommended)",
|
||
description: "仅为git变更模块生成/更新文档,日常开发首选"
|
||
},
|
||
{
|
||
label: "全量生成",
|
||
description: "所有模块+项目级文档(ARCHITECTURE.md等),适合初始化"
|
||
}
|
||
]
|
||
}]
|
||
})
|
||
```
|
||
|
||
Route mapping:
|
||
- "增量生成" → `docs-related` → Ref: phases/05-docs-related.md
|
||
- "全量生成" → `docs-full` → Ref: phases/04-docs-full.md
|
||
|
||
**Q3 — 补充路径** (仅 update-single 需要,且无路径参数时):
|
||
|
||
```
|
||
AskUserQuestion({
|
||
questions: [{
|
||
question: "请指定要更新的模块路径:",
|
||
header: "路径",
|
||
multiSelect: false,
|
||
options: [
|
||
{
|
||
label: "src",
|
||
description: "src 目录"
|
||
},
|
||
{
|
||
label: ".",
|
||
description: "项目根目录"
|
||
}
|
||
]
|
||
}]
|
||
})
|
||
```
|
||
|
||
用户可选 "Other" 输入自定义路径。
|
||
|
||
### Step 3: Execute Selected Phase
|
||
|
||
Based on routing result, read and execute the corresponding phase:
|
||
|
||
**Phase Reference Documents** (read on-demand when phase executes):
|
||
|
||
| Mode | Document | Purpose |
|
||
|------|----------|---------|
|
||
| update-full | [phases/01-update-full.md](phases/01-update-full.md) | Full CLAUDE.md update, 3-layer architecture, batched agents |
|
||
| update-related | [phases/02-update-related.md](phases/02-update-related.md) | Git-changed CLAUDE.md update, depth-first |
|
||
| update-single | [phases/03-update-single.md](phases/03-update-single.md) | Single module CLAUDE.md, Explore + handbook style |
|
||
| docs-full | [phases/04-docs-full.md](phases/04-docs-full.md) | Full API.md + README.md generation |
|
||
| docs-related | [phases/05-docs-related.md](phases/05-docs-related.md) | Git-changed docs generation, incremental |
|
||
|
||
## Shared Configuration
|
||
|
||
### Tool Fallback Hierarchy
|
||
|
||
All sub-commands share the same fallback:
|
||
|
||
```
|
||
--tool gemini → [gemini, qwen, codex] // default
|
||
--tool qwen → [qwen, gemini, codex]
|
||
--tool codex → [codex, gemini, qwen]
|
||
```
|
||
|
||
### Common Parameters
|
||
|
||
| Parameter | Description | Default | Used By |
|
||
|-----------|-------------|---------|---------|
|
||
| `--tool <gemini\|qwen\|codex>` | Primary CLI tool | gemini | All |
|
||
| `--path <dir>` | Target directory | . | update-full, docs-full |
|
||
| `<path>` (positional) | Module path | _(required)_ | update-single |
|
||
|
||
### Batching Thresholds
|
||
|
||
| Sub-Command | Direct Execution | Agent Batch | Batch Size |
|
||
|-------------|-----------------|-------------|------------|
|
||
| update-full | <20 modules | ≥20 modules | 4/agent |
|
||
| update-related | <15 modules | ≥15 modules | 4/agent |
|
||
| update-single | always single | N/A | 1 |
|
||
| docs-full | <20 modules | ≥20 modules | 4/agent |
|
||
| docs-related | <15 modules | ≥15 modules | 4/agent |
|
||
|
||
## Core Rules
|
||
|
||
1. **Route before execute**: Determine sub-command before any execution
|
||
2. **Phase doc is truth**: All execution logic lives in phase docs, router only dispatches
|
||
3. **Read on-demand**: Only read the selected phase doc, never load all
|
||
4. **Pass arguments through**: Forward remaining args unchanged to sub-command
|
||
5. **User confirmation**: Each sub-command handles its own plan presentation and y/n confirmation
|
||
|
||
## Error Handling
|
||
|
||
| Error | Resolution |
|
||
|-------|------------|
|
||
| Unknown sub-command | Fall through to interactive flow |
|
||
| Phase doc not found | Abort with file path error |
|
||
| Missing path for update-single | Prompt via Q3 |
|
||
| Sub-command execution fails | Follow phase doc's own error handling |
|