mcpField
L
ln-160-docs-skill-extractor

ln-160-docs-skill-extractor

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

关于 ln-160-docs-skill-extractor

扫描项目文档中的操作流程,并通过专门的创建与审查 Worker,将获批内容转为 `.claude/commands/*.md` 文件。该技能区分可执行流程与说明性文档。

主要功能

  1. 01优先建立文档来源清单
  2. 02分类操作流程与说明内容
  3. 03提取前要求用户批准
  4. 04委派命令创建与审查
  5. 05避免重复并保留原文档

适用场景

  1. 01将部署或测试流程提取为命令
  2. 02检查现有命令以避免重复
  3. 03报告前审查生成的命令文件

安装

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-160-docs-skill-extractor

安装后在 Claude Code 中输入/ln-160-docs-skill-extractor确认已加载。

包含的文件

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

references/
docs_quality_contract.md
markdown_read_protocol.md
meta_analysis_protocol.md
procedural_extraction_rules.md

详细介绍

**路径:**文件路径(references/、../ln-*)均相对于此技能目录。

ln-160-docs-skill-extractor

**类型:**L2 协调器 **类别:**1XX 文档流水线 **工作器:**ln-161-skill-creator、ln-162-skill-reviewer

扫描项目文档,识别程序性内容,并将其提取为 .claude/commands/*.md 下可执行的斜杠命令文件。声明性文档保留为 Markdown;此技能只将程序性章节转换为命令形式。


概述

方面详情
输入项目文档、测试文档和可选的文档注册表
输出目标项目中的 .claude/commands/*.md 文件
工作器ln-161 创建命令,ln-162 审查命令
来源策略优先从文档中提取;AGENTS.md 和 CLAUDE.md 仅用于路由

工作流

Phase 1: Discovery (route docs, build inventory)
    |
Phase 2: Classification (procedural vs declarative scoring)
    |
Phase 3: Extraction Plan (user approval)
    |
Phase 4: Delegate -> ln-161 (create commands)
    |
Phase 5: Delegate -> ln-162 (review commands)
    |
Phase 6: Report (aggregate results)

阶段 1:发现

**必须读取:**加载 references/procedural_extraction_rules.md、references/markdown_read_protocol.md 和 references/docs_quality_contract.md

在提取任何内容之前,先建立以文档为优先的清单。

路由来源

仅使用以下文件来引导发现和确定阅读优先级:

  • AGENTS.md
  • CLAUDE.md
  • docs/project/.context/doc_registry.json(如果存在)

不要从路由来源中提取命令。

提取来源

仅扫描以下来源中的程序性内容:

  • docs/**/*.md
  • tests/README.md
  • tests/manual/**/*
  • README.md
  • CONTRIBUTING.md

