Use the released tuckmark CLI. Tuckmark itself does not parse order files, invoke an LLM, or automate a browser.
Privacy Boundary
- Keep the original order export and product-page body local. Do not commit, upload, attach, log, or put either in a proposal.
- Use only a concise source note that the user approves. Never include account data, addresses, order numbers, or the session secret.
- Open a product page only in the user's already-authorized browser context. Stop for login, CAPTCHA, 2FA, payment, or any other identity challenge.
Workflow
-
Resolve the named DEVD instance. Pass
--instance <name>or setTUCKMARK_DEVD_INSTANCE; the command fails without one. The CLI uses local Unix socket / Named Pipe IPC and does not accept a DEVD URL or data directory. -
Read only the Agent recommendation catalog and current inventory:
tuckmark agent-import catalog --instance "$DEVD_INSTANCE" tuckmark agent-import inventory --instance "$DEVD_INSTANCE" --query "<model or keyword>"
Catalog results include only system and shared-directory templates. recommendedUse is an optional human-readable suggested use; for new materials, use the material evidence to select and order up to three suitable templates. An absent suggestion means the template remains usable but is not a default recommendation.
-
Interpret the order outside Tuckmark. Decide material identity yourself; do not run name matching that silently converts a new item into a restock. Use
kind: "restock"only with the exacttargetMaterialIdreturned by inventory. Include that material'supdatedAtastargetMaterialUpdatedAt. -
Add
needsAttentionwhen identity, quantity, suffix, packaging, or other factual evidence is uncertain. It is non-blocking: do not force the user to certify the match. -
Build a local, temporary
tuckmark.agent-import.v1proposal. New items must have one defaulttemplate, up to two ordered alternatives, positive inventory quantity, positivelabelPrintQuantity, and material fields.descriptionis the concise overview;deviceDetailsis one Markdown string for factual device details. Do not turn that detail into a key-value object or manufacture attributes from incomplete evidence. Derive label quantity from storage packages or independently labeled units; never copy the inventory quantity blindly. Restocks must keeptemplateabsent.{ "schema": "tuckmark.agent-import.v1", "sourceNote": "purchase receipt", "items": [{ "id": "agent-local-item-1", "kind": "new", "selected": true, "quantity": 100, "labelPrintQuantity": 1, "material": { "fullName": "Example IC", "description": "Single-line overview", "deviceDetails": "- Verified feature\n- Package evidence", "packagingRemark": "reel" }, "sourceNote": "purchase receipt", "template": { "source": "system", "id": "cable-tag", "name": "Cable Tag", "fields": [] }, "templateAlternatives": [], "templateInput": {}, "revision": 0, "pendingTemplateEventId": null }] } -
Create the session. The CLI opens the confirmation page unless
--no-openis supplied. It prints a session ID and permission-restricted credential-file path, never the secret.tuckmark agent-import create --file /tmp/proposal.json --instance "$DEVD_INSTANCE" -
Wait for user changes. If the user switches a new-material template, DEVD creates a field-contract event and freezes only that label panel. Poll and fulfill the exact event revision:
tuckmark agent-import wait --session <session-id> --instance "$DEVD_INSTANCE" tuckmark agent-import fulfill --session <session-id> --event <event-id> --revision <revision> \ --input '{"field":"value"}' --instance "$DEVD_INSTANCE"Do not fulfill an event with guessed fields. A stale revision is rejected; refresh with
wait, regenerate values for the new field contract, and continue waiting. -
Do not confirm on the user's behalf. The user reviews, edits, selects items, and confirms in the Web App. Sessions expire after 30 minutes.