Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add SteveGJones/ai-first-sdlc-practices/plugin install sdlc-model-councilWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/stevegjones/ai-first-sdlc-practices/council-roster)<a href="https://agentmods.dev/commands/stevegjones/ai-first-sdlc-practices/council-roster"><img src="https://agentmods.dev/badge/commands/stevegjones/ai-first-sdlc-practices/council-roster/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/stevegjones/ai-first-sdlc-practices/council-roster"><img src="https://agentmods.dev/badge/commands/stevegjones/ai-first-sdlc-practices/council-roster.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00028 | $0.00910 |
| Opus 5.5 | $0.00011 | $0.00364 |
| Sonnet 5.5 | $0.00006 | $0.00182 |
| Haiku 4.5 | $0.00003 | $0.00091 |
Grade A, and why
council-roster scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Show the project's current model-council roster. This is a read of
.sdlc/model-council/, not a new assessment — no adapter is called, no
tokens are spent, unless rebuild is given (still token-free, see step 3).
Arguments: $ARGUMENTS — optional literal rebuild.
Do this:
-
No roster yet? If
.sdlc/model-council/roster.jsondoesn't exist, say so plainly and stop: point at/sdlc-model-council:council-commission(full onboarding: discover, characterize, audition, roster, policy) or/sdlc-model-council:council-assess(just the assessment) as the two ways to produce one. Don't fabricate a roster from priors here — that's what commission'sskipaudition choice is for. -
Roster exists — present it. Show
.sdlc/model-council/roster.mdas-is (it already has the per-model table: grades, per-dimension posterior/n/ci95, roles, cost/item, p50 latency). Then read.sdlc/model-council/diversity.jsonand summarise itspairsarray:- Most decorrelated pair — lowest
both_wrong_rateamong pairs whereinsufficientis false — this is the best casting complement. - Most correlated pair — highest
both_wrong_rate(or any pair markedinsufficient, whichcast.pytreats as maximally correlated by design — call these out separately, they're a data gap not a diversity finding). Reference thecouncil-policyskill if the user asks what any of this means for routing — role assignment and casting rules live there, not in this command.
- Most decorrelated pair — lowest
-
rebuild— re-derive the roster and diversity map from the existing.sdlc/model-council/results.jsonlwithout dispatching any model. This is for after a manual edit toresults.jsonl, a pricing refresh, or a priors update — cheap and token-free because it only re-scores rows already on disk. Run:${CLAUDE_PLUGIN_ROOT}/scripts/council/roster.py \ --results .sdlc/model-council/results.jsonl \ --priors-dir ${CLAUDE_PLUGIN_ROOT}/scripts/council/priors \ --pricing ${CLAUDE_PLUGIN_ROOT}/scripts/council/pricing.json \ --out-json .sdlc/model-council/roster.json \ --out-md .sdlc/model-council/roster.md ${CLAUDE_PLUGIN_ROOT}/scripts/council/diversity.py \ --results .sdlc/model-council/results.jsonl \ --stack ${CLAUDE_PLUGIN_ROOT}/assessment/stack/v1/stack.json \ --out .sdlc/model-council/diversity.jsonThen present the rebuilt roster per step 2. If
.sdlc/model-council/results.jsonldoesn't exist either, there's nothing to rebuild from — say so and point atcouncil-assess/council-commissioninstead. -
Staleness check. Compare the roster's
generated_ts(.sdlc/model-council/roster.json) against the timestamps in.sdlc/model-council/assessment-log.jsonl— if any log entry'stsis newer thanroster.json'sgenerated_ts, the on-disk roster predates the latest assessment run. Flag this plainly and suggestrebuild(ifresults.jsonlalready reflects the newer run) or a fresh/sdlc-model-council:council-assess(if it doesn't).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 66 lines · 28 tokens per session scan A fb62708e94aa
council-roster is a command published in the GitHub repository SteveGJones/ai-first-sdlc-practices (42 stars, last pushed 1mo ago), licensed MIT. It adds 28 tokens to every session and 910 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
council-roster compared with commands from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| council-rosterSteveGJones/ai-first-sdlc-practices | Command | 42 | 1mo ago | MIT | A | 28 | Claude Code |
| checklistgithub/spec-kit | Command | 149k | 2d ago | MIT | A | 13 | Claude Code |
| clarifygithub/spec-kit | Command | 149k | 2d ago | MIT | A | 27 | Claude Code |
| specifygithub/spec-kit | Command | 149k | 2d ago | MIT | A | 13 | Claude Code |
| analyzegithub/spec-kit | Command | 149k | 2d ago | MIT | A | 26 | Claude Code |
| convergegithub/spec-kit | Command | 149k | 2d ago | MIT | A | 35 | Claude Code |
| implementgithub/spec-kit | Command | 149k | 2d ago | MIT | A | 14 | Claude Code |