CtrlK
BlogDocsLog inGet started
Tessl Logo

pipeline

Use before Project Replicator product, hardware, PCB, CAD, manufacturing, or review work.

53

Quality

59%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./reference/replicator-original/project-replicator/pipeline/SKILL.md
SKILL.md
Quality
Evals
Security

Project Replicator Pipeline

This is the repository reference entry point for the agent's product-to-manufacturing workflow. Keep the native system prompt small; detailed workflow and safety rules live here and in the linked references.

Query Boundary

The current query is the work boundary. Do only the explicitly requested stage or deliverable. If the user gives a broad product idea or merely says to continue, perform the earliest incomplete applicable phase and stop after it: requirements, hardware/BOM, PCB, CAD, then explicitly requested manufacturing/release. Cross phases only when the user explicitly requests multiple stages or an end-to-end result.

PCB and CAD have terminal publication rules inside their own requested phases. pcb.run(profile="check") produces no Gerbers, drill files, or 3D geometry, so finish a PCB design phase with the applicable release. A committed CAD build does not refresh the exported STEP or its derived GLB preview, so finish every query that changes CAD with cad.export(intent="handoff") on that exact build. These publications complete the active phase and do not authorize entering a later phase. If CAD already exists, checking whether a newly published PCB can affect that CAD is part of finishing the PCB phase; editing CAD remains outside scope.

Within the requirements or BOM phase, write a concrete first draft before asking questions. Use user.ask only for specific unresolved document items: purpose="prd_item_confirmation" for PRD facts and purpose="bom_item_confirmation" for BOM identities or choices. Apply each answer to the same document and continue that phase until it has no blocking open items. Never present the whole PRD/BOM for approval.

Store each PRD requirement with its source and treat structured user answers as authoritative for those named items. PRD readiness comes from an empty open_questions list and valid product files; never add a whole-document confirmation gate. After a phase is complete, end with ordinary final text stating what was written and asking whether the user wants to start the next stage. The user's next normal query is the authorization; do not use user.ask for it or continue downstream automatically.

If the user requests a later stage while an earlier required stage is incomplete, complete only the earliest incomplete prerequisite and stop. Naming PCB does not authorize doing a missing BOM and PCB in one query unless the user explicitly requests both.

Required Read Order

  1. Read references/operating-model.md before changing project files or interpreting uploaded project inputs.
  2. Read references/product-hardware-cad-workflow.md before requirements, BOM, PCB/CAD modeling, manufacturing result, or CAD build work.
  3. Read references/pcb-workflow.md and load the replicator-pcb skill before PCB source, KiCad, routing, DRC, Gerber, fabrication, or PCB visual-review work.
  4. Load the separately vendored upstream tscircuit skill before authoring or revising tscircuit PCB source. tscircuit owns upstream syntax and CLI guidance; replicator-pcb owns this application's PCB workflow and policy.
  5. Before editing affected electrical identity, BOM, circuit, footprint, connectivity, or rules, reuse current exact-part evidence when it still covers the edit; otherwise research the facts that are actually missing. Placement-only edits do not trigger new supplier or electrical research.
  6. Match PCB work to the request: layout cleanup uses pcb.run(profile="preview") and stops after visual inspection; route/DRC validation uses pcb.run(profile="check"); fabrication/order readiness uses pcb.run(profile="release"). Do not skip ahead to a later profile while an earlier one is still blocked. But when a PCB design request reaches a ready check, do not stop there: run pcb.run(profile="release") to publish the package — Gerbers, drill files, assembly.step, assembly.glb, and the JLC SMT BOM/CPL. Release takes no target; one package carries all three deliverables, each with its own readiness in sections. Read those sections and report exactly which ones published: a blocked section put no files in the package and lists why. A release the user did not ask for is still a release — inspect its previews and report what it published. When the user needs one deliverable on its own for an upload, use pcb.export; it re-emits that section of the published release as its own zip and rebuilds nothing. When CAD documents already exist, compare their recorded PCB releases with the new release before ending the query. Report a CAD concern only when the actual PCB change can affect enclosure geometry, mounting, openings, controls, acoustic paths, thermal space, or clearances.
  7. Load the requirements-contract skill before writing or revising product/README.md, product/requirements.json, or product/contract.json.
  8. Before CAD modeling when a project PCB exists, identify the current Release and read its release-manifest.json, actual package/assembly.step, editable PCB placement/board source, source/pcb.config.json, and applicable product or hardware files. Open the existing CAD document and compare its recorded PCB Release before editing. Optional or incomplete hardware constraints provide useful context and do not block CAD.
  9. Before CAD modeling that depends on standard, purchasable, or library-backed parts, use the verified catalog directly in the current turn and write the authoritative cad/part-plan.json; related catalog results do not authorize substitutions.
  10. Load cad-workbench and build123d-core before CAD modeling.
  11. Load build123d-libs when CAD uses standard mechanical parts, fasteners, bearings, gears, V-slot rails, T-nuts, wheels, or linear-motion parts, and always when a screw fastens into a 3D-printed part — printed screw joints are produced by build123d-libs's kit, never hand-modeled.
  12. For ordinary FDM print preparation, load print-plates, require real plate dimensions, and use cad.print.prepare to produce one standard unsliced 3MF per plate. Let Bambu Studio handle supports, materials, slicing, and G-code. Load gcode only for an explicit G-code or headless-slicing request, and load bambu-labs only for explicit LAN printer communication or physical print control.

For assemblies, inventory intended connections in project source. Resolve each connection with an exact-match source-owned kit or an explicit free implementation, and assert that none remain unhandled. Kit rejection is a normal freeform fallback, not an error to bypass with approximate placement.

Use only the references needed for the current task. Domain inspectors and typed diagnostics govern file-based domains; exact committed Workbench builds and their images govern CAD.

Repository
JimmyPang02/open-replicator
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.