Skip to main content
Glama

proj_generate_fab_package

Generates a fabrication package from an OutJob—Gerbers, NC drill, IPC-356, pick-and-place, assembly and BOM—and returns a manifest of produced files. Optionally exports STEP and DXF.

Instructions

Generate a fabrication package from an OutJob (Gerbers, NC drill, IPC-356, pick-and-place, assembly, BOM) and report every file produced.

Altium has no per-format export process for Gerber / NC-drill / IPC-356 / P&P: those exist only as OutJob output containers. This runs every container in the project's OutJob, scans each container's output directory, and returns a consolidated manifest. Optionally also exports a STEP 3D model and a DXF (which are separate PCB export processes, not OutJob containers).

Prerequisite: the project must have an OutJob whose fab containers are configured and enabled: the script cannot enable outputs that are off in the OutJob editor.

Args: outjob_path: path to the .OutJob; omit to use the first one in the focused project. include_step: also export a STEP 3D model of the active PCB. include_dxf: also export a DXF of the active PCB. fresh_window_seconds: files modified within this window before a container ran still count as newly produced.

Returns: {"ok", "outjob_path", "containers_run", "results" (per-container with output_dir + files), "extras" (step/dxf results), "all_files" (flat list of newly-produced file paths)}.

Input Schema

NameRequiredDescriptionDefault
include_dxfNo
outjob_pathNo
include_stepNo
fresh_window_secondsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: it discloses that it runs every container in the OutJob, scans each container's output directory, and returns a consolidated manifest, and it explains the non-obvious fresh_window_seconds heuristic (files modified within that window before a container ran still count as newly produced). It does not say whether existing output files are overwritten, how long a full run takes, or that STEP/DXF need an active PCB document, leaving some side-effect detail unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and outputs, then mechanism, then prerequisite, then Args — a clean structure with no filler prose. The only waste is the Returns block, which duplicates information already carried by the output schema; that section is redundant per the output-schema-present rule.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An agent has everything needed to decide and call: what is produced, the OutJob prerequisite and its failure mode, the meaning of all four args, and optional STEP/DXF extras. Return shape is backed by an output schema, so the extra Returns text is harmless rather than necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: all four parameters are explained in an Args block, including the default behavior for outjob_path ('omit to use the first one in the focused project') and the precise semantics of fresh_window_seconds, which is not inferable from the name or type. Only minor gap is that no path format example is given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Generate a fabrication package from an OutJob') and enumerates exactly what the package contains (Gerbers, NC drill, IPC-356, P&P, assembly, BOM) plus the consolidated manifest return. The second paragraph distinguishes it from the export-style siblings (proj_export_step / proj_export_dxf) by explaining that Gerber/NC-drill/IPC-356/P&P have no per-format export process and exist only as OutJob containers, so an agent can tell why this tool exists alongside proj_run_outjob.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear prerequisite ('the project must have an OutJob whose fab containers are configured and enabled') and an explicit limitation ('the script cannot enable outputs that are off in the OutJob editor'), which tells the agent when the call will fail. It also frames STEP/DXF as optional extras that are separate PCB export processes, hinting at the proj_export_step/proj_export_dxf alternative without naming it or stating when to prefer the standalone exports.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools