{
  "version": "1.0",
  "domain_slug": "property-evaluation-and-due-diligence",
  "generated_at": "2026-05-18T07:42:00Z",
  "orchestrator_agent_id": "8ffee9a7-9668-4f8d-a627-68b440def609",
  "source_wiki_root": "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence",
  "rationale": "From 22 synthesized components, only the procedural and computational tracts pass the 'would a real practitioner reach for this?' smell test. Bias toward fewer high-quality artifacts: 2 focused skills (residential SPA DD playbook + state-by-state tax calculator), 1 MCP server wrapping the AU government data surface (VicPlan/Planning Portal/BAL/EPA/RBA), 1 plugin that bundles the DCF + lease-analysis computational kernel with the skills as a coherent buyer-side toolkit. No agent candidate — domain is judgmental rather than recurring high-frequency task surface, and Multica workspace already has deep-researcher / dev-executor coverage.",
  "candidates": [
    {
      "artifact_type": "skill",
      "artifact_name": "au-residential-spa-dd",
      "artifact_description": "Procedural skill that walks Claude through Australian residential sale-purchase agreement due diligence — s.32 Vendor Statement audit (Vic), state-equivalent vendor disclosure (NSW/QLD/SA/WA), cooling-off period verification, special-conditions drafting (finance, building/pest, subject-to-sale, FIRB), deposit + settlement timing, and key buyer-side rescission triggers.",
      "complexity": "medium",
      "supporting_files": [
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/digest.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/11-residential-spa.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/05-au-title-legal.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/18-au-tax.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/sources.bib"
      ],
      "build_brief": "Produce a single Claude Code skill at the target_dst path. Read components/11-residential-spa.md and components/05-au-title-legal.md as authoritative ground truth — every procedural step, statute citation, and timeframe in the skill MUST trace back to one of those two files or to sources.bib. Structure the skill as: (1) YAML frontmatter (`name`, `description`, `trigger` keywords like 's.32', 'section 32', 'cooling off period', 'residential contract DD', 'FIRB application'); (2) When-to-invoke section; (3) Step 1 — Identify state + property type + buyer type (citizen / PR / foreign); (4) Step 2 — Vendor statement audit checklist with the 14 mandatory s.32 disclosure items table, plus NSW Vendor Disclosure section, plus REIQ contract Form 32a section for QLD; (5) Step 3 — Cooling-off period table (state × calendar/business days × waiver mechanism); (6) Step 4 — Special conditions library (finance subject-to, building/pest, FIRB, subject-to-sale, due-diligence clause) with template language; (7) Step 5 — Deposit + settlement timing rules per state; (8) Step 6 — Red-flag list (off-the-plan sunset risk post-2019 Sale of Land Amendment Act, defective s.32 rescission rights, FIRB non-compliance penalties). Cite sources inline as `[ref: #NN]` matching sources.bib numbering. Hard cap 300 lines.",
      "acceptance_criteria": [
        "File exists at target_dst path with valid YAML frontmatter parseable by Claude Code skill loader (fields: name, description, trigger or auto-detect keywords).",
        "Every numeric value (cooling-off days, FIRB fee threshold, deposit %) is followed by a `[ref: #NN]` citation pointing at sources.bib.",
        "Skill ≤ 300 lines including frontmatter.",
        "Includes complete cooling-off table covering VIC, NSW, QLD, SA, WA, ACT, TAS, NT (any state with no statutory cooling-off must say so explicitly).",
        "Includes 14-item s.32 mandatory disclosure checklist (Sale of Land Act 1962 Vic) verbatim from components/05-au-title-legal.md.",
        "Lists at least 4 buyer rescission triggers under defective s.32 with statutory references.",
        "`grep -c 'ref: #' SKILL.md` returns ≥ 25 (densely cited).",
        "Skill explicitly disclaims it is not legal advice and recommends a licensed conveyancer for execution."
      ],
      "target_dst": "/Users/d/.claude/skills/au-residential-spa-dd/SKILL.md",
      "next_agent_recommendation": "dev-executor (Multica)"
    },
    {
      "artifact_type": "skill",
      "artifact_name": "au-property-tax-calculator",
      "artifact_description": "Procedural skill for computing the complete AU property acquisition + holding tax stack — transfer/stamp duty (state-by-state brackets), land tax (state-by-state thresholds), Foreign Acquirer Surcharge (FAS, 7–9%), Vic Windfall Gains Tax (WGT), Vic Vacant Residential Land Tax (VRLT), CGT exposure flags, GST margin scheme triggers, and Build-to-Rent concessions (federal Jan 2025).",
      "complexity": "medium",
      "supporting_files": [
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/digest.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/18-au-tax.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/sources.bib"
      ],
      "build_brief": "Produce a single Claude Code skill at the target_dst path. Read components/18-au-tax.md as the authoritative source for every rate, threshold, and concession. Structure: (1) YAML frontmatter (triggers: 'stamp duty', 'land tax', 'AU property tax', 'FIRB stamp duty', 'WGT calc', 'VRLT'); (2) Required inputs checklist (state/territory, purchase price, buyer type [Australian citizen/PR/foreign], property type [residential/commercial], use [PPR/investment/development], settlement date); (3) State stamp duty brackets table for VIC, NSW, QLD, SA, WA, ACT, TAS, NT — each with 2025+ rate; (4) Land tax thresholds + rates table per state (NT excepted); (5) Foreign surcharge table (7–9% per state) + de-facto established-dwelling ban (April 2025); (6) Vic-specific levies: WGT formula (50% of >$500k uplift), VRLT 1–3%; (7) CGT exposure decision tree (PPR exemption, 6-year absence rule, foreign resident exclusion post-May 2012); (8) Build-to-Rent concession eligibility checklist (4% capital works deduction; 15% MIT withholding); (9) Worked examples — one residential VIC investor + one commercial NSW asset + one foreign-buyer QLD off-the-plan. Provide either pseudo-code OR a small Python helper as a callable code block that takes a dict of inputs and returns a dict of tax line-items.",
      "acceptance_criteria": [
        "File exists at target_dst path with valid YAML frontmatter.",
        "Stamp duty brackets table covers all 8 AU states/territories with rates verifiable against components/18-au-tax.md.",
        "Every rate, threshold, and effective-date is followed by a `[ref: #NN]` citation to sources.bib.",
        "Skill ≤ 300 lines.",
        "Includes 3 worked examples (residential VIC, commercial NSW, foreign-buyer QLD) showing full tax stack calculation.",
        "Includes a Python helper block (≤ 80 lines) that accepts `{state, price, buyer_type, property_type, use}` and returns line-item dict — executable in isolation via `python -c`.",
        "Flags WGT, VRLT, BTR concessions as Vic/federal-specific to avoid cross-state misapplication.",
        "Disclaimer present stating rates are point-in-time and require verification against current state revenue office publications before reliance."
      ],
      "target_dst": "/Users/d/.claude/skills/au-property-tax-calculator/SKILL.md",
      "next_agent_recommendation": "dev-executor (Multica)"
    },
    {
      "artifact_type": "mcp_server",
      "artifact_name": "au-property-data-mcp",
      "artifact_description": "MCP server exposing Australian government and quasi-government property data sources as agent-callable tools — zone + overlay lookup (VicPlan/NSW Planning Portal/Queensland Globe), Bushfire Attack Level (Geoscience Australia BAL Toolbox), contamination history (EPA Vic Priority Sites Register), cap-rate benchmarks (broker quarterly surveys), ABS dwelling stats, RBA statistical-tables passthrough. Unique value: the AU government data surface has no consolidated MCP wrapper today — agents currently either scrape per-portal HTML or get blocked.",
      "complexity": "very-high",
      "supporting_files": [
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/digest.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/19-data-sources-au.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/06-zoning-planning-heritage.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/08-environmental-climate.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/tools.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/sources.bib"
      ],
      "build_brief": "Build a Python MCP server (use `mcp-server-builder` skill or scaffold from anthropic-mcp-python-sdk template) at target_dst. Read components/19-data-sources-au.md + tools.md for the canonical list of endpoints. Implement at minimum these tools: (1) `lookup_zone(address: str, state: str) -> {zone_code, zone_name, scheme, scheme_url}` — calls VicPlan WMS (Vic), NSW Planning Portal Spatial Viewer API (NSW), Queensland Globe (QLD); other states return graceful `not_supported`. (2) `check_overlays(address: str, state: str) -> [{overlay_type, overlay_code, source_url}]` — heritage, bushfire, flood, environmental audit overlays. (3) `bushfire_attack_level(address: str, vegetation_class: str = 'auto') -> {bal_rating, method, source}` — wraps Geoscience Australia BAL Toolbox / state mapping. (4) `epa_priority_sites_check(address: str) -> {is_listed, listing_details, source_url}` — EPA Vic Priority Sites Register lookup. (5) `regional_cap_rates(market: str, sector: str, quarter: str) -> {low, high, mid, source, source_url}` — aggregates CBRE/JLL/Knight Frank/Colliers/Cushman quarterly surveys (read-only, returns latest known benchmark with publication date). (6) `abs_dwelling_stats(asgs_code: str, metric: str) -> {value, period, source}`. (7) `rba_table(table_id: str, series_id: str) -> {series_data, last_updated}`. Use `pyproject.toml` with `mcp` + `httpx`. Provide README with auth model (most sources are public but rate-limited), local + remote invocation, and ESRI WMS GetFeatureInfo example for VicPlan. Include `tests/test_zone_lookup.py` with at least 3 known-good address fixtures recorded via `respx` (no live calls in CI).",
      "acceptance_criteria": [
        "`pyproject.toml` is valid; `pip install -e .` succeeds in a clean venv.",
        "`python -m au_property_data_mcp --help` shows registered tools and exits 0.",
        "Server registers ≥ 7 tools via `mcp.server.Server`.",
        "Every tool has a JSON schema with descriptions and example invocations in its docstring.",
        "Unit tests pass: `pytest tests/` returns 0 with ≥ 80% line coverage on tool handlers.",
        "README.md documents auth (`VICPLAN_KEY` env, `BROKER_SURVEY_API_KEY`, none for ABS/RBA public CSV endpoints), rate-limit headers, and graceful degradation when a non-VIC/NSW/QLD state is queried.",
        "All public endpoints accessed are documented in supporting_files (no invented APIs).",
        "Server can be launched via `mcp dev au_property_data_mcp` for Inspector debugging."
      ],
      "target_dst": "/Users/d/Developer/au-property-data-mcp/",
      "next_agent_recommendation": "dev-executor (Multica)"
    },
    {
      "artifact_type": "claude_code_plugin",
      "artifact_name": "au-property-dd-toolkit",
      "artifact_description": "Claude Code plugin bundling AU property due-diligence skills, the DCF + cap-rate + lease-analysis computational kernel, and two slash commands (`/property-value` for valuation, `/property-dd` for buyer-side DD orchestration) — a single-install package for any Claude Code instance doing AU property advisory work.",
      "complexity": "very-high",
      "supporting_files": [
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/digest.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/decision.json",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/README.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/02-income-capitalisation-dcf.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/10-commercial-lease-analysis.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/09-financial-dd.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/01-sales-comparison-cma.md",
        "/Users/d/Developer/research-wiki/property-evaluation-and-due-diligence/components/03-cost-approach-residual.md"
      ],
      "build_brief": "Scaffold a Claude Code plugin at target_dst following the `.claude/plugins/<slug>/` convention. Plugin manifest must include `name`, `version: 0.1.0`, `description`, `entry: ./plugin.json`. Bundle: (1) Skill `property-dcf-valuation-kernel` — DCF formulas (NOI build-up, direct cap, terminal value, discount-rate build-up, sensitivity tables) sourced from components/02-income-capitalisation-dcf.md with two worked examples (Melbourne metro industrial + Melbourne suburban office) and a Python helper computing NPV given a structured `cash_flows` dict + discount rate + exit cap. (2) Skill `commercial-lease-analyzer` — rent-roll normalisation, WALE, NOI bridge, option-value, ratchet-clause detection prompts, RLA 2003 (Vic) retail tenant protection flags; references components/10 and components/09. (3) Skill `cma-comparable-adjustment` — comparable selection + adjustment grid + time-of-sale drift correction, references components/01. (4) Slash command `/property-value` (in `.claude/plugins/au-property-dd-toolkit/commands/property-value.md`) that auto-invokes the three valuation skills in sequence and reconciles to a single point estimate. (5) Slash command `/property-dd` that orchestrates: zoning check (calls au-property-data-mcp if installed) → physical inspection checklist → environmental DD → financial DD (using bundled lease analyzer) → contract DD (links to au-residential-spa-dd skill) → tax stack (links to au-property-tax-calculator skill) → produces a markdown DD report template. Plugin must have a `README.md` documenting install, dependencies on `au-residential-spa-dd` + `au-property-tax-calculator` skills + `au-property-data-mcp` server (graceful degradation if missing), and an `examples/` folder with at least one end-to-end DD report rendered from synthetic inputs.",
      "acceptance_criteria": [
        "Directory exists at target_dst with `plugin.json` (or `manifest.json` per current Claude Code plugin spec) parseable and version-pinned.",
        "Plugin loads cleanly via `/plugins install <path>` (or equivalent) — no syntax errors in any bundled SKILL.md frontmatter.",
        "Contains ≥ 3 skills under `skills/` (DCF kernel, lease analyzer, CMA adjuster) — each with citations to sources.bib.",
        "Contains ≥ 2 slash commands under `commands/` — each markdown file has valid command metadata and renders the intended template.",
        "DCF kernel skill's Python helper passes a smoke test: `python -c 'from helper import npv; assert abs(npv({...known_inputs...}, 0.09, 0.0675) - 7_537_000) < 50_000'` — i.e. reproduces Example B from components/02 within ±0.7%.",
        "`/property-dd` command markdown explicitly references the three external artifacts (au-residential-spa-dd skill, au-property-tax-calculator skill, au-property-data-mcp server) by name and degrades gracefully if absent.",
        "README documents the dependency on the other three build candidates in this bundle and includes a quickstart that produces an end-to-end DD report from a synthetic property record.",
        "`examples/` folder contains ≥ 1 rendered end-to-end DD report (markdown) traceable to fixture inputs.",
        "Plugin total size ≤ 200 KB excluding examples."
      ],
      "target_dst": "/Users/d/.claude/plugins/au-property-dd-toolkit/",
      "next_agent_recommendation": "dev-executor (Multica)"
    }
  ],
  "total_candidates": 4,
  "candidate_type_breakdown": {
    "skill": 2,
    "agent": 0,
    "mcp_server": 1,
    "claude_code_plugin": 1
  },
  "build_order_recommendation": [
    "au-residential-spa-dd (skill — quickest standalone value, no external deps)",
    "au-property-tax-calculator (skill — quickest standalone value, no external deps)",
    "au-property-data-mcp (mcp_server — enables /property-dd zoning + env checks)",
    "au-property-dd-toolkit (plugin — depends on the three above)"
  ],
  "notes": [
    "Skipped agent candidate: domain is judgmental, not high-frequency recurring task surface. Multica workspace already has deep-researcher + dev-executor coverage; adding a property-dd agent would duplicate routing without unique value.",
    "Skipped pure-CMA MCP: CoreLogic / PropTrack / APM PriceFinder APIs are commercial-paywalled with strict redistribution licences. A wrapper MCP would be legally fragile without enterprise licensing.",
    "The four candidates compose: skills 1 + 2 are standalone, MCP 3 is standalone, plugin 4 is the aggregator that consumes all three. Build order matters — see build_order_recommendation."
  ]
}
