AGENT SKILL

sniff

Detect JavaScript runtime, framework, tooling, data layer, and capabilities and emit the applicable pivot manifest.

使用场景前端开发
License 许可
MIT
最近更新
2026-11-11
Stars
★ 1
Forks
0

01 前言 Front Matter

name
sniff
tags
[ "frontend", "audit", "javascript" ]
author
François-Xavier Guillois
version
0.15.4
description
Detect JavaScript runtime, framework, tooling, data layer, and capabilities and emit the applicable pivot manifest.
permissions
[ "bash", "files" ]
vibe_version
>=1.0.0

02 资源文件 37

03 SKILL.md 正文

Read host portability before resolving plugin files, invoking sibling skills, or persisting project guidance.

sc-js Sniff

JS stack detector and pivot manifeste producer.

Available actions

# Action Role Input
01 scan Detect capabilities, emit pivot manifeste, map perf/data pivot install targets current project path
02 install-pivots Install perf/data pivots to .claude/rules/07-quality/ scan pivot manifeste
03 clean Opt-in migration: remove orphaned 0.3.0 capability rules from .claude/rules/capabilities/ project path

Default flow

Sequential: scan → install-pivots.

clean is opt-in only — invoke explicitly via sc-js:sniff clean. It is never part of the default flow.

Conceptual model

  • A capability is something the app does: manage state, split code, render icons, etc.
  • A pivot is the JS knowledge for the chosen solution (e.g. Pinia patterns, lucide-vue-next usage)
  • Pivots live in the plugin (skills/sniff/references/capabilities/) — they are loaded at audit time, not installed to the project
  • Perf pivots and data pivots are the exception: they ARE written to .claude/rules/07-quality/ because web-optimize and data-optimize read them from there

Transversal rules

  • If package.json is absent, abort with an explicit message.
  • Never install a capability rule to .claude/rules/capabilities/ — those are read from the plugin at audit time.
  • Never install a perf pivot for a framework not detected.
  • Never install a data pivot for an ORM not detected.
  • 03-clean is destructive — always show a dry-run scan before deleting anything.
  • Report gaps in three buckets: capability gaps (pivot candidates, listed exhaustively), tooling/infra (condensed, no pivot expected), and private/workspace packages (excluded by scope). Drop companion packages of an already-covered pivot (e.g. @vitest/coverage-v8, @eslint/js) — they are not gaps. See 01-scan Step 6.
  • 02-install-pivots never prints "pivots installed" when nothing was written — use the no-op / up-to-date header instead.
  • A free-text summary must never call something a "gap" if it appears in the pivot manifeste.

04 同仓库更多 Skills