sast-businesslogic Skill Review: 21,213 Bytes and a Cost Goal With No Cost Numbers
The README of utkusen's sast-skills says its "main goal" is "to find as many vulnerabilities as possible at the lowest possible cost". That README is 3,361 bytes and contains no detection rate, no false-positive rate and no cost figure. The repo has 1,351 stars, and its issue tracker has never held a single issue.
I reviewed sast-businesslogic, the skill that has to catch bugs no regex can: negative quantities, double-spent coupons, skipped payment steps. I read its full SKILL.md, the CLAUDE.md orchestrator and the README, then checked the repo's pull request, npm metadata and install telemetry. I did not run it, so nothing below is a measured cost. Token figures are file bytes divided by 4, arithmetic you can redo.
TL;DR / Key Takeaways
- The
sast-businesslogicSKILL.md is 21,213 bytes, roughly 5,303 estimated tokens (bytes ÷ 4); with the sast-analysis prerequisite (4,056 bytes) and the CLAUDE.md orchestrator (3,622 bytes) the set is 28,891 bytes, roughly 7,223 estimated tokens. - The utkusen/sast-skills repository has 1,351 GitHub stars, 67 forks and an MIT license. It holds 16 unique skills stored twice, in byte-identical
.agents/skillsand.claude/skillsfolders, which is why code search reports 32 SKILL.md files. - The README states a goal of finding vulnerabilities "at the lowest possible cost" but publishes 0 cost figures and 0 accuracy figures in its 3,361 bytes; the repo has had 0 issues and 1 pull request, open 192 days with no maintainer reply.
- The CLAUDE.md orchestrator lists 14 detector skills and the AGENTS.md orchestrator lists 13: the hardcoded-secrets scan is missing from AGENTS.md, the file the README points Opencode and other assistants at.
- skills.sh reported about 1.1K total installs for the repo on 2026-10-30, 69 of them for sast-businesslogic.
What the skill actually says
It's a three-phase pipeline. Phase 1 reads sast/architecture.md and writes numbered attack scenarios against 12 categories: price manipulation, quantity limits, workflow bypass, coupon abuse, race conditions, refunds, referral farming, entitlement bypass, auctions, inventory, time logic and transfers. Phase 2 splits the scenarios into batches of three and launches one subagent per batch, in parallel. Phase 3 merges the batch files. Each scenario ends as Exploitable, Likely Exploitable, Not Exploitable or Needs Manual Review. Three lines show its character:
"generic scenarios not grounded in the actual codebase are not useful"
"Server-side validation is the only valid protection."
"When in doubt, classify as "Needs Manual Review" rather than "Not Exploitable"."
The first is the right instinct, since logic flaws can't be pattern-matched. The third is a deliberate lean toward noise: "False negatives in a security assessment are worse than false positives."
Security gate: the skill is markdown with no scripts, and I read all 21,213 bytes. The only curl strings sit inside report templates, in a "Dynamic Test" field where the agent writes steps for a human to run. Nothing in the skill executes them. The frontmatter has no allowed-tools, and none of the 16 skills declare one.
What it costs you in context
Arithmetic from file sizes, not a session measurement: bytes ÷ 4.
| File | Bytes | Est. tokens (bytes ÷ 4) | When it's in context |
|---|---|---|---|
Frontmatter description (this skill) | 542 | 136 | Always (trigger text) |
sast-businesslogic/SKILL.md | 21,213 | 5,303 | When the skill runs |
sast-analysis/SKILL.md | 4,056 | 1,014 | Prerequisite: SKILL.md says sast/architecture.md must exist |
CLAUDE.md (orchestrator) | 3,622 | 906 | Entry point on the Claude Code route; AGENTS.md is 3,409 bytes (852) |
| Set for one skill (three files above) | 28,891 | 7,223 | |
sast-report/SKILL.md | 7,013 | 1,753 | Final report step |
| All 16 descriptions | 7,745 | 1,936 | Always, if all 16 are installed |
All 16 unique SKILL.md | 374,821 | 93,705 | If every skill were read once |
The all-skills row is not one session's cost. The 14 detectors range from 18,773 bytes (graphql) to 33,624 (rce), about 4,693 to 8,406 estimated tokens each, and the orchestrator runs them as separate parallel subagents. File sizes also leave out what matters most: the application code each subagent reads. The skill's own example says 10 scenarios means "4 subagents (3+3+3+1)". There's no cap on scenario count.
What the community reports
Public discussion is thin. A GitHub search found no issues at all. Hacker News (Algolia, stories and comments) had no hits for "sast-skills" or for two other phrasings; searching the author's handle returned only his older, unrelated posts. Web search returned only directory and auto-generated pages that restate the README. I found no hands-on write-up and no dissenting user. What exists:
| Source | Date | What was reported | Link |
|---|---|---|---|
| GitHub PR #1 (open) | Opened 2026-04-21; checked 2026-10-30 | mstfknn proposes an npx CLI, 31 skills, SARIF export and a triage step: 225 files, +95,853/-44 lines. The PR's one comment is the author's own, asking the owner to publish to npm. No maintainer reply in 192 days; GitHub marks it "dirty". | PR 1 |
| npm registry metadata | Package created 2026-06-26; v0.10.0 | The package sast-skills lists mstfknn as its only maintainer and points to his fork (13 stars, pushed 2026-10-25), not to utkusen's repo. | npm |
| CSA issue #113 | 2026-08-25; comment 2026-08-28 | kurtseifried lists utkusen/sast-skills (685 stars then) among ~18 AI security-audit tools for a planned benchmark, marked ✓ – – in a Find/PoC/Patch column, which I read as find-only. A later comment says the benchmark was deprioritized; the issue stays open with no results. | issue 113 |
| skills.sh listing | 2026-10-30 | 16 skills, about 1.1K total installs. sast-businesslogic has 69; the top skill, sast-rce, has 101. That's usage telemetry, not an opinion. | skills.sh |
The npm row matters. PR #1 says the package name was unclaimed in April and suggests publishing it under the owner's account. Per the registry it was created on 2026-06-26 under mstfknn. So npx sast-skills runs a third party's package. I didn't read its code; I only note it isn't the repo this review covers.
How to install it
The README shows one manual route; I did not run it.
# from the README: copy your project into the repo's sast-files folder
cp -r /path/to/your/project sast-files/
# then open sast-files as the workspace and ask:
# "Run vulnerability scan"
The README warns that if your project already has a CLAUDE.md or AGENTS.md, you must remove it first. A second route comes from the skills.sh page, not the README: npx skills add utkusen/sast-skills. I don't know whether that route installs the orchestrator file; without it the scan doesn't run automatically.
Where it earns its keep, and where it doesn't
It earns its keep on apps that handle money, quotas, coupons or multi-step state: shops, marketplaces, booking and subscription code. The 12-category list works as a human review checklist even if you never run the pipeline.
It earns little on libraries and CLIs, or where the rules live in database triggers and third-party services that the agent can't see. It's also a poor fit if you need numbers before adopting a scanner; none exist.
The criticisms are concrete:
- The stated goal has no evidence. "Lowest possible cost" appears in the README. No cost, recall or false-positive figure does.
- AGENTS.md skips a detector. It has 13 "Skip" lines against 14 in CLAUDE.md and never mentions hardcoded secrets, even though the skill sits in the folder. The mismatch is still there at commit 3a5bf8f (2026-10-23).
- Findings are static hypotheses. The "Dynamic Test" curl steps go into the report but never run, so "Exploitable" means the model read the code and believes it.
- It leans toward noise. The "when in doubt" rule and the "false negatives are worse" line push toward flagging, and the main branch has no triage step.
- The fan-out is uncapped. Batches scale with scenario count and the detectors run in parallel, yet no cost is stated.
- It looks dormant. This skill has 2 commits, the last on 2026-03-31, 213 days ago. The repo has 7 commits in total; six landed in the first 10 days and one README edit followed 198 days later.
FAQ
What does the sast-businesslogic skill do?
It tells a coding agent to threat-model an application's business rules, test each attack scenario in parallel subagents (3 scenarios per subagent), and merge the results into one report. It covers 12 categories such as price manipulation, coupon abuse, race conditions and workflow bypass. SKILL.md is 21,213 bytes.
How much context does sast-businesslogic use?
By file-size arithmetic (bytes ÷ 4, an estimate, not a measured session cost): about 5,303 tokens for SKILL.md, and about 7,223 with the sast-analysis prerequisite and the CLAUDE.md orchestrator. The 542-byte description, always loaded, is about 136. Subagent work on your own code is not included.
Does sast-skills publish accuracy or cost numbers?
No. The 3,361-byte README states a goal of finding vulnerabilities at the lowest possible cost but gives no detection rate, false-positive rate or cost figure. As of 2026-10-30 the repository has had 0 issues and 1 open pull request, unanswered for 192 days.
Is npx sast-skills the official install?
Not from the README, which shows only a manual copy into a sast-files folder. The npm package named sast-skills (version 0.10.0, created 2026-06-26) lists mstfknn as its maintainer and points to that user's fork, not utkusen's repository. This review did not read the package's code.
Skill by Utku Sen (utkusen), MIT licensed (LICENSE file: "Copyright (c) 2026 Utku Sen"). Source: github.com/utkusen/sast-skills, reviewed at commit 3a5bf8f (2026-10-23). Review date October 30, 2026. Quoted lines are short excerpts for review purposes. Star counts, install counts and pull request states are as of this date, and community reception shifts over time. Token figures are estimates from file size.