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 D-Robotics/moss --skill rdk-isp-tuninggit clone --depth 1 https://github.com/D-Robotics/mossWrote 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/d-robotics/moss/rdk-isp-tuning)<a href="https://agentmods.dev/skills/d-robotics/moss/rdk-isp-tuning"><img src="https://agentmods.dev/badge/skills/d-robotics/moss/rdk-isp-tuning.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Tool Misuse · line 61 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
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.00088 | $0.02526 |
| Opus 5 | $0.00044 | $0.01263 |
| Sonnet 5 | $0.00018 | $0.00505 |
| Haiku 4.5 | $0.00009 | $0.00253 |
Grade A, and why
rdk-isp-tuning scanned grade A with 0 findings 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 8d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 129 lines — stays where its author put it; the contents beside it link to each section on GitHub.
RDK ISP 画质调参
适用于板上已经存在目标 sensor 驱动、模式配置和 *_tuning.json,需要优化 RAW→ISP→NV12 的画质。没有驱动、没有 sensor index 或 I2C/MCLK 不通时,先做 sensor bring-up,不要用 tuning JSON 掩盖硬件问题。
安全边界
- 先运行
get_isp_data -h确认 sensor、分辨率、帧率和 index;不要凭记忆写死 index。 - 只修改用户指定模式对应的 JSON。例如目标是 1920×1080,就不得顺手修改同 sensor 的 3264×2448 JSON。
- 修改前记录目标 JSON 和同 sensor 其他 JSON 的 MD5,并把目标文件备份到
/userdata/moss-isp-tuning/<sensor>/<mode>/backups/。每个候选也保留独立副本。 cam-service必须保持可恢复状态。采集和回灌时不要stop/killall cam-service;加载新 JSON 时只允许短暂systemctl restart cam-service,随后必须验证systemctl is-active cam-service为active。- JSON 上传后先做语法校验,再覆盖正式文件。失败时立即恢复备份并重启服务。永远不要把未验证候选留在板端。
- 不要把“画面更亮”当作“画质更好”。最佳版本必须同时检查曝光、色彩、噪声、细节、剪裁和稳定性。
建立可复现基线
调参前至少准备以下场景;手机参考图必须与板端相机尽量同机位、同构图、同光线:
- 白天室内普通照度
- 窗口或灯具在画面内的大光比
- 中性白/灰物体与常见肤色
- 文字、布料、木纹等细纹理
- 暗部或低照场景
每个候选都用同一个采集方法。不要用“另起一个进程预热、再起一个进程拍照”,因为新 ISP 实例不会继承前一个实例的 AEC/AWB 状态。使用同一个 get_isp_data 进程延时后批量抓帧:
sensor_idx="${SENSOR_INDEX:?set SENSOR_INDEX}"
settle_seconds="${SETTLE_SECONDS:?set SETTLE_SECONDS from measured convergence}"
capture_timeout_seconds="${CAPTURE_TIMEOUT_SECONDS:?set a bounded capture timeout}"
case "$sensor_idx:$settle_seconds:$capture_timeout_seconds" in
*[!0-9:]*|:*|*::*|*:) echo "invalid numeric capture parameter" >&2; exit 2 ;;
esac
if [ "$settle_seconds" -le 0 ] || [ "$capture_timeout_seconds" -le "$settle_seconds" ]; then
echo "capture timeout must be greater than a positive settle time" >&2
exit 2
fi
capture_root=/userdata/moss-isp-tuning/captures
mkdir -p "$capture_root"
capture_dir=$(mktemp -d "$capture_root/run.XXXXXX") || exit 1
cd "$capture_dir" || exit 1
(sleep "$settle_seconds"; printf 'lq') \
| timeout "$capture_timeout_seconds" \
/app/multimedia_samples/sample_isp/get_isp_data/get_isp_data -s "$sensor_idx" -c io \
>/dev/null 2>&1
先从基线流的 AEC/AWB 指标确定 settle_seconds,再为命令退出预留有限余量设置
capture_timeout_seconds;不要把示例等待时间当成所有 sensor 的固定收敛时间。每次采集使用新的
capture_dir,清理时也只删除该次目录,不要用 rm -f ~/handle_*.yuv 之类的宽泛通配符。
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.
- 8d ago First seen · 129 lines · 88 tokens per session scan A 93eac50eb37a
rdk-isp-tuning is a skill published in the GitHub repository D-Robotics/moss (142 stars, last pushed 12d ago), licensed MIT. It adds 88 tokens to every session and 2,526 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
cad-viewer
Start CAD Viewer and return review links for CAD and robot-description files. Use when visually reviewing .step, .stp, .glb, .stl, .3mf, .dxf, .urdf, .srdf, or .sdf files, especially when handed off from CAD, URDF, SRDF, or SDF generation skills.
solidworks-vibecad
A planning guide for turning natural-language mechanical design requests into structured, parameterized SolidWorks plans that can be reviewed before execution.
add-interfaces
Enrich an existing PartCAD part with connection interfaces and ports (mating metadata) so it can be mated to other parts automatically. Use for /pc:add-interfaces or when the user asks to add interfaces, ports, connectors, or mating information to a part, or to make parts snap/connect/assemble together.
gen-assembly
Generate a PartCAD assembly (an ASSY that composes parts with placement and/or mates) from a description, generating or reusing the component parts and validating the result with the PartCAD CLI. Use for /pc:gen-assembly or when the user asks to generate or create an assembly, mechanism, or multi-part product.
render
Render a PartCAD object or a CAD file to a 2D image - PNG, JPEG, SVG or DXF - from one or many viewing angles (front, back, left, right, top, bottom, iso, or an arbitrary direction), with pc render for an object a package declares or pc adhoc render for a file that belongs to no package. Use for /pc:render or when the…
gen-part
Generate a PartCAD part from a natural-language description (and optional reference images/requirements) by authoring a CAD script and validating it with the PartCAD CLI. Use for /pc:gen-part or when the user asks to generate, create, or model a single mechanical part.