[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-84003":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":46,"updatedAt":47,"readmeContent":48,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":49,"lastSyncTime":50,"discoverSource":51},84003,"brand-docs","ferdinandobons\u002Fbrand-docs","ferdinandobons","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.","https:\u002F\u002Fferdinandobons.github.io\u002Fbrand-docs\u002F",null,"Python",146,13,1,3,0,34,69,137,90.24,"MIT License",false,"main",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"ai-document-generation","claude-code-plugin","codex","document-automation","document-generation","docx","excel","microsoft-office","office-automation","office-documents","ooxml","openpyxl","powerpoint","pptx","python-docx","python-pptx","template-automation","template-engine","word","xlsx","2026-06-10 10:54:46","2026-06-10 20:02:42","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"assets\u002Fhero.png\" alt=\"BrandDocs workflow: a real Word, PowerPoint or Excel template is extracted into a reusable Brand Profile, then composed and verified into on-brand DOCX, PPTX and XLSX output\" width=\"100%\" \u002F>\n\n\u003Cbr\u002F>\n\n# BrandDocs: AI On-Brand Document Generator for Word, PowerPoint & Excel\n\n**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.\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-3B82F6.svg)](LICENSE)\n[![Python 3.10+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10%2B-3776AB.svg)](https:\u002F\u002Fwww.python.org\u002F)\n[![CI](https:\u002F\u002Fgithub.com\u002Fferdinandobons\u002Fbrand-docs\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fferdinandobons\u002Fbrand-docs\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Website](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fwebsite-GitHub%20Pages-16A34A.svg)](https:\u002F\u002Fferdinandobons.github.io\u002Fbrand-docs\u002F)\n[![Latest release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fferdinandobons\u002Fbrand-docs?label=latest%20release)](https:\u002F\u002Fgithub.com\u002Fferdinandobons\u002Fbrand-docs\u002Freleases\u002Flatest)\n[![Skills](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fskills-docx%20·%20pptx%20·%20xlsx-6EA8FE.svg)](#the-three-skills)\n[![Status: alpha](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstatus-alpha-F59E0B.svg)](#project-status)\n\n\u003C\u002Fdiv>\n\n---\n\n## What is BrandDocs?\n\n**BrandDocs** is an open-source **agent-skill bundle** that learns a company's existing Office templates and generates new on-brand documents from them. Point it at one branded `.docx`, `.pptx`, or `.xlsx`; it **extracts** the brand (theme colors and fonts, named styles, the document's *structure*, layouts, cover anchors, logos and tables) into a portable **Brand Profile**. From then on, every document it **generates** is built *from the original template shell* and uses *only* the artifacts the template actually defines. Each format stays in its own lane: there is no cross-format conversion.\n\n> **The core guarantee: off-brand output is impossible by construction.** No generator ever writes a literal style name, hex color, or font: those live only in the Brand Profile, and `verify` refuses a profile that points at anything the template doesn't contain.\n\n### At a glance\n\n| Question | Answer |\n|---|---|\n| **Input** | Existing company `.docx`, `.pptx`, or `.xlsx` templates |\n| **Output** | Same-format on-brand Word documents, PowerPoint decks, and Excel workbooks |\n| **Works with** | Claude Code, Codex, compatible AI agents, or the direct Python CLI |\n| **Best for** | Repeatable reports, decks, workbooks, proposals, memos, briefs, and internal document workflows |\n| **Privacy model** | Local-first; no cloud service is required, and real templates are git-ignored |\n| **Current release** | [v0.7.0](https:\u002F\u002Fgithub.com\u002Fferdinandobons\u002Fbrand-docs\u002Freleases\u002Ftag\u002Fv0.7.0) alpha |\n\n---\n\n## The three skills\n\n| Skill | Format | Generates |\n|---|---|---|\n| **`brand-docx`** | Word `.docx` | reports, letters and memos in the template's structural order |\n| **`brand-pptx`** | PowerPoint `.pptx` | decks from the template's real masters & layouts, with native charts, diagrams & merged tables |\n| **`brand-xlsx`** | Excel `.xlsx` | workbooks: named-region fills with **formulas preserved** and brand number formats |\n\nAll three share one engine and expose the same verbs: **`extract` → `verify` → `generate`**. Details → [documentation\u002FSKILLS.md](documentation\u002FSKILLS.md).\n\n---\n\n## Prerequisites\n\nBrandDocs runs locally and needs a few things installed **before first use**:\n\n- **Python ≥ 3.10** plus the packages in [`requirements.txt`](requirements.txt) (`python-docx`, `python-pptx`, `openpyxl`, `lxml`, `Pillow`):\n  ```bash\n  pip install -r requirements.txt\n  ```\n- **Visual QA tools (keep the visual gate on):** the render-based **visual QA gate runs by default** and catches layout problems the deterministic checks can't (text overflow, blank pages, clipping, stale demo text). It needs LibreOffice + Poppler (Tesseract is optional, for OCR). Install them with one auto-detecting command:\n  ```bash\n  bash scripts\u002Fsetup_visual_qa.sh\n  ```\n  Generation still runs without them (it degrades gracefully to deterministic-only QA, level L0), but install them so the visual gate stays on.\n\nCheck what's present at any time with `python scripts\u002Fbrandkit\u002Fcli.py doctor`. Per-OS commands and the full setup → **[documentation\u002FINSTALLATION.md](documentation\u002FINSTALLATION.md)**.\n\n---\n\n## Installation\n\nThe three skills share one Python engine (`scripts\u002Fbrandkit\u002F`), so install the **whole repository** (copying a single skill folder on its own won't work). After either install below, set up the [prerequisites](#prerequisites) so the engine can run, then verify with `python scripts\u002Fbrandkit\u002Fcli.py doctor`.\n\n### Claude Code\n\nThe plugin loads all three skills plus the shared engine together:\n\n```text\n\u002Fplugin marketplace add ferdinandobons\u002Fbrand-docs\n\u002Fplugin install brand-docs@brand-docs\n```\n\n### Codex (and other agents)\n\nClone the repo and symlink the three skills into your Codex skills directory, so each skill's engine in `scripts\u002Fbrandkit\u002F` travels with it:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fferdinandobons\u002Fbrand-docs.git ~\u002F.codex\u002Fbrand-docs\ncd ~\u002F.codex\u002Fbrand-docs && python3 -m venv .venv && . .venv\u002Fbin\u002Factivate && pip install -r requirements.txt\nmkdir -p ~\u002F.codex\u002Fskills\nfor s in brand-docx brand-pptx brand-xlsx; do ln -s ~\u002F.codex\u002Fbrand-docs\u002Fskills\u002F$s ~\u002F.codex\u002Fskills\u002F$s; done\n```\n\nRestart or reload the agent if the skills don't appear immediately.\n\n> Git-submodule install and updating instructions are in **[documentation\u002FINSTALLATION.md](documentation\u002FINSTALLATION.md)**.\n\n---\n\n## Quick start\n\n**With an AI agent** (the intended experience). Describe what you want and attach a template:\n\n> \"Use this company Word template and write a report on the history of Napoleon.\"\n\nThe agent activates `brand-docx`, extracts (or reuses) a Brand Profile, fills the template shell in its structural order, runs QA, and returns the file. PowerPoint (`brand-pptx`) and Excel (`brand-xlsx`) work the same way.\n\n**Direct CLI** (the engine, for tests & debugging):\n\n```bash\n# 1) Extract the brand from a template into a reusable Brand Profile\npython scripts\u002Fbrandkit\u002Fcli.py extract --name \u003Cyour_company> --template template.docx --scope project\n\n# 2) Verify the profile (fails if a role points at a missing artifact)\npython scripts\u002Fbrandkit\u002Fcli.py verify --name \u003Cyour_company> --scope auto --qa auto\n\n# 3) Generate a new on-brand document from structured content\npython scripts\u002Fbrandkit\u002Fcli.py generate --name \u003Cyour_company> --input idoc.json --output out.docx --scope auto --qa auto\n```\n\nThe input (`idoc.json`) is an **IntermediateDocument** of brand-agnostic typed blocks (no styles, colors or fonts); the Brand Profile resolves all of that.\n\n---\n\n## Project status\n\n**Alpha.** The Word vertical (`brand-docx`) is the reference implementation, verified end-to-end on real templates; PowerPoint and Excel share the engine and are catching up. Full status table → [documentation\u002FSKILLS.md](documentation\u002FSKILLS.md#project-status).\n\n## Website & discovery\n\n- Public website: [ferdinandobons.github.io\u002Fbrand-docs](https:\u002F\u002Fferdinandobons.github.io\u002Fbrand-docs\u002F)\n- Full documentation: [`documentation\u002F`](documentation\u002F)\n\n## Changelog\n\nLatest release: [v0.7.0](https:\u002F\u002Fgithub.com\u002Fferdinandobons\u002Fbrand-docs\u002Freleases\u002Ftag\u002Fv0.7.0). See [CHANGELOG.md](CHANGELOG.md).\n\n## License & acknowledgements\n\n- This project's own code is **[MIT](LICENSE)** © 2026 Ferdinando Bonsegna.\n- Self-contained: the OOXML engine is re-implemented from scratch; it does **not** vendor any proprietary or third-party Office tooling. See [`NOTICE`](NOTICE).\n",2,"2026-06-11 04:12:01","CREATED_QUERY"]