mcpField
S
skill-system-soul

skill-system-soul

github.com/arthur0824haoAgent 工作流68 次安装
代码仓库

关于 skill-system-soul

Skill System Soul 是用于管理 Agent 行为档案及其演进的技能,适合需要为不同任务设定行为模式并持续调整档案的场景。它支持档案比较、偏好信号提取、版本快照与回滚,且演进竞技场只提供建议,不会自动切换或合并档案。

主要功能

  1. 01加载和管理行为档案
  2. 02提取偏好信号并更新状态矩阵
  3. 03合成档案并生成演进提案
  4. 04通过竞技场比较候选档案
  5. 05管理版本并回滚更改

适用场景

  1. 01按任务选择创意或严格模式
  2. 02从会话中提取用户偏好
  3. 03比较档案更改对任务表现的影响
  4. 04恢复先前版本的行为档案

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/arthur0824hao/skills --skill skill-system-soul

安装后在 Claude Code 中输入/skill-system-soul确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

profiles/
balanced.md
Corvus.md
creative.md
EP.md
Finch.md
Lark.md
Research.md
SK.md
strict.md
talkative.md
Work.md
Wren.md
prompts/
evolution-planning.md
facet-extraction.md
lark-idea-capture.md
recipe-evolution.md
soul-synthesis.md
schema/
evolution-plan.yaml
evolution-snapshot.yaml
facet.yaml
soul-state.yaml
scripts/
evolution_arena.py
evolve-recipes.md
evolve-soul.md
extract-facets.md
insight_bundle_b012.py
list-versions.md
rollback.md
synthesize-profile.md
test_evolution_arena.py

详细介绍

Skill System Soul

Soul 是 Agent 个性档案、会话维度、双矩阵灵魂状态以及版本化灵魂演进的规范所有者。当你需要采用某种行为档案、提取/更新用户偏好信号、在竞技场中比较候选档案变更,或管理灵魂演进快照和回滚时,请加载它。

原因

不同模型(Claude、GPT、Gemini)的默认行为各不相同。Soul 档案会对其进行规范化——无论底层模型是什么,同一档案都会产生相似的行为。

不同任务也需要不同的行为模式:

  • 探索想法 → 富有创意、发散思维、多提问题
  • 代码审查 → 严格、一次遵守一条规则、毫不留情
  • 与用户讨论 → 善于交流、深入挖掘、使用提问工具

选择档案

根据任务选择档案:

任务类型档案适用场景
头脑风暴、探索、研究creative创意 > 正确性,需要发散思维
代码审查、lint、合规strict正确性 > 速度,零容忍歧义
用户访谈、需求收集、讨论talkative理解 > 效率,深入挖掘用户意图
标准开发工作balanced默认。融合所有模式。

读取档案文件:profiles/<name>.md

档案结构

每个档案定义:

  1. 身份 — 你在此模式下是谁
  2. 决策启发式 — 不确定时如何做选择
  3. 沟通风格 — 如何表达自己
  4. 质量标准 — 什么才算“完成”
  5. 工具偏好 — 优先使用哪些工具
  6. 反模式 — 此模式下应避免什么

规范语言策略:语言压缩

当审查者档案与 Arthur 或 Wren 交流架构、诊断或系统行为时,必须包含 语言压缩 / 概念支架 部分。

在有助于 Arthur 快速理解时,首先使用生物学/生理学隐喻作为概念支架,然后将其映射到确切的技术对象和证据。必须采用以下结构:

隐喻 -> 映射 -> 证据/门槛/操作

不要先写完整的技术解释,再在最后附上一句装饰性的隐喻。如果隐喻有用,就应放在前面,以减轻认知负担。隐喻绝不能取代证据:路径、命令输出、所有者、关闭门槛和剩余风险仍须明确说明。

可用档案

balanced(默认)

标准操作模式。无需特定行为模式时使用。

读取:profiles/balanced.md

creative

发散思维模式。用于探索、头脑风暴和研究。

读取:profiles/creative.md

strict

收敛精准模式。用于代码审查、合规和规则执行。

读取:profiles/strict.md

talkative

深度交流模式。用于用户访谈、需求收集和讨论。

读取:profiles/talkative.md

观察与演进

