Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add velinussage/brand-gen --skill brand-gen-verdict-unificationgit clone --depth 1 https://github.com/velinussage/brand-genWrote 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/skills/velinussage/brand-gen/brand-gen-verdict-unification)<a href="https://agentmods.dev/skills/velinussage/brand-gen/brand-gen-verdict-unification"><img src="https://agentmods.dev/badge/skills/velinussage/brand-gen/brand-gen-verdict-unification/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/skills/velinussage/brand-gen/brand-gen-verdict-unification"><img src="https://agentmods.dev/badge/skills/velinussage/brand-gen/brand-gen-verdict-unification.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.00170 | $0.02218 |
| Opus 5.5 | $0.00068 | $0.00887 |
| Sonnet 5.5 | $0.00034 | $0.00444 |
| Haiku 4.5 | $0.00017 | $0.00222 |
Grade A, and why
brand-gen-verdict-unification 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.
How it starts
The opening of the file, as written. The whole thing — 170 lines — stays where its author put it; the contents beside it link to each section on GitHub.
For Sage brand work in Pi, use the paste-ready prompt at docs/prompts/pi-sage-brand-gen-full-pipeline.md. Keep this link instead of copying the full prompt into skill bodies.
Brand-Gen Verdict Unification
Risk addressed: brand-gen has at least four parallel quality systems with non-fungible outputs, composed implicitly:
card_engine._verify_render— file-level checks (PNG magic, headline presence) → gatesvisual_review_statusto"render_suspect".- DSPy
BrandScorer(scoring/program.py) — rubric-based axis scoring withaxis_scores,axis_rationales,decision: approved | iterate. vlm_critique— VLM gate withapproved | rejecteddecision (legacy path).apply_generation_critique_policy(generation_flow.py) — policy mode (advisory vs strict), can block.build_structural_auto_critic(generation_flow.py:1016) — structural pre-flight critic.agent_reviewpacket — orchestrator-level review record.
Each writes a different shape onto manifest entries. Naming is overloaded: "review" vs "critique" vs "critic" vs "feedback" are not consistently distinguished. There is no place where a downstream consumer can ask "what's the unified verdict for this version?" — they have to read 4-6 fields and apply implicit precedence.
What this skill produces
{
"summary": {
"verdict_emitters_total": 6,
"manifest_fields_carrying_verdicts": 9,
"implicit_combination_sites": 3,
"conflicting_verdict_paths": 2,
"naming_synonyms": ["review", "critique", "critic", "feedback", "verdict", "decision"]
},
"emitters": [
{
"emitter": "card_engine._verify_render",
"site": "card_engine.py:1500-1540 (approx)",
"verdict_shape": "{visual_review_status: 'pending' | 'render_suspect'}",
"scope": "file-level (per PNG)",
"blocking": false,
"writes_to": ["manifest.entries[].visual_review_status"]
},
{
"emitter": "BrandScorer.forward",
"site": "scoring/program.py BrandScorer",
"verdict_shape": "{axis_scores: {...}, axis_rationales: {...}, decision: 'approved' | 'iterate'}",
"scope": "rubric-level (per version)",
"blocking": false,
"writes_to": ["review-packet.json", "manifest entry decision"]
},
{
"emitter": "vlm_critique",
"site": "vlm_critique.py",
"verdict_shape": "{approved: bool, rationale: str}",
"scope": "image-level (per version)",
"blocking": false,
"writes_to": ["iteration_memory positive/negative"]
},
{
"emitter": "apply_generation_critique_policy",
"site": "generation_flow.py apply_generation_critique_policy",
"verdict_shape": "{policy_status: 'allow' | 'block', mode: 'advisory' | 'strict', findings: [...], bypassable: bool}",
"scope": "policy-level (per run)",
"blocking": true,
"writes_to": ["pipeline_result.stop_reason", "run_ledger event"]
},
{
"emitter": "build_structural_auto_critic",
"site": "generation_flow.py:1016",
"verdict_shape": "{P1: [...], P2: [...], P3: [...]}",
"scope": "scratchpad-level (pre-execute)",
"blocking": "indirect — drives iteration_memory negatives",
"writes_to": ["iteration_memory negatives via auto_capture_generation_feedback"]
},
{
"emitter": "agent_review",
"site": "agent_review.py",
"verdict_shape": "{orchestrator_review_packet: {...}}",
"scope": "orchestration-level (per run)",
"blocking": false,
"writes_to": ["agent-review packet json"]
}
],
"implicit_combination_sites": [
{
"site": "manifest entry decision_field_resolution",
"issue": "no documented rule for which verdict wins when render says render_suspect, scorer says approved, policy says allow"
}
],
"conflicting_verdict_paths": [
{
"scenario": "vlm_critique approved + apply_generation_critique_policy block",
"current_behavior": "policy blocks the run; vlm verdict is recorded but does not gate",
"documented": false
}
],
"recommended_verdict_schema": {
"name": "Verdict",
"fields": [
"verdict_id",
"version_id",
"emitter: enum",
"scope: enum",
"decision: enum (approve | iterate | block | flag)",
"blocking: bool",
"rationale: str",
"axis_scores: dict | null",
"findings: list[Finding] | null",
"supersedes: List[verdict_id]"
],
"composition_rule": "blocking emitter (policy) > rubric (scorer) > image (vlm) > file (render verification) > pre-flight (auto-critic). Equal scope: most-recent supersedes older.",
"manifest_field": "manifest.entries[].verdicts: List[Verdict]; manifest.entries[].resolved_verdict: Verdict (computed)"
}
}
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 · 170 lines · 170 tokens per session scan A 858e61d79e46
brand-gen-verdict-unification is a skill published in the GitHub repository velinussage/brand-gen (0 stars, last pushed 5mo ago), licensed MIT. It adds 170 tokens to every session and 2,218 once invoked, about $0.0007 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-08-31.
brand-gen-verdict-unification compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| brand-gen-verdict-unificationvelinussage/brand-gen | Skill | 0 | 5mo ago | MIT | A | 170 | Claude Code, Codex |
| systematic-debuggingopen-metadata/OpenMetadata | Skill | 16k | today | Apache-2.0 | A | 37 | Claude Code |
| log-error-digestzebbern/claude-code-guide | Skill | 4.7k | yesterday | MIT | A | 71 | Claude Code, Codex |
| cwv-optimizeradobe/skills | Skill | 321 | today | Apache-2.0 | A | 112 | Claude Code |
| ci-fixersipyourdrink-ltd/bernstein | Skill | 1.2k | today | Apache-2.0 | A | 15 | Claude Code, Codex |
| incident-response-incident-responsermyndharis/antigravity-skills | Skill | 2.0k | yesterday | MIT | A | 36 | Claude Code, Codex |
| diagnosing-missing-recordingsPostHog/posthog | Skill | 41k | today | none | A | 76 | Claude Code, Codex |