Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add suharvest/sensecraft-solutions --skill extend-vision-solutiongit clone --depth 1 https://github.com/suharvest/sensecraft-solutionsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/suharvest/sensecraft-solutions/extend-vision-solution)<a href="https://agentmods.dev/skills/suharvest/sensecraft-solutions/extend-vision-solution"><img src="https://agentmods.dev/badge/skills/suharvest/sensecraft-solutions/extend-vision-solution/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/suharvest/sensecraft-solutions/extend-vision-solution"><img src="https://agentmods.dev/badge/skills/suharvest/sensecraft-solutions/extend-vision-solution.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00119 | $0.05241 |
| Opus 5 | $0.00060 | $0.02620 |
| Sonnet 5 | $0.00024 | $0.01048 |
| Haiku 4.5 | $0.00012 | $0.00524 |
Grade C, and why
extend-vision-solution scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
另一个常见浪费:`COPY /wheels` 后 `RUN pip install && rm -rf /wheels`——**删除只是新层标记 How it starts
The opening of the file, as written. The whole thing — 311 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Extend Vision Solution
把一个已在某台设备上跑通的 AI 视觉方案,扩展到其他边缘平台,并给出能横着比的数据。
本 skill 只讲扩展与实测。方案契约(device YAML 字段、guide.md 语法、preset 规则)以
spec/CONTRACT.md 为准,创作流程见 /author-solution。
为什么需要它
跨设备扩展最容易产出的不是"多支持了几个平台",而是一张看起来能比、实际不能比的表。 本 skill 的核心是测量纪律:先把口径钉死,再谈数字。
第二个高频问题是厂商运行时——每个 NPU 平台都有一套与内核耦合的用户态库,镜像里baked 一份就会和板子上的驱动对不上。第三个是没有实机验证就声明支持。
还有一个更早、更贵的问题:按平台各写一份业务逻辑。等发现四份跟踪器行为不一致时, 改哪一份都不对。所以 Phase 0.5 排在测量之前——先把逻辑收敛成一份,再谈移植和比较。
Phase 0:先判断值不值得扩
回答三个问题再动手:
- 模型能过去吗? 目标平台需要什么格式(
.rknn/.hef/ TensorRT engine /.cvimodel), 转换工具链在哪、要不要标定集、是否需要 x86 授权 SDK。 - 后处理能过去吗? raw-head 解码、NMS、跟踪、时序模型这些是不是纯 CPU/numpy 的? 如果绑死在某个平台的算子上,扩展成本会翻倍。
- 时序/状态类模型要不要重训? 如果方案含时序判定(跌倒、行为识别),每个平台必须用 自己的姿态输出重新抽取轨迹并重新冻结权重,不能跨平台借用——不同前端的关键点分布不同。
任何一项答不上来,先做可行性验证,不要先写 preset。
Phase 0.5:先分层,再移植
扩到第二个平台之前先问:跟踪、状态机、指标聚合、消息发布,是不是各写了一份?
如果是,先把它们抽出来,再谈移植。否则每加一个平台就复制一份业务逻辑,四份实现会各自漂移, 同一个人在不同板子上被判成不同状态——这类 bug 极难查,因为每一份单看都是对的。
参考反面教材:某方案家族只共享了契约,跟踪器和发布层重复了四遍(958 行 / 257 行 / 两份 C++)。做完分层之后,同一功能在 Jetson 端的平台专属代码从 1281 行降到 77 行。
切口按"什么真的随硬件变"来划
| 层 | 是否共享 | 理由 |
|---|---|---|
| 契约(schema + 校验器) | 全共享 | 语言无关 |
| 业务逻辑(跟踪 / 状态机 / 窗口指标 / 发布) | 按语言家族共享 | 只吃 box 和时间戳,不碰厂商 SDK |
| backend(推理热路径 + 帧源) | 绝不共享 | 张量布局、前后处理、ABI 锁定的宿主库都不同 |
| board 目录 | 绝不共享 | 只有 config 和模型,不放代码 |
backend 只实现两件事:一个帧源,和 detect(frame) -> [DetectionBox]。多一件都说明切错了。
判据:共享层里一旦出现 #ifdef PLATFORM 或 if backend == "rknn",就是切口错了,
要把那段往下推到 backend。
一个语言不够时
C++ 和 Python 两份实现无法再合并(reCamera/Hailo 是 C++,Jetson/RK 是 Python)。 用一组行为 fixture 卡住:录一段检测框序列 + 期望的 track id / state 序列,两边跑同一组。 期望值要从权威实现的规则推导,不能从某一个 port 录制——那只是把 port 固化了, 发现不了它本身的偏差。
抽象什么时候算数
一个抽象只被一个平台用过不算抽象。 第二个平台接进来才是验证切口对不对的时刻, 所以第一个平台不要过度设计,第二个平台不要图快绕过共享层。
Phase 0.6:数据契约(多设备场景必读)
单设备时随便发什么都能work,接入第二台就开始出问题。四条硬规则:
① 批量发,不要逐检测发。 按"每个检测框一条消息"发,broker 的消息速率 = 人数 × 摄像头数 × 帧率。改成每周期一条批量消息(1 Hz 起步),速率只跟设备数走。
② 批次内要有一个有界的区分键。 同批次所有对象共享一个时间戳, 时序库按 (topic, timestamp) 存的话同帧多人会被覆盖成一行。 用批次内下标(slot),不要用 track_id——它随部署时长单调增长,标签基数会无限膨胀。
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 311 lines · 119 tokens per session scan C 0868b1e18155
extend-vision-solution is a skill published in the GitHub repository suharvest/sensecraft-solutions (2 stars, last pushed yesterday), licensed Apache-2.0. It adds 119 tokens to every session and 5,241 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
spark-environment-setup
Set up a working ML training/inference environment on NVIDIA DGX Spark (GB10, aarch64, CUDA 13). Use when installing PyTorch/Unsloth/TRL/vLLM on DGX Spark, hitting libcudart or wheel-ABI errors on aarch64, or choosing between NGC containers and bare pip installs.
spark-memory-thermal-ops
Manage unified memory and thermals during long-running ML jobs on NVIDIA DGX Spark. Use when planning memory headroom for a training run on GB10, when a job OOMs on unified memory, or when monitoring temperature and power during multi-hour training.
spark-training-gotchas
Preflight and diagnose the ten known failure modes for ML training on NVIDIA DGX Spark. Use when a training run on DGX Spark fails to start, OOMs below the 128GB limit, slows down mid-run, or before any multi-hour training job on GB10.
llama-cpp
Runs LLM inference on CPU, Apple Silicon, and consumer GPUs without NVIDIA hardware. Use for edge deployment, M1/M2/M3 Macs, AMD/Intel GPUs, or when CUDA is unavailable. Supports GGUF quantization (1.5-8 bit) for reduced memory and 4-10× speedup vs PyTorch on CPU.
minicpm5-deploy-vllm-ascend
Deploy MiniCPM5-2B with vLLM on Huawei Ascend NPU using vLLM-Ascend. Use when the user mentions vLLM-Ascend, Ascend NPU, Huawei Ascend, CANN, torchnpu, davinci devices, or wants an OpenAI-compatible MiniCPM5 server on Ascend hardware.
amc-run-video-calibration
Calibrates pre-recorded cam.mp4 datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live RTSP streams to amc-run-rtsp-calibration.