StribogDeck 1.0.0 manual
StribogDeck compares two exported versions of a tabletop card list. You get playtester patch notes, the exact rows and copy counts to reprint, and the old printed copies to pull. It runs in one HTML file in your browser, offline. It does not draw cards, lay out sheets or make PDFs. Keep using your own card generator for that.
1. Before you start
- A desktop browser. StribogDeck 1.0.0 was tested only with Google Chrome 152 on Ubuntu Linux. Other browsers and systems are untested.
- Unzip
StribogDeck-1.0.0.zipanywhere, for example into your Documents folder. There is nothing to install and no account. - Your card list saved as CSV or TSV, one row per card, with a header row. Each card needs a stable card ID that stays the same between versions, for example
EO-04.
Open StribogDeck.html (double-click it, or drag it onto a Chrome window).

2. First result with the Ember Orchard example
Ember Orchard is a fictional prototype deck made for this manual. v0.7 has 24 cards (38 printed copies), v0.8 has 25 cards (39 copies).
- Press Load the Ember Orchard example. Both slots show a green tick: 24 cards and 25 cards. The version labels become
v0.7andv0.8. - In Match cards, the suggestions are: Card ID column
id, Quantity columnqty. Thenotesfield shows a hint but is still compared. Tick Ignore next tonotes, because Ember Orchard's notes are designer notes that are not printed. - Press Compare versions.
- Under Possible renames, press Confirm rename for
EO-14 → EO-27(the same Coalberry Bush card was renumbered).

notes ignored.Expected result: 2 added, 1 removed, 3 changed, 1 copies only, 1 renamed, 18 unchanged. The reconciliation line reads Printed v0.7 deck 38 − 9 pulled + 10 printed = 39 copies with a green tick. EO-05 is unchanged and marked ignored-field change only: only its notes changed, so it is not reprinted.

Press Download handoff ZIP. Chrome saves stribogdeck-v0.7-to-v0.8.zip. Inside:
| reprint.csv: 7 rows, 10 copies | pull-list.csv: 5 rows, 9 copies |
|---|---|
| EO-02 more copies 1 · EO-04 changed 2 · EO-11 changed 1 · EO-17 changed 2 · EO-25 added 2 · EO-26 added 1 · EO-27 renamed 1 | EO-04 changed 2 · EO-09 removed 2 · EO-11 changed 1 · EO-14 renamed 1 · EO-17 changed 3 |
3. Use your own card sheet
- Export the version you printed last. In most spreadsheet apps this is File › Download › CSV or Save as › CSV UTF-8. Export again after your edits. Give the files version names, such as
mydeck-v0.3.csvandmydeck-v0.4.csv; StribogDeck takes the label from av…part of the file name. - Drop each file on its slot, or click the slot and choose the file. Keep the original files; StribogDeck only reads them.
- Check the Card ID column. It must identify the same card in both versions. IDs are matched exactly; there is no fuzzy matching.
- Choose Copies per card: your quantity column, or No quantity column: one copy per row.
- Tick Ignore only for fields that are not printed on the card. Ignored fields are listed in every output.
- Leave Spacing on Exact unless spaces and line breaks are not meaningful in your sheet. Ignore spacing trims each value and treats every run of spaces, tabs and line breaks as one space.
- Press Compare versions. If you change any setting afterwards, press it again.
4. Supported files and limits
| Accepted | CSV or TSV text in UTF-8, with or without a BOM. Delimiter auto-detected (comma, semicolon, tab) or chosen in the slot. Quoted cells can contain the delimiter, doubled quotes and line breaks. CRLF or LF line endings. |
|---|---|
| Limits | 5 MB per file, 5,000 card rows, 100 columns, 10,000 characters per cell, quantities 0–999 (whole numbers). |
| Blocked with an explanation | Invalid UTF-8 or UTF-16 files. Unbalanced quotes. Rows with the wrong number of cells. Empty or repeated column names (including ones that differ only in capitals or spaces). Missing or repeated card IDs. Invalid quantities. Columns named stribog_version, stribog_reason, print_copies or pull_copies. |
| Not supported | XLSX/ODS workbooks (export CSV first), images, generator project files, online spreadsheets. |
Rows whose cells are all empty are skipped and counted. Column names that differ only in capitals or surrounding spaces are matched and reported. A column that exists in only one version is compared as an added or removed field; ignore it if it is not printed.

