← back to Pattern Vault

scripts/refresh-trend-board-2026-08-10.py

156 lines

#!/usr/bin/env python3
"""One-shot: refresh trend-board.json for the 2026-08-10 design-trend-scout pass.
Preserves all existing briefs; updates metadata + adds the new Paisley lane/brief."""
import json, io, sys

P = "/Users/macstudio3/Projects/pattern-vault/data/trend-board.json"
d = json.load(open(P))

d["scannedAt"] = "2026-08-10"
d["source"] = "design-trend-scout"
d["spendUsd"] = 0
d["spendNote"] = (
    "$0 (local/free). Exa MCP permission-blocked for the FIFTH consecutive non-interactive "
    "pass (2026-07-13, 07-20, 07-27, 08-03, 08-10) — mcp__exa__web_search_exa returned "
    "'haven't granted it yet' on all 7 parallel calls; WebFetch was ALSO permission-blocked "
    "this pass. Ran 11 marketplace/trend/color/seasonal queries via the granted built-in "
    "WebSearch tool instead, unmetered. $0 logged to cost-ledger.jsonl. Est. had Exa run: "
    "~11-15 x $0.005 = ~$0.06-0.08 (cap was $2). STANDING FIX (5th ask): pre-approve "
    "mcp__exa__* + WebFetch for non-interactive design-trend-scout runs, OR amend the skill "
    "doc to name WebSearch as the sanctioned research path (it has been the de-facto path for "
    "5 straight passes)."
)
d["sources"] = [
    "Spoonflower shop pages (top-sellers, trends-2026, trend-colors-2026, trending) + Spoonflower Blog '2026 Home & Interior Trends' — Art Deco RE-CONFIRMED #1 wallpaper style by volume; layered rich colour/pattern/texture replacing 'Millennial Grey'; block-print cottagecore, tropical/coastal, Mediterranean, woodland/storybook nursery, ceiling-canopy stripes all named.",
    "Artfuly 'Spoonflower Pattern & Colour Trend Report — June 2026' — carried forward: Art Deco #1 by volume (gold on dark), Botanical Maximalism, Heritage Craft Revival (Morris acanthus named bestseller), Coastal Botanical, Tactile Texture/Grasscloth.",
    "Patternbank Trends — Premiere Vision AW26-27 + SS27 print trends (trade-facing): PAISLEY now becoming a PRIMARY print (building 3 seasons, full-scale for 2027); saturated/ornamented/culturally-rooted — paisley + damask + painterly floral + Japanese folk; blurred ethereal florals crossing to home; bold architectural geometrics; surreal/biomorphic.",
    "The Design Agent 'SS27 Trend Forecast' — dreamy blurred florals (strong home crossover), high-contrast architectural geometrics, surreal biomorphic shapes; swing away from muted palettes toward saturated ornamented work.",
    "Etsy: Outfy '25 Top-Selling Home Decor 2026' + market pages + Insight Agent / markty.ai / listifyai Etsy 2026 seasonal calendars — cottagecore (mushrooms, woodland, wildflowers, antique botanical) top home-decor; moody botanicals + boho florals + tropical among peel&stick bestsellers; SEASONAL: fall live by Aug 1, Halloween by late Aug, Christmas Aug 15-Sep 15 (6wk maturity rule).",
    "Creative Market seamless-pattern tag/shops — vintage block-print retro + organic-natural (wood/marble/terrazzo/coral/vine/animal-texture) surfacing; no public volume ranks (as always).",
    "Society6/Redbubble (Merchize wall-art-trends, Accio Society6 top-sellers, Merch Titans) — Society6: Modern Minimalism + Retro/Y2K + Artistic Spiritualism; botanical + abstract/geometric + boho ethnic. Society6 favours fine-art/pattern; Redbubble favours bold graphic.",
    "Wallpaper-trade 2026 forecasts (Nobletts, Canvas&Ivy, Paolo Moschino, Wallpaperdirect, World of Wallpaper, Artscape) — TEXTURE/grasscloth+linen at TOP of the six definitive 2026 trends (quiet luxury, tone-on-tone); Romantic Maximalism + ornate damask revival; MAXIMALISM = 39% of designer picks for the year.",
    "Colour authorities 2026 (Pantone, Benjamin Moore, Sherwin-Williams, Valspar via Quillbot/ArchDaily/Young House Love) — Pantone Cloud Dancer (airy white); BM Silhouette AF-655 (rich espresso brown) + palette of soft off-white / steely green / blush-beige; SW Universal Khaki (warm earthy neutral, 'Tailored & Timeless'); Valspar: warm mid-tone GREEN as the new neutral (Warm Eucalyptus, Sprig of Sage).",
    "Grandmillennial/heritage (Sunset, Camille Styles, Chairish, Tempaper, Funky Paper Co) — grandmillennial surging (chintz, scallop, blue-and-white chinoiserie, checkerboard); checkerboard softening to creams/browns/sages/pinks; oversized murals + block print centre-stage.",
]

