Security
GenCMS Guard
What a scan checks, how the score is produced, and how to run it in CI.
Availability note — these docs describe both working and planned product areas. Account authentication, administrator-managed AIHK/AICA tenant regions and keys, signed-in Composer runs and public Guard scans are connected. Skills, Memory, Agents, Workflows, Apps, billing, the public SDK/CLI and the unified API are previews unless a section explicitly says otherwise.
Guard performs static analysis over a package, its manifest, its prompts and its dependencies, then reports observed signals grouped by what an attacker could do with them.
Check families
- Shell execution — interpreters reached, runtime code evaluation, remote scripts piped into a shell
- Credentials and secrets — embedded keys, environment sweeps, credential-file access
- Network access — outbound calls, hard-coded IPs, local data posted off-platform
- Filesystem access — writes, path traversal, persistence mechanisms
- Prompt injection — instruction override, context exfiltration, hidden text
- Package files — install hooks, obfuscated payloads, vendored minified code
- Binary payloads — executable indicators, runtime downloads made executable
- Permission declaration — behaviour the manifest does not declare
- Tool declarations — wildcard grants, requests to skip confirmation
- Dependencies — unpinned ranges, off-registry sources
- Known dangerous patterns — destructive commands, reverse shells, mining
Scoring
Each finding carries a severity weight; repeats add less than the first hit. The score starts at 100 and is reduced by the total. A match found only in Markdown is reported one level lower, except for prompt-injection, credential and permission findings — in those families the prose is the payload.
| Result | Meaning |
|---|---|
| Low Risk | No high or critical findings, score 85 or above |
| Review Recommended | Score below 85, or at least one high finding |
| High Risk | Any critical finding, or score below 55 |
Guard never labels anything guaranteed safe. A result describes signals found in one version of one package at one moment.
Running a scan from CI
curl -sS https://gen-cms.com/api/v1/guard/scan \
-H "Content-Type: application/json" \
-d '{ "target": "https://github.com/acme/our-skill" }' \
| jq '.report | {score, risk, findings: [.findings[] | .ruleId]}'