You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@
9
9
**BrandDocs is a set of agent skills that learn your existing Word, PowerPoint and Excel templates and generate new on-brand documents from them.** Unlike generic AI document generators, it preserves **brand, structure, styles and formulas by construction**. Built for Claude Code, Codex and compatible AI agents.
@@ -54,13 +54,18 @@ All three share one engine and expose the same verbs: **`extract` → `comprehen
54
54
55
55
**Two-phase by design:** the deterministic engine works with **no model at all** (extract / verify / generate, fully offline); the model-assisted verbs sit ON TOP and can only NAME captured facts - every proposal is validated fail-closed, so the brand guarantee never depends on a model being right.
56
56
57
+
**Published only after proof:** generation preflights the profile and shell, writes
58
+
to a same-directory temporary file, and atomically publishes the requested output
59
+
only after deterministic QA passes. XLSX also preserves formulas and raw worksheet
60
+
extensions such as sparkline groups; extension loss is a blocking QA error.
61
+
57
62
---
58
63
59
64
## Prerequisites
60
65
61
66
BrandDocs runs locally and needs a few things installed **before first use**:
62
67
63
-
-**Python ≥ 3.10** plus the packages in [`requirements.txt`](requirements.txt) (`python-docx`, `python-pptx`, `openpyxl`, `lxml`, `Pillow`):
68
+
-**Python 3.10-3.13** plus the packages in [`requirements.txt`](requirements.txt) (`python-docx`, `python-pptx`, `openpyxl`, `lxml`, `Pillow`):
Copy file name to clipboardExpand all lines: documentation/ARCHITECTURE.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,8 +106,8 @@ which were degraded, and what to repair next.
106
106
107
107
| Layer | What it proves | What happens on failure |
108
108
|---|---|---|
109
-
|**Preflight**|`doctor` checks required Python packages, optional renderers (`soffice`, `pdftoppm`, PyMuPDF/`fitz`), and optional OCR (`tesseract`) before work starts. | Missing required packages must be installed/repaired. Missing visual/OCR tools downgrade only that proof layer. |
110
-
|**L0 deterministic QA**| Schema validity, resolver targets, allowed styles/layouts/ranges, residual demo text, markdown leaks, structural diffs, formula preservation. | The gate fails or emits explicit findings before the output is treated as clean. |
109
+
|**Preflight**|`doctor` checks dependencies; the shared OOXML boundary checks archive/part sizes, entry count, duplicate/unsafe paths and compression ratio before any Office parser or renderer opens a file. Generate also validates profile, resolver and shell provenance before authoring. | Missing dependencies must be repaired; unsafe packages and invalid/drifted profiles fail before an output is created. Missing visual/OCR tools downgrade only that proof layer. |
110
+
|**L0 deterministic QA**| Schema validity, resolver targets, allowed styles/layouts/ranges, residual demo text, markdown leaks, structural diffs, formula preservation, and XLSX worksheet-extension survival. | The gate fails before the temporary output is atomically published; a failed run cannot replace a previous good deliverable. |
111
111
|**L1 visual proxies**| Rendered-page signals such as blank pages, zero pages, content near page/slide edges, and optional OCR hits for visible residual template text. | Findings are warnings because the engine can detect symptoms, not intent. |
112
112
|**L2 visual judgement**| The orchestrator opens the PNGs from `visual_manifest.json`, judges checklist items, and decides whether the result is visually acceptable. `strict` turns unclean visual evidence into gate errors. | Apply a targeted repair, regenerate, and rerun `--qa deep` or `--qa strict` until clean or honestly blocked. |
Copy file name to clipboardExpand all lines: documentation/PLUGIN_WORKFLOW.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -208,6 +208,7 @@ generated/<job>/
208
208
| Native object loss |`component_survival` warning | ensure the native writer is used (charts, SmartArt, merged tables, docx TOC); explain only a genuinely unsupported object (e.g. a `divider` on pptx, which has no native form) |
209
209
| XLSX range overflow | named range bounds error | split data, shrink input, or ask user to expand template range |
210
210
| Formula loss | formula preservation finding | stop and repair generator; never ship silently |
211
+
| XLSX extension loss |`extension_survival` error | restore the supported raw OOXML extension or reject the output; never ship a workbook with silently removed native objects |
0 commit comments