d["market"] = (
    "The August-10 read confirms the core engines and surfaces ONE genuinely new lane. "
    "(1) ART DECO GEOMETRIC is RE-CONFIRMED the #1 selling wallpaper style by volume on "
    "Spoonflower in 2026 (gold on dark grounds) — deco-01 stays the single best-evidenced build; "
    "we still hold zero. (2) TEXTURE/grasscloth is now named at the TOP of the six 'definitive' "
    "2026 wallpaper trends (quiet luxury, tone-on-tone) — 6th consecutive scan unfilled. "
    "(3) NEW: PAISLEY has crossed from accent to PRIMARY print — Patternbank/Premiere Vision say "
    "it's been building three seasons and full-scale paisley is expected for 2027, sitting inside "
    "the SS27 'saturated + ornamented + culturally-rooted' cluster alongside damask + painterly "
    "floral. This is the first NEW lane since the check family; we hold zero paisley → new brief "
    "paisley-01. (4) MAXIMALISM is quantified at 39% of designer picks for the year (romantic "
    "maximalism / ornate damask revival) — a lane we are STRONG in (Nocturne x7 + damask + Arden), "
    "so it is a positioning/coverage strength, not a build. (5) The 2026 PALETTE crystallized at "
    "the colour-authority level: Pantone Cloud Dancer (airy white), Benjamin Moore Silhouette "
    "(rich ESPRESSO BROWN) + steely green + blush-beige, Sherwin-Williams Universal Khaki, and "
    "Valspar's call that warm mid-tone GREEN is the new neutral. Espresso-brown + green-as-neutral "
    "become explicit colorway steers across the briefs. (6) SEASONAL CLOCK ADVANCED HARD (see "
    "opsSignals): today is Aug 10 — the Etsy fall-listing window (list by Aug 1) is already past, "
    "Halloween (list by ~late Aug) is marginal, and CHRISTMAS (list Aug 15-Sep 15) is the one "
    "window still fully catchable. The catalog is unchanged for a FIFTH scan, so the honest "
    "headline is unchanged: research keeps validating and now adds paisley + a crystallized palette; "
    "the sole constraint is the gated generation step."
)

d["palette"] = (
    "2026 interior core (crystallized at colour-authority level this pass): "
    "Cloud Dancer airy off-white (Pantone CoY 2026) + soft creams; ESPRESSO/rich brown "
    "(Benjamin Moore Silhouette AF-655 — the season's grounding dark, pairs with our chamois/greige) "
    "+ Milk-Chocolate brown; warm mid-tone GREEN as the NEW NEUTRAL (Valspar Warm Eucalyptus, "
    "Sprig of Sage; deep-forest->celadon range = most-requested wallpaper ground); Universal Khaki "
    "/ warm beige-sand-clay-taupe earthy neutrals (SW CoY); steely/sage green + blush-beige (BM "
    "trend palette). Deco register: metallic gold on dark grounds (ink, charcoal, deep teal). "
    "Paisley/ornamented register: saturated jewel grounds — oxblood, ink, forest, aubergine — with "
    "gold/ivory linework. AW26/27 fashion-side: Timeless Teal (the season's dark), Oat Milk, Milk "
    "Chocolate, Aurora Purple + Luminous Lime accents. Botanical-maximalism: emerald + moss + "
    "mustard (+ burnt orange). Coastal/Mediterranean: aqua/seafoam + sand + sun-washed terracotta. "
    "Nursery: creamy white, misty taupe, moss + mauve/dusty-pink. Seasonal Q4: harvest "
    "ochre/pumpkin/umber; Halloween ink+oxblood+ochre (elegant, not kitsch); Christmas "
    "forest+oxblood+gold tartan."
)