Soul 现在负责完整的观察与演进循环:

  • extract-facets / update-matrix / synthesize-profile
  • evolve-proposals / observe-from-compaction / suggest-scriptification
  • evolve-arena-loop / evolve-soul
  • list-versions / rollback

skill-system-insight 的兼容接口仍暂时作为已弃用的垫片提供,但实现由 Soul 负责。

具备压缩感知能力的观察仍遵循提案安全原则:只有在存在量化压缩计数时,由钩子触发的摘要才会记录源自压缩的信号;重复的多步操作可以生成脚本化建议,但不会自动生成脚本。

进化竞技场

使用 scripts/evolution_arena.py run,在相同任务上对两个配置文件进行 A/B 对比。

Soul 负责竞技场阶段以及集成的观察/进化操作。竞技场仍只提供建议,绝不会自动切换配置文件或自动合并更改。

  • 输入:profile_a、profile_b、任务文本和指标对象(completion_time、test_pass_rate、code_quality_score、evidence_quality)
  • 输出:胜出配置文件及理由;候选方案退步时提供回滚建议,并提供合并建议辅助功能
  • 安全性:不自动切换配置文件,也不自动合并

创建自定义配置文件

将 profiles/balanced.md 复制为模板。根据需求调整 6 个部分。将文件放入 profiles/ 目录,并使用描述性名称。

