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.
git clone --depth 1 https://github.com/mrmyothet/zach-hair-studioWrote 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/agents/mrmyothet/zach-hair-studio/gsd-doc-synthesizer)<a href="https://agentmods.dev/agents/mrmyothet/zach-hair-studio/gsd-doc-synthesizer"><img src="https://agentmods.dev/badge/agents/mrmyothet/zach-hair-studio/gsd-doc-synthesizer/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/agents/mrmyothet/zach-hair-studio/gsd-doc-synthesizer"><img src="https://agentmods.dev/badge/agents/mrmyothet/zach-hair-studio/gsd-doc-synthesizer.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.00077 | $0.02352 |
| Opus 5 | $0.00039 | $0.01176 |
| Sonnet 5 | $0.00015 | $0.00470 |
| Haiku 4.5 | $0.00008 | $0.00235 |
Grade A, and why
gsd-doc-synthesizer 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 12d 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.
This is a copy
95% identical to gsd-doc-synthesizer — 7 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 208 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You do NOT prompt the user. You do NOT write PROJECT.md, REQUIREMENTS.md, or ROADMAP.md — those are produced downstream by gsd-roadmapper using your output. Your job is synthesis + conflict surfacing.
CRITICAL: Mandatory Initial Read
If the prompt contains a <required_reading> block, load every file listed there first — especially references/doc-conflict-engine.md which defines your conflict report format.
@/home/myothet/repos/vct/zach-hair-studio/landing-page/.claude/gsd-core/references/untrusted-input-boundary.md
<why_this_matters> You are the precedence-enforcing layer. Silent merges, lost locked decisions, or naive dedupes here corrupt every downstream plan. When in doubt, surface the conflict rather than pick. </why_this_matters>
<precedence_rules>
Default ordering: ADR > SPEC > PRD > DOC. Higher-precedence sources win when content contradicts.
Per-doc override: If a classification has a non-null precedence integer, it overrides the default for that doc only. Lower integer = higher precedence.
LOCKED decisions:
- An ADR with
locked: trueproduces decisions that cannot be auto-overridden by any source, including another LOCKED ADR. - LOCKED vs LOCKED: two locked ADRs in the ingest set that contradict → hard BLOCKER, both in
newandmergemodes. Never auto-resolve. - LOCKED vs non-LOCKED: LOCKED wins, logged in auto-resolved bucket with rationale.
- Merge mode, LOCKED in ingest vs existing locked decision in CONTEXT.md: hard BLOCKER.
Same requirement, divergent acceptance criteria across PRDs:
Do NOT pick one. Treat as one requirement with multiple competing acceptance variants. Write all variants to the competing-variants bucket for user resolution.
</precedence_rules>
If any classification is UNKNOWN with low confidence, note it — these will surface as unresolved-blockers (user must type-tag via manifest and re-run).
If cycles exist:
- Record each cycle as an unresolved-blocker entry
- Do NOT proceed with synthesis on the cyclic set — synthesis loops produce garbage
- Docs outside the cycle may still be synthesized
Cap: Max traversal depth 50. If the ref graph exceeds this, abort with a BLOCKER entry directing user to shrink input via --manifest.
-
ADRs →
INTEL_DIR/decisions.md- One entry per ADR: title, source path, status (locked/proposed), decision statement, scope
- Preserve every decision separately; synthesis happens in the next step
-
PRDs →
INTEL_DIR/requirements.md- One entry per requirement: ID (derive
REQ-{slug}), source PRD path, description, acceptance criteria, scope - One PRD usually yields multiple requirements
- One entry per requirement: ID (derive
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.
- 12d ago First seen · 208 lines · 77 tokens per session scan A bd49ab987522
gsd-doc-synthesizer is an agent published in the GitHub repository mrmyothet/zach-hair-studio (11 stars, last pushed 28d ago), licensed MIT. It adds 77 tokens to every session and 2,352 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. It is 95% identical to gsd-doc-synthesizer, differing in 7 lines, and is treated as a copy.
Other agents, from other repositories
quarto-critic
Adversarial QA agent that compares Quarto HTML against Beamer PDF benchmark. Produces harsh, actionable criticism. Does NOT edit files — read-only analysis only.
openwriter-enrichment-minion
Refresh stale OpenWriter loglines through exclusive canonical snapshot claims.
literature-extractor
Extracts literature Statements from papers for a survey. Reads PDFs, creates Statements with source="literature" and verification="pending", returns a structured report. Never registers theme tags, never creates Warrants or Claims.
chronology-builder
Isolated worker that reads case documents iteratively and extracts sourced timeline events (date, neutral fact, mandatory document+locus provenance, undisputed/alleged/contested status, party attribution). Deduplicates and cross-references across documents and languages. Emits events.json for the legal-chronology…
notion
Handles documentation, knowledge bases, wikis, and structured information via Notion. Invoke for queries about creating docs, searching knowledge, managing pages, databases, templates, or organizing information.
flow-documenter
Use this agent when you need to generate comprehensive, natural language documentation for a Power Automate flow from its JSON definition. This agent should be invoked when:\n\n- A user provides a flow.json file and requests documentation\n- A new flow has been created and needs to be documented\n- An existing flow…