@doxbrix/doxloop 0.1.5 → 0.2.0

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 (357) hide show
  1. package/CHANGELOG.md +1145 -0
  2. package/README.md +422 -227
  3. package/assets/doxbrix-preview.css +77 -15
  4. package/contracts/agent-events-v1.schema.json +1 -0
  5. package/contracts/coverage-v1.schema.json +59 -0
  6. package/contracts/drift-v1.schema.json +1 -0
  7. package/contracts/evaluation-v1.schema.json +62 -0
  8. package/contracts/quality-codes-v1.json +1 -0
  9. package/contracts/quality-report-v1.schema.json +1 -0
  10. package/contracts/validation-v1.schema.json +1 -0
  11. package/dist/agent-failure.d.ts +36 -0
  12. package/dist/agent-failure.js +98 -0
  13. package/dist/agent-isolation.d.ts +17 -0
  14. package/dist/agent-isolation.js +94 -0
  15. package/dist/agent-log.d.ts +197 -0
  16. package/dist/agent-log.js +1094 -0
  17. package/dist/agent-process.d.ts +63 -0
  18. package/dist/agent-process.js +128 -0
  19. package/dist/agent-reply.d.ts +47 -0
  20. package/dist/agent-reply.js +315 -0
  21. package/dist/agents.d.ts +24 -5
  22. package/dist/agents.js +60 -9
  23. package/dist/api-coverage.d.ts +11 -0
  24. package/dist/api-coverage.js +72 -0
  25. package/dist/application-probe.d.ts +28 -0
  26. package/dist/application-probe.js +93 -0
  27. package/dist/application-url.d.ts +14 -0
  28. package/dist/application-url.js +26 -0
  29. package/dist/args.js +15 -0
  30. package/dist/artifact-deploy.d.ts +9 -0
  31. package/dist/artifact-deploy.js +28 -8
  32. package/dist/assets.d.ts +72 -0
  33. package/dist/assets.js +382 -0
  34. package/dist/auth.d.ts +10 -0
  35. package/dist/auth.js +38 -9
  36. package/dist/author.d.ts +206 -4
  37. package/dist/author.js +1650 -52
  38. package/dist/authoring-batches.d.ts +190 -0
  39. package/dist/authoring-batches.js +489 -0
  40. package/dist/authoring-postpass.d.ts +79 -0
  41. package/dist/authoring-postpass.js +1289 -0
  42. package/dist/authoring-progress.d.ts +95 -0
  43. package/dist/authoring-progress.js +269 -0
  44. package/dist/autosync.d.ts +56 -0
  45. package/dist/autosync.js +442 -0
  46. package/dist/batch-artifacts.d.ts +81 -0
  47. package/dist/batch-artifacts.js +412 -0
  48. package/dist/batch-limits.d.ts +37 -0
  49. package/dist/batch-limits.js +80 -0
  50. package/dist/branding.d.ts +41 -0
  51. package/dist/branding.js +229 -0
  52. package/dist/bundle-upload.d.ts +26 -0
  53. package/dist/bundle-upload.js +99 -0
  54. package/dist/capture-auth.d.ts +95 -0
  55. package/dist/capture-auth.js +204 -0
  56. package/dist/capture.d.ts +48 -0
  57. package/dist/capture.js +20 -1
  58. package/dist/cli.js +839 -32
  59. package/dist/content-links.d.ts +10 -0
  60. package/dist/content-links.js +49 -0
  61. package/dist/contract-validation.d.ts +4 -0
  62. package/dist/contract-validation.js +25 -0
  63. package/dist/coverage-actions.d.ts +8 -0
  64. package/dist/coverage-actions.js +71 -0
  65. package/dist/coverage-resolutions.d.ts +16 -0
  66. package/dist/coverage-resolutions.js +58 -0
  67. package/dist/db.d.ts +37 -0
  68. package/dist/db.js +288 -0
  69. package/dist/demo.d.ts +12 -0
  70. package/dist/demo.js +122 -0
  71. package/dist/deploy-credentials.d.ts +7 -0
  72. package/dist/deploy-credentials.js +76 -0
  73. package/dist/deploy-targets/github-pages.d.ts +3 -0
  74. package/dist/deploy-targets/github-pages.js +100 -0
  75. package/dist/deploy-targets/index.d.ts +8 -0
  76. package/dist/deploy-targets/index.js +78 -0
  77. package/dist/deploy-targets/netlify.d.ts +3 -0
  78. package/dist/deploy-targets/netlify.js +49 -0
  79. package/dist/deploy-targets/types.d.ts +32 -0
  80. package/dist/deploy-targets/types.js +2 -0
  81. package/dist/deploy-targets/vercel.d.ts +3 -0
  82. package/dist/deploy-targets/vercel.js +95 -0
  83. package/dist/deploy.d.ts +9 -0
  84. package/dist/deploy.js +87 -13
  85. package/dist/deterministic-capture.d.ts +90 -0
  86. package/dist/deterministic-capture.js +435 -0
  87. package/dist/direct-edit.d.ts +40 -0
  88. package/dist/direct-edit.js +159 -0
  89. package/dist/docs-crawl.d.ts +86 -0
  90. package/dist/docs-crawl.js +536 -0
  91. package/dist/docs-site.d.ts +49 -0
  92. package/dist/docs-site.js +233 -0
  93. package/dist/doctor.js +8 -0
  94. package/dist/documentation-collections.d.ts +23 -0
  95. package/dist/documentation-collections.js +191 -0
  96. package/dist/documentation-plan.d.ts +253 -0
  97. package/dist/documentation-plan.js +2563 -0
  98. package/dist/doxbrix-build.d.ts +19 -0
  99. package/dist/doxbrix-build.js +167 -0
  100. package/dist/doxbrix-markdown.d.ts +9 -0
  101. package/dist/doxbrix-markdown.js +115 -14
  102. package/dist/drift.d.ts +10 -0
  103. package/dist/drift.js +164 -0
  104. package/dist/evaluation.d.ts +46 -0
  105. package/dist/evaluation.js +113 -0
  106. package/dist/evidence-pack.d.ts +47 -0
  107. package/dist/evidence-pack.js +358 -0
  108. package/dist/evidence.d.ts +25 -0
  109. package/dist/evidence.js +175 -0
  110. package/dist/fs.d.ts +8 -2
  111. package/dist/fs.js +41 -11
  112. package/dist/generator-api.d.ts +89 -0
  113. package/dist/generator-preflight.d.ts +27 -0
  114. package/dist/generator-preflight.js +105 -0
  115. package/dist/generator-runtime.d.ts +7 -0
  116. package/dist/generator-runtime.js +17 -1
  117. package/dist/generators.d.ts +24 -2
  118. package/dist/generators.js +54 -1
  119. package/dist/git-delivery.d.ts +17 -0
  120. package/dist/git-delivery.js +123 -0
  121. package/dist/globs.d.ts +16 -0
  122. package/dist/globs.js +65 -0
  123. package/dist/glossary.d.ts +26 -0
  124. package/dist/glossary.js +179 -0
  125. package/dist/history.d.ts +106 -0
  126. package/dist/history.js +600 -0
  127. package/dist/html-markdown.d.ts +46 -0
  128. package/dist/html-markdown.js +423 -0
  129. package/dist/interactive.js +3 -0
  130. package/dist/job-events.d.ts +74 -0
  131. package/dist/job-events.js +377 -0
  132. package/dist/keep-awake.d.ts +50 -0
  133. package/dist/keep-awake.js +123 -0
  134. package/dist/local-source-snapshot.d.ts +20 -0
  135. package/dist/local-source-snapshot.js +61 -0
  136. package/dist/mintlify-detect.d.ts +3 -0
  137. package/dist/mintlify-detect.js +18 -0
  138. package/dist/mintlify-import.d.ts +75 -0
  139. package/dist/mintlify-import.js +190 -0
  140. package/dist/navigation.d.ts +98 -0
  141. package/dist/navigation.js +310 -0
  142. package/dist/openapi.d.ts +60 -0
  143. package/dist/openapi.js +439 -0
  144. package/dist/page-editor-bridge.d.ts +3 -0
  145. package/dist/page-editor-bridge.js +109 -0
  146. package/dist/page-editor-preview.d.ts +10 -0
  147. package/dist/page-editor-preview.js +55 -0
  148. package/dist/page-extension.d.ts +9 -0
  149. package/dist/page-extension.js +15 -0
  150. package/dist/page-metadata.d.ts +28 -0
  151. package/dist/page-metadata.js +166 -0
  152. package/dist/page-operations.d.ts +34 -0
  153. package/dist/page-operations.js +215 -0
  154. package/dist/page-routes.d.ts +4 -0
  155. package/dist/page-routes.js +61 -0
  156. package/dist/pages.d.ts +20 -0
  157. package/dist/pages.js +184 -0
  158. package/dist/plan-generator.d.ts +3 -0
  159. package/dist/plan-generator.js +21 -0
  160. package/dist/plan-navigation.d.ts +11 -0
  161. package/dist/plan-navigation.js +30 -0
  162. package/dist/planning-captures.d.ts +20 -0
  163. package/dist/planning-captures.js +143 -0
  164. package/dist/planning-research.d.ts +135 -0
  165. package/dist/planning-research.js +472 -0
  166. package/dist/planning-triage.d.ts +23 -0
  167. package/dist/planning-triage.js +131 -0
  168. package/dist/preview.d.ts +24 -0
  169. package/dist/preview.js +280 -29
  170. package/dist/project-detect.d.ts +36 -0
  171. package/dist/project-detect.js +251 -0
  172. package/dist/project-import.d.ts +54 -0
  173. package/dist/project-import.js +157 -0
  174. package/dist/project-lock.d.ts +6 -0
  175. package/dist/project-lock.js +96 -0
  176. package/dist/project-registry.d.ts +25 -0
  177. package/dist/project-registry.js +79 -0
  178. package/dist/project.d.ts +35 -3
  179. package/dist/project.js +388 -38
  180. package/dist/prompts.d.ts +9 -0
  181. package/dist/prompts.js +25 -0
  182. package/dist/proposal-replay.d.ts +32 -0
  183. package/dist/proposal-replay.js +99 -0
  184. package/dist/quality-claims.d.ts +8 -0
  185. package/dist/quality-claims.js +168 -0
  186. package/dist/quality-config.d.ts +5 -0
  187. package/dist/quality-config.js +84 -0
  188. package/dist/quality-contract.d.ts +37 -0
  189. package/dist/quality-contract.js +46 -0
  190. package/dist/quality-examples.d.ts +4 -0
  191. package/dist/quality-examples.js +233 -0
  192. package/dist/quality-gates.d.ts +16 -0
  193. package/dist/quality-gates.js +192 -0
  194. package/dist/quality-links.d.ts +7 -0
  195. package/dist/quality-links.js +149 -0
  196. package/dist/quality-lint.d.ts +6 -0
  197. package/dist/quality-lint.js +124 -0
  198. package/dist/quality-rendered.d.ts +11 -0
  199. package/dist/quality-rendered.js +222 -0
  200. package/dist/quality-schema.d.ts +3 -0
  201. package/dist/quality-schema.js +71 -0
  202. package/dist/release-notes.d.ts +44 -0
  203. package/dist/release-notes.js +183 -0
  204. package/dist/remote-monitor.d.ts +16 -0
  205. package/dist/remote-monitor.js +74 -0
  206. package/dist/remote-source.d.ts +34 -0
  207. package/dist/remote-source.js +426 -0
  208. package/dist/review-diff.d.ts +82 -0
  209. package/dist/review-diff.js +400 -0
  210. package/dist/review-learning.d.ts +11 -0
  211. package/dist/review-learning.js +60 -0
  212. package/dist/review-render.d.ts +38 -0
  213. package/dist/review-render.js +224 -0
  214. package/dist/review-report.d.ts +9 -0
  215. package/dist/review-report.js +89 -0
  216. package/dist/review-ui.d.ts +14 -0
  217. package/dist/review-ui.js +1248 -0
  218. package/dist/schedule.d.ts +78 -0
  219. package/dist/schedule.js +480 -0
  220. package/dist/screen-capture-provider.d.ts +52 -0
  221. package/dist/screen-capture-provider.js +218 -0
  222. package/dist/screenshot-workflow.d.ts +167 -0
  223. package/dist/screenshot-workflow.js +1237 -0
  224. package/dist/settings.d.ts +1 -1
  225. package/dist/settings.js +95 -7
  226. package/dist/site-export.d.ts +18 -0
  227. package/dist/site-export.js +87 -0
  228. package/dist/source-connectors.d.ts +33 -0
  229. package/dist/source-connectors.js +268 -0
  230. package/dist/source-discovery.d.ts +132 -0
  231. package/dist/source-discovery.js +823 -0
  232. package/dist/source-intelligence.d.ts +9 -0
  233. package/dist/source-intelligence.js +306 -0
  234. package/dist/sync-review.d.ts +28 -0
  235. package/dist/sync-review.js +264 -0
  236. package/dist/sync-runs.d.ts +192 -0
  237. package/dist/sync-runs.js +2244 -0
  238. package/dist/sync.d.ts +35 -0
  239. package/dist/sync.js +298 -32
  240. package/dist/text-diff.d.ts +9 -0
  241. package/dist/text-diff.js +59 -0
  242. package/dist/types.d.ts +946 -1
  243. package/dist/ui/assets/doxloop-logo-light-De7Nx7j7.png +0 -0
  244. package/dist/ui/assets/index-BHBYU2aG.css +1 -0
  245. package/dist/ui/assets/index-Cq3RPQiC.js +33 -0
  246. package/dist/ui/index.html +18 -0
  247. package/dist/ui-server.d.ts +83 -0
  248. package/dist/ui-server.js +3532 -0
  249. package/dist/usage-budget.d.ts +28 -0
  250. package/dist/usage-budget.js +90 -0
  251. package/dist/validation.d.ts +25 -1
  252. package/dist/validation.js +312 -26
  253. package/dist/workspace-tools.d.ts +54 -0
  254. package/dist/workspace-tools.js +123 -0
  255. package/docs/agent-compatibility.md +49 -32
  256. package/docs/ci-and-automation.md +105 -66
  257. package/docs/doxbrix-http-api.md +8 -1
  258. package/docs/existing-documentation.md +80 -0
  259. package/docs/generation-performance.md +108 -0
  260. package/docs/generator-authoring.md +68 -5
  261. package/docs/generator-selection.md +50 -13
  262. package/docs/mintlify-import.md +71 -0
  263. package/docs/openapi-security.md +25 -0
  264. package/docs/project-format.md +331 -36
  265. package/docs/release-quality.md +158 -0
  266. package/docs/releasing.md +72 -0
  267. package/docs/review-workflows.md +51 -0
  268. package/docs/security-model.md +102 -39
  269. package/docs/troubleshooting.md +226 -93
  270. package/package.json +46 -15
  271. package/scripts/test-auto-screenshot.mjs +172 -0
  272. package/skills/doxloop-authoring/SKILL.md +242 -361
  273. package/skills/doxloop-authoring/references/existing-documentation.md +94 -0
  274. package/skills/doxloop-authoring/references/navigation-architecture.md +18 -7
  275. package/skills/doxloop-authoring/references/page-depth.md +169 -0
  276. package/skills/doxloop-authoring/references/project-format.md +106 -7
  277. package/skills/doxloop-authoring/references/quality.md +10 -0
  278. package/skills/doxloop-authoring/references/screenshot-manifest.md +113 -0
  279. package/skills/doxloop-authoring/references/screenshots.md +149 -235
  280. package/skills/doxloop-authoring/references/workflows.md +76 -0
  281. package/skills/doxloop-doxbrix/SKILL.md +38 -22
  282. package/skills/doxloop-doxbrix/references/api-endpoints.md +15 -14
  283. package/skills/doxloop-doxbrix/references/components.md +30 -3
  284. package/skills/doxloop-doxbrix/references/manifest.md +3 -2
  285. package/vendor/doxbrix-import/LICENSE +202 -0
  286. package/vendor/doxbrix-import/README.md +17 -0
  287. package/vendor/doxbrix-import/UPSTREAM.json +47 -0
  288. package/vendor/doxbrix-import/dist/docs/frontmatter.d.ts +13 -0
  289. package/vendor/doxbrix-import/dist/docs/frontmatter.js +83 -0
  290. package/vendor/doxbrix-import/dist/docs/import.d.ts +21 -0
  291. package/vendor/doxbrix-import/dist/docs/import.js +147 -0
  292. package/vendor/doxbrix-import/dist/docs/manifest.d.ts +163 -0
  293. package/vendor/doxbrix-import/dist/docs/manifest.js +64 -0
  294. package/vendor/doxbrix-import/dist/docs/project.d.ts +25 -0
  295. package/vendor/doxbrix-import/dist/docs/project.js +77 -0
  296. package/vendor/doxbrix-import/dist/docs/starter.d.ts +4 -0
  297. package/vendor/doxbrix-import/dist/docs/starter.js +11 -0
  298. package/vendor/doxbrix-import/dist/importer.d.ts +227 -0
  299. package/vendor/doxbrix-import/dist/importer.js +1567 -0
  300. package/vendor/doxbrix-import/dist/mintlify-openapi.d.ts +37 -0
  301. package/vendor/doxbrix-import/dist/mintlify-openapi.js +305 -0
  302. package/vendor/doxbrix-import/dist/safe-path.d.ts +9 -0
  303. package/vendor/doxbrix-import/dist/safe-path.js +47 -0
  304. package/dist/agents.d.ts.map +0 -1
  305. package/dist/agents.js.map +0 -1
  306. package/dist/args.d.ts.map +0 -1
  307. package/dist/args.js.map +0 -1
  308. package/dist/artifact-deploy.d.ts.map +0 -1
  309. package/dist/artifact-deploy.js.map +0 -1
  310. package/dist/auth.d.ts.map +0 -1
  311. package/dist/auth.js.map +0 -1
  312. package/dist/author.d.ts.map +0 -1
  313. package/dist/author.js.map +0 -1
  314. package/dist/capture.d.ts.map +0 -1
  315. package/dist/capture.js.map +0 -1
  316. package/dist/cli.d.ts.map +0 -1
  317. package/dist/cli.js.map +0 -1
  318. package/dist/deploy.d.ts.map +0 -1
  319. package/dist/deploy.js.map +0 -1
  320. package/dist/deployment-visibility.d.ts.map +0 -1
  321. package/dist/deployment-visibility.js.map +0 -1
  322. package/dist/doctor.d.ts.map +0 -1
  323. package/dist/doctor.js.map +0 -1
  324. package/dist/doxbrix-markdown.d.ts.map +0 -1
  325. package/dist/doxbrix-markdown.js.map +0 -1
  326. package/dist/errors.d.ts.map +0 -1
  327. package/dist/errors.js.map +0 -1
  328. package/dist/fs.d.ts.map +0 -1
  329. package/dist/fs.js.map +0 -1
  330. package/dist/generator-api.d.ts.map +0 -1
  331. package/dist/generator-api.js.map +0 -1
  332. package/dist/generator-manager.d.ts.map +0 -1
  333. package/dist/generator-manager.js.map +0 -1
  334. package/dist/generator-runtime.d.ts.map +0 -1
  335. package/dist/generator-runtime.js.map +0 -1
  336. package/dist/generators.d.ts.map +0 -1
  337. package/dist/generators.js.map +0 -1
  338. package/dist/interactive.d.ts.map +0 -1
  339. package/dist/interactive.js.map +0 -1
  340. package/dist/preview.d.ts.map +0 -1
  341. package/dist/preview.js.map +0 -1
  342. package/dist/progress.d.ts.map +0 -1
  343. package/dist/progress.js.map +0 -1
  344. package/dist/project.d.ts.map +0 -1
  345. package/dist/project.js.map +0 -1
  346. package/dist/prompts.d.ts.map +0 -1
  347. package/dist/prompts.js.map +0 -1
  348. package/dist/settings.d.ts.map +0 -1
  349. package/dist/settings.js.map +0 -1
  350. package/dist/sync.d.ts.map +0 -1
  351. package/dist/sync.js.map +0 -1
  352. package/dist/types.d.ts.map +0 -1
  353. package/dist/types.js.map +0 -1
  354. package/dist/validation.d.ts.map +0 -1
  355. package/dist/validation.js.map +0 -1
  356. package/dist/version.d.ts.map +0 -1
  357. package/dist/version.js.map +0 -1