d["catalogNote"] = (
    "Catalog STILL unchanged since 2026-07-02 (38 designs, all pricingStatus:DRAFT). FIVE "
    "consecutive scans (07-13, 07-20, 07-27, 08-03, 08-10) with zero briefs generated. The "
    "research side now carries volume-ranked bestseller data (Art Deco #1), a crystallized 2026 "
    "palette, a new paisley lane, and a partially-EXPIRING seasonal window; the constraint remains "
    "the gated generation step. The Etsy fall-listing window has now lapsed unfilled; Christmas "
    "(list Aug 15-Sep 15) is the last Q4 window still catchable if a batch is green-lit this week."
)

d["opsSignals"] = [
    "SEASONAL DEADLINE — ERODED: today is 2026-08-10. Etsy fall-decor listing window (list by ~Aug 1 for 6wk ranking maturity) has ALREADY LAPSED unfilled. Halloween (list by ~late Aug) is now marginal — generation+listing must land inside ~10 days. CHRISTMAS (list Aug 15-Sep 15) is the ONLY Q4 window still fully catchable. The board has now carried a seasonal deadline across two scans and watched the fall slice expire for want of a green-light — the cost of the generation bottleneck is no longer hypothetical.",
    "Etsy digital economics unchanged: bundling 5-10 coordinating patterns = premium $8-20 listing; commercial-license tiers command 3-5x. Ship colorway FAMILIES as bundles (briefs already shaped this way). Harvest Ditsy + Hallows Damask pair is a deliberate bundle seed.",
    "PAISLEY is the new build signal this pass — trade-forecaster consensus (Patternbank / Premiere Vision) that it has crossed from accent to primary print and goes full-scale for 2027. Zero coverage. New brief paisley-01 (jewel-ground ornamented, settlement-SAFE as pure paisley teardrop motif with no prohibited elements).",
    "COLOUR steer crystallized: BM Silhouette espresso-brown + Valspar green-as-new-neutral + Pantone Cloud Dancer white. Add an espresso-brown and a mid-green colorway option to the texture, acanthus, and deco briefs where they don't already carry one.",
    "Exa MCP: FIFTH consecutive permission-blocked scan; WebFetch also blocked this pass. WebSearch has now been the de-facto research path for 5 straight passes at $0. Either pre-approve mcp__exa__* + WebFetch for this skill's non-interactive context, or formally bless WebSearch in the skill doc so the 'metered Exa within a cap' rail matches reality.",
    "Generation bottleneck: 5 scans, 28 settlement-safe briefs (paisley-01 added), 0 generated. Research is not the limiter — the gated generation/listing step is. A green-lit ~8-design first batch would validate the whole demand->gap->brief->generate loop and (if run this week) still catch the Christmas window.",
]

d["topPriorities"] = [
    "1. Gilded Fan Deco (deco-01) — Art Deco RE-CONFIRMED the #1 selling wallpaper style by volume on Spoonflower in 2026 (gold on dark); we hold zero. The single best-evidenced build on the board, two scans running.",
    "2. Christmas seasonal (seasonal-02 Yuletide Tartan + any Christmas colorway of a heritage brief) — the ONLY Q4 window still fully catchable (list Aug 15-Sep 15). Fall has lapsed; Halloween (seasonal-01 Harvest Ditsy + Hallows Damask) is marginal at ~10 days but still worth it if capacity allows. Cheap digital-tier builds; missing Christmas too costs a full year.",
    "3. Texture duo (texture-01/02) — 6th scan unfilled; named at the TOP of the six definitive 2026 wallpaper trends; add an espresso-brown colorway (BM Silhouette) alongside wheat/caramel.",
    "4. Paisley (paisley-01, NEW) — trade-forecaster consensus that paisley crossed to a primary print and goes full-scale for 2027; zero coverage; jewel-ground ornamented, settlement-SAFE.",
    "5. Acanthus Revival (morris-01) + Skins duo (Verdant Tiger Stripe animalprint-02 + Croc Plaster Texture animalprint-03) — Morris acanthus a named Spoonflower bestseller with a terracotta/clay/sage gap; tiger still the It skin, croc/snake emerging and doubling as a texture play.",
    "META: green-light a first generation batch THIS WEEK — five scans, 28 settlement-safe briefs, zero generated, and a seasonal window that is now actively expiring (fall already lost). Suggested ~8 first batch: deco-01 + seasonal-02 + seasonal-01(a+b) + texture-01 + paisley-01 + morris-01 + animalprint-02.",
]

