tester-cookbook — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited tester-cookbook (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
@rules/php/core-standards.mdc@rules/git/general.mdc@rules/jira/general.mdc — JIRA comments must be in Wiki Markup, never Markdown@rules/reports/general.mdc — the cookbook JIRA comment must be written in the language of the JIRA task description (e.g. ECOMAIL-* tasks → Czech). Do not mix languages within a single comment; UI-visible labels stay verbatim as they appear in the admin screen.@rules/jira/general.mdc, status transitions are handled by humans only.queue, lambda, SQS, ENV, .env, config, feature flag (use switch in Administration), job, dispatch, retry, polling, telemetry, log, Bugsnag, Slack (unless the Slack notification is what the tester reads), AWS, payload, endpoint, API v2 (unless that exact wording appears in the UI).enum, class, namespace, repository, action, table, column, DB column name, migration, route, status code, event name, listener.CampaignLogEvent::SMS_ACCEPTED), translate it to the exact label the tester sees in the UI ("status Waiting for delivery in the campaign report").#), any fenced code block ( ` ), or any Markdown table (|).JIRA_KEY — required. The JIRA task that owns the assignment (e.g. ECOMAIL-1234).PR_NUMBER — optional. A specific linked pull request to focus on; when omitted, use every PR linked from the JIRA task.skills/code-review-jira/scripts/load-issue.sh <KEY|URL> — never call acli directly. For the full task context in one pass (description, all comments, attachments, recursively-loaded linked issues, and an inventory of external URLs), run skills/code-review-jira/scripts/gather-issue-context.sh <KEY|URL> instead. If the loader is unavailable (missing tool, exit code 2/3), fall back to the JIRA MCP server.summary, descriptionText, every entry in comments[], and the linked-PR list off the resulting JSON document.PR_NUMBER), call skills/code-review-github/scripts/load-issue.sh <NUMBER|URL> — never call gh pr view directly.For each impact identified in step 2, look up the corresponding visible label inside the application:
gosms_sms_version).Every comment opens with two metadata lines (in JIRA Wiki Markup), then the body sections. The body skips the first section when it does not add value (for example when the change is verifiable purely from the dev-team report — a notification text change, a label rename in the report).
Metadata lines (always at the top of the comment, in this order):
@handle, otherwise the git Name <email> form. Comma-separated in commit order, deduped. Resolved exactly as @skills/pr-summary/SKILL.md resolves authors (git log --pretty='%an <%ae>' base..HEAD, plus PR author.login and commits[].author.login). Never list the agent / publishing identity. When authorship cannot be determined, write Authors: unknown — git history did not yield a recognisable identity.Body sections:
h2., h3. (never #).*. Numbered lists: #.*bold*. Italic: _italic_.{{...}} — {{...}} reads as code and disrupts a non-technical reader.{{...}} only for literal strings the tester types verbatim, e.g. the test phone number {{+420604240203}}. ` ), no Markdown headings, no Markdown tables. The full conversion cheatsheet lives in @rules/jira/general.mdc.Before sending the comment, scan the body for every forbidden token listed in Constraints. When a forbidden token is found, either:
Repeat until the body is clean. Do not publish a comment that still contains forbidden vocabulary.
acli (primary): acli jira comment <KEY> --noedit --comment="$(cat <report-file>)".acli is unavailable.@skills/pr-summary/SKILL.md — short, two-section business summary for PR / JIRA. Different audience (project managers, not QA testers).@skills/test-like-human/SKILL.md — the agent runs the tests itself. This skill only writes a tester-facing report.Wrong (technical, leaks code identifiers):
After sending the campaign, thecampaign_logtable receives a record with eventsms_accepted, which theProcessSmsCampaignBatchAsyncResponsesJobjob flips tosms_sent.
Right (tester-facing, dev-team-report focused):
Report back to the dev team if you see: the SMS arrived on the phone but the campaign report shows Not delivered after refreshing; credits charged for a contact whose status ends up as Invalid number; the Recipient activity tab is empty even though the campaign was sent.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.