semble — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited semble (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.
semble is a git-style CLI (and importable library) for the Semble public GraphQL API. It models Semble's own concepts, not any one clinic's workflow.
A "Responsible Clinician" is not special. In Semble it is just a patient relationship with a label that points at a contact. So use semble patient relationship add … --label "Responsible Clinician". Whatever a downstream app does with that relationship is that app's concern, not the CLI's.Precedence: flags > env > config file (`~/.config/semble/config.json`) > built-in presets (sandbox, prod). Env vars: SEMBLE_PROFILE, SEMBLE_OPEN_URL, SEMBLE_TOKEN. Pick a profile per-command with --profile <name>. Credentials are auto-discovered: with no --env-file/$SEMBLE_ENV_FILE, the CLI walks UP from the cwd to the project root and loads the nearest .env or .claude/.env — so it works from any subdirectory, run by any agent, with no source or cd. It only fills vars that aren't already set (real env vars and flags win).
x-token): patient, contact, user. Set token (env SEMBLE_TOKEN).# Look up records (search/list auto-paginate; --limit caps results)
semble patient search "smith" [--limit 5] [--json] # omit the query to list patients
semble patient get <patientId> [--json]
semble contact search "clinic" [--limit 5] [--json] # name/email/telephone/specialization/id no.
semble contact get <contactId>
semble user list [--limit 5] # clinicians/staff (a relationship can point at a user)
semble user get <userId>
# Patient relationships (writes need --confirm). <accountId> = a contact OR user id.
semble patient relationship list <patientId> [--resolve]
semble patient relationship add <patientId> <accountId> --label "Responsible Clinician" --confirm
semble patient relationship update <patientId> <relId> <accountId> --confirm
semble patient relationship remove <patientId> <relId> --confirmRun semble help or semble <command> --help for full usage. stdout is data, stderr is messages; exit 0 success · 1 runtime error · 2 usage error.
--confirm).--json flag on any command emits machine-readable output for piping.`.semble/trace.jsonl` where it runs, as an audit trail (no patient data on disk). `--trace` (or $SEMBLE_TRACE) escalates to the full request/response — headers + bodies — written to that file and echoed to stderr (DevTools-style) for debugging. Secrets (x-token, JWTs) are redacted; stdout stays clean data, so --trace is pipe-safe. Override dir: $SEMBLE_TRACE_DIR. Bodies clip to 4000 chars — use `--trace-full` (or $SEMBLE_TRACE_FULL) for whole payloads, or $SEMBLE_TRACE_MAX=<chars> for a custom cap.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.