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 monotykamary/pi-fabric --skill fabric-workflowgit clone --depth 1 https://github.com/monotykamary/pi-fabricWrote 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/monotykamary/pi-fabric/fabric-workflow)<a href="https://agentmods.dev/skills/monotykamary/pi-fabric/fabric-workflow"><img src="https://agentmods.dev/badge/skills/monotykamary/pi-fabric/fabric-workflow/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/monotykamary/pi-fabric/fabric-workflow"><img src="https://agentmods.dev/badge/skills/monotykamary/pi-fabric/fabric-workflow.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00044 | $0.00923 |
| Opus 5 | $0.00022 | $0.00462 |
| Sonnet 5 | $0.00009 | $0.00185 |
| Haiku 4.5 | $0.00004 | $0.00092 |
Grade A, and why
fabric-workflow 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 3d 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.
What it actually says
Fabric Dynamic Workflow — Python
Use one Python fabric_exec with top-level payloads.task. Keep phases in code and label the outer display and every agent. Python uses host agents.run plus bounded asyncio.gather, not guest workflow/callback helpers. Child structured output is in the native result dictionary's value; a returned failed status is not success.
import asyncio
import json
async def ask(task, name, options=None):
request = {"task": task, "name": name, "tools": ["read", "grep", "find", "ls"]}
if options:
request.update(options)
result = await agents.run(request)
if result["status"] != "completed":
raise RuntimeError(result.get("error") or result["status"])
return result["value"] if result.get("value") is not None else result["text"]
inventory = await ask("Discover at most 32 bounded work items for this objective:\n" + π.task, "inventory", {
"schema": {"type": "object", "properties": {"items": {"type": "array", "maxItems": 32, "items": {"type": "string"}}}, "required": ["items"], "additionalProperties": False}
})
items = []
for item in inventory["items"]:
item = item.strip()
if item and item not in items:
items.append(item)
if not items:
return {"status": "success", "coverage": {"requested": 0, "completed": 0}, "failures": [], "result": "No bounded work items were found."}
async def analyze(item):
try:
finding = await ask("Analyze this bounded item with evidence: " + item + "\nObjective:\n" + π.task, ("analyze " + item)[:50])
return {"item": item, "status": "completed", "finding": finding}
except Exception as error:
return {"item": item, "status": "failed", "error": str(error)}
outcomes = []
for offset in range(0, len(items), 8):
batch = items[offset:offset + 8]
settled = await asyncio.gather(*[analyze(item) for item in batch])
outcomes.extend(settled)
if all(item["status"] == "failed" for item in settled):
outcomes.extend([{"item": item, "status": "not_started", "error": "not started after an all-failed batch"} for item in items[offset + len(batch):]])
break
completed = [item for item in outcomes if item["status"] == "completed"]
failures = [item for item in outcomes if item["status"] != "completed"]
coverage = {"requested": len(items), "completed": len(completed)}
if not completed:
return {"status": "failed", "coverage": coverage, "failures": failures, "result": None}
try:
result = await ask("Adversarially verify only these completed findings; drop unsupported claims and do not infer anything about failed items.\nObjective:\n" + π.task + "\nFindings:\n" + json.dumps(completed), "verify synthesis")
return {"status": "partial" if failures else "success", "coverage": coverage, "failures": failures, "result": result}
except Exception as error:
return {"status": "partial", "coverage": coverage, "failures": failures, "result": None, "verificationError": str(error), "fallback": completed}
Adapt tools to the request. Partition path ownership or use worktree=True before concurrent editing. Keep intermediate data guest-local; successful verification returns compact output. partial is usable: never automatically rerun the whole workflow or successful items. Retry only missing coverage. Stop new work after an all-failed batch. Reserve agent capacity for discovery and verification; usage/budget checks are observational under concurrency. Python has no top-level tokenBudget callback-helper budget. Use agents.spawn and agents.steer only when a long-running worker benefits from redirection between turns.
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.
- 3d ago Changed · -71 lines ab50c35dfb7c
- 11d ago First seen · 134 lines · 44 tokens per session scan A 2bdf676879e2
fabric-workflow is a skill published in the GitHub repository monotykamary/pi-fabric (210 stars, last pushed yesterday), licensed MIT. It adds 44 tokens to every session and 923 once invoked, about $0.0002 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-30.
Other skills, from other repositories
research-crewai
Multi-agent orchestration framework for autonomous AI collaboration. Use when building teams of specialized agents working together on complex tasks, when you need role-based agent collaboration wi...
agent-framework-py-release
Use when cutting a Python release for the microsoft/agent-framework monorepo. Triggers on "bump py versions", "cut a python release", "prepare release PR for python", "release py packages", "bump python to X.Y.Z", or similar requests to bump Python package versions and prepare a release PR. Handles all four lifecycle…
crewai-multi-agent
Multi-agent orchestration framework for autonomous AI collaboration. Use when building teams of specialized agents working together on complex tasks, when you need role-based agent collaboration with memory, or for production workflows requiring sequential/hierarchical execution. Built without LangChain dependencies…
python-package-management
Guide for managing packages in the Agent Framework Python monorepo, including creating new connector packages, versioning, and the lazy-loading pattern. Use this when adding, modifying, or releasing packages.
foundry-hosted-agent-validation
Step-by-step process for validating a Python Foundry hosted agent sample (under python/samples/04-hosting/foundry-hosted-agents/) end to end — running it locally (native runtime and azd ai agent run) and after deploying it to an Azure AI Foundry project with azd. Use this when asked to validate a hosted agent sample.
verify-samples-tool
How to use the verify-samples tool to run, verify, and manage sample definitions in the Agent Framework repository. Use this when adding, updating, or running sample verification.