Decompose: Add Brother Entrepreneur PR-10 (10-needle) machine profile #36
Labels
No labels
blocked:children
blocked:depends-101
blocked:depends-103
blocked:depends-104
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:preflight
bug
chore
feature-request
in-progress
lint-cleanup
needs-decompose
performance
quality
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/easystitch#36
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Add Brother Entrepreneur PR-10 (10-needle) machine profile
Context
src/machine/machine_library.pyhas profiles for SE600, PE535, QS-1000,and a generic, but no PR-10 — the target machine for ThreadCraft.
Without the profile, the digitize service will use
generic_diyconstraints, which means designs may not fit the actual PR-10 hoop, or
the service may recommend color counts above 10.
Goal
Add a complete, accurate
MachineProfilefor the Brother EntrepreneurPR-10, with researched hoop sizes, max thread count, format support,
and PES version constraints.
Decomposition
The work has three distinct phases: research, implementation, and test.
Research must be done first because the implementation values depend on
verified sources, not guesses.
P1: Research PR-10 spec
Goal: Lock the actual PR-10 specs from authoritative sources (Brother
official manual, verified third-party references like embroidery
format community docs).
Specifically need:
Files:
docs/machines/brother_pr10_research.mdwith each field, thesource, and a confidence rating (high/medium/low).
Acceptance:
Why first: without verified values, the implementation in P2 is
speculation. Embroidery machine specs vary by region, model year, and
firmware version — getting this wrong produces designs the machine
will reject or sew incorrectly.
P2: Implement the profile
Add
self.machines["brother_pr10"] = MachineProfile(...)with theverified values from P1. Also add the public
get()andlist_names()methods from issue #45 (these are bundled here so the PR-10 work ships
with a usable lookup API).
Files:
src/machine/machine_library.py(add the profile + thepublic methods)
tests/test_machine_library.py(asserts the profile loads andhas the expected fields)
Acceptance:
MachineLibrary().get("brother_pr10")returns the profile.MachineLibrary().list_names()includes"brother_pr10".default_format == "pes"andformat_supportreflectsPES as native.
Depends on: P1 (research).
P3: Round-trip integration test
End-to-end test that the PR-10 profile actually constrains the
pipeline correctly. A design that exceeds the hoop should be flagged
or scaled, not silently produced.
Files:
tests/test_pr10_constraints.pydata/test_fixtures/oversized.svg(a design larger than thePR-10 hoop)
Acceptance:
produces a result that fits within the hoop (scaled or rejected
with a clear error).
count of 10 (no more than 10 distinct colors in the output, even if
the input has 50).
valid PES file for the PR-10 (correct PES version magic bytes).
Depends on: P1, P2.
Out of scope
separate tickets.
ticket is about adding the profile, not about making the pipeline
respect constraints it currently ignores.
Add Brother Entrepreneur PR-10 (10-needle) machine profileto Decompose: Add Brother Entrepreneur PR-10 (10-needle) machine profileThis issue has been decomposed into the following sub-issues:
self.machines["brother_pr10"] = MachineProfile(...)with the verified valuEach sub-issue has been labeled with
triage-approvedand is ready for queue routing.