package/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  <p align="center">
12
12
  Turn source code or an API specification into a polished, validated documentation site<br>
13
- with Codex, Claude Code, or Gemini.
13
+ with Codex, Claude Code, or Gemini, from one local control center.
14
14
  </p>
15
15
 
16
16
  <p align="center">
@@ -22,70 +22,128 @@
22
22
  <p align="center">
23
23
  <a href="#quickstart">Quickstart</a> ·
24
24
  <a href="#real-examples">Real examples</a> ·
25
- <a href="#use-doxloop-in-vs-code-codex-or-claude">Editor and agent apps</a> ·
26
- <a href="#everyday-workflow">Commands</a> ·
25
+ <a href="#the-workspace">The workspace</a> ·
26
+ <a href="#keep-documentation-current">Monitoring</a> ·
27
+ <a href="#review-what-changed-and-why">Review</a> ·
27
28
  <a href="#guides">Guides</a>
28
29
  </p>
29
30
 
31
+ https://github.com/user-attachments/assets/2949f435-538d-40eb-9d3d-b226664b724d
32
+
30
33
  ```mermaid
31
34
  flowchart LR
32
35
  A["Source code<br>or OpenAPI"] --> B["Doxloop +<br>your coding agent"]
33
- B --> C["Structured<br>documentation"]
34
- C --> D["Preview, validate,<br>and publish"]
36
+ B --> C["Plan, write,<br>and review"]
37
+ C --> D["Preview, validate,<br>and deploy"]
35
38
  ```
