feat(linkedin-studio): N6 — forslags-lag i trends (angle/targetLevel/rationale/relatedIds + selected + --ids + F7/F9-felt actionability/verdict/readerQuestion/painPoint/saturation) [skip-docs]
Artikkelforslaget blir en persistert entitet (steg 2, A1-4) og godkjenningen får
et hjem (steg 3, A1-7) — før dette genererte agenten vinkel/begrunnelse som ble kastet.
Åtte additivt-valgfrie felt på TrendRecord/TrendInput/TrendItem:
- Forslag (A1-4/A1-5): angle · targetLevel (fritekst, brukerdefinert spenn — aldri enum) ·
rationale · relatedIds[] (flerkilde).
- F7 leser-side: actionability {formulated, note?} (N7-bånd-cap-gaten leser `formulated`) ·
verdict BÆRENDE/STØTTE/NYHET (lukket mekanisme-vokab).
- F9 leser-side: readerQuestion · painPoint · saturation (N7.5-sveipet fyller dem).
Ingen schema-bump: feltene er additivt-valgfrie, ingen record trenger migrering →
SCHEMA_VERSION forblir 4 (loadStore Math.max håndterer det). First-sight-persistering
(re-capture unionerer topics + re-scorer kun; klobrer aldri en triagert vinkel).
Validering: typede felt (verdict/actionability) feiler hardt ved malformert input;
fritekst/id-liste normaliseres lempelig (summary/topics-idiomet).
Livssyklus: TrendStatus += "selected" → new→selected→acted|skipped. Ny select-verb +
--ids-batch (act/skip/reset/select); partiell suksess = exit 0 + miss-rapport, all-miss = exit 2.
setStatusMany(): ren batch-mutasjon, per-id found/notFound.
Brief: forslagsfeltene rendres per kandidat (detaljert i topp-treff, kompakt token i bullets) +
ny «🚧 I produksjon»-seksjon (selected=valgt + acted=skrevet), pillar-uavhengig, deterministisk
sortert. selected/acted forlater arbeidskøen men vises i produksjons-boardet.
commands/trends.md Step 5 oppgradert: triage → Velg (select) / Skip, batchet per verb (--ids).
Trends-suite 245→266 (ny floor, +21 N6-tester). To eksisterende tester oppdatert for den
endrede brief-kontrakten (acted vises nå i I produksjon; ranking-descriptoren ekskluderer selected).
tsc rent. Roundtrip bevist: capture m/ alle felt → query → brief rendrer feltene → select → I produksjon.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S7SQpXJpBSNvpWaTNq1kWZ
This commit is contained in:
parent
bb0725af66
commit
65b60337fe
9 changed files with 732 additions and 33 deletions
|
|
@ -4,7 +4,7 @@ description: |
|
|||
Run a trend discovery pass over the user's own content pillars and source list:
|
||||
delegate the scan to the trend-spotter agent, make sure kept candidates are persisted
|
||||
to the trend store (dedup) and the dated morning brief is written, then return a
|
||||
triage-ranked candidate list the user resolves per id (act/skip). Default scoring mode
|
||||
triage-ranked candidate list the user resolves per id (select/skip, batched). Default scoring mode
|
||||
is long-form (chronicle/newsletter material); `--mode kortform` overrides for feed posts.
|
||||
Use when the user wants a discovery pass, a trend scan, or a morning-brief refresh.
|
||||
Triggers on: "linkedin trends", "trend discovery", "discovery pass", "run a trend scan",
|
||||
|
|
@ -107,19 +107,23 @@ Resolve the top of the queue now instead of leaving it as homework. For the cand
|
|||
top bands (Immediate + High; cap at 8), use AskUserQuestion — one question per candidate, up
|
||||
to 4 candidates per call, options:
|
||||
|
||||
- **Act** — writing about it now/soon: mark handled so the brief stops re-surfacing it
|
||||
- **Skip** — not for me: same effect, opposite verdict
|
||||
- **Velg** — you'll write about this: mark `selected`, moving it onto the brief's "I produksjon"
|
||||
board (valgt) so the queue stops re-surfacing it while it's in progress
|
||||
- **Skip** — not for me: mark `skipped` (dropped from the queue)
|
||||
- **Leave** — keep it in the queue untouched
|
||||
|
||||
Then apply each decision through the store CLI, one call per resolved id:
|
||||
Then apply the decisions through the store CLI. **Batch by verb** — collect all the "Velg" ids
|
||||
and all the "Skip" ids and resolve each set in ONE call (ten candidates ≤ two calls):
|
||||
|
||||
```bash
|
||||
CLI act --id <id> # or: skip --id <id>
|
||||
CLI select --ids <id1,id2,id3> # everything chosen this pass
|
||||
CLI skip --ids <id4,id5> # everything rejected this pass
|
||||
```
|
||||
|
||||
"Leave" means no call. Finish with a one-line summary: N acted, N skipped, N left in queue.
|
||||
(The CLI currently takes one `--id` per call; a `selected` status and `--ids` batching are
|
||||
planned upgrades — keep decisions per-id so this step absorbs them without contract change.)
|
||||
Single-id form (`--id <id>`) still works for a one-off. "Leave" means no call. A partial batch
|
||||
(some id unknown) still applies the matches, reports the misses, and exits 0. Finish with a
|
||||
one-line summary: N valgt, N skipped, N left in queue. (`act` — already written — and the
|
||||
auto-`act` when an edition reaches scheduling arrive with the N7 trend→newsletter bridge.)
|
||||
|
||||
## Step 6: Write the last-run marker (skip on `--dry-run`)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue