feat(cli): nerve agent inject claude — RFC #289 Phase 4 #306

Merged
xiaomo merged 1 commits from feat/agent-inject-claude into main 2026-05-02 02:10:07 +00:00
Owner

What

RFC #289 Phase 4 继续:扩展 nerve agent inject 支持 Claude Code。

新增

  • nerve agent inject claude — 注入 nerve skill 到 ~/.claude/CLAUDE.md
  • nerve agent remove claude — 只移除 nerve 块,保留用户已有内容
  • nerve agent status — 显示 Claude Code 注入状态
  • nerve agent update — 包含 Claude Code 更新

设计

  • <!-- nerve-cli:start vX.Y.Z --> / <!-- nerve-cli:end --> 标记块包裹
  • inject:文件不存在则创建,已有标记块则替换,无标记块则追加
  • remove:只删除标记块内容,保留用户其他配置
  • Skill 内容与最新 SKILL.md 对齐(PR #301 后的版本)

验证

  • inject 创建新文件
  • inject 追加到已有文件(保留用户内容)
  • inject 幂等
  • remove 只删 nerve 块,保留用户内容
  • remove 空文件时删除文件
  • status 显示 Claude Code 状态
  • biome check 通过
  • build 通过

Closes #305
Ref: #289

## What RFC #289 Phase 4 继续:扩展 `nerve agent inject` 支持 Claude Code。 ### 新增 - `nerve agent inject claude` — 注入 nerve skill 到 `~/.claude/CLAUDE.md` - `nerve agent remove claude` — 只移除 nerve 块,保留用户已有内容 - `nerve agent status` — 显示 Claude Code 注入状态 - `nerve agent update` — 包含 Claude Code 更新 ### 设计 - 用 `<!-- nerve-cli:start vX.Y.Z -->` / `<!-- nerve-cli:end -->` 标记块包裹 - inject:文件不存在则创建,已有标记块则替换,无标记块则追加 - remove:只删除标记块内容,保留用户其他配置 - Skill 内容与最新 SKILL.md 对齐(PR #301 后的版本) ### 验证 - ✅ inject 创建新文件 - ✅ inject 追加到已有文件(保留用户内容) - ✅ inject 幂等 - ✅ remove 只删 nerve 块,保留用户内容 - ✅ remove 空文件时删除文件 - ✅ status 显示 Claude Code 状态 - ✅ biome check 通过 - ✅ build 通过 Closes #305 Ref: #289
scottwei added 1 commit 2026-04-30 15:15:45 +00:00
Add Claude Code support to nerve agent:
- nerve agent inject claude — append nerve skill block to ~/.claude/CLAUDE.md
- nerve agent remove claude — remove only the nerve block, preserve user content
- nerve agent status — show Claude Code injection status
- nerve agent update — includes Claude Code

Uses marker comments <!-- nerve-cli:start vX.Y.Z --> / <!-- nerve-cli:end -->
to safely coexist with user's existing CLAUDE.md content.

Closes #305
Ref: #289
xiaomo requested changes 2026-05-02 00:45:09 +00:00
Dismissed
xiaomo left a comment
Owner

Review: nerve agent inject claude

CLI 实现部分质量很好,inject/remove/update 逻辑完善。但有一个阻塞问题:

🔴 阻塞:CLAUDE.md 模板内容过时

packages/cli/skills/claude/CLAUDE.md 整篇还是 PR #312 之前的旧架构:

  • 仍描述 Signal Bus(已移除)
  • 仍用 compute() 无参签名 + ComputeResult<T>(现在是 compute(state) => { state, workflow }
  • 仍提 per-sense SQLite + Drizzle schema(现在是 JSON state)
  • 仍有 sense query / sense schema CLI 命令(已删除)
  • 仍提 retention_signals 表(已移除)

这会直接误导 Claude Code 生成错误代码。需要对齐 PR #312/314 后的架构:

  1. Sense: compute(state) => { state, workflow }initialState 导出
  2. State 持久化为 JSON(data/senses/<name>.json),原子写入
  3. Signal 概念移除,链路简化为 Sense(state) → Workflow → Log
  4. CLI 移除 sense query/sense schema,无 Drizzle 依赖

CLI 代码部分没问题

  • inject/remove/update 逻辑完善
  • 标记块方案(<!-- nerve-cli:start --> / <!-- nerve-cli:end -->)干净
  • 幂等处理正确
  • removeClaude 清空文件时删文件的细节到位
## Review: nerve agent inject claude CLI 实现部分质量很好,inject/remove/update 逻辑完善。但有一个阻塞问题: ### 🔴 阻塞:CLAUDE.md 模板内容过时 `packages/cli/skills/claude/CLAUDE.md` 整篇还是 PR #312 之前的旧架构: - 仍描述 Signal Bus(已移除) - 仍用 `compute()` 无参签名 + `ComputeResult<T>`(现在是 `compute(state) => { state, workflow }`) - 仍提 per-sense SQLite + Drizzle schema(现在是 JSON state) - 仍有 `sense query` / `sense schema` CLI 命令(已删除) - 仍提 `retention`、`_signals` 表(已移除) 这会直接误导 Claude Code 生成错误代码。需要对齐 PR #312/314 后的架构: 1. Sense: `compute(state) => { state, workflow }`,`initialState` 导出 2. State 持久化为 JSON(`data/senses/<name>.json`),原子写入 3. Signal 概念移除,链路简化为 Sense(state) → Workflow → Log 4. CLI 移除 `sense query`/`sense schema`,无 Drizzle 依赖 ### ✅ CLI 代码部分没问题 - inject/remove/update 逻辑完善 - 标记块方案(`<!-- nerve-cli:start -->` / `<!-- nerve-cli:end -->`)干净 - 幂等处理正确 - `removeClaude` 清空文件时删文件的细节到位
xiaoju force-pushed feat/agent-inject-claude from f095dd0d7b to fd65acc329 2026-05-02 02:02:53 +00:00 Compare
xiaomo approved these changes 2026-05-02 02:10:06 +00:00
xiaomo left a comment
Owner

CLAUDE.md 模板已完全对齐 Stateful Sense 架构 CLI 代码上轮已审过没问题,合了。

CLAUDE.md 模板已完全对齐 Stateful Sense 架构 ✅ CLI 代码上轮已审过没问题,合了。
xiaomo merged commit 6b8c917358 into main 2026-05-02 02:10:07 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
3 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#306