Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ibm-self-serve-assets/building-blocksnpx agentmods add skills/ibm-self-serve-assets/building-blocks/sdd-pipeline-builderWrote 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/ibm-self-serve-assets/building-blocks/sdd-pipeline-builder)<a href="https://agentmods.dev/skills/ibm-self-serve-assets/building-blocks/sdd-pipeline-builder"><img src="https://agentmods.dev/badge/skills/ibm-self-serve-assets/building-blocks/sdd-pipeline-builder/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/ibm-self-serve-assets/building-blocks/sdd-pipeline-builder"><img src="https://agentmods.dev/badge/skills/ibm-self-serve-assets/building-blocks/sdd-pipeline-builder.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.00052 | $0.04183 |
| Opus 5 | $0.00026 | $0.02091 |
| Sonnet 5 | $0.00010 | $0.00837 |
| Haiku 4.5 | $0.00005 | $0.00418 |
Grade C, and why
sdd-pipeline-builder scanned grade C with 2 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 11d 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.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf $BASE/sdd/{slug}_service/ Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
Fetch the issue using this exact `curl` command (the PAT is read from the `.env` file): How it starts
The opening of the file, as written. The whole thing — 430 lines — stays where its author put it; the contents beside it link to each section on GitHub.
SDD Pipeline Builder
Full workflow reference: docs/SDD_FINAL_WORKFLOW.md
Pipeline standards reference: .bob/skills/pipeline-standards/SKILL.md
On activation — also activate the pipeline-standards skill immediately:
use_skill("pipeline-standards")
Working directory — restrict all file reads/writes/searches here unless a step names another path:
backend/insights-engine-api/app/src/services/fight_insight_services/
Step 0 — Determine specification source
Before parsing anything, identify how the spec was provided:
If the user gave a GitHub issue NUMBER (e.g. "issue #42", "from GitHub issue #7"):
Fetch the issue using this exact curl command (the PAT is read from the .env file):
curl -s \
-H "Authorization: token $(grep '^GITHUB_PAT=' .env | cut -d'=' -f2)" \
-H "Accept: application/vnd.github.v3+json" \
"$(grep '^GITHUB_API_URL=' .env | cut -d'=' -f2)/repos/ibm-build-lab/ufc-insight-engine/issues/{NUMBER}"
Do NOT attempt gh CLI, do NOT use .bob/mcp.json (it no longer exists), do NOT ask the user for credentials.
The token is always in .env → GITHUB_PAT. The API base URL is in .env → GITHUB_API_URL.
Parse all 10 sections from the body field of the JSON response.
If the user pasted the issue content directly:
- Parse all 10 sections inline from the pasted text
Phase 1 — Spec Generation
Step 1 — Get the specification
Accept one of:
- A GitHub issue number — fetch using
curlas described in Step 0 above - The full GitHub issue text pasted by the user directly
The issue must follow the 10-section template in docs/SDD_FINAL_WORKFLOW.md §Step 1. Parse every section. Note any gaps — they become clarifying questions in Step 2.
Step 2 — Ask clarifying questions
Use ask_followup_question for every unclear or missing piece. Do NOT proceed until all are answered. Cover at minimum:
| Item | Default if not specified |
|---|---|
Insight type name (appears in InsightType enum) |
— required |
Pipeline slug (snake_case → {slug}_service.py) |
— required |
| Stat thresholds and columns (if stat-based) | none |
| Which prestige ranks apply (1–7) | all 7 |
| Active-fighter filtering per group | no |
| Scoring: base score, prestige penalty, threshold penalty | 100, 5, 3 |
| At least one heading example sentence | — required |
| Edge cases (min fights, tie handling, etc.) | MIN_FIGHTS=5 |
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.
- 11d ago First seen · 430 lines · 52 tokens per session scan C cf4775496741
sdd-pipeline-builder is a skill published in the GitHub repository ibm-self-serve-assets/building-blocks (24 stars, last pushed 2d ago), licensed Apache-2.0. It adds 52 tokens to every session and 4,183 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it C with 2 findings (recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
sync-new-data-type
Adds scaffolding for a new Sync data type in Chromium across protocol buffers, DataType definitions, feature flags, controller builders, unit tests, and metrics.
generate-testability-wrappers
DO NOT USE when the target already consumes an injected interface or built-in abstraction such as IFileSystem or TimeProvider, even if the request says "generate a wrapper"; no new wrapper is needed. Use only when C# source calls an ambient/static dependency and no injectable seam exists: first-time TimeProvider…
convex-test
Generate convex-test tests for the app's Convex functions.
platform-apex-test-generate
Generate and validate Apex test classes with TestDataFactory patterns, bulk testing (251+ records), mocking strategies, assertion best practices, and disciplined test-fix loops. Use this skill when creating new Apex test classes, improving test coverage, debugging and fixing failing Apex tests, running test execution…
platform-apex-test-run
Apex test execution, coverage analysis, and test-fix loops with 120-point scoring. Use when the user needs to run Apex tests, check code coverage, fix failing tests, or work with Test.cls / Test.cls files. TRIGGER when: user runs Apex tests, checks code coverage, fixes failing tests, or touches Test.cls / Test.cls…
backend/testing-guide
A guide for writing backend tests: small unit tests, tests that check connected parts such as an API and database, and end-to-end tests that follow a complete user flow.