- Home
- Skills
- Workflow Automation
- Python 3D Printing Automation Architect
More screenshots
Works with the AI tools you already use
Python 3D Printing Automation Architect
Do not automate uncertainty blindly.
$9.99
Python 3D Printing Automation Architect
Example session with this skill installed
PROJECT
Name
NovaPrint Farm Automation
Objective
Automate model intake, slicing, queue scheduling, printer assignment, monitoring, material tracking, and production logging.
Environment
Small commercial print farm
Printer Count
8
Primary Process
FDM / FFF
PRINTERS
Printer P1
Firmware
Klipper
Integration
Moonraker
Build Volume
250 × 250 × 250 mm
Nozzle
0.4 mm
Materials
PLA
PETG
Enclosure
No
Printer P2
Firmware
Klipper
Integration
Moonraker
Build Volume
250 × 250 × 250 mm
Nozzle
0.4 mm
Materials
PLA
PETG
ABS
ASA
Enclosure
Yes
Printer P3
Firmware
Klipper
Integration
Moonraker
Build Volume
300 × 300 × 300 mm
Nozzle
0.6 mm
Materials
PLA
PETG
Enclosure
No
Printers P4–P8:
Similar mixed configurations.
SLICER
Primary
PrusaSlicer
Automation
Command-line slicing
Production Slicer Version
Must be pinned and logged.
Profiles
Printer Profiles
Material Profiles
Print Profiles
Required Profile States
DRAFT
TESTING
APPROVED
DEPRECATED
Only APPROVED profiles may be used for customer jobs.
MODEL INPUT
Formats
STL
3MF
Source
/incoming/
Each file belongs to a production job.
Need
File stability detection
Hashing
Duplicate detection
Geometry validation
Bounding-box validation
Build-volume check
Do not automatically scale models when units are ambiguous.
MODEL REPAIR
Allowed
Yes
Rule
Never overwrite the original.
Create
*_repaired.stl
QUEUE
Need persistent queue
Yes
Database
PostgreSQL
Priority Levels
HIGH
NORMAL
LOW
Need Due Dates
Yes
Need Printer Capability Matching
Yes
Need Multi-Worker Safe Scheduling
Yes
MATERIAL MANAGEMENT
Need
Spool Inventory
Remaining Weight
Material
Color
Printer Assignment
Material Reservation
Rule
Do not start a job if estimated filament plus 10% reserve exceeds available spool material.
COST ESTIMATION
Need
Material Cost
Estimated Print Time
Machine Time Cost
Electricity
Optional
AUTOMATION LEVEL
Automatically
Detect New Model
Preflight
Slice
Validate G-code
Estimate Material
Select Eligible Printer
Place Job in Queue
Operator Approval Required
First print of every new model revision
After approval
Automatic physical submission allowed.
G-CODE RULES
Validate
Printer Profile
Build Bounds
Maximum Z
Nozzle Temperature
Bed Temperature
Nozzle Diameter
Required Machine Macros
Estimated Material
Estimated Time
If G-code contains unknown critical macros:
BLOCK
PRINTER STATE
Normalized States
OFFLINE
IDLE
PREPARING
PRINTING
PAUSED
COMPLETE
ERROR
MAINTENANCE
UNKNOWN
Rule
UNKNOWN must never be treated as IDLE.
SUBMISSION RELIABILITY
Critical requirement
If Moonraker receives a print-start command but the Python service loses the response:
Do not automatically retry.
Mark
SUBMISSION_UNKNOWN
Then query the printer and reconcile the active job.
MONITORING
Track
Printer State
File
Progress
Elapsed Time
Remaining Time
Nozzle Temperature
Bed Temperature
Webcams
Yes
Camera Behavior
Snapshot at Start
Snapshot Every 10 Minutes
Snapshot on Failure
Snapshot on Completion
VISION
Future feature
Spaghetti detection
Initial policy
MEDIUM confidence
Alert only
HIGH confidence
Alert operator and request review
Do not cancel automatically.
MAINTENANCE
Track
Print Hours
Nozzle Hours
Print Count
Lubrication
Belt Inspection
States
OK
DUE_SOON
DUE
BLOCKED
BLOCKED printers cannot receive jobs.
NOTIFICATIONS
Need
Print Started
Print Complete
Print Failed
Printer Offline
Material Low
Maintenance Due
Queue Blocked
AUDIT
For every job record
Job ID
Part ID
Revision
Source Hash
G-code Hash
Slicer Version
Printer Profile
Material Profile
Print Profile
Printer
Spool
Start Time
Finish Time
Status
Operator
QA Result
SAFETY
Need
Global Scheduler Pause
Per-Printer Disable
No Automatic Cancellation on Communication Loss
No Bypass of Firmware Safety Controls
Physical emergency stop remains independent.
TESTING
Need tests for
Malformed Model
File Still Uploading
Out-of-Bounds Model
Unknown Units
Wrong Nozzle
Wrong Material
High Temperature
Slicer Failure
Slicer Timeout
Printer Offline
Unknown Printer State
Duplicate Job
Submission Timeout
Worker Restart
Spool Shortage
Maintenance Block
G-code Out of Bounds
REQUEST
Design the complete production-grade Python architecture.
Include
Project Structure
Domain Models
Database
Preflight
Slicer Wrapper
Profile Versioning
G-code Validator
Printer Adapter
Moonraker Boundary
Printer Matcher
Queue
Scheduler
Concurrency Control
Material Reservation
Cost Estimator
Monitoring
Camera Workflow
Failure Handling
Retry Policy
Reconciliation
Maintenance
Notifications
Audit Logs
Tests
Deployment Strategy
Safety Controls
Do not invent current Moonraker endpoint details.
Clearly identify any API behavior that requires verification against the installed Moonraker version.
- Read your context and instructions
- Compiled the python 3d printing
- Generated the document
=== PYTHON 3D PRINTING AUTOMATION ARCHITECTURE ===
Project
NovaPrint Farm Automation
Environment
8-Printer Commercial FDM Farm
Primary Runtime
Python
Database
PostgreSQL
Slicer
PrusaSlicer
Printer Integration
Klipper / Moonraker
Physical Automation
Operator-approved automatic submission
=== 1. RECOMMENDED SYSTEM ARCHITECTURE ===
incoming/
|
v
File Intake Worker
|
v
Model Preflight
|
v
Model Registry
|
v
Slicer Worker
|
v
G-code Validator
|
v
Cost + Material Estimator
|
v
Printer Capability Matcher
|
v
Operator Approval Gate
|
v
Persistent Job Queue
|
v
Scheduler
|
v
Moonraker Printer Adapter
|
v
Physical Printer
|
v
Monitoring + Reconciliation
|
v
QA + Audit Archive
=== 2. CORE DOMAIN MODELS ===
PrintJob
Fields
job_id
part_id
revision
source_model_id
material
color
quantity
priority
due_date
status
assigned_printer_id
slice_id
approval_id
created_at
updated_at
ModelArtifact
Fields
model_id
job_id
source_path
source_hash
validated_path
validated_hash
file_type
bounds_x
bounds_y
bounds_z
volume
validation_status
SliceArtifact
Fields
slice_id
job_id
gcode_path
gcode_hash
slicer
slicer_version
printer_profile_version
material_profile_version
print_profile_version
estimated_time
estimated_filament_g
validation_status
Printer
Fields
printer_id
name
firmware
adapter_type
build_x
build_y
build_z
nozzle
enclosed
status
maintenance_state
last_seen
Spool
Fields
spool_id
material
color
remaining_weight_g
reserved_weight_g
printer_id
status
Approval
Fields
approval_id
job_id
gcode_hash
approved_by
approved_at
status
=== 3. MODEL INTAKE ===
Monitor
/incoming/
Do not process the file immediately when it first appears.
Required state
FILE_DISCOVERED
→ FILE_STABLE
→ HASHED
→ PREFLIGHT
File Stability Rule
A file is eligible only after size and modification timestamp remain stable for the configured interval.
Alternative
Uploader writes
filename.stl.partial
then atomically renames to:
filename.stl
Failure
File remains unstable.
Result
P3D-027 FILE_INCOMPLETE
=== 4. MODEL IDENTITY ===
Calculate
source_hash
Use it for
Duplicate Detection
Traceability
Slice Cache
Revision Audit
Duplicate key should not rely on filename alone.
=== 5. STL UNIT POLICY ===
STL units are not assumed automatically.
If geometry dimensions are outside expected production ranges:
Result
P3D-003 UNIT_AMBIGUITY
Action
REQUIRES OPERATOR REVIEW
Do not automatically multiply or divide dimensions.
=== 6. MODEL PREFLIGHT ===
Validate
Readable Geometry
Non-Empty Mesh
Finite Coordinates
Bounding Box
Mesh Defects
Disconnected Shells
Degenerate Faces
Build-Volume Feasibility
If repair is required
Create
*_repaired.stl
Preserve original.
=== 7. SLICER PROFILE ARCHITECTURE ===
Production profiles use immutable version IDs.
Example
Printer
klipper_250_04_v8
Material
pla_generic_v6
Print
quality_020_v11
Lifecycle
DRAFT
→ TESTING
→ APPROVED
→ DEPRECATED
Production Rule
Only APPROVED profiles may generate customer production G-code.
=== 8. SLICER INVOCATION ===
Execute PrusaSlicer as an isolated external process.
Requirements
Structured Argument List
No Unsafe Shell Concatenation
Timeout
Exit-Code Validation
Standard Output Capture
Error Capture
Output-File Verification
Slicer CLI flags
REQUIRES VERIFICATION AGAINST INSTALLED PRUSASLICER VERSION
=== 9. SLICER TIMEOUT ===
Configured
max_slice_time
If exceeded
Terminate slicer process safely.
Result
P3D-009 SLICER_TIMEOUT
=== 10. SLICE CACHE ===
Cache key
Source Hash
+
Slicer Version
+
Printer Profile Version
+
Material Profile Version
+
Print Profile Version
+
Override Hash
Reuse only when every component matches.
=== 11. G-CODE VALIDATION ===
Before queue eligibility verify
G-code exists.
G-code is non-empty.
Expected slicer metadata exists.
Expected printer profile matches.
Maximum X fits.
Maximum Y fits.
Maximum Z fits.
Nozzle diameter matches.
Nozzle temperature is permitted.
Bed temperature is permitted.
Required macros are recognized.
Estimated material exists.
Estimated time exists.
Unknown critical macro
BLOCK
Reason
GCODE_UNKNOWN_CRITICAL_MACRO
=== 12. TEMPERATURE POLICY ===
For every printer store
max_nozzle_temp
max_bed_temp
For every material profile store
approved_nozzle_range
approved_bed_range
Requested temperature must satisfy both
Machine Limit
Material Profile Policy
Never bypass Klipper or printer firmware thermal safeguards.
=== 13. PRINTER CAPABILITY MATCHING ===
Job Requirements
Material
Nozzle
Build Volume
Enclosure
Validated Profile
P1:
PLA / PETG
0.4 mm
Open
ABS job
INELIGIBLE
P2:
PLA / PETG / ABS / ASA
0.4 mm
Enclosed
ABS job
ELIGIBLE
P3:
PLA / PETG
0.6 mm
0.4 mm profile:
INELIGIBLE
=== 14. PRINTER STATE MODEL ===
OFFLINE
IDLE
PREPARING
PRINTING
PAUSED
COMPLETE
ERROR
MAINTENANCE
UNKNOWN
Hard Rule
UNKNOWN != IDLE
UNKNOWN printers are removed from scheduling eligibility.
=== 15. MATERIAL RESERVATION ===
Example
Estimated Filament
200 g
Safety Margin
10%
Reservation Required
220 g
Spool Remaining
205 g
Result
P3D-017 MATERIAL_UNAVAILABLE
Do not schedule the physical job.
=== 16. RESERVATION TRANSACTION ===
When a job is assigned
Lock spool record.
Verify availability.
Reserve material.
Commit reservation.
Then reserve printer.
This prevents concurrent workers from oversubscribing the same spool.
=== 17. SCHEDULER ===
Candidate Filter
Printer IDLE
+
Maintenance Not BLOCKED
+
Correct Nozzle
+
Correct Material
+
Build Volume Fits
+
Approved Profile Exists
+
Material Reservation Available
Ranking
Priority
→ Due Date
→ Earliest Finish
→ Material Changeover Cost
→ Maintenance Balance
Compatibility always overrides utilization.
=== 18. CONCURRENCY CONTROL ===
Multiple scheduler workers must not assign the same printer.
Use PostgreSQL transactional locking or equivalent coordination.
Printer assignment must be atomic.
=== 19. JOB RESERVATION ===
Create
reservation_id
job_id
printer_id
expires_at
status
If reservation expires before submission
Reconcile first.
Then either
Renew
or
Release
=== 20. OPERATOR APPROVAL ===
Required
First physical print of every model revision.
Approval binds to
job_id
gcode_hash
profile versions
If G-code changes
APPROVAL INVALIDATED
=== 21. MOONRAKER ADAPTER ===
Normalized operations
health_check
get_state
upload_file
start_print
pause_print
cancel_print
get_job
get_temperatures
get_progress
list_files
get_capabilities
Current exact Moonraker API endpoints and payload semantics:
REQUIRES VERIFICATION AGAINST INSTALLED VERSION
=== 22. PHYSICAL SUBMISSION ===
Before start
Printer
IDLE
Maintenance
Allowed
Material
Confirmed
Reservation
Active
Approval
Valid
G-code
Validated
Kill Switch
Inactive
Then
SUBMITTING
=== 23. SUBMISSION TIMEOUT ===
Scenario
Start request transmitted.
Printer starts.
Python loses response.
Do NOT
Call start again.
Set
SUBMISSION_UNKNOWN
Then
Query Printer State
Query Current Job
Compare Active Filename
Compare Job Metadata
Reconcile
If active job matches
Adopt
PRINTING
If printer state cannot be determined
Keep
SUBMISSION_UNKNOWN
Block new work.
=== 24. MONITORING ===
Monitor
State
Progress
Elapsed Time
Remaining Time
Current File
Nozzle Temperature
Bed Temperature
Last Seen
Camera
Start Snapshot
10-Minute Snapshot
Failure Snapshot
Completion Snapshot
=== 25. COMPUTER-VISION POLICY ===
MEDIUM Confidence Failure
ALERT ONLY
HIGH Confidence Failure
ALERT OPERATOR
REQUEST REVIEW
Automatic Cancel
DISABLED
This keeps probabilistic vision separate from deterministic machine control.
=== 26. NETWORK LOSS ===
If printer connection disappears during PRINTING:
Do not mark job failed automatically.
Set
PRINTER_STATE_UNKNOWN
Continue recovery attempts with bounded retry.
On reconnect
Query active job.
Reconcile.
Resume monitoring.
=== 27. WORKER RESTART RECOVERY ===
On application startup
READY_FOR_PHYSICAL_PRINT = FALSE
Load
SUBMITTING
SUBMISSION_UNKNOWN
PRINTING
PAUSED
For each
Query associated printer.
Match active job.
Restore state.
Only after all critical reconciliation succeeds:
READY_FOR_PHYSICAL_PRINT = TRUE
=== 28. DATABASE ===
PostgreSQL recommended because
Multiple Printers
Multiple Workers
Concurrent Scheduling
Material Reservations
Durable Queue
Core tables
jobs
models
slices
printers
printer_capabilities
materials
spools
reservations
approvals
maintenance
job_events
notifications
=== 29. AUDIT EVENT STREAM ===
Append-only events
JOB_CREATED
MODEL_VALIDATED
SLICE_STARTED
SLICE_COMPLETED
GCODE_VALIDATED
JOB_APPROVED
JOB_QUEUED
PRINTER_ASSIGNED
SUBMISSION_STARTED
PRINT_STARTED
PRINT_PAUSED
PRINT_RESUMED
PRINT_COMPLETED
PRINT_FAILED
QA_PASSED
QA_FAILED
JOB_CANCELLED
=== 30. CORRELATION ID ===
One correlation ID follows
Model
→ Slice
→ Approval
→ Queue
→ Printer
→ QA
=== 31. MAINTENANCE ===
Track
Print Hours
Nozzle Hours
Print Count
Lubrication
Belt Inspection
States
OK
DUE_SOON
DUE
BLOCKED
BLOCKED
Remove printer from scheduler candidate set.
=== 32. GLOBAL SOFTWARE CONTROLS ===
Global Scheduler Pause
Per-Printer Disable
Queue Pause
Behavior
Block New Starts
Keep Monitoring
Preserve Active Print State
Do Not Automatically Cancel Running Prints
Physical Emergency Stop
Independent of automation.
=== 33. NOTIFICATIONS ===
Events
Print Started
Print Complete
Print Failed
Printer Offline
Material Low
Maintenance Due
Queue Blocked
Submission Unknown
Severity
INFO
WARNING
HIGH
CRITICAL
Use deduplication and cooldown to prevent notification storms.
=== 34. ERROR TAXONOMY ===
P3D-001 MODEL_UNREADABLE
P3D-002 MODEL_EMPTY
P3D-003 UNIT_AMBIGUITY
P3D-004 MODEL_OUT_OF_BOUNDS
P3D-005 MESH_INVALID
P3D-006 PROFILE_MISSING
P3D-007 PROFILE_NOT_APPROVED
P3D-008 SLICER_NOT_FOUND
P3D-009 SLICER_TIMEOUT
P3D-010 SLICER_ERROR
P3D-011 GCODE_INVALID
P3D-012 GCODE_OUT_OF_BOUNDS
P3D-013 TEMPERATURE_POLICY
P3D-014 PRINTER_INCOMPATIBLE
P3D-015 PRINTER_OFFLINE
P3D-016 PRINTER_STATE_UNKNOWN
P3D-017 MATERIAL_UNAVAILABLE
P3D-018 NOZZLE_MISMATCH
P3D-019 MAINTENANCE_BLOCK
P3D-020 APPROVAL_REQUIRED
P3D-021 SUBMISSION_UNKNOWN
P3D-022 PRINT_FAILED
P3D-023 PRINTER_API_ERROR
P3D-024 STORAGE_LOW
P3D-025 DUPLICATE_JOB
P3D-026 CONFIG_INVALID
P3D-027 FILE_INCOMPLETE
P3D-028 CAMERA_UNAVAILABLE
P3D-029 QUEUE_CONFLICT
P3D-030 INTERNAL_ERROR
=== 35. TEST PLAN ===
UNIT
Geometry Bounds
Profile Matching
Nozzle Matching
Material Reservation
State Transitions
Cost Calculation
Path Validation
INTEGRATION
PostgreSQL
PrusaSlicer
Moonraker Adapter
Printer State
File Upload
Queue
FAILURE INJECTION
Slicer Timeout
Printer Offline
API Timeout
Database Restart
Worker Restart
Spool Shortage
Lost Submission Response
=== 36. DUPLICATE JOB TEST ===
Submit identical
job_id
model_hash
configuration
twice.
Expected
One logical production job.
Second request
DUPLICATE
No second physical start.
=== 37. UNKNOWN SUBMISSION TEST ===
Simulate
Printer starts job.
Python loses response.
Expected
P3D-021 SUBMISSION_UNKNOWN
Reconciliation finds active print.
Final
PRINTING
No duplicate start.
=== 38. WRONG-NOZZLE TEST ===
Profile
0.4 mm
Printer
0.6 mm
Expected
P3D-018 NOZZLE_MISMATCH
=== 39. HIGH-TEMPERATURE TEST ===
G-code
300°C
Printer approved maximum
285°C
Expected
P3D-013 TEMPERATURE_POLICY
=== 40. MAINTENANCE TEST ===
Printer
BLOCKED
Expected
Never assigned.
=== 41. MATERIAL TEST ===
Required
220 g
Available
205 g
Expected
P3D-017 MATERIAL_UNAVAILABLE
=== 42. WORKER-RESTART TEST ===
Restart during active print.
Expected
No restart of physical job.
Printer state reconciled.
Monitoring restored.
=== 43. DEPLOYMENT PHASES ===
Phase 1:
Read-Only Printer Monitoring
Phase 2:
Automated Model Validation + Slicing
Phase 3:
Automated Queue Recommendations
Phase 4:
Operator-Approved Physical Submission
Phase 5:
Controlled Automatic Submission
=== 44. FINAL ARCHITECTURE RECOMMENDATION ===
Use
Python
+
PostgreSQL
+
Versioned Profiles
+
Safe Slicer Worker
+
G-code Validation
+
Printer Capability Registry
+
Transactional Scheduler
+
Material Reservations
+
Moonraker Adapter
+
Reconciliation
+
Monitoring
+
Audit Events
Highest-priority reliability controls
- UNKNOWN printer state is never treated as IDLE.
- G-code must be validated against the selected machine.
- Production profiles must be versioned and approved.
- Material must be reserved before assignment.
- Printer assignment must be transactional.
- Physical approval must bind to the G-code hash.
- Ambiguous print-start timeouts require reconciliation.
- Worker restart requires physical-state reconciliation.
- Maintenance blocks must be enforced.
- Firmware safety controls must never be bypassed.
FINAL STATUS
ARCHITECTURE READY FOR STAGED IMPLEMENTATION
VERSION-SPECIFIC ITEMS REQUIRING VERIFICATION:
PrusaSlicer CLI Flags
Moonraker Endpoints
Moonraker Authentication
Moonraker Job-State Fields
Printer-Specific Klipper Macros
Installed Firmware Capabilities
python-3d-printing-automation-architect.pdf
PDF · document
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
What you get
About this skill
Python 3D Printing Automation Architect is a premium engineering agent for designing, auditing, and implementing robust Python-based automation around additive-manufacturing and 3D-printing workflows.
It is designed for:
Print-Farm Operators Makers Engineering Teams Prototyping Laboratories Small-Batch Manufacturers Etsy Sellers Service Bureaus Education Labs Hardware Startups Product-Development Teams Automation Consultants Advanced Hobbyists Internal Manufacturing Teams
The agent can automate the complete lifecycle from a digital model to a controlled production job.
Its canonical workflow is:
Model Intake → Validation → Metadata Extraction → Repair / Preflight → Slicer Selection → Profile Resolution → Slicing → G-code Validation → Cost / Time Estimation → Printer Selection → Queue Assignment → Operator Approval → Printer Submission → Print Monitoring → Failure Handling → Completion Verification → Audit Logging → QA → Post-Processing
The agent treats 3D printing as a production system rather than simply:
"Send this file to the printer."
It distinguishes:
Source Model Validated Model Repaired Model Slicer Version Printer Profile Material Profile Print Profile Generated G-code Selected Printer Selected Material Estimated Resources Job Authorization Printer Availability Submission State Physical Print State Completion State QA State
This separation is important because the same source model can produce materially different output depending on:
Printer Nozzle Material Slicer Profile Orientation Support Strategy Temperature Layer Height Firmware Machine Macros
The agent can work with:
STL
3MF
OBJ
AMF
G-code
JSON
YAML
CSV
SQLite Images Printer Profiles Slicer Configuration Files Production Logs
It can design Python workflows for:
Automated File Intake Folder Watching Batch Processing Model Hashing Duplicate Detection Mesh Validation Bounding-Box Analysis Build-Volume Validation Geometry Repair Model Metadata Extraction Automated Slicing G-code Preflight Printer Assignment Queue Scheduling Material Inventory Spool Reservation Cost Calculation Time Estimation Printer API Integration Webcam Monitoring Notifications Failure Recovery Maintenance Tracking Production Traceability
A core principle is:
Automate repetitive work.
Do not automate uncertainty blindly.
Before slicing, the agent can validate:
File Readability Non-Empty Geometry Bounding Box Build-Volume Fit Mesh Manifoldness Inverted Normals Disconnected Shells Degenerate Faces Zero-Area Faces Non-Finite Coordinates Extreme Scale Duplicate Geometry Polygon Count Unit Ambiguity
STL files are handled carefully because STL does not reliably encode units.
If dimensions appear implausible, the agent should not silently assume:
Millimeters Inches 25.4× Conversion
Instead, it should report:
UNIT AMBIGUITY
and require a defined workflow rule or operator confirmation.
Build-volume compatibility is a hard preflight check.
Example:
Model: 230 × 210 × 260 mm
Printer: 220 × 220 × 250 mm
Result:
MODEL OUT OF BOUNDS
The job should not be assigned to that printer unless the model is intentionally reoriented, scaled, or otherwise modified under an authorized process.
The agent can inspect or automate model repair.
Possible workflow:
Original: part.stl
Repaired: part_repaired.stl
The original source should not be overwritten automatically.
Python-side geometry tooling can include approved libraries such as:
trimesh numpy Mesh-Processing Libraries External Mesh Utilities
The agent can design slicer automation around:
PrusaSlicer CuraEngine SuperSlicer-Compatible Workflows OrcaSlicer-Related CLI Workflows Where Supported Other Command-Line Slicers
Exact command-line flags must be verified against the installed slicer version before production deployment.
The slicing architecture separates:
Model Printer Profile Material Profile Print Profile Slicer Version
This makes jobs reproducible.
Example profile architecture:
Printer Profile: voron_24_04mm_v3
Material Profile: pla_generic_v5
Print Profile: quality_020_v7
Profiles should be:
Versioned Traceable Approved Immutable for Production Use
The agent can maintain profile lifecycle states:
DRAFT
TESTING
APPROVED
DEPRECATED
Only APPROVED profiles should normally be used for production jobs.
The agent can generate a complete profile-promotion workflow:
Profile Change → Calibration Print → QA → Approval → Production Promotion
Every production job should record:
Slicer Name Slicer Version Printer Profile Version Material Profile Version Print Profile Version
This protects against silent configuration drift.
The agent can design safe slicer invocation in Python.
External processes should be called using structured argument arrays rather than unsafe string concatenation.
The architecture can use subprocess execution with:
Exit-Code Validation Timeout Captured Output Captured Errors Output-File Verification
Slicer failures can be normalized as:
INPUT_INVALID
PROFILE_MISSING
SLICER_NOT_FOUND
SLICER_TIMEOUT
SLICER_ERROR
OUTPUT_MISSING
GCODE_INVALID
UNSUPPORTED_CONFIGURATION
The agent can design slice caching.
A cache key may include:
Source Model Hash Slicer Version Printer Profile Version Material Profile Version Print Profile Version Override Hash
This means identical validated configurations do not need to be sliced repeatedly.
However, cached G-code should only be reused if:
Model Identity Matches Profile Versions Match Slicer Version Matches Machine Compatibility Matches Authorization Remains Valid
The agent performs G-code preflight before physical submission.
Checks can include:
File Exists File Is Non-Empty Expected Printer Expected Slicer Metadata Build Bounds Maximum X Maximum Y Maximum Z Nozzle Temperature Bed Temperature Layer Height Filament Usage Estimated Print Time Tool Count Extruder Usage Start Sequence End Sequence Unexpected Commands Machine-Specific Macros
The agent treats G-code as machine-specific.
G-code produced for one printer should not automatically be assumed compatible with another.
Differences can include:
Build Volume Firmware Printer Macros Coordinate System Toolhead Geometry Nozzle Diameter Temperature Limits Acceleration Limits Bed Mesh Extruder Count Start / End Procedures
Temperature validation is treated as a machine-safety gate.
If requested nozzle or bed temperature exceeds the approved machine limits:
BLOCK
The automation must never bypass:
Firmware Thermal Runaway Protection Manufacturer Temperature Limits Hardware Safety Controls
The agent can maintain a printer capability model.
Each printer record may contain:
Printer ID Model Firmware API Type Build X Build Y Build Z Extruder Count Nozzle Diameter Approved Materials Maximum Nozzle Temperature Maximum Bed Temperature Enclosure Heated Chamber Camera Maintenance State Connection State
Printer states can be normalized as:
OFFLINE
IDLE
PREPARING
PRINTING
PAUSED
COMPLETE
ERROR
MAINTENANCE
UNKNOWN
A critical rule is:
UNKNOWN IS NOT IDLE
If the automation cannot establish printer state, it should not submit another job.
The agent can build intelligent printer matching.
A print job may require:
Minimum Build Volume Specific Material Specific Nozzle Enclosure Heated Chamber Printer Quality Level Firmware Capability Validated Profile
Only compatible printers should become scheduling candidates.
Example:
Job:
Material:
ABS
Required Nozzle: 0.4 mm
Enclosure: Required
Printer A: Open frame
Result:
NOT ELIGIBLE
Printer B: Enclosed 0.4 mm nozzle Validated ABS profile
Result:
ELIGIBLE
The agent can design print-farm schedulers.
Scheduling inputs may include:
Priority Due Date Estimated Duration Printer Availability Material Color Nozzle Maintenance Status Current Queue Machine Eligibility Operator Constraints
Possible scheduling objectives include:
Earliest Due Date Shortest Completion Time Printer Utilization Material Grouping Color Grouping Reduced Changeovers Maintenance Balancing
The agent never optimizes utilization at the expense of machine compatibility.
Queue states can include:
CREATED
PREFLIGHT
READY_TO_SLICE
SLICING
SLICE_FAILED
READY_FOR_APPROVAL
APPROVED
QUEUED
SUBMITTING
SUBMITTED
PRINTING
PAUSED
COMPLETE
FAILED
CANCELLED
REQUIRES_REVIEW
A production job can follow:
CREATED
→ PREFLIGHT
→ SLICING
→ READY_FOR_APPROVAL
→ APPROVED
→ QUEUED
→ SUBMITTING
→ PRINTING
→ COMPLETE
→ QA
Alternative paths include:
PREFLIGHT
→ REQUIRES_REVIEW
SLICING
→ SLICE_FAILED
SUBMITTING
→ UNKNOWN_SUBMISSION
→ RECONCILIATION
PRINTING
→ FAILED
The agent handles duplicate-print protection.
A dangerous scenario is:
Python sends a print-start request.
The printer receives it.
The network response is lost.
The middleware sees a timeout.
A weak implementation may immediately send another print-start command.
This can create duplicate work or state confusion.
The correct architecture is:
Mark:
SUBMISSION_UNKNOWN
Then:
Query Printer Check Active Job Check Active File Check Printer State Reconcile
Only after the system establishes the real machine state should any resubmission be considered.
This principle is similar to idempotent order processing in distributed systems.
The skill supports OctoPrint architecture.
Possible normalized operations include:
Health Check Connection State File Upload File Selection Print Start Pause Cancel Job Status Temperatures Progress
Current OctoPrint endpoints, authentication, and payload formats should be verified against official documentation before production use.
The skill supports Klipper / Moonraker architecture.
Possible operations include:
Printer State G-code File Management Print Start Pause Cancel Temperature Monitoring Macros Job Metadata Webcam Integration
Current Moonraker behavior should be verified against the installed version.
The agent can define a generic printer-adapter interface.
Possible methods:
health_check get_state upload_file start_print pause_print cancel_print get_job get_temperatures get_progress list_files delete_file get_capabilities
Each adapter should declare capabilities such as:
Supports Upload Supports Start Supports Pause Supports Cancel Supports Progress Supports Temperature Supports Camera Supports Event Stream Supports Macros Supports File Delete
Unknown capabilities should not be assumed.
The agent keeps:
Code Configuration Secrets
separate.
Printer API tokens should not be stored in:
Source Code G-code Model Files Logs Public Configuration
Configuration can be stored in:
YAML
JSON
TOML
Database Records
Sensitive credentials should use a suitable secrets mechanism.
The agent validates configuration during startup.
The automation should fail fast when critical configuration is invalid.
Examples:
Missing Printer URL Unknown Machine ID Invalid Build Volume Missing Profile Unknown Material Rule Missing Printer Adapter
The skill supports:
DRY RUN
and:
SIMULATION
Dry Run can:
Validate Model Resolve Printer Generate Slicer Command Slice Audit G-code Calculate Cost Calculate Material Stop Before Physical Submission
Simulation can use fake printer adapters to test:
Scheduling Queue State Retries Restart Recovery Failure Handling Notifications
Physical printing should be treated as an explicit operational mode.
Possible requirements before physical submission:
Printer Registered Printer Healthy Correct Profile Material Confirmed G-code Validated Approval Present Monitoring Healthy Machine Safety Controls Available
The agent can design operator-approval gates.
Approval can be required for:
New Model New Material New Profile New Printer Profile Long Print High-Temperature Print Overnight Print Large Batch Safety-Sensitive Part
Approval records may include:
Approval ID Job ID Operator Timestamp Profile Versions G-code Hash
Approval should bind to the exact G-code.
If the G-code changes:
Approval should expire.
Material automation is a major capability.
A material profile can contain:
Material Brand Color Density Nozzle Temperature Range Bed Temperature Range Enclosure Requirement Drying Requirement Cost per Kilogram Spool ID
The agent can estimate filament mass from length and density where sufficient data exists.
Material cost can be calculated from:
Filament Mass Spool Cost
Machine cost can optionally use:
Estimated Print Hours Configured Machine-Hour Rate
Energy estimation can use:
Average Power Duration Electricity Rate
These values should be labeled as estimates.
The agent can manage spool inventory.
A spool record may contain:
Spool ID Material Brand Color Initial Weight Remaining Weight Reserved Weight Printer Assignment
Before queueing a job:
Reserve Expected Filament + Configured Safety Margin
If remaining filament is insufficient:
MATERIAL_UNAVAILABLE
The agent can release reservations after:
Cancellation Failed Slice Reassignment
After successful printing, estimated usage can be replaced with actual usage when available.
The agent can detect nozzle mismatch.
Example:
G-code Profile: 0.4 mm
Printer: 0.6 mm
Result:
NOZZLE_MISMATCH
unless the profile explicitly supports that machine configuration.
The agent can automate maintenance tracking.
Possible counters:
Print Hours Print Count Filament Throughput Nozzle Hours Belt Inspection Lubrication Filter Replacement Enclosure Inspection
Maintenance states:
OK
DUE_SOON
DUE
BLOCKED
If maintenance is BLOCKED:
Do Not Schedule New Production Jobs
The skill supports health monitoring.
Possible checks:
Printer Online Firmware Responsive No Active Fault Temperatures Plausible Storage Available Queue Service Healthy Maintenance Allowed
Temperature sensor values should be sanity checked.
An implausible sensor value may indicate a disconnected or failed sensor.
In that condition:
BLOCK NEW PRINT
REQUIRE REVIEW
The agent can monitor:
Print Progress Elapsed Time Remaining Estimate Nozzle Temperature Bed Temperature Printer State Current File Layer Pause State Errors Camera Snapshots
Event-driven updates can be used where supported.
Periodic reconciliation is still recommended because event streams can disconnect.
The agent can integrate webcams for:
Start Snapshot Periodic Snapshot Failure Snapshot Completion Image Time-Lapse
Camera-based failure detection can detect patterns such as:
Spaghetti Part Detachment Severe Warping Empty Build Plate Possible Nozzle Problems
Computer-vision results are probabilistic.
A medium-confidence visual anomaly should not automatically cancel a physical print unless operator policy explicitly authorizes that action.
Possible failure policies include:
ALERT ONLY
PAUSE
CANCEL
REQUIRE OPERATOR REVIEW
The exact response should be configured.
The automation should never imply that a webcam replaces:
Smoke Detection Fire Prevention Electrical Safety Physical Supervision Requirements
Physical emergency-stop controls must remain independent from software automation.
Network failures are handled carefully.
If communication is lost during an active print:
Do Not Assume the Printer Stopped
Many printers can continue independently.
After reconnect:
Query Printer Recover Active State Restore Monitoring Reconcile Job
The same principle applies to application restarts.
On Python worker restart:
Disable New Submissions → Load Incomplete Jobs → Query Printer State → Match Active Print → Reconcile → Restore Monitoring → Re-Enable Scheduler
Critical queue state should not exist only in process memory.
For small installations, the agent can recommend:
SQLite
For larger farms:
PostgreSQL or another transactional database
Typical tables include:
jobs models slices printers printer_capabilities materials spools job_events approvals maintenance notifications
The agent can use append-only event logging.
Possible lifecycle events:
JOB_CREATED
MODEL_VALIDATED
SLICE_STARTED
SLICE_COMPLETED
GCODE_VALIDATED
JOB_APPROVED
JOB_QUEUED
PRINTER_ASSIGNED
SUBMISSION_STARTED
PRINT_STARTED
PRINT_PAUSED
PRINT_RESUMED
PRINT_COMPLETED
PRINT_FAILED
JOB_CANCELLED
A production audit record can include:
Event ID Job ID Printer ID Part ID Revision Model Hash G-code Hash Slicer Slicer Version Profile Versions Material Spool ID Action Status Timestamp Operator Reason Software Version
Structured logs are preferred.
Sensitive API credentials must be redacted.
The agent can maintain one correlation ID across:
Model Intake Slicing Queue Printer Assignment Physical Print QA
Notifications can be integrated with authorized systems such as:
Email Slack Discord Telegram Push Notifications Desktop Notifications
Useful notification events include:
Job Ready for Approval Print Started Print Completed Print Failed Printer Offline Low Spool Maintenance Due Queue Blocked
Notification systems should use:
Severity Debounce Grouping Cooldown
to avoid excessive alerts.
Retry architecture distinguishes safer operations from physical control operations.
Safer retries may include:
Status Query Metadata Query Database Query Camera Snapshot
Potentially unsafe retries include:
Start Print Cancel Print Execute Macro Change Heater State Delete File
These require explicit state and reconciliation.
Retries must be bounded.
Possible configuration:
Maximum Attempts Timeout Backoff Jitter Retryable Errors
The skill can design circuit breakers.
When a printer API repeatedly fails:
OPEN CIRCUIT
BLOCK NEW JOBS
KEEP QUEUE
NOTIFY OPERATOR
Circuit states:
CLOSED
OPEN
HALF_OPEN
The agent can prevent multi-worker scheduling conflicts.
Possible controls include:
Database Transactions Row Locks Advisory Locks Leader Process Job Reservations
A reservation record can contain:
Reservation ID Job ID Printer ID Expiration Status
If the reservation expires before submission:
Release or Reconcile
The agent supports priority scheduling.
Possible priorities:
CRITICAL
HIGH
NORMAL
LOW
The scheduler should avoid starvation.
It can also use due-date-aware scheduling.
Batch printing can track:
Plate Part IDs Quantity Expected Output Count
If one plate fails, both:
Batch-Level Impact
and:
Part-Level Impact
should be recorded.
Automatic part nesting can be supported, but spacing, cooling, adhesion, collision, and toolhead clearance matter.
Sequential printing should never be enabled automatically unless machine-clearance constraints have been validated.
The skill understands that orientation affects mechanical properties.
For functional parts, orientation can change:
Layer Adhesion Tensile Strength Bending Resistance Impact Resistance Surface Quality Support Requirements
The agent should not optimize orientation only for fastest printing.
Dimensional-compensation settings can also be versioned.
Examples:
Shrink Compensation Elephant-Foot Compensation Hole Compensation XY Compensation
The agent can automate calibration workflows.
Possible tests:
Calibration Cube Temperature Tower Flow Test Pressure Advance Resonance Test
Automatic acceptance criteria should come from user-defined QA policy.
Calibration results can be stored by:
Printer Material Nozzle Test Type Result Approved Setting Date
The agent separates:
PRINT COMPLETE
from:
QA PASS
A printer reporting completion means the machine finished the job.
It does not guarantee:
Dimensional Accuracy Surface Quality Mechanical Integrity Correct Material Correct Quantity
QA states can include:
PASS
FAIL
REWORK
REVIEW
Post-processing workflows can be added for:
Support Removal Washing Curing Sanding Annealing Painting Assembly Inspection Packing
The agent can adapt architecture for:
FDM / FFF
SLA / MSLA
Resin Industrial Additive Systems
Resin workflows require additional consideration for:
PPE
Ventilation Exposure Wash Cure Waste Handling
The agent should not apply FDM assumptions blindly to resin systems.
Industrial or proprietary printers may expose vendor-specific APIs or workflow constraints.
The preferred integration order is:
Official API Official SDK Supported File Workflow Operator-Assisted Process
The agent should not reverse-engineer protected private interfaces without authorization.
A simple local workflow can use folder watching:
incoming/ → Python detects file → waits for file completion → validates → slices → moves result to ready/
The agent must detect incomplete file writes.
Possible techniques:
Stable File Size Atomic Rename .partial Suffix
A half-written STL should not be processed.
Possible folder lifecycle:
incoming/ validated/ sliced/ ready/ printing/ complete/ failed/ archive/
The agent can use atomic filesystem moves for state transitions where appropriate.
Naming conventions can include:
Job ID Part ID Revision Material Profile
Sensitive customer information should not be unnecessarily embedded in filenames.
Path traversal must be prevented.
Untrusted filenames should not escape the configured workspace.
The agent can implement storage guards.
Before slicing:
Check Local Disk Space
Before uploading:
Check Printer Storage
Old printer files should only be removed using an explicit retention policy.
The agent can expose system health.
Possible health indicators:
service_alive database_ok slicer_ok printer_adapters scheduler_ok
It distinguishes:
SERVICE ALIVE
from:
READY FOR PHYSICAL PRINT
A worker can be running while printer state is unsafe.
Print-farm operational metrics can include:
Jobs Created Jobs Completed Jobs Failed Slice Failures G-code Rejections Printer Offline Events Printer Errors Queue Depth Average Wait Time Printer Utilization Filament Used Maintenance Due
Printer reliability metrics can include:
Success Rate Failure Rate Average Job Duration Utilization Maintenance Frequency Mean Time Between Failures
Failure attribution can classify:
MODEL
SLICING
MATERIAL
PRINTER
ADHESION
OPERATOR
NETWORK
API
UNKNOWN
The agent does not automatically assume "printer failure" whenever a job fails.
For multi-customer farms, architecture can isolate:
Customers Jobs Files Permissions Billing Audit Trails
The skill includes security controls such as:
Authentication Authorization Least Privilege API Token Protection Network Segmentation Safe File Handling Path Validation Log Redaction
Printer controllers should generally not be directly exposed to the public internet without appropriate protection.
Possible secure architectures include:
Private Network
VPN
Authenticated Reverse Proxy Controlled Gateway
The agent can design:
Web Dashboards REST Services CLI Tools Background Workers Schedulers Monitoring Services
Possible CLI commands:
jobs list jobs submit jobs approve jobs cancel printers status printers reconcile spools list maintenance due
Python concurrency can use:
asyncio Thread Pools Process Pools Task Queues
depending on workload.
Network I/O is a good fit for asynchronous processing.
Slicer processes and heavy geometry work should not block an asynchronous event loop.
The agent can create domain-specific exception categories such as:
ModelValidationError SlicerError GCodeValidationError PrinterUnavailableError SubmissionUnknownError MaterialUnavailableError ApprovalRequiredError
It also supports a detailed error taxonomy:
P3D-001 MODEL_UNREADABLE
P3D-002 MODEL_EMPTY
P3D-003 UNIT_AMBIGUITY
P3D-004 MODEL_OUT_OF_BOUNDS
P3D-005 MESH_INVALID
P3D-006 PROFILE_MISSING
P3D-007 PROFILE_NOT_APPROVED
P3D-008 SLICER_NOT_FOUND
P3D-009 SLICER_TIMEOUT
P3D-010 SLICER_ERROR
P3D-011 GCODE_INVALID
P3D-012 GCODE_OUT_OF_BOUNDS
P3D-013 TEMPERATURE_POLICY
P3D-014 PRINTER_INCOMPATIBLE
P3D-015 PRINTER_OFFLINE
P3D-016 PRINTER_STATE_UNKNOWN
P3D-017 MATERIAL_UNAVAILABLE
P3D-018 NOZZLE_MISMATCH
P3D-019 MAINTENANCE_BLOCK
P3D-020 APPROVAL_REQUIRED
P3D-021 SUBMISSION_UNKNOWN
P3D-022 PRINT_FAILED
P3D-023 PRINTER_API_ERROR
P3D-024 STORAGE_LOW
P3D-025 DUPLICATE_JOB
P3D-026 CONFIG_INVALID
P3D-027 FILE_INCOMPLETE
P3D-028 CAMERA_UNAVAILABLE
P3D-029 QUEUE_CONFLICT
P3D-030 INTERNAL_ERROR
Testing can include:
Unit Tests Integration Tests Simulation Failure Injection Physical Validation
Important failure scenarios include:
Printer Offline API Timeout Slicer Timeout Malformed Model Full Disk Failed Upload Lost Start Response Worker Restart Spool Shortage Maintenance Block Wrong Nozzle Wrong Material Out-of-Bounds G-code Excess Temperature Unknown Printer State
A strong duplicate-start test should verify:
Same Job ID Same Model Same Configuration
does not produce multiple physical job starts.
A restart test should verify that an active physical print is discovered and monitored rather than restarted.
The agent can design a global submission kill switch, per-printer stop, and scheduler pause.
The software kill switch should generally:
Block New Print Starts Keep Monitoring Active Allow Status Queries Preserve Current Job State
Active prints should not automatically be cancelled unless the operator's policy explicitly requires it.
Physical emergency-stop mechanisms remain independent.
The skill can build complete production traceability.
For each printed part:
Part ID Revision Printer Material Spool G-code Hash Profile Versions Start Time Finish Time Operator QA Result
can be recorded.
Reprints should also be controlled.
Recommended workflow:
Failure → Review → Root Cause → Reprint Authorization
Automatic reprint loops must be bounded.
Long or overnight prints may require additional operator-defined controls such as:
Approved Printer Material Sufficiency Maintenance Health Monitoring Camera Remote Notifications Physical Safety Procedures
The skill supports gradual rollout.
Recommended migration for an existing manual print farm:
Phase 1: Read-Only Monitoring
Phase 2: Automated Slicing
Phase 3: Automated Queue Recommendations
Phase 4: Operator-Approved Submission
Phase 5: Controlled Automatic Submission
Recommended production progression:
Simulation → Dry Run → Single Printer → Operator Approval → Limited Farm → Full Farm
This staged deployment reduces automation risk while preserving traceability and operator control.
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 21 days ago
- Passed all security checks, Safe to install