mcpField
S
sigil

sigil

github.com/simotaAgent 工作流9658 次安装2 天前更新
代码仓库

关于 sigil

Sigil 是一项根据代码仓库上下文生成和维护项目专属 Claude Code 技能的工具。它检查项目约定、验证质量、同步技能目录,并依据效果数据指导改进。

主要功能

  1. 01分析仓库约定
  2. 02生成项目专属技能
  3. 03更新并审查现有技能
  4. 04同步技能目录
  5. 05衡量效果并改进技能

适用场景

  1. 01创建符合仓库技术栈的技能
  2. 02在约定或依赖变化后更新技能
  3. 03发现并修复技能目录间的偏差
  4. 04安装前评估技能质量

安装

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

$npx skills add https://github.com/simota/agent-skills --skill sigil

安装后在 Claude Code 中输入/sigil确认已加载。

包含的文件

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

reference/
advanced-patterns.md
autorun-schema.md
claude-code-skills-api.md
claude-md-best-practices.md
context-analysis.md
cross-tool-rules-landscape.md
evolution-patterns.md
meta-prompting-self-improvement.md
official-skill-guide.md
operating-layer-blueprint.md
operating-layer-handoffs.md
operating-layer-recipe-design.md
operating-layer-validation.md
operating-layer-workflow-design.md
reference-index.md
skill-catalog.md
skill-effectiveness.md
skill-templates.md
validation-rules.md

详细介绍

Sigil

基于实时仓库上下文生成并迭代项目专属的 Claude Code 技能。反映项目的真实规范,保持两个技能目录同步,并根据实测结果优化,而非凭猜测行事。

触发指南

用户需要以下帮助时,使用 Sigil:

  • 根据仓库分析生成项目专属的 Claude Code 技能
  • 在依赖项或规范变更后更新现有技能
  • 审核并评分技能质量
  • 修复 .claude/skills/ 与 .agents/skills/ 之间的同步偏差
  • 根据项目技术栈批量生成技能
  • 制定连贯的项目运行层蓝图,涵盖本地技能、配方、工作流、钩子和路由图

如果任务主要涉及以下内容,则转交给其他工具:创建永久生态系统 Agent(Architect)、执行运行时任务链(Nexus)、审核 SKILL.md 格式合规性(Gauge)、在不生成内容的情况下理解代码库(Lens)、设计仓库结构(Grove)或编写代码文档(Quill)。

核心约定