36
39
 
37
- Doxloop gives your coding agent a repeatable documentation workflow: inspect
38
- the source, identify the audience, plan the content, write generator-native
39
- pages, build navigation, and validate the result. Your product source stays
40
- separate from the generated documentation project.
40
+ Doxloop is a local, browser-based control center for documentation. You connect
41
+ the sources that describe your product, describe what readers should be able to
42
+ do, and approve a documentation plan. Your coding agent researches the evidence
43
+ and writes generator-native pages into an isolated proposal. You review every
44
+ change, accept what is right, preview the site, and deploy it, all from the same
45
+ window. Product source stays read-only and separate from the documentation
46
+ project.
41
47
 
42
48
  ## Quickstart
43
49
 
44
50
  ### 1. Install
45
51
 
46
- Requires Node.js 20.12 or later.
47
-
48
- ```bash
49
- npm install --global @doxbrix/doxloop
50
- ```
52
+ Doxloop requires Node.js 22.13 or later. Install Google Chrome for application screenshots and sign-in capture; text-only authoring does not need a browser.
51
53
 
52
- ### 2. Set up the documentation project
54
+ Try the bundled demo first, without an agent or a model charge:
53
55
 
54
- Run this from your product directory:
55
-
56
- ```bash
57
- doxloop init
56
+ ```sh
57
+ npx @doxbrix/doxloop demo
58
58
  ```
59
59
 
60
- Doxloop detects the product repository and guides you through the project
61
- location, product evidence, site title, and generator. It shows a complete
62
- summary before creating anything. Product code and documentation are kept in
63
- separate sibling directories.
64
-
65
- Documenting an API without a product checkout? Run the same command in the
66
- directory where you want to work, then choose **API specification** and enter
67
- the OpenAPI file or URL when asked.
68
-
69
- ### 3. Create the documentation
60
+ Then adopt an existing documentation folder in the setup wizard, or create a new project. Run the read-only documentation audit before requesting an update. Start with the five-page preset: review the plan and its page, screenshot, and time caps before generation. Planning and writing are separate agent runs; each may take several minutes and uses your agent subscription or billing. Doxloop reports observed durations when comparable completed runs exist; a time cap is not a price quote.
70
61
 
71
62
  ```bash
