Skip to main content
Version: Next

Tag filtering

Tags apply to records (rows) and are used to export subsets: test data, rows visible only on a given branch, temporary drafts, and so on. This is a different dimension from field/table group (structural trimming).

How to mark tags

Data sourceSyntax
ExcelFill the tag in the first column of the data row (the first column of the header area is often empty or a comment)
json"__tag__": "dev"
lua__tag__ = "dev"
xml<__tag__>dev</__tag__>
yaml__tag__: dev

Excel example

##varidname
##typeintstring
##Item IDName
1Gold
##2Draft row
test3Test only
DEV4Dev build
5Shipping item
RowFirst columnEffect
id=1, 5emptyUsually always exported (in exclude mode)
id=2##Never exported (special tag)
id=3testRemoved when --excludeTag test
id=4DEVTag names match case as written

json example

{
"__tag__": "dev",
"id": 3,
"name": "Test only"
}

Special tags

tagMeaning
##Permanent comment; excluded from every export
uncheckedValidators skip this record (use sparingly)

A row may have a business tag; ## is related to “comment rows whose first column starts with ##” in the header rules—see Excel basics.

CLI filtering

# Exclude: rows tagged test are not exported (untagged rows are usually still exported)
-e test
# or
--excludeTag test

# Include only: only rows whose tag is empty or ship (mutually exclusive with exclude)
-i ship
# or
--includeTag ship
ModeTypical use
--excludeTag testStrip test rows from release builds
--includeTag shipWhitelist: export only rows with the given mark

--includeTag and --excludeTag cannot be used together.

Difference from group

grouptag
Applies toTables / fields (whether a column goes to a given end)Records (whether a row is exported)
Config locationschema / ##groupFirst column of data rows / __tag__
CLI-t client and similar to select target-e / -i

They can be combined: trim fields by target first, then trim rows by tag.

Practical tips

  • Use a consistent tag for test-only rows: test / dev, and add -e test in CI release generation.
  • Mark permanently retired rows with first-column ##; do not rely on “deleting numbers and pretending they are gone.”
  • Use unchecked only for transitional dirty data—not as a long-term convention.