---
name: particulars-builder
description: "Compose the PDF property brochure for a new instruction from the listing copy and the photography. Stages the brochure for the agent's review and the vendor's review before any wider distribution. Built for use inside new-instruction; chains into the Maxy content-producer skill for the PDF render."
---

# Particulars builder

A building-block skill called by `new-instruction`. Composes the property brochure.

## What it does

Reads the agency's brochure template path from the profile, then assembles the brochure content:

- Cover with headline, hero photograph, address, asking price
- Floorplan page
- Photography gallery in the profile's preferred order
- Description and key features, copied from the approved listing copy
- Location paragraph and a small location map
- Agency footer with branding, contact details, CMP and redress scheme markings

The skill hands the content to the Maxy `content-producer` skill for the PDF render. That step is where the agency brand is applied to a print-ready file. Particulars are A4, two-fold or three-fold depending on the profile.

## Approval flow

The PDF is staged in two places at once:

1. The agent's review surface, with one-click approve or "redraft with changes".
2. A vendor-review draft email is prepared, ready to send when the agent approves.

The brochure is not distributed to portals or to the public until the agent and the vendor both approve.

## What it does not do

- It does not generate brand assets. The agency template from onboarding is the source of brand styling.
- It does not write listing copy. That is `listing-copy-writer`.
- It does not commission photography.

## Connectors

Read: profile (template path, photography order, agency branding), CRM (property, vendor, listing copy from step 5 of new-instruction).
Write: PDF artefact in the agent's Drive, draft email to vendor (staged only).

## Profile keys

- `realagent.particulars.template_path`
- `realagent.particulars.photo_count` (target, default 12, learned)
- `realagent.particulars.section_order` (e.g. floorplan early or late, learned)
- `realagent.particulars.location_paragraph_position` ("lead" | "trail", learned)
