llm-council — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited llm-council (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.
$XDG_CONFIG_HOME/llm-council/agents.json or ~/.config/llm-council/agents.json). If none exists, tell the user to run ./setup.sh to configure or update agents.python3 scripts/llm_council.py run --spec /path/to/spec.json to run the council../llm-council/runs/<timestamp> relative to the current working directory.python3 scripts/llm_council.py configure (writes $XDG_CONFIG_HOME/llm-council/agents.json or ~/.config/llm-council/agents.json).judge.md and final-plan.md.final-plan.md are confirmed saved; keep the session open during that interval to avoid closing the interface. If you yield while the Council is running, the session will be terminated and you will FAIL to complete the task. The user will escape out when they are ready or after the 30 minutes have elapsed.Use agents.planners to define any number of planning agents, and optionally agents.judge to override the judge. If agents.judge is omitted, the first planner config is reused as the judge. If agents is omitted in the task spec, the CLI will use the user config file when present, otherwise it falls back to the default council.
Example with multiple OpenCode models:
{
"task": "Describe the change request here.",
"agents": {
"planners": [
{ "name": "codex", "kind": "codex", "model": "gpt-5.2-codex", "reasoning_effort": "xhigh" },
{ "name": "claude-opus", "kind": "claude", "model": "opus" },
{ "name": "opencode-claude", "kind": "opencode", "model": "anthropic/claude-sonnet-4-5" },
{ "name": "opencode-gpt", "kind": "opencode", "model": "openai/gpt-4.1" }
],
"judge": { "name": "codex-judge", "kind": "codex", "model": "gpt-5.2-codex" }
}
}Custom commands (stdin prompt) can be used by setting kind to custom and providing command and prompt_mode (stdin or arg). Use extra_args to append additional CLI flags for any agent. See references/task-spec.example.json for a full copy/paste example.
references/architecture.mdreferences/prompts.mdreferences/templates/*.mdreferences/cli-notes.mdfinal-plan.md are saved; keep the session open during that interval to avoid closing the interface.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.