还要扫描:

  • .claude/commands/*.md,以避免重复创建命令
发现规则
  1. 如果 docs/project/.context/doc_registry.json 存在,则按以下优先级处理:
    • 先处理规范文档
    • DOC_KIND=how-to 优先于 reference
    • reference 优先于 index 和 explanation
  2. 按照共享的先章节后全文协议阅读 Markdown:
    • 对较大或不熟悉的文件,先查看大纲
    • 先阅读标题标记和顶部章节
    • 仅展开可能包含程序的章节
  3. 忽略作为提取候选项的标准文档框架章节:
    • Quick Navigation
    • Agent Entry
    • Maintenance
    • SCOPE、DOC_KIND、DOC_ROLE、READ_WHEN、SKIP_WHEN、PRIMARY_SOURCES 等标题标记
构建 contextStore
contextStore:
  project_root: {CWD}
  routing_sources:
    agents_md: true
    claude_md: true
    doc_registry: true
  existing_commands: [list of .claude/commands/*.md filenames]
  doc_inventory:
    - file: docs/project/runbook.md
      doc_kind: how-to
      doc_role: canonical
      sections:
        - header: "Deployment"
          line_range: [45, 92]
          signals: { code_blocks: 3, numbered_steps: 5, imperative_verbs: 8 }

阶段 2:分类

使用共享的程序性内容提取规则为每个候选章节评分。

分类条件操作
PROCEDURALproc >= 4 且 proc > decl * 2提取为命令
DECLARATIVEdecl >= 4 且 decl > proc * 2保留为文档
MIXED两者均 >= 3仅提取程序性子章节
THIN两者均 < 3跳过

筛选:

  • 删除已由现有 .claude/commands/*.md 覆盖的章节
  • 删除标准文档框架章节
  • 多个章节在语义上重叠时,优先选择 DOC_KIND=how-to

阶段 3:提取计划(用户审批关卡)

创建文件之前,先向用户展示分类后的结果集。

Found {N} procedural sections in {M} files:

| # | Source | DOC_KIND | Section | Score | Proposed Command |
|---|--------|----------|---------|-------|------------------|
| 1 | runbook.md | how-to | Deployment | P:8/D:1 | deploy.md |
| 2 | tests/README.md | index | Running Tests | P:7/D:2 | run-tests.md |

Existing .claude/commands/ (will skip): refresh_context.md, build-and-test.md

Include? (e.g., "1,2" or "all" or "all skip 2")

如果用户未批准任何内容,则停止并显示 No skills to create.。


阶段 4:委派给 ln-161(技能创建)

仅将已批准的章节传递给 ln-161-skill-creator。

Agent(
  description: "Create commands from procedural docs",
  prompt: "Execute skill creator.\nStep 1: Invoke:\n  Skill(skill: \"ln-161-skill-creator\")\nCONTEXT:\n{approved_sections}",
  subagent_type: "general-purpose"
)

标准化负载:

{
  "approved_sections": [
    {
      "source_file": "docs/project/runbook.md",
      "section_header": "Deployment",
      "line_range": [45, 92],
      "command_name": "deploy.md",
      "doc_kind": "how-to",
      "doc_role": "canonical"
    }
  ]
}

收集:

  • 创建的文件路径
  • 来源到命令的映射
  • 每条命令的摘要

阶段 5:委派给 ln-162(技能审查)

以 COMMAND 模式将已创建的命令路径传递给 ln-162-skill-reviewer。

Agent(
  description: "Review created commands",
  prompt: "Execute skill reviewer in COMMAND mode.\nStep 1: Invoke:\n  Skill(skill: \"ln-162-skill-reviewer\", args: \"commands\")\nFILES: {list of created paths}",
  subagent_type: "general-purpose"
)

收集:

  • 每个文件的判定结果
  • 汇总的通过/修复/警告数量

阶段 6:报告

汇总创建和审查结果。

## Docs Skill Extractor -- Complete

| Metric | Count |
|--------|-------|
| Documents scanned | {N} |
| Sections analyzed | {N} |
| Procedural found | {N} |
| Commands created | {N} |
| Commands skipped (existing) | {N} |
| Review PASS | {N} |
| Review FIXED | {N} |
| Review WARN | {N} |

Created commands:
- .claude/commands/deploy.md (from runbook.md#Deployment)
- .claude/commands/run-tests.md (from tests/README.md#Running Tests)

关键规则

  • 优先从文档中提取: 仅从文档来源提取内容。AGENTS.md 和 CLAUDE.md 用于指引发现流程,但不能作为命令来源。
  • 优先阅读章节: 完整读取文件前,先使用共享的 Markdown 阅读协议。
  • 提取前先识别: 仅提取分类为操作性内容的章节。
  • 避免重复: 跳过现有 .claude/commands/*.md 中已涵盖的章节。
  • 必须获得用户批准: 未经第 3 阶段确认,绝不创建命令。
  • 委托创建: 所有命令文件的写入都必须通过 ln-161。
  • 委托审查: 所有命令验证都必须通过 ln-162。
  • 保留文档: 保持源文档完整。

TodoWrite 格式(必填):

- Build docs inventory (in_progress)
- Invoke ln-161-skill-creator (pending)
- Invoke ln-162-skill-reviewer (pending)
- Aggregate report (pending)

Worker 调用(必须)

Host Skill 调用: 必须使用 Skill(skill: "...", args: "...") 进行委托。

  • Claude:严格按照所示方式调用 Skill 工具。
  • Codex:如果没有 Skill 工具,则在可用技能中找到指定技能,读取其 SKILL.md,将 args 视为 $ARGUMENTS,执行该技能的工作流,然后携带结果或产物返回此处。
  • 不要内联 Worker 逻辑,也不要在未执行目标技能的情况下将 Worker 标记为已完成。
阶段Worker上下文
4ln-161-skill-creator已批准的操作性章节及其源元数据
5ln-162-skill-reviewerCOMMAND 模式下创建的命令文件路径

所有 Worker: 必须通过 Skill 工具调用。Worker 只使用所需的上下文。

完成定义

  • 已检查路由来源(AGENTS.md、CLAUDE.md,以及存在时的文档注册表)
  • 已基于优先文档来源建立提取清单
  • 已对每个候选章节进行分类
  • 用户已批准提取计划
  • ln-161 已创建所有获批的命令
  • ln-162 已审查所有已创建的命令
  • 最终报告已汇总扫描、创建和审查指标

元分析

可选参考:仅当用户要求运行后元分析或按协议格式进行运行反思时,才加载 references/meta_analysis_protocol.md。

技能类型:planning-coordinator。收到此类要求时,在第 6 阶段完成后运行。按照 planning-coordinator 格式在聊天中输出。


版本: 1.0.0 最后更新: 2026-03-26

评论

支持 Markdown