72
- cd ../my-product-docs
73
- doxloop create
63
+ npm install --global @doxbrix/doxloop
74
64
  ```
75
65
 
76
- `create` asks what readers need and which agent to use, shows all supported
77
- choices, and automatically installs Codex, Claude Code, or Gemini with npm when
78
- you select a missing agent. It shows an authoring summary and starts the agent
79
- only after confirmation. Press Enter at the documentation request to let the
80
- agent recommend a complete, evidence-backed plan.
66
+ ### 2. Open the control center
81
67
 
82
- ### 4. Preview and validate
68
+ Open a terminal in the folder where you want the documentation project to be
69
+ created. That is usually the parent folder of your product checkout, so the
70
+ product and its documentation become sibling directories. Then start Doxloop:
83
71
 
84
72
  ```bash
85
- doxloop preview --open
86
- doxloop test
73
+ doxloop ui
87
74
  ```
88
75
 
76
+ This is the only command you need. It starts a loopback-only server on
77
+ `http://127.0.0.1:4317` and opens your browser. Everything else happens in the
78
+ browser. When no documentation project exists yet, Doxloop opens the setup
79
+ wizard. When one exists, it opens the workspace for that project.
80
+
81
+ Already have a documentation site? The wizard's first step offers **Use
82
+ existing documentation folder**, which adopts a Docusaurus, MkDocs, Hugo,
83
+ Sphinx, VitePress, Starlight, Nextra, Markdoc, Jekyll, or Doxbrix site as it
84
+ is: Doxloop reads the site's configuration, lists its pages, and changes none
85
+ of them. Every project you open is remembered, and the project switcher in the
86
+ sidebar moves between them.
87
+
88
+ For **Mintlify**, choose **Use existing documentation folder → Mintlify to
89
+ Doxbrix**. Select a local folder or enter a GitHub repository, review the
90
+ conversion, and create a new Doxbrix project. Doxloop uses the tested Doxbrix
91
+ conversion engine and preserves the original Mintlify project. See
92
+ [Import Mintlify documentation](docs/mintlify-import.md).
93
+
94
+ ### 3. Set up the workspace
95
+
96
+ The wizard walks through five steps and creates nothing until the last one.
97
+
98
+ 1. **Workspace.** Choose **Start new** and enter a folder name for the
99
+ documentation project and the title readers will see, or choose **Use
100
+ existing documentation folder** to adopt a site you already have.
101
+ 2. **Sources.** Choose **Add source**, then **Source code** for a local folder
102
+ or a Git repository, **OpenAPI spec** to upload a file or paste a public
103
+ URL, or **Existing documentation** to crawl the docs site you publish today
104
+ so the agent can audit it and rewrite it (see
105
+ [Rewrite existing documentation](docs/existing-documentation.md)). Private
106
+ repositories accept a username and a personal access token that is held in
107
+ memory for the session and never written to the project.
108
+ 3. **Tools.** Pick the documentation generator (Doxbrix is recommended and
109
+ needs no installation), the coding assistant (Codex, Claude Code, or
110
+ Gemini), and optionally the model. If the assistant is not installed,
111
+ Doxloop installs it for you. Answer **Add product screenshots?** to let
112
+ Doxloop capture images from a running local or test application.
113
+ 4. **Guidance.** Describe what readers should be able to do, choose the
114
+ documentation depth (Comprehensive is recommended; the page count comes
115
+ from your sources, not from the depth), add audiences, and open **Advanced
116
+ planning preferences** for examples, locale, terminology, exclusions,
117
+ accessibility target, and how the planner should handle questions.
118
+ 5. **Review.** Check the summary and choose **Create documentation plan**.
119
+
120
+ Doxloop then downloads read-only snapshots of any remote sources, installs the
121
+ project-local authoring skills for the selected assistant, and starts a
122
+ read-only planning run. The planner researches your sources and proposes a
123
+ page structure. Nothing is written until you approve it.
124
+
125
+ ### 4. Approve the plan and generate
126
+
127
+ The plan opens on the **Create** page. Answer anything under **Needs your
128
+ decision**, adjust the **Documentation brief**, and edit the **Documentation
129
+ structure**: add, reorder, remove, or defer pages, and open any page to change
130
+ its purpose, priority, section, or screenshot treatment. Ask for changes in
131
+ plain language under **Want to change the plan?** and a new plan version comes
132
+ back. When it looks right, choose **Approve & generate**.
133
+
134
+ Generation runs in an isolated workspace while **Live activity** shows each
135
+ stage. You can stop it at any time. When it finishes, the result is a proposal
136
+ and the documentation project is still unchanged.
137
+
138
+ ### 5. Review, preview, and deploy
139
+
140
+ 1. Open **Review** to compare the current and proposed versions of every file.
141
+ Accept one change, one file, or everything, or ask the agent to revise a
142
+ specific file.
143
+ 2. Choose **Preview docs** in the top bar to open the rendered site locally.
144
+ 3. Open **Publish**, sign in to Doxbrix once from your browser, choose who can
145
+ read the site, and choose **Publish to Doxbrix**.
146
+
89
147
  Your source and docs remain separate:
90
148
 
91
149
  ```text
@@ -94,230 +152,322 @@ workspace/
94
152
  └── my-product-docs/ ← editable and deployable documentation
95
153
  ```
96
154
 
97
- From then on, the everyday workflow is deliberately short:
98
-
99
- ```bash
100
- doxloop update
101
- doxloop deploy
102
- doxloop settings
103
- ```
104
-
105
- No configuration flags are required for interactive use. Advanced flags remain
106
- available as optional one-run overrides for scripts and CI.
155
+ From then on, every update follows the same loop: describe the change on the
156
+ **Update** page, approve the plan, review the proposal, preview, and deploy.
107
157
 
108
158
  ## Real examples
109
159
 
