@zigrivers/scaffold 3.28.0 → 3.30.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 (721) hide show
  1. package/README.md +5 -1
  2. package/content/guides/.gitkeep +0 -0
  3. package/content/guides/AUTHORING.md +143 -0
  4. package/content/guides/cli/index.html +1502 -0
  5. package/content/guides/cli/index.md +206 -0
  6. package/content/guides/concepts/index.html +1617 -0
  7. package/content/guides/concepts/index.md +347 -0
  8. package/content/guides/dashboard/index.html +1560 -0
  9. package/content/guides/dashboard/index.md +264 -0
  10. package/content/guides/index.html +1188 -0
  11. package/content/guides/install/.diagrams/diagram-0.svg +1 -0
  12. package/content/guides/install/.diagrams/manifest.json +3 -0
  13. package/content/guides/install/index.html +1300 -0
  14. package/content/guides/install/index.md +186 -0
  15. package/content/guides/knowledge/.diagrams/diagram-0.svg +1 -0
  16. package/content/guides/knowledge/.diagrams/manifest.json +3 -0
  17. package/content/guides/knowledge/index.html +1412 -0
  18. package/content/guides/knowledge/index.md +209 -0
  19. package/content/guides/knowledge-freshness/.diagrams/diagram-0.svg +1 -0
  20. package/content/guides/knowledge-freshness/.diagrams/manifest.json +3 -0
  21. package/content/guides/knowledge-freshness/index.html +2442 -0
  22. package/content/guides/knowledge-freshness/index.md +893 -0
  23. package/content/guides/mmr/.diagrams/diagram-0.svg +1 -0
  24. package/content/guides/mmr/.diagrams/manifest.json +3 -0
  25. package/content/guides/mmr/index.html +1746 -0
  26. package/content/guides/mmr/index.md +426 -0
  27. package/content/guides/multi-agent/.diagrams/diagram-0.svg +1 -0
  28. package/content/guides/multi-agent/.diagrams/manifest.json +3 -0
  29. package/content/guides/multi-agent/index.html +1362 -0
  30. package/content/guides/multi-agent/index.md +243 -0
  31. package/content/guides/observability/.diagrams/diagram-0.svg +1 -0
  32. package/content/guides/observability/.diagrams/diagram-1.svg +1 -0
  33. package/content/guides/observability/.diagrams/diagram-2.svg +1 -0
  34. package/content/guides/observability/.diagrams/diagram-3.svg +1 -0
  35. package/content/guides/observability/.diagrams/manifest.json +6 -0
  36. package/content/guides/observability/index.html +2904 -0
  37. package/content/guides/observability/index.md +1097 -0
  38. package/content/guides/pipeline/.diagrams/diagram-0.svg +1 -0
  39. package/content/guides/pipeline/.diagrams/diagram-1.svg +1 -0
  40. package/content/guides/pipeline/.diagrams/manifest.json +4 -0
  41. package/content/guides/pipeline/index.html +1632 -0
  42. package/content/guides/pipeline/index.md +387 -0
  43. package/content/guides/review-workflow/.diagrams/diagram-0.svg +1 -0
  44. package/content/guides/review-workflow/.diagrams/diagram-1.svg +1 -0
  45. package/content/guides/review-workflow/.diagrams/manifest.json +4 -0
  46. package/content/guides/review-workflow/index.html +1437 -0
  47. package/content/guides/review-workflow/index.md +248 -0
  48. package/content/knowledge/VERSION +1 -0
  49. package/content/knowledge/backend/backend-api-design.md +8 -0
  50. package/content/knowledge/backend/backend-architecture.md +8 -0
  51. package/content/knowledge/backend/backend-async-patterns.md +7 -0
  52. package/content/knowledge/backend/backend-auth-patterns.md +9 -0
  53. package/content/knowledge/backend/backend-conventions.md +6 -0
  54. package/content/knowledge/backend/backend-data-modeling.md +7 -0
  55. package/content/knowledge/backend/backend-deployment.md +8 -0
  56. package/content/knowledge/backend/backend-dev-environment.md +5 -0
  57. package/content/knowledge/backend/backend-fintech-broker-integration.md +6 -0
  58. package/content/knowledge/backend/backend-fintech-compliance.md +10 -2
  59. package/content/knowledge/backend/backend-fintech-data-modeling.md +6 -0
  60. package/content/knowledge/backend/backend-fintech-ledger.md +6 -0
  61. package/content/knowledge/backend/backend-fintech-observability.md +6 -0
  62. package/content/knowledge/backend/backend-fintech-order-lifecycle.md +6 -0
  63. package/content/knowledge/backend/backend-fintech-risk-management.md +6 -0
  64. package/content/knowledge/backend/backend-fintech-testing.md +6 -0
  65. package/content/knowledge/backend/backend-observability.md +7 -0
  66. package/content/knowledge/backend/backend-project-structure.md +6 -0
  67. package/content/knowledge/backend/backend-requirements.md +6 -0
  68. package/content/knowledge/backend/backend-security.md +7 -0
  69. package/content/knowledge/backend/backend-testing.md +7 -0
  70. package/content/knowledge/backend/backend-worker-patterns.md +6 -0
  71. package/content/knowledge/browser-extension/browser-extension-architecture.md +6 -0
  72. package/content/knowledge/browser-extension/browser-extension-content-scripts.md +6 -0
  73. package/content/knowledge/browser-extension/browser-extension-conventions.md +6 -0
  74. package/content/knowledge/browser-extension/browser-extension-cross-browser.md +6 -0
  75. package/content/knowledge/browser-extension/browser-extension-dev-environment.md +6 -0
  76. package/content/knowledge/browser-extension/browser-extension-manifest.md +6 -0
  77. package/content/knowledge/browser-extension/browser-extension-project-structure.md +6 -0
  78. package/content/knowledge/browser-extension/browser-extension-requirements.md +6 -0
  79. package/content/knowledge/browser-extension/browser-extension-security.md +7 -0
  80. package/content/knowledge/browser-extension/browser-extension-service-workers.md +6 -0
  81. package/content/knowledge/browser-extension/browser-extension-store-submission.md +6 -0
  82. package/content/knowledge/browser-extension/browser-extension-testing.md +6 -0
  83. package/content/knowledge/cli/cli-architecture.md +4 -0
  84. package/content/knowledge/cli/cli-conventions.md +4 -0
  85. package/content/knowledge/cli/cli-dev-environment.md +5 -0
  86. package/content/knowledge/cli/cli-distribution-patterns.md +5 -0
  87. package/content/knowledge/cli/cli-interactivity-patterns.md +4 -0
  88. package/content/knowledge/cli/cli-output-patterns.md +4 -0
  89. package/content/knowledge/cli/cli-project-structure.md +4 -0
  90. package/content/knowledge/cli/cli-requirements.md +4 -0
  91. package/content/knowledge/cli/cli-shell-integration.md +4 -0
  92. package/content/knowledge/cli/cli-testing.md +4 -0
  93. package/content/knowledge/core/adr-craft.md +8 -0
  94. package/content/knowledge/core/ai-memory-management.md +6 -0
  95. package/content/knowledge/core/api-design.md +6 -0
  96. package/content/knowledge/core/automated-review-tooling.md +8 -0
  97. package/content/knowledge/core/claude-md-patterns.md +8 -0
  98. package/content/knowledge/core/coding-conventions.md +8 -0
  99. package/content/knowledge/core/database-design.md +8 -0
  100. package/content/knowledge/core/design-system-tokens.md +8 -0
  101. package/content/knowledge/core/dev-environment.md +4 -0
  102. package/content/knowledge/core/domain-modeling.md +6 -0
  103. package/content/knowledge/core/eval-craft.md +6 -0
  104. package/content/knowledge/core/git-workflow-patterns.md +8 -0
  105. package/content/knowledge/core/multi-model-research-dispatch.md +6 -0
  106. package/content/knowledge/core/multi-model-review-dispatch.md +6 -0
  107. package/content/knowledge/core/multi-service-api-contracts.md +5 -0
  108. package/content/knowledge/core/multi-service-architecture.md +5 -0
  109. package/content/knowledge/core/multi-service-auth.md +6 -0
  110. package/content/knowledge/core/multi-service-data-ownership.md +8 -0
  111. package/content/knowledge/core/multi-service-observability.md +8 -0
  112. package/content/knowledge/core/multi-service-resilience.md +5 -0
  113. package/content/knowledge/core/multi-service-task-decomposition.md +8 -0
  114. package/content/knowledge/core/multi-service-testing.md +5 -0
  115. package/content/knowledge/core/operations-runbook.md +8 -0
  116. package/content/knowledge/core/project-structure-patterns.md +4 -0
  117. package/content/knowledge/core/review-step-template.md +4 -0
  118. package/content/knowledge/core/security-best-practices.md +6 -0
  119. package/content/knowledge/core/system-architecture.md +6 -0
  120. package/content/knowledge/core/task-decomposition.md +5 -0
  121. package/content/knowledge/core/task-tracking.md +8 -0
  122. package/content/knowledge/core/tech-stack-selection.md +8 -0
  123. package/content/knowledge/core/test-skeleton-generation.md +4 -0
  124. package/content/knowledge/core/testing-strategy.md +8 -0
  125. package/content/knowledge/core/user-stories.md +8 -0
  126. package/content/knowledge/core/user-story-innovation.md +4 -0
  127. package/content/knowledge/core/ux-specification.md +5 -0
  128. package/content/knowledge/data-pipeline/data-pipeline-architecture.md +5 -0
  129. package/content/knowledge/data-pipeline/data-pipeline-batch-patterns.md +4 -0
  130. package/content/knowledge/data-pipeline/data-pipeline-conventions.md +4 -0
  131. package/content/knowledge/data-pipeline/data-pipeline-dev-environment.md +4 -0
  132. package/content/knowledge/data-pipeline/data-pipeline-orchestration.md +4 -0
  133. package/content/knowledge/data-pipeline/data-pipeline-project-structure.md +4 -0
  134. package/content/knowledge/data-pipeline/data-pipeline-quality.md +4 -0
  135. package/content/knowledge/data-pipeline/data-pipeline-requirements.md +4 -0
  136. package/content/knowledge/data-pipeline/data-pipeline-schema-management.md +4 -0
  137. package/content/knowledge/data-pipeline/data-pipeline-security.md +4 -0
  138. package/content/knowledge/data-pipeline/data-pipeline-streaming-patterns.md +4 -0
  139. package/content/knowledge/data-pipeline/data-pipeline-testing.md +4 -0
  140. package/content/knowledge/data-science/data-science-architecture.md +5 -0
  141. package/content/knowledge/data-science/data-science-conventions.md +6 -0
  142. package/content/knowledge/data-science/data-science-data-versioning.md +6 -0
  143. package/content/knowledge/data-science/data-science-dev-environment.md +6 -0
  144. package/content/knowledge/data-science/data-science-experiment-tracking.md +8 -0
  145. package/content/knowledge/data-science/data-science-model-evaluation.md +5 -0
  146. package/content/knowledge/data-science/data-science-notebook-discipline.md +5 -0
  147. package/content/knowledge/data-science/data-science-observability.md +6 -0
  148. package/content/knowledge/data-science/data-science-project-structure.md +5 -0
  149. package/content/knowledge/data-science/data-science-reproducibility.md +8 -0
  150. package/content/knowledge/data-science/data-science-requirements.md +5 -0
  151. package/content/knowledge/data-science/data-science-security.md +8 -0
  152. package/content/knowledge/data-science/data-science-testing.md +5 -0
  153. package/content/knowledge/execution/enhancement-workflow.md +4 -0
  154. package/content/knowledge/execution/multi-agent-coordination.md +12 -1
  155. package/content/knowledge/execution/task-claiming-strategy.md +4 -0
  156. package/content/knowledge/execution/tdd-execution-loop.md +5 -0
  157. package/content/knowledge/execution/worktree-management.md +5 -0
  158. package/content/knowledge/finalization/apply-fixes-and-freeze.md +4 -0
  159. package/content/knowledge/finalization/developer-onboarding.md +4 -0
  160. package/content/knowledge/finalization/implementation-playbook.md +4 -0
  161. package/content/knowledge/game/game-accessibility.md +4 -0
  162. package/content/knowledge/game/game-ai-patterns.md +4 -0
  163. package/content/knowledge/game/game-asset-pipeline.md +4 -0
  164. package/content/knowledge/game/game-audio-design.md +4 -0
  165. package/content/knowledge/game/game-binary-vcs-strategy.md +5 -0
  166. package/content/knowledge/game/game-design-document.md +4 -0
  167. package/content/knowledge/game/game-domain-patterns.md +4 -0
  168. package/content/knowledge/game/game-economy-design.md +4 -0
  169. package/content/knowledge/game/game-engine-selection.md +4 -0
  170. package/content/knowledge/game/game-ideation.md +4 -0
  171. package/content/knowledge/game/game-input-systems.md +4 -0
  172. package/content/knowledge/game/game-level-content-design.md +4 -0
  173. package/content/knowledge/game/game-liveops-analytics.md +4 -0
  174. package/content/knowledge/game/game-localization.md +4 -0
  175. package/content/knowledge/game/game-milestone-definitions.md +4 -0
  176. package/content/knowledge/game/game-modding-ugc.md +4 -0
  177. package/content/knowledge/game/game-narrative-design.md +4 -0
  178. package/content/knowledge/game/game-networking.md +4 -0
  179. package/content/knowledge/game/game-performance-budgeting.md +4 -0
  180. package/content/knowledge/game/game-platform-certification.md +6 -0
  181. package/content/knowledge/game/game-project-structure.md +4 -0
  182. package/content/knowledge/game/game-save-systems.md +4 -0
  183. package/content/knowledge/game/game-testing-strategy.md +4 -0
  184. package/content/knowledge/game/game-ui-patterns.md +4 -0
  185. package/content/knowledge/game/game-vr-ar-design.md +6 -0
  186. package/content/knowledge/library/library-api-design.md +4 -0
  187. package/content/knowledge/library/library-architecture.md +4 -0
  188. package/content/knowledge/library/library-bundling.md +4 -0
  189. package/content/knowledge/library/library-conventions.md +5 -0
  190. package/content/knowledge/library/library-dev-environment.md +4 -0
  191. package/content/knowledge/library/library-documentation.md +4 -0
  192. package/content/knowledge/library/library-project-structure.md +4 -0
  193. package/content/knowledge/library/library-requirements.md +4 -0
  194. package/content/knowledge/library/library-security.md +4 -0
  195. package/content/knowledge/library/library-testing.md +4 -0
  196. package/content/knowledge/library/library-type-definitions.md +4 -0
  197. package/content/knowledge/library/library-versioning.md +5 -0
  198. package/content/knowledge/ml/ml-architecture.md +4 -0
  199. package/content/knowledge/ml/ml-conventions.md +4 -0
  200. package/content/knowledge/ml/ml-dev-environment.md +4 -0
  201. package/content/knowledge/ml/ml-experiment-tracking.md +6 -0
  202. package/content/knowledge/ml/ml-model-evaluation.md +4 -0
  203. package/content/knowledge/ml/ml-observability.md +5 -0
  204. package/content/knowledge/ml/ml-project-structure.md +4 -0
  205. package/content/knowledge/ml/ml-requirements.md +4 -0
  206. package/content/knowledge/ml/ml-security.md +5 -0
  207. package/content/knowledge/ml/ml-serving-patterns.md +4 -0
  208. package/content/knowledge/ml/ml-testing.md +4 -0
  209. package/content/knowledge/ml/ml-training-patterns.md +4 -0
  210. package/content/knowledge/mobile-app/mobile-app-architecture.md +6 -0
  211. package/content/knowledge/mobile-app/mobile-app-conventions.md +6 -0
  212. package/content/knowledge/mobile-app/mobile-app-deployment.md +6 -0
  213. package/content/knowledge/mobile-app/mobile-app-dev-environment.md +6 -0
  214. package/content/knowledge/mobile-app/mobile-app-distribution.md +6 -0
  215. package/content/knowledge/mobile-app/mobile-app-observability.md +7 -0
  216. package/content/knowledge/mobile-app/mobile-app-offline-patterns.md +7 -0
  217. package/content/knowledge/mobile-app/mobile-app-project-structure.md +6 -0
  218. package/content/knowledge/mobile-app/mobile-app-push-notifications.md +6 -0
  219. package/content/knowledge/mobile-app/mobile-app-requirements.md +7 -0
  220. package/content/knowledge/mobile-app/mobile-app-security.md +8 -0
  221. package/content/knowledge/mobile-app/mobile-app-testing.md +6 -0
  222. package/content/knowledge/product/gap-analysis.md +4 -0
  223. package/content/knowledge/product/ideation-craft.md +4 -0
  224. package/content/knowledge/product/prd-craft.md +4 -0
  225. package/content/knowledge/product/prd-innovation.md +4 -0
  226. package/content/knowledge/product/vision-craft.md +4 -0
  227. package/content/knowledge/product/vision-innovation.md +4 -0
  228. package/content/knowledge/research/research-architecture.md +4 -0
  229. package/content/knowledge/research/research-conventions.md +6 -0
  230. package/content/knowledge/research/research-dev-environment.md +6 -0
  231. package/content/knowledge/research/research-experiment-loop.md +4 -0
  232. package/content/knowledge/research/research-experiment-tracking.md +6 -0
  233. package/content/knowledge/research/research-ml-architecture-search.md +4 -0
  234. package/content/knowledge/research/research-ml-evaluation.md +4 -0
  235. package/content/knowledge/research/research-ml-experiment-tracking.md +6 -0
  236. package/content/knowledge/research/research-ml-training-patterns.md +4 -0
  237. package/content/knowledge/research/research-observability.md +5 -0
  238. package/content/knowledge/research/research-overfitting-prevention.md +5 -0
  239. package/content/knowledge/research/research-project-structure.md +5 -0
  240. package/content/knowledge/research/research-quant-backtesting.md +4 -0
  241. package/content/knowledge/research/research-quant-market-data.md +4 -0
  242. package/content/knowledge/research/research-quant-metrics.md +4 -0
  243. package/content/knowledge/research/research-quant-requirements.md +4 -0
  244. package/content/knowledge/research/research-quant-risk.md +4 -0
  245. package/content/knowledge/research/research-quant-strategy-patterns.md +4 -0
  246. package/content/knowledge/research/research-requirements.md +5 -0
  247. package/content/knowledge/research/research-security.md +5 -0
  248. package/content/knowledge/research/research-sim-compute-management.md +4 -0
  249. package/content/knowledge/research/research-sim-engine-patterns.md +4 -0
  250. package/content/knowledge/research/research-sim-parameter-spaces.md +4 -0
  251. package/content/knowledge/research/research-sim-validation.md +4 -0
  252. package/content/knowledge/research/research-testing.md +5 -0
  253. package/content/knowledge/review/review-adr.md +6 -0
  254. package/content/knowledge/review/review-api-design.md +6 -0
  255. package/content/knowledge/review/review-art-bible.md +4 -0
  256. package/content/knowledge/review/review-database-design.md +5 -0
  257. package/content/knowledge/review/review-domain-modeling.md +5 -0
  258. package/content/knowledge/review/review-game-design.md +4 -0
  259. package/content/knowledge/review/review-game-economy.md +4 -0
  260. package/content/knowledge/review/review-game-ui.md +5 -0
  261. package/content/knowledge/review/review-implementation-tasks.md +5 -0
  262. package/content/knowledge/review/review-methodology.md +4 -0
  263. package/content/knowledge/review/review-netcode.md +4 -0
  264. package/content/knowledge/review/review-operations.md +6 -0
  265. package/content/knowledge/review/review-platform-cert.md +4 -0
  266. package/content/knowledge/review/review-prd.md +4 -0
  267. package/content/knowledge/review/review-security.md +7 -0
  268. package/content/knowledge/review/review-system-architecture.md +6 -0
  269. package/content/knowledge/review/review-testing-strategy.md +6 -0
  270. package/content/knowledge/review/review-user-stories.md +5 -0
  271. package/content/knowledge/review/review-ux-specification.md +6 -0
  272. package/content/knowledge/review/review-vision.md +4 -0
  273. package/content/knowledge/tools/post-implementation-review-methodology.md +4 -0
  274. package/content/knowledge/tools/release-management.md +5 -0
  275. package/content/knowledge/tools/session-analysis.md +4 -0
  276. package/content/knowledge/tools/version-strategy.md +4 -0
  277. package/content/knowledge/validation/critical-path-analysis.md +4 -0
  278. package/content/knowledge/validation/cross-phase-consistency.md +4 -0
  279. package/content/knowledge/validation/decision-completeness.md +5 -0
  280. package/content/knowledge/validation/dependency-validation.md +4 -0
  281. package/content/knowledge/validation/implementability-review.md +4 -0
  282. package/content/knowledge/validation/scope-management.md +4 -0
  283. package/content/knowledge/validation/traceability.md +4 -0
  284. package/content/knowledge/web-app/web-app-api-patterns.md +6 -0
  285. package/content/knowledge/web-app/web-app-architecture.md +6 -0
  286. package/content/knowledge/web-app/web-app-auth-patterns.md +9 -0
  287. package/content/knowledge/web-app/web-app-conventions.md +5 -0
  288. package/content/knowledge/web-app/web-app-data-patterns.md +6 -0
  289. package/content/knowledge/web-app/web-app-deployment-workflow.md +6 -0
  290. package/content/knowledge/web-app/web-app-deployment.md +6 -0
  291. package/content/knowledge/web-app/web-app-design-system.md +6 -0
  292. package/content/knowledge/web-app/web-app-dev-environment.md +6 -0
  293. package/content/knowledge/web-app/web-app-observability.md +6 -0
  294. package/content/knowledge/web-app/web-app-project-structure.md +5 -0
  295. package/content/knowledge/web-app/web-app-rendering-strategies.md +6 -0
  296. package/content/knowledge/web-app/web-app-requirements.md +6 -0
  297. package/content/knowledge/web-app/web-app-security.md +8 -0
  298. package/content/knowledge/web-app/web-app-session-patterns.md +7 -0
  299. package/content/knowledge/web-app/web-app-testing.md +6 -0
  300. package/content/knowledge/web-app/web-app-ux-patterns.md +6 -0
  301. package/content/knowledge/web3/web3-access-control.md +8 -0
  302. package/content/knowledge/web3/web3-architecture.md +7 -0
  303. package/content/knowledge/web3/web3-audit-workflow.md +7 -0
  304. package/content/knowledge/web3/web3-common-vulnerabilities.md +8 -0
  305. package/content/knowledge/web3/web3-conventions.md +6 -0
  306. package/content/knowledge/web3/web3-deployment-and-verification.md +7 -0
  307. package/content/knowledge/web3/web3-dev-environment.md +6 -0
  308. package/content/knowledge/web3/web3-gas-optimization.md +7 -0
  309. package/content/knowledge/web3/web3-oracles-and-external-data.md +7 -0
  310. package/content/knowledge/web3/web3-project-structure.md +6 -0
  311. package/content/knowledge/web3/web3-requirements.md +6 -0
  312. package/content/knowledge/web3/web3-security.md +8 -0
  313. package/content/knowledge/web3/web3-testing.md +6 -0
  314. package/content/knowledge/web3/web3-upgradeability.md +7 -0
  315. package/content/tools/knowledge-audit-entry.md +79 -0
  316. package/content/tools/review-code.md +41 -14
  317. package/content/tools/review-pr.md +32 -14
  318. package/dist/cli/commands/dashboard.d.ts +1 -1
  319. package/dist/cli/commands/dashboard.d.ts.map +1 -1
  320. package/dist/cli/commands/dashboard.js +10 -10
  321. package/dist/cli/commands/dashboard.js.map +1 -1
  322. package/dist/cli/commands/dashboard.test.js +1 -1
  323. package/dist/cli/commands/dashboard.test.js.map +1 -1
  324. package/dist/cli/commands/guides.d.ts +24 -0
  325. package/dist/cli/commands/guides.d.ts.map +1 -0
  326. package/dist/cli/commands/guides.js +103 -0
  327. package/dist/cli/commands/guides.js.map +1 -0
  328. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.d.ts +9 -0
  329. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.d.ts.map +1 -0
  330. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.js +112 -0
  331. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.js.map +1 -0
  332. package/dist/cli/commands/knowledge-freshness-audit-apply.d.ts +8 -0
  333. package/dist/cli/commands/knowledge-freshness-audit-apply.d.ts.map +1 -0
  334. package/dist/cli/commands/knowledge-freshness-audit-apply.js +96 -0
  335. package/dist/cli/commands/knowledge-freshness-audit-apply.js.map +1 -0
  336. package/dist/cli/commands/knowledge-freshness-audit-prefilter.d.ts +7 -0
  337. package/dist/cli/commands/knowledge-freshness-audit-prefilter.d.ts.map +1 -0
  338. package/dist/cli/commands/knowledge-freshness-audit-prefilter.js +42 -0
  339. package/dist/cli/commands/knowledge-freshness-audit-prefilter.js.map +1 -0
  340. package/dist/cli/commands/knowledge-freshness-audit-run-entry.d.ts +9 -0
  341. package/dist/cli/commands/knowledge-freshness-audit-run-entry.d.ts.map +1 -0
  342. package/dist/cli/commands/knowledge-freshness-audit-run-entry.js +63 -0
  343. package/dist/cli/commands/knowledge-freshness-audit-run-entry.js.map +1 -0
  344. package/dist/cli/commands/knowledge-freshness-bump-version.d.ts +8 -0
  345. package/dist/cli/commands/knowledge-freshness-bump-version.d.ts.map +1 -0
  346. package/dist/cli/commands/knowledge-freshness-bump-version.js +34 -0
  347. package/dist/cli/commands/knowledge-freshness-bump-version.js.map +1 -0
  348. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.d.ts +7 -0
  349. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.d.ts.map +1 -0
  350. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.js +51 -0
  351. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.js.map +1 -0
  352. package/dist/cli/commands/knowledge-freshness-link-check.d.ts +7 -0
  353. package/dist/cli/commands/knowledge-freshness-link-check.d.ts.map +1 -0
  354. package/dist/cli/commands/knowledge-freshness-link-check.js +57 -0
  355. package/dist/cli/commands/knowledge-freshness-link-check.js.map +1 -0
  356. package/dist/cli/commands/knowledge-freshness-lint-unsourced.d.ts +8 -0
  357. package/dist/cli/commands/knowledge-freshness-lint-unsourced.d.ts.map +1 -0
  358. package/dist/cli/commands/knowledge-freshness-lint-unsourced.js +58 -0
  359. package/dist/cli/commands/knowledge-freshness-lint-unsourced.js.map +1 -0
  360. package/dist/cli/commands/knowledge-freshness.d.ts +4 -0
  361. package/dist/cli/commands/knowledge-freshness.d.ts.map +1 -0
  362. package/dist/cli/commands/knowledge-freshness.js +25 -0
  363. package/dist/cli/commands/knowledge-freshness.js.map +1 -0
  364. package/dist/cli/commands/observe.d.ts +4 -0
  365. package/dist/cli/commands/observe.d.ts.map +1 -1
  366. package/dist/cli/commands/observe.js +13 -0
  367. package/dist/cli/commands/observe.js.map +1 -1
  368. package/dist/cli/commands/observe.test.js +46 -0
  369. package/dist/cli/commands/observe.test.js.map +1 -1
  370. package/dist/cli/commands/validate-knowledge.d.ts +4 -0
  371. package/dist/cli/commands/validate-knowledge.d.ts.map +1 -0
  372. package/dist/cli/commands/validate-knowledge.js +32 -0
  373. package/dist/cli/commands/validate-knowledge.js.map +1 -0
  374. package/dist/cli/index.d.ts.map +1 -1
  375. package/dist/cli/index.js +6 -0
  376. package/dist/cli/index.js.map +1 -1
  377. package/dist/core/adapters/claude-code.d.ts.map +1 -1
  378. package/dist/core/adapters/claude-code.js +6 -3
  379. package/dist/core/adapters/claude-code.js.map +1 -1
  380. package/dist/core/adapters/claude-code.test.js +45 -1
  381. package/dist/core/adapters/claude-code.test.js.map +1 -1
  382. package/dist/core/assembly/engine.d.ts.map +1 -1
  383. package/dist/core/assembly/engine.js +7 -3
  384. package/dist/core/assembly/engine.js.map +1 -1
  385. package/dist/core/assembly/engine.test.js +45 -1
  386. package/dist/core/assembly/engine.test.js.map +1 -1
  387. package/dist/core/assembly/gap-signal-tail.d.ts +18 -0
  388. package/dist/core/assembly/gap-signal-tail.d.ts.map +1 -0
  389. package/dist/core/assembly/gap-signal-tail.js +43 -0
  390. package/dist/core/assembly/gap-signal-tail.js.map +1 -0
  391. package/dist/core/assembly/gap-signal-tail.test.d.ts +2 -0
  392. package/dist/core/assembly/gap-signal-tail.test.d.ts.map +1 -0
  393. package/dist/core/assembly/gap-signal-tail.test.js +49 -0
  394. package/dist/core/assembly/gap-signal-tail.test.js.map +1 -0
  395. package/dist/core/assembly/knowledge-loader.d.ts +11 -0
  396. package/dist/core/assembly/knowledge-loader.d.ts.map +1 -1
  397. package/dist/core/assembly/knowledge-loader.js +54 -1
  398. package/dist/core/assembly/knowledge-loader.js.map +1 -1
  399. package/dist/core/assembly/knowledge-loader.test.js +73 -0
  400. package/dist/core/assembly/knowledge-loader.test.js.map +1 -1
  401. package/dist/guides/build.d.ts +12 -0
  402. package/dist/guides/build.d.ts.map +1 -0
  403. package/dist/guides/build.js +55 -0
  404. package/dist/guides/build.js.map +1 -0
  405. package/dist/guides/build.test.d.ts +2 -0
  406. package/dist/guides/build.test.d.ts.map +1 -0
  407. package/dist/guides/build.test.js +82 -0
  408. package/dist/guides/build.test.js.map +1 -0
  409. package/dist/guides/chrome.d.ts +24 -0
  410. package/dist/guides/chrome.d.ts.map +1 -0
  411. package/dist/guides/chrome.js +118 -0
  412. package/dist/guides/chrome.js.map +1 -0
  413. package/dist/guides/cli-guides.test.d.ts +2 -0
  414. package/dist/guides/cli-guides.test.d.ts.map +1 -0
  415. package/dist/guides/cli-guides.test.js +41 -0
  416. package/dist/guides/cli-guides.test.js.map +1 -0
  417. package/dist/guides/dashboard-theme.css +1073 -0
  418. package/dist/guides/directives-callout.test.d.ts +2 -0
  419. package/dist/guides/directives-callout.test.d.ts.map +1 -0
  420. package/dist/guides/directives-callout.test.js +22 -0
  421. package/dist/guides/directives-callout.test.js.map +1 -0
  422. package/dist/guides/directives-chart.test.d.ts +2 -0
  423. package/dist/guides/directives-chart.test.d.ts.map +1 -0
  424. package/dist/guides/directives-chart.test.js +25 -0
  425. package/dist/guides/directives-chart.test.js.map +1 -0
  426. package/dist/guides/directives-cite.test.d.ts +2 -0
  427. package/dist/guides/directives-cite.test.d.ts.map +1 -0
  428. package/dist/guides/directives-cite.test.js +26 -0
  429. package/dist/guides/directives-cite.test.js.map +1 -0
  430. package/dist/guides/directives-filter-table.test.d.ts +2 -0
  431. package/dist/guides/directives-filter-table.test.d.ts.map +1 -0
  432. package/dist/guides/directives-filter-table.test.js +22 -0
  433. package/dist/guides/directives-filter-table.test.js.map +1 -0
  434. package/dist/guides/directives-sev.test.d.ts +2 -0
  435. package/dist/guides/directives-sev.test.d.ts.map +1 -0
  436. package/dist/guides/directives-sev.test.js +15 -0
  437. package/dist/guides/directives-sev.test.js.map +1 -0
  438. package/dist/guides/directives-tabs.test.d.ts +2 -0
  439. package/dist/guides/directives-tabs.test.d.ts.map +1 -0
  440. package/dist/guides/directives-tabs.test.js +52 -0
  441. package/dist/guides/directives-tabs.test.js.map +1 -0
  442. package/dist/guides/directives.d.ts +8 -0
  443. package/dist/guides/directives.d.ts.map +1 -0
  444. package/dist/guides/directives.js +182 -0
  445. package/dist/guides/directives.js.map +1 -0
  446. package/dist/guides/fs-guides.test.d.ts +2 -0
  447. package/dist/guides/fs-guides.test.d.ts.map +1 -0
  448. package/dist/guides/fs-guides.test.js +14 -0
  449. package/dist/guides/fs-guides.test.js.map +1 -0
  450. package/dist/guides/index-page.d.ts +3 -0
  451. package/dist/guides/index-page.d.ts.map +1 -0
  452. package/dist/guides/index-page.js +14 -0
  453. package/dist/guides/index-page.js.map +1 -0
  454. package/dist/guides/links.d.ts +14 -0
  455. package/dist/guides/links.d.ts.map +1 -0
  456. package/dist/guides/links.js +56 -0
  457. package/dist/guides/links.js.map +1 -0
  458. package/dist/guides/links.test.d.ts +2 -0
  459. package/dist/guides/links.test.d.ts.map +1 -0
  460. package/dist/guides/links.test.js +72 -0
  461. package/dist/guides/links.test.js.map +1 -0
  462. package/dist/guides/lint.d.ts +6 -0
  463. package/dist/guides/lint.d.ts.map +1 -0
  464. package/dist/guides/lint.js +27 -0
  465. package/dist/guides/lint.js.map +1 -0
  466. package/dist/guides/lint.test.d.ts +2 -0
  467. package/dist/guides/lint.test.d.ts.map +1 -0
  468. package/dist/guides/lint.test.js +24 -0
  469. package/dist/guides/lint.test.js.map +1 -0
  470. package/dist/guides/loader.d.ts +4 -0
  471. package/dist/guides/loader.d.ts.map +1 -0
  472. package/dist/guides/loader.js +63 -0
  473. package/dist/guides/loader.js.map +1 -0
  474. package/dist/guides/loader.test.d.ts +2 -0
  475. package/dist/guides/loader.test.d.ts.map +1 -0
  476. package/dist/guides/loader.test.js +85 -0
  477. package/dist/guides/loader.test.js.map +1 -0
  478. package/dist/guides/mermaid-sanitize.test.d.ts +2 -0
  479. package/dist/guides/mermaid-sanitize.test.d.ts.map +1 -0
  480. package/dist/guides/mermaid-sanitize.test.js +57 -0
  481. package/dist/guides/mermaid-sanitize.test.js.map +1 -0
  482. package/dist/guides/mermaid.d.ts +18 -0
  483. package/dist/guides/mermaid.d.ts.map +1 -0
  484. package/dist/guides/mermaid.js +137 -0
  485. package/dist/guides/mermaid.js.map +1 -0
  486. package/dist/guides/mermaid.test.d.ts +2 -0
  487. package/dist/guides/mermaid.test.d.ts.map +1 -0
  488. package/dist/guides/mermaid.test.js +105 -0
  489. package/dist/guides/mermaid.test.js.map +1 -0
  490. package/dist/guides/render.d.ts +13 -0
  491. package/dist/guides/render.d.ts.map +1 -0
  492. package/dist/guides/render.js +58 -0
  493. package/dist/guides/render.js.map +1 -0
  494. package/dist/guides/render.test.d.ts +2 -0
  495. package/dist/guides/render.test.d.ts.map +1 -0
  496. package/dist/guides/render.test.js +46 -0
  497. package/dist/guides/render.test.js.map +1 -0
  498. package/dist/guides/sanitize.d.ts +3 -0
  499. package/dist/guides/sanitize.d.ts.map +1 -0
  500. package/dist/guides/sanitize.js +77 -0
  501. package/dist/guides/sanitize.js.map +1 -0
  502. package/dist/guides/sanitize.test.d.ts +2 -0
  503. package/dist/guides/sanitize.test.d.ts.map +1 -0
  504. package/dist/guides/sanitize.test.js +45 -0
  505. package/dist/guides/sanitize.test.js.map +1 -0
  506. package/dist/guides/template.d.ts +11 -0
  507. package/dist/guides/template.d.ts.map +1 -0
  508. package/dist/guides/template.js +38 -0
  509. package/dist/guides/template.js.map +1 -0
  510. package/dist/guides/template.test.d.ts +2 -0
  511. package/dist/guides/template.test.d.ts.map +1 -0
  512. package/dist/guides/template.test.js +41 -0
  513. package/dist/guides/template.test.js.map +1 -0
  514. package/dist/guides/types.d.ts +20 -0
  515. package/dist/guides/types.d.ts.map +1 -0
  516. package/dist/guides/types.js +2 -0
  517. package/dist/guides/types.js.map +1 -0
  518. package/dist/knowledge-freshness/audit-apply-pr.d.ts +64 -0
  519. package/dist/knowledge-freshness/audit-apply-pr.d.ts.map +1 -0
  520. package/dist/knowledge-freshness/audit-apply-pr.js +309 -0
  521. package/dist/knowledge-freshness/audit-apply-pr.js.map +1 -0
  522. package/dist/knowledge-freshness/audit-apply-pr.test.d.ts +2 -0
  523. package/dist/knowledge-freshness/audit-apply-pr.test.d.ts.map +1 -0
  524. package/dist/knowledge-freshness/audit-apply-pr.test.js +211 -0
  525. package/dist/knowledge-freshness/audit-apply-pr.test.js.map +1 -0
  526. package/dist/knowledge-freshness/audit-apply.d.ts +16 -0
  527. package/dist/knowledge-freshness/audit-apply.d.ts.map +1 -0
  528. package/dist/knowledge-freshness/audit-apply.js +193 -0
  529. package/dist/knowledge-freshness/audit-apply.js.map +1 -0
  530. package/dist/knowledge-freshness/audit-apply.test.d.ts +2 -0
  531. package/dist/knowledge-freshness/audit-apply.test.d.ts.map +1 -0
  532. package/dist/knowledge-freshness/audit-apply.test.js +482 -0
  533. package/dist/knowledge-freshness/audit-apply.test.js.map +1 -0
  534. package/dist/knowledge-freshness/audit-prefilter.d.ts +12 -0
  535. package/dist/knowledge-freshness/audit-prefilter.d.ts.map +1 -0
  536. package/dist/knowledge-freshness/audit-prefilter.js +74 -0
  537. package/dist/knowledge-freshness/audit-prefilter.js.map +1 -0
  538. package/dist/knowledge-freshness/audit-prefilter.test.d.ts +2 -0
  539. package/dist/knowledge-freshness/audit-prefilter.test.d.ts.map +1 -0
  540. package/dist/knowledge-freshness/audit-prefilter.test.js +78 -0
  541. package/dist/knowledge-freshness/audit-prefilter.test.js.map +1 -0
  542. package/dist/knowledge-freshness/audit-runner.d.ts +135 -0
  543. package/dist/knowledge-freshness/audit-runner.d.ts.map +1 -0
  544. package/dist/knowledge-freshness/audit-runner.js +168 -0
  545. package/dist/knowledge-freshness/audit-runner.js.map +1 -0
  546. package/dist/knowledge-freshness/audit-runner.test.d.ts +2 -0
  547. package/dist/knowledge-freshness/audit-runner.test.d.ts.map +1 -0
  548. package/dist/knowledge-freshness/audit-runner.test.js +130 -0
  549. package/dist/knowledge-freshness/audit-runner.test.js.map +1 -0
  550. package/dist/knowledge-freshness/bump-version.d.ts +24 -0
  551. package/dist/knowledge-freshness/bump-version.d.ts.map +1 -0
  552. package/dist/knowledge-freshness/bump-version.js +69 -0
  553. package/dist/knowledge-freshness/bump-version.js.map +1 -0
  554. package/dist/knowledge-freshness/bump-version.test.d.ts +2 -0
  555. package/dist/knowledge-freshness/bump-version.test.d.ts.map +1 -0
  556. package/dist/knowledge-freshness/bump-version.test.js +82 -0
  557. package/dist/knowledge-freshness/bump-version.test.js.map +1 -0
  558. package/dist/knowledge-freshness/gates/anti-over-rewrite.d.ts +86 -0
  559. package/dist/knowledge-freshness/gates/anti-over-rewrite.d.ts.map +1 -0
  560. package/dist/knowledge-freshness/gates/anti-over-rewrite.js +210 -0
  561. package/dist/knowledge-freshness/gates/anti-over-rewrite.js.map +1 -0
  562. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.d.ts +2 -0
  563. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.d.ts.map +1 -0
  564. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.js +115 -0
  565. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.js.map +1 -0
  566. package/dist/knowledge-freshness/gates/changed-files.d.ts +53 -0
  567. package/dist/knowledge-freshness/gates/changed-files.d.ts.map +1 -0
  568. package/dist/knowledge-freshness/gates/changed-files.js +128 -0
  569. package/dist/knowledge-freshness/gates/changed-files.js.map +1 -0
  570. package/dist/knowledge-freshness/gates/deep-guidance-check.d.ts +23 -0
  571. package/dist/knowledge-freshness/gates/deep-guidance-check.d.ts.map +1 -0
  572. package/dist/knowledge-freshness/gates/deep-guidance-check.js +27 -0
  573. package/dist/knowledge-freshness/gates/deep-guidance-check.js.map +1 -0
  574. package/dist/knowledge-freshness/gates/deep-guidance-check.test.d.ts +2 -0
  575. package/dist/knowledge-freshness/gates/deep-guidance-check.test.d.ts.map +1 -0
  576. package/dist/knowledge-freshness/gates/deep-guidance-check.test.js +23 -0
  577. package/dist/knowledge-freshness/gates/deep-guidance-check.test.js.map +1 -0
  578. package/dist/knowledge-freshness/gates/link-check.d.ts +55 -0
  579. package/dist/knowledge-freshness/gates/link-check.d.ts.map +1 -0
  580. package/dist/knowledge-freshness/gates/link-check.js +161 -0
  581. package/dist/knowledge-freshness/gates/link-check.js.map +1 -0
  582. package/dist/knowledge-freshness/gates/link-check.test.d.ts +2 -0
  583. package/dist/knowledge-freshness/gates/link-check.test.d.ts.map +1 -0
  584. package/dist/knowledge-freshness/gates/link-check.test.js +76 -0
  585. package/dist/knowledge-freshness/gates/link-check.test.js.map +1 -0
  586. package/dist/knowledge-freshness/gates/lint-unsourced.d.ts +40 -0
  587. package/dist/knowledge-freshness/gates/lint-unsourced.d.ts.map +1 -0
  588. package/dist/knowledge-freshness/gates/lint-unsourced.js +143 -0
  589. package/dist/knowledge-freshness/gates/lint-unsourced.js.map +1 -0
  590. package/dist/knowledge-freshness/gates/lint-unsourced.test.d.ts +2 -0
  591. package/dist/knowledge-freshness/gates/lint-unsourced.test.d.ts.map +1 -0
  592. package/dist/knowledge-freshness/gates/lint-unsourced.test.js +68 -0
  593. package/dist/knowledge-freshness/gates/lint-unsourced.test.js.map +1 -0
  594. package/dist/knowledge-freshness/gates/parse-entry.d.ts +25 -0
  595. package/dist/knowledge-freshness/gates/parse-entry.d.ts.map +1 -0
  596. package/dist/knowledge-freshness/gates/parse-entry.js +41 -0
  597. package/dist/knowledge-freshness/gates/parse-entry.js.map +1 -0
  598. package/dist/knowledge-freshness/gates/parse-entry.test.d.ts +2 -0
  599. package/dist/knowledge-freshness/gates/parse-entry.test.d.ts.map +1 -0
  600. package/dist/knowledge-freshness/gates/parse-entry.test.js +34 -0
  601. package/dist/knowledge-freshness/gates/parse-entry.test.js.map +1 -0
  602. package/dist/knowledge-freshness/providers/anthropic.d.ts +33 -0
  603. package/dist/knowledge-freshness/providers/anthropic.d.ts.map +1 -0
  604. package/dist/knowledge-freshness/providers/anthropic.js +36 -0
  605. package/dist/knowledge-freshness/providers/anthropic.js.map +1 -0
  606. package/dist/knowledge-freshness/providers/anthropic.test.d.ts +2 -0
  607. package/dist/knowledge-freshness/providers/anthropic.test.d.ts.map +1 -0
  608. package/dist/knowledge-freshness/providers/anthropic.test.js +32 -0
  609. package/dist/knowledge-freshness/providers/anthropic.test.js.map +1 -0
  610. package/dist/knowledge-freshness/providers/deepseek.d.ts +33 -0
  611. package/dist/knowledge-freshness/providers/deepseek.d.ts.map +1 -0
  612. package/dist/knowledge-freshness/providers/deepseek.js +157 -0
  613. package/dist/knowledge-freshness/providers/deepseek.js.map +1 -0
  614. package/dist/knowledge-freshness/providers/deepseek.test.d.ts +2 -0
  615. package/dist/knowledge-freshness/providers/deepseek.test.d.ts.map +1 -0
  616. package/dist/knowledge-freshness/providers/deepseek.test.js +142 -0
  617. package/dist/knowledge-freshness/providers/deepseek.test.js.map +1 -0
  618. package/dist/knowledge-freshness/providers/index.d.ts +41 -0
  619. package/dist/knowledge-freshness/providers/index.d.ts.map +1 -0
  620. package/dist/knowledge-freshness/providers/index.js +108 -0
  621. package/dist/knowledge-freshness/providers/index.js.map +1 -0
  622. package/dist/knowledge-freshness/providers/index.test.d.ts +2 -0
  623. package/dist/knowledge-freshness/providers/index.test.d.ts.map +1 -0
  624. package/dist/knowledge-freshness/providers/index.test.js +97 -0
  625. package/dist/knowledge-freshness/providers/index.test.js.map +1 -0
  626. package/dist/knowledge-freshness/source-hash.d.ts +39 -0
  627. package/dist/knowledge-freshness/source-hash.d.ts.map +1 -0
  628. package/dist/knowledge-freshness/source-hash.js +180 -0
  629. package/dist/knowledge-freshness/source-hash.js.map +1 -0
  630. package/dist/knowledge-freshness/source-hash.test.d.ts +2 -0
  631. package/dist/knowledge-freshness/source-hash.test.d.ts.map +1 -0
  632. package/dist/knowledge-freshness/source-hash.test.js +63 -0
  633. package/dist/knowledge-freshness/source-hash.test.js.map +1 -0
  634. package/dist/knowledge-freshness/source-url-validator.d.ts +57 -0
  635. package/dist/knowledge-freshness/source-url-validator.d.ts.map +1 -0
  636. package/dist/knowledge-freshness/source-url-validator.js +304 -0
  637. package/dist/knowledge-freshness/source-url-validator.js.map +1 -0
  638. package/dist/knowledge-freshness/source-url-validator.test.d.ts +2 -0
  639. package/dist/knowledge-freshness/source-url-validator.test.d.ts.map +1 -0
  640. package/dist/knowledge-freshness/source-url-validator.test.js +167 -0
  641. package/dist/knowledge-freshness/source-url-validator.test.js.map +1 -0
  642. package/dist/observability/checks/lens-i-knowledge-gaps.d.ts +3 -0
  643. package/dist/observability/checks/lens-i-knowledge-gaps.d.ts.map +1 -0
  644. package/dist/observability/checks/lens-i-knowledge-gaps.js +165 -0
  645. package/dist/observability/checks/lens-i-knowledge-gaps.js.map +1 -0
  646. package/dist/observability/checks/lens-i-knowledge-gaps.test.d.ts +2 -0
  647. package/dist/observability/checks/lens-i-knowledge-gaps.test.d.ts.map +1 -0
  648. package/dist/observability/checks/lens-i-knowledge-gaps.test.js +421 -0
  649. package/dist/observability/checks/lens-i-knowledge-gaps.test.js.map +1 -0
  650. package/dist/observability/checks/lens-i-lessons-scanner.d.ts +16 -0
  651. package/dist/observability/checks/lens-i-lessons-scanner.d.ts.map +1 -0
  652. package/dist/observability/checks/lens-i-lessons-scanner.js +106 -0
  653. package/dist/observability/checks/lens-i-lessons-scanner.js.map +1 -0
  654. package/dist/observability/checks/lens-i-lessons-scanner.test.d.ts +2 -0
  655. package/dist/observability/checks/lens-i-lessons-scanner.test.d.ts.map +1 -0
  656. package/dist/observability/checks/lens-i-lessons-scanner.test.js +174 -0
  657. package/dist/observability/checks/lens-i-lessons-scanner.test.js.map +1 -0
  658. package/dist/observability/engine/api.d.ts +4 -0
  659. package/dist/observability/engine/api.d.ts.map +1 -1
  660. package/dist/observability/engine/api.js +17 -1
  661. package/dist/observability/engine/api.js.map +1 -1
  662. package/dist/observability/engine/checks/observability-config.d.ts +4 -0
  663. package/dist/observability/engine/checks/observability-config.d.ts.map +1 -1
  664. package/dist/observability/engine/checks/observability-config.js +1 -0
  665. package/dist/observability/engine/checks/observability-config.js.map +1 -1
  666. package/dist/observability/engine/checks/registry.d.ts.map +1 -1
  667. package/dist/observability/engine/checks/registry.js +7 -0
  668. package/dist/observability/engine/checks/registry.js.map +1 -1
  669. package/dist/observability/engine/checks/registry.test.js +3 -2
  670. package/dist/observability/engine/checks/registry.test.js.map +1 -1
  671. package/dist/observability/engine/checks/runner.d.ts +30 -0
  672. package/dist/observability/engine/checks/runner.d.ts.map +1 -1
  673. package/dist/observability/engine/checks/runner.js +8 -1
  674. package/dist/observability/engine/checks/runner.js.map +1 -1
  675. package/dist/observability/engine/checks/runner.test.js +74 -0
  676. package/dist/observability/engine/checks/runner.test.js.map +1 -1
  677. package/dist/observability/engine/event-schemas.d.ts.map +1 -1
  678. package/dist/observability/engine/event-schemas.js +41 -3
  679. package/dist/observability/engine/event-schemas.js.map +1 -1
  680. package/dist/observability/engine/event-schemas.test.js +105 -0
  681. package/dist/observability/engine/event-schemas.test.js.map +1 -1
  682. package/dist/observability/engine/fix-flow.d.ts +7 -0
  683. package/dist/observability/engine/fix-flow.d.ts.map +1 -1
  684. package/dist/observability/engine/fix-flow.js +5 -3
  685. package/dist/observability/engine/fix-flow.js.map +1 -1
  686. package/dist/observability/engine/knowledge-root-integration.test.d.ts +2 -0
  687. package/dist/observability/engine/knowledge-root-integration.test.d.ts.map +1 -0
  688. package/dist/observability/engine/knowledge-root-integration.test.js +103 -0
  689. package/dist/observability/engine/knowledge-root-integration.test.js.map +1 -0
  690. package/dist/observability/engine/types.d.ts +20 -1
  691. package/dist/observability/engine/types.d.ts.map +1 -1
  692. package/dist/observability/engine/types.test.js +1 -1
  693. package/dist/observability/engine/types.test.js.map +1 -1
  694. package/dist/observability/knowledge-index.d.ts +145 -0
  695. package/dist/observability/knowledge-index.d.ts.map +1 -0
  696. package/dist/observability/knowledge-index.js +353 -0
  697. package/dist/observability/knowledge-index.js.map +1 -0
  698. package/dist/observability/knowledge-index.test.d.ts +2 -0
  699. package/dist/observability/knowledge-index.test.d.ts.map +1 -0
  700. package/dist/observability/knowledge-index.test.js +364 -0
  701. package/dist/observability/knowledge-index.test.js.map +1 -0
  702. package/dist/observability/renderers/markdown.d.ts.map +1 -1
  703. package/dist/observability/renderers/markdown.js +14 -0
  704. package/dist/observability/renderers/markdown.js.map +1 -1
  705. package/dist/observability/renderers/markdown.test.js +30 -0
  706. package/dist/observability/renderers/markdown.test.js.map +1 -1
  707. package/dist/types/assembly.d.ts +10 -0
  708. package/dist/types/assembly.d.ts.map +1 -1
  709. package/dist/utils/fs.d.ts +6 -0
  710. package/dist/utils/fs.d.ts.map +1 -1
  711. package/dist/utils/fs.js +13 -0
  712. package/dist/utils/fs.js.map +1 -1
  713. package/dist/validation/knowledge-frontmatter-validator.d.ts +15 -0
  714. package/dist/validation/knowledge-frontmatter-validator.d.ts.map +1 -0
  715. package/dist/validation/knowledge-frontmatter-validator.js +131 -0
  716. package/dist/validation/knowledge-frontmatter-validator.js.map +1 -0
  717. package/dist/validation/knowledge-frontmatter-validator.test.d.ts +2 -0
  718. package/dist/validation/knowledge-frontmatter-validator.test.d.ts.map +1 -0
  719. package/dist/validation/knowledge-frontmatter-validator.test.js +66 -0
  720. package/dist/validation/knowledge-frontmatter-validator.test.js.map +1 -0
  721. package/package.json +13 -4
