Nothing in KF is a dead end. Everything you put in comes back out in a format something else can read, and the formats people already have — spreadsheets, bills of material — come in without retyping.
Three formats, chosen by file extension:
| Extension | What it is |
|---|---|
.csv | A spreadsheet export. The usual way to bring in a BOM or a requirement list |
.xlsx | An Excel workbook, read directly |
.tgz / .gz | A KF pack — items and their attachments, as produced by Export all |
Only title is mandatory. Everything else is optional, and any column KF does not
recognise is kept as a declared attribute rather than discarded.
| Column | Becomes | |
|---|---|---|
title | The item's title | |
code | Its code (x0) — the durable key. An existing code updates that item instead of creating a new one | |
class | m object, a action, e event, i document | |
tags | Space-separated tags, including status words like done | |
type | One or more codes, separated by space, comma or ` | `. Each becomes a type link |
doc | The Markdown body | |
| anything else | A declared attribute, reachable through the API and shown on the item |
That code rule is the useful one: exporting a BOM, editing it in a spreadsheet, and
importing it back updates rather than duplicates.
A CSV is flat and a BOM is not. Two markers solve it:
> descends — the next rows hang under the row just created< goes back up a levelSo a nested assembly imports from one sheet, in the order a person would naturally write it.
| Format | What you get |
|---|---|
| CSV | The FMEA table; the compliance register; any listing |
| XLSX | The FMEA table; the compliance register |
| JSON | A whole subtree — {root, items[], links[]} |
| OGDL | The same subtree in KF's own format |
| TGZ pack | Items and their attachments, for moving a body of work between instances |
| SVG | Fault tree, component tree, type tree, Gantt |
| MS Project XML | The Gantt, as a genuine schemas.microsoft.com/project file |
| iCalendar | Tasks as calendar events (RFC 5545) |
| Through the print views — A4 portrait, A4 landscape, slides, handouts |
Every CSV and XLSX export carries a provenance header: which database, which build, which filter produced it, and when. A spreadsheet that has been emailed twice and renamed once can still say where it came from.
Two cases come up constantly.
Round-tripping a BOM. Export the component tree as CSV, work on it in the tool your supplier sent it in, import it back. Codes make it an update.
Handing over evidence. An auditor wants the register in their own file, sorted
their own way. Register CSV gives them that, with the provenance header attached, so
what they examined is demonstrable months later rather than only during the meeting.
See auditing.