inclusio 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. inclusio-0.0.2/PKG-INFO +248 -0
  2. inclusio-0.0.2/README.md +210 -0
  3. inclusio-0.0.2/inclusio/__init__.py +1 -0
  4. inclusio-0.0.2/inclusio/cli/__init__.py +1 -0
  5. inclusio-0.0.2/inclusio/cli/audit.py +397 -0
  6. inclusio-0.0.2/inclusio/cli/build.py +1789 -0
  7. inclusio-0.0.2/inclusio/cli/import_resume.py +370 -0
  8. inclusio-0.0.2/inclusio/cli/render.py +793 -0
  9. inclusio-0.0.2/inclusio/cli/sitemap.py +209 -0
  10. inclusio-0.0.2/inclusio/cli/tailor.py +940 -0
  11. inclusio-0.0.2/inclusio/emit/__init__.py +17 -0
  12. inclusio-0.0.2/inclusio/emit/pandoc.py +360 -0
  13. inclusio-0.0.2/inclusio/judge/__init__.py +72 -0
  14. inclusio-0.0.2/inclusio/judge/ats.py +385 -0
  15. inclusio-0.0.2/inclusio/judge/citations.py +375 -0
  16. inclusio-0.0.2/inclusio/judge/cloud_llm.py +272 -0
  17. inclusio-0.0.2/inclusio/judge/jd_fit.py +432 -0
  18. inclusio-0.0.2/inclusio/judge/local_llm.py +235 -0
  19. inclusio-0.0.2/inclusio/mcp/__init__.py +23 -0
  20. inclusio-0.0.2/inclusio/mcp/server.py +311 -0
  21. inclusio-0.0.2/inclusio/provenance/__init__.py +46 -0
  22. inclusio-0.0.2/inclusio/provenance/c2pa.py +259 -0
  23. inclusio-0.0.2/inclusio/provenance/pades.py +237 -0
  24. inclusio-0.0.2/inclusio/tools/__init__.py +1 -0
  25. inclusio-0.0.2/inclusio/tools/fix_semantic.py +157 -0
  26. inclusio-0.0.2/inclusio/tools/overlay.py +100 -0
  27. inclusio-0.0.2/inclusio/tools/stamp_pdfs.py +289 -0
  28. inclusio-0.0.2/inclusio.egg-info/PKG-INFO +248 -0
  29. inclusio-0.0.2/inclusio.egg-info/SOURCES.txt +71 -0
  30. inclusio-0.0.2/inclusio.egg-info/dependency_links.txt +1 -0
  31. inclusio-0.0.2/inclusio.egg-info/entry_points.txt +3 -0
  32. inclusio-0.0.2/inclusio.egg-info/requires.txt +19 -0
  33. inclusio-0.0.2/inclusio.egg-info/top_level.txt +1 -0
  34. inclusio-0.0.2/pyproject.toml +173 -0
  35. inclusio-0.0.2/setup.cfg +4 -0
  36. inclusio-0.0.2/tests/test_ai_disclosure.py +128 -0
  37. inclusio-0.0.2/tests/test_assets.py +8 -0
  38. inclusio-0.0.2/tests/test_audit_edges.py +167 -0
  39. inclusio-0.0.2/tests/test_benchmark_hot_paths.py +233 -0
  40. inclusio-0.0.2/tests/test_build.py +49 -0
  41. inclusio-0.0.2/tests/test_build_script.py +2110 -0
  42. inclusio-0.0.2/tests/test_citation.py +75 -0
  43. inclusio-0.0.2/tests/test_cmd_emit.py +199 -0
  44. inclusio-0.0.2/tests/test_cmd_import_provenance.py +209 -0
  45. inclusio-0.0.2/tests/test_cmd_judge.py +333 -0
  46. inclusio-0.0.2/tests/test_coverage_gap_close.py +472 -0
  47. inclusio-0.0.2/tests/test_eaa.py +275 -0
  48. inclusio-0.0.2/tests/test_emit_pandoc.py +294 -0
  49. inclusio-0.0.2/tests/test_engine_smoke.py +69 -0
  50. inclusio-0.0.2/tests/test_fix_semantic.py +199 -0
  51. inclusio-0.0.2/tests/test_import_resume.py +379 -0
  52. inclusio-0.0.2/tests/test_judge_ats.py +265 -0
  53. inclusio-0.0.2/tests/test_judge_citations.py +336 -0
  54. inclusio-0.0.2/tests/test_judge_cloud_llm.py +320 -0
  55. inclusio-0.0.2/tests/test_judge_jd_fit.py +375 -0
  56. inclusio-0.0.2/tests/test_judge_local_llm.py +304 -0
  57. inclusio-0.0.2/tests/test_macro_contract.py +51 -0
  58. inclusio-0.0.2/tests/test_mcp_server.py +397 -0
  59. inclusio-0.0.2/tests/test_overlay.py +151 -0
  60. inclusio-0.0.2/tests/test_pdf_ua.py +245 -0
  61. inclusio-0.0.2/tests/test_pdf_ua_classes.py +178 -0
  62. inclusio-0.0.2/tests/test_pdf_validation.py +483 -0
  63. inclusio-0.0.2/tests/test_provenance_c2pa.py +281 -0
  64. inclusio-0.0.2/tests/test_provenance_pades.py +173 -0
  65. inclusio-0.0.2/tests/test_render.py +882 -0
  66. inclusio-0.0.2/tests/test_render_coverage.py +262 -0
  67. inclusio-0.0.2/tests/test_render_text.py +191 -0
  68. inclusio-0.0.2/tests/test_semantic.py +87 -0
  69. inclusio-0.0.2/tests/test_semantic_edges.py +53 -0
  70. inclusio-0.0.2/tests/test_sitemap.py +350 -0
  71. inclusio-0.0.2/tests/test_source_entrypoints.py +77 -0
  72. inclusio-0.0.2/tests/test_stamp_pdfs.py +358 -0
  73. inclusio-0.0.2/tests/test_tailor.py +1448 -0
