← All ivy-agents
IVYXSTUDIO · IVY AGENT
S

Social report

ivy.agent.social-report · v0.1.0

ivyx

Renders a brand's period report from the fold IVYX Social hands over (the pulse with its months, the plan kept, the best posts): the charts as SVG, a cover card, packed as kind deliverables that IVYX Social keeps with the run. No model, no network.

Steps

In the order the agent's file lists them, each with where its inputs come from and the values the file fixes. A branch or a loop is a step too.

  1. 01
    The report as chart rows and a cover
    ivy.node.report-rows

    Turns IVYX Social's period report (the pulse with its months, the plan kept per account, the best posts) into the chart rows the chart node draws and the cover card's spec.

    takes
    report from the agent's input
    client from the agent's input
    brand from the agent's input
    color from the agent's input
    Ivy Node
  2. 02
    Draw the charts
    ivy.node.design-chart-svg

    Draws bar or line charts of rows as SVG, one per chart asked for: axes with nice ticks, labels, a legend, the values on the bars.

    takes
    charts from step 1
    Ivy Node
  3. 03
    Draw the cover
    ivy.node.design-svg-card

    Draws a social post, a poster or a banner as SVG from a spec (headline, subline, cta, palette, layout, brand) in the sizes asked for.

    takes
    spec from step 1
    name_prefix from the agent's input, client
    set
    sizes ["1200x628"]
    Ivy Node
  4. 04
    Pack the files
    ivy.node.design-pack

    Gathers the files the steps before it made into one answer of kind deliverables (request, client, service, brief, the spec, the files with their bytes).

    takes
    files_a from step 2, files
    files_b from step 3, files
    spec from step 1
    request_id from the agent's input
    client from the agent's input
    returns
    kind, request_id, client, brief, spec, files, count
    Ivy Node

What it touches

Collected from what each of its nodes declares, plus the model call when a step is a model turn. A declaration is the author's statement, and it is what policy rules select on.

Its nodes declare no side effects.

Inputs

FieldTypeDescription
firmstringThe firm's slug in IVYX Social; the destination routes the delivery by it.
clientrequiredstringNot declared
request_idstringThe report's id; the key that keeps one request from running twice.
reportrequiredobjectThe report as IVYX Social's GET …/report answers it.
brandstringThe name on the cover.
colorstringThe accent colour.

Outputs

FieldTypeDescription
kindrequiredstringdeliverables
request_idstringNot declared
clientstringNot declared
briefstringNot declared
specobjectNot declared
filesrequiredarrayNot declared
countrequiredintegerNot declared

Tests

2 of 2 test cases passed on Oct 25, 2026, in the publisher's own environment, before this version was published. The registry keeps that record; it does not run the cases again.

Requires: python:3.9

  • october

    A month's report is its two charts and a cover, three SVG files.

    given
    firm ivyx
    client IVYX
    request_id case-report-1
    report {"client":{"name":"IVYX"},"window":{"from":"2026-09-25","to":"2026-10-25"},"pulse":{"followers":{"value":4173},"month...
    expects
    kind equals deliverables
    count equals 3
    request_id equals case-report-1
    files.0.mime equals image/svg+xml
  • empty-report

    A report with nothing in it is the cover alone.

    given
    firm ivyx
    client IVYX
    report {}
    expects
    kind equals deliverables
    count equals 1