--- name: adding-juozas-auto-listing description: Use when adding, improving, publishing, or replacing a Juozas Auto car listing, especially when photos, vehicle details, Lithuanian copy, content collection fields, or post-add verification are involved. --- # Adding Juozas Auto Listing ## Overview Add listings as conversion assets, not data entry. A superb listing has complete facts, strong real photos, calm Lithuanian copy, valid content schema, correct slug, and a verified build before commit or push. ## Before Editing Ask only for missing facts. Do not invent vehicle details. Required facts: - Make, model, year, city, price, mileage. - Fuel, transmission, body type, color. - At least one photo, with cover photo identified. - Publish date. Use today's date only if the user agrees or asks to publish now. Allowed schema values: - Fuel: `benzinas`, `dyzelinas`, `hibridas`, `elektra`, `dujos`. - Transmission: `mechaninė`, `automatinė`. - Body type: `sedanas`, `universalas`, `hečbekas`, `visureigis`, `kupė`, `kabrioletas`, `vienatūris`. - Drivetrain: `priekiniai`, `galiniai`, `visi`. High-value facts to ask when missing: - Power in kW, engine size in liters, drivetrain. - First registration month, VIN visibility, service history, known defects. - Recent maintenance, tire set, ownership/import history. - What should be emphasized in the first 2 sentences. - Whether plates, faces, documents, or location clues need blurring before publish. If the user has photos but they are not in the workspace, ask where they are. If the photos are poor, say what is missing: exterior front three-quarter, rear, interior, odometer, tires, service book, visible defects. ## File Locations Use this exact structure: ```text src/content/cars/.md src/content/cars/_photos//01.jpg src/content/cars/_photos//02.jpg ``` Slug format: ```text ${make}-${model}-${year}-${city} ``` Lowercase, ASCII-folded Lithuanian diacritics, words separated by hyphens. Example: `skoda-octavia-2020-siauliai`. Before creating files, check whether `src/content/cars/.md` or `src/content/cars/_photos//` already exists. If it does, ask whether this is an update or create a collision-free slug only with user approval. For trim/body naming, keep the model as the buyer would search it, for example `A6 Avant` may use model `A6 Avant` and body type `universalas`. Do not hide meaningful trim names just to simplify the slug. ## Listing Quality Bar Frontmatter must satisfy `src/content/config.ts` exactly. `photos` must contain at least one local image path. Keep optional fields absent if unknown rather than guessing. Description pattern: - Paragraph 1: the buyer-facing summary in Lithuanian, 1-2 calm sentences. - Paragraph 2: condition, service, ownership, or usage context. - Paragraph 3: transparent caveats or viewing/contact note if useful. Tone: quiet, premium, honest. No hype, emojis, fake urgency, or all-caps selling. ## Photo Workflow 1. Put originals in `src/content/cars/_photos//`. 2. Name the best cover image `01.jpg` when the source is JPEG. If the user provides PNG, WebP, HEIC, or another format, either preserve the real extension in frontmatter or convert intentionally with a normal image tool. Do not rename a non-JPEG file to `.jpg` without conversion. 3. Use meaningful order: exterior, interior, dashboard/odometer, wheels, defects. 4. Prefer landscape photos. Do not add synthetic stock photos for real listings unless the user explicitly requests placeholders. 5. If editing photos is needed, preserve originals outside the final committed set or use clearly named processed files. ## Verification Run after adding or changing a listing: ```sh npm test npm run build ``` Also inspect the generated or dev listing at 375px width. Confirm: - Price is visible quickly. - Call or WhatsApp is reachable without hunting. - Photos look credible and premium. - Markdown renders cleanly. - SEO title, OG image, and JSON-LD still build. ## Commit And Push Only commit and push when explicitly requested. Stage only intended listing, photo, and related documentation changes unless the user asked to include everything. Use a conventional message: ```sh git commit -m "feat: add listing" ``` If pushing directly to `main`, first verify the branch and remote state with `git status --short --branch`. ## Common Mistakes | Mistake | Fix | |---|---| | Creating a slug without city | Include city to match route convention. | | Guessing specs | Ask or omit optional fields. | | Referencing photos outside `src/content/cars/_photos` | Move photos into the content photo folder so Astro can optimize them. | | Using loud sales copy | Rewrite as calm Lithuanian buyer guidance. | | Skipping build | Build catches schema and image path failures. |