First ten minutes: a verified XLSX agent edit¶
Install the published wolfxl package from public PyPI into a fresh virtual
environment. Then create a synthetic workbook, edit it the way an agent would
(cell values, a formula, a header style and a new sheet), save, reopen and
assert every edit together with stable sheet identity.
The example is engines/wolfxl/examples/agent_edit_first_ten_minutes.py. It
needs only CPython and network access to PyPI: no repository checkout,
compiler, account or credential.
Install¶
Copy this single install command. It creates the environment and installs the pinned Community (MIT) release, binary wheels only:
Run¶
With the package installed, run the edit and choose a new output directory:
Or let the example perform the clean install itself:
--work-dir creates first-ten-minutes/.venv, checks that the environment
has no wolfxl, runs the install command above with extra flags that isolate
pip from user configuration and caches (-I, --isolated, --no-cache-dir)
and record a pip install report, then reruns the example inside that
environment. It writes receipt.json with the installed wheel URL and SHA-256,
the Python runtime, the sheet identities before and after the edit, the
artifact hashes and each step's elapsed time.
Both modes refuse an existing directory, so a rerun never overwrites earlier
workbooks. On success the JSON output has "status": "passed"; any failed
assertion exits nonzero.
What the example edits and asserts¶
| Step | Public API | Asserted after save and reopen |
|---|---|---|
| Create synthetic workbook | wolfxl.Workbook(), Worksheet.append, Workbook.create_sheet |
Sheets Inputs and Notes |
| Change a cell value | wolfxl.load_workbook, ws["B3"] = 450 |
Inputs!B3 is 450; other cells unchanged |
| Add a formula | ws["B4"] = "=SUM(B2:B3)" |
Formula text saved; Workbook.calculate() returns 1650 |
| Style the header | Font(bold=True), PatternFill(fill_type="solid", ...) |
A1:B1 bold with a solid FFDDEBF7 fill; A2 not bold |
| Add a sheet | Workbook.create_sheet("Summary") with =Inputs!B4 |
Sheet order Inputs, Notes, Summary |
| Stable sheet identity | xl/workbook.xml and its relationships |
Inputs and Notes keep name, sheetId, relationship ID and part; the untouched Notes part is byte-identical; Summary gets a new sheetId |
Supported and not-qualified scope¶
| Surface | Status |
|---|---|
wolfxl==2.0.38 Community wheel from public PyPI (cp312 manylinux_2_28_x86_64), CPython 3.12 on Linux x86_64 |
Qualified by two clean-install gate runs |
| The edits and assertions in the table above, on this synthetic workbook | Qualified |
| CPython 3.11, 3.13, 3.14; macOS, Windows, Linux aarch64, musl | Not qualified by this example; wheels are published for them |
Commercial edition (wolfxl>=2.1, authenticated index) and wolfxl_pro features |
Not qualified by this example |
| Cached formula results in the saved file | Not written; the file stores formula text only, and spreadsheet apps recalculate on open |
| Customer workbooks, charts, pivots, images, macros, encryption | Not qualified by this example |
| Full openpyxl API compatibility | Not claimed; the example uses only the calls listed above |
| Rendering, visual fidelity, Excel desktop validation | Not exercised |
| Speed or memory | Not claimed; recorded elapsed times are observations of two runs |
Evidence¶
The machine-readable record is
evidence/ltg-xl-first-ten-minutes-agent-example-20261111.json. Raw gate logs
and per-run receipts are in engines/wolfxl/results/first-ten-minutes/.
The focused test engines/wolfxl/tests/test_agent_edit_first_ten_minutes.py
runs --work-dir mode in a temporary directory, so every gate run performs a
fresh install from PyPI. It then reads the saved workbook with openpyxl from
the test environment, independently of the example's environment, and checks
the values, formulas, styles, sheet IDs and the untouched sheet part. A second
test checks that an existing work directory is refused without changes.