Lacuna/Labs

Curator Automations

Every Curator automation, with a layperson explanation of the math or principle behind it. Living document — regenerated from the canonical MD whenever it changes.

v1.0 · 601 entries · regenerated 2026-06-05 16:31 · source: curator/docs/AUTOMATIONS-CANONICAL.md

man(1)-shaped per-automation pages live now. Every card below has a [man →] anchor; each opens a Unix-style reference document for that automation. Deep-linkable. URL pattern: /docs/automations/<name>.html
601 entries
Tierwhite (155)pink (112)green (125)light purple (92)deep purple (101)retired (16)
Section§6. White — atomic tools§7. Pink — Sakura local§8. Green — cloud assist + web search + vision§9. Light purple — cloud reasoning§10. Deep purple ✨ — deep reasoning§13. Matrix absorption — Bloom tier ($0 / $9.99) additions§14. Matrix absorption — Magic tier ($39.99) additions§15. Matrix absorption — Power tier ($99.99) additions§16. Matrix absorption — Enterprise tier ($399.99) additions§17. Matrix absorption — per-marketplace deep dives§18. Matrix absorption — long-tail cross-capability combinations§19. Retired-by-merge appendix§22. Finance — AI/subsystem + deep-purple cluster

Left-border color = cost tier. White = atomic (free). Pink = Sakura local (free). Green = cloud assist + web search + vision. Light purple = cloud reasoning. Deep purple = deep reasoning.

§6. White — atomic tools143 entries

cart_status
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Status + recent events for a cart.

Read-only peek at one cart's current state and recent events. The 'what did this thing just do' tool.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cart_status.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cart_open
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Open the Automation Studio on a cart.

Surface the Automation Studio on a specific cart so the operator can edit, inspect, or fire it manually.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cart_open.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cart_start
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Fire a cart against the live store.

Fire a cart against the live store. Destructive — eight-star canon applies. Operator must consent.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cart_start.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cart_stop
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Halt a running cart.

Halt a running cart cleanly. The 'undo' for an in-flight automation.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cart_stop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cart_propose
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Suggest 1-3 carts from operator intent.

Given operator intent, suggest one to three carts that match. Picker, not executor.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cart_propose.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cart_validate
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Run the eight-star lint on cart source.

Run the eight-star safety lint on cart source. Pure check, no fire. Static safety pass before anything dangerous happens.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cart_validate.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
list_listings
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

List listings on a platform with filters.

Return the operator's listings on one platform, filtered. The bread-and-butter read; everything else composes on top.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/list_listings.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
search_listings
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Semantic + tag search across operator's listings.

Semantic + tag search across the operator's own listings. Finds 'the pink hoops I made last spring' even if the listing never used the word 'pink.'
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/search_listings.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
open_listing
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Open the listing drawer.

Open the listing drawer in the UI. No write — just navigation. The operator clicks; the right pane focuses.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/open_listing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft_listing
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Create a local draft in Cortex.

Create a local draft in Cortex. Never touches the live store. Local-drafts canon — drafts stay local until the operator publishes.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft_listing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
update_listing
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Update fields on a live listing.

Edit fields on a live listing. Destructive — eight-star canon. The consent gate fires before the write.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/update_listing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
publish_listing
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Take a draft live.

Take a local draft live. The most destructive action in the API — gets the strictest consent gate. Operator must say yes.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/publish_listing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
list_orders
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

List recent orders.

Read recent orders. Filterable by date, status, buyer, country. Pure read; no LLM, no spend.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/list_orders.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft_customer_message
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Draft a buyer reply (never sends).

Compose a buyer-facing reply (never sends). Lives in the drafts pane for the operator to review and fire manually.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft_customer_message.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
send_customer_message
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Send a previously-drafted reply.

Send a previously-drafted buyer reply. Destructive — eight-star canon. Always reads back the draft before firing.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/send_customer_message.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cortex_query
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Read Cortex in one of four lenses.

Read Cortex through one of four lenses (facts / state / drift / history). Sakura's primary read API — the way she knows what you have, what's changed, and what's coming.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cortex_query.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cortex_write
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Pin a structured fact to a node.

Pin a structured fact to a Cortex node. The way Sakura remembers across sessions. Append-only, hash-chained.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cortex_write.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cortex_recent_turns
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Read recent chat turns.

Read the recent chat history with Sakura. The way Sakura remembers what you said in the last few minutes without re-loading everything.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cortex_recent_turns.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
web_scrape
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Pull a URL via web search with optional schema extraction.

Atomic operator-commanded tool. No autonomy, no LLM call. Sakura can invoke it; the operator clicks it. Building block.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/web_scrape.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
web_search
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Web search bounded to seller-handbook sites.

Atomic operator-commanded tool. No autonomy, no LLM call. Sakura can invoke it; the operator clicks it. Building block.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/web_search.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
peer_lookup
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Find k peer listings on the same platform.

Atomic operator-commanded tool. No autonomy, no LLM call. Sakura can invoke it; the operator clicks it. Building block.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/peer_lookup.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
policy_lookup
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Targeted lookup of a platform's policy clause.

Atomic operator-commanded tool. No autonomy, no LLM call. Sakura can invoke it; the operator clicks it. Building block.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/policy_lookup.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
fly_to_card
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Move the camera to a card.

Move the camera to a card. Pure UI navigation; no data write. Used by Sakura when she's pointing at something.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/fly_to_card.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
enter_focus_mode
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Enter fullscreen / focused-card mode.

Enter fullscreen / focused-card mode. UI navigation. The illusion-of-navigation that's actually animation — one persistent canvas underneath.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/enter_focus_mode.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
exit_focus_mode
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Return to overview.

Return to the overview. UI navigation. Reverse of focus mode.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/exit_focus_mode.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
show_notification
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

Inline notification chip.

Surface a quiet inline chip in the operator's view. Pure UI; the operator sees the chip when they happen to look.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/show_notification.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cortex.aggregate
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

NEW. Aggregate over Cortex (sum/mean/median/count/percentile/topk/bottomk/group-by). The math API.

One verb for sum / mean / median / count / percentile / top-k / group-by over Cortex. The math API every grounded answer flows through. Never invents numbers — only reduces real ones.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cortex.aggregate.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
pii_detect
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.1 The 28-tool API surface (the runtime catalog Sakura sees) man →

NEW. Sub-tool from PII detector; surfaces inline for caller's gate.

Scan a payload for likely names, addresses, emails, card numbers, IDs. Returns flags; the caller decides what to do. Defense-in-depth primitive.
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/pii_detect.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
list-all
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "All listings"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-all
;;~ touches  ()
;;~ summary  "Every listing in the shop, newest first."

(cart 'list-all
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (act 'etsy/listings (list 'all) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (table rows '(listing-id title state price quantity))
    (done)))

source: curator-web/src/scheme/carts/etsy/list-all.sks · 21 lines

Example

Operator opens the All listings card. Sakura calls etsy/listings, renders newest-first, and shows the table. The simplest read cart — useful as the architectural reference for every white cart.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
list-active
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Active listings"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-active
;;~ touches  ()
;;~ summary  "Every listing live + buyable right now. Reads through Etsy via act → named result handler — no direct verb calls."

;; A WHITE cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real
;; request, threads the response into ctx's 'last-result, then jumps
;; to the named state fn. This is the same shape every read cart uses;
;; the only difference between this and a write cart is whether the
;; cart's 'touches lists a gated verb.

(cart 'list-active
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (act 'etsy/listings (list 'active) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (table rows '(listing-id title price quantity views favorites))
    (done)))

source: curator-web/src/scheme/carts/etsy/list-active.sks · 28 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
list-draft
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Draft listings"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-draft
;;~ touches  ()
;;~ summary  "Started but not yet published."

;; Started but not yet published.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-draft
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'draft) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-draft.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-inactive
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Inactive listings"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-inactive
;;~ touches  ()
;;~ summary  "Hidden from the storefront."

;; Hidden from the storefront.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-inactive
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'inactive) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-inactive.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-sold-out
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Sold-out listings"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-sold-out
;;~ touches  ()
;;~ summary  "Live but quantity = 0."

;; Live but quantity = 0.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-sold-out
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'sold-out) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-sold-out.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-private
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Private listings"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-private
;;~ touches  ()
;;~ summary  "Direct-link only."

;; Direct-link only.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-private
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'private) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-private.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-by-section
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "By section"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-by-section
;;~ touches  ()
;;~ summary  "Group listings by shop section."

;; Group listings by shop section.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-by-section
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'by-section) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-by-section.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-by-tag
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "By tag"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-by-tag
;;~ touches  ()
;;~ summary  "Group listings by tag."

;; Group listings by tag.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-by-tag
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'by-tag) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-by-tag.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-by-price
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "By price band"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-by-price
;;~ touches  ()
;;~ summary  "Histogram by price ranges."

;; Histogram by price ranges.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-by-price
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'by-price) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-by-price.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-by-category
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "By category"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-by-category
;;~ touches  ()
;;~ summary  "Group by Etsy taxonomy."

;; Group by Etsy taxonomy.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-by-category
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'by-category) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-by-category.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-new-week
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "New this week"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-new-week
;;~ touches  ()
;;~ summary  "Listed in the last 7 days."

;; Listed in the last 7 days.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'list-new-week
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'new-7d) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title state price quantity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/list-new-week.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
list-needs-attention
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'List / browse (12)' group. Operator-commanded data surface in the Analysis tab.

Pure read against Cortex with a filter. No LLM, no API spend. Renders as a table or grid in the Analysis tab. The white-tier baseline.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Needs attention"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       list-needs-attention
;;~ touches  ()
;;~ summary  "Listings that flunk a basic health check — missing photos, tags, or description. Architect-shape: verb call via (act), filtering in a named state fn."

;; A listing flunks if it is active AND any of:
;;   · zero or one image attached
;;   · fewer than 10 tags
;;   · description shorter than 40 characters
;;
;; Three states: start → score → render → done. The fetch sits inside
;; (act ...); 'score reads the result via ctx-result and applies the
;; predicate.

(cart 'list-needs-attention
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (flunks? l)
  (and (eq? (listing-state l) 'active)
       (or (< (length (listing-images l)) 2)
           (< (length (listing-tags l)) 10)
           (< (string-length (listing-description l)) 40))))

(define (start ctx)
  (act 'etsy/listings (list 'active) 'score))

(define (score ctx)
  (let* ((all  (ctx-result ctx))
         (rows (filter flunks? all)))
    (next 'render (ctx-set 'rows rows ctx))))

(define (render ctx)
  (let ((rows (ctx-get 'rows ctx)))
    (table rows '(listing-id title state image-count tag-count desc-length))
    (done)))

source: curator-web/src/scheme/carts/etsy/list-needs-attention.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-today
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue today"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-today
;;~ touches  ()
;;~ summary  "Today's net sales after fees. Fetches via etsy/receipts, sums, renders a single number."

(cart 'revenue-today
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (act 'etsy/receipts (list 'today) 'sum))

(define (sum ctx)
  (let* ((receipts (ctx-result ctx))
         (total    (sum-net receipts)))
    (next 'render (ctx-set 'total total ctx))))

(define (render ctx)
  (value 'revenue-today (ctx-get 'total ctx))
  (done))

source: curator-web/src/scheme/carts/etsy/revenue-today.sks · 25 lines

Example

Operator asks "how much today?" Sakura sums today's receipts after Etsy fees. One number, your number, no internet involved.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-week
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue · this week"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-week
;;~ touches  ()
;;~ summary  "Last 7 days."

;; Last 7 days.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-week
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'this-week) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-week.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-month
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue · this month"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-month
;;~ touches  ()
;;~ summary  "Month-to-date."

;; Month-to-date.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-month
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'this-month) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-month.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-year
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue · this year"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-year
;;~ touches  ()
;;~ summary  "Year-to-date."

;; Year-to-date.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-year
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'this-year) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-year.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-30-by-day
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue · 30 days by day"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-30-by-day
;;~ touches  ()
;;~ summary  "Daily series."

;; Daily series.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-30-by-day
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list '30d 'by-day) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-30-by-day.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-12-by-week
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue · 12 weeks"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-12-by-week
;;~ touches  ()
;;~ summary  "Weekly series."

;; Weekly series.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-12-by-week
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list '12w 'by-week) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-12-by-week.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-12-by-month
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue · 12 months"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-12-by-month
;;~ touches  ()
;;~ summary  "Monthly series."

;; Monthly series.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-12-by-month
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list '12m 'by-month) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-12-by-month.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-by-section
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue by section"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-by-section
;;~ touches  ()
;;~ summary  "Which sections earn."

;; Which sections earn.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-by-section
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'by-section) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-by-section.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-by-tag
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue by tag"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-by-tag
;;~ touches  ()
;;~ summary  "Which tags convert."

;; Which tags convert.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-by-tag
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'by-tag) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-by-tag.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-by-category
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue by category"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-by-category
;;~ touches  ()
;;~ summary  "Which taxonomy node earns."

;; Which taxonomy node earns.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-by-category
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'by-category) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-by-category.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
top-sellers-30
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Top sellers · 30 days"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       top-sellers-30
;;~ touches  ()
;;~ summary  "Biggest movers in the last month."

;; Biggest movers in the last month.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'top-sellers-30
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'top-sellers '30d) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/top-sellers-30.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
top-sellers-90
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Top sellers · 90 days"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       top-sellers-90
;;~ touches  ()
;;~ summary  "Quarterly winners."

;; Quarterly winners.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'top-sellers-90
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'top-sellers '90d) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/top-sellers-90.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
top-sellers-365
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Top sellers · year"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       top-sellers-365
;;~ touches  ()
;;~ summary  "Annual winners."

;; Annual winners.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'top-sellers-365
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'top-sellers '365d) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/top-sellers-365.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
slow-sellers-90
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Slowest sellers · 90 days"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       slow-sellers-90
;;~ touches  ()
;;~ summary  "Not selling."

;; Not selling.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'slow-sellers-90
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'slow-sellers '90d) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/slow-sellers-90.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
zero-sale-listings
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex filter: listings with zero sales since they were created. Diagnostic for the 'why isn't this moving' conversation.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Zero-sale listings"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       zero-sale-listings
;;~ touches  ()
;;~ summary  "Active but never sold."

;; Active but never sold.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'zero-sale-listings
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'zero-sales) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/zero-sale-listings.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
revenue-after-fees
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Sales / revenue (16)' group. Operator-commanded data surface in the Analysis tab.

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Revenue after fees"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       revenue-after-fees
;;~ touches  ()
;;~ summary  "Net of all Etsy fees."

;; Net of all Etsy fees.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'revenue-after-fees
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/ledger (list 'after-fees) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(period revenue orders))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/revenue-after-fees.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
orders-today
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Orders today"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       orders-today
;;~ touches  ()
;;~ summary  "Today's orders."

;; Today's orders.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'orders-today
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'today) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/orders-today.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
orders-week
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Orders · this week"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       orders-week
;;~ touches  ()
;;~ summary  "7-day window."

;; 7-day window.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'orders-week
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'this-week) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/orders-week.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
orders-unshipped
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Unshipped orders"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       orders-unshipped
;;~ touches  ()
;;~ summary  "Paid but not yet shipped."

;; Paid but not yet shipped.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'orders-unshipped
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'unshipped) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/orders-unshipped.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
orders-shipped
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Shipped orders"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       orders-shipped
;;~ touches  ()
;;~ summary  "Already on their way."

;; Already on their way.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'orders-shipped
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'shipped) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/orders-shipped.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
orders-by-buyer
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Orders by buyer"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       orders-by-buyer
;;~ touches  ()
;;~ summary  "Group orders by buyer."

;; Group orders by buyer.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'orders-by-buyer
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'by-buyer) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/orders-by-buyer.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
orders-by-country
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Orders by country"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       orders-by-country
;;~ touches  ()
;;~ summary  "Where buyers are."

;; Where buyers are.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'orders-by-country
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'by-country) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/orders-by-country.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
orders-needs-review
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Orders needing a review"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       orders-needs-review
;;~ touches  ()
;;~ summary  "Closed orders without a review nudge."

;; Closed orders without a review nudge.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'orders-needs-review
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'needs-review) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/orders-needs-review.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
orders-for-listing
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Order history for a listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       orders-for-listing
;;~ touches  ()
;;~ summary  "When did this thing sell."

;; When did this thing sell.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'orders-for-listing
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'today) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/orders-for-listing.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
avg-order-value
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Average order value"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       avg-order-value
;;~ touches  ()
;;~ summary  "Mean basket size."

;; Mean basket size.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'avg-order-value
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'aov) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/avg-order-value.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
repeat-buyers
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pull buyers who match a behavior pattern. Suggest a tailored touch — a thank-you, a restock note, a recovery message. Cheap care that compounds.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Repeat buyers"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       repeat-buyers
;;~ touches  ()
;;~ summary  "Buyers who came back."

;; Buyers who came back.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'repeat-buyers
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'repeat-buyers) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/repeat-buyers.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
shipment-deadlines
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Shipment deadlines"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       shipment-deadlines
;;~ touches  ()
;;~ summary  "When the clock runs out."

;; When the clock runs out.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'shipment-deadlines
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'deadlines) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/shipment-deadlines.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
refunds-30
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Receipts / orders (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read against the receipts ledger. No LLM. Operator clicks a filter, the cart returns rows. The building blocks every higher tier composes on.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Refunds · 30 days"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       refunds-30
;;~ touches  ()
;;~ summary  "What got returned."

;; What got returned.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'refunds-30
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/receipts (list 'refunds '30d) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(receipt-id buyer total state shipped-at))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/refunds-30.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-detail
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing detail"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-detail
;;~ touches  ()
;;~ summary  "Full record for one listing."

;; Full record for one listing.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-detail
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(field value))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-detail.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-images
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing images"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-images
;;~ touches  ()
;;~ summary  "All photos for one listing."

;; All photos for one listing.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-images
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/images (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(image-id rank src))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-images.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-tags
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing tags"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-tags
;;~ touches  ()
;;~ summary  "Tag list for one listing."

;; Tag list for one listing.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-tags
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(tag))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-tags.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-variations
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing variations"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-variations
;;~ touches  ()
;;~ summary  "Size/colour/material variants."

;; Size/colour/material variants.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-variations
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/inventory (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(variation-id sku qty price))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-variations.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-shipping
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing shipping profile"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-shipping
;;~ touches  ()
;;~ summary  "How this ships."

;; How this ships.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-shipping
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(field value))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-shipping.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-history-30
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing history · 30 days"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-history-30
;;~ touches  ()
;;~ summary  "Recent activity for a listing."

;; Recent activity for a listing.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-history-30
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/receipts (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(date event detail))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-history-30.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-reviews
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing reviews"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-reviews
;;~ touches  ()
;;~ summary  "Reviews attached to one listing."

;; Reviews attached to one listing.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-reviews
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/reviews (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(review-id rating stars date))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-reviews.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-views-vs-favs
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Views vs favorites"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-views-vs-favs
;;~ touches  ()
;;~ summary  "Window-shop ratio."

;; Window-shop ratio.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-views-vs-favs
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(field value))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-views-vs-favs.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-favs-trend
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Favorites trend"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-favs-trend
;;~ touches  ()
;;~ summary  "Favorite count over time."

;; Favorite count over time.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'listing-favs-trend
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(field value))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/listing-favs-trend.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
shop-policies
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Shop policies"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       shop-policies
;;~ touches  ()
;;~ summary  "Returns + shipping + payment."

;; Returns + shipping + payment.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'shop-policies
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/shop (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(field value))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/shop-policies.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
shop-sections
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Shop sections"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       shop-sections
;;~ touches  ()
;;~ summary  "All sections in the shop."

;; All sections in the shop.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'shop-sections
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/sections (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(field value))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/shop-sections.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
shop-stats
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Listing inspection (12)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read for one listing or shop attribute. No LLM, no spend. Renders the requested slice in the Analysis tab. Operator clicks; the data shows up.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Shop stats"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       shop-stats
;;~ touches  ()
;;~ summary  "Headline shop numbers."

;; Headline shop numbers.
;;
;; Read-only inspection cart. Needs 'listing-id (or 'shop-id) in ctx.
;; Standard wrapper: precondition_fetch (ctx has the id) -> act -> render.

(cart 'shop-stats
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/shop (list id) 'render)))

(define (render ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (begin
                                         (table r '(field value))
                                         (done))))))

source: curator-web/src/scheme/carts/etsy/shop-stats.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
fav-to-sale-ratio
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Favorites ÷ sales over a window. High favs + low sales = pricing or shipping; low favs = discoverability. Diagnoses different problems.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Favorite-to-sale ratio"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       fav-to-sale-ratio
;;~ touches  ()
;;~ summary  "How well favorites convert."

;; How well favorites convert.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'fav-to-sale-ratio
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'fav-to-sale-ratio) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/fav-to-sale-ratio.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
view-to-sale-ratio
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Views ÷ sales. The classic conversion ratio. Compare against your shop median, not an industry benchmark — your category is your benchmark.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "View-to-sale ratio"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       view-to-sale-ratio
;;~ touches  ()
;;~ summary  "Conversion from a glance."

;; Conversion from a glance.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'view-to-sale-ratio
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'view-to-sale-ratio) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/view-to-sale-ratio.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
view-to-fav-ratio
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Views ÷ favorites. Tests whether the listing photo + title is doing its first job (intriguing the browser).
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "View-to-favorite ratio"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       view-to-fav-ratio
;;~ touches  ()
;;~ summary  "Click intent."

;; Click intent.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'view-to-fav-ratio
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'view-to-fav-ratio) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/view-to-fav-ratio.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-sell-through
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Sold ÷ available, per listing. The 'how fast does this move' answer.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Sell-through · per listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       listing-sell-through
;;~ touches  ()
;;~ summary  "Sold ÷ listed window."

;; Sold ÷ listed window.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'listing-sell-through
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'listing-sell-through) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/listing-sell-through.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
category-sell-through
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Same ratio, but rolled up to a section or category. Tells you where in the shop the momentum is.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Sell-through · per category"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       category-sell-through
;;~ touches  ()
;;~ summary  "Which categories convert."

;; Which categories convert.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'category-sell-through
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'category-sell-through) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/category-sell-through.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
price-vs-section-median
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Price vs section median"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       price-vs-section-median
;;~ touches  ()
;;~ summary  "How priced compared to section peers."

;; How priced compared to section peers.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'price-vs-section-median
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'price-vs-section-median) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/price-vs-section-median.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
price-vs-category-median
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Price vs category median"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       price-vs-category-median
;;~ touches  ()
;;~ summary  "How priced compared to category peers."

;; How priced compared to category peers.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'price-vs-category-median
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'price-vs-category-median) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/price-vs-category-median.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
cost-vs-price-margin
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Margin in dollars and percent per listing. The honest 'am I making money on this' answer — Cortex knows your cost basis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Cost vs price · margin"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       cost-vs-price-margin
;;~ touches  ()
;;~ summary  "Gross margin per listing."

;; Gross margin per listing.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'cost-vs-price-margin
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'cost-vs-price-margin) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/cost-vs-price-margin.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
fee-percentage
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Etsy + payment + shipping fees as a percent of the listing price. The 'where the money actually went' breakdown.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Fee percentage"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       fee-percentage
;;~ touches  ()
;;~ summary  "Etsy take as % of revenue."