# --- add the new Paisley lane to trends[] (insert near the top-priority band) ---
paisley_lane = {
    "lane": "Paisley (ornamented teardrop — rising to primary print)",
    "why": "Patternbank/Premiere Vision consensus: paisley has been building three seasons and is now becoming a PRIMARY print (not an accent), with full-scale paisley expected for 2027 — sits in the SS27 saturated+ornamented+culturally-rooted cluster with damask + painterly floral. First genuinely new lane since the check family.",
    "priceBand": "commercial_print $495 (statement ornamented repeat; jewel-ground)",
    "haveCoverage": "NONE",
    "gap": "HIGH — strong forward-looking trade signal, zero coverage, settlement-SAFE (pure paisley teardrop carries no prohibited elements), cheap to close with one dense repeat x2-3 jewel colorways",
}
# Mediterranean coastal note folded into the existing coastal lane's 'why' if present
lanes = d.get("trends", [])
# insert paisley right after the animal-skin lane (keep the demand-ranked ordering: deco, seasonal, texture, skins, paisley, ...)
insert_at = 4
for i, l in enumerate(lanes):
    if "Animal-skin" in l.get("lane", ""):
        insert_at = i + 1
        break
lanes.insert(insert_at, paisley_lane)
# refresh the coastal lane 'why' to name Mediterranean (new sub-signal this pass)
for l in lanes:
    if l.get("lane", "").startswith("Coastal botanical"):
        l["why"] = (l.get("why", "").rstrip(".") +
                    ". Aug-10 add: Spoonflower names MEDITERRANEAN (sun-washed) alongside coastal/maritime as a distinct 2026 direction — same aqua/seafoam+sand+terracotta family, strongest listing months spring/summer.")
d["trends"] = lanes

# --- add the new Paisley brief, preserving all 27 existing briefs ---
paisley_brief = {
    "id": "BRIEF-2026-paisley-01",
    "lane": "Paisley (ornamented teardrop)",
    "title": "Jewel Paisley — Ornamented Repeat",
    "prompt": (
        "Original ornate paisley (boteh/teardrop) repeat — dense, hand-drawn-look ornamented "
        "teardrops with fine interior filigree linework, layered scale (large boteh anchored by "
        "small filler botehs), balanced all-over repeat; saturated ornamented register per the "
        "SS27 paisley+damask direction. Pure paisley teardrop motif only — NO leaves/palm-fronds "
        "with directional variation, NO open tropical negative space, NO bananas/grapes/birds/"
        "butterflies."
    ),
    "colorway": (
        "Gold/ivory linework on oxblood (LEAD — jewel ground); alts: gold on ink-charcoal, and "
        "ivory-on-forest-green (ties Valspar green-as-new-neutral)"
    ),
    "targetTier": "commercial_print $495",
    "settlement": "SAFE — pure paisley teardrop ornament carries none of the Part-A directional-foliage or Part-B prohibited elements; runs through the settlement gate at generation as a formality",
    "status": "NEW 2026-08-10 — first paisley brief; trade-forecaster consensus (primary print, full-scale 2027)",
}
d["briefs"].append(paisley_brief)

with io.open(P, "w", encoding="utf-8") as f:
    json.dump(d, f, indent=2, ensure_ascii=False)

print("WROTE", P)
print("scannedAt:", d["scannedAt"], "| trends:", len(d["trends"]), "| briefs:", len(d["briefs"]), "| spendUsd:", d["spendUsd"])