> ## Documentation Index
> Fetch the complete documentation index at: https://jetxl.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# AGENTS

# Documentation project instructions

## About this project

* Documentation for [Jetxl](https://github.com/omarirfa/Jetxl), a fast Excel writer for Python built in Rust
* Built on [Mintlify](https://mintlify.com). Pages are MDX with YAML frontmatter; configuration lives in `docs.json`
* Use the Mintlify MCP server, `https://mcp.mintlify.com`, to edit content and settings
* Use the Mintlify docs MCP server, `https://www.mintlify.com/docs/mcp`, to query Mintlify usage

## Sources of truth

Ranked, most reliable first:

1. **Running the library.** `pip install jetxl polars pyarrow openpyxl`, write a file, read it back with openpyxl. This is the only way to catch behavior that contradicts both the stub and the source comments.
2. **The Rust source** in the [Jetxl repository](https://github.com/omarirfa/Jetxl).
3. **`jetxl.pyi`.** Signatures only. Treat defaults and requiredness as unverified.

Files that matter most:

| File            | Covers                                           |
| --------------- | ------------------------------------------------ |
| `src/lib.rs`    | Python bindings, parameter parsing, defaults     |
| `src/styles.rs` | Color normalization, number format resolution    |
| `src/xml.rs`    | Per-cell writing, type handling, date conversion |
| `src/writer.rs` | Grid limits, sheet assembly                      |

## Terminology

* "Jetxl" capitalized in prose, `jetxl` in code
* Examples import as `import jetxl as jet`
* "Arrow functions" means those ending in `_arrow`; "dictionary functions" means `write_sheet` and `write_sheets`
* "Bytes functions" means those ending in `_to_bytes`
* Say "spreadsheet" or "workbook", not "Excel file", except where Excel's own behavior is the subject

## Style preferences

Follow the [Google developer documentation style guide](https://developers.google.com/style).

* Active voice, second person
* Sentence case headings, one idea per sentence
* American spelling
* Bold for UI elements: choose **Format Cells**
* Code formatting for file names, commands, paths, parameters, and values
* No manual H1 — Mintlify generates it from the `title` frontmatter
* Avoid "simply", "just", "please", "in order to", "e.g.", "i.e.", "via", and "allows you to"

## Content boundaries

Document silent failures explicitly. These cost users the most time and none of them raises:

* Unusable colors are dropped and the file still writes
* `NaN` and infinity become empty cells
* Control characters are stripped from text
* An unrecognized conditional-format `operator` falls back to `greater_than`
* An unrecognized `rule_type` drops the whole rule
* A table missing a required key is dropped

Never invent example output, benchmark numbers, or API behavior. If a number can't be traced to the repository, a published benchmark, or a run you performed, leave it out. Performance figures come from the project's own benchmarks and should be attributed as such.

Keep the experimental status visible. Jetxl is pre-1.0 and warns that combining formatting parameters may hit bugs.

## Audience

Two groups, served by content type rather than by page:

* **Guides and recipes** for analysts who want a formatted spreadsheet. Lead with the outcome, put mechanics lower down.
* **Reference** for developers who know what they're looking for. Dense and complete, no tutorial framing.
