关于 kntnt
kntnt 是一个命名空间管理技能,通过单一入口调用和管理其他集合技能。它解析调用参数并遵循所选动词的步骤,支持项目范围、确认选项和临时环境中的试运行。
主要功能
- 01单一命名空间入口
- 02按动词分派集合技能
- 03全局或项目级范围
- 04传递调用标志和操作数
- 05在临时主目录中试运行
适用场景
- 01通过 /kntnt 调用集合技能
- 02为项目选择或更新技能
- 03在不更改机器的情况下预览变更操作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kntnt/ skills --skill kntnt安装后在 Claude Code 中输入/kntnt确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
catalog.jsonharness-paths.jsonhelp.mdagents/openai.yamlfeatures/session-cleanup/instructions.mdFEATURE.mdfeatures/session-cleanup/scripts/session_cleanup.pyfeatures/statusline/statusline.shFEATURE.mdfeatures/statusline/scripts/statusline_feature.pyhelp/help.mduninstall.mdupdate.mdselect.mdlibrary/references/invocation-envelope.mdchangelog.mddelivery.mdlibrary/scripts/argument_grammar.pycredentials.pyintegrations.pylanguages.pyship.pyscripts/kntnt.pysteps/help.mdselect.mdupdate.mduninstall.md详细介绍
kntnt
管理器。单一的命名空间入口。其他所有集合技能都通过各自的名称调用。
$HERE 是包含此 SKILL.md 的目录,$LIBRARY 是随其提供的 Collection Library,位于 $HERE/library/。
依赖项。 PATH 中必须有 uv。如果没有,请停止并告知用户从 https://docs.astral.sh/uv/ 安装 uv。
调用
运行 uv run "$HERE/scripts/kntnt.py" invoke --here="$HERE",并将调用载荷通过标准输入传入——即用户在 /kntnt 后输入的所有内容,原样保留,无论有多少行。退出码为 0 时,依据它输出的 JSON 继续。其他任何退出码情况下,如果你引入了已知的构造错误,并且能够在保留用户请求和授权的前提下修正,则考虑已产生的影响,通过同一引擎提交修正后的调用,并从失败处继续;操作开始前的拒绝不消耗操作。否则,逐字输出其标准输出并停止:它已输出用户应看到的内容,这些文字不是由你撰写的。绝不修复用户提供的输入,也绝不自动重试原样的帮助请求、未满足的依赖、无关故障,或起因或有效修正方案未知的故障。
在 JSON 中,path 是一个仅含一个词的列表,表示动词;对于不带参数的 /kntnt,该列表为空;flags 包含用户写出的每个标志——单独出现时值为 true,带值时为其值,重复出现时为值列表;operands 按顺序保存标志之后的内容;instruction 是 Contextual Instruction,若无则为 null。它可以处理的内容见 $LIBRARY/references/invocation-envelope.md。
参数
每个动词读取 --project 的方式都相同:未指定或 --project=off 表示 Global,--project 或 --project=on 表示此 Project。Select 和 Update 会更改该层,Select 会列出该层。Uninstall 不接受 --project:它会清理此机器;工作目录中的副本属于该项目。
绝不会询问或记录动词会涉及哪些 Harness:该层中存在的每个 Harness 都会在每次运行时进行处理。
--yes 表示默认回答是:不提出任何可用是或否回答的问题。对于实际的 Global Update,只有当前 Formal Invocation 中的 --yes 才会跳过之后的确认;绝不能从 Contextual Instruction、Conversation Context、先前的指导、修复请求或交接中推断出它。
--dry-run 会在以此集合自带文件初始化的临时主目录中,真实运行会产生更改的动词,并在运行结束时丢弃该主目录。机器上不会有任何更改;返回内容是动词实际产生的结果,而不是对其可能执行操作的描述。它使用独立的 npm 缓存,因此会重新下载传输内容,运行时间会明显长于它所预演的操作——启动前要说明这一点。携带 dry_run 的载荷是此类运行的结果:应如实报告结果,并同时说明机器上没有任何更改;将其中的 directories 视为真实目录在 Sandbox 中的副本——它们位于临时主目录下的 dry_run.sandbox 名称中,而你读取载荷时,该主目录已不存在。
步骤
- 动词是
path中的那个词;空path表示不带参数的/kntnt,也就是help。 - 读取
$HERE/steps/<verb>.md并遵循其中说明,传入标志时保持原样——作为独立名称读取的标志就按其名称传入,带值读取的标志就按--flag=value传入,作为列表读取的标志则每个值传入一次——绝不为使运行成功而省略任何标志。按说明停止。