{
  "schema_version": "2.0",
  "id": "skill-system-soul",
  "version": "1.3.0",
  "capabilities": ["soul-profile-load", "soul-profile-list", "soul-evolution-arena", "soul-facet-extract", "soul-matrix-update", "soul-profile-synthesize", "soul-evolve", "soul-proposals", "soul-compaction-observe", "soul-scriptification-suggest", "soul-versioning"],
  "effects": ["fs.read", "fs.write", "db.read", "db.write"],
  "operations": {
    "load-profile": {
      "description": "Load a behavioral profile by name. Agent reads and adopts the profile.",
      "input": {
        "profile_name": { "type": "string", "required": true, "description": "Profile name: balanced, creative, strict, talkative, or a user name" }
      },
      "output": {
        "description": "Profile markdown content",
        "fields": { "content": "markdown text" }
      },
      "entrypoints": {
        "agent": "Read profiles/<profile_name>.md"
      }
    },
    "list-profiles": {
      "description": "List available soul profiles.",
      "input": {},
      "output": {
        "description": "Array of profile names",
        "fields": { "profiles": "array of strings" }
      },
      "entrypoints": {
        "agent": "List files in profiles/ directory"
      }
    },
    "arena-run": {
      "description": "Run an A/B arena comparison between two soul profiles and emit winner/rationale plus rollback suggestion.",
      "input": {
        "profile_a": { "type": "string", "required": true, "description": "Baseline profile" },
        "profile_b": { "type": "string", "required": true, "description": "Candidate profile" },
        "task": { "type": "string", "required": true, "description": "Task identifier" },
        "metrics": { "type": "object", "required": true, "description": "profile_a/profile_b metric payload" }
      },
      "output": {
        "description": "Arena report",
        "fields": { "winner": "object", "rollback_suggestion": "object", "auto_switch": "false" }
      },
      "entrypoints": {
        "unix": ["python3", "scripts/evolution_arena.py", "run", "--profile-a", "{profile_a}", "--profile-b", "{profile_b}", "--task", "{task}", "--metrics-json", "{metrics}"]
      }
    },
    "extract-facets": {
      "description": "Extract a per-session facet from transcript.",
      "input": {
        "session_id": { "type": "string", "required": true },
        "user": { "type": "string", "required": true }
      },
      "output": {
        "description": "Facet extraction result",
        "fields": { "status": "string", "memory_id": "integer" }
      },
      "entrypoints": {
        "agent": "Follow scripts/extract-facets.md procedure"
      }
    },
    "update-matrix": {
      "description": "Update dual matrix from stored facets.",
      "input": {
        "user": { "type": "string", "required": true }
      },
      "output": {
        "description": "Updated soul-state",
        "fields": { "status": "string", "values_changed": "boolean" }
      },
      "entrypoints": {
        "agent": "Follow scripts/update-matrix.md procedure"
      }
    },
    "synthesize-profile": {
      "description": "Regenerate a soul profile from matrix and recent facets.",
      "input": {
        "user": { "type": "string", "required": true }
      },
      "output": {
        "description": "Synthesized profile result",
        "fields": { "status": "string", "profile_path": "string", "version_tag": "string" }
      },
      "entrypoints": {
        "agent": "Follow scripts/synthesize-profile.md procedure"
      }
    },
    "evolve-proposals": {
      "description": "Generate non-destructive evolution proposals from soul-state facets.",
      "input": {
        "user": { "type": "string", "required": true }
      },
      "output": {
        "description": "Proposal-only evolve output",
        "fields": { "status": "string", "proposals": "array", "reason": "string" }
      },
      "entrypoints": {
        "agent": "Use scripts/insight_bundle_b012.py evolve-proposals"
      }
    },
    "observe-from-compaction": {
      "description": "Store compaction-derived observation signals from hook payloads.",
      "input": {
        "user": { "type": "string", "required": true },
        "session_id": { "type": "string", "required": true },
        "compaction_json": { "type": "object", "required": true }
      },
      "output": {
        "description": "Stored compaction observation result",
        "fields": { "status": "string", "stored_count": "integer", "trigger": "string" }
      },
      "entrypoints": {
        "unix": ["python3", "scripts/insight_bundle_b012.py", "observe-from-compaction", "--user", "{user}", "--session-id", "{session_id}", "--compaction-json", "{compaction_json}"],
        "windows": ["python", "scripts/insight_bundle_b012.py", "observe-from-compaction", "--user", "{user}", "--session-id", "{session_id}", "--compaction-json", "{compaction_json}"]
      }
    },
    "suggest-scriptification": {
      "description": "Suggest scriptification candidates for repeated multi-step operations.",
      "input": {
        "user": { "type": "string", "required": true },
        "session_id": { "type": "string", "required": true }
      },
      "output": {
        "description": "Suggestion-only scriptification report",
        "fields": { "status": "string", "count": "integer", "suggestions": "array" }
      },
      "entrypoints": {
        "unix": ["python3", "scripts/insight_bundle_b012.py", "suggest-scriptification", "--user", "{user}", "--session-id", "{session_id}"],
        "windows": ["python", "scripts/insight_bundle_b012.py", "suggest-scriptification", "--user", "{user}", "--session-id", "{session_id}"]
      }
    },
    "evolve-arena-loop": {
      "description": "Run proposal -> arena -> merge suggestion flow.",
      "input": {
        "user": { "type": "string", "required": true },
        "task": { "type": "string", "required": true },
        "current_profile": { "type": "string", "required": true },
        "proposals": { "type": "array", "required": true },
        "metrics": { "type": "object", "required": true }
      },
      "output": {
        "description": "Arena and merge suggestion report",
        "fields": { "arena_runs": "array", "merge_suggestions": "array", "auto_merge": "false" }
      },
      "entrypoints": {
        "agent": "Use scripts/insight_bundle_b012.py evolve-arena-loop"
      }
    },
    "evolve-soul": {
      "description": "Evolve soul profile from accumulated insight data.",
      "input": {
        "user": { "type": "string", "required": true }
      },
      "output": {
        "description": "Evolution result",
        "fields": { "version_tag": "string", "changes": "array", "profile_path": "string" }
      },
      "entrypoints": {
        "agent": "Follow scripts/evolve-soul.md procedure"
      }
    },
    "list-versions": {
      "description": "List all evolution snapshots for a user.",
      "input": {
        "user": { "type": "string", "required": true },
        "target": { "type": "string", "required": false }
      },
      "output": {
        "description": "Version snapshots",
        "fields": { "versions": "array" }
      },
      "entrypoints": {
        "agent": "Follow scripts/list-versions.md procedure"
      }
    },
    "rollback": {
      "description": "Restore a previous evolution version.",
      "input": {
        "user": { "type": "string", "required": true },
        "version_tag": { "type": "string", "required": true }
      },
      "output": {
        "description": "Rollback result",
        "fields": { "status": "string", "restored_from": "string" }
      },
      "entrypoints": {
        "agent": "Follow scripts/rollback.md procedure"
      }
    }
  },
  "stdout_contract": {
    "last_line_json": false,
    "note": "Agent-executed; profiles are markdown files read directly."
  }
}

评论

支持 Markdown