SuperAPI AI 工具集

sniffable-python

编程与开发

查看项目

更新于 10-16 05:28

技能介绍

用途

sniffable-python 用于约定 Python 脚本的组织方式,使大语言模型能够在阅读约前 50 行后理解并调用该工具。文档的表述是:"Structure code for the first 50 lines. That's all the LLM needs." 其目标不是发明新语法,而是对既有 Python 语法重新排布,以获得更优的 LLM 理解效果。

主要能力与结构模式

方案给出的规范结构分为几个区域:

  • Shebang + Docstring(约 1-15 行):包含用途、用法示例、关键行为;该 docstring 同时成为 --help 的输出内容,并对 LLM 直接可见。
  • Imports(约 16-22 行):依赖一目了然。
  • Constants(约 23-30 行):配置、有效取值、上限等。
  • CLI Structure(约 31-50 行):命令树,含类型与说明。
  • Implementation(51 行起):仅在需要修改行为时才阅读。

示例中 main() 只包含 argparse 的命令树定义(move / examine / status 子命令、参数与选项),随后调用 _dispatch(args),实现部分放在 main 之下。

使用方式

sniffable-python 本身是一套约定,不含安装命令或运行命令;资料未提供安装方式。实际使用时按上述规范编写脚本,例如:

#!/usr/bin/env python3
"""skill-name: Brief description of what the script does.

Usage:
    python script.py command [options]

Examples:
    python script.py move north --quiet
    python script.py examine sword --verbose
"""

文档建议 CLI 装饰器即文档,例如 @click.option('--verbose', '-v', is_flag=True, help='Show details') 一行同时定义 flag 名、短形式、类型、帮助文本与参数名,做到单一来源、无重复无漂移。

为何采用 argparse

文档对比 Argparse、Click、Typer:Argparse 在结构与实现分离、自上而下树序、内置无依赖、训练数据丰富、LLM 熟悉度最高等方面被列为更优。Click/Typer 的装饰器附着在函数上,导致 CLI 结构与实现交织,需要读实现才能理解。

注释的作用

文档主张把 YAML-JAZZ 原则用于 Python 注释,注释本身即数据,例如:

TIMEOUT = 30        # generous — API is flaky on Mondays
MAX_RETRIES = 3     # based on observed failure patterns in prod
BATCH_SIZE = 100    # memory-safe for 8GB instances
# TODO: Add circuit breaker after next major outage
# NOTE: This duplicates logic in api_client.py — consider extracting

规则是每个注释 token 都应携带含义,纯装饰性分隔或 ASCII 花边应删除。

目录无关的调用

文档要求脚本无论从哪个目录被调用都能找到自身上下文,应使用 Path(__file__) 而非 os.getcwd():

SCRIPT_DIR = Path(__file__).resolve().parent
SKILL_DIR = SCRIPT_DIR.parent
CARD_FILE = SKILL_DIR / "CARD.yml"

适用场景

  • 作为 skill 生成的 sister script 的结构规范。
  • 需要被 LLM 快速理解并调用的 CLI 工具。
  • 位于 play-learn-lift 流程的 LIFT 阶段,把验证过的流程固化为可复用自动化。
  • adventure 类技能中的校验器反馈回路:LLM 生成内容 → sniffable linter 校验 → 输出 YAML 结果 → LLM 读取并修正。

限制与说明

文档明确反对压缩语法(如 Perl 式密集符号),认为符号歧义会增加模型消歧成本;主张可理解性优先于 token 数量。关于收费、价格、平台、具体效果等事实,资料来源未提供。