Content
67%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A well-structured, highly actionable single-file skill with concrete curl commands, complete config format, mode-specific workflows, and explicit fallback/verification behavior. Its two weaknesses are repetition of the fail-open/zero-impact rules across four sections, and placeholder-laden payloads that never show how $WEBHOOK_URL or card content is actually assembled from the config.
Suggestions
Consolidate the fail-open/zero-impact rules: state 'config absent or mode off = silent no-op' once (e.g., in Configuration) and let Step 1 and Key Rules reference it, cutting 3–4 redundant restatements.
Move the Event Catalog table (a cross-skill contract for ten other skills) and the 'Helper Function' markdown template into a references/ file (e.g., references/events.md) and link to them from SKILL.md.
Replace literal TITLE/COLOR/BODY/$WEBHOOK_URL placeholders with one fully-resolved worked example showing how values are read from ~/.claude/feishu.json and substituted into the curl payload.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is mostly efficient — dense tables for modes, card templates, and the event catalog, with no explanation of concepts Claude already knows — but the fail-open behavior is repeated in at least four places ("Zero-impact guarantee" in the Overview, the Configuration section, Step 1, the Helper Function note, and three Key Rules bullets), and the "Helper Function (for other skills)" markdown template is meta-content that duplicates the Workflow. This fits 'Mostly efficient but includes some unnecessary explanation or could be tightened'; it is not 2 because each individual section is lean and nothing is concept-explainer padding, and not 4 because the repetition is a real trimming opportunity. | 3 / 5 |
Actionability | Concrete, near-copy-paste guidance throughout: the `cat ~/.claude/feishu.json 2>/dev/null` read, full webhook curl with exact interactive-card JSON, the bridge `/send` and `/poll?timeout=` endpoints with example reply payloads, and a per-event table specifying title/color/body. Not 5 because the curl payloads embed literal placeholders (TITLE, COLOR, BODY, EVENT_TYPE, $WEBHOOK_URL, $BRIDGE_URL) without showing how values are extracted from the config or how body content is composed (e.g., building the "Results table, delta vs baseline"); those gaps keep it short of fully copy-paste ready. | 4 / 5 |
Workflow Clarity | Steps 1–4 are clearly sequenced with mode branching (absent/off → return; push → Step 2; interactive → Step 3), explicit verification (Step 4 checks curl exit code and bridge reachability), and error-recovery fallbacks (timeout → AUTO_PROCEED, bridge unreachable → push or skip). This matches 'Clear sequence with most checkpoints present; minor validation gaps' — the gap being no validate/fix/retry loop for a failed webhook send (it just logs a warning) and no instruction for handling a malformed poll response. The destructive/batch cap does not apply since notification sending is neither. | 4 / 5 |
Progressive Disclosure | This is a single-file skill (no references/, scripts/, or assets/ exist), so there are no broken or nested references to penalize, and the body is organized into clear sections (Overview, Configuration, Modes, Workflow, Helper Function, Event Catalog, Key Rules). It exceeds the <50-line simple-skill exception (~157 lines), and the Event Catalog table — a cross-skill contract documenting ten other skills' events — plus the Helper Function template are content that could live in a separate reference file; that minor inlining keeps it at 'Good structure; most content is appropriately placed' rather than 5. | 4 / 5 |
Total | 15 / 20 Passed |