2.4 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| feedback_skill_first_routing | If an installed skill/command covers a request, INVOKE THE SKILL — never hand-roll the API from memory. Syncro billing/invoicing ALWAYS goes through /syncro (or /syncro-emergency-billing). Knowing the API is not a license to bypass the skill. |
|
When a request maps to an installed skill or slash-command, invoke that skill rather than improvising raw curl/API calls. This is a hard rule, now in CORE CLAUDE.md ("Skill-first"). The canonical offender is Syncro billing: every invoice/line-item/ticket-billing request goes through the /syncro skill (or /syncro-emergency-billing for after-hours) — NOT ad-hoc API calls.
Why: I default to "act directly" and, because I "know" the Syncro REST API, I reach for a hand-rolled add_line_item curl from memory. Free-handing the payload gets the structure wrong (attribution/?api_key= owner, taxable:false, line-item shape, priority/type format, blank contact, the preview gate), producing malformed tickets — and Winter has to fix them (already flagged on #32193/#32194 and others). The skill encodes all of that correctly and enforces the preview/confirm gate. The detailed billing rules in feedback_syncro_billing describe what the SKILL does when it bills; they are NOT a license to bypass the skill and do it by hand.
How to apply:
- Billing/invoicing/ticketing/scheduling in Syncro ->
/syncro(after-hours/emergency ->/syncro-emergency-billing). No exceptions, even for a "quick" one-line charge. - More generally: before reaching for raw API, ask "is there a skill for this?" Credentials ->
vault; RMM actions ->/rmm(find the host withrmm-search); M365 investigation/remediation ->remediation-tool; the per-vendor skills (bitdefender, datto-edr, packetdial, b2, mailprotector, screenconnect...) own their APIs. - Use raw API ONLY when no skill fits, or the skill genuinely cannot do the thing — and SAY SO explicitly when you do, so the user can sanity-check.
- When the user corrects a bypass, log it:
bash .claude/scripts/log-skill-error.sh "<skill>" "hand-rolled API instead of using the skill" --correction.
Related: feedback_psa_default_syncro (Syncro is the default PSA), feedback_syncro_preview_mandatory (preview gate the skill enforces), feedback_syncro_priority_type_format (a malformed-ticket case Winter flagged), feedback_syncro_billing, feedback_syncro_workflow.