@@ -0,0 +1,248 @@
1
+ Metadata-Version: 2.4
2
+ Name: inclusio
3
+ Version: 0.0.2
4
+ Summary: Accessibility-first publishing engine — PDF/UA-2 + WTPDF + PDF/A-4f, C2PA + PAdES + SLSA provenance, multi-format emission, MCP server.
5
+ Author-email: Sebastien Rousseau <contact@sebastienrousseau.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/sebastienrousseau/inclusio
8
+ Project-URL: Documentation, https://github.com/sebastienrousseau/inclusio/tree/main/docs
9
+ Project-URL: Issues, https://github.com/sebastienrousseau/inclusio/issues
10
+ Project-URL: Changelog, https://github.com/sebastienrousseau/inclusio/blob/main/CHANGELOG.md
11
+ Keywords: latex,publishing,euxis,pdfa,pdfua,wtpdf,accessibility,eaa,wcag,tagged-pdf,uspto,arxiv
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Topic :: Text Processing :: Markup :: LaTeX
19
+ Classifier: Topic :: Software Development :: Documentation
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+ Requires-Dist: pyyaml>=6.0
23
+ Requires-Dist: jinja2>=3.1
24
+ Requires-Dist: pikepdf>=8.0
25
+ Provides-Extra: dev
26
+ Requires-Dist: pytest>=7.0; extra == "dev"
27
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
28
+ Requires-Dist: pytest-benchmark>=5.0; extra == "dev"
29
+ Requires-Dist: ruff>=0.6.0; extra == "dev"
30
+ Requires-Dist: interrogate>=1.7; extra == "dev"
31
+ Requires-Dist: sphinx>=7.0; extra == "dev"
32
+ Requires-Dist: myst-parser>=2.0; extra == "dev"
33
+ Requires-Dist: furo>=2024.0.0; extra == "dev"
34
+ Provides-Extra: mcp
35
+ Requires-Dist: mcp[cli]>=1.27.0; extra == "mcp"
36
+ Provides-Extra: provenance
37
+ Requires-Dist: pyhanko>=0.22; extra == "provenance"
38
+
39
+ <p align="center">
40
+ <img src="https://kura.pro/euxis/images/logos/euxis.svg" alt="Inclusio logo" width="128" />
41
+ </p>
42
+
43
+ <h1 align="center">Inclusio</h1>
44
+
45
+ <p align="center">
46
+ <strong>Publishing that includes everyone.</strong>
47
+ </p>
48
+
49
+ <p align="center">
50
+ Accessibility-first publishing engine for LaTeX, packaged as a
51
+ Python CLI. PDF/UA-2 + WTPDF + PDF/A-4f triple-conformance,
52
+ C2PA + PAdES + SLSA provenance, multi-format emission (HTML5 /
53
+ JATS / EPUB3), LLM-augmented judges, and an MCP server for agent
54
+ integration. Built for macOS, Linux, and WSL.
55
+ </p>
56
+
57
+ <p align="center">
58
+ <a href="https://github.com/sebastienrousseau/inclusio/actions/workflows/engine-validation.yml"><img src="https://img.shields.io/github/actions/workflow/status/sebastienrousseau/inclusio/engine-validation.yml?style=for-the-badge&logo=github" alt="Engine Validation" /></a>
59
+ <a href="https://github.com/sebastienrousseau/inclusio/actions/workflows/verapdf.yml"><img src="https://img.shields.io/github/actions/workflow/status/sebastienrousseau/inclusio/verapdf.yml?style=for-the-badge&logo=github&label=veraPDF" alt="veraPDF Audit" /></a>
60
+ <a href="https://github.com/sebastienrousseau/inclusio"><img src="https://img.shields.io/badge/Python-%3E%3D3.11-3776AB?style=for-the-badge&logo=python&logoColor=white" alt="Python >= 3.11" /></a>
61
+ <a href="https://github.com/sebastienrousseau/inclusio"><img src="https://img.shields.io/badge/PDF%2FUA--2%20%7C%20WTPDF%20%7C%20PDF%2FA--4f-blue?style=for-the-badge" alt="PDF/UA-2 | WTPDF | PDF/A-4f" /></a>
62
+ <a href="https://github.com/sebastienrousseau/inclusio/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-black?style=for-the-badge" alt="License" /></a>
63
+ </p>
64
+
65
+ ---
66
+
67
+ ## Install
68
+
69
+ Run the local bootstrap:
70
+
71
+ ```bash
72
+ ./bin/setup
73
+ ```
74
+
75
+ Then validate the engine:
76
+
77
+ ```bash
78
+ make test
79
+ make coverage
80
+ ```
81
+
82
+ **Requires** `python3`, `git`, and a TeX toolchain. Use WSL for full Windows support. Install `tagpdf.sty` if you need accessibility tagging.
83
+
84
+ ---
85
+
86
+ ## Publish
87
+
88
+ Publish against the private content repository with the shell-agnostic form:
89
+
90
+ ```bash
91
+ make publish CONTENT_DIR=/absolute/path/to/inclusio-private
92
+ ```
93
+
94
+ Use the shell-specific form only when you need it:
95
+
96
+ ```bash
97
+ # Bash / Zsh / POSIX sh
98
+ INCLUSIO_CONTENT_DIR=/absolute/path/to/inclusio-private make publish
99
+
100
+ # fish
101
+ env INCLUSIO_CONTENT_DIR=/absolute/path/to/inclusio-private make publish
102
+
103
+ # PowerShell
104
+ $env:INCLUSIO_CONTENT_DIR = "/absolute/path/to/inclusio-private"
105
+ make publish
106
+ ```
107
+
108
+ `EUXIS_PUBLISHER_CONTENT_DIR` is **not** supported.
109
+
110
+ Drop supported briefs into `data/jobs/` in the private content repo, then run
111
+ `publish`. The build now promotes `.txt`, `.md`, `.markdown`, `.rtf`, `.doc`,
112
+ `.docx`, `.odt`, and `.html` briefs into `data/tailored/` automatically before
113
+ compiling PDFs.
114
+
115
+ ---
116
+
117
+ ## Overview
118
+
119
+ Use this repository as the public engine layer of the Euxis publishing stack.
120
+ Keep private content in `inclusio-private`.
121
+
122
+ You get:
123
+
124
+ - **LaTeX classes and styles** through `core/cls/` and `core/sty/`
125
+ - **Packaged Python entrypoints** through `inclusio/cli/`
126
+ - **Operator utilities** through `inclusio/tools/`
127
+ - **Compatibility wrappers** through `scripts/`
128
+ - **Public fixture content** through `data/`, `src/`, and `templates/`
129
+ - **100% package coverage** over `inclusio`
130
+
131
+ ---
132
+
133
+ ## Architecture
134
+
135
+ First, render or tailor content. Then compile camera-ready output from the same engine.
136
+
137
+ ```mermaid
138
+ graph TD
139
+ A[Private or Public Content] --> B{inclusio.cli.build}
140
+ B --> C[Render: Jinja2 to LaTeX or Markdown]
141
+ B --> D[Build: latexmk or TeX compiler]
142
+ B --> E[Tailor: Brief to structured YAML]
143
+ C --> F[build/.cache/rendered]
144
+ D --> G[PDF artifacts]
145
+ E --> H[data/tailored]
146
+ G --> I[Stamping and metadata tooling]
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Features
152
+
153
+ | | |
154
+ | :--- | :--- |
155
+ | **Engine** | Packaged Python CLI with `build`, `render`, `blog`, `tailor`, `lint`, and cleanup commands |
156
+ | **Typography** | Shared LaTeX classes and style packages for CVs, papers, patents, FAQs, guides, and bios |
157
+ | **Build Modes** | Draft, submission, and camera-ready flows managed from one orchestration layer |
158
+ | **Publishing** | PDF/A-oriented metadata flow with provenance stamping support |
159
+ | **Fixtures** | Public sample content for engine validation without exposing private briefs or templates |
160
+ | **Coverage** | 100% package coverage across `inclusio` |
161
+ | **Platforms** | macOS, Linux, and WSL |
162
+ | **Docs** | Sphinx docs plus folder-level READMEs for every major public surface |
163
+
164
+ ---
165
+
166
+ ## Commands
167
+
168
+ | Command | Execute this to... |
169
+ | :--- | :--- |
170
+ | `make list` | inspect registered documents |
171
+ | `make draft` | compile all public documents in draft mode |
172
+ | `make final` | compile camera-ready output from the current content root |
173
+ | `make publish CONTENT_DIR=/absolute/path/to/inclusio-private` | auto-tailor briefs from `data/jobs/` and compile the full private set |
174
+ | `make render` | render Jinja2 templates to LaTeX |
175
+ | `make render-md` | render Markdown output |
176
+ | `make blog` | render blog posts |
177
+ | `make tailor BRIEF=data/jobs/job.txt` | generate one tailored document explicitly and build it |
178
+ | `make sitemap` | generate `build/site-map.json` |
179
+ | `make test` | run the public engine test target |
180
+ | `make coverage` | enforce the package coverage gate |
181
+ | `make docs` | build the Sphinx site |
182
+
183
+ Use the packaged CLIs directly when you need lower-level control:
184
+
185
+ ```bash
186
+ python3 -m inclusio.cli.build list
187
+ python3 -m inclusio.cli.render --doc cv
188
+ python3 -m inclusio.cli.sitemap --pretty
189
+ python3 -m inclusio.cli.tailor data/jobs/test.txt --no-ai
190
+ ```
191
+
192
+ For bulk private publishing, prefer `make publish`. It scans `data/jobs/`,
193
+ refreshes stale tailored YAML, and compiles the resulting PDFs in one pass.
194
+
195
+ ---
196
+
197
+ ## Public vs Private Boundary
198
+
199
+ Keep these surfaces public:
200
+
201
+ - `core/`
202
+ - `inclusio/`
203
+ - `scripts/`
204
+ - `tests/`
205
+ - non-sensitive fixtures in `data/`, `src/`, and `templates/`
206
+ - CI, docs, and build metadata
207
+
208
+ Keep these surfaces private:
209
+
210
+ - real briefs and client content
211
+ - proprietary templates and assets
212
+ - content-bearing metadata sets
213
+ - content-specific QA and linguistic validation
214
+
215
+ For the full boundary contract, read [docs/public-private-boundary.md](docs/public-private-boundary.md).
216
+
217
+ ---
218
+
219
+ ## Documentation
220
+
221
+ Start here:
222
+
223
+ - [docs/README.md](docs/README.md)
224
+ - [docs/architecture.md](docs/architecture.md)
225
+ - [docs/classes-and-styles.md](docs/classes-and-styles.md)
226
+ - [docs/package-reference.md](docs/package-reference.md)
227
+ - [docs/macro-reference.md](docs/macro-reference.md)
228
+ - [docs/usage.md](docs/usage.md)
229
+ - [docs/testing-and-ci.md](docs/testing-and-ci.md)
230
+
231
+ Folder guides:
232
+
233
+ - [bin/README.md](bin/README.md)
234
+ - [core/README.md](core/README.md)
235
+ - [data/README.md](data/README.md)
236
+ - [inclusio/README.md](inclusio/README.md)
237
+ - [inclusio/cli/README.md](inclusio/cli/README.md)
238
+ - [inclusio/tools/README.md](inclusio/tools/README.md)
239
+ - [scripts/README.md](scripts/README.md)
240
+ - [src/README.md](src/README.md)
241
+ - [templates/README.md](templates/README.md)
242
+ - [tests/README.md](tests/README.md)
243
+
244
+ ---
245
+
246
+ ## License
247
+
248
+ Licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
@@ -0,0 +1,210 @@
1
+ <p align="center">
2
+ <img src="https://kura.pro/euxis/images/logos/euxis.svg" alt="Inclusio logo" width="128" />
3
+ </p>
4
+
5
+ <h1 align="center">Inclusio</h1>
6
+
7
+ <p align="center">
8
+ <strong>Publishing that includes everyone.</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ Accessibility-first publishing engine for LaTeX, packaged as a
13
+ Python CLI. PDF/UA-2 + WTPDF + PDF/A-4f triple-conformance,
14
+ C2PA + PAdES + SLSA provenance, multi-format emission (HTML5 /
15
+ JATS / EPUB3), LLM-augmented judges, and an MCP server for agent
16
+ integration. Built for macOS, Linux, and WSL.
17
+ </p>
18
+
19
+ <p align="center">
20
+ <a href="https://github.com/sebastienrousseau/inclusio/actions/workflows/engine-validation.yml"><img src="https://img.shields.io/github/actions/workflow/status/sebastienrousseau/inclusio/engine-validation.yml?style=for-the-badge&logo=github" alt="Engine Validation" /></a>
21
+ <a href="https://github.com/sebastienrousseau/inclusio/actions/workflows/verapdf.yml"><img src="https://img.shields.io/github/actions/workflow/status/sebastienrousseau/inclusio/verapdf.yml?style=for-the-badge&logo=github&label=veraPDF" alt="veraPDF Audit" /></a>
22
+ <a href="https://github.com/sebastienrousseau/inclusio"><img src="https://img.shields.io/badge/Python-%3E%3D3.11-3776AB?style=for-the-badge&logo=python&logoColor=white" alt="Python >= 3.11" /></a>
23
+ <a href="https://github.com/sebastienrousseau/inclusio"><img src="https://img.shields.io/badge/PDF%2FUA--2%20%7C%20WTPDF%20%7C%20PDF%2FA--4f-blue?style=for-the-badge" alt="PDF/UA-2 | WTPDF | PDF/A-4f" /></a>
24
+ <a href="https://github.com/sebastienrousseau/inclusio/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-black?style=for-the-badge" alt="License" /></a>
25
+ </p>
26
+
27
+ ---
28
+
29
+ ## Install
30
+
31
+ Run the local bootstrap:
32
+
33
+ ```bash
34
+ ./bin/setup
35
+ ```
36
+
37
+ Then validate the engine:
38
+
39
+ ```bash
40
+ make test
41
+ make coverage
42
+ ```
43
+
44
+ **Requires** `python3`, `git`, and a TeX toolchain. Use WSL for full Windows support. Install `tagpdf.sty` if you need accessibility tagging.
45
+
46
+ ---
47
+
48
+ ## Publish
49
+
50
+ Publish against the private content repository with the shell-agnostic form:
51
+
52
+ ```bash
53
+ make publish CONTENT_DIR=/absolute/path/to/inclusio-private
54
+ ```
55
+
56
+ Use the shell-specific form only when you need it:
57
+
58
+ ```bash
59
+ # Bash / Zsh / POSIX sh
60
+ INCLUSIO_CONTENT_DIR=/absolute/path/to/inclusio-private make publish
61
+
62
+ # fish
63
+ env INCLUSIO_CONTENT_DIR=/absolute/path/to/inclusio-private make publish
64
+
65
+ # PowerShell
66
+ $env:INCLUSIO_CONTENT_DIR = "/absolute/path/to/inclusio-private"
67
+ make publish
68
+ ```
69
+
70
+ `EUXIS_PUBLISHER_CONTENT_DIR` is **not** supported.
71
+
72
+ Drop supported briefs into `data/jobs/` in the private content repo, then run
73
+ `publish`. The build now promotes `.txt`, `.md`, `.markdown`, `.rtf`, `.doc`,
74
+ `.docx`, `.odt`, and `.html` briefs into `data/tailored/` automatically before
75
+ compiling PDFs.
76
+
77
+ ---
78
+
79
+ ## Overview
80
+
81
+ Use this repository as the public engine layer of the Euxis publishing stack.
82
+ Keep private content in `inclusio-private`.
83
+
84
+ You get:
85
+
86
+ - **LaTeX classes and styles** through `core/cls/` and `core/sty/`
87
+ - **Packaged Python entrypoints** through `inclusio/cli/`
88
+ - **Operator utilities** through `inclusio/tools/`
89
+ - **Compatibility wrappers** through `scripts/`
90
+ - **Public fixture content** through `data/`, `src/`, and `templates/`
91
+ - **100% package coverage** over `inclusio`
92
+
93
+ ---
94
+
95
+ ## Architecture
96
+
97
+ First, render or tailor content. Then compile camera-ready output from the same engine.
98
+
99
+ ```mermaid
100
+ graph TD
101
+ A[Private or Public Content] --> B{inclusio.cli.build}
102
+ B --> C[Render: Jinja2 to LaTeX or Markdown]
103
+ B --> D[Build: latexmk or TeX compiler]
104
+ B --> E[Tailor: Brief to structured YAML]
105
+ C --> F[build/.cache/rendered]
106
+ D --> G[PDF artifacts]
107
+ E --> H[data/tailored]
108
+ G --> I[Stamping and metadata tooling]
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Features
114
+
115
+ | | |
116
+ | :--- | :--- |
117
+ | **Engine** | Packaged Python CLI with `build`, `render`, `blog`, `tailor`, `lint`, and cleanup commands |
118
+ | **Typography** | Shared LaTeX classes and style packages for CVs, papers, patents, FAQs, guides, and bios |
119
+ | **Build Modes** | Draft, submission, and camera-ready flows managed from one orchestration layer |
120
+ | **Publishing** | PDF/A-oriented metadata flow with provenance stamping support |
121
+ | **Fixtures** | Public sample content for engine validation without exposing private briefs or templates |
122
+ | **Coverage** | 100% package coverage across `inclusio` |
123
+ | **Platforms** | macOS, Linux, and WSL |
124
+ | **Docs** | Sphinx docs plus folder-level READMEs for every major public surface |
125
+
126
+ ---
127
+
128
+ ## Commands
129
+
130
+ | Command | Execute this to... |
131
+ | :--- | :--- |
132
+ | `make list` | inspect registered documents |
133
+ | `make draft` | compile all public documents in draft mode |
134
+ | `make final` | compile camera-ready output from the current content root |
135
+ | `make publish CONTENT_DIR=/absolute/path/to/inclusio-private` | auto-tailor briefs from `data/jobs/` and compile the full private set |
136
+ | `make render` | render Jinja2 templates to LaTeX |
137
+ | `make render-md` | render Markdown output |
138
+ | `make blog` | render blog posts |
139
+ | `make tailor BRIEF=data/jobs/job.txt` | generate one tailored document explicitly and build it |
140
+ | `make sitemap` | generate `build/site-map.json` |
141
+ | `make test` | run the public engine test target |
142
+ | `make coverage` | enforce the package coverage gate |
143
+ | `make docs` | build the Sphinx site |
144
+
145
+ Use the packaged CLIs directly when you need lower-level control:
146
+
147
+ ```bash
148
+ python3 -m inclusio.cli.build list
149
+ python3 -m inclusio.cli.render --doc cv
150
+ python3 -m inclusio.cli.sitemap --pretty
151
+ python3 -m inclusio.cli.tailor data/jobs/test.txt --no-ai
152
+ ```
153
+
154
+ For bulk private publishing, prefer `make publish`. It scans `data/jobs/`,
155
+ refreshes stale tailored YAML, and compiles the resulting PDFs in one pass.
156
+
157
+ ---
158
+
159
+ ## Public vs Private Boundary
160
+
161
+ Keep these surfaces public:
162
+
163
+ - `core/`
164
+ - `inclusio/`
165
+ - `scripts/`
166
+ - `tests/`
167
+ - non-sensitive fixtures in `data/`, `src/`, and `templates/`
168
+ - CI, docs, and build metadata
169
+
170
+ Keep these surfaces private:
171
+
172
+ - real briefs and client content
173
+ - proprietary templates and assets
174
+ - content-bearing metadata sets
175
+ - content-specific QA and linguistic validation
176
+
177
+ For the full boundary contract, read [docs/public-private-boundary.md](docs/public-private-boundary.md).
178
+
179
+ ---
180
+
181
+ ## Documentation
182
+
183
+ Start here:
184
+
185
+ - [docs/README.md](docs/README.md)
186
+ - [docs/architecture.md](docs/architecture.md)
187
+ - [docs/classes-and-styles.md](docs/classes-and-styles.md)
188
+ - [docs/package-reference.md](docs/package-reference.md)
189
+ - [docs/macro-reference.md](docs/macro-reference.md)
190
+ - [docs/usage.md](docs/usage.md)
191
+ - [docs/testing-and-ci.md](docs/testing-and-ci.md)
192
+
193
+ Folder guides:
194
+
195
+ - [bin/README.md](bin/README.md)
196
+ - [core/README.md](core/README.md)
197
+ - [data/README.md](data/README.md)
198
+ - [inclusio/README.md](inclusio/README.md)
199
+ - [inclusio/cli/README.md](inclusio/cli/README.md)
200
+ - [inclusio/tools/README.md](inclusio/tools/README.md)
201
+ - [scripts/README.md](scripts/README.md)
202
+ - [src/README.md](src/README.md)
203
+ - [templates/README.md](templates/README.md)
204
+ - [tests/README.md](tests/README.md)
205
+
206
+ ---
207
+
208
+ ## License
209
+
210
+ Licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
@@ -0,0 +1 @@
1
+ """Inclusio package."""
@@ -0,0 +1 @@
1
+ """CLI entrypoints for Inclusio."""