Part of the Simple Agility stack. Canonical copy:
~/source/stockroom/docs/superpowers/plans/2026-10-04-stockroom-phase-3-listing-preparation.md(18 test-first tasks with complete code). This page mirrors the decisions for retrieval. It implements rollout phase 3 of StockroomIntakeInventoryPricingDesign and follows StockroomPhase2PricingTriagePlan. The rules pages it reads are in theresellingcluster (ResellingHub). Status: written 2026-10-04. Built and reviewed 2026-10-04: every task had its own review, then a final whole-branch review, one fix wave and a re-review ("ready to merge"). Not yet deployed. What execution changed, and what was parked, is recorded indocs/superpowers/notes/2026-10-04-phase-3-review-carryover.md.
Turn an item routed to eBay, local sale or a lot into a reviewed, channel-neutral listing. A listing is a title, a description, condition text, item specifics and keywords.
core.photo: the photo store port, a filesystem store and image scaling.core.listing: versioned listing_content, the honesty validator, FBA notes, the draft job and review.core.rules: the category-to-rules-page mapping and a cached Wikantik reader port.core.genai: the ListingDrafter port, plus a provider-neutral prompt and JSON schema.stockroom-genai:
com.anthropic:anthropic-java SDK. It uses the beta endpoint, server-side fallbacks: "default", a cached system prompt, JSON-schema output and an effort level set per task./api/chat, with images, the schema in format, and think: false.GET /api/pages/{slug}, anonymous.draft_listing job runs on its own job lane, outside any database transaction. It validates the draft and retries once with the violations. It then stores a versioned draft, or a rejected one with its reasons. A draft whose item changed while it was being written is discarded.| Topic | Decision |
|---|---|
| Photos | Stored on a named volume and mirrored nightly into the backup tree. The browser converts captures to upright JPEG of at most 2400 px. The phone offers "Take photo" (camera) and "Choose photos" (gallery). Limits: JPEG or PNG only, 15 MB, 12 per item. Thumbnails are 400 px. |
| When drafting runs | Only on request, once photos exist; never automatically. |
| Draft lifecycle | Each item has versions: draft, rejected (with violations), approved and superseded. Approval moves the item to ready. Edits create a new human_edit version. A change to the condition, identification or kind supersedes current drafts, and sends an approved eBay/local item back to prep with a reason. |
| Claims | Every specific carries a source: catalog, photo, user or rule. Photo-sourced specifics need confirmation and block approval until they are confirmed. Code checks the claimed source: a catalog specific needs a matching catalog fact, and a user specific is allowed only for the condition, the jacket or a flaw. |
| Honesty checks | Titles are at most 70 characters. Nine rule codes apply. Claims such as first edition, signed, complete, mint and rare are refused anywhere in the listing; a real catalog title is exempt. Every tagged flaw must be disclosed, never denied, and none invented. No grade word may be better than the grade, and an untested item may not be said to work. No contact details. Catalog facts must be copied exactly. |
| Rules pages | Read by slug from Wikantik and cached for an hour. When the wiki is down, a stale copy is used and marked. Drafting is blocked with a reason when no copy exists. One page-name pattern is used everywhere. |
| Providers | Claude (claude-opus-5-5, effort low) by default; Ollama (gemma4:e4b on the inference host) by configuration. Claude runs with a 90 s timeout and 1 retry, inside a 15-minute job lease that is checked at startup. |
| FBA | Template condition notes: the Amazon label plus one sentence per flaw, at most 1000 characters. They are written whenever an item is routed to FBA or its condition changes. |
| Golden set | A runner with 3 synthetic cases. The operator adds about 20 real items to measure whether a local model is good enough. |
| Prep screen | Lists the items awaiting photos, a draft or review, with bulk approval for clean book drafts. |
stockroom-genai: Wikantik reader and Ollama drafter