5. Reading the review
- Tiles count cards: Added, Removed, Changed (a compared field differs), Copies only, Renamed (confirmed), Unchanged.
- Reconciliation: previous copies − pulled + printed = new copies. A green tick means the printed deck will match the new version after you print and pull.
- Possible renames pair one removed and one added card whose compared fields are identical. Nothing is paired unless you confirm it. When several identical cards could match, nothing is suggested, and a warning explains why.
- Check these lists warnings, for example: header-case matches, columns in one version only, cells starting with
= + - @, cards with 0 copies, and changes that are only spacing. - Use the filter chips (Changes, To print, To pull, …) and the search box. The ZIP always contains every card.


6. Export, print and reopen
Download handoff ZIP saves stribogdeck-<previous>-to-<new>.zip. It is never written next to your source files unless you choose that folder.
| patch-notes.html / .md | Playtester notes: Added, Removed, Changed (old → new, word differences in HTML), Copies only, Renamed, then the print-and-pull totals. Text from your files is escaped, so card text cannot run as code or break the Markdown. |
|---|---|
| print-and-pull.html | Your checklist with tick boxes: what to print from reprint.csv and what to pull from the printed deck, plus the deck check. |
| reprint.csv | New-version rows to print, in the new file's order. The original columns and cell text are unchanged, followed by stribog_version, stribog_reason (added, changed, renamed, qty_increase) and print_copies. The delimiter, BOM and line ending follow your new file. |
| pull-list.csv | Previous-version rows to remove, with pull_copies and the reason (removed, changed, renamed, qty_decrease). |
| manifest.json | Receipt: input file names, sizes and SHA-256, labels, your confirmed settings and renames, counts, totals, warnings and the SHA-256 of each output. |


print_copies copies of each row, not the quantity column. For example, EO-02 keeps qty 3 but needs only 1 new copy. Import into nanDECK, Dextrous or any other generator has not been verified; only standard CSV readers (Python csv) were checked. If you open the CSV in a spreadsheet, cells starting with = may be shown as formulas there. The file itself keeps your exact text.Print patch notes opens your browser's print dialog for patch-notes.html. To redo a comparison later, load the same two CSV files again; manifest.json records the settings you used.
7. How copies are counted
| Card | Pull | |
|---|---|---|
| Added | all new copies | — |
| Removed | — | all old copies |
| Changed (any compared field) | all new copies | all old copies |
| Copies only, increased | new − old | — |
| Copies only, decreased | — | old − new |
| Confirmed rename | all new copies | all old copies |
| Unchanged, or only ignored fields changed | — | — |
Rows with 0 copies to print or pull are mentioned in the notes but left out of the CSVs. Without a quantity column every row counts as one copy.
8. Troubleshooting
| Message | What to do |
|---|---|
| ID "…" is used twice: row A and row B | Give each card a unique ID in your sheet (row numbers match the spreadsheet, header = row 1), export again. |
| row N has no card ID | Fill in the ID, or delete the stray row. |
| quantity is not a whole number / is blank / is over 999 | Use whole numbers 0–999, or choose No quantity column. |
| not valid UTF-8 / UTF-16 | Save as CSV UTF-8 and load again. |
| Rows with the wrong number of cells | Usually the wrong delimiter: choose it in the slot's Delimiter menu. Otherwise check unquoted delimiters in that row. |
| A quoted cell … is never closed | A cell has an opening quote without a closing one. Fix it in the sheet and export again. |
| Everything shows as changed | Check the Card ID column, a column present in one version only, or spacing differences (choose Ignore spacing if they do not matter). |
| Nothing downloads | Allow downloads for local files in Chrome and check the Downloads folder. |
9. Privacy
Everything happens inside the browser tab. StribogDeck makes no network requests (its page blocks them with a content security policy), has no accounts or analytics, and never changes your source files. The only thing written is the ZIP you choose to download.
10. Uninstall
Delete the unzipped StribogDeck folder. Nothing else was installed. Downloaded handoff ZIPs stay where you saved them.
11. Tested environment and limits
- Tested: Google Chrome 152.0.7977.82 (headless, fresh profile, network forced offline) on Ubuntu 22.04 Linux, x86-64, at 1280 px and 360 px wide. Windows, macOS, Firefox, Safari and touch devices are untested.
- Checked by automated tests: the Ember Orchard ledger against an independent Python calculation; semicolon/BOM/CRLF files; hostile HTML and Markdown text; duplicate and missing IDs; invalid quantities; the row, cell and size limits; ZIP integrity with
unzip -tand Pythonzipfile; unchanged inputs; no network requests. - No card generator import (nanDECK, Dextrous, Squib, Component Studio, Tabletop Simulator or others) has been verified. No accessibility conformance is claimed beyond keyboard operation and visible focus.
- There is no altered "spreadsheet-safe" CSV option in 1.0.0. Values are always written exactly.
StribogDeck 1.0.0 · Ember Orchard and Tidewatch are fictional decks written for this product.