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 autonomous-ai/autonomous-workshop --skill print-detailsgit clone --depth 1 https://github.com/autonomous-ai/autonomous-workshopWrote 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/autonomous-ai/autonomous-workshop/print-details)<a href="https://agentmods.dev/skills/autonomous-ai/autonomous-workshop/print-details"><img src="https://agentmods.dev/badge/skills/autonomous-ai/autonomous-workshop/print-details/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/autonomous-ai/autonomous-workshop/print-details"><img src="https://agentmods.dev/badge/skills/autonomous-ai/autonomous-workshop/print-details.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.00113 | $0.02964 |
| Opus 5.5 | $0.00045 | $0.01186 |
| Sonnet 5.5 | $0.00023 | $0.00593 |
| Haiku 4.5 | $0.00011 | $0.00296 |
Grade A, and why
print-details 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 14d 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 — 193 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Printable detail
Hand-modelled detail was the main source of print-gate failures in Spark
Make: in one run 64 of 111 component rounds failed check_thickness or
check_overhang, on thin tapers at the edges of decorative cones and bands,
overhangs under discs and rims, and broken solids from overlapping trims.
Each feature here is built so it cannot make those: it refuses a size below
the wiki's limits, grows a root into the host, gives every face that would
look down a 52 deg slope, ends in a step or a chamfer, and returns one valid
solid or raises PrintLimitError naming the limit and its wiki page.
Install (Workshop Manager)
The library must live inside the CAD project, so the sealed project still builds when the host copies it elsewhere. Copy it once, with the shared files, before spawning any Component Worker:
"$WORKSHOP_PYTHON" .agents/skills/print-details/scripts/print_details.py --install <cad-project>
It writes <cad-project>/features/print_details.py, byte for byte, and
refuses to overwrite a copy with other bytes. It is a standard element, like
a stdpart gear: never edit the copy. Tell each worker it is there.
Use (Component Worker)
from build123d import Box, Pos
from features import print_details
pd = print_details.Details(nozzle=0.4) # the run's nozzle; up=(0, 0, 1)
def gen_step():
body = Pos(0, 0, 10) * Box(30, 30, 20)
body = pd.rivets(body, pd.along((-10, -15, 18), (10, -15, 18), 6), d=2.4, h=0.8)
body = pd.panel(body, (0, -15, 10), width=8, height=8, depth=0.8, arch="lancet")
body = pd.band(body, pd.segment((-14, -15, 3), (14, -15, 3)), width=2.0, height=1.0)
return body
Each call takes the host solid and returns the new one. A point is on the
host's surface; the feature stands on the nearest face along its outward
normal. up is the print direction in your generator's coordinates: +Z when
gen_step() returns the part in its print stance, as it should.
| Call | Makes | Defaults (mm) |
|---|---|---|
boss(host, at, d, h) |
a round boss with a flat top | 4, 1.5 |
rivet(host, at, d, h) / rivets(...) |
a boss with a chamfered top; at may be a list |
3, 1 |
dome(host, at, d, h) |
a low spherical cap | 8, 1.2 |
band(host, path, width, height) |
a raised band, chamfered on top | 2, 1 |
rim(host, axis, radius, width, height) |
a band standing on the face across axis |
2, 1 |
pipe(host, path, d) |
a half-round pipe rib | 1.5 |
panel(host, at, width, height, depth, arch) |
an inset panel, flat or lancet topped |
8, 12, 0.8 |
window(host, at, width, height, depth, arch) |
a window through a wall depth thick, lancet, gable or flat |
4, 10, 2 |
slit(host, at, width, length, depth, through) / slits(...) |
a grille slit running uphill; at may be a list |
1.2, 8, 1 |
bore(host, at, d, depth, through) |
a round bore with a pointed (teardrop) roof, through a wall, a vault or a pointed roof | 3, 2 |
blunt_tip(host, tip, toward, reach, back) |
a point, chisel, keel or ridge cut back to a flat land one print minimum across | 6, 12 |
rib_end(rib, end, toward, reach) |
a rib you built cut square at end (ramped if it would look down), before you fuse it |
whole rib |
What ships with it
1 file 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.
- 14d ago First seen · 193 lines · 113 tokens per session scan A 56a7bcd21c9d
print-details is a skill published in the GitHub repository autonomous-ai/autonomous-workshop (21 stars, last pushed today), licensed Apache-2.0. It adds 113 tokens to every session and 2,964 once invoked, about $0.0005 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-10-03.
Other skills, from other repositories
schema-exploration
Lists tables, describes columns and data types, identifies foreign key relationships, and maps entity relationships in a database. Use when the user asks about database schema, table structure, column types, what tables exist, ERD, foreign keys, or how entities relate.
mem0-oss-to-platform
Plan, then execute, a migration of a project from the mem0 open-source / self-hosted SDK (local Memory class) to the mem0 Platform / hosted SDK (MemoryClient). TRIGGER when: the developer wants to move, switch, or migrate mem0 off OSS/self-hosted to the hosted API, e.g. "migrate my mem0 setup to the platform", "switch…
analyze-market
Perform a market analysis for a product category or segment. Trigger on: market analysis, market size, TAM SAM SOM, market opportunity, industry analysis.
haiku
When writing a haiku for this bot, follow these conventions.
rocm-kernels
Provides guidance for writing and benchmarking optimized Triton kernels for AMD GPUs (MI355X, R9700) on ROCm, targeting HuggingFace diffusers (LTX-Video, SD3, FLUX) and transformers. Core kernels: RMSNorm, RoPE 3D, GEGLU, AdaLN. Includes XCD swizzle, autotune, diffusers integration patterns, and LTX-Video pipeline…
holoscan-install-wheel
Install Holoscan SDK Python wheel via pip into a venv. Use for Python installs; not for native C++/apt or Conda installs.