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 agentmods add skills/jerry7991/standup-ghost/setupnpx skills add jerry7991/standup-ghost --skill setupgit clone --depth 1 https://github.com/jerry7991/standup-ghostWhat 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 | $0.00066 | $0.01199 |
| Opus 5 | $0.00033 | $0.00600 |
| Sonnet 5 | $0.00013 | $0.00240 |
| Haiku 4.5 | $0.00007 | $0.00120 |
Grade A, and why
setup 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 2d 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 — 49 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Standup Ghost — setup wizard
State machine in ~/.local/state/standup-ghost/setup-state.json: configured → verified-post → scheduled → live. Re-running RESUMES from the recorded state. Setup is complete ONLY at live.
1 — Config (state: configured) — DISCOVER FIRST, ask only what can't be discovered
The connected tools identify their own authenticated user — the user confirms values, they don't type IDs:
| Field | Discovery recipe |
|---|---|
identity.email, display name |
seed from git config user.email / user.name; authoritative from Atlassian atlassianUserInfo |
| Jira site / cloudId | getAccessibleAtlassianResources (JQLs use currentUser() — no Jira account ID is ever stored) |
identity.github_login |
cli flavor: gh api user --jq .login; mcp flavor: queries can use author:@me (login stored for display only) |
identity.slack_user_id |
slack_search_users with the discovered email → confirm by display name (needed for review-mode self-DM) |
identity.handle |
default = Slack display name (it's the canvas idempotency key — offer override) |
identity.timezone |
system date; confirm |
| canvas / channel IDs | ask for the NAME ("#team-updates", "Stand-up canvas"), resolve via slack_search_channels / slack_search_public, echo the resolved name, write the ID |
Then ask only the genuinely personal choices: schedule, which sources/sinks to enable, absence patterns + optional company-holiday calendar, behavior knobs (review_mode, notify_on_post, min-content). Write ~/.config/standup-ghost/config.json from config.example.json and echo the finished config back as a table (names, not raw IDs).
2 — Doctor pass + flavor resolution
Run the doctor (below) inline. Critically: PROBE which connector flavor exists per card (tools-local vs tools-claudeai candidates) and write the winner into config.flavors.<connector>. Zero live sources or zero live sinks ⇒ STOP with remediation; do not schedule.
3 — Dry-run + destination confirmation
/standup-ghost:standup dry-run with real data. Show the composed standup AND each resolved destination by NAME (channel name, canvas title — not raw IDs). User confirms. Rejection ⇒ back to step 1 (state stays configured; doctor reports "setup incomplete").
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.
- 2d ago First seen · 49 lines · 66 tokens per session scan A adbeb7b9f1be
setup is a skill published in the GitHub repository jerry7991/standup-ghost (2 stars, last pushed 1mo ago), licensed MIT. It adds 66 tokens to every session and 1,199 once invoked, about $0.0003 per session on Opus 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.
Other skills, from other repositories
model-compatibility
Model family compatibility matrix covering loaders, resolutions, samplers, CFG, VAE, ControlNet, and LoRA compatibility for SD 1.5, SDXL, Flux, SD3, and video models.
comfyui-node-registry
Authoring & publishing ComfyUI custom nodes to the Comfy Registry, covering node structure, pyproject.toml spec, comfy-cli publishing, and CI.
flux-txt2img
Build Flux txt2img workflows with Flux.1 Dev (SRPO), Flux 2 Klein 9B, Turbo LoRAs, FluxGuidance, and DualCLIPLoader patterns.
civitai
Discover Civitai models with the BUILT-IN downloadmodel action:"searchcivitai" and install/generate them locally. Find a checkpoint/LoRA/embedding on Civitai, download it into ComfyUI, and use its trigger words. Optionally pair the official Civitai MCP for community features (images browsing, posting, collections).
chief-strategy-officer
Owns where the business plays and how it wins over a multi-year horizon — portfolio choices, corporate development, strategic partnerships, and planning under uncertainty. Use this for a decision about which markets or businesses to be in, whether to build, buy, or partner, how to allocate capital across business…
performance-analysis
Measurement approaches, profiling patterns, bottleneck identification, and optimization guidance. Use when diagnosing performance issues, establishing baselines, identifying bottlenecks, or planning for scale. Always measure before optimizing.