;; Etsy take as % of revenue.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'fee-percentage
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/ledger (list 'fee-percentage) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/fee-percentage.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
shipping-fee-pct
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Shipping fee charged ÷ listing price. Diagnostic for 'is my shipping scaring buyers off.'
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Shipping fee percentage"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       shipping-fee-pct
;;~ touches  ()
;;~ summary  "Shipping as % of price."

;; Shipping as % of price.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'shipping-fee-pct
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/ledger (list 'shipping-fee-pct) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/shipping-fee-pct.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
avg-days-to-sell
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Mean time from publish to first sale, per section or category. The 'how patient should I be' answer.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Average days to sell"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       avg-days-to-sell
;;~ touches  ()
;;~ summary  "Mean time-to-sale."

;; Mean time-to-sale.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'avg-days-to-sell
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'avg-days-to-sell) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/avg-days-to-sell.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
age-distribution
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Histogram of listing ages. Lets you see how fresh the shop catalog is at a glance.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing-age distribution"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       age-distribution
;;~ touches  ()
;;~ summary  "How old your inventory is."

;; How old your inventory is.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'age-distribution
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'age-distribution) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/age-distribution.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
dead-listings
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex filter: no views or favorites in 60 days. The graveyard list — usually the right answer is renew-or-let-die.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Dead listings"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       dead-listings
;;~ touches  ()
;;~ summary  "No view in 60 days."

;; No view in 60 days.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'dead-listings
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'dead-listings) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/dead-listings.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
under-by-favs
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Atomic operator-commanded tool. No autonomy, no LLM call. Sakura can invoke it; the operator clicks it. Building block.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Under-performers · favorites"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       under-by-favs
;;~ touches  ()
;;~ summary  "High favorites, low sales."

;; High favorites, low sales.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'under-by-favs
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'under-by-favs) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/under-by-favs.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
over-by-views
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

Atomic operator-commanded tool. No autonomy, no LLM call. Sakura can invoke it; the operator clicks it. Building block.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Over-performers · views"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       over-by-views
;;~ touches  ()
;;~ summary  "Lots of views, no buys."

;; Lots of views, no buys.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'over-by-views
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'over-by-views) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/over-by-views.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
health-score
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.

One number per listing (0-100) composed from every audit + ratio + trend signal. The signals are simple math; the playbook around the number is where deep reasoning earns its money.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Listing health score"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       health-score
;;~ touches  ()
;;~ summary  "Composite 0–100 per listing."

;; Composite 0–100 per listing.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'health-score
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'health-score) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title metric value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/health-score.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-no-photos
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "No photos"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-no-photos
;;~ touches  ()
;;~ summary  "Listings with zero images."

;; Listings with zero images.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-no-photos
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'no-photos) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-no-photos.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-few-tags
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Few tags"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-few-tags
;;~ touches  ()
;;~ summary  "Listings with under 10 tags."

;; Listings with under 10 tags.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-few-tags
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'few-tags) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-few-tags.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-no-desc
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "No description"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-no-desc
;;~ touches  ()
;;~ summary  "Empty or stub description."

;; Empty or stub description.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-no-desc
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'no-desc) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-no-desc.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-low-qty
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Low quantity"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-low-qty
;;~ touches  ()
;;~ summary  "qty < 2."

;; qty < 2.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-low-qty
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'low-qty) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-low-qty.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-no-variations
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "No variations"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-no-variations
;;~ touches  ()
;;~ summary  "Flat inventory."

;; Flat inventory.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-no-variations
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/inventory (list 'no-variations) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-no-variations.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-near-expiry
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Near expiry"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-near-expiry
;;~ touches  ()
;;~ summary  "Renew due within 14 days."

;; Renew due within 14 days.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-near-expiry
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'near-expiry) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-near-expiry.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-expired
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Expired"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-expired
;;~ touches  ()
;;~ summary  "Already past expiry."

;; Already past expiry.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-expired
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'expired) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-expired.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-mismatched-ready
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Mismatched readiness"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-mismatched-ready
;;~ touches  ()
;;~ summary  "Readiness state doesn't match shop policy."

;; Readiness state doesn't match shop policy.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-mismatched-ready
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'mismatched-ready) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-mismatched-ready.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-mismatched-ship
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Mismatched shipping"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-mismatched-ship
;;~ touches  ()
;;~ summary  "Shipping profile doesn't match category."

;; Shipping profile doesn't match category.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-mismatched-ship
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'mismatched-ship) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-mismatched-ship.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-dup-titles
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Duplicate titles"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-dup-titles
;;~ touches  ()
;;~ summary  "Two listings, same title."

;; Two listings, same title.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-dup-titles
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'dup-titles) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-dup-titles.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-dup-photos
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Duplicate photos"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-dup-photos
;;~ touches  ()
;;~ summary  "Same image used in many listings."

;; Same image used in many listings.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-dup-photos
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/images (list 'dup-photos) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-dup-photos.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
audit-orphan-photos
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Health audit (12)' group. Operator-commanded data surface in the Analysis tab.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Orphan photos"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       audit-orphan-photos
;;~ touches  ()
;;~ summary  "Photos uploaded, never attached."

;; Photos uploaded, never attached.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'audit-orphan-photos
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/images (list 'orphan-photos) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title flag))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/audit-orphan-photos.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
inv-snapshot
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Inventory (8)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read on the stock ledger. No LLM. Operator clicks the filter; the cart returns rows. Building block for the oversold-guard story.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Inventory snapshot"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       inv-snapshot
;;~ touches  ()
;;~ summary  "Current qty + value across all listings."

;; Current qty + value across all listings.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'inv-snapshot
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'snapshot) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title qty value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/inv-snapshot.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
inv-low-stock
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Inventory (8)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read on the stock ledger. No LLM. Operator clicks the filter; the cart returns rows. Building block for the oversold-guard story.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Low stock"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       inv-low-stock
;;~ touches  ()
;;~ summary  "qty < 3 on active."

;; qty < 3 on active.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'inv-low-stock
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'low-stock) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title qty value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/inv-low-stock.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
inv-out
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Inventory (8)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read on the stock ledger. No LLM. Operator clicks the filter; the cart returns rows. Building block for the oversold-guard story.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Out of stock"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       inv-out
;;~ touches  ()
;;~ summary  "qty = 0 on active."

;; qty = 0 on active.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'inv-out
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'out) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title qty value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/inv-out.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
inv-overstocked
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Inventory (8)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read on the stock ledger. No LLM. Operator clicks the filter; the cart returns rows. Building block for the oversold-guard story.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Overstocked"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       inv-overstocked
;;~ touches  ()
;;~ summary  "qty > 12 with no sales in 90d."

;; qty > 12 with no sales in 90d.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'inv-overstocked
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'overstocked) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title qty value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/inv-overstocked.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
inv-value
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Inventory (8)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read on the stock ledger. No LLM. Operator clicks the filter; the cart returns rows. Building block for the oversold-guard story.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Inventory value"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       inv-value
;;~ touches  ()
;;~ summary  "Total inventory value at price."

;; Total inventory value at price.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'inv-value
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'value) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title qty value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/inv-value.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
inv-value-by-section
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Inventory (8)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read on the stock ledger. No LLM. Operator clicks the filter; the cart returns rows. Building block for the oversold-guard story.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Inventory value by section"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       inv-value-by-section
;;~ touches  ()
;;~ summary  "Where the money sits."

;; Where the money sits.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'inv-value-by-section
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'value-by-section) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title qty value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/inv-value-by-section.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
inv-by-material
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Inventory (8)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read on the stock ledger. No LLM. Operator clicks the filter; the cart returns rows. Building block for the oversold-guard story.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Inventory by material"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       inv-by-material
;;~ touches  ()
;;~ summary  "Silver/gold/fabric breakdown."

;; Silver/gold/fabric breakdown.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'inv-by-material
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'by-material) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title qty value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/inv-by-material.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
inv-reorder
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Inventory (8)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read on the stock ledger. No LLM. Operator clicks the filter; the cart returns rows. Building block for the oversold-guard story.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Reorder suggestions"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       inv-reorder
;;~ touches  ()
;;~ summary  "What to restock based on sell-through."

;; What to restock based on sell-through.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'inv-reorder
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'reorder) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title qty value))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/inv-reorder.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
tag-frequency
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Tag frequency"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       tag-frequency
;;~ touches  ()
;;~ summary  "How often each tag is used."

;; How often each tag is used.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'tag-frequency
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'frequency) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/tag-frequency.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
tag-unused
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Unused tag slots"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       tag-unused
;;~ touches  ()
;;~ summary  "Listings under 13 tags."

;; Listings under 13 tags.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'tag-unused
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'unused) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/tag-unused.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
tag-vs-revenue
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Tag vs revenue"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       tag-vs-revenue
;;~ touches  ()
;;~ summary  "Which tags actually earn."

;; Which tags actually earn.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'tag-vs-revenue
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'vs-revenue) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/tag-vs-revenue.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
tag-vs-views
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Tag vs views"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       tag-vs-views
;;~ touches  ()
;;~ summary  "Which tags pull traffic."

;; Which tags pull traffic.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'tag-vs-views
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'vs-views) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/tag-vs-views.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
tag-trending
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix
category-distribution
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Category distribution"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       category-distribution
;;~ touches  ()
;;~ summary  "Listings per category."

;; Listings per category.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'category-distribution
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'category) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/category-distribution.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
section-distribution
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Section distribution"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       section-distribution
;;~ touches  ()
;;~ summary  "Listings per section."

;; Listings per section.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'section-distribution
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'section) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/section-distribution.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
material-distribution
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Material distribution"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       material-distribution
;;~ touches  ()
;;~ summary  "Listings per material."

;; Listings per material.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'material-distribution
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'material) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/material-distribution.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
color-distribution
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Color distribution"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       color-distribution
;;~ touches  ()
;;~ summary  "Listings per primary color."

;; Listings per primary color.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'color-distribution
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'color) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/color-distribution.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
seasonality-tags
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Seasonal tag flags"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       seasonality-tags
;;~ touches  ()
;;~ summary  "Holiday/season tag presence."

;; Holiday/season tag presence.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'seasonality-tags
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'seasonality-tags) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/seasonality-tags.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
tag-co-occurrence
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Tags + taxonomy (11)' group. Operator-commanded data surface in the Analysis tab.

Pure Cortex read — tally a property across the operator's listings. No LLM, no API call. Renders as a chart or table for diagnosis.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Tag co-occurrence"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       tag-co-occurrence
;;~ touches  ()
;;~ summary  "Which tags travel together."

;; Which tags travel together.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'tag-co-occurrence
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'co-occurrence) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/tag-co-occurrence.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-upload
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

The upload button. Destructive write; eight-star consent gate fires before bytes leave the device. Operator commands it.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Upload a draft listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   gray
;;~ id       btn-upload
;;~ touches  (etsy-listings etsy-images)
;;~ summary  "Generated when the operator presses the Upload button. Creates a draft from a payload, attaches photos, lands in Etsy. Architect-shape: every on-result is a NAMED state fn, no inline lambdas. OAuth liveness is a framework precondition; not a cart state. Escalate carries a closed KIND symbol only — surface decides recovery."

(cart 'btn-upload
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings etsy-images))
    (read-only . #f)))

;; ── start ─────────────────────────────────────────────────────────
;; Guard the payload, jump into create-draft.
(define (start ctx)
  (let ((payload (ctx-get 'payload ctx)))
    (if (null? payload)
        (escalate 'missing-payload null)
        (act 'etsy/create-draft (list payload) 'check-draft-result))))

;; ── check-draft-result ───────────────────────────────────────────
;; Named result handler — branches on what came back from the draft
;; creation. No inline lambda; nothing in this branch decides the
;; on-result of any further act. Serialisable.
(define (check-draft-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'rate-limited)
       (after 30 'start ctx))
      ((eq? r 'auth-stale)
       (escalate 'assistant-oauth-relogin null))
      (else
       (next 'attach-images (ctx-set 'draft r ctx))))))

;; ── attach-images ───────────────────────────────────────────────
;; Pop the head image off the list, fire upload-image, branch on the
;; response in a named state fn. The cart recurses through itself by
;; jumping back here from check-image-result.
(define (attach-images ctx)
  (let ((images (ctx-get 'images ctx)))
    (if (or (null? images) (zero? (length images)))
        (next 'announce ctx)
        (let ((draft (ctx-get 'draft ctx)))
          (act 'etsy/upload-image
               (list (draft-id draft) (car images))
               'check-image-result)))))

;; ── check-image-result ──────────────────────────────────────────
;; Result handler for the image upload. Success → drop head + recurse;
;; failure → saga compensation (rollback-draft). The compensation is
;; its own state fn with its own retry/backoff (rollback-retry).
(define (check-image-result ctx)
  (let ((r (ctx-result ctx))
        (images (ctx-get 'images ctx)))
    (cond
      ((eq? r 'ok)
       (next 'attach-images (ctx-set 'images (cdr images) ctx)))
      ((eq? r 'rate-limited)
       (after 30 'attach-images ctx))
      (else
       (next 'rollback-draft (ctx-set 'failure r ctx))))))

;; ── rollback-draft (saga compensation) ──────────────────────────
;; Roll back the half-uploaded draft so the operator's shop isn't
;; left in a half-published state.
(define (rollback-draft ctx)
  (let ((draft (ctx-get 'draft ctx)))
    (act 'etsy/delete-listing (list (draft-id draft)) 'check-rollback)))

;; ── check-rollback ──────────────────────────────────────────────
;; The compensation can itself fail — that's a real path. Retry once
;; with backoff, then escalate with the orphan draft id so a human
;; can clean it up.
(define (check-rollback ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)
       (escalate 'image-upload-failed (ctx-get 'failure ctx)))
      ((eq? r 'rate-limited)
       (after 30 'rollback-draft ctx))
      (else
       (escalate 'rollback-failed (ctx-get 'draft ctx))))))

;; ── announce ────────────────────────────────────────────────────
;; Clean exit. The driver emits cart-end {outcome: done}; the surface
;; reads that off the bus and pops a calm "uploaded" pill.
(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/btn-upload.sks · 90 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-publish
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

The publish button. Takes a draft live on the platform. Most destructive action in the white tier; strictest consent gate.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Publish a listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-publish
;;~ touches  (etsy-listings)
;;~ summary  "Take a draft live."

;; Take a draft live.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-publish
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)     (escalate 'missing-listing-id null))
      ((not consent)  (escalate 'consent-required null))
      (else           (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/publish
         (list id (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-publish.sks · 46 lines

Example

Operator presses the green Publish button on a draft. Sakura confirms (the consent gate), Lacuna ships the listing live to Etsy, and on rate-limit she waits 30s and retries. If your token went stale, she escalates to relogin — never silently swallows the failure.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-update
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

The update button. Edits one or more fields on a live listing. Eight-star consent gate.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Update a listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-update
;;~ touches  (etsy-listings)
;;~ summary  "Edit fields on an existing listing."

;; Edit fields on an existing listing.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-update
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (fields (ctx-get 'fields ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? fields)    (escalate 'missing-fields null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (fields (ctx-get 'fields ctx)))
    (act 'etsy/update-listing
         (list id fields (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-update.sks · 49 lines

Example

Operator edits a listing field (title, price, tags) and confirms. Sakura batches the edit, ships it via the worker spine, and confirms back. The cart records the diff to Cortex so you can replay it later.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-delete
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

The delete button. Removes a listing or draft. Eight-star consent gate; Sakura usually proposes archive first.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Delete a listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-delete
;;~ touches  (etsy-listings)
;;~ summary  "Remove a draft or inactive listing."

;; Remove a draft or inactive listing.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-delete
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)     (escalate 'missing-listing-id null))
      ((not consent)  (escalate 'consent-required null))
      (else           (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/delete-listing
         (list id (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-delete.sks · 46 lines

Example

Operator deletes a listing. Sakura requires explicit confirmation (consent gate), then ships the destructive call. Cortex keeps the snapshot — deletes are reversible up the chain.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-reprice
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

The reprice button. Updates the listing price. Eight-star consent gate; Sakura reads back the new number before fire.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Reprice a listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-reprice
;;~ touches  (etsy-listings)
;;~ summary  "Change the price."

;; Change the price.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-reprice
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (price (ctx-get 'price ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? price)    (escalate 'missing-price null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (price (ctx-get 'price ctx)))
    (act 'etsy/reprice
         (list id price (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-reprice.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-renew
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

The renew button. Fires an Etsy renewal (which costs the operator). Eight-star consent gate.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Renew a listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-renew
;;~ touches  (etsy-listings)
;;~ summary  "Renew a listing for another 4 months."

;; Renew a listing for another 4 months.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-renew
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)     (escalate 'missing-listing-id null))
      ((not consent)  (escalate 'consent-required null))
      (else           (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/relist
         (list id (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-renew.sks · 46 lines

Example

Operator renews a listing. Sakura checks expiry, confirms the cost, and ships the renewal. On Etsy fee changes the worker logs the new fee to Cortex so the next ROAS report is honest.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-upload-image
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

A write action behind a consent gate. Operator-commanded only. Eight-star canon — Sakura proposes via a chip; this is the verb that fires after the operator clicks yes.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Upload an image"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-upload-image
;;~ touches  (etsy-listings etsy-images)
;;~ summary  "Attach a photo to a listing."

;; Attach a photo to a listing.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-upload-image
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings etsy-images))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (image (ctx-get 'image ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? image)    (escalate 'missing-image null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (image (ctx-get 'image ctx)))
    (act 'etsy/upload-image
         (list id image (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-upload-image.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-set-qty
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

A write action behind a consent gate. Operator-commanded only. Eight-star canon — Sakura proposes via a chip; this is the verb that fires after the operator clicks yes.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Set quantity"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-set-qty
;;~ touches  (etsy-listings etsy-inventory)
;;~ summary  "Edit qty on a listing or variation."

;; Edit qty on a listing or variation.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-set-qty
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings etsy-inventory))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (qty (ctx-get 'qty ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? qty)    (escalate 'missing-qty null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (qty (ctx-get 'qty ctx)))
    (act 'etsy/update-inventory
         (list id qty (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-set-qty.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-set-tags
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

A write action behind a consent gate. Operator-commanded only. Eight-star canon — Sakura proposes via a chip; this is the verb that fires after the operator clicks yes.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Set tags"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-set-tags
;;~ touches  (etsy-listings)
;;~ summary  "Replace the tag list."

;; Replace the tag list.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-set-tags
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (tags (ctx-get 'tags ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? tags)    (escalate 'missing-tags null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (tags (ctx-get 'tags ctx)))
    (act 'etsy/update-listing
         (list id tags (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-set-tags.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-set-title
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

A write action behind a consent gate. Operator-commanded only. Eight-star canon — Sakura proposes via a chip; this is the verb that fires after the operator clicks yes.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Set title"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-set-title
;;~ touches  (etsy-listings)
;;~ summary  "Replace the title."

;; Replace the title.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-set-title
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (title (ctx-get 'title ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? title)    (escalate 'missing-title null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (title (ctx-get 'title ctx)))
    (act 'etsy/update-listing
         (list id title (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-set-title.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-set-desc
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

A write action behind a consent gate. Operator-commanded only. Eight-star canon — Sakura proposes via a chip; this is the verb that fires after the operator clicks yes.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Set description"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-set-desc
;;~ touches  (etsy-listings)
;;~ summary  "Replace the description."

;; Replace the description.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-set-desc
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (desc (ctx-get 'desc ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? desc)    (escalate 'missing-desc null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (desc (ctx-get 'desc ctx)))
    (act 'etsy/update-listing
         (list id desc (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-set-desc.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-set-section
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

A write action behind a consent gate. Operator-commanded only. Eight-star canon — Sakura proposes via a chip; this is the verb that fires after the operator clicks yes.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Move to section"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-set-section
;;~ touches  (etsy-listings)
;;~ summary  "Reassign shop section."

;; Reassign shop section.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-set-section
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (section (ctx-get 'section ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? section)    (escalate 'missing-section null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (section (ctx-get 'section ctx)))
    (act 'etsy/update-listing
         (list id section (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-set-section.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-set-shipping
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

A write action behind a consent gate. Operator-commanded only. Eight-star canon — Sakura proposes via a chip; this is the verb that fires after the operator clicks yes.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Set shipping profile"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-set-shipping
;;~ touches  (etsy-listings)
;;~ summary  "Reassign shipping profile."

;; Reassign shipping profile.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-set-shipping
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (shipping-profile-id (ctx-get 'shipping-profile-id ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? shipping-profile-id)    (escalate 'missing-shipping-profile-id null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (shipping-profile-id (ctx-get 'shipping-profile-id ctx)))
    (act 'etsy/update-listing
         (list id shipping-profile-id (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-set-shipping.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-ship-receipt
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

A write action behind a consent gate. Operator-commanded only. Eight-star canon — Sakura proposes via a chip; this is the verb that fires after the operator clicks yes.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Mark order shipped"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-ship-receipt
;;~ touches  (etsy-receipts)
;;~ summary  "Mark a receipt as shipped with tracking."

;; Mark a receipt as shipped with tracking.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-ship-receipt
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-receipts))
    (read-only . #f)))

(define (start ctx)
  (let ((id      (ctx-get 'listing-id ctx))
        (tracking (ctx-get 'tracking ctx))
        (consent (ctx-get 'operator-confirmed ctx)))
    (cond
      ((null? id)        (escalate 'missing-listing-id null))
      ((null? tracking)    (escalate 'missing-tracking null))
      ((not consent)     (escalate 'consent-required null))
      (else              (next 'perform ctx)))))

(define (perform ctx)
  (let ((id (ctx-get 'listing-id ctx))
        (tracking (ctx-get 'tracking ctx)))
    (act 'etsy/mark-shipped
         (list id tracking (list 'operator_confirmed #t))
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-ship-receipt.sks · 49 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-sync
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

The sync button. Pulls latest from the platform into Cortex. Long-running; the operator can't cancel today (flagged for future work).
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Full sync"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-sync
;;~ touches  (etsy-shop etsy-listings)
;;~ summary  "Pull everything from Etsy."

;; Pull everything from Etsy.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-sync
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-shop etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((consent (ctx-get 'operator-confirmed ctx)))
    (if (not consent)
        (escalate 'consent-required null)
        (next 'perform ctx))))

(define (perform ctx)
  (act 'etsy/sync
       (list (list 'operator_confirmed #t))
       'check-result))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-sync.sks · 43 lines

Example

Operator presses Sync. The worker pulls latest listings + receipts from Etsy, writes to Cortex, and surfaces any conflicts to the Analysis tab. Local drafts stay local; remote-only items appear with a clear marker.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
btn-disconnect
white§6. White — atomic tools (142 baseline, 149 post-matrix) · §6.2 White read-carts — the 114 surfaces (all carry_forward) man →

White read-cart in the 'Buttons (write ops, mint-flavor) (15)' group. Operator-commanded data surface in the Analysis tab.

Disconnect a platform account. Settings infra, not really an automation — flagged for relocation to the Settings surface.
Trigger
operator-commanded
Tools
cortex_query, list_listings / list_orders
Source
carry-forward
Section
§6. White — atomic tools (142 baseline, 149 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §6-white-atomic-tools-142-baseline-149-post-matrix

Scheme source

;;~ title    "Disconnect shop"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       btn-disconnect
;;~ touches  (etsy-shop etsy-listings)
;;~ summary  "Remove the Etsy OAuth grant."

;; Remove the Etsy OAuth grant.
;;
;; Destructive write cart. Action-wrapper shape with the consent gate:
;;   precondition_fetch (ctx has id + payload + operator-confirmed)
;;     -> guard (consent required) -> perform -> result -> on_error.
;; operator_confirmed rides in args so the driver's destructive-verb
;; gate sees it. Rate-limit retries with backoff; auth-stale escalates.
;; State is `perform` (not `act`) so it never shadows the descriptor
;; constructor of the same name in cartPrelude.

(cart 'btn-disconnect
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-shop etsy-listings))
    (read-only . #f)))

(define (start ctx)
  (let ((consent (ctx-get 'operator-confirmed ctx)))
    (if (not consent)
        (escalate 'consent-required null)
        (next 'perform ctx))))

(define (perform ctx)
  (act 'etsy/disconnect
       (list (list 'operator_confirmed #t))
       'check-result))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((eq? r 'ok)            (done))
      ((eq? r 'rate-limited)  (after 30 'perform ctx))
      ((eq? r 'auth-stale)    (escalate 'auth-relogin null))
      (else                   (escalate 'write-failed r)))))

source: curator-web/src/scheme/carts/etsy/btn-disconnect.sks · 43 lines

Example

Operator chooses to disconnect a shop. Sakura preserves local drafts in Cortex (they never live in the store), revokes tokens, and clears connected state without touching anything the operator hasn't seen.

Graph

PREfetchGUARDtier: whiteACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human

§7. Pink — Sakura local65 entries

l0-write-title
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Writes a 50-char Etsy title in the operator's voice. Addresses pain #1, #12.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
draftlisting, cortexquery
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · write a title"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-write-title
;;~ touches  ()
;;~ summary  "Sakura writes a 50-char Etsy title."

;; Sakura writes a 50-char Etsy title.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-write-title
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'write-title seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 140)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-write-title.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-title-shorter
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Halves a title without losing keywords.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · shorter title"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-title-shorter
;;~ touches  ()
;;~ summary  "Trim a title to half its length, keep the keywords."

;; Trim a title to half its length, keep the keywords.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-title-shorter
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'title-shorter seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 140)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-title-shorter.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-title-longer
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Adds useful keywords up to 140 chars.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · longer title"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-title-longer
;;~ touches  ()
;;~ summary  "Add useful keywords up to the 140-char limit."

;; Add useful keywords up to the 140-char limit.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-title-longer
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'title-longer seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 140)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-title-longer.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-write-desc-2
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Two-sentence description: hook + detail.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
draft_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · 2-sentence description"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-write-desc-2
;;~ touches  ()
;;~ summary  "Two sentences. The hook + the detail."

;; Two sentences. The hook + the detail.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-write-desc-2
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'write-desc-2 seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 1024)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-write-desc-2.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-write-desc-3
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Three-sentence description: hook, detail, care.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
draft_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · 3-sentence description"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-write-desc-3
;;~ touches  ()
;;~ summary  "Three sentences. Hook, detail, care."

;; Three sentences. Hook, detail, care.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-write-desc-3
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'write-desc-3 seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 1024)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-write-desc-3.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-greeting-line
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Friendly opener for a description.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · greeting line"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-greeting-line
;;~ touches  ()
;;~ summary  "Friendly opener for a description."

;; Friendly opener for a description.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-greeting-line
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'greeting-line seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 200)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-greeting-line.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-care-instructions
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Care line for the piece.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · care instructions"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-care-instructions
;;~ touches  ()
;;~ summary  "How to care for the piece."

;; How to care for the piece.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-care-instructions
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'care-instructions seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 400)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-care-instructions.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-shipping-note
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Shipping line for the description.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · shipping note"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-shipping-note
;;~ touches  ()
;;~ summary  "A line about shipping for the description."

;; A line about shipping for the description.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-shipping-note
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'shipping-note seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 300)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-shipping-note.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-suggest-tags
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Proposes 13 tags from title + description.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · suggest tags"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-suggest-tags
;;~ touches  ()
;;~ summary  "Propose 13 tags from title + description."

;; Propose 13 tags from title + description.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide; named
;; result handler with type-trap on the model output.
;; The seed (listing context) rides in via ctx; the result is a
;; list of tag strings. Garbled output -> escalate ask-human;
;; never claim a thought she didn't have.

(cart 'l0-suggest-tags
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'suggest-tags seed)
         'check-tags-result)))

(define (check-tags-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'sakura-empty null))
      ((not (list? r))                 (escalate 'sakura-garbled null))
      ((zero? (length r))              (escalate 'sakura-empty null))
      ((> (length r) 13)               (escalate 'too-many-tags r))
      (else                            (next 'announce (ctx-set 'tags r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-suggest-tags.sks · 44 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-title-formal
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Same listing, formal voice.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · title in formal tone"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-title-formal
;;~ touches  ()
;;~ summary  "Same listing, formal voice."

;; Same listing, formal voice.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-title-formal
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'title-formal seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 140)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-title-formal.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-title-playful
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Same listing, playful voice.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · title in playful tone"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-title-playful
;;~ touches  ()
;;~ summary  "Same listing, playful voice."

;; Same listing, playful voice.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-title-playful
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'title-playful seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 140)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-title-playful.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-title-add-kw
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Insert a keyword naturally.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · add a keyword to title"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-title-add-kw
;;~ touches  ()
;;~ summary  "Insert a keyword naturally."

;; Insert a keyword naturally.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-title-add-kw
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'title-add-kw seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 140)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-title-add-kw.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-desc-friendlier
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Same content, warmer voice.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · friendlier description"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-desc-friendlier
;;~ touches  ()
;;~ summary  "Same content, warmer voice."

;; Same content, warmer voice.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-desc-friendlier
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'desc-friendlier seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 1024)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-desc-friendlier.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-desc-shorter
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Trim a description without losing detail.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · shorter description"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-desc-shorter
;;~ touches  ()
;;~ summary  "Trim a description without losing detail."

;; Trim a description without losing detail.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-desc-shorter
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'desc-shorter seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 1024)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-desc-shorter.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-desc-detail
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Add the second paragraph.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · more-detail description"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-desc-detail
;;~ touches  ()
;;~ summary  "Add the second paragraph."

;; Add the second paragraph.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-desc-detail
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'desc-detail seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 1024)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-desc-detail.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-bundle-name
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Name a collection of listings.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
cortex_write
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · name a bundle"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-bundle-name
;;~ touches  ()
;;~ summary  "Name a collection of listings."

;; Name a collection of listings.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-bundle-name
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'bundle-name seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 80)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-bundle-name.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-sale-blurb
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Short blurb for a sale event.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · sale blurb"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-sale-blurb
;;~ touches  ()
;;~ summary  "Short blurb for a sale event."

;; Short blurb for a sale event.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-sale-blurb
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'sale-blurb seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 280)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-sale-blurb.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-thanks-msg
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Thank-you to send with a packed order. Addresses pain #33.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
analysis-pattern
Tools
draftcustomermessage
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · thank-you message"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-thanks-msg
;;~ touches  ()
;;~ summary  "A line to send with a packed order."

;; A line to send with a packed order.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-thanks-msg
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'thanks-msg seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 280)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-thanks-msg.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-restock-line
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

One-line note when something is back in stock.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
analysis-pattern
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · restock announcement"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-restock-line
;;~ touches  ()
;;~ summary  "One-line note when something is back."

;; One-line note when something is back.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-restock-line
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'restock-line seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 200)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-restock-line.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-listing-summary
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

One-sentence summary of a listing.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
cortex_query
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · summarize a listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-listing-summary
;;~ touches  ()
;;~ summary  "One-sentence summary of a listing."

;; One-sentence summary of a listing.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-listing-summary
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'listing-summary seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 280)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-listing-summary.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-photo-caption
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Caption for a single product photo.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
cortex_query
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · photo caption"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-photo-caption
;;~ touches  ()
;;~ summary  "Caption for a single product photo."

;; Caption for a single product photo.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-photo-caption
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'photo-caption seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 140)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-photo-caption.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
l0-tagline
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.1 L0 — short conversational writes (carry_forward, 22) man →

Tagline for the whole shop.

Local 8B model writes this in your voice. Trained on your own past edits via Atlas pairs; the more you nudge, the closer it lands. Free, on-device, no API call.
Trigger
event
Tools
update_listing
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "L0 · tagline"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       l0-tagline
;;~ touches  ()
;;~ summary  "A tagline for the whole shop."

;; A tagline for the whole shop.
;;
;; On-device Sakura. Architect-shape: act 'sakura/decide with a
;; named result handler that type-traps the output. Output must be
;; a non-empty string within length bounds; garbled -> escalate.
;; This is the third star: never claim a thought she didn't have.

(cart 'l0-tagline
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (if (null? seed)
        (escalate 'missing-seed null)
        (next 'invoke-sakura ctx))))

(define (invoke-sakura ctx)
  (let ((seed (ctx-get 'seed-text ctx)))
    (act 'sakura/decide
         (list 'task 'tagline seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                          (escalate 'sakura-empty null))
      ((not (string? r))                  (escalate 'sakura-garbled null))
      ((< (string-length r) 1)           (escalate 'sakura-empty null))
      ((> (string-length r) 80)         (escalate 'output-too-long r))
      (else                               (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/l0-tagline.sks · 43 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
math-average
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Mean of any property over a filter. ("average price across rings")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-average.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-median
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Median of a property. ("median price on pendants")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-median.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-sum
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Sum over a filter. ("total revenue last month")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-sum.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-count
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Count over a filter. ("how many active listings")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-count.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-count-where
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Filtered count with phrasing variations.

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-count-where.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-topk
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Top k by a property. ("five best-selling rings")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-topk.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-bottomk
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Bottom k by a property.

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-bottomk.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-percentile
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

P50 / P90 / etc on a property. ("90th-percentile order value")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-percentile.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-group-by
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Reduce over a grouping. ("revenue per section")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-group-by.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-time-bucket
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Bucket a series by hour / day / week / month.

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-time-bucket.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-conversion
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Ratio between two filtered aggregates. ("favorite-to-sale ratio")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-conversion.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
math-quick
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.2 Math from your shop — Cortex aggregates (new, 12) man →

Single-line response for the common phrasings. ("how much did I make today")

One reduce over your Cortex (sum / mean / median / etc) on a filtered slice of your real data. Never invents a number; only collapses real ones.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/math-quick.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
detect-duplicate-title-in-shop
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.3 Listing-aware local analysis (carry_forward, 5) man →

Surfaces on new-listing creation. Addresses pain #26.

Pure-logic check — one feature inspected per row. Surfaces a flag for the operator's eye; never acts alone.
Trigger
event
Tools
search_listings
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Detect duplicate title in shop"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       detect-duplicate-title-in-shop
;;~ touches  ()
;;~ summary  "Find an existing listing with the same title."

;; Find an existing listing with the same title.
;;
;; Local Sakura runs over one listing's context. precondition_fetch
;; pulls the listing record, sakura/decide produces the summary or
;; comparison, type-trap on the output, then announce.

(cart 'detect-duplicate-title-in-shop
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'invoke)))

(define (invoke ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)              (escalate 'no-data null))
      ((eq? listing 'rate-limited)  (after 30 'fetch ctx))
      (else (act 'sakura/decide
                 (list 'task 'detect-duplicate-title-in-shop listing)
                 'check-result)))))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((not (string? r))          (escalate 'sakura-garbled null))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/detect-duplicate-title-in-shop.sks · 47 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
summarize-listing-one-line
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.3 Listing-aware local analysis (carry_forward, 5) man →

One-line gist of a listing.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event
Tools
cortex_query
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Summarize listing in one line"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       summarize-listing-one-line
;;~ touches  ()
;;~ summary  "One-line gist of a listing."

;; One-line gist of a listing.
;;
;; Local Sakura runs over one listing's context. precondition_fetch
;; pulls the listing record, sakura/decide produces the summary or
;; comparison, type-trap on the output, then announce.

(cart 'summarize-listing-one-line
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'invoke)))

(define (invoke ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)              (escalate 'no-data null))
      ((eq? listing 'rate-limited)  (after 30 'fetch ctx))
      (else (act 'sakura/decide
                 (list 'task 'summarize-listing-one-line listing)
                 'check-result)))))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((not (string? r))          (escalate 'sakura-garbled null))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/summarize-listing-one-line.sks · 47 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
whats-this-listing-about
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.3 Listing-aware local analysis (carry_forward, 5) man →

Plain-language summary for a glance.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event
Tools
cortex_query
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "What's this listing about?"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       whats-this-listing-about
;;~ touches  ()
;;~ summary  "Plain-language summary for a glance."

;; Plain-language summary for a glance.
;;
;; Local Sakura runs over one listing's context. precondition_fetch
;; pulls the listing record, sakura/decide produces the summary or
;; comparison, type-trap on the output, then announce.

(cart 'whats-this-listing-about
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'invoke)))

(define (invoke ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)              (escalate 'no-data null))
      ((eq? listing 'rate-limited)  (after 30 'fetch ctx))
      (else (act 'sakura/decide
                 (list 'task 'whats-this-listing-about listing)
                 'check-result)))))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((not (string? r))          (escalate 'sakura-garbled null))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/whats-this-listing-about.sks · 47 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
contrast-with-similar
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.3 Listing-aware local analysis (carry_forward, 5) man →

Diff against a near-twin in the shop.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
analysis-pattern
Tools
search_listings
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Contrast with a similar listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       contrast-with-similar
;;~ touches  ()
;;~ summary  "How does this listing differ from a near-twin in the shop."

;; How does this listing differ from a near-twin in the shop.
;;
;; Local Sakura runs over one listing's context. precondition_fetch
;; pulls the listing record, sakura/decide produces the summary or
;; comparison, type-trap on the output, then announce.

(cart 'contrast-with-similar
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'invoke)))

(define (invoke ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)              (escalate 'no-data null))
      ((eq? listing 'rate-limited)  (after 30 'fetch ctx))
      (else (act 'sakura/decide
                 (list 'task 'contrast-with-similar listing)
                 'check-result)))))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((not (string? r))          (escalate 'sakura-garbled null))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/contrast-with-similar.sks · 47 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
customer-note-recall
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.3 Listing-aware local analysis (carry_forward, 5) man →

Recall a pinned fact about a buyer. Addresses pain #25. Matrix mod 2026-06-01: Engram-projected so recall works on phone for desktop-pinned notes (and vice versa).

Pull buyers who match a behavior pattern. Suggest a tailored touch — a thank-you, a restock note, a recovery message. Cheap care that compounds.
Trigger
event
Tools
cortex_query
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/customer-note-recall.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
imagination-tick
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Background dream loop: pick a Cortex noun, paint a thought. Per projectsakuradreamsfromcortex. Matrix mod 2026-06-01: reads Engram-projected noun candidates so dreams reference cross-device-fresh nouns.

Background loop. Picks a recent noun from Cortex, paints a dot-matrix thought bubble. When the operator asks 'what are you thinking?' she explains the link truthfully — she actually was thinking about it.
Trigger
event
Tools
cortexquery, shownotification
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Imagination tick"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       imagination-tick
;;~ touches  ()
;;~ summary  "Background dream loop: pick a noun, paint a thought."

;; Background dream loop: pick a noun, paint a thought.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'imagination-tick
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/say
         (list 'task 'imagination-tick seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/imagination-tick.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
voice-transcript-cleanup
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Tidy a raw voice-to-text transcript before commit. Matrix mod 2026-06-01: extended to clean STT outputs (operator speaking) — the main voice input path now.

cloud reasoning writes in your voice, grounded in Atlas pairs. The word 'voice' here means register, not microphone — STT isn't involved.
Trigger
event
Tools
(LLM only)
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Voice transcript cleanup"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       voice-transcript-cleanup
;;~ touches  ()
;;~ summary  "Tidy a raw voice-to-text transcript."

;; Tidy a raw voice-to-text transcript.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'voice-transcript-cleanup
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/say
         (list 'task 'voice-transcript-cleanup seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/voice-transcript-cleanup.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
chat-greeting
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Sakura's opener line for a fresh chat.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event
Tools
cortexrecentturns
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Chat greeting"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       chat-greeting
;;~ touches  ()
;;~ summary  "Sakura's opener line for a fresh chat."

;; Sakura's opener line for a fresh chat.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'chat-greeting
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/say
         (list 'task 'chat-greeting seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/chat-greeting.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
intent-classifier
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Route the user's message: shop / chat / control / relay. Per §10 surprise. Matrix mod 2026-06-01: extended for STT — voice intent classification with confidence threshold + readback for ambiguity.

Reads what the operator just said and assigns it to one of four buckets (shop / chat / control / relay). Routes the message to the right model before any expensive call fires. Cheap first, expensive only if needed.
Trigger
event
Tools
(LLM only)
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Intent classifier"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       intent-classifier
;;~ touches  ()
;;~ summary  "Route the user's message: shop / chat / control / relay."

;; Route the user's message: shop / chat / control / relay.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'intent-classifier
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/decide
         (list 'task 'intent-classifier seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/intent-classifier.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
pii-detector
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Flag PII before it leaves the device. Matrix mod 2026-06-01: extended to gate Engram cloud-projection writes — PII never leaves device unless operator opts in.

Scan every outbound payload for likely names, addresses, emails, card numbers, IDs. Anything that smells personal gets a flag before the data leaves the device. Defense in depth — the model never sees what shouldn't leave.
Trigger
event
Tools
pii_detect
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "PII detector"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       pii-detector
;;~ touches  ()
;;~ summary  "Flag PII before it leaves the device."

;; Flag PII before it leaves the device.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'pii-detector
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/decide
         (list 'task 'pii-detector seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/pii-detector.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
session-recap
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Short recap of what just happened.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event
Tools
cortexrecentturns
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Session recap"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       session-recap
;;~ touches  ()
;;~ summary  "Short recap of what just happened in this session."

;; Short recap of what just happened in this session.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'session-recap
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/say
         (list 'task 'session-recap seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/session-recap.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
mood-react
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Mood-tuned micro-reaction to an event.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event
Tools
(LLM only)
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Mood react"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       mood-react
;;~ touches  ()
;;~ summary  "Sakura's mood-tuned micro-reaction to an event."

;; Sakura's mood-tuned micro-reaction to an event.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'mood-react
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/say
         (list 'task 'mood-react seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/mood-react.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
typo-on-the-fly
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Inline typo fix as the user types.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event
Tools
(LLM only)
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Typo on the fly"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       typo-on-the-fly
;;~ touches  ()
;;~ summary  "Inline typo fix as the user types."

;; Inline typo fix as the user types.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'typo-on-the-fly
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/say
         (list 'task 'typo-on-the-fly seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/typo-on-the-fly.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
voice-disambiguation
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.4 Always-on character loops (carry_forward, 9) man →

Pick between two voice-phrase interpretations.

cloud reasoning writes in your voice, grounded in Atlas pairs. The word 'voice' here means register, not microphone — STT isn't involved.
Trigger
event
Tools
(LLM only)
Source
carry-forward
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Voice disambiguation"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       voice-disambiguation
;;~ touches  ()
;;~ summary  "Pick between two likely interpretations of a voice phrase."

;; Pick between two likely interpretations of a voice phrase.
;;
;; Character loop. On-device Sakura only; never escalates to
;; cloud. The cart reads its seed from ctx and surfaces the
;; result back into the conversation via sakura/say or
;; sakura/decide. Calm voice, short, ~30 words.

(cart 'voice-disambiguation
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (if (null? seed)
        (next 'invoke ctx)
        (next 'invoke ctx))))

(define (invoke ctx)
  (let ((seed (ctx-get 'seed ctx)))
    (act 'sakura/decide
         (list 'task 'voice-disambiguation seed)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((eq? r 'rate-limited)      (after 5 'invoke ctx))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/voice-disambiguation.sks · 41 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
daily-pulse
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.5 New customer-pain pink (4) man →

Morning pulse: yesterday's facts + one dream. Quiet-hours-aware. Addresses pain #21. Matrix mod 2026-06-01: Engram-aware — pulse lands on the device the operator is using; quiet-hours per device, single delivery.

Morning briefing at 06:00 local. Reads yesterday's facts from Cortex, adds one dream from the imagination-tick loop. Quiet-hours-aware so operators on a different schedule aren't pinged.
Trigger
cron (06:00 local)
Tools
cortexquery, shownotification
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/daily-pulse.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
posting-cadence-suggest
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.5 New customer-pain pink (4) man →

Tell me when to post based on my own past activity. Addresses pain #18. Matrix mod 2026-06-01: Engram-aware — cadence considers multi-device activity.

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Trigger
cron (weekly)
Tools
cortex_query
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/posting-cadence-suggest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
oversold-guard
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.5 New customer-pain pink (4) man →

Inventory-mirror guard before an order risks oversell across channels. Addresses pain #5. Matrix mod 2026-06-01: Engram-light becomes the canonical inventory store; multi-channel guard is atomic across phone/desktop.

Before each order ships, check that stock across every channel still agrees. If two platforms both list the last one of a SKU, surface a warning before fulfillment. Pain #5 fix.
Trigger
event (order paid)
Tools
cortexquery, shownotification
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/oversold-guard.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
brand-voice-card
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.5 New customer-pain pink (4) man →

"Here's how I've heard you write" — surfaces operator's own phrasing tendencies from Atlas. Addresses pain #1, #7.

Long-form prose from your own history. Atlas-grounded — every phrasing choice traces back to something you've written before.
Trigger
analysis-pattern
Tools
cortex_query
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/brand-voice-card.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-post-etsy-to-google
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.6 Google Shopping · cross-post + triage (new, 5) man →

Etsy publish → adapt + push to Google Shopping. Field mapping + category translation + Etsy-ism scrub.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event:listing-published-to-etsy
Tools
merchant_center/sync
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Cross-post · Etsy → Google Shopping"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   purple
;;~ id       cross-post-etsy-to-google
;;~ touches  (etsy-listings google-merchant)
;;~ summary  "Event-triggered on listing-published-to-etsy. Sakura ADAPTS the listing (Etsy-isms scrubbed, category translated, fields mapped) and pushes to Google Shopping. Tier-gated to Magic+ ($39.99). Local-drafts NEVER sync — only published listings."

;; Cross-shop posting cart. Triggered when an Etsy publish completes.
;; The state machine mirrors the action-wrapper Abel established:
;;   start → preconditions → adapt → push → result → done
;;          (each step is named, no inline lambdas, serialisable)
;;
;; Adaptation = field mapping + format conversion + category translation.
;; The actual mapping work happens server-side in listing_mapper.py; the
;; cart's job is sequencing the calls + handling failure cleanly.

(cart 'cross-post-etsy-to-google
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings google-merchant))
    (read-only . #f)))

;; ── start — precondition_fetch ──────────────────────────────────
;; The driver invokes this with ctx carrying the just-published Etsy
;; listing id. We need the full listing record + the operator's
;; merchant-center status before we can adapt.
(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (act 'etsy/listing (list id) 'check-listing))))

;; ── check-listing — guard the precondition ──────────────────────
;; Drafts never sync (local-drafts canon). A draft has no platform_id
;; assigned; the publish event shouldn't fire for a draft, but we guard
;; anyway because the event bus can replay.
(define (check-listing ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)
       (escalate 'listing-not-found null))
      ((listing-is-draft? listing)
       (escalate 'drafts-do-not-sync null))
      (else
       (next 'check-merchant (ctx-set 'listing listing ctx))))))

;; ── check-merchant — guard the merchant connection ──────────────
;; The merchant center must be connected (operator went through the
;; OAuth flow at Settings) for the push to succeed. If not, escalate
;; so the surface can prompt the operator to connect.
(define (check-merchant ctx)
  (act 'merchant_center.status '() 'check-merchant-result))

(define (check-merchant-result ctx)
  (let ((status (ctx-result ctx)))
    (cond
      ((not (status-connected? status))
       (escalate 'merchant-not-connected null))
      ((status-pending-verification? status)
       ;; Pending verification — Google hasn't finished verifying the
       ;; operator's account yet. Queue + retry; the sync replays
       ;; once the account flips to active (plan doc §2).
       (after 3600 'check-merchant ctx))
      (else
       (next 'push ctx)))))

;; ── push — act ──────────────────────────────────────────────────
;; The single side-effecting state. Calls merchant_center/sync with
;; the full listing; the server-side mapper handles the translation.
;; Result handler branches in a named state fn.
(define (push ctx)
  (let ((listing (ctx-get 'listing ctx)))
    (act 'merchant_center/sync (list listing) 'check-push-result)))

;; ── check-push-result — on_error grammar ────────────────────────
;; Four outcomes:
;;   · 'ok                 → record the google product id, done
;;   · 'rate-limited       → backoff 30s, retry
;;   · 'mapping-failed     → escalate with the closed kind so the
;;                           surface can show the operator which
;;                           fields are misshapen
;;   · anything else       → escalate with the closed kind
(define (check-push-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((push-ok? r)            (next 'announce (ctx-set 'google-product-id (push-product-id r) ctx)))
      ((eq? r 'rate-limited)   (after 30 'push ctx))
      ((eq? r 'mapping-failed) (escalate 'mapping-failed (push-errors r)))
      (else                    (escalate 'push-failed r)))))

;; ── announce — clean exit ──────────────────────────────────────
;; Emit a soft notification so the operator knows the cross-post
;; landed. The surface picks this up off the bus.
(define (announce ctx)
  (sakura/say (string-append
                "Cross-posted to Google Shopping · "
                (ctx-get 'google-product-id ctx)))
  (done))

source: curator-web/src/scheme/carts/google/cross-post-etsy-to-google.sks · 100 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
cross-post-ebay-to-google
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.6 Google Shopping · cross-post + triage (new, 5) man →

eBay publish → adapt + push to Google Shopping. Image-link rejection rate higher; surface flags it.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event:listing-published-to-ebay
Tools
merchant_center/sync
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Cross-post · eBay → Google Shopping"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   purple
;;~ id       cross-post-ebay-to-google
;;~ touches  (ebay-listings google-merchant)
;;~ summary  "Event-triggered on listing-published-to-ebay. Sakura adapts and pushes to Google Shopping. eBay-side images can be signed URLs that expire — the mapper warns; sync still tries. Tier-gated to Magic+. Drafts never sync."

;; eBay → Google. Same shape as the Etsy variant but the source verb
;; is ebay/listing. The action-wrapper grammar is identical because the
;; field mapper is shared (listing_mapper.py works off the canonical
;; Listing shape — every platform-specific adapter normalises into that
;; before reaching the mapper).
;;
;; Notable difference vs the Etsy cart: eBay's image URLs are sometimes
;; signed + expire. The mapper warns; we still push. Phase 3 of the GMC
;; plan can re-host eBay images on Curator's own CDN if rejection rates
;; climb.

(cart 'cross-post-ebay-to-google
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (ebay-listings google-merchant))
    (read-only . #f)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (act 'ebay/listing (list id) 'check-listing))))

(define (check-listing ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)             (escalate 'listing-not-found null))
      ((listing-is-draft? listing) (escalate 'drafts-do-not-sync null))
      (else (next 'check-merchant (ctx-set 'listing listing ctx))))))

(define (check-merchant ctx)
  (act 'merchant_center.status '() 'check-merchant-result))

(define (check-merchant-result ctx)
  (let ((status (ctx-result ctx)))
    (cond
      ((not (status-connected? status))
       (escalate 'merchant-not-connected null))
      ((status-pending-verification? status)
       (after 3600 'check-merchant ctx))
      (else (next 'push ctx)))))

(define (push ctx)
  (let ((listing (ctx-get 'listing ctx)))
    (act 'merchant_center/sync (list listing) 'check-push-result)))

(define (check-push-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((push-ok? r)
       (next 'announce (ctx-set 'google-product-id (push-product-id r) ctx)))
      ((eq? r 'rate-limited)   (after 30 'push ctx))
      ((eq? r 'mapping-failed) (escalate 'mapping-failed (push-errors r)))
      (else                    (escalate 'push-failed r)))))

(define (announce ctx)
  (sakura/say (string-append
                "Cross-posted eBay → Google Shopping · "
                (ctx-get 'google-product-id ctx)))
  (done))

source: curator-web/src/scheme/carts/google/cross-post-ebay-to-google.sks · 69 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
cross-post-shopify-to-google
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.6 Google Shopping · cross-post + triage (new, 5) man →

Shopify publish → adapt + push to Google Shopping. Cleanest mapping of the three. Idempotent upsert by SKU.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
event:listing-published-to-shopify
Tools
merchant_center/sync
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Cross-post · Shopify → Google Shopping"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   purple
;;~ id       cross-post-shopify-to-google
;;~ touches  (shopify-listings google-merchant)
;;~ summary  "Event-triggered on listing-published-to-shopify. Shopify is the cleanest of the three sources — already structured similar to Google. The mapper still scrubs anything Shopify-specific, but the warning rate is much lower than Etsy or eBay. Tier-gated to Magic+; drafts never sync."

;; Shopify → Google. The mapping is the cleanest of the three cross-post
;; carts because Shopify's product shape (title, body_html, variants,
;; images, product_type) maps almost 1:1 to Google's product feed.
;;
;; The dedup story is the most fraught here: many operators already have
;; Shopify ↔ Merchant Center integrations running, so Curator might find
;; the same product already on Google. Phase 3 of the GMC plan adds the
;; reconcile path (products.list on first connect + adopt existing
;; offerId). Until then, sync_listing's POST is idempotent — Google's
;; products.insert is upsert by offerId, so re-pushing the same SKU
;; updates rather than duplicates.

(cart 'cross-post-shopify-to-google
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (shopify-listings google-merchant))
    (read-only . #f)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (act 'shopify/listing (list id) 'check-listing))))

(define (check-listing ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)             (escalate 'listing-not-found null))
      ((listing-is-draft? listing) (escalate 'drafts-do-not-sync null))
      (else (next 'check-merchant (ctx-set 'listing listing ctx))))))

(define (check-merchant ctx)
  (act 'merchant_center.status '() 'check-merchant-result))

(define (check-merchant-result ctx)
  (let ((status (ctx-result ctx)))
    (cond
      ((not (status-connected? status))
       (escalate 'merchant-not-connected null))
      ((status-pending-verification? status)
       (after 3600 'check-merchant ctx))
      (else (next 'push ctx)))))

(define (push ctx)
  (let ((listing (ctx-get 'listing ctx)))
    (act 'merchant_center/sync (list listing) 'check-push-result)))

(define (check-push-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((push-ok? r)
       (next 'announce (ctx-set 'google-product-id (push-product-id r) ctx)))
      ((eq? r 'rate-limited)   (after 30 'push ctx))
      ((eq? r 'mapping-failed) (escalate 'mapping-failed (push-errors r)))
      (else                    (escalate 'push-failed r)))))

(define (announce ctx)
  (sakura/say (string-append
                "Cross-posted Shopify → Google Shopping · "
                (ctx-get 'google-product-id ctx)))
  (done))

source: curator-web/src/scheme/carts/google/cross-post-shopify-to-google.sks · 70 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
cross-post-bulk-to-google
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.6 Google Shopping · cross-post + triage (new, 5) man →

Operator selects N listings, Sakura adapts and pushes the batch. Per-listing failures don't abort the batch.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
operator-commanded
Tools
merchant_center/sync
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Cross-post · bulk to Google Shopping"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   purple
;;~ id       cross-post-bulk-to-google
;;~ touches  (etsy-listings ebay-listings shopify-listings google-merchant)
;;~ summary  "Operator-commanded. Operator selects N listings; cart adapts and pushes each in turn with rate-limit-aware pacing. Per-listing failures don't abort the batch — they're collected and surfaced at the end. Tier-gated to Magic+; drafts never sync."

;; Bulk cross-post. The operator selects a batch (in the listing grid
;; or via "all active") and confirms; the cart walks the batch, pushing
;; each listing in turn.
;;
;; Recursion shape: pop head off the input list, push, branch on result;
;; on success drop the head and recurse; on per-listing failure record
;; the failure and continue. The batch is allowed to partial-succeed —
;; the operator gets a final report of which landed and which didn't.

(cart 'cross-post-bulk-to-google
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (etsy-listings ebay-listings shopify-listings google-merchant))
    (read-only . #f)))

;; ── start ──────────────────────────────────────────────────────
;; ctx carries 'listings — a list of listing records (already fetched
;; by the operator surface; the cart doesn't fetch them itself). Empty
;; list = nothing to do; escalate calmly.
(define (start ctx)
  (let ((listings (ctx-get 'listings ctx)))
    (cond
      ((null? listings) (escalate 'empty-batch null))
      (else (next 'check-merchant
                  (ctx-set 'failures '()
                  (ctx-set 'successes '() ctx)))))))

;; ── check-merchant ─────────────────────────────────────────────
;; Verify the operator has the merchant center connected before we
;; start the batch — failing fast here saves N round-trips.
(define (check-merchant ctx)
  (act 'merchant_center.status '() 'check-merchant-result))

(define (check-merchant-result ctx)
  (let ((status (ctx-result ctx)))
    (cond
      ((not (status-connected? status))
       (escalate 'merchant-not-connected null))
      ((status-pending-verification? status)
       (after 3600 'check-merchant ctx))
      (else (next 'pop-and-push ctx)))))

;; ── pop-and-push — the loop head ──────────────────────────────
;; Peel one listing off the head, push it, branch in a named result
;; fn. Drafts in the batch are silently skipped (the operator surface
;; usually filters drafts out, but the cart's contract is "drafts
;; never sync" so we belt-and-suspender it).
(define (pop-and-push ctx)
  (let ((listings (ctx-get 'listings ctx)))
    (cond
      ((null? listings) (next 'finalize ctx))
      ((listing-is-draft? (car listings))
       (next 'pop-and-push
             (ctx-set 'listings (cdr listings) ctx)))
      (else
       (act 'merchant_center/sync (list (car listings))
            'check-batch-result)))))

;; ── check-batch-result ────────────────────────────────────────
;; Record the outcome, drop the head, recurse. Per-listing failures
;; are collected into 'failures so the operator can see what broke
;; at the end. We pace at 30s on rate-limit; otherwise hard-step.
(define (check-batch-result ctx)
  (let* ((r        (ctx-result ctx))
         (listings (ctx-get 'listings ctx))
         (head     (car listings))
         (rest     (cdr listings)))
    (cond
      ((push-ok? r)
       (next 'pop-and-push
             (ctx-set 'listings rest
             (ctx-set 'successes
                      (cons (push-product-id r) (ctx-get 'successes ctx))
                      ctx))))
      ((eq? r 'rate-limited)
       ;; Keep the head — don't drop it; we retry after the backoff.
       (after 30 'pop-and-push ctx))
      (else
       (next 'pop-and-push
             (ctx-set 'listings rest
             (ctx-set 'failures
                      (cons (list (listing-id head) r) (ctx-get 'failures ctx))
                      ctx)))))))

;; ── finalize — operator-facing summary ────────────────────────
(define (finalize ctx)
  (let ((wins  (length (ctx-get 'successes ctx)))
        (fails (length (ctx-get 'failures  ctx))))
    (sakura/say (string-append
                  "Bulk cross-post complete · "
                  (number->string wins) " ok"
                  (if (> fails 0)
                      (string-append " · " (number->string fails) " flagged")
                      "")))
    (done)))

source: curator-web/src/scheme/carts/google/cross-post-bulk-to-google.sks · 104 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
merchant-violations-triage
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.6 Google Shopping · cross-post + triage (new, 5) man →

Pulls policy violations from Google. Groups by issue code. Surfaces in Analysis as operator-actionable cards.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
cron (hourly)
Tools
merchant_center/violations
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Merchant violations · hourly triage"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   purple
;;~ id       merchant-violations-triage
;;~ touches  (google-merchant)
;;~ summary  "Hourly cron. Pulls list_violations from Google, surfaces new violations as Sakura analysis cards. Each card carries the operator-actionable verbs (fix it / dismiss / hide-forever). Tier-gated to Magic+; quiet-hours-respecting."

;; Hourly triage. The cart subscribes to a cron trigger; the surface
;; reads the resulting cards off the analysis bus and renders them.
;; Cards are grouped by issue type per the GMC plan doc §6 (one card
;; per issue type, not per listing — "Google flagged 3 listings —
;; antique without provenance" reads better than three separate cards).
;;
;; Idempotency: each violation has a stable (product_id, issue_code)
;; key. The cart writes to Cortex with that key; subsequent runs are
;; no-ops for unchanged violations. The operator's hide-forever pref
;; is stored alongside so a dismissed violation never re-surfaces.

(cart 'merchant-violations-triage
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (google-merchant))
    (read-only . #f)))

;; ── start — gate on merchant connection ────────────────────────
;; If the operator isn't connected to GMC, this cron is a no-op.
;; We don't escalate because there's no operator-actionable thing to
;; surface — the cron just exits clean.
(define (start ctx)
  (act 'merchant_center.status '() 'check-merchant-result))

(define (check-merchant-result ctx)
  (let ((status (ctx-result ctx)))
    (cond
      ((not (status-connected? status)) (done))
      ((status-pending-verification? status) (done))
      (else (next 'fetch ctx)))))

;; ── fetch — pull the violations list from Google ──────────────
(define (fetch ctx)
  (act 'merchant_center/violations '() 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)              (done))
      ((eq? r 'rate-limited)  (after 60 'fetch ctx))
      ((violations-error? r)  (escalate 'fetch-failed (violations-error-detail r)))
      (else                   (next 'group (ctx-set 'violations r ctx))))))

;; ── group — bucket by issue code ──────────────────────────────
;; "antique without provenance" gets one card; "image_link_broken"
;; gets another. Operators triage by issue type because the fix is
;; usually the same across products with the same issue.
(define (group ctx)
  (let* ((rows    (ctx-get 'violations ctx))
         (buckets (group-by 'issue_code rows)))
    (next 'surface (ctx-set 'buckets buckets ctx))))

;; ── surface — emit analysis cards ─────────────────────────────
;; One card per bucket. Each card carries:
;;   · the issue code + human description
;;   · the list of affected product_ids (links into the listing drawer)
;;   · the three Sakura verbs (Act / Dismiss / Hide-forever)
;;   · a pre-filled suggested edit when one is available
;;
;; The surface reads these off the cart bus and renders them in the
;; Analysis tab; the cart itself is done as soon as the events fire.
(define (surface ctx)
  (let loop ((buckets (ctx-get 'buckets ctx)))
    (if (null? buckets)
        (done)
        (let ((bucket (car buckets)))
          (analysis-card
            (bucket-issue-code bucket)
            (bucket-description bucket)
            (bucket-product-ids bucket)
            (bucket-suggested-fix bucket))
          (loop (cdr buckets))))))

source: curator-web/src/scheme/carts/google/merchant-violations-triage.sks · 81 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
message-response-time-tracker
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.7 Etsy-data-driven automations · pink (new, 8) man →

Daily median time-to-reply across open buyer threads, flag stragglers.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
cron:daily
Tools
etsy/conversations, sakura/decide
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Message response-time tracker"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       message-response-time-tracker
;;~ trigger  cron:daily
;;~ touches  ()
;;~ summary  "Daily check: median time-to-reply across open buyer threads, flag stragglers."

;; A daily pulse on responsiveness. Pulls the conversation list, lets
;; the local Sakura summarize the median + outliers. No cloud; this
;; is a numeric summary task that fits on-device.

(cart 'message-response-time-tracker
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/conversations (list 'open) 'summarize))

(define (summarize ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (act 'sakura/decide
                                            (list 'task 'response-time-summary r)
                                            'check-result)))))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)              (escalate 'sakura-empty null))
      ((not (string? r))      (escalate 'sakura-garbled null))
      (else                   (next 'announce (ctx-set 'summary r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/message-response-time-tracker.sks · 45 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
buyer-sentiment-watcher
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.7 Etsy-data-driven automations · pink (new, 8) man →

Score the new buyer message for sentiment; only the negative case escalates to the operator.

Cheap local classifier reads the tone first. Only the genuinely negative messages escalate to cloud reasoning for deeper read. Saves API spend on the everyday-friendly stuff.
Trigger
event:new-buyer-message
Tools
sakura/decide
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Buyer sentiment watcher"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       buyer-sentiment-watcher
;;~ trigger  event:new-buyer-message
;;~ touches  ()
;;~ summary  "Score the new buyer message for sentiment, surface anything heading negative."

;; On-device sentiment classifier. The score rides back as a symbol
;; ('positive / 'neutral / 'negative); only 'negative escalates the
;; thread to the operator with the message attached so a calmer human
;; can step in.

(cart 'buyer-sentiment-watcher
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((message (ctx-get 'message ctx)))
    (if (null? message)
        (escalate 'missing-message null)
        (next 'classify ctx))))

(define (classify ctx)
  (let ((message (ctx-get 'message ctx)))
    (act 'sakura/decide
         (list 'task 'classify-sentiment message)
         'check-result)))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)              (escalate 'sakura-empty null))
      ((eq? r 'negative)      (escalate 'buyer-upset (ctx-get 'message ctx)))
      ((eq? r 'positive)      (next 'announce (ctx-set 'sentiment r ctx)))
      ((eq? r 'neutral)       (next 'announce (ctx-set 'sentiment r ctx)))
      (else                   (escalate 'sakura-garbled null)))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/buyer-sentiment-watcher.sks · 42 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
favorites-velocity-watcher
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.7 Etsy-data-driven automations · pink (new, 8) man →

Daily climbers: which listings picked up favorites fastest in the last 24h.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
cron:daily
Tools
etsy/listings
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Favorites velocity watcher"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       favorites-velocity-watcher
;;~ trigger  cron:daily
;;~ touches  ()
;;~ summary  "Daily: which listings picked up favorites fastest in the last 24h. Catch the climbers early."

;; Pulls active listings + 24h favorite delta from Cortex, ranks by
;; velocity, returns the top movers as a table. The numeric work is
;; pure Scheme; we don't need the model here.

(cart 'favorites-velocity-watcher
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'favorites-velocity '24h) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title favs-24h velocity))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/favorites-velocity-watcher.sks · 36 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
property-completeness-audit
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.7 Etsy-data-driven automations · pink (new, 8) man →

Active-listings property fill rate (Etsy taxonomy attrs); surface anything under 80%.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
cron:daily
Tools
etsy/listings
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Property completeness audit"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       property-completeness-audit
;;~ trigger  cron:daily
;;~ touches  ()
;;~ summary  "Daily: every active listing's required property fields (taxonomy attrs), surface the gaps."

;; Pulls active listings and scores their taxonomy-attribute fill rate
;; (required attrs declared / required attrs total). Anything under
;; 80% lands in the surface as an attention card. Numeric work; no LLM.

(cart 'property-completeness-audit
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'active 'with-taxonomy-attrs) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title attrs-filled attrs-total))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/property-completeness-audit.sks · 36 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
attribute-fill-suggest
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.7 Etsy-data-driven automations · pink (new, 8) man →

When a listing is edited, propose missing taxonomy attributes (material, color, occasion) from the title.

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Trigger
event:listing-edited
Tools
etsy/listing, sakura/decide
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Suggest missing attributes"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       attribute-fill-suggest
;;~ trigger  event:listing-edited
;;~ touches  ()
;;~ summary  "When a listing is edited, propose the missing taxonomy attributes (material, color, occasion) from the title."

;; Reads the listing's current attrs + title, asks the local Sakura
;; to propose values for any missing attrs. Output is a list of
;; (attr-name, suggested-value) pairs; type-trapped before announce.

(cart 'attribute-fill-suggest
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id 'with-taxonomy-attrs) 'invoke)))

(define (invoke ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)              (escalate 'no-data null))
      ((eq? listing 'rate-limited)  (after 30 'fetch ctx))
      (else (act 'sakura/decide
                 (list 'task 'attribute-fill-suggest listing)
                 'check-result)))))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)              (escalate 'sakura-empty null))
      ((not (list? r))        (escalate 'sakura-garbled null))
      (else                   (next 'announce (ctx-set 'suggestions r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/attribute-fill-suggest.sks · 46 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
tax-settings-audit
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.7 Etsy-data-driven automations · pink (new, 8) man →

Confirm tax settings match the shop's declared nexus list.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
cron:weekly
Tools
etsy/shop
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Tax-settings audit"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       tax-settings-audit
;;~ trigger  cron:weekly
;;~ touches  ()
;;~ summary  "Weekly: confirm tax settings match the shop's declared nexus list, flag anything stale."

;; Pulls the shop's tax settings + declared nexus list. Compares the
;; two; flags anything where the nexus says "we collect" but the
;; settings don't, or vice versa. Pure-data check; no LLM.

(cart 'tax-settings-audit
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/shop (list 'with-tax-settings) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(jurisdiction declared-nexus settings-active mismatch))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/tax-settings-audit.sks · 36 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
shop-policy-freshness-audit
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.7 Etsy-data-driven automations · pink (new, 8) man →

Returns + shipping + payment policy timestamps; flag anything over a year stale.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
cron:weekly
Tools
etsy/shop
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

Scheme source

;;~ title    "Shop policy freshness audit"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       shop-policy-freshness-audit
;;~ trigger  cron:weekly
;;~ touches  ()
;;~ summary  "Weekly: when were returns, shipping, payment policies last updated? Flag anything over a year stale."

;; Reads shop policy timestamps. Anything not updated in 365 days
;; surfaces with a calm nudge — policy text dating from a year+ ago
;; usually drifts from how the operator actually handles things.

(cart 'shop-policy-freshness-audit
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/shop (list 'with-policy-timestamps) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(policy last-updated days-since-update stale))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/shop-policy-freshness-audit.sks · 36 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
featured-listing-rotation
pink§7. Pink — Sakura local (65 baseline, 131 post-matrix) · §7.7 Etsy-data-driven automations · pink (new, 8) man →

Nudge to rotate the four featured listings if they've been the same for over a month.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Trigger
cron:weekly
Tools
etsy/listings
Source
new
Section
§7. Pink — Sakura local (65 baseline, 131 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §7-pink-sakura-local-65-baseline-131-post-matrix

§8. Green — cloud assist + web search + vision38 entries

photo-classify
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Classify product category from photo.

Vision model via Flash reads the photo and answers one yes/no question (is it dim? blurred? watermarked?). Cheap per call; runs before publish.
Trigger
event (image upload)
Tools
(image understanding)
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/photo-classify.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
photo-dim-detect
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Flag a too-dark listing photo before publish.

Pure-logic check — one feature inspected per row. Surfaces a flag for the operator's eye; never acts alone.
Trigger
event (image upload)
Tools
(vision)
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/photo-dim-detect.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
photo-blur-detect
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Flag a blurred photo before publish.

Pure-logic check — one feature inspected per row. Surfaces a flag for the operator's eye; never acts alone.
Trigger
event (image upload)
Tools
(vision)
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/photo-blur-detect.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
photo-watermark-detect
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Flag visible watermark/stamp on photo.

Pure-logic check — one feature inspected per row. Surfaces a flag for the operator's eye; never acts alone.
Trigger
event (image upload)
Tools
(vision)
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/photo-watermark-detect.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
photo-composition-score
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Score composition (rule-of-thirds, framing) for the operator's reference.

Vision model via Flash reads the photo and answers one yes/no question (is it dim? blurred? watermarked?). Cheap per call; runs before publish.
Trigger
event (image upload)
Tools
(vision)
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/photo-composition-score.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
photo-background-check
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Cluttered background flag.

Vision model via Flash reads the photo and answers one yes/no question (is it dim? blurred? watermarked?). Cheap per call; runs before publish.
Trigger
event (image upload)
Tools
(vision)
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/photo-background-check.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
photo-product-presence
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Verify the product is actually in the photo.

Vision model via Flash reads the photo and answers one yes/no question (is it dim? blurred? watermarked?). Cheap per call; runs before publish.
Trigger
event (image upload)
Tools
(vision)
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/photo-product-presence.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
detect-near-duplicate-image
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Flag a photo that looks like another listing's. Addresses pain #26.

Pure-logic check — one feature inspected per row. Surfaces a flag for the operator's eye; never acts alone.
Trigger
event
Tools
(vision)
Source
carry-forward
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

;;~ title    "Detect near-duplicate image"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       detect-near-duplicate-image
;;~ touches  ()
;;~ summary  "Flag a photo that looks like another listing's."

;; Flag a photo that looks like another listing's.
;;
;; Local Sakura runs over one listing's context. precondition_fetch
;; pulls the listing record, sakura/decide produces the summary or
;; comparison, type-trap on the output, then announce.

(cart 'detect-near-duplicate-image
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id) 'invoke)))

(define (invoke ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)              (escalate 'no-data null))
      ((eq? listing 'rate-limited)  (after 30 'fetch ctx))
      (else (act 'sakura/decide
                 (list 'task 'detect-near-duplicate-image listing)
                 'check-result)))))

(define (check-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                  (escalate 'sakura-empty null))
      ((not (string? r))          (escalate 'sakura-garbled null))
      (else                       (next 'announce (ctx-set 'output r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/detect-near-duplicate-image.sks · 47 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: greenACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
suggest-photo-to-listing-match
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.1 Photo vision (new, 9) man →

Match orphan photos to likely listings. Addresses pain #13. Matrix mod 2026-06-01: Engram-side — matches phone-uploaded photos to desktop drafts.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Trigger
event
Tools
(vision), search_listings
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/suggest-photo-to-listing-match.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
competitor-tag-overlap
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Compare operator's tags to peers' for one listing. Addresses pain #3, #31. Matrix mod 2026-06-01: Engram-cached so repeated lookups share results across operator's devices.

Crawls trending keywords + your own tag-to-sales history. Proposes the thirteen tags that historically correlate with sales in your niche.
Trigger
event / analysis-pattern
Tools
peer_lookup
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/competitor-tag-overlap.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
competitor-price-comp
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Pull peer prices for a listing to ground a price suggestion.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event
Tools
peer_lookup
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/competitor-price-comp.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
competitor-photo-style
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Compare operator's photos to peer photos on the same category.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Trigger
event
Tools
peer_lookup
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/competitor-photo-style.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
niche-trend-watch
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

What's trending in this operator's niche. Addresses pain #31. Matrix mod 2026-06-01: Engram-projection so output lands on every device.

web search reads the live market in your niche; we diff against where you sit. The gap between what's moving and what you're listing is the opportunity.
Trigger
cron (weekly)
Tools
web_search
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/niche-trend-watch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
policy-preflight-listing
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Check listing against platform policy before publish. Addresses pain #2, #32. Matrix mod 2026-06-01: Engram + cross-device — if drafted on phone, preflight surfaces on desktop next sync.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event (pre-publish)
Tools
policy_lookup
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/policy-preflight-listing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
category-ai-policy-check
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Some Etsy categories ban AI-generated; flag it. Addresses pain #32.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event
Tools
policy_lookup
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/category-ai-policy-check.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shipping-country-policy-check
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Country-of-destination shipping restrictions. Addresses pain #17. Matrix mod 2026-06-01: Engram-cached + Maps-grounded — preflight uses real buyer-country distribution.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Trigger
event
Tools
policy_lookup
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shipping-country-policy-check.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
trending-keyword-pull
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

What keywords are buyers searching this week.

web search reads the live market in your niche; we diff against where you sit. The gap between what's moving and what you're listing is the opportunity.
Trigger
cron (weekly)
Tools
web_search
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix
holiday-trends
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Holiday-season trend signals from public sources. Matrix mod 2026-06-01: Engram + geo — holiday cutoff by buyer region.

Calendar-aware. Reads the date, your past seasonal lift, current trends. Surfaces what worked last year with concrete inventory + caption suggestions.
Trigger
cron (monthly Sep–Dec)
Tools
web_search
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix
pricing-benchmarks
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Mid-market price band for this category. Addresses pain #19. Matrix mod 2026-06-01: Engram + Atlas — peer percentile in same geo region.

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Trigger
event
Tools
peer_lookup
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/pricing-benchmarks.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
seller-handbook-lookup
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.2 Web grounding via web search (new, 11) man →

Look up a specific platform-handbook page.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event
Tools
web_scrape
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/seller-handbook-lookup.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
recommend-price-change
light purple§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

Suggest a price move with reasoning + comps. Addresses pain #14, #19, #23. Matrix mod 2026-06-01: + Engram (multi-device pricing context); premium variant moves to light-purple when Monte Carlo enabled.

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Trigger
analysis-pattern
Tools
competitor-price-comp, cortex.aggregate
Source
carry-forward
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

;;~ title    "Recommend a price change"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       recommend-price-change
;;~ touches  ()
;;~ summary  "Suggest a price move with reasoning + comps."

;; Suggest a price move with reasoning + comps.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'recommend-price-change
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (act 'etsy/listing (let ((id (ctx-get 'listing-id ctx))) (list id)) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'recommend-price-change facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/recommend-price-change.sks · 53 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
spot-trend-in-my-shop
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

Find an emerging pattern across listings + receipts.

web search reads the live market in your niche; we diff against where you sit. The gap between what's moving and what you're listing is the opportunity.
Trigger
analysis-pattern
Tools
cortex.aggregate, web_search
Source
carry-forward
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

;;~ title    "Spot a trend in my shop"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       spot-trend-in-my-shop
;;~ touches  ()
;;~ summary  "Find an emerging pattern across listings + receipts."

;; Find an emerging pattern across listings + receipts.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'spot-trend-in-my-shop
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/listings (list 'active) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'spot-trend-in-my-shop facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/spot-trend-in-my-shop.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: greenACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
photo-pre-publish-pass
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

Full vision pass before publish.

Vision model via Flash reads the photo and answers one yes/no question (is it dim? blurred? watermarked?). Cheap per call; runs before publish.
Trigger
event (pre-publish)
Tools
photo-dim-detect, photo-blur-detect, photo-watermark-detect
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/photo-pre-publish-pass.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
listing-pre-publish-pass
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

All-green pre-publish check. Addresses pain #2.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event (pre-publish)
Tools
policy-preflight-listing, photo-pre-publish-pass
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/listing-pre-publish-pass.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
price-drift-watch
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

Operator's prices drifting vs market. Addresses pain #19.

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Trigger
cron (monthly)
Tools
competitor-price-comp
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/price-drift-watch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
review-anomaly-watch
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

Sudden drop in rating or rise in returns. Addresses pain #4. Matrix mod 2026-06-01: voice-narrated option; Engram-broadcast to all devices.

Cluster the reviews by what they're about. Surface the themes with real quotes attached — operator sees what buyers actually said, not a summary that lost the words.
Trigger
cron (daily)
Tools
cortex.aggregate
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/review-anomaly-watch.sks

Example

Sakura uses this when she sees a sudden drift in your reviews. She compares the running monthly distribution to its own recent baseline and flags only the days that don't look like your shop's own normal — no hand-tuned threshold.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
repeat-buyer-watch
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

Buyers who came back; suggest a thank-you. Addresses pain #33. Matrix mod 2026-06-01: + geo — where do repeat buyers cluster? Feeds the buyer-cluster-geo summary.

Pull buyers who match a behavior pattern. Suggest a tailored touch — a thank-you, a restock note, a recovery message. Cheap care that compounds.
Trigger
cron (weekly)
Tools
cortex.aggregate
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/repeat-buyer-watch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
audit-stale-announcement
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

Shop announcement older than 90 days. Addresses pain #35.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
cron (monthly)
Tools
cortex_query
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/audit-stale-announcement.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
renew-or-let-die-decision
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.3 Analysis-pattern green (new + carry, 16) man →

Should this listing renew, given 0 views and 0 favs in 4 months? Addresses pain #15.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
cron (per listing near expiry)
Tools
cortex.aggregate
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/renew-or-let-die-decision.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
caption-from-listing
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.4 Event-driven green (new, 10) man →

One-line caption from listing details. Addresses pain #18.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
photo-classify, cortex_query
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/caption-from-listing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
explain-platform-flag
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.4 Event-driven green (new, 10) man →

When Etsy flags a listing, pull the exact clause and explain. Addresses pain #2, #17.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event (platform flag inbound)
Tools
policy_lookup
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/explain-platform-flag.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
review-roundup
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.4 Event-driven green (new, 10) man →

Roundup of recent reviews, grounded in actual review text. Addresses pain #4, #24.

Cluster the reviews by what they're about. Surface the themes with real quotes attached — operator sees what buyers actually said, not a summary that lost the words.
Trigger
event (new review)
Tools
cortex.aggregate
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/review-roundup.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
seasonal-prep-pulse
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.4 Event-driven green (new, 10) man →

"Holidays are X days out; you have Y inventory." Addresses pain #34. Matrix mod 2026-06-01: + geo (regional holidays differ) + Engram (cross-device).

Calendar-aware. Reads the date, your past seasonal lift, current trends. Surfaces what worked last year with concrete inventory + caption suggestions.
Trigger
cron (Sep–Dec daily)
Tools
cortexquery, websearch
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/seasonal-prep-pulse.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
auto-receipts-watch
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.4 Event-driven green (new, 10) man →

Notice a payment that hasn't been acknowledged.

Compare incoming order against the operator's normal pattern (price tier, geography, buyer history). Flag the genuinely strange ones; trust the boring ones.
Trigger
cron (hourly)
Tools
cortex_query
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/auto-receipts-watch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
tone-classify-message
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.4 Event-driven green (new, 10) man →

Classify tone of an inbound customer message before draft-reply. Addresses pain #9, #16.

Cheap local classifier reads the tone first. Only the genuinely negative messages escalate to cloud reasoning for deeper read. Saves API spend on the everyday-friendly stuff.
Trigger
event (customer DM)
Tools
cortex_query
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/tone-classify-message.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
language-detection-on-paste
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.4 Event-driven green (new, 10) man →

Detect non-English paste and offer translation. Addresses pain #30.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event (operator paste)
Tools
cortex_query
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/language-detection-on-paste.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
quiet-hours-respect
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.4 Event-driven green (new, 10) man →

Detect operator's typical activity hours; suppress non-urgent surfaces outside them. Addresses pain #21. Matrix mod 2026-06-01: Engram so quiet-hours sync across devices.

Cron-time guard. Reads the operator's quiet hours from Cortex; suppresses non-urgent surfaces and notifications outside them. The 'no 2am pings' rule.
Trigger
cron (init)
Tools
cortex_query
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/quiet-hours-respect.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shipping-template-audit
green§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix) · §8.5 Etsy-data-driven white audit (new, 1) man →

Listings whose category or weight no longer matches their assigned shipping template.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
cron:weekly
Tools
etsy/listings
Source
new
Section
§8. Green — cloud assist + web search + vision (46 baseline, 152 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §8-green-cloud-assist-web-search-vision-46-baseline-152-post-matrix

Scheme source

;;~ title    "Shipping template audit"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     analysis
;;~ flavor   white
;;~ id       shipping-template-audit
;;~ trigger  cron:weekly
;;~ touches  ()
;;~ summary  "Weekly: listings whose category or weight no longer matches their assigned shipping template."

;; Pure-data audit. Pulls listings + their shipping templates, applies
;; a deterministic mismatch check (template region vs declared origin,
;; weight bracket vs actual weight), renders the gaps as a table.

(cart 'shipping-template-audit
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'active 'with-shipping) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title template-id mismatch))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/shipping-template-audit.sks · 36 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: greenACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human

§9. Light purple — cloud reasoning51 entries

voice-faithful-rewrite
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

Rewrite a listing in the operator's own voice (Atlas-grounded). Addresses pain #1, #7, #20. Matrix mod 2026-06-01: + Engram-hosted so cloud reasoning has full operator history context.

cloud reasoning rewrites a listing while preserving the operator's voice. Atlas-trained on the operator's own past edits — every word choice traces back to something they've already written. The #1 customer pain (generic AI prose) fixed by giving the model your edits as ground truth.
Trigger
event (operator asks for rewrite)
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/voice-faithful-rewrite.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
translate-listing-faithful
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

Translate while preserving voice. Addresses pain #30. Matrix mod 2026-06-01: + STT for voice-triggered translation.

cloud reasoning translates the listing while preserving the operator's voice register. Atlas pairs in both languages teach it which phrasing maps.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/translate-listing-faithful.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
brand-story-revise
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

Polish the brand-story prose deep reasoning drafted.

Long-form prose from your own history. Atlas-grounded — every phrasing choice traces back to something you've written before.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/brand-story-revise.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
listing-tone-shift
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

Same listing, different register (formal, playful, professional).

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/listing-tone-shift.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
product-line-naming
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

Name a new product line; opinionated, not five options. Addresses pain in §4.2.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/product-line-naming.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
descriptive-rewrite-multiparagraph
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

Long-form description with multi-paragraph structure.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/descriptive-rewrite-multiparagraph.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
seo-title-rewrite
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

Title with current-trend keywords woven in.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
cortex_query, trending-keyword-pull
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/seo-title-rewrite.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
listing-summary-marketing
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

2-3 sentence marketing summary suited to a feed card.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/listing-summary-marketing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-tagline-shop
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.1 Voice-faithful writing (new + promoted, 9) man →

Polished shop tagline (cloud reasoning because it sets brand register).

Long-form prose from your own history. Atlas-grounded — every phrasing choice traces back to something you've written before.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-tagline-shop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
write-customer-recovery-message
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Recovery note to an unhappy buyer, tuned to the case. Addresses pain #16.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
analysis-pattern (low rating / refund)
Tools
draftcustomermessage, cortex_query
Source
carry-forward
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Write a customer-recovery message"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       write-customer-recovery-message
;;~ touches  ()
;;~ summary  "Recovery note to an unhappy buyer, tuned to the case."

;; Recovery note to an unhappy buyer, tuned to the case.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'write-customer-recovery-message
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/receipts (list '90d) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'write-customer-recovery-message facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/write-customer-recovery-message.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
draft-customer-message-polished
pink§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Polished version of pink's draft for sensitive cases.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event
Tools
draftcustomermessage
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-customer-message-polished.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-refund-message
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Refund-explanation message with policy clauses. Addresses pain #16.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event
Tools
draftcustomermessage
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-refund-message.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-shipping-delay-note
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Shipping-delay message with timeline.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event
Tools
draftcustomermessage
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-shipping-delay-note.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-custom-order-quote
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Custom-order quote response.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event
Tools
draftcustomermessage
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-custom-order-quote.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-policy-explanation-to-buyer
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Explain shop policy to a confused buyer.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event (buyer asks about return)
Tools
policylookup, draftcustomer_message
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-policy-explanation-to-buyer.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-thank-you-warm
pink§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Warmer, longer thank-you (vs pink's one-liner).

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event
Tools
draftcustomermessage
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-thank-you-warm.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-vacation-message
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Vacation announcement + ack response template.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event (operator going away)
Tools
updatelisting, draftcustomer_message
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-vacation-message.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-restock-announcement
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Polished restock for buyers who favorited.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event (back in stock)
Tools
update_listing
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-restock-announcement.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-launch-announcement
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

New-line announcement post.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event (new product line)
Tools
update_listing
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-launch-announcement.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
draft-followup-three-month
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.2 Customer-facing communication (carry + new, 11) man →

Re-engagement note to a past buyer.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
analysis-pattern (3 months post-order)
Tools
draftcustomermessage
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/draft-followup-three-month.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
diagnose-slow-listing
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.3 Listing-grade synthesis (carry + new, 8) man →

Why isn't this listing selling? Multi-signal walk-through. Addresses pain #14. Matrix mod 2026-06-01: + Engram + Atlas for peer-relative diagnosis.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
analysis-pattern
Tools
cortex.aggregate, competitor-price-comp, photo-pre-publish-pass
Source
carry-forward
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Diagnose a slow listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       diagnose-slow-listing
;;~ touches  ()
;;~ summary  "Why isn't this listing selling? Multi-signal walk-through."

;; Why isn't this listing selling? Multi-signal walk-through.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'diagnose-slow-listing
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (act 'etsy/listing (let ((id (ctx-get 'listing-id ctx))) (list id)) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'diagnose-slow-listing facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/diagnose-slow-listing.sks · 53 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
analyze-buyer-cohort
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.3 Listing-grade synthesis (carry + new, 8) man →

Pull a cohort, find what they have in common.

Pull a slice of buyers (sharing a feature), tally what they have in common, surface the pattern. Lets the operator find more of who's already working.
Trigger
analysis-pattern
Tools
cortex.aggregate
Source
carry-forward
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Analyze a buyer cohort"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       analyze-buyer-cohort
;;~ touches  ()
;;~ summary  "Pull a cohort, find what they have in common."

;; Pull a cohort, find what they have in common.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'analyze-buyer-cohort
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/receipts (list '90d) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'analyze-buyer-cohort facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/analyze-buyer-cohort.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
forecast-next-month
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.3 Listing-grade synthesis (carry + new, 8) man →

Project 30 days from recent series.

Estimate how long a thing takes (or how much revenue lands) with honest confidence bands. Borrowed from medical research; we don't pretend to know what we don't know.
Trigger
analysis-pattern
Tools
cortex.aggregate
Source
carry-forward
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Forecast next month"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       forecast-next-month
;;~ touches  ()
;;~ summary  "Project the next 30 days from recent series."

;; Project the next 30 days from recent series.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'forecast-next-month
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/receipts (list '90d) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'forecast-next-month facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/forecast-next-month.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
compare-shop-to-segment
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.3 Listing-grade synthesis (carry + new, 8) man →

Where does this shop sit vs category peers. Matrix mod 2026-06-01: + Engram-hosted enables real-time vs nightly.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
analysis-pattern
Tools
cortex.aggregate, peer_lookup
Source
carry-forward
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Compare shop to its segment"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       compare-shop-to-segment
;;~ touches  ()
;;~ summary  "Where does this shop sit vs. its category peers."

;; Where does this shop sit vs. its category peers.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'compare-shop-to-segment
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/shop (list 'shop) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'compare-shop-to-segment facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/compare-shop-to-segment.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
write-bundled-listing-copy
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.3 Listing-grade synthesis (carry + new, 8) man →

Compose copy for a multi-item bundle.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
draftlisting, cortexquery
Source
carry-forward
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Write a bundled-listing copy"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       write-bundled-listing-copy
;;~ touches  ()
;;~ summary  "Compose listing copy for a multi-item bundle."

;; Compose listing copy for a multi-item bundle.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'write-bundled-listing-copy
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (act 'etsy/listing (let ((id (ctx-get 'listing-id ctx))) (list id)) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'write-bundled-listing-copy facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/write-bundled-listing-copy.sks · 53 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-rewrite-from-feedback
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.3 Listing-grade synthesis (carry + new, 8) man →

Listing rewrite that ingests the operator's pushback.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event (after operator feedback)
Tools
update_listing
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/listing-rewrite-from-feedback.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
listing-rewrite-after-flag
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.3 Listing-grade synthesis (carry + new, 8) man →

Compliant rewrite from a flag. Addresses pain #2.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event (Etsy flagged)
Tools
policylookup, updatelisting
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/listing-rewrite-after-flag.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
listing-merge-near-duplicates
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.3 Listing-grade synthesis (carry + new, 8) man →

Consolidate near-duplicate listings into one with variations.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
analysis-pattern
Tools
search_listings
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/listing-merge-near-duplicates.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
tag-suggest
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.4 Tagging + discoverability (new + promoted, 6) man →

13 SEO-aware tags from title + description. Promoted from mint to light-purple per §10 surprise.

Crawls trending keywords + your own tag-to-sales history. Proposes the thirteen tags that historically correlate with sales in your niche.
Trigger
event
Tools
cortex_query, trending-keyword-pull
Source
carry-forward (promoted)
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Suggest tags for a listing"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   green
;;~ id       tag-suggest
;;~ touches  ()
;;~ summary  "Haiku proposes 13 SEO-aware tags from title + description."

;; Haiku proposes 13 SEO-aware tags from title + description.
;;
;; Read-only cart, architect-shape. The verb call lives inside (act ...)
;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy
;; request, threads the response into ctx via 'last-result, then jumps
;; to the named result handler.

(cart 'tag-suggest
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected)     (escalate 'shop-not-connected null))
      (else                (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listing (list 'suggest) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(tag count))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/tag-suggest.sks · 38 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
tag-rewrite-from-trends
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.4 Tagging + discoverability (new + promoted, 6) man →

Refresh tags against current trend signals.

Crawls trending keywords + your own tag-to-sales history. Proposes the thirteen tags that historically correlate with sales in your niche.
Trigger
event
Tools
trending-keyword-pull
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix
description-keyword-fill
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.4 Tagging + discoverability (new + promoted, 6) man →

Weave SEO keywords into a description naturally.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
trending-keyword-pull
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/description-keyword-fill.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
section-name-suggest
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.4 Tagging + discoverability (new + promoted, 6) man →

Name a new shop section based on what's in it.

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Trigger
event
Tools
cortex.aggregate
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/section-name-suggest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shop-section-restructure
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.4 Tagging + discoverability (new + promoted, 6) man →

Propose a shop-section restructure ("you have 4 sections; these listings cluster into 3").

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
analysis-pattern
Tools
cortex.aggregate
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shop-section-restructure.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
listing-attribute-fill
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.4 Tagging + discoverability (new + promoted, 6) man →

Fill Etsy's item-specifics from the listing description. Addresses pain in canonical §4.5.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/listing-attribute-fill.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
social-post-draft
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.5 Social + marketing (new, 8) man →

Polished Instagram / TikTok / Pinterest post draft. Addresses pain #8, #18. Matrix mod 2026-06-01: + STT (voice-to-post) + Engram (best-photo from cross-device library).

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/social-post-draft.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
caption-package-week
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.5 Social + marketing (new, 8) man →

A week's captions in operator's voice. Addresses pain #18.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
cron (weekly)
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/caption-package-week.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
email-campaign-draft
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.5 Social + marketing (new, 8) man →

Draft an email campaign in voice.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/email-campaign-draft.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shop-newsletter-section
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.5 Social + marketing (new, 8) man →

A polished section of a shop newsletter.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shop-newsletter-section.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ad-copy-meta
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.5 Social + marketing (new, 8) man →

Meta-style ad copy for a listing (operator-driven, addresses pain #8).

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ad-copy-meta.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ad-copy-pinterest
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.5 Social + marketing (new, 8) man →

Pinterest-style ad copy.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ad-copy-pinterest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
social-bio-rewrite
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.5 Social + marketing (new, 8) man →

Polish the operator's bio on each platform.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/social-bio-rewrite.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
video-script-30s
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.5 Social + marketing (new, 8) man →

30-second video script for a listing.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
cortex_query
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/video-script-30s.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
polish-listing-for-google
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.6 Google Shopping · audience-aware polish (new, 1) man →

cloud reasoning rewrites the description for Google Shopping's search-results audience (vs the maker-storefront audience of Etsy / eBay). Opt-in. Operator approves the draft before sync. Atlas-grounded — preserves the operator's voice. Lives under scheme/carts/google/manifest.js.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
operator-commanded
Tools
sakura/relay (cloud-reason), merchant_center/sync
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Polish · listing for Google Shopping (Sonnet)"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   purple
;;~ id       polish-listing-for-google
;;~ touches  (google-merchant)
;;~ summary  "Operator-commanded. Sonnet rewrites the listing's description specifically for Google Shopping's audience — search-results-page reading rather than maker's-storefront. OPT-IN, not default. Preserves the operator's voice (Atlas-grounded). Light-purple tier — Magic+."

;; Light-purple polish cart. The other five Google-tier carts are pink
;; (Sakura local) for the field mapping + sequencing; THIS one calls
;; Sonnet for the rewrite because the audience is fundamentally
;; different from Etsy / eBay (search-results-page reader, not a
;; storefront browser) and the rewrite quality matters.
;;
;; Opt-in: never fires on event. The operator picks it from the
;; analysis surface or asks Sakura ("polish this for Google").
;; The rewrite is shown to the operator for approval before any push.

(cart 'polish-listing-for-google
  '((author    . "lacuna")
    (version   . 1)
    (touches   . (google-merchant))
    (read-only . #f)))

;; ── start ──────────────────────────────────────────────────────
;; ctx carries 'listing-id. Fetch the listing first; we need the
;; current title + description as the seed for the rewrite.
(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    ;; Platform-agnostic listing fetch — the dispatcher routes to the
    ;; right origin platform based on the listing's id prefix.
    (act 'listing/fetch (list id) 'check-listing)))

(define (check-listing ctx)
  (let ((listing (ctx-result ctx)))
    (cond
      ((null? listing)             (escalate 'listing-not-found null))
      ((listing-is-draft? listing) (escalate 'drafts-do-not-sync null))
      (else (next 'rewrite (ctx-set 'listing listing ctx))))))

;; ── rewrite — the Sonnet hop ──────────────────────────────────
;; sakura/relay routes to Sonnet (per the orchestration grammar in
;; AUTOMATIONS-CANONICAL.md §9). The audience prompt is "Google
;; Shopping search results"; the operator's Atlas-grounded voice is
;; pulled in as a system note so the rewrite preserves the voice.
(define (rewrite ctx)
  (let ((listing (ctx-get 'listing ctx)))
    (sakura/relay 'sonnet 'polish-google
                  (list (listing-title       listing)
                        (listing-description listing)
                        (listing-category    listing))
                  'check-rewrite)))

(define (check-rewrite ctx)
  (let ((draft (ctx-result ctx)))
    (cond
      ((null? draft) (escalate 'rewrite-failed null))
      (else
       ;; Show the operator the proposed rewrite before pushing. The
       ;; surface owns the approval UI; the cart waits for the operator
       ;; to commit or cancel.
       (next 'await-approval (ctx-set 'draft draft ctx))))))

;; ── await-approval — surface waits for operator ───────────────
;; The driver pauses here; the surface emits an "approve / edit /
;; cancel" pill. On approve, ctx is updated with 'approved=#t and the
;; driver re-runs us — we move to push. On cancel the cart ends without
;; touching Google.
(define (await-approval ctx)
  (cond
    ((eq? (ctx-get 'approved ctx) #t) (next 'push ctx))
    ((eq? (ctx-get 'cancelled ctx) #t) (done))
    (else (sakura/say "Tap approve to push the polished version to Google.")
          (done))))

;; ── push — the only side-effecting state ──────────────────────
;; Build the polished listing dict (the original + the rewritten
;; description) and call merchant_center/sync.
(define (push ctx)
  (let ((listing (listing-with-description
                   (ctx-get 'listing ctx)
                   (ctx-get 'draft   ctx))))
    (act 'merchant_center/sync (list listing) 'check-push-result)))

(define (check-push-result ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((push-ok? r)
       (sakura/say (string-append
                     "Polished + pushed to Google · "
                     (push-product-id r)))
       (done))
      ((eq? r 'rate-limited) (after 30 'push ctx))
      (else                  (escalate 'push-failed r)))))

source: curator-web/src/scheme/carts/google/polish-listing-for-google.sks · 101 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
conversation-aware-reply-drafting
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.7 Etsy-data-driven automations · light-purple (new, 8) man →

Draft a Sakura-voice reply tuned to the thread. Draft NEVER auto-sends.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
event:new-buyer-message
Tools
etsy/conversations, sakura/cloud-reason
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Draft a reply to a buyer message"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       conversation-aware-reply-drafting
;;~ trigger  event:new-buyer-message
;;~ touches  ()
;;~ summary  "Read the buyer's message thread, draft a Sakura-voice reply tuned to the context."

;; Triggered when a new buyer message arrives. Pulls the thread, hands
;; it to Sonnet via sakura/cloud-reason for a calibrated reply draft,
;; type-traps the output, surfaces the draft for the operator to send.
;; The draft NEVER auto-sends.

(cart 'conversation-aware-reply-drafting
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((thread-id (ctx-get 'thread-id ctx)))
    (if (null? thread-id)
        (escalate 'missing-thread-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((thread-id (ctx-get 'thread-id ctx)))
    (act 'etsy/conversations (list thread-id) 'check-fetch)))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-thread null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      ((eq? r 'auth-stale)             (escalate 'auth-relogin null))
      (else                            (next 'reason (ctx-set 'thread r ctx))))))

(define (reason ctx)
  (let ((thread (ctx-get 'thread ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'draft-buyer-reply thread)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'draft r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/conversation-aware-reply-drafting.sks · 54 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-performance-vs-shop-average
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.7 Etsy-data-driven automations · light-purple (new, 8) man →

How each listing stacks against the shop's own median on views, favorites, sales.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
cron:weekly
Tools
etsy/listings, sakura/cloud-reason
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Listing vs shop average"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       listing-performance-vs-shop-average
;;~ trigger  cron:weekly
;;~ touches  ()
;;~ summary  "Weekly: how each listing stacks against the shop's own median on views, favorites, and sales."

;; Weekly rollup. precondition_fetch the active listings + their 7d
;; metrics; let Sonnet narrate the per-listing percentile + standouts
;; (top-quartile, bottom-quartile, big movers).

(cart 'listing-performance-vs-shop-average
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'active 'with-7d-metrics) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'rows r ctx))))))

(define (reason ctx)
  (let ((rows (ctx-get 'rows ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'listing-vs-shop-average rows)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/listing-performance-vs-shop-average.sks · 51 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
listing-funnel-diagnosis
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.7 Etsy-data-driven automations · light-purple (new, 8) man →

Walk the view → favorite → sale funnel for one listing, name the leak. Addresses pain #14.

Walk the view → favorite → sale chain. At each step, count the drop-off. The biggest drop is where the listing is bleeding.
Trigger
analysis-pattern
Tools
etsy/listing, sakura/cloud-reason
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Listing funnel diagnosis"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       listing-funnel-diagnosis
;;~ trigger  analysis-pattern
;;~ touches  ()
;;~ summary  "Walk the view -> favorite -> sale funnel for one listing, name the leak."

;; A reasoning walk over a single listing. Pull the listing record +
;; its 30d funnel metrics, escalate to Sonnet for the narrative. The
;; output is a paragraph naming the leak (low views? low favs/views?
;; low sales/favs?) with concrete next steps.

(cart 'listing-funnel-diagnosis
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (if (null? id)
        (escalate 'missing-listing-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((id (ctx-get 'listing-id ctx)))
    (act 'etsy/listing (list id 'with-funnel-30d) 'check-fetch)))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'listing r ctx))))))

(define (reason ctx)
  (let ((listing (ctx-get 'listing ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'diagnose-funnel listing)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'diagnosis r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/listing-funnel-diagnosis.sks · 53 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
review-sentiment-tracker
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.7 Etsy-data-driven automations · light-purple (new, 8) man →

Two-step: local sentiment first; only negative reviews escalate to cloud reasoning for theme analysis.

Cheap local classifier reads the tone first. Only the genuinely negative messages escalate to cloud reasoning for deeper read. Saves API spend on the everyday-friendly stuff.
Trigger
event:new-review
Tools
etsy/reviews, sakura/decide, sakura/cloud-reason
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Review sentiment tracker"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       review-sentiment-tracker
;;~ trigger  event:new-review
;;~ touches  ()
;;~ summary  "On a new review, score sentiment and surface the theme (shipping, fit, quality, communication)."

;; Two-step: local sentiment classification first (cheap, fast). If
;; the review is below 4 stars OR sentiment is negative, escalate the
;; theme analysis to Sonnet so the operator sees the why, not just
;; the what.

(cart 'review-sentiment-tracker
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((review (ctx-get 'review ctx)))
    (if (null? review)
        (escalate 'missing-review null)
        (next 'classify ctx))))

(define (classify ctx)
  (let ((review (ctx-get 'review ctx)))
    (act 'sakura/decide
         (list 'task 'classify-review-sentiment review)
         'check-classify)))

(define (check-classify ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)              (escalate 'sakura-empty null))
      ((eq? r 'positive)      (next 'announce (ctx-set 'sentiment r ctx)))
      ((eq? r 'neutral)       (next 'announce (ctx-set 'sentiment r ctx)))
      ((eq? r 'negative)      (next 'theme (ctx-set 'sentiment r ctx)))
      (else                   (escalate 'sakura-garbled null)))))

(define (theme ctx)
  (let ((review (ctx-get 'review ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'review-theme-analysis review)
         'check-theme)))

(define (check-theme ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'theme r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/review-sentiment-tracker.sks · 57 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
review-themes-monthly
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.7 Etsy-data-driven automations · light-purple (new, 8) man →

Cluster the month's reviews into themes with concrete examples. Addresses pain #4, #24.

Cluster the reviews by what they're about. Surface the themes with real quotes attached — operator sees what buyers actually said, not a summary that lost the words.
Trigger
cron:monthly
Tools
etsy/reviews, sakura/cloud-reason
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Review themes · monthly"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       review-themes-monthly
;;~ trigger  cron:monthly
;;~ touches  ()
;;~ summary  "Monthly: cluster the month's reviews into themes with concrete examples."

;; Monthly rollup. Fetch reviews for the past 30d, hand the bundle to
;; Sonnet for theme clustering + example quotations. Returns a
;; structured narrative the operator can read in two minutes.

(cart 'review-themes-monthly
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/reviews (list '30d) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'reviews r ctx))))))

(define (reason ctx)
  (let ((reviews (ctx-get 'reviews ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'review-themes-monthly reviews)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'themes r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/review-themes-monthly.sks · 51 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
shipping-cost-optimization
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.7 Etsy-data-driven automations · light-purple (new, 8) man →

Compare paid-vs-charged shipping across 90d, propose template edits with expected per-order delta.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Trigger
analysis-pattern
Tools
etsy/ledger, sakura/cloud-reason
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Shipping cost optimization"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       shipping-cost-optimization
;;~ trigger  analysis-pattern
;;~ touches  ()
;;~ summary  "Compare actual shipping cost paid vs charged across recent orders, propose template changes."

;; Fetch shipping events from the ledger for the last 90 days. Reason
;; over per-template paid-vs-charged delta. Sonnet proposes the
;; template edits with rationale + expected per-order delta.

(cart 'shipping-cost-optimization
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/ledger (list 'shipping '90d) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'shipping-rows r ctx))))))

(define (reason ctx)
  (let ((rows (ctx-get 'shipping-rows ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'shipping-cost-optimization rows)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'plan r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/shipping-cost-optimization.sks · 51 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
sale-effectiveness-postmortem
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.7 Etsy-data-driven automations · light-purple (new, 8) man →

Post-sale narrative: lift, conversion change, fee impact, what to repeat.

Calendar-aware. Reads the date, your past seasonal lift, current trends. Surfaces what worked last year with concrete inventory + caption suggestions.
Trigger
event:sale-ended
Tools
etsy/receipts, sakura/cloud-reason
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Sale-effectiveness postmortem"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       sale-effectiveness-postmortem
;;~ trigger  event:sale-ended
;;~ touches  ()
;;~ summary  "After a sale ends, write the postmortem: lift, conversion change, fee impact, what to repeat."

;; Fires when a sale ends. Pulls the receipts for the sale window +
;; the pre-sale baseline window of the same length. Sonnet writes the
;; postmortem narrative: what worked, what didn't, what to keep.

(cart 'sale-effectiveness-postmortem
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((sale-id (ctx-get 'sale-id ctx)))
    (if (null? sale-id)
        (escalate 'missing-sale-id null)
        (next 'fetch ctx))))

(define (fetch ctx)
  (let ((sale-id (ctx-get 'sale-id ctx)))
    (act 'etsy/receipts (list 'sale-window sale-id) 'check-fetch)))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'receipts r ctx))))))

(define (reason ctx)
  (let ((receipts (ctx-get 'receipts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'sale-postmortem receipts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'postmortem r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/sale-effectiveness-postmortem.sks · 52 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human
production-partner-record-audit
light purple§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix) · §9.7 Etsy-data-driven automations · light-purple (new, 8) man →

Listings likely needing a production-partner disclosure per Etsy policy. Addresses pain #2.

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.
Trigger
cron:monthly
Tools
etsy/shop, sakura/cloud-reason
Source
new
Section
§9. Light purple — cloud reasoning (51 baseline, 86 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §9-light-purple-cloud-reasoning-51-baseline-86-post-matrix

Scheme source

;;~ title    "Production-partner record audit"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       production-partner-record-audit
;;~ trigger  cron:monthly
;;~ touches  ()
;;~ summary  "Monthly: listings that need a production-partner record declared per Etsy policy, draft the disclosure."

;; Etsy policy requires disclosure when listings are made with a
;; production partner. Pulls shop + listings, has Sonnet identify
;; the listings likely needing a disclosure based on title/desc cues
;; and absent declared partner.

(cart 'production-partner-record-audit
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/shop (list 'with-listings-and-partners) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'shop r ctx))))))

(define (reason ctx)
  (let ((shop (ctx-get 'shop ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'production-partner-audit shop)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'audit r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/production-partner-record-audit.sks · 52 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

PREfetchGUARDtier: light-purpleACTperformRESULTrenderON-ERRretry / escon-error: retry-after | degrade-to | escalate-tier | escalate-human

§10. Deep purple ✨ — deep reasoning33 entries

design-pricing-strategy
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)PLAYBOOK man →

Whole-shop pricing strategy with tiers, ladders, anchors. Addresses pain #19. Matrix mod 2026-06-01: + Engram-hosted + Monte Carlo (was: cloud reasoning).

Cluster your work into tiers, anchor each tier to a market band, and walk buyers up the ladder. The math is a portfolio mix-and-match; the craft is naming the tiers in your voice.
Trigger
operator-asked
Tools
cortex.aggregate, pricing-benchmarks, compare-shop-to-segment
Source
carry-forward
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/design-pricing-strategy.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
write-brand-story
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)SINGLE man →

Long-form brand-story narrative for About page.

Long-form prose from your own history. Atlas-grounded — every phrasing choice traces back to something you've written before.
Trigger
operator-asked
Tools
cortex_query
Source
carry-forward
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/write-brand-story.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
annual-strategy-review
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)PLAYBOOK man →

Year-over-year strategic review with positioning + bets.

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
cron (Jan 1)
Tools
cortex.aggregate, year-end-summary
Source
carry-forward
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/annual-strategy-review.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
new-product-line-design
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)PLAYBOOK man →

Propose a new product line: themes, SKUs, positioning.

Multi-step playbook. deep reasoning chains together a sequence of smaller automations and synthesizes the result. The verbs each exist on their own — deep reasoning is the conductor.
Trigger
operator-asked
Tools
cortex.aggregate, niche-trend-watch, product-line-naming
Source
carry-forward
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/new-product-line-design.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
year-end-summary
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)PLAYBOOK man →

Narrative recap of the year.

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
cron (Dec 31)
Tools
cortex.aggregate (heavy)
Source
carry-forward
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

;;~ title    "Year-end summary"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       year-end-summary
;;~ touches  ()
;;~ summary  "Narrative recap of the year for the shop."

;; Narrative recap of the year for the shop.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'year-end-summary
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/receipts (list '90d) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'year-end-summary facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/year-end-summary.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
holiday-listing-strategy
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)PLAYBOOK man →

Holiday-season plan from current inventory + trends. Addresses pain #34.

Calendar-aware. Reads the date, your past seasonal lift, current trends. Surfaces what worked last year with concrete inventory + caption suggestions.
Trigger
cron (Sep 15)
Tools
niche-trend-watch, seasonal-prep-pulse, cortex.aggregate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/holiday-listing-strategy.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
shop-positioning-refresh
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)PLAYBOOK man →

Refresh positioning across About + announcement + key listings.

Multi-signal composite — pulls every relevant audit + ratio + trend into one number per listing. The signals are simple; the playbook around them is where deep reasoning earns its money.
Trigger
operator-asked
Tools
cortexquery, peerlookup, write-brand-story
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shop-positioning-refresh.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
growth-bet-portfolio
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)PLAYBOOK man →

3-month growth bet portfolio: which listings to push, which to retire, which to test.

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
operator-asked
Tools
cortex.aggregate, niche-trend-watch
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/growth-bet-portfolio.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
pricing-monte-carlo
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)SINGLE man →

MCMC simulation of price moves against historical demand.

Run a thousand parallel 'what if I changed the price' simulations against your real sales history. The median outcome is your honest expectation; the spread is your honest uncertainty.
Trigger
operator-asked
Tools
cortex.aggregate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/pricing-monte-carlo.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
markov-buyer-journey
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)SINGLE man →

Markov-chain buyer-journey analysis across the shop.

Map your customer flow as a chain of states (visit → favorite → ask → buy). Calculate the probability of each transition. The thin link is your leak.
Trigger
operator-asked
Tools
cortex.aggregate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/markov-buyer-journey.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITMarkov ChainPOSTERIORcredible bandFORECASTdecisionmethod: Markov Chain
dead-shop-revival-plan
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.1 Whole-shop strategy (carry + new, 11)PLAYBOOK man →

"My shop has been dead for 6 months — turn it around." End-to-end plan.

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
operator-asked
Tools
shop-audit-narrative, design-pricing-strategy, write-brand-story
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/dead-shop-revival-plan.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
shop-audit-narrative
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.2 Synthesis playbooks (carry + new, 9)PLAYBOOK man →

Write the prose around an audit run — wins + gaps. Addresses pain #11. Matrix mod 2026-06-01: + Engram-hosted means deep reasoning reads full projection (was: digest only) + voice readout.

Multi-signal composite — pulls every relevant audit + ratio + trend into one number per listing. The signals are simple; the playbook around them is where deep reasoning earns its money.
Trigger
operator-asked
Tools
all white audit-*
Source
carry-forward
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

;;~ title    "Shop audit narrative"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       shop-audit-narrative
;;~ touches  ()
;;~ summary  "Write the prose around an audit run — wins + gaps."

;; Write the prose around an audit run — wins + gaps.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'shop-audit-narrative
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/listings (list 'active) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'shop-audit-narrative facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/shop-audit-narrative.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
write-shop-announcement
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.2 Synthesis playbooks (carry + new, 9)PLAYBOOK man →

Shop-wide announcement with tone + context.

Long-form prose from your own history. Atlas-grounded — every phrasing choice traces back to something you've written before.
Trigger
operator-asked
Tools
cortex.aggregate, recent-sales, current-stock
Source
carry-forward
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

;;~ title    "Write a shop announcement"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       write-shop-announcement
;;~ touches  ()
;;~ summary  "Compose a shop-wide announcement with tone + context."

;; Compose a shop-wide announcement with tone + context.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'write-shop-announcement
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/shop (list 'shop) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'write-shop-announcement facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/write-shop-announcement.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
write-policy-update
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.2 Synthesis playbooks (carry + new, 9)PLAYBOOK man →

Shop-policy update with diff + rationale.

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
operator-asked
Tools
shop-policies, policy_lookup
Source
carry-forward
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

;;~ title    "Write a policy update"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   light-purple
;;~ id       write-policy-update
;;~ touches  ()
;;~ summary  "Draft a shop-policy update with diff + rationale."

;; Draft a shop-policy update with diff + rationale.
;;
;; Multi-step reasoning cart. precondition_fetch pulls the
;; needed shop facts, then escalates the reasoning step to
;; Sonnet via sakura/cloud-reason. Cloud is gated; we ask
;; consent before the relay if the operator hasn't pre-approved.

(cart 'write-policy-update
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (next 'fetch ctx))

(define (fetch ctx)
  (act 'etsy/shop (list 'shop) 'check-fetch))

(define (check-fetch ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'no-data null))
      ((eq? r 'rate-limited)           (after 30 'fetch ctx))
      (else                            (next 'reason (ctx-set 'facts r ctx))))))

(define (reason ctx)
  (let ((facts (ctx-get 'facts ctx)))
    (act 'sakura/cloud-reason
         (list 'task 'write-policy-update facts)
         'check-reason)))

(define (check-reason ctx)
  (let ((r (ctx-result ctx)))
    (cond
      ((null? r)                       (escalate 'cloud-empty null))
      ((not (string? r))               (escalate 'cloud-garbled null))
      ((eq? r 'cloud-quota-exhausted)  (escalate 'cloud-quota null))
      ((eq? r 'cloud-consent-required) (escalate 'cloud-consent null))
      (else                            (next 'announce (ctx-set 'narrative r ctx))))))

(define (announce ctx) (done))

source: curator-web/src/scheme/carts/etsy/write-policy-update.sks · 50 lines

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
compare-shop-to-segment-deep
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.2 Synthesis playbooks (carry + new, 9)PLAYBOOK man →

Deep comparison with 50+ peer listings (vs cloud reasoning light comparison).

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
operator-asked
Tools
peer_lookup (heavy), cortex.aggregate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/compare-shop-to-segment-deep.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cohort-deep-dive
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.2 Synthesis playbooks (carry + new, 9)PLAYBOOK man →

"Find the cohort behind my last 100 sales and tell me how to find more of them."

Pull a slice of buyers (sharing a feature), tally what they have in common, surface the pattern. Lets the operator find more of who's already working.
Trigger
operator-asked
Tools
analyze-buyer-cohort + cortex.aggregate (heavy)
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cohort-deep-dive.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
pricing-anomaly-explain
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.2 Synthesis playbooks (carry + new, 9)SINGLE man →

"Your margins on rings dropped 22% — here's what changed and what to do."

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Trigger
analysis-pattern (big margin drift)
Tools
cortex.aggregate, pricing-benchmarks
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/pricing-anomaly-explain.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
churn-postmortem
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.2 Synthesis playbooks (carry + new, 9)PLAYBOOK man →

Quarterly review of buyer churn + recovery plan.

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
cron (quarterly)
Tools
cortex.aggregate, review-anomaly-watch
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/churn-postmortem.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-channel-portfolio
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.2 Synthesis playbooks (carry + new, 9)PLAYBOOK man →

Portfolio analysis across Etsy + eBay + Shopify + Meta. Addresses pain #5, #31. Matrix mod 2026-06-01: + Engram unifies the cross-channel projection (was: per-platform pulls).

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
operator-asked
Tools
cortex.aggregate per platform
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-channel-portfolio.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
write-custom-cart
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.3 Code + Scheme + cart writing (new, 8)PLAYBOOK man →

Write a custom cart from operator intent. Validated by Sakura via eight-star lint.

Cart-writing playbook. deep reasoning drafts the Scheme; Sakura runs eight-star lint; if it fails, deep reasoning iterates. Code that ships passes the same lint your human carts pass.
Trigger
operator-asked
Tools
cartvalidate, cortexquery
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/write-custom-cart.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
debug-cart-failure
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.3 Code + Scheme + cart writing (new, 8)PLAYBOOK man →

Debug a failed cart from log + source + error.

Cart-writing playbook. deep reasoning drafts the Scheme; Sakura runs eight-star lint; if it fails, deep reasoning iterates. Code that ships passes the same lint your human carts pass.
Trigger
event (cart fail)
Tools
cartstatus, cartvalidate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/debug-cart-failure.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
compose-multi-cart-playbook
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.3 Code + Scheme + cart writing (new, 8)PLAYBOOK man →

Compose multi-cart playbook ("clean up the shop, then publish 5 new listings, then send a newsletter").

Cart-writing playbook. deep reasoning drafts the Scheme; Sakura runs eight-star lint; if it fails, deep reasoning iterates. Code that ships passes the same lint your human carts pass.
Trigger
operator-asked
Tools
cartpropose, cartvalidate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/compose-multi-cart-playbook.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cart-refactor
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.3 Code + Scheme + cart writing (new, 8)PLAYBOOK man →

Refactor a cart for clarity / safety / efficiency.

Cart-writing playbook. deep reasoning drafts the Scheme; Sakura runs eight-star lint; if it fails, deep reasoning iterates. Code that ships passes the same lint your human carts pass.
Trigger
operator-asked
Tools
cart_validate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cart-refactor.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cart-migration
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.3 Code + Scheme + cart writing (new, 8)PLAYBOOK man →

Migrate a cart to a new spine API surface.

Cart-writing playbook. deep reasoning drafts the Scheme; Sakura runs eight-star lint; if it fails, deep reasoning iterates. Code that ships passes the same lint your human carts pass.
Trigger
operator-asked
Tools
cart_validate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cart-migration.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
explain-cart-deep
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.3 Code + Scheme + cart writing (new, 8)SINGLE man →

Long-form plain-English explanation of a complex cart.

Cart-writing playbook. deep reasoning drafts the Scheme; Sakura runs eight-star lint; if it fails, deep reasoning iterates. Code that ships passes the same lint your human carts pass.
Trigger
operator-asked
Tools
cart_status
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/explain-cart-deep.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
safety-star-fix
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.3 Code + Scheme + cart writing (new, 8)PLAYBOOK man →

Fix a cart's eight-star lint failure with reasoning.

Cart-writing playbook. deep reasoning drafts the Scheme; Sakura runs eight-star lint; if it fails, deep reasoning iterates. Code that ships passes the same lint your human carts pass.
Trigger
event (lint fail)
Tools
cart_validate
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/safety-star-fix.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
sim-trace-deep-narration
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.3 Code + Scheme + cart writing (new, 8)SINGLE man →

Step-by-step narration of a long sim trace.

Cart-writing playbook. deep reasoning drafts the Scheme; Sakura runs eight-star lint; if it fails, deep reasoning iterates. Code that ships passes the same lint your human carts pass.
Trigger
operator-asked
Tools
cart_status
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/sim-trace-deep-narration.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
auto-publish-batch
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.4 Multi-step orchestration (new, 6)PLAYBOOK man →

Batch publish N drafts with full pre-publish pass per.

Destructive write — eight-star canon enforced. Sakura proposes; the operator consents; the cart fires; the result is logged. No surprise publishes.
Trigger
operator-asked
Tools
listing-pre-publish-pass, publish_listing
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/auto-publish-batch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
recovery-from-platform-suspension
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.4 Multi-step orchestration (new, 6)PLAYBOOK man →

Suspension-response playbook: pull policy, draft appeal, identify offending listings.

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
event (account flagged)
Tools
policy_lookup, draft-policy-explanation-to-buyer
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/recovery-from-platform-suspension.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
seasonal-campaign-launch
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.4 Multi-step orchestration (new, 6)PLAYBOOK man →

Coordinated seasonal campaign across announcement + social + listings.

Calendar-aware. Reads the date, your past seasonal lift, current trends. Surfaces what worked last year with concrete inventory + caption suggestions.
Trigger
cron (per season)
Tools
write-shop-announcement, social-post-draft, caption-package-week
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/seasonal-campaign-launch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
competitor-response-plan
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.4 Multi-step orchestration (new, 6)PLAYBOOK man →

When a competitor undercuts, here's how to respond without a race to the bottom.

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
analysis-pattern (peer moved on price)
Tools
competitor-price-comp, design-pricing-strategy
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/competitor-response-plan.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
onboarding-first-week
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.4 Multi-step orchestration (new, 6)PLAYBOOK man →

First-week onboarding playbook for a brand-new operator.

Multi-step playbook. deep reasoning chains together a sequence of smaller automations and synthesizes the result. The verbs each exist on their own — deep reasoning is the conductor.
Trigger
event (new operator signup)
Tools
shop-audit-narrative, design-pricing-strategy (light)
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/onboarding-first-week.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
migration-from-platform
deep purple§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix) · §10.4 Multi-step orchestration (new, 6)PLAYBOOK man →

"I just connected eBay — what should I migrate first?"

Multi-step playbook. deep reasoning chains together a sequence of smaller automations and synthesizes the result. The verbs each exist on their own — deep reasoning is the conductor.
Trigger
event (operator added new platform)
Tools
cross-channel-portfolio
Source
new
Section
§10. Deep purple ✨ — deep reasoning (34 baseline, 45 post-matrix)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §10-deep-purple-deep-reasoning-34-baseline-45-post-matrix

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/migration-from-platform.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math

§13. Matrix absorption — Bloom tier ($0 / $9.99) additions17 entries

cross-voice-dictate-into-field
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

Tap mic on any text input, dictate, transcript fills. Universal.

Speech-to-text on-device, mapped to a Sakura action. Tap mic, talk, the tool fires. Eight-star canon means anything destructive gets a read-back before it runs.
Trigger
event (mic tap)
Tools
STT
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-dictate-into-field.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-greet-sakura
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

"Hi Sakura" greeting opens conversation.

Speech-to-text on-device, mapped to a Sakura action. Tap mic, talk, the tool fires. Eight-star canon means anything destructive gets a read-back before it runs.
Trigger
event
Tools
STT
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-greet-sakura.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-quick-command
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

"Sakura, show me today's sales" → fires cortex.aggregate.

Speech-to-text on-device, mapped to a Sakura action. Tap mic, talk, the tool fires. Eight-star canon means anything destructive gets a read-back before it runs.
Trigger
event
Tools
STT, cortex.aggregate
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-quick-command.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-barge-in
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

Operator interrupts Sakura mid-speak; her turn yields. Invariant for safety (Abel).

Speech-to-text on-device, mapped to a Sakura action. Tap mic, talk, the tool fires. Eight-star canon means anything destructive gets a read-back before it runs.
Trigger
event
Tools
STT
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-barge-in.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-confirm-readback
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

Before destructive cart fires from voice, Sakura reads back the proposal and waits for "yes." Eight-star compliant.

Before a destructive action fires, Sakura reads back the proposal and waits for 'yes.' Eight-star canon — voice cannot silently do dangerous things.
Trigger
event (pre-destructive)
Tools
STT
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-confirm-readback.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-cancel
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

"Stop" / "cancel" / "wait" cancels current Sakura action. Abel-mandated.

Speech-to-text on-device, mapped to a Sakura action. Tap mic, talk, the tool fires. Eight-star canon means anything destructive gets a read-back before it runs.
Trigger
event
Tools
STT
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-cancel.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-spelling-mode
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

"M as in mango, A as in apple..." — fall-back for brand names and SKUs.

Speech-to-text on-device, mapped to a Sakura action. Tap mic, talk, the tool fires. Eight-star canon means anything destructive gets a read-back before it runs.
Trigger
event
Tools
STT
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-spelling-mode.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-quiet-hours-respect
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

STT auto-off during quiet hours unless operator force-enables.

Cron-time guard. Reads the operator's quiet hours from Cortex; suppresses non-urgent surfaces and notifications outside them. The 'no 2am pings' rule.
Trigger
cron (init)
Tools
STT
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-quiet-hours-respect.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-memo-to-cortex
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

Long-press mic anywhere → 30s memo → pinned to active card's Cortex node.

Speech-to-text on-device, mapped to a Sakura action. Tap mic, talk, the tool fires. Eight-star canon means anything destructive gets a read-back before it runs.
Trigger
event (long-press mic)
Tools
STT, cortex_write
Substrates
STT
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-memo-to-cortex.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-search-and-act
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

"Show me low-stock rings" → list; "renew the bottom three" → consent → fire. The voice loop closes here.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, etsy/listings
Substrates
STT, etsy/listings
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-search-and-act.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-quick-status
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

"How's the shop today?" → Sakura summarizes orders + favorites + flags.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, etsy/shop
Substrates
STT, etsy/shop
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-quick-status.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-buyer-heatmap-all-platforms
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.1 Voice basics — pink + Cloud STT (12) man →

All platforms combined on the Baobab globe renderer. Lightly Engram-touched at Bloom — operator's own device aggregate, not server-side.

Plot every buyer pin on the Baobab globe renderer (same code Lacuna's diaspora app uses). Shows you where your work travels.
Trigger
event (operator-asked)
Tools
Maps geocode, engram (light)
Substrates
Maps, engram-light
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-buyer-heatmap-all-platforms.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-geo-current-location
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.2 Light geo — white tools + green viz (6) man →

Operator's lat/long for context. Used by other carts.

Geocode the ZIP, distance-measure to the operator. Pure Maps API plumbing. Other carts compose on top.
Trigger
tool
Tools
Maps geocode
Substrates
Maps
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-geo-current-location.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-geo-buyer-pin-on-map
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.2 Light geo — white tools + green viz (6) man →

Render a buyer pin from a ZIP. Used by etsy/ebay order views.

Geocode the ZIP, distance-measure to the operator. Pure Maps API plumbing. Other carts compose on top.
Trigger
tool
Tools
Maps geocode
Substrates
Maps
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-geo-buyer-pin-on-map.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-geo-distance-to-buyer
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.2 Light geo — white tools + green viz (6) man →

km/mi between operator + buyer for a receipt.

Geocode the ZIP, distance-measure to the operator. Pure Maps API plumbing. Other carts compose on top.
Trigger
tool
Tools
Maps distance
Substrates
Maps
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-geo-distance-to-buyer.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-buyer-heatmap-overlay
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.2 Light geo — white tools + green viz (6) man →

Overlay all 12-month Etsy buyers on a globe. Reuses Baobab globe renderer.

Plot every buyer pin on the Baobab globe renderer (same code Lacuna's diaspora app uses). Shows you where your work travels.
Trigger
event (operator-asked)
Tools
Maps geocode, etsy/receipts
Substrates
Maps
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-buyer-heatmap-overlay.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-buyer-heatmap-overlay
pink§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18) · §13.2 Light geo — white tools + green viz (6) man →

Same as above for eBay buyers.

Plot every buyer pin on the Baobab globe renderer (same code Lacuna's diaspora app uses). Shows you where your work travels.
Trigger
event (operator-asked)
Tools
Maps geocode, ebay/orders
Substrates
Maps
Section
§13. Matrix absorption — Bloom tier ($0 / $9.99) additions (18)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §13-matrix-absorption-bloom-tier-0-999-additions-18

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-buyer-heatmap-overlay.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done

§14. Matrix absorption — Magic tier ($39.99) additions47 entries

cross-engram-photo-phone-to-desktop
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

Phone photo → R2 → desktop Cortex pulls. The headliner.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event (photo on phone)
Tools
engram-light (R2), embeddings embedding
Substrates
engram-light, embeddings
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-photo-phone-to-desktop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-listing-draft-resume
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

Start a draft on phone, finish on desktop (or reverse).

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event
Tools
engram-light
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-listing-draft-resume.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-sakura-continuity
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

Sakura context (recent turns) follows operator across devices.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event
Tools
engram-light
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-sakura-continuity.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-clipboard-share
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

Phone → desktop clipboard via Engram channel. Consolidates 3 retired per-device clipboard carts.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event
Tools
engram-light
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-clipboard-share.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-active-card-mirror
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

"What's on my desktop now?" surfaces in phone Sakura view.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event
Tools
engram-light
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-active-card-mirror.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-recent-activity-feed
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

Operator's last 24h of activity, available on every device. Consolidates 4 retired per-device feeds.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event
Tools
engram-light
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-recent-activity-feed.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-notification-mirror
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

"New order" pings every signed-in device, suppress duplicates. Consolidates 5 retired per-device notification carts.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event
Tools
engram-light
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-notification-mirror.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-quiet-hours-cross-device
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

Per-device quiet-hours rules sync. Consolidates 2 retired per-device quiet-hour carts.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
cron (init)
Tools
engram-light
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-quiet-hours-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-tab-handoff
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.1 Multi-device basics — green Engram-light (9) man →

"Continue on desktop" — Safari-Handoff for Curator cards.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event
Tools
engram-light
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-tab-handoff.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-listing-create
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

Photo + dictation → full Etsy draft. The headline upgrade lure.

Photo plus dictation plus context window equals a full listing draft. cloud reasoning does the prose; STT handles the voice; embeddings pulls the image embed. The headliner upgrade lure.
Trigger
event (mic + photo)
Tools
STT, embeddings, sakura/cloud-reason
Substrates
STT, embeddings, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-listing-create.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-voice-listing-create
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

Same for eBay. eBay's form is famously long — voice cuts it in half.

Photo plus dictation plus context window equals a full listing draft. cloud reasoning does the prose; STT handles the voice; embeddings pulls the image embed. The headliner upgrade lure.
Trigger
event
Tools
STT, sakura/cloud-reason
Substrates
STT, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-voice-listing-create.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-voice-listing-create
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

Same for Shopify.

Photo plus dictation plus context window equals a full listing draft. cloud reasoning does the prose; STT handles the voice; embeddings pulls the image embed. The headliner upgrade lure.
Trigger
event
Tools
STT, sakura/cloud-reason
Substrates
STT, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-voice-listing-create.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-voice-post-create
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

Voice → IG/FB post draft + image.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
STT, sakura/cloud-reason
Substrates
STT, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-voice-post-create.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-attribute-fill
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

"It's a sterling silver hoop, 1 inch" → Etsy attributes fill (material, dimensions).

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event (mid-listing)
Tools
STT
Substrates
STT
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-attribute-fill.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-tag-fill
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

"Tag this for spring weddings" → 5 tag candidates.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, etsy/listing
Substrates
STT
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-tag-fill.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-section-pick
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

"Put this in the rings section" → assigns.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, etsy/shop
Substrates
STT
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-section-pick.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-pricing-out-loud
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

"Price this at $42" → updates draft. "Make it $5 less than last time" → resolves from Cortex.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, cortex.aggregate
Substrates
STT
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-pricing-out-loud.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-publish-readback
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

Before publish, Sakura reads back the draft, operator says "publish."

Before a destructive action fires, Sakura reads back the proposal and waits for 'yes.' Eight-star canon — voice cannot silently do dangerous things.
Trigger
event (pre-publish)
Tools
STT, etsy/listings
Substrates
STT
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-publish-readback.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-memo-becomes-description
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

30s voice memo + photo → polished description draft. Pain #1 fixer.

Speech-to-text on-device, mapped to a Sakura action. Tap mic, talk, the tool fires. Eight-star canon means anything destructive gets a read-back before it runs.
Trigger
event
Tools
STT, sakura/cloud-reason
Substrates
STT, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-memo-becomes-description.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-photo-cataloging
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.2 STT-deep — voice listing creation (11) man →

"These are spring 2026 collection, all $35-45" — batch tag from voice while flipping through photos.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Trigger
event (batch upload)
Tools
STT, image understanding
Substrates
STT, embeddings
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-photo-cataloging.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-shipping-carrier-recommend
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

"USPS Priority $7.85 / 3d vs UPS Ground $9.20 / 5d, by your past delivery data."

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Trigger
event (per order)
Tools
Maps distance, cortex.aggregate, etsy/receipts
Substrates
Maps
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-shipping-carrier-recommend.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-shipping-carrier-recommend
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Same for eBay.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Trigger
event (per order)
Tools
Maps distance, ebay/orders
Substrates
Maps
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-shipping-carrier-recommend.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-shipping-template-from-zip-history
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Build per-region templates from actual delivery history.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Trigger
analysis-pattern
Tools
Maps distance, engram (light)
Substrates
Maps, engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-shipping-template-from-zip-history.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-shipping-template-audit-by-zip
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Listings whose template's stated zone doesn't match actual buyer zone history. Extension of shipping-template-audit.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Trigger
cron (weekly)
Tools
Maps distance, etsy/listings
Substrates
Maps
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-shipping-template-audit-by-zip.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-shipping-cost-vs-charged-by-region
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Where you're overcharging or undercharging shipping by region.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Trigger
analysis-pattern
Tools
Maps distance, etsy/ledger, sakura/cloud-reason
Substrates
Maps, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-shipping-cost-vs-charged-by-region.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-supplier-proximity-finder
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

"Bead supplier 2.3 mi away that stocks Czech glass you use."

Reads Maps + your low-stock list + supplier locations. Surfaces the visit that pays off (or the supplier swap that saves money).
Trigger
event
Tools
Places, cortex_query
Substrates
Places
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-supplier-proximity-finder.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-supplier-restock-now-prompt
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Low-stock + you're driving past a supplier → "want to grab some now?"

Cortex is the single source of stock truth. Every channel reads from it before writing. Stops the 'sold the same one twice' problem.
Trigger
analysis-pattern
Tools
Places, cortex_query, inv-low-stock
Substrates
Places
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-supplier-restock-now-prompt.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-craft-fair-nearby
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

"Holiday market 14 mi away Dec 7-9, jewelry-makers historically welcome."

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Trigger
cron (weekly)
Tools
Places, web search events, cortex_query
Substrates
Places, web search
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-craft-fair-nearby.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-craft-fair-roi-estimate
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Given booth fee + your avg sale + niche fit, projected ROI.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Trigger
event
Tools
Places, cortex.aggregate, web search, sakura/cloud-reason
Substrates
Places, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-craft-fair-roi-estimate.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-pop-up-venue-suggest
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

"Small boutique 3 mi away accepts consignment pieces."

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Trigger
event
Tools
Places, cortex_query
Substrates
Places
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-pop-up-venue-suggest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-tax-nexus-state-watcher
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

"You're 47 txns into CA, 153 to nexus threshold."

Pulls per-jurisdiction tax rules + your real sales by location. Surfaces the line items your accountant cares about, with receipts attached for verification.
Trigger
cron (monthly)
Tools
engram-light, state-rules-table, sakura/cloud-reason
Substrates
engram-light, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-tax-nexus-state-watcher.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-tax-collect-by-jurisdiction
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Tax actually collected per jurisdiction; flag where Etsy auto-collect doesn't apply.

Pulls per-jurisdiction tax rules + your real sales by location. Surfaces the line items your accountant cares about, with receipts attached for verification.
Trigger
analysis-pattern
Tools
Maps geocode, etsy/receipts
Substrates
Maps
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-tax-collect-by-jurisdiction.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-buyer-geo-fraud-flag
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

"This order's address is 800 mi from buyer's past addresses."

Compare incoming order against the operator's normal pattern (price tier, geography, buyer history). Flag the genuinely strange ones; trust the boring ones.
Trigger
event (new order)
Tools
Maps distance, cortex_query
Substrates
Maps
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-buyer-geo-fraud-flag.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-buyer-cluster-geo-summary
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

"60% of your sales in last 90d went to NE corridor."

Pull buyers who match a behavior pattern. Suggest a tailored touch — a thank-you, a restock note, a recovery message. Cheap care that compounds.
Trigger
analysis-pattern
Tools
Maps geocode, cortex.aggregate
Substrates
Maps
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-buyer-cluster-geo-summary.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-regional-pricing-suggest
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Regions where you can charge more (or where you can't); per-region price hint.

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Trigger
analysis-pattern
Tools
Maps geocode, engram-light, sakura/cloud-reason
Substrates
Maps, engram-light, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-regional-pricing-suggest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-shipping-deadline-by-carrier-by-zip
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

"Mail by Dec 18 to land before Christmas in 90% of cases."

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Trigger
event
Tools
Maps distance, cortex_query
Substrates
Maps
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-shipping-deadline-by-carrier-by-zip.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-supplier-savings-report
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.3 Geo-deep — shipping + suppliers + craft fairs (17) man →

Quarterly: "you'd save $X if you switched these 4 suppliers based on distance + price."

Reads Maps + your low-stock list + supplier locations. Surfaces the visit that pays off (or the supplier swap that saves money).
Trigger
cron (quarterly)
Tools
Places, cortex.aggregate, sakura/cloud-reason
Substrates
Places, cloud reasoning
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-supplier-savings-report.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-inventory-mirror-cross-device
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Inventory edits on phone reflect on desktop without round-trip to Etsy first.

Cortex is the single source of stock truth. Every channel reads from it before writing. Stops the 'sold the same one twice' problem.
Trigger
event
Tools
engram-light, etsy/listings
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-inventory-mirror-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-listing-edits-cross-device
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Same for listing edits.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event
Tools
engram-light, etsy/listings
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-listing-edits-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-buyer-message-context-cross-device
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Read on phone, draft response on desktop, send from wherever. Pain #16.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event
Tools
engram-light, etsy/conversations
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-buyer-message-context-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-photo-orphan-resolve-cross-device
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Phone-taken photos that didn't land in a draft surface on desktop. Pain #13.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Trigger
event
Tools
engram-light, etsy/listings
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-photo-orphan-resolve-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-order-fulfillment-cross-device
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Pack on bench (phone), ship label from desktop, both stay in sync.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event
Tools
engram-light, etsy/orders
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-order-fulfillment-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-listing-edits-cross-device
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Same as above for eBay.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event
Tools
engram-light, ebay/listings
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-listing-edits-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-cross-device-post-queue
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Draft IG/FB posts on phone, schedule from desktop.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Trigger
event
Tools
engram-light, meta/posts
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-cross-device-post-queue.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-product-edits-cross-device
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Same for Shopify.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Trigger
event
Tools
engram-light, shopify/products
Substrates
engram-light
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-product-edits-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-photo-tagging-batch
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.4 Engram-light × marketplace bridge (9) man →

Tag a batch of phone photos on desktop with bulk operations.

Cortex projection on R2 (encrypted at rest, scoped DEK). Phone writes, desktop reads. Same single source of truth across every device the operator signs into.
Trigger
event
Tools
engram-light, image understanding
Substrates
engram-light, embeddings
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-photo-tagging-batch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-photo-from-phone-into-draft
green§14. Matrix absorption — Magic tier ($39.99) additions (51) · §14.5 Etsy headliner mini-cluster — voice listing flow (5) man →

green Engram-light variant; phone photos land in the draft (in §14.4 as part of etsy-photo-orphan-resolve-cross-device)

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Section
§14. Matrix absorption — Magic tier ($39.99) additions (51)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §14-matrix-absorption-magic-tier-3999-additions-51

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-photo-from-phone-into-draft.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done

§15. Matrix absorption — Power tier ($99.99) additions53 entries

deep-engram-monte-carlo-pricing
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

1000-sim pricing analysis. "Median revenue at current = $1,840; at +8% pricing = $2,010 median." The single most defensible $99.99 upgrade.

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
cron (nightly)
Tools
engram-hosted, deep reasoning, Lacuna nightly
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-monte-carlo-pricing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-markov-buyer-journey
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

Markov chain of visit-favorite-purchase across operator's whole history.

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
operator-asked
Tools
engram-hosted, deep reasoning
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-markov-buyer-journey.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITMarkov ChainPOSTERIORcredible bandFORECASTdecisionmethod: Markov Chain
deep-engram-multi-shop-portfolio
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

Combined Etsy+eBay+Shopify+Meta strategic portfolio. Pain #5, #31.

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
operator-asked
Tools
engram-hosted, deep reasoning
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-multi-shop-portfolio.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-niche-positioning-deep
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

Where the operator sits in the niche, 50+ peer deep-comparison.

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
operator-asked
Tools
engram-hosted, web search (heavy), deep reasoning
Substrates
engram-hosted, deep reasoning, web search
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-niche-positioning-deep.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-listing-pricing-mcmc-per-sku
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

Per-SKU price band recommendation by Monte Carlo over history.

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
cron (nightly)
Tools
engram-hosted, deep reasoning, Lacuna nightly
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-listing-pricing-mcmc-per-sku.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITMCMCPOSTERIORcredible bandFORECASTdecisionmethod: MCMC
deep-engram-cohort-deep-dive-with-projection
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

"Find the cohort behind my last 100 sales and tell me how to find more."

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
operator-asked
Tools
engram-hosted, deep reasoning
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-cohort-deep-dive-with-projection.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-quarterly-churn-postmortem
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

Quarterly buyer-churn narrative + recovery plan.

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
cron (quarterly)
Tools
engram-hosted, deep reasoning
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-quarterly-churn-postmortem.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-trend-vs-history-anomaly
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

"Your category is moving, you're not — here's the gap."

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
cron (weekly)
Tools
engram-hosted, web search, deep reasoning
Substrates
engram-hosted, deep reasoning, web search
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-trend-vs-history-anomaly.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-photo-style-drift-detect
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

"Your photo style changed in March; sales correlate."

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
analysis-pattern
Tools
engram-hosted, image understanding, deep reasoning
Substrates
engram-hosted, embeddings, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-photo-style-drift-detect.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-listing-funnel-walk-multi-shop
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

View → favorite → sale funnel across all platforms with diagnosis.

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
operator-asked
Tools
engram-hosted, deep reasoning
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-listing-funnel-walk-multi-shop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-seasonal-multi-year
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

"Last 3 years' seasonality projected forward with confidence bands."

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
cron (Sep)
Tools
engram-hosted, deep reasoning
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-seasonal-multi-year.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-engram-buyer-retention-strategy
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.1 Cloud-reasoning playbooks — deep-purple ✨ (12)PLAYBOOK man →

"These 80 buyers came back once; here's how to reach them again."

deep reasoning reads the full Engram-hosted projection (your whole history, in context). Runs nightly on Lacuna's batched-worker tier — cheap per call because the heavy math runs once and the cached results serve all day.
Trigger
operator-asked
Tools
engram-hosted, deep reasoning
Substrates
engram-hosted, deep reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-engram-buyer-retention-strategy.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-cloud-listing-rewrite
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.2 Cloud-LLM-reads-Engram — light-purple (7) man →

cloud reasoning reads full operator history → rewrites a listing in their voice.

Sits on the Engram projection — the encrypted second Cortex on Lacuna infra. Cross-device + cross-time consistent. Operator owns the key.
Trigger
event
Tools
engram-hosted, cloud reasoning, scoped DEK
Substrates
engram-hosted, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-cloud-listing-rewrite.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-cloud-shop-audit-narrative
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.2 Cloud-LLM-reads-Engram — light-purple (7) man →

cloud reasoning writes the prose around an audit run, grounded in shop data.

Multi-signal composite — pulls every relevant audit + ratio + trend into one number per listing. The signals are simple; the playbook around them is where deep reasoning earns its money.
Trigger
event
Tools
engram-hosted, cloud reasoning
Substrates
engram-hosted, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-cloud-shop-audit-narrative.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-cloud-customer-recovery
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.2 Cloud-LLM-reads-Engram — light-purple (7) man →

Per-buyer tailored recovery message with history.

Pull buyers who match a behavior pattern. Suggest a tailored touch — a thank-you, a restock note, a recovery message. Cheap care that compounds.
Trigger
event
Tools
engram-hosted, cloud reasoning
Substrates
engram-hosted, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-cloud-customer-recovery.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-cloud-translation-batch
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.2 Cloud-LLM-reads-Engram — light-purple (7) man →

Translate operator's whole catalog to another language faithfully.

Sits on the Engram projection — the encrypted second Cortex on Lacuna infra. Cross-device + cross-time consistent. Operator owns the key.
Trigger
event
Tools
engram-hosted, cloud reasoning
Substrates
engram-hosted, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-cloud-translation-batch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-cloud-newsletter-draft
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.2 Cloud-LLM-reads-Engram — light-purple (7) man →

Monthly newsletter draft grounded in actual operator data.

Sits on the Engram projection — the encrypted second Cortex on Lacuna infra. Cross-device + cross-time consistent. Operator owns the key.
Trigger
cron (monthly)
Tools
engram-hosted, cloud reasoning
Substrates
engram-hosted, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-cloud-newsletter-draft.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-cloud-policy-rewrite
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.2 Cloud-LLM-reads-Engram — light-purple (7) man →

Policy update with diff + rationale. (Lifted from canonical to Engram-hosted.)

Sits on the Engram projection — the encrypted second Cortex on Lacuna infra. Cross-device + cross-time consistent. Operator owns the key.
Trigger
event
Tools
engram-hosted, cloud reasoning, web search
Substrates
engram-hosted, cloud reasoning, web search
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-cloud-policy-rewrite.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-cloud-brand-story-revise
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.2 Cloud-LLM-reads-Engram — light-purple (7) man →

About-page polish using full shop history.

Long-form prose from your own history. Atlas-grounded — every phrasing choice traces back to something you've written before.
Trigger
event
Tools
engram-hosted, cloud reasoning
Substrates
engram-hosted, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-cloud-brand-story-revise.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-streaming-sync-status
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.3 Streaming sync — invisible plumbing (8) man →

Sakura surfaces "last synced X ago" in a quiet chip.

Cortex hosted on Lacuna infra, gRPC bidi streaming sync. Sub-2s cross-device latency. Still encrypted with the operator's key — we run the machine but cannot read the data.
Trigger
cron (init)
Tools
engram-hosted (gRPC)
Substrates
engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-streaming-sync-status.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-streaming-conflict-resolve
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.3 Streaming sync — invisible plumbing (8) man →

When two devices edit the same field, surface a chooser.

Cortex hosted on Lacuna infra, gRPC bidi streaming sync. Sub-2s cross-device latency. Still encrypted with the operator's key — we run the machine but cannot read the data.
Trigger
event
Tools
engram-hosted (gRPC)
Substrates
engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-streaming-conflict-resolve.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-streaming-replay-on-reconnect
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.3 Streaming sync — invisible plumbing (8) man →

Offline → online: pending edits flush in order.

Cortex hosted on Lacuna infra, gRPC bidi streaming sync. Sub-2s cross-device latency. Still encrypted with the operator's key — we run the machine but cannot read the data.
Trigger
event
Tools
engram-hosted (gRPC)
Substrates
engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-streaming-replay-on-reconnect.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-projection-on-demand
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.3 Streaming sync — invisible plumbing (8) man →

Operator triggers a full re-projection from Cortex.

Cortex hosted on Lacuna infra, gRPC bidi streaming sync. Sub-2s cross-device latency. Still encrypted with the operator's key — we run the machine but cannot read the data.
Trigger
event (operator-asked)
Tools
engram-hosted (gRPC), scoped DEK
Substrates
engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-projection-on-demand.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-engram-export-tarball
white§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.3 Streaming sync — invisible plumbing (8) man →

"Give me everything as a file" — tier-cancellation-friendly. White.

Cortex hosted on Lacuna infra, gRPC bidi streaming sync. Sub-2s cross-device latency. Still encrypted with the operator's key — we run the machine but cannot read the data.
Trigger
tool
Tools
engram-hosted, scoped DEK
Substrates
engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-export-tarball.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-import-from-tarball
white§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.3 Streaming sync — invisible plumbing (8) man →

Restore from an export. White.

Cortex hosted on Lacuna infra, gRPC bidi streaming sync. Sub-2s cross-device latency. Still encrypted with the operator's key — we run the machine but cannot read the data.
Trigger
tool
Tools
engram-hosted, scoped DEK
Substrates
engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-import-from-tarball.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-redact-and-share
light purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.3 Streaming sync — invisible plumbing (8) man →

Share an anonymized projection with an accountant / collaborator. Light-purple.

Operator owns the data. Export gives them everything as a tarball; import restores from one; redact strips identifiers for sharing with an accountant. Cancellation never holds your data hostage.
Trigger
event
Tools
engram-hosted, cloud reasoning, scoped DEK
Substrates
engram-hosted, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-redact-and-share.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-time-travel-snapshot
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.3 Streaming sync — invisible plumbing (8) man →

Read Cortex as of N days ago, for a "what changed since" diff.

Cortex hosted on Lacuna infra, gRPC bidi streaming sync. Sub-2s cross-device latency. Still encrypted with the operator's key — we run the machine but cannot read the data.
Trigger
event
Tools
engram-hosted, scoped DEK
Substrates
engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-time-travel-snapshot.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-sakura-continuous-conversation
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.4 Voice — context-aware conversational, light-purple (8) man →

Full back-and-forth voice conversation with context. The "feels like talking to a person" mode.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, cloud reasoning, engram-hosted
Substrates
STT, cloud reasoning, engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-sakura-continuous-conversation.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-photo-and-voice-fused
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.4 Voice — context-aware conversational, light-purple (8) man →

Photo + voice → joint understanding ("look at this color and tell me what it'd pair with").

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Trigger
event
Tools
STT, embeddings, engram-hosted
Substrates
STT, embeddings, engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-photo-and-voice-fused.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-meeting-notes-into-cortex
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.4 Voice — context-aware conversational, light-purple (8) man →

Record a craft-fair recap, cloud reasoning structures it into Cortex notes + action items.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, cloud reasoning, engram-hosted
Substrates
STT, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-meeting-notes-into-cortex.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-walk-the-shop
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.4 Voice — context-aware conversational, light-purple (8) man →

Operator walks through inventory by voice, Sakura logs each piece.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, cloud reasoning, engram-hosted
Substrates
STT, cloud reasoning, engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-walk-the-shop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-listing-audit-by-voice
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.4 Voice — context-aware conversational, light-purple (8) man →

"Read me my underperformers" → cloud reasoning narrates the diagnosis.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, cloud reasoning, engram-hosted
Substrates
STT, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-listing-audit-by-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-financial-readout
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.4 Voice — context-aware conversational, light-purple (8) man →

"What did I make this month, after fees?" — read aloud with explanation.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, cloud reasoning, engram-hosted
Substrates
STT, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-financial-readout.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-customer-message-reply
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.4 Voice — context-aware conversational, light-purple (8) man →

Voice-reply to a buyer with cloud reasoning polishing the prose. Pain #16.

cloud reasoning drafts a buyer-facing reply in your voice, grounded in Cortex context (the buyer's past purchases, shop policy). Never auto-sends; operator reviews and fires manually.
Trigger
event
Tools
STT, cloud reasoning, etsy/conversations, engram-hosted
Substrates
STT, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-customer-message-reply.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-craft-fair-debrief
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.4 Voice — context-aware conversational, light-purple (8) man →

"Tell Sakura how the fair went" — captures + structures the debrief.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Trigger
event
Tools
STT, cloud reasoning, engram-hosted
Substrates
STT, cloud reasoning
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-craft-fair-debrief.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-craft-fair-live-sales-dashboard
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.5 Real-time geo + voice + Engram — green live (8) man →

At a craft fair on phone, see live sales totals + per-item velocity.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Trigger
event (operator at venue)
Tools
engram-hosted, Maps geocode, mobile UI
Substrates
engram-hosted, Maps
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-craft-fair-live-sales-dashboard.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-craft-fair-restock-from-cortex
pink§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.5 Real-time geo + voice + Engram — green live (8) man →

"You sold all 6 pink hoops, do you have more at home?" — Cortex lookup.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Trigger
event
Tools
engram-hosted, Maps geocode, cortex.aggregate
Substrates
engram-hosted, Maps
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-craft-fair-restock-from-cortex.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-pop-up-checkin
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.5 Real-time geo + voice + Engram — green live (8) man →

Tap "I'm here" at a venue, Sakura adjusts notification cadence.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Trigger
event
Tools
Maps geocode, engram-hosted
Substrates
Maps, engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-pop-up-checkin.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-on-bench-quick-photo-with-voice
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.5 Real-time geo + voice + Engram — green live (8) man →

At the workbench: photo + voice memo → draft listing on desktop ready when operator returns.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Trigger
event
Tools
STT, engram-hosted, image understanding
Substrates
STT, embeddings, engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-on-bench-quick-photo-with-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-supplier-route-planner
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.5 Real-time geo + voice + Engram — green live (8) man →

"These three suppliers, best route given low-stock priorities."

Reads Maps + your low-stock list + supplier locations. Surfaces the visit that pays off (or the supplier swap that saves money).
Trigger
event
Tools
Maps directions, cortex_query
Substrates
Maps
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-supplier-route-planner.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-craft-fair-cash-vs-card-tally
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.5 Real-time geo + voice + Engram — green live (8) man →

Voice-log cash sales at booth, reconciles with Square/Stripe on the desktop.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Trigger
event
Tools
STT, engram-hosted
Substrates
STT, engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-craft-fair-cash-vs-card-tally.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-craft-fair-photo-of-buyer-piece
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.5 Real-time geo + voice + Engram — green live (8) man →

Photograph the piece + buyer's pairing — Sakura tags "sold at X fair to Y type of buyer."

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Trigger
event
Tools
STT, engram-hosted, image understanding
Substrates
STT, embeddings, engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-craft-fair-photo-of-buyer-piece.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-fulfillment-route-priority
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.5 Real-time geo + voice + Engram — green live (8) man →

"Drop off these 3 packages on your usual coffee run."

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
event
Tools
Maps directions, cortex.aggregate
Substrates
Maps
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-fulfillment-route-priority.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-walking-thoughts-cortex-pin
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

Quick voice memo while walking, lands in Cortex.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, cortex_write
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-walking-thoughts-cortex-pin.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-morning-todo-from-cortex
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

"What's on my plate today" read aloud.

Voice memo lands in Cortex; later voice query reads it back. The bridge between 'speaking a thought' and 'finding it again three weeks later.'
Trigger
cron (morning)
Tools
STT, cortex_query
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-morning-todo-from-cortex.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-when-did-i-last
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

"When did I last sell to a buyer in Florida?"

Voice memo lands in Cortex; later voice query reads it back. The bridge between 'speaking a thought' and 'finding it again three weeks later.'
Trigger
event
Tools
STT, cortex_query
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-when-did-i-last.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-what-did-this-buyer-say
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

Recall buyer notes.

Voice memo lands in Cortex; later voice query reads it back. The bridge between 'speaking a thought' and 'finding it again three weeks later.'
Trigger
event
Tools
STT, cortex_query
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-what-did-this-buyer-say.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-recall-pricing-history
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

"What did I price this at before?"

Voice memo lands in Cortex; later voice query reads it back. The bridge between 'speaking a thought' and 'finding it again three weeks later.'
Trigger
event
Tools
STT, cortex_query
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-recall-pricing-history.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-driving-idea-capture
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

Voice → text → Cortex, all hands-free.

Voice memo lands in Cortex; later voice query reads it back. The bridge between 'speaking a thought' and 'finding it again three weeks later.'
Trigger
event
Tools
STT, cortex_write
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-driving-idea-capture.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-supplier-visit-debrief
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

Visit debrief captured as Cortex pin.

Reads Maps + your low-stock list + supplier locations. Surfaces the visit that pays off (or the supplier swap that saves money).
Trigger
event
Tools
STT, cortex_write
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-supplier-visit-debrief.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-meeting-with-customer-notes
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

In-person meeting notes pinned.

Pull buyers who match a behavior pattern. Suggest a tailored touch — a thank-you, a restock note, a recovery message. Cheap care that compounds.
Trigger
event
Tools
STT, cortex_write
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-meeting-with-customer-notes.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-multilingual-input
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

Operator switches mid-sentence; both languages captured.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT
Substrates
STT
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-multilingual-input.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-voice-co-owner-debrief
deep purple§15. Matrix absorption — Power tier ($99.99) additions (53) · §15.7 Misc voice + STT additions (9) man →

Chaun and Alfred sit down, voice → joint Cortex notes. Combo 33.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Trigger
event
Tools
STT, cortex_write
Substrates
STT, engram-hosted
Section
§15. Matrix absorption — Power tier ($99.99) additions (53)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §15-matrix-absorption-power-tier-9999-additions-53

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-co-owner-debrief.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math

§16. Matrix absorption — Enterprise tier ($399.99) additions21 entries

cross-multi-shop-engram-projection
light purple§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

One operator, multiple shops, single projection. Light-purple.

Cortex hosted on Lacuna infra, gRPC bidi streaming sync. Sub-2s cross-device latency. Still encrypted with the operator's key — we run the machine but cannot read the data.
Trigger
event
Tools
engram-hosted (multi-tenant), scoped DEK
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-multi-shop-engram-projection.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-multi-shop-portfolio-strategy
deep purple§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

L

deep reasoning runs a multi-step playbook. Reserved for strategy, MCMC, code-from-scratch — things where a single cloud reasoning call would give the right answer but not the right plan.
Trigger
PLAYBOOK
Tools
operator-asked
Substrates
engram-hosted, deep reasoning
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-multi-shop-portfolio-strategy.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
cross-multi-shop-inventory-shared
light purple§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

Same SKU listed in two shops, inventory mirrors automatically. Light-purple.

Cortex is the single source of stock truth. Every channel reads from it before writing. Stops the 'sold the same one twice' problem.
Trigger
event
Tools
engram-hosted, multi-cart
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-multi-shop-inventory-shared.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-multi-operator-role-scopes
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

Owner, manager, viewer roles. Each sees a redacted projection. White.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
tool
Tools
scoped DEK (team roles)
Substrates
scoped DEK
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-multi-operator-role-scopes.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-team-task-handoff
green§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

"Chaun packs, Alfred ships" — task moves between operators. Green.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
event
Tools
engram-hosted, scoped DEK
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-team-task-handoff.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-team-shared-customer-notes
green§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

All team members see the same buyer notes. Green.

Pull buyers who match a behavior pattern. Suggest a tailored touch — a thank-you, a restock note, a recovery message. Cheap care that compounds.
Trigger
event
Tools
engram-hosted, cortex_write
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-team-shared-customer-notes.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-team-activity-audit-log
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

Who did what when. Compliance-shaped. White.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
tool
Tools
engram-hosted
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-team-activity-audit-log.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-multi-shop-craft-fair-tally
green§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

Both shops' sales at a fair on one screen. Green.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Trigger
event
Tools
engram-hosted, Maps geocode
Substrates
engram-hosted, Maps
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-multi-shop-craft-fair-tally.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-multi-shop-cross-listing-suggest
light purple§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

"This Lucky Bloom piece could go in Nassato too" — suggest cross-listing. Light-purple.

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Trigger
analysis-pattern
Tools
engram-hosted, cloud reasoning
Substrates
engram-hosted, cloud reasoning
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-multi-shop-cross-listing-suggest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-multi-shop-financial-roll-up
light purple§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.1 Multi-shop + multi-operator (10) man →

Combined P&L narrative across all shops. Light-purple.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Trigger
cron (monthly)
Tools
engram-hosted, cloud reasoning
Substrates
engram-hosted, cloud reasoning
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-multi-shop-financial-roll-up.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
deep-private-opus-quota
deep purple§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.2 Dedicated compute ✨ (4) man →

Higher rate ceiling, faster turnaround on nightly playbooks.

deep reasoning playbook. Multi-step orchestration that genuinely benefits from deliberate planning — not just better prose but a better plan.
Trigger
tool-class
Tools
deep reasoning dedicated quota
Substrates
deep reasoning
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-private-opus-quota.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math
deep-private-engram-machine
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.2 Dedicated compute ✨ (4) man →

Dedicated tenant-isolated machine. Real privacy + perf moat.

Sits on the Engram projection — the encrypted second Cortex on Lacuna infra. Cross-device + cross-time consistent. Operator owns the key.
Trigger
tool-class
Tools
engram-hosted dedicated
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-private-engram-machine.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
deep-private-atlas-feed
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.2 Dedicated compute ✨ (4) man →

Real-time anonymized peer benchmarks.

deep reasoning playbook. Multi-step orchestration that genuinely benefits from deliberate planning — not just better prose but a better plan.
Trigger
tool-class
Tools
Atlas Aura, engram-hosted
Substrates
Atlas, engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-private-atlas-feed.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
deep-private-lacuna-nightly-on-demand
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.2 Dedicated compute ✨ (4) man →

Operator-triggered nightly run (not just scheduled).

deep reasoning playbook. Multi-step orchestration that genuinely benefits from deliberate planning — not just better prose but a better plan.
Trigger
operator-asked
Tools
Lacuna, deep reasoning
Substrates
Lacuna, deep reasoning
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-private-lacuna-nightly-on-demand.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-enterprise-api-access
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.3 Enterprise-only marketplace surfaces (7) man →

Read-only API for external accountants / partners. White.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
tool
Tools
engram-hosted, scoped tokens
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-enterprise-api-access.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-enterprise-webhook-out
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.3 Enterprise-only marketplace surfaces (7) man →

Outbound webhook on key events. White.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
tool
Tools
engram-hosted
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-enterprise-webhook-out.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-enterprise-csv-scheduled-export
green§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.3 Enterprise-only marketplace surfaces (7) man →

Scheduled CSV drops to operator's cloud storage. Green.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
cron (operator-set)
Tools
engram-hosted
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-enterprise-csv-scheduled-export.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-enterprise-data-retention-control
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.3 Enterprise-only marketplace surfaces (7) man →

Operator sets retention window per data class. White.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
tool
Tools
engram-hosted, scoped DEK
Substrates
engram-hosted
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-enterprise-data-retention-control.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-enterprise-team-2fa-required
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.3 Enterprise-only marketplace surfaces (7) man →

Team accounts require 2FA. White.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
tool
Tools
scoped DEK
Substrates
scoped DEK
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-enterprise-team-2fa-required.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-enterprise-sso
white§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.3 Enterprise-only marketplace surfaces (7) man →

SAML / Google Workspace SSO. White.

Enterprise infra plumbing. Scoped DEKs gate which team member can read what. Compliance-shaped — the audit log is hash-chained so nothing can be silently rewritten.
Trigger
tool
Tools
scoped DEK
Substrates
scoped DEK
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-enterprise-sso.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-enterprise-team-onboarding-playbook
deep purple§16. Matrix absorption — Enterprise tier ($399.99) additions (21) · §16.3 Enterprise-only marketplace surfaces (7) man →

M

Multi-step playbook. deep reasoning chains together a sequence of smaller automations and synthesizes the result. The verbs each exist on their own — deep reasoning is the conductor.
Trigger
PLAYBOOK
Tools
event (new team signup)
Substrates
deep reasoning
Section
§16. Matrix absorption — Enterprise tier ($399.99) additions (21)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §16-matrix-absorption-enterprise-tier-39999-additions-21

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-enterprise-team-onboarding-playbook.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

DATAyour cortexFITmathPOSTERIORcredible bandFORECASTdecisionmethod: math

§17. Matrix absorption — per-marketplace deep dives67 entries

etsy-photo-style-cluster-by-vector
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Cluster catalog by aesthetic.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
image understanding
Substrates
image understanding
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-photo-style-cluster-by-vector.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-photo-best-of-batch-pick
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

"Use this one as primary."

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
image understanding
Substrates
image understanding
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-photo-best-of-batch-pick.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-visual-near-duplicate-listing-merge
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Pain #26 properly. Vector similarity > 0.92 → suggest merge.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
embeddings, engram-hosted
Substrates
embeddings, engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-visual-near-duplicate-listing-merge.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-shipping-form-prefill-from-buyer-zip
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Zip → distance + box class.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
Maps
Substrates
Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-shipping-form-prefill-from-buyer-zip.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-customs-form-prefill
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Auto-fill 6-line customs.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
Maps
Substrates
Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-customs-form-prefill.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-customs-clear-by-destination
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Pre-publish customs flag.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
web search, Maps
Substrates
web search, Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-customs-clear-by-destination.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-ship-by-date-by-buyer-region
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

"Mail by Dec 18" by region.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
Maps, cortex.aggregate
Substrates
Maps, cortex.aggregate
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-ship-by-date-by-buyer-region.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-holiday-ship-cutoff-by-region
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Holiday-aware shipping cutoffs.

Calendar-aware. Reads the date, your past seasonal lift, current trends. Surfaces what worked last year with concrete inventory + caption suggestions.
Tools
Maps
Substrates
Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-holiday-ship-cutoff-by-region.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-predicted-arrival-tell-buyer
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

"Should arrive Dec 14" buyer-side.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Tools
Maps, cortex.aggregate
Substrates
Maps, cortex.aggregate
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-predicted-arrival-tell-buyer.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-late-shipment-proactive-message
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Pre-emptive buyer comm.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
Maps, cloud reasoning
Substrates
Maps, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-late-shipment-proactive-message.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-conversation-pickup-on-other-device
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Multi-device DM flow.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Tools
Engram-light
Substrates
Engram-light
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-conversation-pickup-on-other-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-buyer-history-prefetch-on-message-open
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Buyer's past purchases load instantly when message opens.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Tools
Engram-hosted
Substrates
Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-buyer-history-prefetch-on-message-open.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-share-cohort-prefetch
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Repeat-buyer signals cached.

Pull a slice of buyers (sharing a feature), tally what they have in common, surface the pattern. Lets the operator find more of who's already working.
Tools
Engram-hosted
Substrates
Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-share-cohort-prefetch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-share-of-voice-monthly
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Niche share monthly.

web search reads the live market in your niche; we diff against where you sit. The gap between what's moving and what you're listing is the opportunity.
Tools
Atlas, cloud reasoning
Substrates
Atlas, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-share-of-voice-monthly.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-niche-newcomer-watch
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

New entrants in operator's niche.

web search reads the live market in your niche; we diff against where you sit. The gap between what's moving and what you're listing is the opportunity.
Tools
web search
Substrates
web search
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-niche-newcomer-watch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-category-velocity-anomaly
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Sudden niche shift.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
Atlas, cloud reasoning
Substrates
Atlas, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-category-velocity-anomaly.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-shipping-zone-vs-competitor
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Are operator's zones competitive?

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
web search, Maps
Substrates
web search, Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-shipping-zone-vs-competitor.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-pricing-arbitrage-vs-other-platforms
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

If Etsy = $50, eBay = $45, intentional?

Polls peer prices on a cadence. Diffs against your prices. Surfaces either 'you've drifted high' or 'they raced to the bottom — hold your price.'
Tools
Engram-hosted, cloud reasoning
Substrates
Engram-hosted, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-pricing-arbitrage-vs-other-platforms.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-competitor-geo-map
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Where peers cluster.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Tools
Maps
Substrates
Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-competitor-geo-map.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-fulfill-order
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

"Ship the Smith order, USPS Priority."

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Tools
STT, cloud reasoning
Substrates
STT, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-fulfill-order.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-customs-form-fill
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Voice → completed customs form.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
STT, cloud reasoning
Substrates
STT, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-customs-form-fill.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-message-quick-reply
pink§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Quick voice DM.

STT captures what you say, cloud reasoning polishes it into a clean reply, draft surfaces for review. Voice in, polished prose out.
Tools
STT
Substrates
STT
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-message-quick-reply.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
etsy-voice-message-polished-reply
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.1 Etsy-specific net-new (12 additional, beyond §13-§16) man →

Polished voice DM.

STT captures what you say, cloud reasoning polishes it into a clean reply, draft surfaces for review. Voice in, polished prose out.
Tools
STT, cloud reasoning
Substrates
STT, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/etsy-voice-message-polished-reply.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-voice-item-specifics-fill
pink§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

Item specifics from voice.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Tools
STT
Substrates
STT
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-voice-item-specifics-fill.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-voice-shipping-profile-pick
pink§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

Voice shipping select.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
STT
Substrates
STT
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-voice-shipping-profile-pick.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-photo-from-phone-into-draft
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

Phone → eBay draft.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
Engram-light
Substrates
Engram-light
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-photo-from-phone-into-draft.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-customs-clear-by-destination
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

Pre-publish customs flag.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
web search, Maps
Substrates
web search, Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-customs-clear-by-destination.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-predicted-arrival-tell-buyer
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

"Should arrive Dec 14."

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Tools
Maps
Substrates
Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-predicted-arrival-tell-buyer.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-inventory-mirror-cross-device
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

Multi-device stock.

Cortex is the single source of stock truth. Every channel reads from it before writing. Stops the 'sold the same one twice' problem.
Tools
Engram-light
Substrates
Engram-light
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-inventory-mirror-cross-device.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-late-shipment-proactive-message
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

Pre-emptive buyer comm.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
Maps, cloud reasoning
Substrates
Maps, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-late-shipment-proactive-message.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-cross-list-from-etsy-draft
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

One-button cross-list with field translation.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
Engram-light, cloud reasoning
Substrates
Engram-light, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-cross-list-from-etsy-draft.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
ebay-listing-funnel-diagnosis
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.2 eBay-specific net-new (10) man →

View → bid → buy walk.

Walk the view → favorite → sale chain. At each step, count the drop-off. The biggest drop is where the listing is bleeding.
Tools
cloud reasoning
Substrates
cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/ebay-listing-funnel-diagnosis.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-post-from-listing-photo-and-voice
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

Photo + voice → ready post.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
STT, image understanding
Substrates
STT, image understanding
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-post-from-listing-photo-and-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-best-photo-pick-from-catalog
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

"Use this one for Reels."

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
image understanding
Substrates
image understanding
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-best-photo-pick-from-catalog.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-photo-pair-recommend
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

Visual pairing.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
image understanding
Substrates
image understanding
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-photo-pair-recommend.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-ad-copy-from-shop-history
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

Context-rich ad copy.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Tools
Engram-hosted, cloud reasoning
Substrates
Engram-hosted, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-ad-copy-from-shop-history.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-pixel-tracking-suggest
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

Suggest events for operator's catalog.

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Tools
meta-sub-API
Substrates
meta-sub-API
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-pixel-tracking-suggest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-best-time-to-post-from-history
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

Cross-platform engagement-time hint.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Tools
Engram-hosted
Substrates
Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-best-time-to-post-from-history.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-comment-quick-reply-voice
pink§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

Voice-reply to IG/FB comment.

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Tools
STT
Substrates
STT
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-comment-quick-reply-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-story-from-listing-voice
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

Story draft from voice + photo.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Tools
STT, cloud reasoning
Substrates
STT, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-story-from-listing-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
meta-reels-script-30s-from-listing
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.3 Meta-specific net-new (11) man →

Reels script.

Pulls your listing details, your voice register, the platform's format. Drafts the post. Operator polishes and posts on their schedule.
Tools
cloud reasoning
Substrates
cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/meta-reels-script-30s-from-listing.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-region-pricing-variant
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.4 Shopify-specific net-new (10) man →

Per-region prices.

Pulls your real margin from Cortex and (when green-tier) peer pricing from web search. Suggests a delta with reasoning. Operator decides; tool never auto-fires a destructive write.
Tools
Maps, cloud reasoning
Substrates
Maps, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-region-pricing-variant.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-region-shipping-variant
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.4 Shopify-specific net-new (10) man →

Per-region shipping.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
Maps
Substrates
Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-region-shipping-variant.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-region-product-availability
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.4 Shopify-specific net-new (10) man →

Per-region catalog.

cloud assist does one cheap cloud-side check. Sub-second, costs a fraction of a cent. The 'eyes and live web' tier.
Tools
Maps
Substrates
Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-region-product-availability.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-theme-block-from-listing-voice
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.4 Shopify-specific net-new (10) man →

Voice → theme block.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
STT, cloud reasoning
Substrates
STT, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-theme-block-from-listing-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-collection-name-suggest
pink§17. Matrix absorption — per-marketplace deep dives (47) · §17.4 Shopify-specific net-new (10) man →

Section naming.

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Tools
cortex.aggregate
Substrates
cortex.aggregate
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-collection-name-suggest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-customer-segment-from-history
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.4 Shopify-specific net-new (10) man →

Cohort suggestions.

Pull buyers who match a behavior pattern. Suggest a tailored touch — a thank-you, a restock note, a recovery message. Cheap care that compounds.
Tools
Engram-hosted, cloud reasoning
Substrates
Engram-hosted, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-customer-segment-from-history.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-cart-abandonment-recovery-voice
pink§17. Matrix absorption — per-marketplace deep dives (47) · §17.4 Shopify-specific net-new (10) man →

"Email the last 8 cart abandons."

Sakura's local 8B model handles this on-device. Free, private, Cortex-grounded. The 'I just know what you have' tier.
Tools
STT
Substrates
STT
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-cart-abandonment-recovery-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
shopify-storefront-policy-rewrite
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.4 Shopify-specific net-new (10) man →

Polish policies.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
cloud reasoning, web search
Substrates
cloud reasoning, web search
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/shopify-storefront-policy-rewrite.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
google-voice-cross-post-batch
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.5 Google Shopping / Merchant Center — additions (6) man →

"Push my top 10 to Google" by voice.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Tools
STT, cloud reasoning
Substrates
STT, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/google-voice-cross-post-batch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
google-region-targeting-by-engram
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.5 Google Shopping / Merchant Center — additions (6) man →

Auto-target by historical buyer geo.

Sits on the Engram projection — the encrypted second Cortex on Lacuna infra. Cross-device + cross-time consistent. Operator owns the key.
Tools
Engram-hosted, Maps
Substrates
Engram-hosted, Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/google-region-targeting-by-engram.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
google-merchant-violation-voice-triage
pink§17. Matrix absorption — per-marketplace deep dives (47) · §17.5 Google Shopping / Merchant Center — additions (6) man →

Voice walk-through violations.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Tools
STT
Substrates
STT
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/google-merchant-violation-voice-triage.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
google-shopping-best-photo-pick
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.5 Google Shopping / Merchant Center — additions (6) man →

Highest-CTR photo for Google audience.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
image understanding
Substrates
image understanding
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/google-shopping-best-photo-pick.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
google-shopping-price-vs-platform-floor
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.5 Google Shopping / Merchant Center — additions (6) man →

Don't undercut self.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
Engram-hosted, cloud reasoning
Substrates
Engram-hosted, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/google-shopping-price-vs-platform-floor.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
google-cross-channel-promo-warning
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.5 Google Shopping / Merchant Center — additions (6) man →

Promo stacking detector.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
Engram-hosted
Substrates
Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/google-cross-channel-promo-warning.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-listing-source-of-truth-engram
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

One source, multiple expressions.

Sits on the Engram projection — the encrypted second Cortex on Lacuna infra. Cross-device + cross-time consistent. Operator owns the key.
Tools
Engram-hosted
Substrates
Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-listing-source-of-truth-engram.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-oversold-prevented-via-engram
pink§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Pain #5 properly fixed.

Cortex is the single source of stock truth. Every channel reads from it before writing. Stops the 'sold the same one twice' problem.
Tools
Engram-light/hosted
Substrates
Engram-light/hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-oversold-prevented-via-engram.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-pricing-arbitrage-cross-platform
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Cross-platform price diff watch.

Polls peer prices on a cadence. Diffs against your prices. Surfaces either 'you've drifted high' or 'they raced to the bottom — hold your price.'
Tools
Engram-hosted, cloud reasoning
Substrates
Engram-hosted, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-pricing-arbitrage-cross-platform.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-promo-stack-warning
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Margin protection.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
Engram-hosted, cloud reasoning
Substrates
Engram-hosted, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-promo-stack-warning.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-marketplace-expansion-suggest-by-region
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

"Try UK Etsy"-type recommendation.

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Tools
Engram-hosted, cloud reasoning, Maps
Substrates
Engram-hosted, cloud reasoning, Maps
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-marketplace-expansion-suggest-by-region.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-platform-where-to-list-next
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Strategic guide.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
Engram-hosted, cloud reasoning
Substrates
Engram-hosted, cloud reasoning
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-platform-where-to-list-next.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-style-transfer-suggestion
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Photo-style guidance.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
embeddings, Engram-hosted
Substrates
embeddings, Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-style-transfer-suggestion.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-style-transfer-warning
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Drift alert.

cloud reasoning writes or reasons over your real data. The 'sound like you, but cleaner' tier. Atlas-pair-trained on the operator's own voice.
Tools
embeddings, Engram-hosted
Substrates
embeddings, Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-style-transfer-warning.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-review-photo-claims-mismatch
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Buyer-photo vs operator-photo diff.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
embeddings, Engram-hosted
Substrates
embeddings, Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-review-photo-claims-mismatch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-niche-share-of-voice
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Total share-of-voice.

web search reads the live market in your niche; we diff against where you sit. The gap between what's moving and what you're listing is the opportunity.
Tools
Atlas, Engram-hosted
Substrates
Atlas, Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-niche-share-of-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-peer-photo-quality-score
light purple§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Photo-quality benchmark.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
Atlas, embeddings
Substrates
Atlas, embeddings
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-peer-photo-quality-score.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-engram-peer-tag-overlap-monthly
green§17. Matrix absorption — per-marketplace deep dives (47) · §17.6 Cross-marketplace additions (no specific platform) (12) man →

Tag-overlap report.

Crawls trending keywords + your own tag-to-sales history. Proposes the thirteen tags that historically correlate with sales in your niche.
Tools
Atlas, Engram-hosted
Substrates
Atlas, Engram-hosted
Section
§17. Matrix absorption — per-marketplace deep dives (47)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §17-matrix-absorption-per-marketplace-deep-dives-47

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-engram-peer-tag-overlap-monthly.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done

§18. Matrix absorption — long-tail cross-capability combinations16 entries

cross-region-arbitrage-suggest
light purple§18. Matrix absorption — long-tail cross-capability combinations (16) man →

"Your NY buyers pay 12% more, list there premium."

Reads Cortex for context, may peek at peer data via web search, then proposes one or two options. Operator approves before anything fires.
Tools
Engram-hosted, Maps
Substrates
Engram-hosted, Maps
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-region-arbitrage-suggest.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-region-shipping-floor-by-platform
green§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Minimum profitable shipping per region per platform.

Looks at the buyer's ZIP, distance to operator, your past delivery history, carrier rate tables. Suggests the carrier + transit estimate that matches the real data.
Tools
Engram-hosted, Maps
Substrates
Engram-hosted, Maps
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-region-shipping-floor-by-platform.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-loam-shared-geo-cache
green§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Distance from X to Y once across all operators (geography doesn't move).

External grounding: knowledge lookup and Loam's shared caches (market-history sources, fee schedules, supplier data). Read once, cached across operators — geography and price history don't move.
Tools
Loam, Maps
Substrates
Loam, Maps
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-loam-shared-geo-cache.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-loam-shared-niche-trend-cache
green§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Shared niche-trend cache across operators.

web search reads the live market in your niche; we diff against where you sit. The gap between what's moving and what you're listing is the opportunity.
Tools
Loam, web search
Substrates
Loam, web search
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-loam-shared-niche-trend-cache.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-semantic-search-all-listings
green§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Cross-listing semantic search.

Embed every listing into a high-dim vector into vectors. Search by meaning, not keywords. 'Rustic autumn pieces' finds the right listings even if you never typed 'rustic.'
Tools
embeddings
Substrates
embeddings
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-semantic-search-all-listings.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-semantic-find-similar-completed-pieces
green§18. Matrix absorption — long-tail cross-capability combinations (16) man →

"I sold one like this, what was its title?"

Embed every listing into a high-dim vector into vectors. Search by meaning, not keywords. 'Rustic autumn pieces' finds the right listings even if you never typed 'rustic.'
Tools
embeddings
Substrates
embeddings
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-semantic-find-similar-completed-pieces.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-semantic-search-by-mood
light purple§18. Matrix absorption — long-tail cross-capability combinations (16) man →

"Rustic autumn pieces."

Embed every listing into a high-dim vector into vectors. Search by meaning, not keywords. 'Rustic autumn pieces' finds the right listings even if you never typed 'rustic.'
Tools
embeddings, cloud reasoning
Substrates
embeddings, cloud reasoning
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-semantic-search-by-mood.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-semantic-search-spoken
light purple§18. Matrix absorption — long-tail cross-capability combinations (16) man →

"Find me the pink hoops I made last spring."

Embed every listing into a high-dim vector into vectors. Search by meaning, not keywords. 'Rustic autumn pieces' finds the right listings even if you never typed 'rustic.'
Tools
STT, embeddings
Substrates
STT, embeddings
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-semantic-search-spoken.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-search-photo-plus-voice
light purple§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Show photo + speak constraint.

Vision model embeds the photo into a vector, then we compare vectors. Visual similarity without anyone having to label anything.
Tools
STT, embeddings
Substrates
STT, embeddings
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-search-photo-plus-voice.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-geo-trigger-reminder-on-passing-fedex
pink§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Trigger reminder when near a relevant location.

Geocode the ZIP, distance-measure to the operator. Pure Maps API plumbing. Other carts compose on top.
Tools
Maps, cortex_query
Substrates
Maps, cortex_query
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-geo-trigger-reminder-on-passing-fedex.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-geo-trigger-supplier-near-craft-store
pink§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Near supplier → restock prompt.

Geocode the ZIP, distance-measure to the operator. Pure Maps API plumbing. Other carts compose on top.
Tools
Maps, cortex_query
Substrates
Maps, cortex_query
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-geo-trigger-supplier-near-craft-store.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-geo-trigger-quiet-mode-at-home-vs-fair
pink§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Quiet hours adjust by geo context.

Geocode the ZIP, distance-measure to the operator. Pure Maps API plumbing. Other carts compose on top.
Tools
Maps
Substrates
Maps
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-geo-trigger-quiet-mode-at-home-vs-fair.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-fair-voice-quick-sale
pink§18. Matrix absorption — long-tail cross-capability combinations (16) man →

"$25 from Sarah, paid cash" — voice booth log.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Tools
STT, engram-hosted
Substrates
STT, engram-hosted
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-fair-voice-quick-sale.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-fair-voice-bundle-deal
pink§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Voice-log a bundle sale at the booth.

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Tools
STT, engram-hosted
Substrates
STT, engram-hosted
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-fair-voice-bundle-deal.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-fair-voice-trade-tracking
pink§18. Matrix absorption — long-tail cross-capability combinations (16) man →

"Traded a pendant with the bookbinder."

Designed for the booth. Voice-first because hands are full; Engram-hosted because the desktop at home stays in sync without thinking about it.
Tools
STT, engram-hosted
Substrates
STT, engram-hosted
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-fair-voice-trade-tracking.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-voice-call-this-supplier
pink§18. Matrix absorption — long-tail cross-capability combinations (16) man →

Pulls Places phone number, opens dial.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Tools
STT, Places
Substrates
STT, Places
Section
§18. Matrix absorption — long-tail cross-capability combinations (16)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §18-matrix-absorption-long-tail-cross-capability-combinations-16

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-voice-call-this-supplier.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done

§19. Retired-by-merge appendix16 entries

notification-on-iphone
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Engram broadcasts to all signed-in devices; per-device variant is redundant.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/notification-on-iphone.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
notification-on-android
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/notification-on-android.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
notification-on-desktop
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/notification-on-desktop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
notification-on-tablet
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/notification-on-tablet.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
notification-on-watch
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/notification-on-watch.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
clipboard-iphone-to-desktop
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Engram clipboard channel replaces per-device pair.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/clipboard-iphone-to-desktop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
clipboard-android-to-desktop
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/clipboard-android-to-desktop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
clipboard-tablet-to-desktop
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/clipboard-tablet-to-desktop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
recent-activity-iphone
retired§19. Retired-by-merge appendix (−16, citation trail) man →

One feed, all devices.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/recent-activity-iphone.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
recent-activity-android
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/recent-activity-android.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
recent-activity-tablet
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/recent-activity-tablet.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
recent-activity-desktop
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Retired in the 2026-06-01 Engram absorption pass. A per-device variant — one cross-device Engram cart replaced N per-device entries. Cite trail preserved in §19 of the canonical doc.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/recent-activity-desktop.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
quiet-hours-iphone
retired§19. Retired-by-merge appendix (−16, citation trail) man →

One quiet-hours rule, synced across devices.

Cron-time guard. Reads the operator's quiet hours from Cortex; suppresses non-urgent surfaces and notifications outside them. The 'no 2am pings' rule.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/quiet-hours-iphone.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
quiet-hours-android
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Cron-time guard. Reads the operator's quiet hours from Cortex; suppresses non-urgent surfaces and notifications outside them. The 'no 2am pings' rule.
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/quiet-hours-android.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
voice-memo-etsy-experiment
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Platform-specific voice-memo experiment subsumed by the universal Cortex pin.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/voice-memo-etsy-experiment.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
voice-memo-ebay-experiment
retired§19. Retired-by-merge appendix (−16, citation trail) man →

Same.

Speech-to-text plus the right downstream cart. Voice in, the same action you'd click manually fires (with read-back if destructive).
Section
§19. Retired-by-merge appendix (−16, citation trail)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §19-retired-by-merge-appendix-16-citation-trail

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/voice-memo-ebay-experiment.sks

Example

Example forthcoming — examples.json entry editable in place.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done

§22. Finance — AI/subsystem + deep-purple cluster34 entries

cross-finance-revenue-month-conversational
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"May was your second-best month — $4,210 gross, $3,612 after fees."

Reads your own ledger in Cortex. Never reaches for invented benchmarks. Sakura speaks the answer in plain numbers grounded in your real receipts.
Trigger
event
Tools
cortex.aggregate
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-revenue-month-conversational.sks

Example

Sakura uses this when you ask "how was last month?" or it lands on the first of the month. She reads your own Cortex, not the internet's, and gives the number with the context: "May was your second-best month — $4,210 gross, $3,612 after fees."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-cortex-conversational-qa
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Ask me anything about your money — I read your own ledger, never the internet's."

Reads your own ledger in Cortex. Never reaches for invented benchmarks. Sakura speaks the answer in plain numbers grounded in your real receipts.
Trigger
event
Tools
cortex.aggregate
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-cortex-conversational-qa.sks

Example

Sakura uses this whenever you ask anything about your money in plain English. She reads your local ledger only — never the internet, never aggregated platform data. "Ask me anything about your money — I read your own ledger."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-refund-reason-clustering
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Your '14k gold-filled' descriptions get refunded 4× more than 'stainless' — two clusters: 'tarnished' and 'allergic.'"

Reads your own ledger in Cortex. Never reaches for invented benchmarks. Sakura speaks the answer in plain numbers grounded in your real receipts.
Trigger
analysis-pattern
Tools
cortex.aggregate, sakura/local-cluster
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-refund-reason-clustering.sks

Example

Sakura uses this when your refund pile starts to feel patterned. She clusters refund narratives on-device. "Your '14k gold-filled' descriptions get refunded 4× more than 'stainless' — two clusters: tarnished and allergic."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-1099k-reconciliation
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Etsy 1099-K agrees with your ledger within $12 for the year. Three timing discrepancies — here's the explanation."

Pulls per-jurisdiction tax rules + your real sales by location. Surfaces the line items your accountant cares about, with receipts attached for verification.
Trigger
event (upload)
Tools
cortex.aggregate, pdf-parse
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-1099k-reconciliation.sks

Example

Sakura uses this when Etsy mails the 1099-K. She compares it line by line to your Cortex ledger. "Within $12 for the year. Three timing discrepancies — here's the explanation." You walk into your accountant with the diff already done.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-revenue-anomaly-annotated
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Revenue was 2.4× yesterday — one $312 custom order to Maine. Worth following up."

Reads your own ledger in Cortex. Never reaches for invented benchmarks. Sakura speaks the answer in plain numbers grounded in your real receipts.
Trigger
cron (daily)
Tools
cortex.aggregate, web_search (opt)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-revenue-anomaly-annotated.sks

Example

Sakura uses this on a daily cron. When yesterday's revenue stands out, she names the cause from your own receipts. "Up 2.4x — one $312 custom order to Maine. Worth following up." Anomaly with a why.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-true-roas-google-shopping
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"$4/day on the hammered-cuff campaign generated $52 in Etsy revenue — 3.1× ROAS. The candle campaign is underwater at 0.6×."

Reads your own ledger in Cortex. Never reaches for invented benchmarks. Sakura speaks the answer in plain numbers grounded in your real receipts.
Trigger
cron (daily)
Tools
merchant_center/spend, cortex.aggregate, knowledge lookup
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-true-roas-google-shopping.sks

Example

Sakura uses this when your ad spend doesn't match what showed up at the register. She joins Merchant Center spend with your actual receipts. "$4/day on the hammered-cuff campaign returned $52 — 3.1× ROAS. The candle campaign is underwater at 0.6×."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-cohort-ltv-synthesis
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Candle-first buyers came back twice as often as ring-first buyers. Year-1 spend: $87 vs $42. Candles are your engine."

Pull a slice of buyers (sharing a feature), tally what they have in common, surface the pattern. Lets the operator find more of who's already working.
Trigger
cron (weekly)
Tools
cortex.aggregate, identity-bridge
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-cohort-ltv-synthesis.sks

Example

Sakura uses this when she's reasoning about which product is your repeat-buyer engine. "Candle-first buyers came back twice as often as ring-first buyers. Year-1 spend: $87 vs $42. Candles are your engine."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-knowledge-graph-same-item-detection
green§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Your hammered brass cuff is on all three marketplaces. Etsy sold 12; eBay 0. eBay's photos are the worst — want me to copy yours over?"

External grounding: knowledge lookup and Loam's shared caches (market-history sources, fee schedules, supplier data). Read once, cached across operators — geography and price history don't move.
Trigger
analysis-pattern
Tools
knowledge entity resolve, cortex.aggregate
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-knowledge-graph-same-item-detection.sks

Example

Sakura uses knowledge lookup to resolve listings across your three marketplaces to the same physical thing. "Your hammered brass cuff is everywhere. Etsy sold 12; eBay 0. eBay's photos are the worst — copy yours over?"

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-pinterest-demand-inventory-gap
green§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Candle searches are up 40% this week — you have zero candle listings. Your Q3 wax-and-wood collection would slot here."

Reads search-trend signals (Pinterest, community signals, search-trend signals). Crosses with your catalog. Surfaces 'this is trending and you have inventory' or 'this is trending and you have nothing to sell.'
Trigger
cron (weekly)
Tools
search-trend signals, trend signals, cortex.aggregate
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-pinterest-demand-inventory-gap.sks

Example

Sakura uses this weekly to catch demand you're not serving. "Candle searches are up 40% this week — you have zero candle listings. Your Q3 wax-and-wood collection would slot here."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-reddit-pinterest-demand-listing-suggester
green§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Five things to draft this week: birthstone rings (community signal up 200), earthy pottery (community signals 3× normal)..."

Reads search-trend signals (Pinterest, community signals, search-trend signals). Crosses with your catalog. Surfaces 'this is trending and you have inventory' or 'this is trending and you have nothing to sell.'
Trigger
cron (weekly)
Tools
community signals, trend signals, cortex.aggregate
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-reddit-pinterest-demand-listing-suggester.sks

Example

Sakura uses this when she's surfacing what to draft next. "Five things to draft this week: birthstone rings (community signal up 200), earthy pottery (community signals 3× normal)..."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-cortex-replay-counterfactual
light purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"At 10% higher Q1 prices, you'd have netted $4,800 instead of $4,210 — but the hammered cuff would have sold 30% less."

Reads your own ledger in Cortex. Never reaches for invented benchmarks. Sakura speaks the answer in plain numbers grounded in your real receipts.
Trigger
operator-asked
Tools
cortex/replay-with-mutations, sakura/cloud-reason (opt)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-cortex-replay-counterfactual.sks

Example

Sakura uses this when you ask "what if I'd done it differently?" She replays your Cortex history with a mutation. "At 10% higher Q1 prices, you'd have netted $4,800 instead of $4,210 — but the hammered cuff would have sold 30% less."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-engram-tax-year-companion
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Etsy fees Q3: $487. That goes on Schedule C line 10. Each receipt available if your accountant wants to verify."

Pulls per-jurisdiction tax rules + your real sales by location. Surfaces the line items your accountant cares about, with receipts attached for verification.
Trigger
event
Tools
cortex.aggregate, engram (pii scope)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-engram-tax-year-companion.sks

Example

Sakura uses this throughout the year so April isn't a scramble. "Etsy fees Q3: $487. That goes on Schedule C line 10. Each receipt available if your accountant wants to verify."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-review-sentiment-finance-impact
light purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Three negative reviews about shipping in week 32; conversion on USPS Ground listings dropped 18% the next two weeks."

Cheap local classifier reads the tone first. Only the genuinely negative messages escalate to cloud reasoning for deeper read. Saves API spend on the everyday-friendly stuff.
Trigger
cron (weekly)
Tools
cortex.aggregate, review-themes-monthly
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-review-sentiment-finance-impact.sks

Example

Sakura uses this when she sees a review-sentiment dip and wants to connect it to revenue. "Three negative reviews about shipping in week 32; conversion on USPS Ground listings dropped 18% the next two weeks." Cause to effect, named.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-fee-leakage-detector
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Effective Etsy fee 12.4% most listings, 21% on bridal — Etsy Offsite Ads kicked in. Three of those sales would have come from your own shoppers."

Pulls per-jurisdiction tax rules + your real sales by location. Surfaces the line items your accountant cares about, with receipts attached for verification.
Trigger
cron (monthly)
Tools
cortex.aggregate, loam/fee-schedule
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-fee-leakage-detector.sks

Example

Sakura uses this monthly to catch Etsy's Offsite Ads quietly taking 15% off the top. "Effective fee 12.4% most listings, 21% on bridal — Offsite Ads kicked in. Three of those sales would have come from your own shoppers."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-cash-flow-forecast-conversational
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Next month projects $3,800–$5,200 gross. If your rent + materials run $3,100, you're covered but not by much."

Estimate how long a thing takes (or how much revenue lands) with honest confidence bands. Borrowed from medical research; we don't pretend to know what we don't know.
Trigger
event
Tools
cortex.aggregate, stl-decompose
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-cash-flow-forecast-conversational.sks

Example

Sakura uses this when you ask how next month looks. "Next month projects $3,800 to $5,200 gross. If rent + materials run $3,100, you're covered but not by much." Real numbers, real range.

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-loam-radio-browser-ambient-context
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Curious — your three best sale days this month were all days the Mali Sahel station was on. About mood, not the station, but noted."

External grounding: knowledge lookup and Loam's shared caches (market-history sources, fee schedules, supplier data). Read once, cached across operators — geography and price history don't move.
Trigger
analysis-pattern
Tools
cortex.aggregate, loam/radio-browser
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-loam-radio-browser-ambient-context.sks

Example

Sakura uses this when she spots a pattern she doesn't want to overclaim. "Curious — your three best sale days this month were all days the Mali Sahel station was on. About mood, not the station. Noted."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-engram-multi-shop-consolidation
pink§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Across three shops: $12,400 gross this quarter. Vintage $4,800, jewelry $5,200, candles $2,400. Vintage is highest-margin at 64%."

Reads your own ledger in Cortex. Never reaches for invented benchmarks. Sakura speaks the answer in plain numbers grounded in your real receipts.
Trigger
event
Tools
cortex.aggregate, engram (hosted)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-engram-multi-shop-consolidation.sks

Example

Sakura uses this when you run multiple shops. She pulls them together via Engram. "Across three shops: $12,400 gross this quarter. Vintage $4,800, jewelry $5,200, candles $2,400. Vintage is highest-margin at 64%."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
cross-finance-google-knowledge-graph-category-margin
green§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.1 Pink + green AI/subsystem (21) man →

"Bridal rings make $87/hour of make-time. Stamped pendants make $12/hour. If you have a Saturday, it's rings."

External grounding: knowledge lookup and Loam's shared caches (market-history sources, fee schedules, supplier data). Read once, cached across operators — geography and price history don't move.
Trigger
cron (monthly)
Tools
knowledge entity resolve, cortex.aggregate
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/cross-finance-google-knowledge-graph-category-margin.sks

Example

Sakura uses this monthly when you ask what's actually paying for itself. She joins knowledge lookup categories with your make-time logs. "Bridal rings make $87/hour of make-time. Stamped pendants make $12/hour. If you have a Saturday, it's rings."

Graph

INPUToperator / ctxTRANSFORMverb callOUTPUTrender / done
deep-finance-mcmc-revenue
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"Posterior: 68% probability you clear $10K this quarter; 95% credible interval $8.4K–$11.7K."

Guess many possible futures with weighted dice, then average them. Each guess uses what we've already seen to nudge the dice; over thousands of throws, the averages converge on a real probability distribution for future revenue — not a point guess, but a range with confidence bands.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-mcmc-revenue.sks

Example

Sakura uses this when you ask "will I clear $10K this quarter?" She runs a Bayesian model over your last 18 months of receipts and tells you the probability honestly: "68% chance you clear it; the 95% range is $8,400 to $11,700." Not a guess — a posterior distribution from your own data.

Graph

DATAyour cortexFITMCMCPOSTERIORcredible bandFORECASTdecisionmethod: MCMC
deep-finance-hmm-buyer-states
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"Five of your loyal-state buyers slid to dormant in May — they all bought during the holiday sale and never came back."

The customer is in some hidden mood (active, dormant, churning) we can't see directly. We watch what they DO buy and when, then infer which mood they're in like detectives. The math finds the hidden states from the visible behavior.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-hmm-buyer-states.sks

Example

Sakura uses this when she notices buyers behaving differently month-to-month. A hidden Markov model finds the loyal/lapsed/dormant states without you labeling them. "Five loyal buyers slid to dormant after the holiday sale and never came back" — she names the slide, you decide whether to email them.

Graph

DATAyour cortexFITHMMPOSTERIORcredible bandFORECASTdecisionmethod: HMM
deep-finance-gp-forecast
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"Next 60 days project $9,200 (95% interval $7,400–$11,000); confidence narrows for week 1, widens for week 8."

Draw the smoothest possible curve through what we've seen, with a fog of uncertainty wherever data is thin. Next week's forecast is sharp; week eight's forecast has a wide fog band. The fog matters as much as the curve.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-gp-forecast.sks

Example

Sakura uses this when you want a forecast that knows its own uncertainty. Gaussian Processes give a confidence band that's narrow up close and widens out — "Next week: $1,800 ± $200. Week 8: $1,400 ± $900." She shows you the cone, not a single line that pretends to be sure.

Graph

DATAyour cortexFITGPPOSTERIORcredible bandFORECASTdecisionmethod: GP
deep-finance-bsts-causal
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)PLAYBOOK man →

"Stopping Google Shopping for two weeks: posterior says you'd have lost $1,200 (99% probability the effect was positive)."

Did the ad cause the spike, or would the spike have happened anyway? We build a parallel-universe model of what sales would have looked like WITHOUT the ad, then measure the gap. Same math NASA uses to know whether a policy actually moved a metric.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-bsts-causal.sks

Example

Sakura uses this when you ask "did stopping Google Shopping cost me money?" She builds a synthetic control of what your revenue would have been with the ads still running, compares it to what actually happened, and reports the gap with a probability attached. "99% probability you lost about $1,200."

Graph

DATAyour cortexFITBSTSPOSTERIORcredible bandFORECASTdecisionmethod: BSTS
deep-finance-vae-listing-embed
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"Your top sellers share a structural feature your bottom 20 lack — same warm-toned background + same caption structure."

Squeeze every listing through a narrow neural funnel that keeps only the features that matter for selling, then look at where your top sellers cluster in that compressed space. Your bottom listings probably sit in a different neighborhood.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-vae-listing-embed.sks

Example

Sakura uses this when your top sellers feel like they share something but you can't name it. A variational autoencoder learns a compressed representation of every listing — photo, caption, tags — and clusters them. "Your top sellers share warm backgrounds and short captions. Your bottom 20 don't."

Graph

DATAyour cortexFITVAEPOSTERIORcredible bandFORECASTdecisionmethod: VAE
deep-finance-survival-sale-time
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"Median time-to-sale for your cuff at $48 is 71 days; 25/75 percentile band $34–$112. Worth renewing."

Borrowed from medical research: estimate how long until a listing 'dies' (sells), with a confidence band. Censored data (still on the shelf) contributes too — we don't pretend it sold at the cutoff.
Trigger
analysis-pattern
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-survival-sale-time.sks

Example

Sakura uses this when you ask "how long should I wait before relisting?" Survival analysis treats time-to-sale like a clinical trial — accounting for the listings still alive without a sale. "Median 71 days at $48. Worth renewing."

Graph

DATAyour cortexFITSurvivalPOSTERIORcredible bandFORECASTdecisionmethod: Survival
deep-finance-topic-reviews
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"This month's reviews cluster on three themes: chain quality (8 mentions), shipping speed (12), packaging (4). Quotes attached."

Cluster reviews by the words they use, but using semantic similarity, not exact word matches. 'Chain broke' and 'clasp came off' land in the same theme. Returns the clusters AND a real example quote for each.
Trigger
cron (monthly)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-topic-reviews.sks

Example

Sakura uses this when your review pile is too big to read. Topic modeling clusters the words people actually use. "Three themes this month: chain quality (8 mentions), shipping speed (12), packaging (4)." She attaches the verbatim quotes so you trust the cluster.

Graph

DATAyour cortexFITLDA/BERTopicPOSTERIORcredible bandFORECASTdecisionmethod: LDA/BERTopic
deep-finance-bayesian-ab-price
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)PLAYBOOK man →

"After 18 views + 3 sales: 72% probability the $40 price is better. Run two more days for a decisive call."

Two prices, watch the buyers. After every sale we update our belief about which price wins. Stop when we're confident enough — no need for the rigid fixed-sample-size test, no need to pre-pick a winner.
Trigger
event (variant test)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-bayesian-ab-price.sks

Example

Sakura uses this when you're testing two prices and don't want to wait forever. Bayesian A/B tells you the running probability that one is better — "72% likely the $40 price wins, give it two more days for a confident call" — instead of demanding a fixed sample size like classical stats.

Graph

DATAyour cortexFITBayesian A/BPOSTERIORcredible bandFORECASTdecisionmethod: Bayesian A/B
deep-finance-causal-forest-ads
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)PLAYBOOK man →

"Promoted Listings worked on your wedding pieces (+18% conversion) but had no effect on gift items. Scope the ads to wedding listings only."

Instead of asking 'do ads work on average,' ask 'do ads work on THIS subgroup.' A forest of decision trees finds the buyer segments where the ad pays off and the segments where it's wasted.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-causal-forest-ads.sks

Example

Sakura uses this when you suspect your ad spend works in some places but not others. A causal forest splits buyers and listings into subgroups and asks "where did this ad actually change behavior?" — "Promoted Listings lifted wedding pieces 18%. Gift items: no effect. Scope the ads."

Graph

DATAyour cortexFITCausal ForestPOSTERIORcredible bandFORECASTdecisionmethod: Causal Forest
deep-finance-mdp-inventory
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)PLAYBOOK man →

"You have 4 cuffs left, sell 1.2/week with σ=0.6, lead time 3 days. Restock at 3 to keep stock-out probability under 5%."

Treat restocking like a chess game: every state (current stock, demand rate, lead time) has a best move. Solve backward from a million possible futures to find the threshold where 'order now' beats 'wait one more day.'
Trigger
analysis-pattern
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-mdp-inventory.sks

Example

Sakura uses this when she's reasoning about restock timing. A Markov Decision Process maps states (stock level, demand rate, lead time) to actions and finds the policy that keeps stock-out probability below your tolerance. "Restock at 3 cuffs to stay under 5% stock-out risk."

Graph

DATAyour cortexFITMDPPOSTERIORcredible bandFORECASTdecisionmethod: MDP
deep-finance-isolation-forest-fraud
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"This order — $1,200 from a buyer averaging $40, shipping to a new country, card flagged for prior chargebacks — review before fulfilling."

Throw every order onto a random-decision-tree obstacle course; the orders that get isolated fastest are the weird ones. No labeled fraud data needed — the algorithm just notices outliers.
Trigger
event (per order)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-isolation-forest-fraud.sks

Example

Sakura uses this on every incoming order, quietly. Isolation forests are good at "this point looks unlike the others" without you defining what fraud means. "$1,200 from a buyer who usually spends $40, new country, card has prior chargebacks — review before fulfilling."

Graph

DATAyour cortexFITIsolation ForestPOSTERIORcredible bandFORECASTdecisionmethod: Isolation Forest
deep-finance-markov-buyer-journey
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)PLAYBOOK man →

"Visit→favorite is shop-average. Favorite→purchase is half the median. Surface shipping cost earlier in the listing — that's your leak."

Each buyer click is a state (visited, favorited, asked-a-question, bought). The transitions tell you where buyers drop off. Identify the leak; fix the listing step that's bleeding conversions.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-markov-buyer-journey.sks

Example

Sakura uses this when she's looking for your specific leak in the funnel. A Markov chain over visit/favorite/cart/purchase finds the step that's half the shop median. "Your favorite-to-purchase is the leak. Show shipping cost earlier — that's the friction."

Graph

DATAyour cortexFITMarkov ChainPOSTERIORcredible bandFORECASTdecisionmethod: Markov Chain
deep-finance-bayesnet-cross-platform
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)PLAYBOOK man →

"Raising Etsy prices 10%: eBay sales of the same item likely drop 4-6% (cross-platform price-comparison effect). Net positive on revenue."

Draw a dependency graph: 'Etsy price' influences 'eBay sales' through 'cross-platform shopper.' Update one node and ripple the consequences. Lets you reason about counterfactuals across marketplaces.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-bayesnet-cross-platform.sks

Example

Sakura uses this when you have the same item on Etsy + eBay + Shopify and want to know how a change on one ripples to the others. A Bayesian network learns the cross-platform dependencies. "Raising Etsy 10%: eBay sales likely drop 4-6%. Net positive."

Graph

DATAyour cortexFITBayes NetPOSTERIORcredible bandFORECASTdecisionmethod: Bayes Net
deep-finance-wasserstein-cohort
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"Your Etsy and eBay customers differ mostly on price tier; geography is similar. Don't serve them the same email."

Earth Mover's Distance: how much 'work' would it take to morph one cohort into another, dirt-pile to dirt-pile? Tells you which two cohorts are genuinely different and on which dimension.
Trigger
operator-asked
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-wasserstein-cohort.sks

Example

Sakura uses this when she's comparing two cohorts and you want "how different, exactly?" Wasserstein distance measures it as a transport cost — the work to morph one distribution into the other. "Etsy vs eBay buyers differ mostly on price tier; geography is similar. Don't email them the same thing."

Graph

DATAyour cortexFITWassersteinPOSTERIORcredible bandFORECASTdecisionmethod: Wasserstein
deep-finance-seq2seq-demand
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)PLAYBOOK man →

"Holiday demand has shifted 11 days earlier each year for three years — December peak this year projects Dec 5, not Dec 16."

A neural network trained on three years of weekly demand learns the shape of seasonality — including the fact that it's been creeping earlier each year. Forecasts the curve, not just the level.
Trigger
cron (nightly, 24+ mo data)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-seq2seq-demand.sks

Example

Sakura uses this when seasonal patterns aren't holding still. A sequence-to-sequence model learns from your last 24+ months and projects forward. "Holiday demand has shifted 11 days earlier each year — December peak this year projects Dec 5, not Dec 16."

Graph

DATAyour cortexFITSeq2SeqPOSTERIORcredible bandFORECASTdecisionmethod: Seq2Seq
deep-finance-crf-refund-labels
deep purple§22. Finance — AI/subsystem + deep-purple cluster (37) · §22.2 Deep-purple ✨ statistical methods (16)SINGLE man →

"This refund tags as {chain-quality, comm-response-slow} — two structured signals, not one cluster. Both worth addressing."

Conditional Random Fields: assign multiple labels to one refund at once ('chain-quality' AND 'slow-response') while respecting that some labels tend to co-occur. Catches the multi-cause cases that flat classifiers miss.
Trigger
event (refund posted)
Section
§22. Finance — AI/subsystem + deep-purple cluster (37)
Canonical
curator/docs/AUTOMATIONS-CANONICAL.md §22-finance-aisubsystem-deep-purple-cluster-37

Scheme source

not-yet-implemented — no cart file at scheme/carts/…/deep-finance-crf-refund-labels.sks

Example

Sakura uses this on each posted refund to extract structured signals. A conditional random field labels the refund narrative — "this is two signals, not one cluster: {chain-quality, comm-response-slow}" — so the next month's report is built from facts, not vibes.

Graph

DATAyour cortexFITCRFPOSTERIORcredible bandFORECASTdecisionmethod: CRF

Regenerate: python3 ~/code/lacuna-labs/scripts/build-automations-html.py
Source of truth: curator/docs/AUTOMATIONS-CANONICAL.md