Imported from jiggy/jig (
examples/contact-import/AGENTS.md). Install upstream withnpx skills add jiggy/jig --skill contact-import. Copyright stays with the author.
Contact import
Purpose
Show a product feature composing the same mapping contract with code, an Agent, or both, then using ordinary code to produce a contact preview.
Ownership
flows/importowns bounded CSV reading, composition, and final preview delivery.flows/map-code,map-agent, andmap-mixedimplement the mapping contract.flows/convertowns mapping validity and row acceptance rules.bindingsselects methods;fixturesandtestown synthetic demonstrations.
Local Contracts
- Complexity cap: one CSV, one contact schema, column selection only, final preview. No database writes, transformations generated by models, OCR, Excel, UI, queues, or streaming. Mapping substitution is the single lesson.
- The Agent receives headings only. Rows remain with code; headings may themselves contain sensitive data. Provider selection belongs to the operator.
- Mapping uses three distinct existing column indices. Null means clarification is needed. Structural validity never proves semantic correspondence.
- Input is
source/contacts.csv: UTF-8, 64 KiB, 1–100 data records, 1–16 columns. preview.jsonis a proposal for review, not an import receipt.readydescribes a completed preview, even when some or all rows are rejected.- Keep each Flow self-contained. The mixed mapper uses code and the Agent capability within one leaf; current Jig child Bindings cannot have child slots. Keep its small known-format rule aligned through shared test cases, not imports of a sibling Flow implementation.
- Uncertain execution, failure, and cancellation propagate without retries.
Work Guidance
- Retain recognizable malformed, unknown, ambiguous, and row-rejection cases.
- Fault injection must be identified as a deterministic test, never live model evidence.
Verification
bun test examples/contact-import/testchecks parsing, composition, and policy.scripts/test-release.shrepeats these tests with the packed SDK.- Use an admitted installed run separately before claiming host or live Agent behavior.
Child DOX Index
- None.