Table Schema (two layers: index vs Appendix)
Tables are not decorations; they are compression.
A common failure mode in this pipeline: the first table that gets generated looks like an internal index. So we separate tables into two layers:
- •
outline/tables_index.md(internal)
- •purpose: coverage/debugging + fast evidence scan
- •allowed to be more exhaustive
- •should NOT be inserted into the paper
- •
outline/tables_appendix.md(reader-facing)
- •purpose: publishable survey tables (clean layout + high information density)
- •can be inserted into the final PDF as Appendix
This skill designs both layers before filling.
Default mode: semantic (LLM-first)
Treat this as a design task, not running a script.
If a column cannot be filled from existing evidence packs without guessing, the schema is wrong.
Roles (use explicitly)
Table Designer (reader lens)
Mission: choose tables that answer reader questions, not pipeline questions.
Do:
- •make each table answer one question
- •keep tables small enough to fill (two good tables beat one impossible mega-table)
Avoid:
- •internal/log-style tables inside the paper
- •column labels that only make sense inside this repo
Evidence Steward (fillability)
Mission: refuse schemas that require invented facts.
Do:
- •map every column to concrete upstream fields
- •reject columns that would force long paragraph cells
Avoid:
- •TODO columns
- •placeholders ("TBD", "...", "(placeholder)")
Workflow (explicit inputs)
- •Use
GOAL.mdto keep the reader question and scope stable. - •Use
outline/outline.ymlto align table row units with the paper structure. - •Use
outline/subsection_briefs.jsonlto ground table dimensions/axes in the approved structure. - •Use
outline/evidence_drafts.jsonlto ensure every planned column is fillable without guessing.
Inputs
- •
outline/outline.yml - •
outline/subsection_briefs.jsonl - •
outline/evidence_drafts.jsonl - •Optional:
GOAL.md
Output
- •
outline/table_schema.md
Non-negotiables (schema contract)
- •Minimum definitions:
- •Index tables: >=2
- •Appendix tables: >=2
- •Every table definition must include:
- •the question it answers
- •the row unit (H3 / benchmark / work / failure mode)
- •columns (with cell style constraints)
- •evidence mapping (which upstream fields fill which columns)
- •Cell style: short phrases; avoid paragraph cells.
- •Paper voice: Appendix table captions/columns must be publishable (no pipeline jargon).
Recommended defaults (arxiv-survey family)
Index tables (for table-filler -> outline/tables_index.md)
I1) Subsection map (axes + representative works)
- •Row unit: H3
- •Columns: subsection; axes; representative works
- •Evidence sources:
subsection_briefs.axes+ citations fromevidence_drafts
I2) Concrete anchors (benchmarks / numbers / caveats)
- •Row unit: H3
- •Columns: subsection; anchor facts; representative works
- •Evidence sources:
anchor_sheet.anchors
Appendix tables (for appendix-table-writer -> outline/tables_appendix.md)
A1) Method/architecture map (representative works)
- •Row unit: work/system line
- •Columns: work; core idea; loop + interface assumptions; key refs
- •Evidence sources:
evidence_drafts(comparisons + definitions) +anchor_sheet
A2) Evaluation protocol / benchmark map
- •Row unit: benchmark or evaluation setting (fallback: protocol dimension)
- •Columns: benchmark/setting; task+metric; key protocol constraints; key refs
- •Evidence sources:
anchor_sheet+evidence_drafts.evaluation_protocol
Positive / negative examples
Good (publishable question + fillable columns):
- •Question: "Which benchmarks anchor evaluation in this area, and what task/metric/constraints do they imply?"
- •Columns: Benchmark; Task+metric; Protocol constraints; Key refs
- •Evidence mapping:
evidence_drafts.evaluation_protocol+anchor_sheet
Bad (internal/pipeline voice):
- •Question: "What is evidence readiness + verification needs?"
- •Columns: evidence levels, missing fields, TODO checklist
If you want internal diagnostics, put them in an audit report, not in reader-facing tables.
Script (optional bootstrap)
Quick Start
- •
python .codex/skills/table-schema/scripts/run.py --help - •
python .codex/skills/table-schema/scripts/run.py --workspace workspaces/<ws>
All Options
- •
--workspace <workspace_dir>(required) - •
--unit-id <id>(optional; used only for runner bookkeeping) - •
--inputs <outline;briefs;packs;goal>(optional; override inputs) - •
--outputs <relpath>(optional; defaults tooutline/table_schema.md) - •
--checkpoint <C#>(optional; ignored by the bootstrapper)
Examples
- •
Bootstrap a two-layer schema (index + Appendix):
python .codex/skills/table-schema/scripts/run.py --workspace workspaces/<ws> - •
Write to a custom schema path (rare):
python .codex/skills/table-schema/scripts/run.py --workspace workspaces/<ws> --outputs outline/table_schema.md
Notes:
- •Use the script as a starting point, then refine the schema as a paper artifact.
- •If a column cannot be filled from evidence packs without guessing, the schema is wrong.