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 HirogaKatageri/hirokata/plugin install guildWrote 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/hirogakatageri/hirokata/warehouse)<a href="https://agentmods.dev/skills/hirogakatageri/hirokata/warehouse"><img src="https://agentmods.dev/badge/skills/hirogakatageri/hirokata/warehouse/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/hirogakatageri/hirokata/warehouse"><img src="https://agentmods.dev/badge/skills/hirogakatageri/hirokata/warehouse.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.00260 | $0.01979 |
| Opus 5.5 | $0.00104 | $0.00792 |
| Sonnet 5.5 | $0.00052 | $0.00396 |
| Haiku 4.5 | $0.00026 | $0.00198 |
Grade A, and why
warehouse 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 1mo 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 — 124 lines — stays where its author put it; the contents beside it link to each section on GitHub.
The warehouse
tursodb is the tool. There is no guild CLI — you write SQL. The schema carries the
guild's rules as CHECK constraints, views and triggers, so the way to be correct is to
read what is already there rather than invent your own spelling of a rule.
Connect
export PATH="$HOME/.turso:$PATH"
printf "SELECT fact, value FROM v_brief;\n" | tursodb -q -m list .guild/guild.db
Cloud boards (.guild/config.yaml has mode: cloud) use the other binary and the URL
from the env var named in that file:
printf "SELECT fact, value FROM v_brief;\n" | turso db shell "$(printenv TURSO_DATABASE_URL)"
The schema lives at ${CLAUDE_PLUGIN_ROOT}/schema.sql. Applying it is idempotent —
tursodb .guild/guild.db < schema.sql — and is how a rule change reaches a live board.
Seven rules that are always true
- Free text crosses as hex. A
;that ends a line ends the statement, even inside a string literal — and requirement bodies quote code. Every title, body, rationale, log entry and finding goes in asCAST(x'<hex>' AS TEXT), which is always one line:hex=$(printf '%s' "$v" | xxd -p | tr -d '\n'). Neverecho. Never round-trip the value through$( )— that eats trailing newlines. Empty string is''. Ids, enum values, agent names, capabilities and timestamps you generated are closed alphabets and may be quoted literals. - The SQL itself must not pass through a
%-interpreting layer. Rule 1 protects the DATA; this protects the QUERY. Guild SQL is full ofprintf('%03d', …)andstrftime('%Y-%m-%dT%H:%M:%SZ','now'), and a shellprintfused to BUILD a statement eats those%sequences before SQLite sees them. The write then succeeds, exit code 0,RETURNINGprints a row, and the stored value is literallyTASK-%03d. Put SQL in a quoted heredoc (<<'SQL') and useprintfonly for hex, where the format is a constant and the payload is the argument. Seereferences/tursodb-gotchas.md§9a. PRAGMA foreign_keys = ON;at the top of every writing script. It is per-connection and defaults to OFF, and every invocation is a fresh connection.- Never parse
-m listoutput positionally. It is pipe-separated with no quoting, and free text contains pipes and newlines — a newline forges a whole row. Eitherjson_object(...), or select exactly one column when you need a value byte-exact, or flatten in SQL before it leaves the engine. - Read the view, do not re-derive the rule.
v_next_task,v_open_bounties,v_task_actionable,v_ready_nodes,v_board,v_brief,v_doc_current,v_doc_staleand the rest each hold ONE definition of a rule. Two members writing their own version of "which task is next" gives the guild two answers to one question, and both look right. The one rule with no view is the agent match — the roster is not in this database — and its single definition isguild:check-in§3.3. - A failing statement does not stop the script, and
COMMITstill commits. There is no-bail. Keep scripts to one logical change, putRETURNINGon every mutation so "did it land" is answered by output, and do the referential check inside the write (INSERT … SELECT … FROM parent WHERE parent.id = 'REQ-001'— theFROMis the check). - Errors print on stdout, not stderr.
out=$(… | tursodb …)captures the error as if it were a row. Always check the exit code, and never>/dev/nullthe failure path.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago Changed · +7 lines 0f63a31bf3a4
- 1mo ago First seen · 117 lines · 260 tokens per session scan A 1f5c3c51837b
warehouse is a skill published in the GitHub repository HirogaKatageri/hirokata (6 stars, last pushed 9d ago), licensed MIT. It adds 260 tokens to every session and 1,979 once invoked, about $0.0010 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-04.
Other skills, from other repositories
360-feedback-system
360 feedback register: reviewer, subject, review cycle, visibility, due date and score, as CSV, SQL, JSON Schema or Notion on request. Use for 360 reviews or peer feedback cycles.
alumni-re-hire-tracker
Alumni and re-hire register: former role, last working day, re-hire eligibility, current employer and re-engagement date, as CSV, SQL, JSON Schema or Notion on request. Use for alumni outreach.
announcement-board
Announcement board: author, category, department, priority, audience, publish and expiry dates, status and acknowledgements, as CSV, SQL, JSON Schema or Notion on request. Use for internal notices.
stale-sweep
Sweep the googleapis/mcp-toolbox repo for issues and PRs with no real activity in N days (default 60), sort each by whose silence it is (the author's, ours, or nobody's), and draft the nudge or close comment. Use whenever a maintainer asks for a stale sweep, backlog cleanup, or an SLO check, e.g. "stale sweep", "find…
record-gotchas
Capture surprises, workarounds, and rough edges hit while consuming the public surface of Prisma 8, Prisma Compute, or Prisma Postgres — anything a real user of these products would experience. Fires whenever an operator (or agent) writes a workaround, hits a surprising failure mode, or finds undocumented behaviour…
gh-issue
Size-audit, write, and split BanyanDB issues that somebody else or an automated TDD workflow can implement. Use whenever the user asks to file or revise an issue, decide whether an issue is too large, make an issue TDD-ready, turn a design into tickets, or split an umbrella into executable leaves. Do not draft or file…