Lacuna/Labs
l0-suggest-tags
pink
#152 / 601

NAME

l0-suggest-tags — Proposes 13 tags from title + description.

SYNOPSIS

id l0-suggest-tags tier pink section §7. Pink — Sakura local (65 baseline, 131 post-matrix) trigger event tools update_listing source carry-forward

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.

Proposes 13 tags from title + description.

MECHANISM

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / esc
;;~ 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

EXAMPLES

Example forthcoming — docs/automations/examples.json entry editable in place.

TIER

pink
Sakura local 8B · free · on-device

FITNESS

Ready

Fits any shop today — this one has no sample-size floor.

SEE ALSO

HISTORY

canonical source: curator/docs/AUTOMATIONS-CANONICAL.md · §7-pink-sakura-local-65-baseline-131-post-matrix
last regenerated: 2026-06-05 20:31 UTC (mechanical — edits land in the MD or sidecars, not here)

KNOWN BUGS

(none recorded — flag in AUTOMATIONS-CANONICAL.md or open an issue against the cart file)