slack-to-ticket — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited slack-to-ticket (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Creates a structured Linear issue from a pasted Slack conversation.
_Read ~/.claude/skills/slack-to-ticket/preferences.md using the Read tool. If not found, no preferences are set._
Check $ARGUMENTS:
~/.claude/skills/slack-to-ticket/preferences.md, confirm, stopSlack to Ticket — Create a Linear issue from a Slack thread
Usage:
/slack-to-ticket <paste thread> Parse and create issue
/slack-to-ticket config Set default team, project, preferences
/slack-to-ticket reset Clear preferences
/slack-to-ticket help This help
What it does:
1. Parses the thread for topic, urgency, action items
2. Checks Linear for duplicate issues
3. Shows inferred fields for review
4. Asks for team and project
5. Creates issue with natural description
Current preferences:
(shown above under Preferences)Use `AskUserQuestion`:
Q1 — "Default Linear team?" (options from list_teams, max 4, + "Ask each time") Q2 — "Default project?" (options from list_projects, max 4, + "None", + "Ask each time") Q3 — "Default priority when no urgency signals?" (Normal (default), Low, Ask each time)
Save to ~/.claude/skills/slack-to-ticket/preferences.md.
If no preferences file exists, show: "First time using /slack-to-ticket? Run /slack-to-ticket config to set default team/project, or continue — I'll ask as needed."
Then proceed normally.
Analyze $ARGUMENTS and extract:
Bug, Feature, Improvement, or TaskIn parallel:
Then search for duplicates:
If duplicate found, warn the user and let them decide.
Use `list_issue_labels` to check if inferred category label exists. Include only if valid match. If no match, omit.
Show inferred fields:
Inferred from Slack thread:
- Title: {title}
- Category: {category}
- Priority: {priority} ({reason})
- Action items: {count} found
- Participants: {names}
{if duplicate: ⚠️ Possible duplicate: {issue ID} — {title}}Use a single `AskUserQuestion` call to ask:
list_teams)Do NOT ask about title, priority, description, or labels — those are inferred.
Use `create_issue` with:
list_issue_statuses. If not found, omit.#### Description guidelines
Write like a human engineer wrote it:
Rules:
_ref: [Slack thread](url)_Show:
AIS-123)If user chose a team/project different from saved preferences, update silently. Mention: "Noted: you prefer team {X}. Saved for next time."
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.