@@ -0,0 +1,387 @@
1
+ ---
2
+ title: The Scaffold Pipeline
3
+ topic: pipeline
4
+ description: The 16-phase meta-prompt pipeline — phases, dependencies, conditional steps, methodology depth, and how to navigate it
5
+ category: concepts
6
+ order: 10
7
+ ---
8
+
9
+ ## The mental model
10
+
11
+ Scaffold is a **prompt pipeline**: a curated, ordered sequence of structured
12
+ meta-prompts that turn an idea into a fully-specified, build-ready project. Each
13
+ meta-prompt is a markdown file under `content/pipeline/`; the CLI assembles one
14
+ into a full prompt at runtime (injecting upstream artifacts, knowledge entries,
15
+ and depth instructions) and hands it to Claude Code or another AI tool.
16
+
17
+ The pipeline divides cleanly into two regimes:
18
+
19
+ - **Planning (phases 0–14)** — *stateful*, *sequential* steps. Each produces a
20
+ durable artifact (a vision doc, a PRD, a tech-stack doc, an implementation
21
+ plan…). The CLI tracks completion in `.scaffold/state.json`, enforces
22
+ dependencies, and detects when you re-run a step (UPDATE mode). You run each
23
+ step roughly once, in dependency order, working *toward* a frozen spec.
24
+ - **Build (phase 15)** — *stateless*, *on-demand* steps. These are the execution
25
+ loops (single-agent, multi-agent), the resume commands, quick-task, and
26
+ new-enhancement. They carry no completion state and can be run repeatedly
27
+ (`stateless: true` in frontmatter — :cite[src/types/frontmatter.ts:126]). You
28
+ run these *over and over* while actually writing code.
29
+
30
+ The 16 phases are the single source of truth in code: the `PHASES` constant
31
+ (:cite[src/types/frontmatter.ts:6]) defines every slug, number, and display
32
+ name. Everything in this guide is anchored to it.
33
+
34
+ :::callout{type=note}
35
+ **89 meta-prompts, not 89 steps you run.** The pipeline directory holds 89 files
36
+ across 16 phase directories, but most projects run only a fraction. Game,
37
+ multi-service, and platform-specific steps are disabled unless an overlay turns
38
+ them on, and many steps are conditional (see [Methodology & depth](#methodology--depth)).
39
+ :::
40
+
41
+ ## The 16 phases at a glance
42
+
43
+ Phase numbers and display names below are quoted verbatim from the `PHASES`
44
+ constant (:cite[src/types/frontmatter.ts:6]). Phases 0–14 are planning; phase 15
45
+ is the stateless build phase.
46
+
47
+ :::filter-table
48
+ | # | slug | name | what it produces |
49
+ | --- | --- | --- | --- |
50
+ | 0 | `vision` | Product Vision | A strategic vision document — who it's for, what's different, what success looks like |
51
+ | 1 | `pre` | Product Definition | The PRD, then user stories with testable acceptance criteria |
52
+ | 2 | `foundation` | Project Foundation | Tech-stack decisions, coding standards (+ linter configs), TDD strategy, project structure |
53
+ | 3 | `environment` | Development Environment | One-command dev env, design system (web), git workflow + CI, optional PR review, AI memory |
54
+ | 4 | `integration` | Testing Integration | E2E setup — Playwright (web) or Maestro (mobile); auto-skips for backend-only |
55
+ | 5 | `modeling` | Domain Modeling | Core entities, relationships, invariants, domain events — a shared vocabulary |
56
+ | 6 | `decisions` | Architecture Decisions | An ADR per significant technology/design decision, with alternatives + rationale |
57
+ | 7 | `architecture` | System Architecture | The system blueprint — components, data flow, where code lives, extension points |
58
+ | 8 | `specification` | Specifications | Per-layer interface specs — DB schema, API contracts, UX spec (each conditional) |
59
+ | 9 | `quality` | Quality Gates | Testing review, test skeletons, evals, operations/deploy plan, security review |
60
+ | 10 | `parity` | Platform Parity | Cross-platform gap audit (multi-platform only; auto-skips otherwise) |
61
+ | 11 | `consolidation` | Consolidation | CLAUDE.md optimization + workflow-doc consistency audit |
62
+ | 12 | `planning` | Planning | The implementation plan — stories decomposed into small, dependency-ordered tasks |
63
+ | 13 | `validation` | Validation | Seven cross-cutting pre-implementation audits (scope, cycles, traceability, …) |
64
+ | 14 | `finalization` | Finalization | Apply validation fixes, freeze docs, onboarding guide, implementation playbook |
65
+ | 15 | `build` | Build | Stateless execution loops — single/multi-agent, resume, quick-task, new-enhancement |
66
+ :::
67
+
68
+ Each step's `order` is phase-aligned: phase N occupies the N00–N99 band
69
+ (`tech-stack` is `220`, `coding-standards` is `230`, `single-agent-start` is
70
+ `1510`). The order field is the primary tiebreaker in the topological sort, so
71
+ within a phase steps run in `order` sequence.
72
+
73
+ ```mermaid
74
+ flowchart LR
75
+ P0["0 · vision"] --> P1["1 · pre
76
+ PRD + stories"]
77
+ P1 --> P2["2 · foundation
78
+ tech-stack, standards, tdd, structure"]
79
+ P2 --> P3["3 · environment"]
80
+ P3 --> P4["4 · integration
81
+ e2e (conditional)"]
82
+ P4 --> P5["5 · modeling"]
83
+ P5 --> P6["6 · decisions
84
+ ADRs"]
85
+ P6 --> P7["7 · architecture"]
86
+ P7 --> P8["8 · specification
87
+ db / api / ux (conditional)"]
88
+ P8 --> P9["9 · quality"]
89
+ P9 --> P10["10 · parity (conditional)"]
90
+ P10 --> P11["11 · consolidation"]
91
+ P11 --> P12["12 · planning
92
+ implementation-plan"]
93
+ P12 --> P13["13 · validation
94
+ 7 audits"]
95
+ P13 --> P14["14 · finalization
96
+ playbook"]
97
+ P14 ==>|"frozen spec"| P15["15 · build
98
+ stateless loops"]
99
+ P15 -.->|"run repeatedly"| P15
100
+ ```
101
+
102
+ The arrows show the *phase* progression, not the exact step-level dependency
103
+ graph — a single step usually depends on one upstream step, not its whole
104
+ phase. See [Why a step is blocked](#why-a-step-is-blocked) for how dependencies
105
+ actually gate execution.
106
+
107
+ ## Methodology & depth
108
+
109
+ Two orthogonal knobs control how much of the pipeline runs and how thoroughly:
110
+
111
+ 1. **Preset** — *which* steps are enabled. Three presets ship
112
+ (`content/methodology/`): `mvp`, `custom` (balanced, depth 3), and `deep` (the
113
+ schema default).
114
+ 2. **Depth** — *how thorough* each enabled step's output is, on a 1–5 scale.
115
+
116
+ ### Depth (1–5)
117
+
118
+ Every depth level dials the same step from a sketch to an exhaustive document.
119
+ Each step's `## Methodology Scaling` section spells out its behavior per level —
120
+ `coding-standards` at depth 1 is "core naming conventions, commit format, import
121
+ ordering, 1–2 pages"; at depth 5 it's "full suite with all sections, custom
122
+ linter rules, and code review checklist, 15–20 pages."
123
+
124
+ :::filter-table
125
+ | depth | name | what you get |
126
+ | --- | --- | --- |
127
+ | 1 | Minimal | Bare minimum to start building |
128
+ | 2 | Light | Slightly more detail; still speed-first |
129
+ | 3 | Balanced | Recommended default — good coverage, no excess |
130
+ | 4 | Thorough | Comprehensive; review/validation steps add external-model validation (Codex/Gemini) where their Methodology Scaling declares it |
131
+ | 5 | Exhaustive | Maximum detail; multi-model reconciliation on the steps that opt into it; for critical/regulated work |
132
+ :::
133
+
134
+ External-model / multi-model dispatch at depth 4–5 is **step-specific** — it
135
+ applies to the prompts whose `## Methodology Scaling` section declares it
136
+ (chiefly the `review-*` / `innovate-*` / validation steps). For most authoring
137
+ steps, higher depth just means a more thorough single-model output.
138
+
139
+ Depth 3 is the inflection point where steps start adding structure,
140
+ cross-references, and validation beyond the basics. Override depth per run with
141
+ `scaffold run <step> --depth N`.
142
+
143
+ ### The three presets
144
+
145
+ ::::tabs
146
+ :::tab{title=mvp (depth 1)}
147
+ **Ship fast with minimal ceremony.** Only the essential planning steps are
148
+ enabled: vision, PRD + stories (with reviews), tech-stack, coding-standards,
149
+ tdd, project-structure, dev-env-setup, implementation-plan, and
150
+ implementation-playbook — then the build loops. Everything else (domain
151
+ modeling, ADRs, architecture, specs, quality gates, validation) is **disabled**.
152
+ This is the *minimum safe depth*: still enough spec to TDD against, but no
153
+ ceremony you'd skip on a weekend project.
154
+ :::
155
+ :::tab{title=custom (depth 3)}
156
+ **Balanced.** Most steps are enabled at depth 3. The exceptions:
157
+ the three `innovate-*` steps and `automated-pr-review` are off by default, and
158
+ the conditional steps (`beads`, `design-system`, `add-e2e-testing`, the spec
159
+ steps, `platform-parity-review`) are enabled-but-`if-needed`. You override
160
+ individual steps to taste.
161
+ :::
162
+ :::tab{title=deep (depth 5)}
163
+ **Maximum quality — and the schema default** (`methodology` defaults to `deep`
164
+ :cite[src/config/schema.ts:272]; the resolver also falls back to `deep`). *Every*
165
+ planning step is enabled, including the
166
+ `innovate-*` steps (as `if-needed`), domain modeling, ADRs, full architecture,
167
+ all specs, every quality gate, all seven validation audits, and the full
168
+ finalization phase. External-model dispatch kicks in at depth 4+. Best for
169
+ complex or regulated systems.
170
+ :::
171
+ ::::
172
+
173
+ :::callout{type=note}
174
+ **Game / multi-service / platform steps are off in all three presets.** The 24
175
+ game steps and 5 cross-service steps are `enabled: false` in `mvp`, `custom`,
176
+ *and* `deep`. They only switch on via a **project-type overlay** — see the
177
+ playbooks below.
178
+ :::
179
+
180
+ ## Project-type playbooks
181
+
182
+ Overlays (`content/methodology/*-overlay.yml`) layer onto a preset. Most overlays
183
+ only **inject domain knowledge** into existing steps (so a web-app build pulls in
184
+ `web-app-auth-patterns` during `tech-stack`, `security`, etc.); a few also
185
+ **enable whole step families**.
186
+
187
+ ::::tabs
188
+ :::tab{title=Web app}
189
+ `web-app-overlay.yml` is knowledge-only — it appends web-app expertise to
190
+ ~25 steps (rendering strategies + deployment + auth into `tech-stack`, UX
191
+ patterns into `ux-spec`, the design system into `design-system`, and so on). The
192
+ spec steps you'll actually use: `database-schema`, `api-contracts`, `ux-spec`
193
+ (all conditional). `add-e2e-testing` configures **Playwright**.
194
+ :::
195
+ :::tab{title=Mobile / Expo}
196
+ `mobile-app-overlay.yml` injects mobile knowledge the same way. The distinctive
197
+ piece is `add-e2e-testing`, which auto-detects the platform and wires up
198
+ **Maestro** for mobile/Expo instead of Playwright (phase 4 — `integration`).
199
+ :::
200
+ :::tab{title=Game}
201
+ `game-overlay.yml` is the heavyweight: it **enables a whole phase family** via
202
+ `step-overrides`. On come `game-design-document`, `review-gdd`,
203
+ `performance-budgets`, `narrative-bible`, `netcode-spec`, `ai-behavior-design`,
204
+ `art-bible`, `audio-design`, `economy-design`, `save-system-spec`,
205
+ `game-ui-spec`, `playtest-plan`, `platform-cert-prep`, and more — many as
206
+ `if-needed`. These live across the `pre`, `architecture`, `specification`, and
207
+ `quality` phases.
208
+ :::
209
+ :::tab{title=Multi-service}
210
+ `multi-service-overlay.yml` activates when `services[]` is present in config. It
211
+ enables five cross-service steps (`service-ownership-map`,
212
+ `inter-service-contracts`, `cross-service-auth`, `cross-service-observability`,
213
+ `integration-test-plan`) and — crucially — adds **dependency-overrides** and
214
+ **reads-overrides** so downstream steps wait for and consume those cross-service
215
+ artifacts. Use `scaffold next --service <name>` to drive a single service.
216
+ :::
217
+ :::tab{title=CLI / library}
218
+ `cli-overlay.yml` (and `library-overlay.yml`) are knowledge-only. They append
219
+ CLI expertise — command parsing, distribution, shell integration, output
220
+ formatting — into `tech-stack`, `system-architecture`, `api-contracts`,
221
+ `operations`, etc. No extra steps are enabled; you mostly skip the UX/design and
222
+ (often) the database spec steps.
223
+ :::
224
+ ::::
225
+
226
+ Other shipped overlays include backend, data-pipeline, data-science, ML,
227
+ web3, browser-extension, and several research presets — all under
228
+ `content/methodology/`.
229
+
230
+ ## Navigating the pipeline
231
+
232
+ The CLI is your driver. Every command lives in `src/cli/commands/`.
233
+
234
+ :::filter-table
235
+ | command | what it does | source |
236
+ | --- | --- | --- |
237
+ | `scaffold next` | Show the next eligible step(s) — what's unblocked right now | :cite[src/cli/commands/next.ts:28-29] |
238
+ | `scaffold run <step>` | Assemble + run a step; on completion, advances state | :cite[src/cli/commands/run.ts:45] |
239
+ | `scaffold complete <step>` | Mark a step done that you ran outside `scaffold run` | :cite[src/cli/commands/complete.ts:28] |
240
+ | `scaffold skip <step..>` | Skip one or more steps (treated as satisfied for deps) | :cite[src/cli/commands/skip.ts:35] |
241
+ | `scaffold rework` | Re-run steps **by phase** for depth improvement or cleanup | :cite[src/cli/commands/rework.ts:39-40] |
242
+ | `scaffold reset [step]` | Reset one step to pending, or wipe all pipeline state | :cite[src/cli/commands/reset.ts:32] |
243
+ | `scaffold status` | Show overall progress and per-step statuses | :cite[src/cli/commands/status.ts:80-81] |
244
+ :::
245
+
246
+ A typical loop: `scaffold next` to see what's unblocked → `scaffold run <step>`
247
+ → repeat. `next` is a pure read — it derives eligibility live from the graph +
248
+ state and deliberately does *not* mutate `state.json`, so running it after an
249
+ upgrade won't churn committed state.
250
+
251
+ **`rework`** is phase-scoped: `scaffold rework --through 5` re-runs phases 1–5,
252
+ `--phases 2,7` re-runs just those, `--exclude 3` drops a phase, `--depth 5`
253
+ bumps depth for the batch. It batch-resets the selected steps to `pending` and
254
+ creates a rework session the runner skill walks through.
255
+
256
+ For build-phase work you don't touch `next`/`complete` — the stateless steps
257
+ (`single-agent-start`, `multi-agent-start`, the resume commands, `quick-task`,
258
+ `new-enhancement`) are run on demand and never tracked. See the
259
+ [concepts guide](../concepts/index.md){mode=advisory} and the
260
+ [CLI reference](../cli/index.md){mode=advisory} for the full command surface.
261
+
262
+ ## Why a step is blocked
263
+
264
+ A step becomes *eligible* only when its **dependencies** are satisfied. The
265
+ frontmatter distinguishes two relationships, and they behave very differently:
266
+
267
+ - **`dependencies`** (:cite[src/types/frontmatter.ts:114]) — **hard gates.**
268
+ `scaffold run` refuses a step whose deps aren't `completed` or `skipped`,
269
+ exiting with `DEP_UNMET` (:cite[src/cli/commands/run.ts:262-281]). `coding-standards`
270
+ declares `dependencies: [tech-stack]`, so you can't write standards before you
271
+ pick a stack.
272
+ - **`reads`** (:cite[src/types/frontmatter.ts:122]) — **soft references.** A step
273
+ *reads* an upstream artifact if it's available, but a missing/incomplete read
274
+ never blocks execution — the assembler silently skips it
275
+ (:cite[src/cli/commands/run.ts:413-421]). `coding-standards` *reads*
276
+ `create-prd` so the domain informs which patterns matter, but a missing PRD
277
+ won't stop it.
278
+
279
+ :::callout{type=warning}
280
+ **`reads` ≠ `dependencies` — and that trips people up.** Because reads don't gate
281
+ execution, a step can run "successfully" while silently missing context it would
282
+ have benefited from. If you `skip` an upstream step, downstream steps that only
283
+ *read* it proceed without warning. When ordering matters, an overlay can promote
284
+ a read into a `dependency` (the multi-service overlay does exactly this with its
285
+ `dependency-overrides`).
286
+ :::
287
+
288
+ ### Conditional ("if-needed") steps
289
+
290
+ A step with `conditional: 'if-needed'`
291
+ (:cite[src/types/frontmatter.ts:118]) is enabled but only *applies* to certain
292
+ project shapes. `database-schema` is `conditional: "if-needed"`
293
+ (:cite[content/pipeline/specification/database-schema.md:10]) — it runs only if
294
+ your project has a database layer. The spec steps (`database-schema`,
295
+ `api-contracts`, `ux-spec`), `add-e2e-testing`, `design-system`, `beads`, and
296
+ `platform-parity-review` are all conditional in the default presets.
297
+
298
+ :::callout{type=warning}
299
+ **The silent-skip trap.** Conditional steps that don't apply, and steps you
300
+ `skip` manually, both count as "satisfied" for dependency purposes — so the
301
+ pipeline keeps flowing and `scaffold next` shows green. That's by design, but it
302
+ means *the pipeline won't warn you that you skipped something important.* If
303
+ `ux-spec` is skipped on a project that genuinely has a UI, nothing downstream
304
+ will block; the gap only surfaces in phase 13 validation (or the build
305
+ observability audit). Run `scaffold status` to see what was actually
306
+ skipped vs completed.
307
+ :::
308
+
309
+ ### A representative dependency slice
310
+
311
+ The phase-2 foundation steps show the gating in miniature: `tech-stack` has no
312
+ dependencies (it kicks off the foundation), and `coding-standards` depends on it.
313
+
314
+ ```mermaid
315
+ flowchart LR
316
+ PRD["create-prd
317
+ (phase 1)"] -.->|reads| TS
318
+ PRD -.->|reads| CS
319
+ TS["tech-stack
320
+ deps: []"] -->|dependency| CS["coding-standards
321
+ deps: [tech-stack]"]
322
+ CS -->|dependency| TDD["tdd
323
+ deps: [coding-standards]"]
324
+ TS --> PS["project-structure
325
+ deps: [tech-stack, coding-standards]"]
326
+ CS --> PS
327
+ ```
328
+
329
+ Solid arrows are hard `dependencies` (block until done); dashed arrows are soft
330
+ `reads` (used if present, never block).
331
+
332
+ ## CREATE vs UPDATE mode
333
+
334
+ Running a planning step a second time doesn't blindly overwrite its artifact.
335
+ Every document-creating prompt carries a **Mode Detection** block: if the output
336
+ file already exists, the step runs in **UPDATE mode** instead of CREATE mode.
337
+
338
+ `scaffold run` detects this and (unless `--force`) confirms before re-running a
339
+ completed step, and warns on a depth *downgrade* (re-running at a lower depth
340
+ than last time). In UPDATE mode the prompt is instructed to **preserve**
341
+ human/team customizations and only change what genuinely needs to change. From
342
+ `coding-standards`'s Mode Detection block
343
+ (:cite[content/pipeline/foundation/coding-standards.md:57]):
344
+
345
+ > Update mode if `docs/coding-standards.md` exists. In update mode: preserve
346
+ > naming conventions, lint rule customizations, commit message format, and
347
+ > project-specific patterns.
348
+
349
+ So re-running `coding-standards` after you've hand-tuned its linter config keeps
350
+ your overrides; it doesn't reset them. This is what makes the planning phases
351
+ safe to iterate — you can `rework` a phase at higher depth and get richer
352
+ output without losing the decisions you've already made.
353
+
354
+ :::callout{type=note}
355
+ **Phase-15 steps don't use the planning CREATE-vs-UPDATE semantics.** They produce
356
+ no persistent planning doc, so the document Mode Detection block doesn't apply.
357
+ Each build prompt instead declares its own execution mode: the agent loops just
358
+ execute, `single-agent-resume`/`multi-agent-resume` run in RESUME mode,
359
+ `quick-task` in CREATE mode, and `new-enhancement` in ENHANCEMENT mode.
360
+ :::
361
+
362
+ ## Phase-boundary audits
363
+
364
+ Completing certain planning docs automatically triggers a non-gating
365
+ cross-document audit. Six steps are **phase boundaries**
366
+ (:cite[src/observability/engine/phase-subsets.ts:1-8]): `user-stories`,
367
+ `tech-stack`, `coding-standards`, `design-system`, `implementation-plan`, and
368
+ `implementation-playbook`. When you `complete` one of these, the state manager
369
+ fires an `H-cross-doc` audit and prints a one-line summary — catching doc drift
370
+ the moment a planning phase closes, without ever blocking the transition. See
371
+ the [build observability guide](../observability/index.md){mode=advisory} for
372
+ how that audit works and what the nine lenses check.
373
+
374
+ ## Where it all lives
375
+
376
+ | path | what it holds |
377
+ | --- | --- |
378
+ | `content/pipeline/<phase>/*.md` | The 89 meta-prompt files, one directory per phase |
379
+ | `content/methodology/*.yml` | Presets (`mvp`, `custom-defaults`, `deep`) + project-type overlays |
380
+ | `content/knowledge/` | Domain entries injected into prompts during assembly |
381
+ | `src/types/frontmatter.ts` | The canonical `PHASES` constant + frontmatter schema |
382
+ | `src/cli/commands/` | `next`, `run`, `complete`, `skip`, `rework`, `reset`, `status` |
383
+ | `.scaffold/state.json` | Per-step completion state (planning phases only) |
384
+
385
+ The phase list, ordering, and slugs are defined exactly once, in `PHASES`
386
+ (:cite[src/types/frontmatter.ts:6]); every doc, skill, and command resolves
387
+ against it.
@@ -0,0 +1 @@
1
+ <svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 825.5px; background-color: transparent;" viewBox="0 0 825.5 526.359375" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#666;stroke:#666;}#my-svg .marker.cross{stroke:#666;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#eee;stroke:#999;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#666!important;stroke-width:0;stroke:#666;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#666;stroke-width:1px;}#my-svg .flowchart-link{stroke:#666;fill:none;}#my-svg .edgeLabel{background-color:white;text-align:center;}#my-svg .edgeLabel p{background-color:white;}#my-svg .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:hsl(0, 0%, 98.9215686275%);stroke:#707070;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(-160, 0%, 93.3333333333%);border:1px solid #707070;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:white;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:white;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:white;fill:white;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#999;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#999;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M321.135,157.182L287.213,173.878C253.29,190.574,185.446,223.967,151.524,245.63C117.602,267.293,117.602,277.226,117.602,282.193L117.602,287.159" id="my-svg-L_Q_A_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Q_A_0" data-points="W3sieCI6MzIxLjEzNDc4NzQxODUyMDEsInkiOjE1Ny4xODE2NjI0MTg1MjAxMn0seyJ4IjoxMTcuNjAxNTYyNSwieSI6MjU3LjM1OTM3NX0seyJ4IjoxMTcuNjAxNTYyNSwieSI6MjkxLjE1OTM3NDIzNzA2MDU1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M396.313,232.359L396.313,236.526C396.313,240.693,396.313,249.026,396.313,256.693C396.313,264.359,396.313,271.359,396.313,274.859L396.313,278.359" id="my-svg-L_Q_B_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Q_B_0" data-points="W3sieCI6Mzk2LjMxMjUsInkiOjIzMi4zNTkzNzV9LHsieCI6Mzk2LjMxMjUsInkiOjI1Ny4zNTkzNzV9LHsieCI6Mzk2LjMxMjUsInkiOjI4Mi4zNTkzNzV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M472.897,155.775L509.324,172.706C545.752,189.636,618.606,223.498,655.034,243.929C691.461,264.359,691.461,271.359,691.461,274.859L691.461,278.359" id="my-svg-L_Q_C_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Q_C_0" data-points="W3sieCI6NDcyLjg5NzA2MDU5MjQwNDg0LCJ5IjoxNTUuNzc0ODE0NDA3NTk1MTN9LHsieCI6NjkxLjQ2MDkzNzUsInkiOjI1Ny4zNTkzNzV9LHsieCI6NjkxLjQ2MDkzNzUsInkiOjI4Mi4zNTkzNzV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M117.602,340.159L117.602,345.793C117.602,351.426,117.602,362.693,117.602,376.226C117.602,389.759,117.602,405.559,117.602,413.459L117.602,421.359" id="my-svg-L_A_AR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_A_AR_0" data-points="W3sieCI6MTE3LjYwMTU2MjUsInkiOjM0MC4xNTkzNzQyMzcwNjA1NX0seyJ4IjoxMTcuNjAxNTYyNSwieSI6MzczLjk1OTM3MzQ3NDEyMTF9LHsieCI6MTE3LjYwMTU2MjUsInkiOjQyNS4zNTkzNzV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M396.313,348.959L396.313,353.126C396.313,357.293,396.313,365.626,396.313,376.226C396.313,386.826,396.313,399.693,396.313,406.126L396.313,412.559" id="my-svg-L_B_BR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B_BR_0" data-points="W3sieCI6Mzk2LjMxMjUsInkiOjM0OC45NTkzNzM0NzQxMjExfSx7IngiOjM5Ni4zMTI1LCJ5IjozNzMuOTU5MzczNDc0MTIxMX0seyJ4IjozOTYuMzEyNSwieSI6NDE2LjU1OTM3NTc2MjkzOTQ1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M691.461,348.959L691.461,353.126C691.461,357.293,691.461,365.626,691.461,373.293C691.461,380.959,691.461,387.959,691.461,391.459L691.461,394.959" id="my-svg-L_C_CR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C_CR_0" data-points="W3sieCI6NjkxLjQ2MDkzNzUsInkiOjM0OC45NTkzNzM0NzQxMjExfSx7IngiOjY5MS40NjA5Mzc1LCJ5IjozNzMuOTU5MzczNDc0MTIxMX0seyJ4Ijo2OTEuNDYwOTM3NSwieSI6Mzk4Ljk1OTM3MzQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_Q_A_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_Q_B_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_Q_C_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_A_AR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_B_BR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_C_CR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g></g><g class="nodes"><g class="node default" id="my-svg-flowchart-Q-0" data-look="classic" transform="translate(396.3125, 120.1796875)"><polygon points="112.1796875,0 224.359375,-112.1796875 112.1796875,-224.359375 0,-112.1796875" class="label-container" transform="translate(-111.6796875, 112.1796875)"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">What</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> are</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> you</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> reviewing?</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-A-1" data-look="classic" transform="translate(117.6015625, 315.65937423706055)"><rect class="basic label-container" style="" x="-70.5234375" y="-24.5" width="141.046875" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">An</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> open</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> PR</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-B-3" data-look="classic" transform="translate(396.3125, 315.65937423706055)"><rect class="basic label-container" style="" x="-103.578125" y="-33.29999923706055" width="207.15625" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Local</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> changes</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">before</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> commit/push</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-C-5" data-look="classic" transform="translate(691.4609375, 315.65937423706055)"><rect class="basic label-container" style="" x="-102.8828125" y="-33.29999923706055" width="205.765625" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">The</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> whole</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> codebase</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">after</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> all</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tasks</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> land</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-AR-7" data-look="classic" transform="translate(117.6015625, 458.65937423706055)"><rect class="basic label-container" style="" x="-109.6015625" y="-33.29999923706055" width="219.203125" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">scaffold</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review-pr</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --pr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> N)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-BR-9" data-look="classic" transform="translate(396.3125, 458.65937423706055)"><rect class="basic label-container" style="" x="-119.109375" y="-42.099998474121094" width="238.21875" height="84.19999694824219"/><g class="label" style="" transform="translate(0, -27.099998474121094)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">scaffold</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review-code</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(synthesized</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> delivery</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">candidate)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-CR-11" data-look="classic" transform="translate(691.4609375, 458.65937423706055)"><rect class="basic label-container" style="" x="-126.0390625" y="-59.70000076293945" width="252.078125" height="119.4000015258789"/><g class="label" style="" transform="translate(0, -44.70000076293945)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">scaffold</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">post-implementation-revie</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">w</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(two-phase:</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> systemic</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="4.300000000000001em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">per-story)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="hsl(0, 0%, 83.3333333333%)" stop-opacity="1"/><stop offset="100%" stop-color="hsl(0, 0%, 88.9215686275%)" stop-opacity="1"/></linearGradient></svg>
@@ -0,0 +1 @@
1
+ <svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 1360.44px; background-color: transparent;" viewBox="0 0 1360.4375 502.8125" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#666;stroke:#666;}#my-svg .marker.cross{stroke:#666;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#eee;stroke:#999;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#666!important;stroke-width:0;stroke:#666;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#666;stroke-width:1px;}#my-svg .flowchart-link{stroke:#666;fill:none;}#my-svg .edgeLabel{background-color:white;text-align:center;}#my-svg .edgeLabel p{background-color:white;}#my-svg .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:hsl(0, 0%, 98.9215686275%);stroke:#707070;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(-160, 0%, 93.3333333333%);border:1px solid #707070;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:white;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:white;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:white;fill:white;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#999;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#999;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M545.631,127.842L472.052,145.504C398.473,163.166,251.315,198.489,177.735,222.584C104.156,246.679,104.156,259.546,104.156,265.979L104.156,272.412" id="my-svg-L_S_PR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_PR_0" data-points="W3sieCI6NTQ1LjYzMTIwMTg1Nzg1MzUsInkiOjEyNy44NDIxMzkzNTc4NTM0OH0seyJ4IjoxMDQuMTU2MjUsInkiOjIzMy44MTI1fSx7IngiOjEwNC4xNTYyNSwieSI6Mjc2LjQxMjQ5ODQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M557.898,140.109L524.055,155.727C490.211,171.344,422.523,202.578,388.68,224.629C354.836,246.679,354.836,259.546,354.836,265.979L354.836,272.412" id="my-svg-L_S_ST_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_ST_0" data-points="W3sieCI6NTU3Ljg5ODM5MTM5NzY3NDksInkiOjE0MC4xMDkzMjg4OTc2NzQ5N30seyJ4IjozNTQuODM1OTM3NSwieSI6MjMzLjgxMjV9LHsieCI6MzU0LjgzNTkzNzUsInkiOjI3Ni40MTI0OTg0NzQxMjExfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M626.602,208.813L626.602,212.979C626.602,217.146,626.602,225.479,626.602,236.079C626.602,246.679,626.602,259.546,626.602,265.979L626.602,272.412" id="my-svg-L_S_BR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_BR_0" data-points="W3sieCI6NjI2LjYwMTU2MjUsInkiOjIwOC44MTI1fSx7IngiOjYyNi42MDE1NjI1LCJ5IjoyMzMuODEyNX0seyJ4Ijo2MjYuNjAxNTYyNSwieSI6Mjc2LjQxMjQ5ODQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M697.091,138.323L734.59,154.238C772.09,170.153,847.088,201.983,884.587,221.398C922.086,240.813,922.086,247.813,922.086,251.313L922.086,254.813" id="my-svg-L_S_DC_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_DC_0" data-points="W3sieCI6Njk3LjA5MTMxOTg1MDQ4NDQsInkiOjEzOC4zMjI3NDI2NDk1MTU1M30seyJ4Ijo5MjIuMDg1OTM3NSwieSI6MjMzLjgxMjV9LHsieCI6OTIyLjA4NTkzNzUsInkiOjI1OC44MTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M709.645,125.769L795.768,143.777C881.891,161.784,1054.137,197.798,1140.26,220.772C1226.383,243.746,1226.383,253.679,1226.383,258.646L1226.383,263.612" id="my-svg-L_S_UF_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_UF_0" data-points="W3sieCI6NzA5LjY0NDYxODQ0NDU4MzMsInkiOjEyNS43Njk0NDQwNTU0MTY3fSx7IngiOjEyMjYuMzgyODEyNSwieSI6MjMzLjgxMjV9LHsieCI6MTIyNi4zODI4MTI1LCJ5IjoyNjcuNjEyNDk5MjM3MDYwNTV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M104.156,325.412L104.156,332.512C104.156,339.612,104.156,353.812,104.156,368.812C104.156,383.812,104.156,399.612,104.156,407.512L104.156,415.412" id="my-svg-L_PR_PRc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_PR_PRc_0" data-points="W3sieCI6MTA0LjE1NjI1LCJ5IjozMjUuNDEyNDk4NDc0MTIxMX0seyJ4IjoxMDQuMTU2MjUsInkiOjM2OC4wMTI0OTY5NDgyNDIyfSx7IngiOjEwNC4xNTYyNSwieSI6NDE5LjQxMjQ5ODQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M354.836,325.412L354.836,332.512C354.836,339.612,354.836,353.812,354.836,368.812C354.836,383.812,354.836,399.612,354.836,407.512L354.836,415.412" id="my-svg-L_ST_STc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ST_STc_0" data-points="W3sieCI6MzU0LjgzNTkzNzUsInkiOjMyNS40MTI0OTg0NzQxMjExfSx7IngiOjM1NC44MzU5Mzc1LCJ5IjozNjguMDEyNDk2OTQ4MjQyMn0seyJ4IjozNTQuODM1OTM3NSwieSI6NDE5LjQxMjQ5ODQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M626.602,325.412L626.602,332.512C626.602,339.612,626.602,353.812,626.602,367.346C626.602,380.879,626.602,393.746,626.602,400.179L626.602,406.612" id="my-svg-L_BR_BRc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_BR_BRc_0" data-points="W3sieCI6NjI2LjYwMTU2MjUsInkiOjMyNS40MTI0OTg0NzQxMjExfSx7IngiOjYyNi42MDE1NjI1LCJ5IjozNjguMDEyNDk2OTQ4MjQyMn0seyJ4Ijo2MjYuNjAxNTYyNSwieSI6NDEwLjYxMjQ5OTIzNzA2MDU1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M922.086,343.012L922.086,347.179C922.086,351.346,922.086,359.679,922.086,367.346C922.086,375.012,922.086,382.012,922.086,385.512L922.086,389.012" id="my-svg-L_DC_DCc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_DC_DCc_0" data-points="W3sieCI6OTIyLjA4NTkzNzUsInkiOjM0My4wMTI0OTY5NDgyNDIyfSx7IngiOjkyMi4wODU5Mzc1LCJ5IjozNjguMDEyNDk2OTQ4MjQyMn0seyJ4Ijo5MjIuMDg1OTM3NSwieSI6MzkzLjAxMjQ5Njk0ODI0MjJ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1226.383,334.212L1226.383,339.846C1226.383,345.479,1226.383,356.746,1226.383,368.812C1226.383,380.879,1226.383,393.746,1226.383,400.179L1226.383,406.612" id="my-svg-L_UF_UFc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_UF_UFc_0" data-points="W3sieCI6MTIyNi4zODI4MTI1LCJ5IjozMzQuMjEyNDk3NzExMTgxNjR9LHsieCI6MTIyNi4zODI4MTI1LCJ5IjozNjguMDEyNDk2OTQ4MjQyMn0seyJ4IjoxMjI2LjM4MjgxMjUsInkiOjQxMC42MTI0OTkyMzcwNjA1NX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_S_PR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_S_ST_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_S_BR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_S_DC_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_S_UF_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_PR_PRc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_ST_STc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_BR_BRc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_DC_DCc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_UF_UFc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g></g><g class="nodes"><g class="node default" id="my-svg-flowchart-S-0" data-look="classic" transform="translate(626.6015625, 108.40625)"><polygon points="100.40625,0 200.8125,-100.40625 100.40625,-200.8125 0,-100.40625" class="label-container" transform="translate(-99.90625, 100.40625)"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Where</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> is</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> change?</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-PR-1" data-look="classic" transform="translate(104.15625, 300.9124984741211)"><rect class="basic label-container" style="" x="-85.25" y="-24.5" width="170.5" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">On</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> GitHub</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> PR</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ST-3" data-look="classic" transform="translate(354.8359375, 300.9124984741211)"><rect class="basic label-container" style="" x="-99.3359375" y="-24.5" width="198.671875" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Staged</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> index</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-BR-5" data-look="classic" transform="translate(626.6015625, 300.9124984741211)"><rect class="basic label-container" style="" x="-98.9609375" y="-24.5" width="197.921875" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">A</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> branch,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> vs</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> base</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-DC-7" data-look="classic" transform="translate(922.0859375, 300.9124984741211)"><rect class="basic label-container" style="" x="-108.0625" y="-42.099998474121094" width="216.125" height="84.19999694824219"/><g class="label" style="" transform="translate(0, -27.099998474121094)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Local</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> working</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tree:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">committed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> staged</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">unstaged</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-UF-9" data-look="classic" transform="translate(1226.3828125, 300.9124984741211)"><rect class="basic label-container" style="" x="-101.8359375" y="-33.29999923706055" width="203.671875" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">A</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> brand-new</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> file</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">git</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> doesn't</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> track</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> yet</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-PRc-11" data-look="classic" transform="translate(104.15625, 443.9124984741211)"><rect class="basic label-container" style="" x="-96.15625" y="-24.5" width="192.3125" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --pr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> N</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-STc-13" data-look="classic" transform="translate(354.8359375, 443.9124984741211)"><rect class="basic label-container" style="" x="-104.5234375" y="-24.5" width="209.046875" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --staged</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-BRc-15" data-look="classic" transform="translate(626.6015625, 443.9124984741211)"><rect class="basic label-container" style="" x="-117.2421875" y="-33.29999923706055" width="234.484375" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --base</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> main</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">--head</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> BRANCH</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-DCc-17" data-look="classic" transform="translate(922.0859375, 443.9124984741211)"><rect class="basic label-container" style="" x="-128.2421875" y="-50.900001525878906" width="256.484375" height="101.80000305175781"/><g class="label" style="" transform="translate(0, -35.900001525878906)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">git</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> diff</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MERGE_BASE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> |</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> mmr</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --diff</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> -</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(this</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> is</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> what</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review-code</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">synthesizes)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-UFc-19" data-look="classic" transform="translate(1226.3828125, 443.9124984741211)"><rect class="basic label-container" style="" x="-126.0546875" y="-33.29999923706055" width="252.109375" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(diff</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> -u</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /dev/null</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> FILE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ||</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">true)</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> |</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --diff</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> -</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="hsl(0, 0%, 83.3333333333%)" stop-opacity="1"/><stop offset="100%" stop-color="hsl(0, 0%, 88.9215686275%)" stop-opacity="1"/></linearGradient></svg>
@@ -0,0 +1,4 @@
1
+ {
2
+ "diagram-0": "46b695151de152bd",
3
+ "diagram-1": "f95aebc97a22a7bf"
4
+ }