{"ok":true,"data":{"schema_version":"packet-assembly-starter-kit/v1","contract_version":"packet-assembly-contract/v1","folder_template":["source/","metadata/","output/","README.md"],"files":[{"path":"INSTRUCTIONS.md","content_type":"text/markdown","contents":"# Graunt Packet Assembly Contract\n\nDescribes exactly how to assemble a packet (or packet set) the Graunt Refinery accepts: the input shapes, the metadata.csv columns it recognizes, the packet-set manifest, the rights and provenance it expects, and the deterministic artifacts it produces. Following this contract makes your upload ingest cleanly the first time.\n\n## Supported input shapes\n- folder — a directory of source files plus an optional metadata.csv\n- zip — a safe archive of the same (no traversal, no absolute paths, no symlinks)\n- metadata.csv — one row per source file, joined to the files by path / basename / sha256\n- source files — individual TXT, MD, CSV/TSV, JSON/JSONL, or born-digital PDF files\n\n## Required files / fields\n- **filename / path** (required) — the source file each metadata row describes (the primary join key)\n- **rights / license** (required) — the rights basis for the source (e.g. PUBLIC_DOMAIN, GOVERNMENT_WORK, CC0, or your own license)\n- **display_name / title** (required) — the human-facing packet name\n- **description** (required) — what the packet contains and who it is for\n- **citation / source_url** — where the source came from; recommended for provenance\n- **packet_category** — COMPLETE, FOUNDATION, or SUB_PACKET when assembling a packet set\n- **buy_price / monthly_sub / annual_sub** — integer cents you set; a paid FOUNDATION must clear the paid minimum ($0 FOUNDATION is rejected)\n\n## metadata.csv\nUnknown columns are retained as extra_<column> and never cause a failure.\nJoin order: exact path → basename → normalized basename → sha256.\n\n## Packet sets\nManifest: `graunt/packet-set/v1`. Roles: MASTER, FOUNDATION, MEMBER. Categories: COMPLETE, FOUNDATION, SUB_PACKET.\nTier 0 (deterministic, model-free retrieval files) is required ONLY when you claim a packet is agent-ready. Tier 1 (standard navigation) and Tier 2 (premium/semantic) are optional and never required to publish.\n\n## Artifacts the Refinery produces\n- source originals (preserved byte-for-byte with content_sha256)\n- normalized content\n- content_units (stable ids + byte offsets)\n- retrieval_chunks\n- chunk_context\n- BM25 postings + meta\n- router.retrieval guidance\n- manifest + checksums\n\n## Review\n- Assembled listings enter PENDING_REVIEW.\n- A human admin review remains ahead of any listing going ACTIVE — assembly never auto-publishes.\n"},{"path":"README.md","content_type":"text/markdown","contents":"# Starter kit\n\nSee INSTRUCTIONS.md. Put source files in source/, your metadata.csv in metadata/, and the Refinery writes to output/.\n"},{"path":"metadata/metadata.template.csv","content_type":"text/csv","contents":"filename,display_name,description,rights,citation,packet_category,buy_price\n# one row per source file; unknown columns are kept as extra_<column>\n"},{"path":"metadata/metadata.example.csv","content_type":"text/csv","contents":"filename,display_name,description,rights,citation,packet_category,buy_price\nfoundation.txt,Regulatory Foundation,Base statute text for the set,PUBLIC_DOMAIN,https://example.gov/source,FOUNDATION,10000\nfiduciary.txt,Topic: Fiduciary Duty,Fiduciary-duty guidance,PUBLIC_DOMAIN,https://example.gov/source,SUB_PACKET,4000\nadvertising.txt,Topic: Advertising Rule,Advertising-rule guidance,PUBLIC_DOMAIN,https://example.gov/source,SUB_PACKET,4000\n"},{"path":"source/foundation.txt","content_type":"text/plain","contents":"Section 1. This is synthetic public-domain-style sample text for the Graunt starter kit. Replace it with your own source before assembling a real packet.\n"},{"path":"source/fiduciary.txt","content_type":"text/plain","contents":"A fiduciary acts in the client's best interest. This is synthetic sample text for the starter kit.\n"},{"path":"packet-set.example.json","content_type":"application/json","contents":"{\n  \"manifest_schema\": \"graunt/packet-set/v1\",\n  \"set_key\": \"example-regulatory-set\",\n  \"title\": \"Example Regulatory Packet Set\",\n  \"created_from\": \"MANUAL_ASSEMBLY\",\n  \"members\": [\n    {\n      \"member_key\": \"foundation\",\n      \"role\": \"FOUNDATION\",\n      \"packet_category\": \"FOUNDATION\",\n      \"listing_title\": \"Regulatory Foundation\",\n      \"price_cents\": 10000,\n      \"version_identifier\": \"1.0\",\n      \"delivery\": {\n        \"dataset_id\": \"00000000-0000-4000-8000-000000000001\"\n      },\n      \"rights_block\": {\n        \"license\": {\n          \"family\": \"PUBLIC_DOMAIN\"\n        }\n      },\n      \"provenance_ref\": \"https://example.gov/source\",\n      \"ordering\": 0\n    },\n    {\n      \"member_key\": \"topic-fiduciary\",\n      \"role\": \"MEMBER\",\n      \"packet_category\": \"SUB_PACKET\",\n      \"listing_title\": \"Topic: Fiduciary Duty\",\n      \"price_cents\": 4000,\n      \"delivery\": {\n        \"packet_bundle_revision_id\": \"00000000-0000-4000-8000-000000000002\"\n      },\n      \"foundation_member_ref\": \"foundation\",\n      \"min_foundation_version\": \"1.0\",\n      \"rights_block\": {\n        \"license\": {\n          \"family\": \"PUBLIC_DOMAIN\"\n        }\n      },\n      \"provenance_ref\": \"https://example.gov/source\",\n      \"retrieval_floor\": {\n        \"agent_ready_claim\": true,\n        \"tier0_status\": \"PASSED\",\n        \"tier0_artifact_refs\": [\n          \"machine/retrieval_chunks.jsonl\",\n          \"machine/bm25_meta.json\"\n        ]\n      },\n      \"ordering\": 1\n    },\n    {\n      \"member_key\": \"topic-advertising\",\n      \"role\": \"MEMBER\",\n      \"packet_category\": \"SUB_PACKET\",\n      \"listing_title\": \"Topic: Advertising Rule\",\n      \"price_cents\": 4000,\n      \"delivery\": {\n        \"dataset_id\": \"00000000-0000-4000-8000-000000000003\"\n      },\n      \"foundation_member_ref\": \"foundation\",\n      \"rights_block\": {\n        \"license\": {\n          \"family\": \"PUBLIC_DOMAIN\"\n        }\n      },\n      \"provenance_ref\": \"https://example.gov/source\",\n      \"ordering\": 2\n    },\n    {\n      \"member_key\": \"master\",\n      \"role\": \"MASTER\",\n      \"packet_category\": \"COMPLETE\",\n      \"listing_title\": \"Complete Regulatory Set\",\n      \"price_cents\": 15000,\n      \"delivery\": {\n        \"dataset_id\": \"00000000-0000-4000-8000-000000000004\"\n      },\n      \"rights_block\": {\n        \"license\": {\n          \"family\": \"PUBLIC_DOMAIN\"\n        }\n      },\n      \"provenance_ref\": \"https://example.gov/source\",\n      \"ordering\": 3\n    }\n  ],\n  \"shared_assets\": []\n}"},{"path":"recognized-columns.json","content_type":"application/json","contents":"{\n  \"filename\": [\n    \"filename\",\n    \"file\",\n    \"document\",\n    \"name\",\n    \"path\"\n  ],\n  \"source_url\": [\n    \"source_url\",\n    \"url\",\n    \"link\",\n    \"source\",\n    \"uri\"\n  ],\n  \"rights\": [\n    \"rights\",\n    \"license\",\n    \"copyright\",\n    \"rights_status\"\n  ],\n  \"citation\": [\n    \"citation\",\n    \"cite\",\n    \"cite_as\"\n  ],\n  \"title\": [\n    \"title\",\n    \"subject\"\n  ],\n  \"publication_date\": [\n    \"publication_date\",\n    \"date\",\n    \"published\",\n    \"pub_date\"\n  ],\n  \"sub_packet\": [\n    \"sub_packet\",\n    \"topic\",\n    \"category\",\n    \"folder\",\n    \"collection\"\n  ],\n  \"sha256\": [\n    \"sha256\",\n    \"sha\",\n    \"hash\",\n    \"checksum\"\n  ],\n  \"author\": [\n    \"author\"\n  ],\n  \"publisher\": [\n    \"publisher\"\n  ],\n  \"source_authority\": [\n    \"source_authority\"\n  ],\n  \"foundation\": [\n    \"foundation\"\n  ],\n  \"shared_scope\": [\n    \"shared_scope\"\n  ],\n  \"display_name\": [\n    \"display_name\"\n  ],\n  \"description\": [\n    \"description\"\n  ],\n  \"use_when\": [\n    \"use_when\"\n  ],\n  \"packet_category\": [\n    \"packet_category\"\n  ],\n  \"buy_price\": [\n    \"buy_price\"\n  ],\n  \"monthly_sub\": [\n    \"monthly_sub\"\n  ],\n  \"annual_sub\": [\n    \"annual_sub\"\n  ]\n}"}]}}