diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md new file mode 100644 index 0000000..13078a3 --- /dev/null +++ b/.claude/CLAUDE.md @@ -0,0 +1,12 @@ +# 深圳市网新新思软件有限公司 AI研究院 + +### Git 工作流 + +- **分支**: Trunk-Based Development,主分支 `trunk` +- **PR 约束**: 每个 PR 只能改动一个模块 +- **PR 标题**: `[模块] 描述`,如 `[server] 添加设备授权 API` +- **提交类型**: 必须使用中文类型(功能、修复、维护、文档、重构、测试、格式、性能、构建、安全、依赖、清理、优化、配置、规格、合并),禁止使用英文类型(feat、fix、chore 等) + +--- + +**最后更新**: 2026-04-05 diff --git a/.claude/commands/arno-docker-clear.md b/.claude/commands/arno-docker-clear.md new file mode 100644 index 0000000..cd085ef --- /dev/null +++ b/.claude/commands/arno-docker-clear.md @@ -0,0 +1,114 @@ +--- +name: Docker清理 +description: 清理 Docker 镜像构建临时文件和悬空资源 +--- + +## 用户输入 + +```text +$ARGUMENTS +``` + +执行前**必须**处理用户输入(非空时) + +## 参数说明 + +支持以下参数(可组合使用): + +- `cache` - 仅清理构建缓存 +- `images` - 仅清理悬空镜像 +- `volumes` - 仅清理未使用的卷 +- `containers` - 额外清理已停止的容器 +- `all` - 清理默认项目(构建缓存、悬空镜像、未使用的卷) +- `detail` 或 `详细` - 显示详细清理过程 + +## 输出 + +### 格式要求 + +按以下格式输出清理结果: + +```markdown +## Docker 清理报告 + +### 清理前状态 + +| 类型 | 总量 | 活跃 | 占用空间 | 可回收 | +|------|------|------|----------|--------| +| **镜像** | {数量} | {数量} | {大小} | {大小} ({百分比}%) | +| **容器** | {数量} | {数量} | {大小} | {大小} ({百分比}%) | +| **本地卷** | {数量} | {数量} | {大小} | {大小} ({百分比}%) | +| **构建缓存** | {数量} | {数量} | {大小} | {大小} | + +### 清理内容 + +执行以下清理: + +- **构建缓存**:{清理的缓存大小} +- **悬空镜像**:{删除的镜像数量} 个 +- **未使用的卷**:{清理的卷大小} + +{如果用户指定了 `containers` 参数,则添加: +- **已停止的容器**:{删除的容器数量} 个 +} + +### 清理后状态 + +| 类型 | 总量 | 活跃 | 占用空间 | 可回收 | +|------|------|------|----------|--------| +| **镜像** | {数量} | {数量} | {大小} | {大小} ({百分比}%) | +| **容器** | {数量} | {数量} | {大小} | {大小} ({百分比}%) | +| **本地卷** | {数量} | {数量} | {大小} | {大小} ({百分比}%) | +| **构建缓存** | {数量} | {数量} | {大小} | {大小} | + +### 清理总结 + +**释放空间总计:约 {总大小}** + +{根据清理结果给出建议} +``` + +### 执行规则 + +1. **默认行为** - 无参数时,仅清理构建缓存(不清理悬空镜像、未使用的卷、容器) +2. **选择性清理** - 根据 $ARGUMENTS 中的参数执行对应清理 +3. **容器清理** - 仅当用户明确指定 `containers` 参数时才清理已停止的容器 +4. **详细模式** - 当 $ARGUMENTS 包含 "detail" 或 "详细" 时,显示详细的清理过程 +5. **安全检查** - 清理前先检查 Docker 状态,确认可清理内容 +6. **执行顺序** - 按以下顺序执行: + - 检查当前状态(`docker system df`) + - 清理构建缓存(`docker builder prune -a -f`) + - {如果指定了 `images` 参数} 清理悬空镜像(`docker image prune -f`) + - {如果指定了 `volumes` 参数} 清理未使用的卷(`docker volume prune -f`) + - {如果指定了 `containers` 参数} 清理已停止的容器(`docker container prune -f`) + - 显示清理后状态 + +### 清理命令参考 + +```bash +# 检查磁盘使用情况 +docker system df + +# 清理构建缓存(默认执行) +docker builder prune -a -f + +# 清理悬空镜像(需要明确指定) +docker image prune -f + +# 清理未使用的卷(需要明确指定) +docker volume prune -f + +# 清理已停止的容器(需要明确指定) +docker container prune -f + +# 一次性清理所有未使用资源(包括容器,不推荐使用) +docker system prune -a -f --volumes +``` + +### 注意事项 + +- **默认不清理容器**:已停止的容器不会在默认清理中删除,需明确指定 `containers` 参数 +- 构建缓存清理后重新构建镜像会需要更多时间 +- 删除的镜像和卷无法恢复,请谨慎操作 +- 建议定期清理以保持系统整洁 +- 显示可回收空间不代表实际释放空间,可能因层共享而不同 diff --git a/.claude/commands/arno-pr.md b/.claude/commands/arno-pr.md new file mode 100644 index 0000000..d345294 --- /dev/null +++ b/.claude/commands/arno-pr.md @@ -0,0 +1,161 @@ +--- +name: 提交代码 +description: 提交全部内容并推送到远程仓库(不检查路径) +--- + +## 用户输入 + +```text +$ARGUMENTS +``` + +执行前**必须**处理用户输入(非空时) + +## 输出 + +1. 分析本次需要提交的内容,按照**Git 提交规范**整理提交消息 + +2. 提交全部内容并推送到远程仓库 + +3. 使用以下格式输出 + +```text +项目根目录: xxx +工作目录: xxx +本地分支: xxx +远程分支: xxx +远程地址: xxx +用户输入: $ARGUMENTS +提交哈希: xxx +提交时间: yyyy-MM-dd HH:MM:SS +提交日志: + +{git日志} +``` + +## Git 提交规范 + +遵循 Conventional Commits 标准,结合项目特定需求制定以下提交规范: + +### 提交消息格式 + +``` +<类型>(<作用域>): <描述> + +[可选正文] + +[可选脚注] +``` + +### 提交类型 + +**主要类型:** +- **功能 (`feat`)**: 添加新功能或增强现有功能 +- **修复 (`fix`)**: 修复 bug 或错误行为 +- **维护 (`chore`)**: 维护性任务(依赖更新、配置修改等) +- **文档 (`docs`)**: 文档更新、README、注释等 +- **重构 (`refactor`)**: 代码重构(不改变外部行为) +- **测试 (`test`)**: 添加、修改或修复测试代码 +- **格式 (`style`)**: 代码格式化、空白调整等 +- **性能 (`perf`)**: 性能优化改进 +- **构建 (`build`)**: 构建系统、工具链变更 + +**扩展类型:** +- **安全 (`sec`)**: 安全相关修复或改进 +- **依赖 (`deps`)**: 依赖包更新或添加 +- **清理 (`clean`)**: 删除无用代码或文件 +- **优化 (`perf`)**: 性能或代码优化改进 +- **配置 (`config`)**: 配置文件修改 +- **规格 (`spec`)**: speckit 规格文档更新 + +**特殊类型:** +- **合并 (`merge`)**: 分支合并 +- **进行 (`wip`)**: 工作进行中(开发中的临时提交) +- **回滚 (`revert`)**: 回滚之前的提交 +- **发布 (`release`)**: 发布版本标签 + +### 格式要求 + +**标题行规则:** +- 使用祈使语气("添加" 而不是 "添加了") +- 长度不超过 50 个字符 +- 类型后使用冒号和空格分隔:`功能: 添加用户认证` +- 可指定作用域:`功能(auth): 添加 JWT 验证` + +**正文内容(可选):** +- 标题与正文之间留空行 +- 说明"做什么"和"为什么",而非"怎么做" +- 每行不超过 72 个字符 +- 使用项目符号列出多个改动 + +**脚注信息(可选):** +- 标记破坏性变更:`破坏性变更: 详细说明` +- 关联 issue:`关联: #123` 或 `解决: #456` +- 标记不兼容变更:`不兼容: API 接口参数调整` + +### 提交示例 + +#### 基础提交 +```bash +功能: 添加用户登录功能 +修复: 修复内存泄漏问题 +文档: 更新 API 文档 +维护: 更新依赖版本 +``` + +#### 带作用域的提交 +```bash +功能(api): 添加用户认证接口 +功能(ui): 添加登录页面组件 +修复(服务端): 修复数据库连接超时 +测试(集成): 添加端到端测试用例 +``` + +#### 详细描述的提交 +```bash +功能: 实现实时消息推送 + +- 添加 WebSocket 连接管理 +- 实现消息广播机制 +- 添加离线消息存储 +- 支持消息确认机制 + +影响范围: +- 前端消息组件更新 +- 服务端路由扩展 +- 数据库表结构变更 + +关联: #89 +``` + +### Claude Code 提交行为规范 + +**重要:Git 提交消息格式要求** + +- **禁止**在提交消息中添加以下内容: + - `🤖 Generated with [Claude Code](https://claude.com/claude-code)` + - `Co-Authored-By: Claude Sonnet 4.5 ` + - 任何类似的 AI 工具签名或标识 + +- **原因**:保持 Git 提交历史的简洁性和专业性,避免冗余的元数据 + +- **正确示例**: + ``` + 文档: 添加用户认证功能 + + - 添加 JWT 验证中间件 + - 实现登录登出接口 + - 添加权限校验逻辑 + ``` + +- **错误示例**(不要这样做): + ``` + 文档: 添加用户认证功能 + + - 添加 JWT 验证中间件 + + 🤖 Generated with [Claude Code](https://claude.com/claude-code) + + Co-Authored-By: Claude Sonnet 4.5 + ``` + \ No newline at end of file diff --git a/.claude/hooks/user-prompt-submit.sh b/.claude/hooks/user-prompt-submit.sh new file mode 100755 index 0000000..6674614 --- /dev/null +++ b/.claude/hooks/user-prompt-submit.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# ============================================================================ +# UserPromptSubmit Hook +# 记录用户在 Claude Code 中的输入到 .member/{username}.md 文件 +# ============================================================================ + +# 获取当前用户名 +USER_NAME=$(whoami) + +# 项目根目录(脚本所在位置的上级目录) +PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +MEMBER_DIR="${PROJECT_ROOT}/.member" + +# 确保 .member 目录存在 +mkdir -p "${MEMBER_DIR}" + +# 用户日志文件 +USER_LOG="${MEMBER_DIR}/${USER_NAME}.chat.md" + +# 从 stdin 读取 JSON 输入(3 秒超时防止阻塞) +INPUT_JSON=$(timeout 3 cat 2>/dev/null) || exit 0 + +# 如果输入为空,退出 +if [ -z "${INPUT_JSON}" ]; then + exit 0 +fi + +# 提取用户输入内容 +# Claude Code UserPromptSubmit hook 传递的 JSON 格式: {"prompt": "用户输入"} +USER_PROMPT=$(echo "${INPUT_JSON}" | jq -r '.prompt // empty' 2>/dev/null) + +# 如果无法提取内容,尝试直接使用输入 +if [ -z "${USER_PROMPT}" ]; then + USER_PROMPT="${INPUT_JSON}" +fi + +# 如果输入为空,退出 +if [ -z "${USER_PROMPT}" ]; then + exit 0 +fi + +# 排除 .claude/commands/ 中的命令(/arno-pr 等) +COMMANDS_DIR="${PROJECT_ROOT}/.claude/commands" +if [ -d "${COMMANDS_DIR}" ]; then + # 提取命令名(去掉参数部分),如 "/arno-pr xxx" -> "arno-pr" + CMD_NAME=$(echo "${USER_PROMPT}" | sed 's|^/\([^ ]*\).*$|\1|') + if [ -n "${CMD_NAME}" ] && [ -f "${COMMANDS_DIR}/${CMD_NAME}.md" ]; then + exit 0 + fi +fi + +# 获取当前时间戳 +TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') + +# 如果文件不存在,创建并添加文件头 +if [ ! -f "${USER_LOG}" ]; then + printf '# %s 的对话记录\n\n' "${USER_NAME}" > "${USER_LOG}" +fi + +# 追加用户输入到文件(使用 printf 避免内容中的特殊字符导致 heredoc 展开问题) +printf '\n## %s\n\n%s\n\n' "${TIMESTAMP}" "${USER_PROMPT}" >> "${USER_LOG}" + +exit 0 diff --git a/.claude/memory/MEMORY.md b/.claude/memory/MEMORY.md new file mode 100644 index 0000000..216ecc0 --- /dev/null +++ b/.claude/memory/MEMORY.md @@ -0,0 +1,12 @@ +# iPass 自动记忆 + +> 最后更新: 2026-04-08 + +> **注意**: 项目核心信息已在 [.claude/CLAUDE.md](../.claude/CLAUDE.md) 中定义,此文件仅用于 Claude 自动学习的内容。 + +## 用户偏好 + +- [用户偏好](./user_preferences.md) — 文档层级管理、上下文管理 + +--- +*此文件由 Claude 自动记忆功能维护,记录会话中发现的有价值的模式、偏好和解决方案。* diff --git a/.claude/memory/user_preferences.md b/.claude/memory/user_preferences.md new file mode 100644 index 0000000..0dae484 --- /dev/null +++ b/.claude/memory/user_preferences.md @@ -0,0 +1,17 @@ +--- +name: 用户偏好 +description: 文档管理、上下文管理等用户偏好设置 +type: user +--- + +# 用户偏好 + +## 文档层级管理 + +- `.claude/CLAUDE.md` 是项目主指南,所有开发实践以此为基准 +- `.claude/memory/MEMORY.md` 记录跨会话偏好和经验 +- `CLAUDE.md` (根目录) 由 `/speckit.specify` 自动生成,仅作为简洁入口 + +## 上下文管理 + +- 当前使用 GLM-5 模型(200K 上下文),当上下文使用达到 150K 时,执行 `/compact` 命令进行压缩 diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..0da6ea1 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,18 @@ +{ + "env": { + "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000", + "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "75" + }, + "hooks": { + "UserPromptSubmit": [ + { + "hooks": [ + { + "type": "command", + "command": ".claude/hooks/user-prompt-submit.sh" + } + ] + } + ] + } +} diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..97a9d52 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,16 @@ +- Always reply in Chinese + +# 深圳市网新新思软件有限公司 AI研究院 + +> **重要**: 完整的项目指南请查看 [`.claude/CLAUDE.md`](./.claude/CLAUDE.md) + +## 核心文档 + +| 文档 | 用途 | +|------|------| +| [`.claude/CLAUDE.md`](./.claude/CLAUDE.md) | **主项目指南** - 技术栈、编码规范、模块说明 | +| [`.claude/memory/MEMORY.md`](./.claude/memory/MEMORY.md) | **自动记忆** - 用户偏好、会话学习内容 | + +## 当前功能 + +## Recent Changes diff --git a/工程/README.md b/工程/README.md index 8bc2f00..b4b0153 100644 --- a/工程/README.md +++ b/工程/README.md @@ -14,6 +14,7 @@ ### Claude Code / AI Agent +- [Claw Code](https://github.com/ultraworkers/claw-code) ⭐ 179k Star - Claw Code is the public Rust implementation of the claw CLI agent harness. - [Superpowers](https://github.com/obra/superpowers) ⭐100k - Claude Code 超能力插件 - [Everything Claude Code](https://github.com/affaan-m/everything-claude-code) ⭐89k - Claude Code 资源大全 - [Claude Code](https://github.com/anthropics/claude-code) ⭐80.3k - Anthropic 官方 Claude Code CLI 工具 diff --git a/知识/金鹏.md b/知识/金鹏.md index 48c6ba9..581f255 100644 --- a/知识/金鹏.md +++ b/知识/金鹏.md @@ -1,5 +1,6 @@ # 文章分享 金鹏 +- [新思开源](https://gitea.szis.com.cn/isos/tech) - [文章分享](https://ai.szis.com.cn/new-article) - 图片格式 - 列表 @@ -14,8 +15,57 @@ ## 2026-04-10 +- [Claude Code Source Snapshot](https://gitea.szis.com.cn/github/claude-code/src/branch/trunk/docs) + - ![-](./金鹏/20260410/20260410-001.png) + - 网新新思 + - Claw Hero + - [Claude Code 源码概述](https://zread.ai/instructkr/claude-code) + - [Claude Code 从入门到精通](https://my.feishu.cn/wiki/JK1WwrRgJiYfRok7YxxceS5qn1J) + - [Open Claw 从入门到精通](https://my.feishu.cn/wiki/H27Iw9ussiaYbokymhncExtjnAh) + - [Claw Code](https://github.com/ultraworkers/claw-code) ⭐ 179k Star - Claw Code is the public Rust implementation of the claw CLI agent harness. + - [Claude Code 工程实践](https://mp.weixin.qq.com/s/55jsrF1I-avh7Sx-w7TLlA) + - 全局架构:分层调度,不是多 Agent 对等协作 + - Agentic Loop:单线程循环跑完绝大多数任务 + - Coordinator-Worker:需要时才启用的多 Agent 编排 + - 三层记忆系统:短期压缩、中期萃取、长期整合 + - Agent 列表从内联改为 Attachment:省了 10.2% 的 Cache Token + - Cron 调度的 Jitter 设计:避开整点 + - NO_TOOLS_PREAMBLE:防止模型在不该调工具的时候调工具 + - Feature Flags 的编译时消除 + - 工程视角:从 Prompt Engineering 到 Harness Engineering + - [Claude Code 设计亮点与启示](https://mp.weixin.qq.com/s/rsh4kivDtcFKfgmp07LvvQ) + - 一、CC整体架构全景:工业级多智能体 IDE 的底层骨架 + - 启动与基础层 + - 核心引擎层 + - 业务服务层 + - 交互UI层 + - 生态扩展层 + - 二、CC核心设计亮点:AI 原生 IDE 的极致工程化 + - 亮点 1:「协调者 - 工作者」多智能体原生架构(Coordinator 核心) + - 亮点 2:工程化上下文管理:自主感知 + 分层压缩 + 持久化 + - 亮点 3:标准化工具 + 技能系统:智能体能力的可管控、可扩展 + - 亮点 4:全生命周期任务管理:无人值守的研发闭环 + - 亮点 5:Bridge 模块:CLI↔IDE 无缝桥接,定义 AI 工具生态标准 + - 亮点 6:原生安全与权限设计:前置拦截,企业级合规 + - 亮点 7:中心化全局状态管理:多模块状态一致性 + - 亮点 8:轻量化服务化部署:无头模式 + 远程调用 + - 三、CC 对多智能体AI 原生 IDE 的核心设计启示 + - 启示 1:架构必须采用「协调者 - 工作者」分层模型,拒绝单体智能体 + - 启示 2:上下文管理必须工程化,拒绝手动配置 + - 启示 3:智能体能力必须标准化、可管控、可扩展 + - 启示 4:任务管理必须全生命周期闭环,实现无人值守研发 + - 启示 5:生态必须原生打通,CLI/IDE/ 远程多端一体化 + - 启示 6:安全与权限必须原生嵌入,而非外挂功能 + - 启示 7:交互必须透明可控,拒绝 AI 黑盒 + - [Prompt 开源](https://mp.weixin.qq.com/s/5jG89wVD2niFqHCPrvDxXA) 分享的不是怎么写代码,而是怎么想清楚一件事 + - [使用 tunasync 搭建开源镜像站](http://weyo.me/pages/techs/how-to-make-a-mirror-site/) [tunasync](https://github.com/tuna/tunasync) [weyo 开源镜像站](https://github.com/weyo/mirrors) [清华大学开源软件镜像站 服务器监控](https://mirrors.tuna.tsinghua.edu.cn/status/#syncing-status) + - [阿里:Tablestore + Mem0](https://mp.weixin.qq.com/s/3lEoXvkFnuA-CzZdQotyqA) + - [阿里:Memory架构与思考](https://mp.weixin.qq.com/s/bl77_Mb85C4AKe8h4__V6Q) + - Memory 不是"存储",而是可被决策利用的外部状态(external state) + - Memory 的最小闭包不是"文档块",而是 (Ledger, Views, Policy) 三件套 + - Memory 的基本单位应当是 event 序列,但"直接用 event 流"不等于可用系统 -## 2026-03-20 +## 2026-03-27 - [人智协同常见问题](https://ai.szis.com.cn/media/images/2026/03/26/2026-03-27_snEVA4Q.pdf) - ![-](./金鹏/20260327/20260327-004.png) diff --git a/知识/金鹏/20260410/20260410-001.png b/知识/金鹏/20260410/20260410-001.png new file mode 100644 index 0000000..321950c Binary files /dev/null and b/知识/金鹏/20260410/20260410-001.png differ diff --git a/资料/2026-03-24_OpenClaw橙皮书-从入门到精通-v1.4.0.pdf b/资料/2026-03-24_OpenClaw橙皮书-从入门到精通-v1.4.0.pdf new file mode 100644 index 0000000..0778188 Binary files /dev/null and b/资料/2026-03-24_OpenClaw橙皮书-从入门到精通-v1.4.0.pdf differ diff --git a/资料/2026-04-01_Claude Code从入门到精通-v2.0.0.pdf b/资料/2026-04-01_Claude Code从入门到精通-v2.0.0.pdf new file mode 100644 index 0000000..eb69ec3 Binary files /dev/null and b/资料/2026-04-01_Claude Code从入门到精通-v2.0.0.pdf differ