nuvelics story
Usage, options and details of the nuvelics story commands.
nuvelics story dismiss [id]
Dismiss a story element (quote, archive asset, UGC post or picture), so outputs stop using it
--kind <quote|mam-asset|ugc-post|media>— Element kind: quote, mam-asset, ugc-post or media--original <text>— With --kind quote: the quote's original text, as story get prints it--mam-config-id <id>— With --kind mam-asset: the MAM connection the asset was surfaced through--item-id <id>— With --kind mam-asset: the archive item ID--post-url <url>— With --kind ugc-post: the URL of the UGC post--dismiss-key <key>— With --kind media: the picture's dismissKey, as story get prints it
nuvelics story enrichment [id]
Get a story's enrichment progress
nuvelics story enrichment-summary
Summarize enrichment runs over time
Aggregates the caller's own org's enrichment runs by day or month, optionally split by newsdesk.
nuvelics story enrichment-summary --bucket day nuvelics story enrichment-summary --bucket month --group-by newsdesk
--filter <field.op=value>— Filter: field.op=value (repeatable)--bucket <day|month>— Time bucket: day or month--group-by <field>— Split each bucket by this dimension
nuvelics story get [id]
Get a story by ID
nuvelics story list
List stories
Use --filter, --limit, --all, and --cursor to control which stories are returned.
--filter <field.op=value>— Filter: field.op=value (repeatable)--limit <n>— Maximum total stories to fetch (default 100)--all— Fetch all pages without a count bound--cursor <cursor>— Start from this pagination cursor--source <pitch|nrcs>— Only stories minted from this origin: pitch or nrcs
nuvelics story outputs accept [id] [outputId]
Keep the pending draft, replacing the article
Accepts the draft a regeneration left pending. The article it replaces is kept one deep, and the content version advances, so a filed push can be repeated. Fails when no draft is pending.
nuvelics story outputs add [id]
Request a new output for a story
Returns immediately with a pending output; generation runs asynchronously --
poll story outputs get to see it finish.
--template-id <id>— Output template to generate from
nuvelics story outputs check [id] [outputId]
Request a claim check of a story output
Queues a check of the article's claims against the story's material. It returns
at once with the output as it stands, so claim check reads pending: poll
story outputs get for the result. --candidate checks the pending draft instead
of the article, and is refused when no draft is pending. A request decides
nothing; it only spends a check.
--candidate— Check the pending regenerated draft instead of the article
nuvelics story outputs delete [id] [outputId]
Delete a story output (irreversible)
Pass --yes to confirm. This action is irreversible.
--yes— Confirm irreversible deletion
nuvelics story outputs discard [id] [outputId]
Throw away the pending draft, leaving the article alone
Discards the draft a regeneration left pending. The article and any edit on it are untouched, and the output is free to regenerate again. Fails when no draft is pending.
nuvelics story outputs edit [id] [outputId]
Replace a story output's draft content
All four fields are required: an edit replaces the whole draft, not one field of
it. --body-file reads the article body from a file. --images-file is optional: a
JSON object with featuredImage ({photo, credit, alt}, or null to remove it)
and/or images ([{photo, credit, alt, caption}], placed by  lines
in the body); a field it leaves out, or no file, keeps the stored images, but an
image whose line the body drops is removed. A photo new to its place must be one
of story outputs photos, and takes its credit from there; at most 5 inline
images. --content-version is the contentVersion the draft was edited against,
from story outputs get; the save is refused with a 409 if the article changed
since. A social post takes --text, and --media-file (a JSON array of its cards
and videos, the whole media list, as story outputs photos refs and
social-layouts list them) when the post has media: the edit is refused if a
post with cards is sent without them. A short-form video takes --storyboard-file
instead of the article fields: a JSON file of the whole storyboard (2 to 40
scenes), each scene with durationMs (500 to 60000), kind (title, point, quote or
end), caption and voiceover (null when none).
--headline <text>— Article headline--standfirst <text>— The dek/subhead--byline <text>— Byline text (empty string when the template asks for none)--body-file <path>— Path to a file holding the article body (markdown)--storyboard-file <path>— Path to a JSON file holding a short-form video's storyboard, {"scenes": [...]} (replaces the field flags above)--text <text|->— A social post's whole text (replaces the article fields above)--media-file <path>— Path to a JSON file holding a social post's whole media array (cards and videos), sent with --text--images-file <path>— Path to a JSON file holding an article's featuredImage and/or images; what it leaves out is kept--content-version <n>— The contentVersion this draft was edited against
nuvelics story outputs get [id] [outputId]
Get one story output by ID
nuvelics story outputs list [id]
List a story's outputs
nuvelics story outputs photos [id] [outputId]
List the photos a social post's cards may show
Prints each candidate's index, source, credit, usage terms and size. Under -o
json the candidates carry the ref a card's photo takes in the --media-file
of story outputs edit.
nuvelics story outputs push [id] [outputId]
File a story output into a CMS connection as a draft
Creates an unpublished draft; a human presses publish in the CMS. One push per connection per content version, so a regenerated or edited article can be filed again.
--cms-config <id>— CMS connection to file into (find one withcms-config targets)
nuvelics story outputs regenerate [id] [outputId]
Regenerate a story output
--instructions steers this one run only. The new draft lands beside the article
as a pending draft, not over it: keep it with story outputs accept or throw it
away with story outputs discard.
--instructions <text>— One-off steering for this run only
nuvelics story outputs render [id] [outputId]
Render a social post's cards to images
Queues every card of the post to be drawn as an image at its template's still
format, and prints the renders as they stand: the work is asynchronous, so they
read queued. Poll story outputs renders until each is ready, then fetch the
images with story outputs renders download. Nothing renders on its own: run
this again after an edit to refresh the files. Refused with a 409 while a render
or a publish of the post is in flight, and with spend_cap_reached while the
org's paid work is stopped. It makes private files and posts nothing.
nuvelics story outputs renders [id] [outputId]
List a social post's rendered card images
Prints each card's format, state and file (an asset id; story outputs renders download saves the images locally). A state of outdated means the post or its
design changed since the file was drawn, and expired means the file has aged
out; both are cleared by story outputs render. A re-render in flight or a
failed one keeps the previous file.
nuvelics story outputs renders download [id] [outputId]
Download a social post's rendered card images
Saves each card's image as <output-id>-card-<n>.png in --dir (default: the
current directory); n is the CARD number story outputs renders prints, counted
from 1. --card saves just that card and fails if it has no file. Files are kept
for 7 days; cards with no file or an expired one are skipped, and an outdated
file is saved but marked: story outputs render refreshes both. Refuses to
overwrite a file unless --force, checked before anything is downloaded.
--card <n>— Download only this card number, counted from 1--dir <path>— Directory to write into (default: current directory)--force— Overwrite files that already exist
nuvelics story photos add ...
Attach photo files to a story
Takes the story id and one or more image files (JPEG, PNG or WebP, up to 20 MiB each), uploads each and attaches it as a candidate for the story's social posts. Every file is checked before the first upload. --credit and --caption apply to every file given; an empty value means none. A file that fails does not stop the rest; the command prints each file's outcome and exits non-zero if any failed. After a partial failure, retry only the failed files (listed last, and as retryFiles under -o json): running the same command again attaches the others a second time. It asks for no caption suggestion.
--credit <text>— Credit line shown with each photo, e.g. the photographer (max 200 characters)--caption <text>— What each photo shows (max 500 characters)
nuvelics story photos ls [id]
List the photos attached to a story
Prints each photo's asset id, size, credit, caption and who uploaded it. Under
-o json each photo also carries a short-lived previewUrl.
nuvelics story photos rm [id] [assetId]
Remove a photo from a story
Pass --yes to confirm. Cards that show the photo are drawn without one afterwards.
--yes— Confirm removal
nuvelics story push [id]
Push a story to an NRCS connection
--nrcs-config <id>— NRCS connection ID to push to (find one withnrcs-config targets)
nuvelics story reenrich [id]
Request re-enrichment of a story
nuvelics story restore [id]
Restore a dismissed story element, with the flags used to dismiss it
--kind <quote|mam-asset|ugc-post|media>— Element kind: quote, mam-asset, ugc-post or media--original <text>— With --kind quote: the quote's original text, as story get prints it--mam-config-id <id>— With --kind mam-asset: the MAM connection the asset was surfaced through--item-id <id>— With --kind mam-asset: the archive item ID--post-url <url>— With --kind ugc-post: the URL of the UGC post--dismiss-key <key>— With --kind media: the picture's dismissKey, as story get prints it