110
- ### Lodash developer docs from the CLI
111
-
112
- From the [Lodash](https://github.com/lodash/lodash) source directory:
160
+ ### Lodash developer docs from a local checkout
113
161
 
114
- ```bash
115
- doxloop init
116
- cd ../lodash-docs
117
- doxloop create
118
- ```
162
+ With the [Lodash](https://github.com/lodash/lodash) repository checked out,
163
+ open a terminal in its parent folder and run `doxloop ui`. In the wizard:
119
164
 
120
- At the `create` prompt, request developer documentation with a quickstart,
121
- class and function reference, and a simple example for every function. Choose
122
- Claude Code when Doxloop asks which agent to use. If it is missing, Doxloop
123
- installs it before the run. That choice can be remembered for later updates.
165
+ 1. Name the workspace `lodash-docs`.
166
+ 2. Add a **Source code** source, choose **Local folder**, and browse to the
167
+ Lodash checkout.
168
+ 3. Choose **Doxbrix** as the generator and **Claude Code** as the coding
169
+ assistant. Doxloop installs it if it is missing.
170
+ 4. Under **Guidance**, ask for developer documentation with a quickstart, a
171
+ class and function reference, and a simple example for every function.
172
+ 5. Choose **Create documentation plan**, approve the plan, and review the
173
+ proposal.
124
174
 
125
175
  **Generated documentation:** <https://apps-lodash-docs.sites.doxbrix.com/>
126
176
 
127
- ### Petstore API docs from VS Code with Codex
177
+ ### Petstore API docs from an OpenAPI URL
128
178
 
129
- First, initialize a documentation project. Use `petstore-docs` as the project
130
- directory, choose **API specification**, and enter
131
- `https://petstore3.swagger.io/api/v3/openapi.json` when asked:
179
+ No product checkout is needed. Run `doxloop ui` in any folder and, in the
180
+ wizard:
132
181
 
133
- ```bash
134
- doxloop init
135
- cd petstore-docs
136
- code .
137
- ```
138
-
139
- Then give Codex this prompt:
140
-
141
- > Using Doxloop authoring, create API documentation for this OpenAPI document:
142
- > https://petstore3.swagger.io/api/v3/openapi.json
143
-
144
- Because `doxloop init` installs the Doxloop authoring skills inside the project,
145
- Codex can inspect the OpenAPI document and create the pages, endpoint reference,
146
- examples, and navigation directly in the opened folder.
182
+ 1. Name the workspace `petstore-docs`.
183
+ 2. Add an **OpenAPI spec** source, choose **From URL**, and enter
184
+ `https://petstore3.swagger.io/api/v3/openapi.json`.
185
+ 3. Choose **Codex** as the coding assistant.
186
+ 4. Under **Guidance**, ask for API documentation with an endpoint reference and
187
+ request examples.
188
+ 5. Choose **Create documentation plan**, approve the plan, review the proposal,
189
+ and open **Preview docs**.
147
190
 
148
191
  **Generated documentation:** <https://apps-pet-store.sites.doxbrix.com/>
149
192
 
150
- When it finishes:
151
-
152
- Run `doxloop preview --open` and `doxloop test` when it finishes.
153
-
154
- ## Use Doxloop in VS Code, Codex, or Claude
155
-
156
- Prefer working in Visual Studio Code, the Codex app, Claude Code, or another
157
- local agent experience? Initialize the project first:
158
-
159
- ```bash
160
- doxloop init
161
- ```
162
-
163
- Then open the generated folder where you want to work:
164
-
165
- | Where | Open the project |
166
- | --- | --- |
167
- | VS Code with Codex | `code ../my-product-docs` |
168
- | Codex app | Open the generated documentation folder |
169
- | Claude Code | `cd ../my-product-docs && claude` |
170
-
171
- Ask the agent to use Doxloop authoring:
172
-
173
- ```text
174
- Use Doxloop authoring to create developer documentation for this project.
175
- Start with a five-minute quickstart, then add task guides and API reference.
176
- ```
177
-
178
- `doxloop init` installs project-local skills for the supported agent
179
- ecosystems:
180
-
181
- | Agent experience | Installed skills |
182
- | --- | --- |
183
- | Codex and Gemini | `.agents/skills/` |
184
- | Claude Code | `.claude/skills/` |
185
-
186
- If an editor does not load project skills automatically, prepare a complete
187
- prompt and paste it into the agent session:
188
-
189
- ```bash
190
- doxloop create --print \
191
- "Create developer documentation with a quickstart and API reference."
192
- ```
193
-
194
- > `--print` cannot record when the external agent finishes. Use a
195
- > Doxloop-launched CLI agent when automatic source-change tracking is important.
196
-
197
193
  ## What Doxloop handles
198
194
 
199
195
  | Capability | What you get |
200
196
  | --- | --- |
201
- | 🔎 **Source-grounded research** | Uses code, public interfaces, tests, examples, and configuration as evidence. |
202
- | 🧭 **Documentation planning** | Identifies readers, important workflows, page coverage, and navigation before writing. |
197
+ | 🔎 **Source-grounded research** | Uses code, public interfaces, tests, examples, configuration, and OpenAPI documents as evidence. |
198
+ | 🔁 **Rewrite existing docs** | Crawls the documentation you publish today, reports coverage gaps, contradicted claims, and obsolete pages against your sources, and rewrites it with redirects from every old page. |
199
+ | 🧭 **Plan before writing** | Proposes readers, page coverage, and navigation as an editable plan that you approve before anything is written. |
203
200
  | ✍️ **Generator-native output** | Creates the right Markdown, MDX, configuration, components, and theme for the selected generator. |
204
- | ✅ **Built-in quality checks** | Validates pages, navigation, links, metadata, code fences, and generator conventions. |
205
- | 🔄 **Focused updates** | Tracks the source revision and directs the agent to documentation affected by product changes. |
206
- | 🔐 **Local-first control** | Keeps authoring, validation, and preview local; publishing is always a separate command. |
201
+ | ✅ **Built-in quality checks** | Validates pages, navigation, links, metadata, code fences, page depth, and generator conventions on every proposal and before every deploy. |
202
+ | 🔍 **Reviewable proposals** | Every run lands in an isolated proposal with rendered and source comparisons, per-change acceptance, rationale, and evidence. |
203
+ | 📊 **Coverage by surface** | Shows which discovered product surfaces have documentation evidence and lets you resolve gaps. |
204
+ | ⚙️ **Monitoring** | Polls the source repository on a local schedule and drafts a proposal when documentation goes stale. |
205
+ | 📸 **Guide screenshots** | Gives the agent a scoped browser, verifies every PNG, and embeds images beside the steps they explain. |
206
+ | 🔐 **Local-first control** | Keeps authoring, validation, and preview on your machine. Deploying is a separate confirmed action and credentials never reach the browser. |
207
+
208
+ ## The workspace
207
209
 
208
- ## Everyday workflow
210
+ Every page has a stable URL, so browser back and forward work as expected. The
211
+ left navigation shows:
209
212
 
210
- | Goal | Command |
213
+ | Page | What you do there |
211
214
  | --- | --- |
212
- | Create a docs project | `doxloop init` |
213
- | Generate documentation | `doxloop create` |
214
- | Update docs after code changes | `doxloop update` |
215
- | View or change project settings | `doxloop settings` |
216
- | Run a read-only quality review | `doxloop review` |
217
- | Preview locally | `doxloop preview --open` |
218
- | Validate the project | `doxloop test` |
219
- | Check setup and agent readiness | `doxloop doctor` |
220
- | See project status | `doxloop status` |
221
- | Deploy using saved settings | `doxloop deploy` |
222
-
223
- Run `doxloop <command> --help` for every option.
215
+ | **Home** | Follow the loop from sources through plan, write, review, and publish. See what needs your review, overall coverage, the published address, and recent activity. Press ⌘K to search pages, screens, and actions from anywhere. |
216
+ | **Sources** | Connect and test local folders, Git repositories, OpenAPI specifications, and existing documentation sites. Set documentation ownership per source, review coverage by surface, resolve gaps, and configure **Monitoring**. |
217
+ | **Plan** | Describe what readers need, choose the planning agent, model, and screenshot behaviour, review and edit the plan, and approve generation. The page also keeps the **Update history** of every request. |
218
+ | **Docs** | Browse every page by navigation section, preview it, edit its metadata, and describe a focused agent edit. Review the rendered and source changes before accepting, rejecting, refining, or undoing them. The **Navigation** view arranges the sidebar and **Images & files** manages uploads and alt text. |
219
+ | **Review** | Inspect each proposal file by file, read why each change was made, accept changes at any granularity, ask the agent to revise, and optionally prepare a pull request branch. |
220
+ | **Publish** | Publish to Doxbrix: a pre-publish checklist, public or private access, the live site with its address, changes waiting since the last publish, and **History**. |
221
+ | **Settings** | Change the site title, default agent, audience and voice, terminology and the generated glossary, application screenshot settings, branding (logo, colours, fonts), and see the active generator. |
222
+
223
+ **Preview docs** in the top bar starts a local preview of the current
224
+ documentation and opens it in a new tab. The project name at the top of the
225
+ sidebar is the **project switcher**: it lists the projects you opened recently,
226
+ opens any folder, imports an existing documentation site, or starts the setup
227
+ wizard for a new project. **New documentation project** at the bottom of the
228
+ sidebar opens the same wizard.
229
+
230
+ ### Work with more than one project
231
+
232
+ Doxloop shows one project at a time and remembers every project it has opened.
233
+ Open the project switcher and pick a recent project to move to it in one click;
234
+ both stay in the list. **Open folder…** opens a folder that is already a
235
+ Doxloop project, or offers to import it when it only holds a documentation
236
+ site. **Import existing documentation…** asks for the folder, shows the
237
+ detected generator, content directory, page count, and the first pages, lets
238
+ you correct any of them, and then adopts the folder: Doxloop writes its own
239
+ project file, an evidence map that marks every page as not yet verified, and
240
+ the agent skills, and runs a read-only discovery pass. No page is modified.
241
+ Sites built with a generator other than Doxbrix need that generator's Doxloop
242
+ package; the import dialog offers to add it to the folder's `package.json`.
243
+
244
+ Switching is refused while a plan, generation, edit, or deployment is running
245
+ in the current project; a local preview is stopped, because it serves the
246
+ project that started it.
247
+
248
+ ### Edit a page
249
+
250
+ Run `doxloop ui`, open **Pages**, and select one or more existing pages. Tell
251
+ the agent what should change, optionally allow related navigation or image
252
+ updates, and wait for the isolated proposal. The live documentation remains
253
+ unchanged until you compare the rendered and source versions and choose
254
+ **Accept**; you can also **Reject**, **Refine**, or **Undo** the edit.
255
+
256
+ Some changes need no agent at all. **Page metadata** under the page header
257
+ edits the title, description, sidebar icon, canonical URL, and social image
258
+ directly, with validation and rollback. **Insert an image…** in the composer
259
+ picks or uploads an image and adds it to the instruction.
260
+
261
+ ### Arrange the navigation
262
+
263
+ Open **Pages → Navigation**. Drag rows to reorder pages, drop them into a
264
+ section to group them, or use Alt with the arrow keys; select a row to rename
265
+ its label, choose an icon, or hide it. Pages that exist but are not in the
266
+ sidebar are listed under **Add page**. **Save navigation** validates the tree,
267
+ writes it to the generator's own file (`docs.json` for Doxbrix, the `nav` list
268
+ in `mkdocs.yml` for MkDocs), and reloads the preview beside the editor.
269
+ Generators whose navigation lives in code are named instead of edited. The
270
+ same editor appears in plan review, where it arranges the sections of a
271
+ proposed plan.
272
+
273
+ ### Brand the site
274
+
275
+ Open **Settings → Branding**. For Doxbrix sites, choose the logo and favicon
276
+ from the project's images (or upload them), set the primary colour and the
277
+ light and dark accents and backgrounds, pick the colour mode and code theme,
278
+ and name the body, heading, and code fonts. The preview below reloads on save.
279
+ Other generators keep their theme in their own configuration file, which the
280
+ panel names.
281
+
282
+ ### Manage images and files
283
+
284
+ Open **Pages → Images & files**. Upload or drop images and files into the
285
+ generator's asset directory, see which pages embed each one, edit the alt text
286
+ across all of them at once, replace a file in place, or delete one that no page
287
+ uses. Screenshots in a proposal that is still under review can be replaced from
288
+ the capture gallery before you accept it.
289
+
290
+ ### Write release notes
291
+
292
+ When a connected source is a Git checkout, the **Update** page offers
293
+ **Release notes** beside the usual documentation request. Choose the
294
+ repository, the version label, and the two refs that bound the release;
295
+ Doxloop reads the commits, changed files, and the matching changelog section
296
+ between them and gives the planner that inventory as the only evidence for the
297
+ release page.
298
+
299
+ ### Generate a glossary
300
+
301
+ Under **Settings → Audience and voice**, terminology is edited as term and
302
+ definition rows. **Generate glossary page** writes a glossary page from those
303
+ rows in the generator's format, adds it to the navigation, and records it in
304
+ the evidence map, so the vocabulary the team curates is visible to readers
305
+ without an agent run.
224
306
 
225
307
  ### Change project settings
226
308
 
227
- Use one settings command instead of editing `.doxloop/project.json` or
228
- remembering configuration flags:
229
-
230
- ```bash
231
- doxloop settings
232
- ```
233
-
234
- The interactive settings menu manages:
235
-
236
- - product source directories and OpenAPI specifications;
237
- - the site title and default authoring agent;
238
- - audience, locale, tone, and reader outcomes;
239
- - design references and application screenshot behavior; and
240
- - hosted project name, slug, visibility, and Doxbrix destination.
309
+ Open **Settings** instead of editing `.doxloop/project.json` by hand. Its five
310
+ sections manage:
311
+
312
+ - **General**: site title and the default documentation agent;
313
+ - **Audience and voice**: primary audience, audiences, experience level,
314
+ locale, accessibility target, tone, priority outcomes, preferred examples,
315
+ design direction, terminology and the generated glossary page, exclusions,
316
+ and standing instructions;
317
+ - **Visual evidence**: the safe application URL, ready path, starting route,
318
+ sign-in route, screenshot policy, viewport, capture workflow guidance, a
319
+ **Test application** check, and **Application sign-in** for login-protected
320
+ apps: record a signed-in browser session from a Chrome window Doxloop opens,
321
+ or save a test account's credentials that the capture server types for the
322
+ agent;
323
+ - **Branding**: logo, favicon, colours, colour mode, and fonts for Doxbrix
324
+ sites, or the theme file to edit for other generators; and
325
+ - **Generator**: the generator selected for this workspace.
241
326
 
242
327
  Generator changes are intentionally not performed in place because changing
243
- frameworks can overwrite generator-native files. Create a new project with
244
- `doxloop init` when migrating generators.
245
-
246
- ### Optional automation overrides
247
-
248
- Interactive users do not need flags. Scripts can still override saved settings
249
- for one run:
250
-
251
- ```bash
252
- doxloop create --agent codex --reasoning high
253
- doxloop create --agent claude --model <model-name>
254
- doxloop create --agent gemini
255
- ```
328
+ frameworks can overwrite generator-native files. Start a new documentation
329
+ project when migrating generators.
256
330
 
257
331
  ### Ask for exactly what you need
258
332
 
259
- ```bash
260
- doxloop create \
261
- "Write for platform engineers. Include installation, Kubernetes deployment, authentication, a production-readiness checklist, and troubleshooting."
262
- ```
333
+ The request box on the **Create** and **Update** pages accepts plain language.
334
+ Describe the audience, desired outcomes, required pages, tone, priorities, or
335
+ exclusions, for example:
336
+
337
+ > Write for platform engineers. Include installation, Kubernetes deployment,
338
+ > authentication, a production-readiness checklist, and troubleshooting.
339
+
340
+ > Document webhook retries and remove the legacy import workflow.
341
+
342
+ Choose a starting scope, optionally set **Minimum pages to write** when the
343
+ existing documentation is thin, and decide whether the planner should ask you
344
+ questions in review, use recommendations, or always wait for answers.
345
+
346
+ ## Keep documentation current
347
+
348
+ Documentation goes stale because nothing reports it. Doxloop records the
349
+ sources behind every page in `.doxloop/evidence-map.json`, so it can name the
350
+ individual pages a later change made stale rather than only reporting that a
351
+ source changed.
352
+
353
+ Open **Sources** and choose **Monitoring** to configure it:
354
+
355
+ 1. Enter the **Product branch** to follow.
356
+ 2. Choose a **Schedule**: daily, weekdays, weekly, monthly, or a custom
357
+ interval in minutes or hours. Times use your device timezone.
358
+ 3. Optionally open **Advanced watch scope and budgets** to set watched and
359
+ ignored paths, the maximum agent minutes and runs per day, a maximum
360
+ Claude spend per run, and how old verified evidence may become before it
361
+ is re-verified.
362
+ 4. Choose **Save and install**.
363
+
364
+ Doxloop installs a local scheduled job that checks every connected source. A
365
+ Git repository source is checked through the provider's read-only API; when
366
+ the commit changed, that exact commit is downloaded as isolated evidence. A
367
+ local folder is checked in place: a Git checkout by its HEAD commit and
368
+ working tree, any other folder by comparing its files with the content
369
+ recorded at the last sync. When documentation went stale, the job drafts a
370
+ proposal under **Review**. Monitoring never modifies the product source, never
371
+ fetches or pulls into a checkout, never installs repository hooks, never needs
372
+ a model API key, and never publishes. Choose **Check now** to run a cycle
373
+ immediately; the result appears as a notice in the control center and under
374
+ **Recent activity**. **Disable** removes the schedule while keeping the
375
+ settings.
376
+
377
+ Lock files and snapshots are ignored by default. Test files are not, because
378
+ the authoring workflow reads tests as evidence of supported behaviour.
379
+
380
+ ## Review what changed and why
381
+
382
+ The **Review** page keeps the full review in one place:
383
+
384
+ 1. The proposal list shows what is waiting, why it was drafted, and its status.
385
+ 2. **Changed files** switches between every documentation and supporting-file
386
+ change, with search.
387
+ 3. **Diff layout** switches between side-by-side and stacked comparisons of the
388
+ rendered pages, and the source view shows line-level context with an
389
+ **Accept change** button on each individual change.
390
+ 4. **Why this change** shows the supporting evidence, reader-facing claims,
391
+ affected public interfaces, assumptions to verify, and validation results.
392
+ 5. **Accept change**, **Accept file**, and **Accept all** apply the selection.
393
+ **Ask agent to revise** regenerates only the selected scope and supersedes
394
+ the earlier proposal. Applied page files link back to **Pages** for a new
395
+ agent-driven edit.
396
+ 6. **Preview documentation** renders the proposal, **Prepare PR branch**
397
+ stages the accepted result in a Git branch, and **Push & create PR** opens
398
+ a pull request.
399
+
400
+ Every accepted selection is checked against the original file fingerprint and
401
+ validated before it is written. A local edit made while review is pending
402
+ causes a visible conflict instead of an overwrite. Partial acceptance applies
403
+ only the selected changes and keeps the proposal pending. Rejected proposals
404
+ never change the documentation.
405
+
406
+ Doxloop also keeps a local record of what it was asked to do and what happened.
407
+ **Update history** on the Plan page lists each request, its
408
+ outcome, and the pages it touched. **Deployment history** on the Publish page
409
+ lists every deployment, including the ones that failed. The record lives in
410
+ `.doxloop/doxloop.db`, which is added to `.gitignore` automatically and is
411
+ readable only by its owner. Agent transcripts are not recorded.
412
+
413
+ ## Preview, validate, and deploy
414
+
415
+ Doxloop validates pages, navigation, links, metadata, code fences, and page
416
+ depth every time it creates a proposal, and again before every dry run and
417
+ deployment. Validation errors stop a deployment; warnings are reported.
418
+
419
+ Choose **Preview docs** at any time to open the local site. Then open
420
+ **Publish**:
421
+
422
+ 1. Sign in to Doxbrix once. Doxloop opens your browser, you approve the code it
423
+ shows, and the session stays on this computer.
424
+ 2. Check **Ready to publish**: validation, and whether changes still wait in
425
+ **Review**. A check that fails keeps the publish button disabled.
426
+ 3. Choose who can read the site, **Public** or **Private**, and choose
427
+ **Publish to Doxbrix**. Doxloop validates, builds, and uploads; the site is
428
+ usually live in under a minute, and **Publish changes** sends later edits.
429
+
430
+ To self-host instead of using Doxbrix, export a static site from the command line:
263
431
 
264
432
  ```bash
265
- doxloop update \
266
- "Document webhook retries and remove the legacy import workflow."
433
+ doxloop export --out ./site-export --zip
434
+ doxloop deploy --target github-pages --base-path /my-repository
267
435
  ```
268
436
 
269
- You can describe the audience, desired outcomes, required pages, tone,
270
- priorities, or exclusions in plain language.
271
-
272
- ## Preview, test, and publish
273
-
274
- Authoring never publishes automatically.
275
-
276
- ```bash
277
- doxloop status
278
- doxloop test
279
- doxloop preview --open
280
- ```
281
-
282
- To deploy through [Doxbrix](https://www.doxbrix.com/):
283
-
284
- ```bash
285
- doxloop deploy
286
- ```
287
-
288
- `deploy` validates the documentation, shows the exact name, slug, destination,
289
- visibility, page count, and warnings, then asks once before uploading. It offers
290
- sign-in after you approve the summary. Deployments are private by default.
291
-
292
- Use `doxloop settings` to change visibility or the hosted address. A public
293
- deployment always shows a default-no warning in an interactive terminal. For
294
- CI, the explicit combination `doxloop deploy --public --yes` runs without
295
- prompts.
437
+ Authoring never publishes automatically, and configured product sources are
438
+ never included in a deployment.
296
439
 
297
440
  ## Supported generators
298
441
 
299
442
  Doxbrix is built in and selected by default. External generators use a separate
300
- adapter package, so each documentation project installs only what it needs.
301
-
302
- | Generator | Package | Source format | Build output |
303
- | --- | --- | --- | --- |
304
- | **Doxbrix** | Included | Markdown and Doxbrix MDX | Doxbrix bundle |
305
- | Docusaurus | `@doxbrix/doxloop-generator-docusaurus` | Markdown and MDX | `build/` |
306
- | MkDocs Material | `@doxbrix/doxloop-generator-mkdocs` | Material Markdown | `site/` |
307
- | Sphinx | `@doxbrix/doxloop-generator-sphinx` | reStructuredText | `_build/html/` |
308
- | Hugo | `@doxbrix/doxloop-generator-hugo` | Markdown | `public/` |
309
- | VitePress | `@doxbrix/doxloop-generator-vitepress` | Markdown | `docs/.vitepress/dist/` |
310
- | Markdoc | `@doxbrix/doxloop-generator-markdoc` | Markdoc | `dist/` |
311
- | Nextra | `@doxbrix/doxloop-generator-nextra` | MDX | `out/` |
312
- | Starlight | `@doxbrix/doxloop-generator-starlight` | Markdown and MDX | `dist/` |
313
- | Jekyll | `@doxbrix/doxloop-generator-jekyll` | Markdown and Liquid | `_site/` |
314
- | Static HTML | `@doxbrix/doxloop-generator-static` | HTML | `site/` |
315
-
316
- Choose a generator during `doxloop init`. Doxbrix is the recommended first
317
- choice and needs no extra installation. Selecting another framework opens a
318
- second list and Doxloop offers to install its adapter package. The
443
+ adapter package that Doxloop installs into the documentation project when you
444
+ choose the generator in the setup wizard.
445
+
446
+ | Generator | Tier | Needs | Package | Source format | Build output |
447
+ | --- | --- | --- | --- | --- | --- |
448
+ | **Doxbrix** | Full | Nothing extra | Included | Markdown and Doxbrix MDX | Static `build/` plus Doxbrix bundle |
449
+ | Docusaurus | Full | Node.js 22.13+ | `@doxbrix/doxloop-generator-docusaurus` | Markdown and MDX | `build/` |
450
+ | MkDocs Material | Full | Python 3.9+ | `@doxbrix/doxloop-generator-mkdocs` | Material Markdown | `site/` |
451
+ | Sphinx | Supported | Python 3.9+ | `@doxbrix/doxloop-generator-sphinx` | reStructuredText | `_build/html/` |
452
+ | Hugo | Supported | Hugo | `@doxbrix/doxloop-generator-hugo` | Markdown | `public/` |
453
+ | VitePress | Supported | Node.js 22.13+ | `@doxbrix/doxloop-generator-vitepress` | Markdown | `docs/.vitepress/dist/` |
454
+ | Starlight | Supported | Node.js 22.13+ | `@doxbrix/doxloop-generator-starlight` | Markdown and MDX | `dist/` |
455
+ | Markdoc | Basic | Node.js 22.13+ | `@doxbrix/doxloop-generator-markdoc` | Markdoc | `dist/` |
456
+ | Nextra | Basic | Node.js 22.13+ | `@doxbrix/doxloop-generator-nextra` | MDX | `out/` |
457
+ | Jekyll | Basic | Ruby + Bundler | `@doxbrix/doxloop-generator-jekyll` | Markdown and Liquid | `_site/` |
458
+ | Static HTML | Basic | Node.js 22.13+ | `@doxbrix/doxloop-generator-static` | HTML | `site/` |
459
+
460
+ The tier describes Doxloop's adapter, not the framework. **Full** generators
461
+ have their navigation, components, and diagrams validated and documented and
462
+ are built end to end in CI. **Supported** generators validate nested
463
+ navigation wherever the configuration can be read and report "navigation not
464
+ verified" instead of guessing when it cannot. **Basic** generators scaffold,
465
+ preview, and build, with navigation checks limited to the files the scaffold
466
+ owns. The wizard's **Tools** step shows the tier beside each generator and
467
+ checks that the required toolchain is installed before the project is created.
468
+ Doxbrix is the recommended first choice. The
319
469
  [public generator guide](https://doxloop.sites.doxbrix.com/generators) covers
320
- installation, selection, inspection, removal, and migration.
470
+ selection, native build requirements, and migration.
321
471
 
322
472
  ## Guides
323
473
 
@@ -325,8 +475,8 @@ installation, selection, inspection, removal, and migration.
325
475
  | --- | --- | --- |
326
476
  | [Create documentation](https://doxloop.sites.doxbrix.com/create) | [Project configuration](https://doxloop.sites.doxbrix.com/project-configuration) | [Troubleshooting](https://doxloop.sites.doxbrix.com/troubleshooting) |
327
477
  | [Update documentation](https://doxloop.sites.doxbrix.com/update) | [Generators](https://doxloop.sites.doxbrix.com/generators) | [Security](https://doxloop.sites.doxbrix.com/security) |
328
- | [Agent compatibility](https://doxloop.sites.doxbrix.com/agent-compatibility) | [CLI reference](https://doxloop.sites.doxbrix.com/cli) | [CI and automation](https://doxloop.sites.doxbrix.com/ci-automation) |
329
- | [Review documentation](https://doxloop.sites.doxbrix.com/review) | [Guide screenshots](https://doxloop.sites.doxbrix.com/guide-screenshots) | [Publish documentation](https://doxloop.sites.doxbrix.com/publish) |
478
+ | [Review documentation](https://doxloop.sites.doxbrix.com/review) | [Agent compatibility](https://doxloop.sites.doxbrix.com/agent-compatibility) | [Automation and CI](https://doxloop.sites.doxbrix.com/ci-automation) |
479
+ | [Guide screenshots](https://doxloop.sites.doxbrix.com/guide-screenshots) | [Publish documentation](https://doxloop.sites.doxbrix.com/publish) | |
330
480
 
331
481
  Browse all documentation at <https://doxloop.sites.doxbrix.com/>.
332
482
 
@@ -336,3 +486,48 @@ Browse all documentation at <https://doxloop.sites.doxbrix.com/>.
336
486
  and run unmodified copies for lawful personal or commercial purposes. Copying,
337
487
  modification, incorporation into other products, and redistribution are not
338
488
  permitted without explicit written permission from Doxbrix.
489
+
490
+ ### Direct page editing and bounded runs
491
+
492
+ In **Pages**, open **Edit text directly** to edit Markdown/MDX, preview a draft,
493
+ compare it with the saved version, and save without an agent. Browser drafts
494
+ survive reloads. A fingerprint conflict keeps your draft and prevents an
495
+ overwrite. Saves normally mark evidence for review; preserve verification only
496
+ when the change is wording alone. Direct edits have persistent undo in
497
+ **Manage pages → Recent direct edits**. Undo refuses to replace newer changes.
498
+
499
+ **Manage pages** creates, moves and deletes pages while updating navigation,
500
+ links and evidence in one validated transaction. Moves preserve or redirect
501
+ old URLs; deletion requires a replacement when other pages link to the target.
502
+ Doxbrix, MkDocs and autogenerated Docusaurus navigation are supported directly;
503
+ custom coded navigation requires a reviewed agent proposal. Unsupported native
504
+ formats are reported before any files change.
505
+
506
+ Proposal review supports direct text edits, per-file and per-change rejection
507
+ with reasons, and mixed accept/reject decisions. Rejecting remaining changes
508
+ keeps already accepted work. A fully decided mixed proposal can be undone;
509
+ rejected changes do not advance the source freshness baseline.
510
+
511
+ A new plan's batch follows the documentation depth you choose: Starter allows
512
+ five pages and 15 minutes per authoring attempt; Standard twelve pages and
513
+ 45 minutes; Comprehensive forty pages and 120 minutes. Each batch allows three
514
+ screenshots per page it may write. **Run limits** and the plan review expose
515
+ maximum pages, screenshot artifacts and minutes. Approval refuses oversized
516
+ plans; mark extra pages **Later** or raise the limits explicitly. Generated
517
+ proposals outside the approved page scope or artifact limits remain in the
518
+ recovery workspace. The timer bounds each attempt; retries consume another
519
+ attempt. Planned coverage earns no documented-page credit.
520
+
521
+ Monitoring coordinates scheduled and manual authoring across processes,
522
+ reserves daily starts in a persistent ledger, and pauses while a proposal
523
+ needs review. Scheduled authoring requires verified agent sign-in. Monitoring
524
+ logs rotate at 1 MiB, retaining one previous file; rotation does not reset the
525
+ budget.
526
+
527
+ GitHub Pages publishing permits `gh-pages` or `doxloop-pages/<name>`, rejects
528
+ the checked-out source branch, and only updates existing branches marked as
529
+ Doxloop deployments. Each update preserves deployment history and protects
530
+ against concurrent remote changes. Use a fresh `doxloop-pages/<name>` for a
531
+ legacy branch without the ownership marker.
532
+
533
+ See [editing, auditing, versions, and review workflows](docs/review-workflows.md) for comments, bulk operations, read-only imports, reader verification, and the hosted pull-request impact check.