A spreadsheet that doesn't break
The long spreadsheet is checked first: thousands separators, mixed signs, regions with no value, field names with spaces. A bad spreadsheet is rejected as a whole.
Deliverable: preparar_dados_graficos.py and manifestOcto for data and charts in Illustrator
Illustrator draws graphs from the Graph Data window and generates pieces in series with the Variables panel, which has its own type for graph data. Octo prepares the spreadsheet so the import doesn't break, exports each data set without overwriting anything, generates maps by value range with mapshaper and checks the drawn number against the spreadsheet. The number, how the chart reads and the final artwork stay with people.
Six possible deliverables, drawn from the assessment. None overwrites a file, all check the result by content, and all go to review by whoever is accountable for the number and the piece.
The long spreadsheet is checked first: thousands separators, mixed signs, regions with no value, field names with spaces. A bad spreadsheet is rejected as a whole.
Deliverable: preparar_dados_graficos.py and manifestOne file per region in the Graph Data window layout: empty corner, series in the first row, categories in the first column.
Deliverable: dados/<region>.tsvCSV with text, image (@), graph (%) and visibility (#), with the data set name following the piece's pattern, which becomes the file name in the batch.
Deliverable: checked conjuntos_graficos.csvThe script displays each data set, exports SVG and PNG with the data set name, doesn't overwrite and doesn't save the template.
Deliverable: exportar_conjuntos.jsx and logmapshaper joins the spreadsheet to the boundaries, simplifies, classifies and writes SVG with an id and data-* on each region, plus a classes CSV.
Deliverable: mapa_coropletico.sh and classes.csvSVG label against the spreadsheet, slices against 100, region color against the class, missing and extra. A mismatch goes back to whoever answers for the number.
Deliverable: conferir_numeros.py and conferencia.csvThe same Octo cycle, applied to charts, infographics and maps. Each arm has a narrow role; the people approve the number, the reading and the piece.
Which pieces with charts go out every month, from which spreadsheets, on which Illustrator version, and who touches the number along the way.
Long spreadsheet, data files per chart, variable data set, map classes and naming pattern, versioned.
Input spreadsheet read-only, separate output, nothing overwritten, spreadsheets with personal names flagged (LGPD).
Native graph with variables, a chart generated outside as SVG, or a map through mapshaper, depending on the piece and the volume.
Scripts with the source of each rule noted: thousands, sign, CSV format, data set name.
Label against spreadsheet, slices against 100, color against class. "The batch finished" is not a check.
Checked folder and a manifest with sha256. Delivery to the printer or the client is approved by a person.
Spreadsheet version, map boundaries and classes, and who approved each piece.
Octo checks whether the drawing matches the spreadsheet. It does not decide whether the spreadsheet is right, choose the chart's scale or approve map boundaries.
The criteria Octo uses to choose, with the documented limit of each path.
| Task | Path | Note |
|---|---|---|
| A chart that looks like the brand | Graph tool and column design | Don't ungroup; gradient only at the end |
| Same chart, different numbers per piece | Variables with graph data | One data file per document; fields without spaces |
| Export one piece per data set | Batch with the Data Sets source | Name by number or by data set name |
| Export SVG and PNG with a log | JSX script with dataSets[i].display() | Illustrator open, designer present |
| Swap the numbers by script | Variables | GraphItem doesn't expose the data in the reference read |
| Complex chart, identical across several formats | matplotlib or Vega-Lite as SVG | Becomes a drawing in Illustrator; updating means regenerating |
| Map of regions by range | mapshaper | Code as text; keep-shapes when simplifying |
| Natural-language request | AI assistant and MCP server | Illustrator (Beta) only, October 2026 |
| Data merge on the server, no workstation | Illustrator API (Firefly Services) | Enterprise route, with access through an Adobe representative; one file per CSV row |
Three steps. Each one only makes sense after the previous one has shown results on your team.
A proposal, not a promise
Octo checks the pieces that already go out, without changing how you draw: just name the labels.
Template with variables, a prepared spreadsheet and export per data set with standard names.
Maps by range and complex charts generated from a versioned spec, finished by the designer.
Each point below has a source published by the vendor, the project or the responsible body. The sources are in the next section.
6
points with a published source, each with its reference shown alongside.
id-field and svg-data (data-* attributes) and classifies with -classify.Source: mapshaper, command referenceOcto prepares everything, but it does not sign. The document of record stays with whoever is accountable for it.
Surveys, calculates, organizes and generates the documents: files, artboards, proofs and reports.
Deliverable: material ready to checkThe client or the art director checks what Octo delivered before approving. If something doesn't add up, it goes back to Octo with the correction.
Step: review by the approverOcto does not approve the artwork. Artwork carries no legal signature: approval of the artwork and the proof stays with the client or the art director.
Approval: client or art directorIllustrator Help pages on graphs, variables and batch, the Adobe developer blog, the scripting reference (community copy) and the mapshaper, Vega-Lite and matplotlib documentation, consulted on Oct 31, 2026.
The assessment starts by checking a piece that has already gone out: the labels against the spreadsheet that produced it. You get what matched, what diverged, what was missing and the questions only your team can answer, and you decide with that in hand.