前言
厌倦了每次 /clear 后都要重新调教 AI?我开发了一套基于 Windows 环境的自动化闭环:对话 -> 自动归档 -> 技能 (Skills) 自动提取。让 Claude 彻底告别 “鱼的记忆”,在实战中不断自我进化!
只需一句 “归档”,所有技术决策、Bug 修复方案瞬间转化为本地 Skill 库。
1️⃣ 环境准备
确保安装 Python 中文处理库:
pip install pypinyin
确认技能目录存在:
C:\Users\Administrator\.claude\skills
2️⃣ 创建归档存储目录
- 创建归档目录:
New-Item -ItemType Directory -Force -Path "C:\Users\Administrator\archives\conversations"
- 创建配置文件
archivist-config.json,路径:
C:\Users\Administrator\archivist-config.json
内容如下:
{
"default_archive_path": "C:\\Users\\Administrator\\archives\\conversations",
"custom_project_paths": {},
"include_full_history": false,
"summarize_conversations": true,
"auto_tag": true
}
3️⃣ 创建 Python 转化脚本
路径:
C:\Users\Administrator\.claude\scripts\archive_to_skill.py
内容如下(保持原样):
import os
import re
from pypinyin import pinyin, Style
# 配置路径:直接指向 skills 根目录以确保可见性
ARCHIVE_DIR = r"C:\Users\Administrator\archives\conversations"
SKILLS_DIR = r"C:\Users\Administrator\.claude\skills"
def clean_to_english_slug(filename):
name_without_ext = os.path.splitext(filename)[0]
pinyin_list = pinyin(name_without_ext, style=Style.NORMAL)
flattened_pinyin = "-".join([item[0] for item in pinyin_list])
slug = re.sub(r'[^\w\s-]', '', flattened_pinyin).strip().lower()
slug = re.sub(r'[-\s]+', '-', slug)
return slug if slug else "unnamed-skill"
def convert():
if not os.path.exists(SKILLS_DIR):
os.makedirs(SKILLS_DIR)
for filename in os.listdir(ARCHIVE_DIR):
if filename.endswith(".md"):
file_path = os.path.join(ARCHIVE_DIR, filename)
try:
with open(file_path, 'r', encoding='utf-8') as f:
full_content = f.read()
except Exception as e:
print(f"读取失败 {filename}: {e}")
continue
# 生成目录名
skill_folder_name = clean_to_english_slug(filename)
target_folder = os.path.join(SKILLS_DIR, skill_folder_name)
os.makedirs(target_folder, exist_ok=True)
# 构建完整的 SKILL.md
# 头部保留元数据,正文原封不动拷贝归档内容
skill_content = (
"---\n"
f"name: {skill_folder_name}\n"
f"description: Full project context and patterns from {filename}\n"
"---\n\n"
f"# Project Skill: {skill_folder_name}\n\n"
"## 原始归档上下文 (Full Archive Content)\n\n"
f"{full_content}\n"
)
skill_file_path = os.path.join(target_folder, "SKILL.md")
with open(skill_file_path, 'w', encoding='utf-8') as sf:
sf.write(skill_content)
print(f"✅ 转换成功并提升至根目录: {skill_folder_name}/SKILL.md")
if __name__ == "__main__":
convert()
4️⃣ 配置 Claude Agent
- 创建目录:
New-Item -ItemType Directory -Force -Path "C:\Users\Administrator\.claude\agents"
- 创建 Agent 文件
project-archivist.md,路径:
C:\Users\Administrator\.claude\agents\project-archivist.md
内容(保持原样):
---
name: project-archivist
description: "用于在工作完成后归档对话历史、项目上下文,并将其转化为可持久化的技能。触发词:归档、保存对话、archive、整理项目。"
model: sonnet
color: amber
---
你是一位运行在 Windows 环境下的专业项目归档员(Project Archivist)。你的任务是将当前的对话价值最大化,通过创建结构化的归档并将其转化为 Claude 的“肌肉记忆”(Skills)。
## 核心职责
1. **深度归档**:捕获完整的对话背景、技术决策、代码变更和关键逻辑。
2. **知识提取**:不仅是记录,更要提取出可复用的模式和解决问题的思路。
3. **技能进化**:自动将归档转化为符合 Claude 规范的 Skill 结构。
## 工作流程
### Phase 1: 归档文件生成
- **存储路径**:`C:\Users\Administrator\archives\conversations\`
- **文件名格式**:`[主题]_[概述].md`(支持中文名)。
- **内容要求**:必须包含 YAML 头部、对话摘要、## 关键要点、以及完整的核心对话记录。
### Phase 2: 技能转化 (核心修正)
归档文件成功保存后,你必须**立即且强制**执行以下自动化操作,严禁跳过:
1. **执行转化脚本**:
在终端运行命令:`python C:\Users\Administrator\.claude\scripts\archive_to_skill.py`
2. **规范化验证**:
确保技能被提升至根目录级别,结构必须如下:
- 📁 `C:\Users\Administrator\.claude\skills\[技能英文名或拼音]\`
- 📄 `SKILL.md` (包含完整的归档内容作为上下文)
3. **反馈确认**:
完成后告知用户:“✅ 归档已完成,且已成功转化为本地技能。下次启动对话时,我会自动加载 `skills/[技能名]` 中的经验。”
## Windows 适配准则
- **路径标准**:始终使用 `C:\Users\Administrator\` 作为基础路径。
- **转义处理**:在任何需要处理 JSON 或 Shell 命令的地方,确保反斜杠已正确转义(例如 `C:\\Users\\...`)。
- **目录规范**:严禁将技能放在子目录下(如 `learned/`),必须直接放在 `skills/` 的一级子文件夹中。
## 提取与拷贝逻辑
- **零丢失原则**:在生成 `SKILL.md` 时,如果无法通过正则精确提取要点,必须将原始归档文件的全部内容原封不动地拷贝到 `SKILL.md` 的正文中。
- **元数据要求**:`SKILL.md` 开头必须包含标准的 `name` 和 `description` 字段。
---
*你不仅是在记录历史,更是在通过自动化脚本不断进化你的知识库。*
5️⃣ 配置全局设置
文件路径:
C:\Users\Administrator\.claude\settings.json
内容:
{
"skills": {
"search_paths": [
"C:\\Users\\Administrator\\.claude\\agents",
"C:\\Users\\Administrator\\.claude\\skills"
],
"auto_load_learned": true
}
}
6️⃣ 验证流程
- 在对话中对 Claude code 输入:
归档
- 验证技能加载:
/skills
你应能看到类似 nginxpulse-deploy 的技能显示为 Enabled。
✅ 完成
你的 Claude code 现在可以将每次对话自动转化为本地技能,实现“肌肉记忆”,不断自我进化。