mcpField
A
add-concept

add-concept

github.com/plainlang开发8042 次安装2 天前更新
代码仓库

关于 add-concept

用于向 `.plain` 文件添加概念定义的技能,涵盖命名、唯一性、引用顺序和循环检查,并提供插入格式与检查清单。

主要功能

  1. 01验证概念名称语法
  2. 02检查导入范围内的唯一性
  3. 03核对引用概念及其顺序
  4. 04防止循环定义
  5. 05将定义插入正确章节

适用场景

  1. 01向现有 `.plain` 文件添加概念
  2. 02插入前检查定义中的引用
  3. 03避免概念定义重复或循环

安装

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

$npx skills add https://github.com/plainlang/plain-forge --skill add-concept

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

详细介绍

添加概念

先加载规则。 在读取、编辑或编写任何 .plain 文件之前,调用 load-plain-reference 技能,并阅读其指向的规则文件。仅当本次对话中已经运行过 load-plain-reference 时,才可跳过此步骤。

工作流程

  1. 确定目标 .plain 文件。 如果目标不明确,请询问用户。
  2. 读取文件,了解现有定义、导入项和概念。
  3. 根据下方的语法规则验证概念名称。
  4. 检查唯一性——概念名称不得已存在于文件或其导入项中。
  5. 检查引用的概念——定义中使用的任何 :ConceptName: 都必须已在其上方定义(在此文件中,或通过 import/requires 导入)。概念引用不得形成循环(例如,A 引用 B,B 又引用 A)。
  6. 检查循环引用——如果新概念引用了 :B:,那么 :B: 不得直接或间接引用新概念。应避免以下循环定义示例:
    - :Order: is placed by :Customer: and contains :OrderItem: entries.
    - :Customer: is a user who has placed at least one :Order:.
    
    删除反向引用即可修复:
    - :Customer: is a user of the system.
    - :Order: is placed by :Customer: and contains :OrderItem: entries.
    
  7. 将概念插入 ***definitions*** 部分,置于其引用的所有概念之后。
  8. 再次读取文件,确认位置和语法正确。

概念语法规则

  • 用冒号包裹::ConceptName:
  • 使用 CamelCase,且以大写字母开头
  • 有效字符:字母、数字、+、-、.、_
  • 在规范及其所有导入项中必须全局唯一
  • 从 requires 模块导出的概念不会传递导出——若要引用祖先模块导出的概念,请在 requires 中列出该祖先模块;如果一个概念由多个分支共享,应在共同的导入模块中定义

定义格式

概念定义是 ***definitions*** 中以概念名称开头的项目符号:

***definitions***

- :ConceptName: is a description of what it represents.

属性和约束作为嵌套子项目符号:

***definitions***

- :Task: describes an activity that needs to be done by :User:. :Task: has:
  - Name - a short description (required)
  - Notes - additional details (optional)
  - Due Date - completion deadline (optional)

验证清单

  • 名称使用 :CamelCase: 格式
  • 名称全局唯一(文件或导入项中的其他位置均未定义)
  • 定义以概念名称开头
  • 所有引用的概念(:OtherConcept:)都已在上方定义
  • 概念之间没有循环引用
  • 描述清晰、简洁且与语言无关
  • 按 concise-specs.md 的要求精简:使用一个普通句子,不重复概念名称,不提供理由
  • 放置在 ***definitions*** 部分中

评论

支持 Markdown