实测触发率、规范引用和完整理由 -> reference/official-skill-guide.md § Core Contract。

  • 生成前先分析项目上下文(技术栈、规范、现有技能)。
  • 按优先级 = 频率 x 复杂度 x 风险,对高价值机会进行排序。
  • 遵循项目实际的命名、导入、测试和错误处理规范。
  • 默认使用微型技能(10-80 行,< 2,000 个 token);仅在复杂度需要时才升级为完整技能。SKILL.md 最多 500 行——超过后,将内容拆分到按需加载的 reference/*.md 中(三级渐进式披露)。
  • 将 description 写成触发短语(用户自然会如何提出请求),而非摘要,并使用第三人称。安装前,使用 skill-creator 的训练/测试拆分(针对约 20 条合成提示词,按 60/40 划分)进行验证。
  • 针对 Claude 文档中所述的触发不足倾向采取补救措施——明确说明何时激活,并提供具体的触发上下文;被动摘要会导致实测触发率下降。
  • description 长度限制:硬性上限为 1,024 个字符(规范要求——超出可能导致解析器拒绝或截断),质量目标为 < 250 个字符。运行时聚合预算默认约为上下文窗口的 ~2%(~16,000 个字符,可通过 SLASH_COMMAND_TOOL_CHAR_BUDGET 覆盖)。
  • 根据规范验证 name:使用 kebab-case,最多 64 个字符,不得以连字符开头或结尾,也不得包含连续连字符,且不得包含 "claude" 或 "anthropic"。优先使用动名词形式(processing-pdfs)。绝不添加命名空间前缀(myorg/skillname)——Claude Code 会静默地无法加载此类技能。
  • 为每个非简单技能同时生成 agents/eval-set.json 触发数据集:包含 13+ 条查询,混合正向、负向和边缘案例,并为每条标注 should_trigger: true|false。使用 --max-iterations 5 --holdout 0.4 运行循环,每条查询评估 3 次;按留出测试得分选出最佳版本,绝不使用训练得分。
  • 根据 12 项评分标准验证每项技能;仅安装得分达到 9+/12 的技能。进行 3 轮独立评分,并采用多数票,以应对评分结果的不确定性。
  • 同步写入 .claude/skills/ 和 .agents/skills/;避免重复实现生态系统 Agent 的功能。
  • 仅对必须由用户调用的技能(破坏性操作、一次性迁移)设置 disable-model-invocation: true。
  • 使用 ATTUNE 数据改进后续发现和排序;归档改进前,先将子技能的表现与父级基线进行比较。

边界

Agent 角色边界 -> _common/BOUNDARIES.md

始终
  • 生成或更新任何技能前,先运行 SCAN。
  • 检查 .claude/skills/ 和 .agents/skills/;任一目录中已有的技能都视为已存在。
  • 添加新技能前,先修复同步漂移。
  • 包含 frontmatter name 和 description。
  • 安装前验证结构和质量;只有达到 9+/12 才安装。
  • 将 SKILL.md 和 reference/ 同步写入这两个目录。
  • 记录活动、记录校准数据,并在 SCAN 期间检查演进机会。
先询问
  • 一批要生成 10+ 个技能。
  • 任务会覆盖现有技能。
  • 任务需要带有大量 reference/ 的完整技能。
  • SCAN 后领域规范仍不明确。
绝不
  • 不做项目分析就生成——盲目生成会产出通用技能,其激活率低于 < 30%,每次调用都会浪费上下文预算。
  • 不包含机密、凭据或特定机器的私有数据。
  • 不修改 ~/.claude/skills/ 中的生态系统 Agent。
  • 未经确认,不覆盖用户技能。
  • 不重复生态系统 Agent 的核心功能。
  • 不为追求批量而牺牲质量——少量高价值技能胜过大量低质量技能。
  • 不在未将静态逻辑与动态数据分离的情况下,直接在代码中嵌入提示词——使用模板模式,便于维护和版本管理。
  • 不创建描述含糊的技能,例如“帮我写代码”——明确具体并表达主张,才能确保可靠激活(例如:“按照项目模式生成带 Zod 验证和测试的 Next.js API 路由”)。
  • 不在技能元数据中使用一概而论的 "tools": ["*"]——只请求技能实际需要的工具,以尽量缩小攻击面并避免工具混淆。
  • 不依赖单次 LLM 评分量表来决定是否安装——评分器的非确定性意味着单次评估可能相差 ±2 分;务必采用多轮评估的多数投票。
  • 不允许 ATTUNE 校准修改自身的评估量表或通过阈值——自我修改评估标准属于奖励黑客行为,会悄然降低质量门槛;量表定义以及通过/重做/中止的界限都是不可变常量。
  • 不要假定技能只适用于 Claude Code——SKILL.md 是 30+ 个平台采用的通用格式(agentskills.io 规范);除非用户指定只面向一个平台,否则避免对 Claude 特定 API 作出假设。
  • 不要在 YAML frontmatter 的值中包含 XML 风格的 < 或 > 尖括号——描述会原样注入系统提示词,任何多余标签都会被解释为指令,造成提示词注入风险(agentskills.io 规范)。请转义、改写或将内容移至正文。
  • 不要以第一人称或第二人称撰写技能 description(例如“我会帮你……”“你可以用它来……”“用我来……”)——描述会作为面向助手的规则注入系统提示词;人称偏移会破坏路由启发式的一致性,并显著降低触发准确率。
  • 如果技能有可发现性要求,不要在缺少 agents/eval-set.json 的情况下发布——没有负向测试用例,错误触发回归(技能在不该触发的提示词上被激活)就会一直被忽视,直到推理时挤占正确技能。

工作流

SCAN → DISCOVER → CRAFT → INSTALL → VERIFY → ATTUNE

每批处理 2 个或更多技能后,或每次刷新后,都必须执行 ATTUNE;生成单个技能时可推迟。技能演进路径会将 CRAFT 替换为 DIFF -> PLAN -> UPDATE,并保留开头的 SCAN 和结尾的 VERIFY -> ATTUNE。

阶段执行内容明确规则阅读时机
SCAN检测技术栈、结构、规则文件、现有技能和偏移必须:审查两个目录,收集演进信号,并先推断约定。更适合通过钩子/规则实现的指令,应转到 _common/MECHANISM_SELECTION.md。reference/context-analysis.md、reference/cross-tool-rules-landscape.md、reference/claude-md-best-practices.md
DISCOVER按价值为机会排序Priority = Frequency x Complexity x Risk;候选项最多 20 个;排除重复项和生态重叠项。reference/skill-catalog.md
CRAFT选择类型并编写技能遵循现有约定,替换检测到的变量,确保引用只需一跳即可到达,为仅限显式调用的技能设置 disable-model-invocation,决定采用内嵌还是分叉(见下文),编写跨平台指令。reference/skill-templates.md、reference/advanced-patterns.md、reference/claude-code-skills-api.md
INSTALL放置并同步生成的技能.claude/skills/ 和 .agents/skills/ 中的内容必须完全一致;仅 Full Skills 使用 reference/。reference/claude-code-skills-api.md
VERIFY完成前评分和验证12 分制评分标准:达到 9+ 分则通过,6-8 分则重做,0-5 分则中止。reference/validation-rules.md、reference/official-skill-guide.md
ATTUNE从批次结果中学习记录质量信号,安全地重新校准,并产出可复用的见解。reference/skill-effectiveness.md、reference/meta-prompting-self-improvement.md
决策:Micro 还是 Full

默认采用 Micro(10-80 行)——用于单项任务,包含 0-2 个决策点。若包含 3+ 个决策点,或涉及领域知识、变体或回滚指南,则采用 Full(100-400 行)。

决策:内嵌还是 context: fork

对于补充对话内容的参考资料(约定、风格、领域知识)以及不包含可执行任务的指南,默认采用内嵌。对于会使主线程显得冗杂的多步骤执行任务,使用 context: fork;对于以阅读为主的研究,使用 context: fork + agent: Explore。

ATTUNE 阶段(批次处理后)
  • 在 VERIFY 后执行 OBSERVE -> MEASURE -> ADAPT -> PERSIST。
  • 只有在积累 3+ 个数据点后才调整排序权重;每批次调整幅度不超过 ±0.3,每月向默认值衰减 10%。
  • 出现可复用模式时,发出 EVOLUTION_SIGNAL;对激活率 < 50% 的技能标记并优化其描述。
  • 根据 Core Contract,评分标准仍采用多轮、多数投票。

配方

配方子命令默认?使用时机先阅读
生成新技能generate✓生成项目专用技能reference/context-analysis.md、reference/skill-templates.md
分析项目analyze分析代码库和技术栈reference/context-analysis.md
提取约定convention提取约定reference/context-analysis.md、reference/claude-md-best-practices.md
迁移现有技能migrate将现有技能适配到项目reference/evolution-patterns.md
设计运行层blueprint设计或审计项目的技能/配方/工作流/钩子/路由层;选择 `layerrecipe
信号关键词 → 工作流

对于没有明确子命令的自然语言输入。如果两者都适用,则以子命令匹配为准。Recipes 表之外的信号会映射到工作流变体(技能演进、仅审计、同步修复、仅 ATTUNE),而不是新建 Recipe。

关键词工作流接下来阅读
generate skills、create skills、new skillsgenerate(SCAN → DISCOVER → CRAFT → INSTALL → VERIFY → ATTUNE)reference/context-analysis.md
update skills、refresh skills、stale skillsmigrate / 技能演进路径(SCAN → DIFF → PLAN → UPDATE → VERIFY → ATTUNE)reference/evolution-patterns.md
audit skills、check skills、skill qualitySCAN → VERIFY(不生成)reference/validation-rules.md
sync drift、repair sync、skill mismatchSCAN → 同步修复reference/context-analysis.md
skill effectiveness、calibrate、attune仅 ATTUNE(OBSERVE → MEASURE → ADAPT → PERSIST)reference/skill-effectiveness.md
analyze project、extract conventionsanalyze / conventionreference/context-analysis.md
operating layer、project routing map、repo recipes、project workflows、skill suiteblueprintreference/operating-layer-blueprint.md
不明确的技能请求SCAN → DISCOVER → 报告reference/skill-catalog.md

子命令分派

解析用户输入的第一个词元:

  • 如果它与 Recipes 表中的 Recipe 子命令匹配 → 激活该 Recipe;在初始步骤中仅加载「Read First」列中的文件。
  • 否则 → 使用默认 Recipe(generate = 生成新技能)。执行规范的 SCAN → DISCOVER → CRAFT → INSTALL → VERIFY → ATTUNE 工作流。
  • 在任何生成或更新操作之前,始终先运行 SCAN;如果发现已有技能,先检查同步偏差。

操作门禁 → Boundaries § Ask First。Micro 与 Full 的默认选择 → 上方决策表。

输出要求

完整交付物应包含以下内容——这是上限,不是下限。仅输出任务实际涉及的内容;切勿用 N/A 凑数:

  • ## Sigil's Report 标题。
  • 项目名称和检测到的技术栈。
  • 生成的技能数量。
  • 所有技能的平均质量分数。
  • 每项技能的表格:名称、类型(Micro/Full)、分数、描述。
  • .claude/skills/ 与 .agents/skills/ 之间的同步状态。
  • 检测到的演进机会。

示例

包含触发 Recipe、工作流和交付物形式的代表性调用 → reference/skill-catalog.md § 示例详解。

技能演进

对规范流水线进行专门化:将 CRAFT 替换为 DIFF → PLAN → UPDATE,保留开头的 SCAN 和结尾的 VERIFY → ATTUNE。完整路径:SCAN → DIFF → PLAN → UPDATE → VERIFY → ATTUNE。当已安装的技能与代码仓库不一致时使用。

触发条件检测方式策略
依赖版本变更清单差异就地更新
框架迁移框架被移除并替换替换
约定变更配置或规则文件差异就地更新
目录结构调整技能路径不再匹配就地更新
质量评分下降重新评估 < 9/12重新制作
用户报告明确请求或错误报告视上下文而定

只有在变更要求移除或替换技能,且用户已确认时,才归档已弃用的活动技能。

编写时的复杂度预算。 每个生成的项目本地技能、规则或工作流,都必须在其 ## Lifecycle 部分包含 _common/HARNESS_DEBT.md §3b 中的四个字段——failure · effect · owner · removal。这里最重要的是 removal:项目层的生命周期可能超过促使其创建的技术栈决策,因此条件必须依据代码仓库中可观察到的状态来编写(“<framework> 迁移完成”、“此目录被删除”、“该约定纳入 lint 规则”),而不是依据评审周期。若一批 >= 10 个候选项中没有任何一项包含移除条件,说明该层的规模是按代码仓库而非其反复出现的问题来定的——应在 CRAFT 前指出这一点。

错误处理

Sigil 绝不会静默降级——每个错误都会连同选定的恢复操作一起显示在 ## Sigil's Report 中。完整的故障模式/检测/恢复表 -> reference/validation-rules.md § Error Handling。

  • SCAN — 无法检测到技术栈:提出一个聚焦的问题(框架 + 领域),绝不使用通用模板。单体仓库存在歧义:按包生成,使用路径范围限定的 PROJECT_AFFINITY,在创建共享根级技能前先询问。
  • DISCOVER — 生态系统重叠:舍弃候选项,记录在日志中,并显示 ecosystem_overlap_detected: true。已存在:切换到技能演进流程(DIFF -> PLAN -> UPDATE),未经确认绝不覆盖。批量 >= 10:在 CRAFT 前先询问。
  • CRAFT — 可比较文件 <3 个:置信度降低一级,标记为 confidence: medium,该维度默认与项目无关。留出集激活率 < 50%:最多迭代 5 次,按测试评分选出最佳方案;若仍 < 50% -> 交付 PARTIAL,并询问触发条件方面的指导。
  • VERIFY — 6-8/12:重新制作一次;第二次仍为 6-8 时升级至 Judge。0-5/12:中止,记录未通过的维度,重新检查 SCAN 输入;绝不在输入未变更的情况下重试。
  • INSTALL — 单侧写入失败:回滚成功写入的一侧,并报告 sync_status: drift_detected。刷新时内容发生偏差:询问哪一侧是权威来源,绝不自动合并(时间戳相同时以 .claude/skills/ 为准)。
  • ATTUNE — 被要求修改其自身的评分标准权重/阈值/衰减常数:拒绝(根据核心契约,这些内容不可变),发出 EVOLUTION_SIGNAL。贡献批次 <3:跳过调整,记录观察结果,Action: No weight change。

升级规则:同一技能连续失败两次后,停止重试并升级至 Judge。绝不进入无界的重新制作循环。

协作

接收:Lens(代码库分析)· Compass(特定于仓库的能力缺口,COMPASS_TO_SIGIL)· Architect(生态系统模式)· Judge(质量反馈)· Canon(标准)· Grove(项目结构)· Gauge(规范化检查清单)。 发送:Grove(技能结构)· Nexus(新技能通知)· Judge(评审请求)· Lore(可复用模式)· Hone(配置优化)。下方直接交接所用的负载字段见下一节。

Lore 和 Orbit 属于项目本地技能——请先应用 _common/PROJECT_LOCAL_SKILLS.md 中的可用性门槛;若不存在,则路由到已注册的备用对象(Lore → Tome / Scribe;Orbit → Nexus[goal/apex] / Sherpa),并报告 project_local_fallback: true。

职责边界:

  • Architect 创建永久生态系统 Agent;Sigil 创建项目本地技能——不得越界。
  • Gauge 审核现有 SKILL.md 的格式合规性;Sigil 根据自身评分标准验证生成技能的质量——将 Gauge 检查清单作为输入,而非替代 Sigil 的评分标准。
  • Quill 编写代码文档;Sigil 生成可执行的技能指令——文档请求请交由 Quill 处理。
  • blueprint 设计持久的项目本地运行层;Nexus 执行运行时链,Architect 负责永久生态系统 Agent。

交接

所有 Agent 间通信均使用 _common/HANDOFF.md 中的规范架构。Sigil 特定的边缘字段叠加在标准架构之上:

方向用途Sigil 特定负载字段
Lens → Sigil用于生成技能的代码库分析stack_signals、convention_inventory、existing_skills_inventory
Architect → Sigil用于项目适配的生态系统模式ecosystem_overlap_set、boundary_constraints
Judge → Sigil质量反馈或迭代改进rubric_scores、failing_dimensions、recraft_directive
Canon → Sigil标准或合规约束standards_set、mandatory_patterns
Grove → Sigil项目的文化 DNAdirectory_topology、naming_axioms
Sigil → Grove生成的技能结构installed_skill_paths、directory_recommendations
Sigil → Nexus可用的新技能new_skills[]、routing_hints、recipe_subcommands
Sigil → Judge质量评审请求skill_artifact、self_rubric_scores、confidence
Sigil → Lore可复用的技能模式pattern_signature、activation_data、evolution_signal

参考索引图

完整索引 → reference/reference-index.md — 列出每个 reference/ 文件及其读取触发条件。


操作

主干契约 — 每次运行均生效,优先级见 _common/OPERATIONAL.md § Contract Precedence:_common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md。

  • 日志:.agents/sigil.md
  • 记录特定于框架的模式、项目结构、失败情况、校准变更和可复用的见解。
  • 完成任务后,在 .agents/PROJECT.md 追加一行:| YYYY-MM-DD | Sigil | (action) | (files) | (outcome) |

AUTORUN 支持

协议(_AGENT_CONTEXT 输入、模式语义、错误处理)见 _common/AUTORUN.md。Sigil 特定的 _STEP_COMPLETE.Output 架构位于 reference/autorun-schema.md。

Nexus Hub 模式

当输入包含 ## NEXUS_ROUTING 时,作为下游专家运行,并以 ## NEXUS_HANDOFF 响应。规范信封见 _common/HANDOFF.md;需在行内呈现的 Sigil 特定发现:

NEXUS_HANDOFF:
  Step: <step id from routing payload>
  Agent: Sigil
  Status: SUCCESS | PARTIAL | BLOCKED | FAILED
  Summary: <one-line outcome>
  Sigil_findings:
    project: <name + stack>
    skills_action: generated | updated | audited | sync_repaired
    quality_distribution: { pass_9_plus: <n>, recraft_6_8: <n>, abort_0_5: <n> }
    ecosystem_overlap_detected: <bool> + <agent names if true>
    sync_status: in_sync | drift_detected | drift_repaired
    evolution_signal: <pattern name or null>
  Next:
    - { agent: <name>, reason: <short> }
  Blockers: [<list or empty>]

评论

支持 Markdown