@thebackstoryis/engineering-with-ai 0.2.9

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 (334) hide show
  1. package/Docs/README.md +50 -0
  2. package/Docs/adoption/consultancy-and-multi-project-rollout.md +135 -0
  3. package/Docs/adoption/non-technical-team-guide.md +126 -0
  4. package/Docs/archaeology-technology-and-hosting-discovery.md +212 -0
  5. package/Docs/blast-radius-and-impact-routing-guide.md +325 -0
  6. package/Docs/blueprints/internal-blueprint-catalogue.md +146 -0
  7. package/Docs/blueprints/maintaining-organisation-blueprints.md +154 -0
  8. package/Docs/blueprints/validation-and-troubleshooting.md +168 -0
  9. package/Docs/cli-reference.md +113 -0
  10. package/Docs/completed-phase-evidence-amendments.md +74 -0
  11. package/Docs/consultancy-network-rollout-control-plane-guide.md +202 -0
  12. package/Docs/context-aware-delivery-companion-guide.md +198 -0
  13. package/Docs/context-aware-delivery-companion-user-guide.md +184 -0
  14. package/Docs/context-management-and-token-efficiency.md +113 -0
  15. package/Docs/design-systems/design-system-implementation-guide.md +85 -0
  16. package/Docs/design-systems/design-system-pack-authoring-guide.md +95 -0
  17. package/Docs/design-systems/design-system-review-guide.md +51 -0
  18. package/Docs/design-systems/design-system-user-guide.md +96 -0
  19. package/Docs/design-systems/product-owner-guide.md +49 -0
  20. package/Docs/designing-organisation-blueprint-packs.md +384 -0
  21. package/Docs/developer-delivery-guide.md +224 -0
  22. package/Docs/error-reporting-guide.md +110 -0
  23. package/Docs/error-reporting-provider-guide.md +49 -0
  24. package/Docs/examples/error-report-adapter.md +70 -0
  25. package/Docs/examples/meeting-review.md +76 -0
  26. package/Docs/examples/minimal-design-system.md +67 -0
  27. package/Docs/examples/prototype-review-inputs.md +175 -0
  28. package/Docs/examples/reproducible-archaeology-depth-example.md +144 -0
  29. package/Docs/examples/test-scenario-input.md +68 -0
  30. package/Docs/examples/worked-examples.md +147 -0
  31. package/Docs/existing-project-onboarding-guide.md +214 -0
  32. package/Docs/explanation/core-concepts.md +26 -0
  33. package/Docs/explanation/delivery-workflow.md +48 -0
  34. package/Docs/governance/governance-team-guide.md +139 -0
  35. package/Docs/governed-starter-project-materialisation-guide.md +284 -0
  36. package/Docs/guide-catalogue.md +117 -0
  37. package/Docs/guided-discovery-facilitator-guide.md +172 -0
  38. package/Docs/guided-intent-workspace-guide.md +109 -0
  39. package/Docs/guided-phase-evidence-drafting-guide.md +119 -0
  40. package/Docs/human-approval-and-assurance-guide.md +146 -0
  41. package/Docs/knowledge-proposals-implementer-guide.md +106 -0
  42. package/Docs/knowledge-proposals-user-guide.md +247 -0
  43. package/Docs/maintainers/context-benchmarks.md +29 -0
  44. package/Docs/maintainers/contributing.md +58 -0
  45. package/Docs/maintainers/evidence-depth-acceptance.md +72 -0
  46. package/Docs/maintainers/verification-walkthroughs.md +104 -0
  47. package/Docs/meeting-evidence-implementer-guide.md +132 -0
  48. package/Docs/meeting-evidence-user-guide.md +200 -0
  49. package/Docs/operations/dashboard-and-delivery-state.md +153 -0
  50. package/Docs/operations/dashboard-configuration.md +87 -0
  51. package/Docs/operations/installation-updating-and-entitlements.md +135 -0
  52. package/Docs/operations/premium-personas-setup.md +76 -0
  53. package/Docs/operations/troubleshooting-and-recovery.md +205 -0
  54. package/Docs/organisation-rollout-guide.md +142 -0
  55. package/Docs/persona-entitlement-provider-guide.md +199 -0
  56. package/Docs/persona-guided-prototype-iteration.md +129 -0
  57. package/Docs/personas/organisation-specific-personas.md +103 -0
  58. package/Docs/personas/persona-authoring-cookbook.md +176 -0
  59. package/Docs/personas/persona-engagement-ui.md +133 -0
  60. package/Docs/personas/persona-governance.md +118 -0
  61. package/Docs/platform-export-analysis-guide.md +336 -0
  62. package/Docs/policies/governance-owner-guide.md +36 -0
  63. package/Docs/policies/implementation-guide.md +42 -0
  64. package/Docs/policies/organisation-policy-design-gates.md +58 -0
  65. package/Docs/policies/policy-pack-authoring-guide.md +108 -0
  66. package/Docs/policies/product-owner-guide.md +43 -0
  67. package/Docs/policies/technical-owner-guide.md +37 -0
  68. package/Docs/product-owner-guide.md +327 -0
  69. package/Docs/project-portfolio-orchestration-guide.md +199 -0
  70. package/Docs/quality/manual-qa-and-acceptance.md +162 -0
  71. package/Docs/quality/persona-driven-test-scenarios.md +172 -0
  72. package/Docs/quality/reproducible-archaeology-depth-review-checklist.md +89 -0
  73. package/Docs/reference/capabilities-and-project-layout.md +678 -0
  74. package/Docs/reference/cli-and-configuration.md +398 -0
  75. package/Docs/reference/contributions-api.md +23 -0
  76. package/Docs/reference/security-adapter-authoring.md +81 -0
  77. package/Docs/reference/starter-adapter-authoring.md +74 -0
  78. package/Docs/repository-source-map-guide.md +381 -0
  79. package/Docs/reproducible-archaeology-and-discovery-depth.md +292 -0
  80. package/Docs/screen-prototype-creation-guide.md +324 -0
  81. package/Docs/security-validation-guide.md +353 -0
  82. package/Docs/solution-readiness-review-guide.md +123 -0
  83. package/Docs/standards/project-standards-authoring.md +157 -0
  84. package/Docs/team-hub-guide.md +162 -0
  85. package/Docs/team-hub-resource-registry-guide.md +167 -0
  86. package/Docs/tutorials/first-delivery.md +83 -0
  87. package/Docs/tutorials/first-session.md +62 -0
  88. package/Docs/using-lifecycle-hooks.md +381 -0
  89. package/Docs/working-with-personas.md +274 -0
  90. package/LICENSE +165 -0
  91. package/README.md +96 -0
  92. package/agents-src/claude/ewai-security-reviewer.md +15 -0
  93. package/bin/ewai +5 -0
  94. package/config/archaeology-record-families.yaml +59 -0
  95. package/config/delivery-artifacts.yaml +121 -0
  96. package/config/delivery-stages.yaml +77 -0
  97. package/config/design-system.schema.json +46 -0
  98. package/config/error-reporting.schema.json +79 -0
  99. package/config/evidence-depth.schema.json +53 -0
  100. package/config/intent.schema.json +90 -0
  101. package/config/knowledge-proposals-proposal.schema.json +34 -0
  102. package/config/lifecycle-event.schema.json +68 -0
  103. package/config/lifecycle-handler.schema.json +45 -0
  104. package/config/lifecycle-hook-ack.schema.json +19 -0
  105. package/config/meeting-evidence-candidate.schema.json +102 -0
  106. package/config/organisation-policy.schema.json +137 -0
  107. package/config/pack.schema.json +250 -0
  108. package/config/persona-pack.schema.json +21 -0
  109. package/config/persona.schema.json +17 -0
  110. package/config/policy-evaluation.schema.json +77 -0
  111. package/config/policy-facts.schema.json +140 -0
  112. package/config/portfolio.schema.json +68 -0
  113. package/config/project.schema.json +313 -0
  114. package/config/prototype-iteration.schema.json +128 -0
  115. package/config/rollout.schema.json +87 -0
  116. package/config/security-adapter.schema.json +31 -0
  117. package/config/security-scan-request.schema.json +64 -0
  118. package/config/security-scan-response.schema.json +52 -0
  119. package/config/security-validation-policy.schema.json +74 -0
  120. package/config/starter-source-acknowledgement.schema.json +13 -0
  121. package/config/starter-source-adapter.schema.json +38 -0
  122. package/config/starter-source-request.schema.json +61 -0
  123. package/package.json +77 -0
  124. package/packs/core/pack.yaml +7 -0
  125. package/packs/design-systems/default/experience-promise.md +9 -0
  126. package/packs/design-systems/default/intentional-review.md +10 -0
  127. package/packs/design-systems/default/interaction-and-entry.md +9 -0
  128. package/packs/design-systems/default/meaningful-content-and-states.md +9 -0
  129. package/packs/design-systems/default/pack.yaml +44 -0
  130. package/packs/design-systems/default/principles.md +10 -0
  131. package/packs/personas/core/pack.yaml +7 -0
  132. package/packs/personas/core/personas/archaeologist.md +37 -0
  133. package/packs/personas/core/personas/end-user.md +17 -0
  134. package/packs/personas/core/personas/maintainer.md +17 -0
  135. package/packs/personas/core/personas/operator.md +17 -0
  136. package/packs/personas/core/personas/specs-knowledge-curator.md +35 -0
  137. package/packs/technologies/laravel/pack.yaml +30 -0
  138. package/packs/technologies/laravel-nuxt/pack.yaml +30 -0
  139. package/packs/technologies/nuxt/pack.yaml +30 -0
  140. package/packs/technologies/power-platform/pack.yaml +31 -0
  141. package/packs/technologies/salesforce/pack.yaml +25 -0
  142. package/public/app.js +4896 -0
  143. package/public/apple-touch-icon.png +0 -0
  144. package/public/assets/backstory-icon.png +0 -0
  145. package/public/dashboard-navigation.js +98 -0
  146. package/public/favicon-16.png +0 -0
  147. package/public/favicon-32.png +0 -0
  148. package/public/favicon.ico +0 -0
  149. package/public/index.html +789 -0
  150. package/public/styles.css +2693 -0
  151. package/public/team-hub/app.js +202 -0
  152. package/public/team-hub/index.html +79 -0
  153. package/public/team-hub/styles.css +90 -0
  154. package/scripts/publication-check.mjs +140 -0
  155. package/scripts/setup.mjs +21 -0
  156. package/skills-src/ewai-archaeology/SKILL.md +334 -0
  157. package/skills-src/ewai-archaeology/agents/openai.yaml +4 -0
  158. package/skills-src/ewai-archaeology/references/archaeology-contract.md +201 -0
  159. package/skills-src/ewai-archaeology/references/lifecycle-reconstruction.md +177 -0
  160. package/skills-src/ewai-archaeology/references/maximum-detail-reconstruction.md +97 -0
  161. package/skills-src/ewai-archaeology/references/model-routing.md +26 -0
  162. package/skills-src/ewai-architecture/SKILL.md +108 -0
  163. package/skills-src/ewai-architecture/agents/openai.yaml +4 -0
  164. package/skills-src/ewai-architecture/references/architecture-contract.md +176 -0
  165. package/skills-src/ewai-context/SKILL.md +68 -0
  166. package/skills-src/ewai-context/agents/openai.yaml +4 -0
  167. package/skills-src/ewai-context-import/SKILL.md +118 -0
  168. package/skills-src/ewai-context-import/agents/openai.yaml +4 -0
  169. package/skills-src/ewai-context-import/references/context-import-contract.md +106 -0
  170. package/skills-src/ewai-dashboard-configuration/SKILL.md +20 -0
  171. package/skills-src/ewai-deliver/SKILL.md +122 -0
  172. package/skills-src/ewai-deliver/references/delivery-evidence.md +92 -0
  173. package/skills-src/ewai-deliver/references/phase-routing.md +31 -0
  174. package/skills-src/ewai-design-system-apply/SKILL.md +27 -0
  175. package/skills-src/ewai-design-system-apply/agents/openai.yaml +4 -0
  176. package/skills-src/ewai-design-system-apply/references/application-contract.md +36 -0
  177. package/skills-src/ewai-design-system-author/SKILL.md +28 -0
  178. package/skills-src/ewai-design-system-author/agents/openai.yaml +4 -0
  179. package/skills-src/ewai-design-system-author/references/authoring-contract.md +38 -0
  180. package/skills-src/ewai-design-system-review/SKILL.md +26 -0
  181. package/skills-src/ewai-design-system-review/agents/openai.yaml +4 -0
  182. package/skills-src/ewai-design-system-review/references/review-contract.md +40 -0
  183. package/skills-src/ewai-error-reporting/SKILL.md +46 -0
  184. package/skills-src/ewai-error-reporting/agents/openai.yaml +4 -0
  185. package/skills-src/ewai-error-reporting/references/provider-contract.md +74 -0
  186. package/skills-src/ewai-evidence-depth/SKILL.md +72 -0
  187. package/skills-src/ewai-evidence-depth/agents/openai.yaml +4 -0
  188. package/skills-src/ewai-evidence-depth/references/evidence-depth-contract.md +127 -0
  189. package/skills-src/ewai-intent/SKILL.md +68 -0
  190. package/skills-src/ewai-intent/agents/openai.yaml +4 -0
  191. package/skills-src/ewai-intent/references/intent-contract.md +42 -0
  192. package/skills-src/ewai-knowledge-proposals/SKILL.md +105 -0
  193. package/skills-src/ewai-knowledge-proposals/agents/openai.yaml +4 -0
  194. package/skills-src/ewai-knowledge-proposals/references/proposal-contract.md +59 -0
  195. package/skills-src/ewai-meeting-evidence/SKILL.md +106 -0
  196. package/skills-src/ewai-meeting-evidence/agents/openai.yaml +4 -0
  197. package/skills-src/ewai-meeting-evidence/references/candidate-contract.md +64 -0
  198. package/skills-src/ewai-organisation-policy/SKILL.md +62 -0
  199. package/skills-src/ewai-organisation-policy/agents/openai.yaml +4 -0
  200. package/skills-src/ewai-organisation-policy/references/policy-contract.md +94 -0
  201. package/skills-src/ewai-palace-housekeeping/SKILL.md +55 -0
  202. package/skills-src/ewai-palace-housekeeping/agents/openai.yaml +4 -0
  203. package/skills-src/ewai-persona-entitlement/SKILL.md +60 -0
  204. package/skills-src/ewai-persona-entitlement/agents/openai.yaml +4 -0
  205. package/skills-src/ewai-phase-evidence/SKILL.md +79 -0
  206. package/skills-src/ewai-phase-evidence/agents/openai.yaml +4 -0
  207. package/skills-src/ewai-pipeline/SKILL.md +130 -0
  208. package/skills-src/ewai-pipeline/agents/openai.yaml +4 -0
  209. package/skills-src/ewai-pipeline/references/cli.md +86 -0
  210. package/skills-src/ewai-pipeline/references/specs-contract.md +16 -0
  211. package/skills-src/ewai-portfolio/SKILL.md +70 -0
  212. package/skills-src/ewai-portfolio/agents/openai.yaml +4 -0
  213. package/skills-src/ewai-portfolio/references/portfolio-contract.md +67 -0
  214. package/skills-src/ewai-project-discovery/SKILL.md +95 -0
  215. package/skills-src/ewai-project-discovery/agents/openai.yaml +4 -0
  216. package/skills-src/ewai-project-discovery/references/discovery-contract.md +34 -0
  217. package/skills-src/ewai-prototype-iteration/SKILL.md +30 -0
  218. package/skills-src/ewai-prototype-iteration/agents/openai.yaml +4 -0
  219. package/skills-src/ewai-prototype-iteration/references/review-contract.md +49 -0
  220. package/skills-src/ewai-retro/SKILL.md +48 -0
  221. package/skills-src/ewai-retro/agents/openai.yaml +4 -0
  222. package/skills-src/ewai-retro/references/asset-routing.md +14 -0
  223. package/skills-src/ewai-rollout/SKILL.md +74 -0
  224. package/skills-src/ewai-rollout/agents/openai.yaml +4 -0
  225. package/skills-src/ewai-rollout/references/rollout-contract.md +74 -0
  226. package/skills-src/ewai-shape-intents/SKILL.md +84 -0
  227. package/skills-src/ewai-shape-intents/agents/openai.yaml +4 -0
  228. package/skills-src/ewai-shape-intents/references/intent-mapping-contract.md +109 -0
  229. package/skills-src/ewai-solution-readiness/SKILL.md +55 -0
  230. package/skills-src/ewai-solution-readiness/agents/openai.yaml +4 -0
  231. package/skills-src/ewai-standards-check/SKILL.md +93 -0
  232. package/skills-src/ewai-standards-check/agents/openai.yaml +4 -0
  233. package/skills-src/ewai-standards-check/references/report-contract.md +116 -0
  234. package/skills-src/ewai-test-scenarios/SKILL.md +94 -0
  235. package/skills-src/ewai-test-scenarios/agents/openai.yaml +4 -0
  236. package/skills-src/ewai-test-scenarios/references/scenario-contract.md +88 -0
  237. package/src/afk-worker.mjs +16 -0
  238. package/src/archaeology.mjs +1333 -0
  239. package/src/checkin.mjs +261 -0
  240. package/src/cli.mjs +2427 -0
  241. package/src/companion-guidance.mjs +257 -0
  242. package/src/companion-opening.mjs +62 -0
  243. package/src/companion.mjs +256 -0
  244. package/src/context.mjs +210 -0
  245. package/src/dashboard-preferences.mjs +80 -0
  246. package/src/delivery-artifacts.mjs +204 -0
  247. package/src/delivery-documents.mjs +248 -0
  248. package/src/delivery-gates.mjs +317 -0
  249. package/src/delivery.mjs +1433 -0
  250. package/src/design-system-application.mjs +291 -0
  251. package/src/design-system-authoring.mjs +101 -0
  252. package/src/design-systems.mjs +466 -0
  253. package/src/discovery.mjs +1314 -0
  254. package/src/error-reporting.mjs +323 -0
  255. package/src/evidence-depth.mjs +543 -0
  256. package/src/execution-state.mjs +243 -0
  257. package/src/install.mjs +166 -0
  258. package/src/intent-dependencies.mjs +117 -0
  259. package/src/intent-maps.mjs +402 -0
  260. package/src/intents.mjs +747 -0
  261. package/src/knowledge-proposals.mjs +717 -0
  262. package/src/launcher.mjs +51 -0
  263. package/src/meeting-evidence.mjs +703 -0
  264. package/src/network-rollout.mjs +386 -0
  265. package/src/organisation-blueprints.mjs +438 -0
  266. package/src/organisation-policies.mjs +448 -0
  267. package/src/packs.mjs +44 -0
  268. package/src/paths.mjs +62 -0
  269. package/src/persona-entitlements.mjs +438 -0
  270. package/src/persona-licence-config.mjs +98 -0
  271. package/src/persona-website-provider.mjs +134 -0
  272. package/src/persona-zip.mjs +87 -0
  273. package/src/personas.mjs +159 -0
  274. package/src/platform-metadata-analysis.mjs +314 -0
  275. package/src/policy-design-gates.mjs +623 -0
  276. package/src/policy-gate-integration.mjs +318 -0
  277. package/src/portfolio.mjs +509 -0
  278. package/src/power-platform-source-map.mjs +190 -0
  279. package/src/project.mjs +449 -0
  280. package/src/prototype-iterations.mjs +730 -0
  281. package/src/repository-source-map.mjs +603 -0
  282. package/src/runtime/afk-conductor.mjs +973 -0
  283. package/src/runtime/context-assembly.mjs +457 -0
  284. package/src/runtime/context-benchmarks.mjs +115 -0
  285. package/src/runtime/dashboard-actions.mjs +109 -0
  286. package/src/runtime/dashboard-handoffs.mjs +149 -0
  287. package/src/runtime/dashboard-server.mjs +1272 -0
  288. package/src/runtime/dashboard.mjs +197 -0
  289. package/src/runtime/database.mjs +789 -0
  290. package/src/runtime/error-reporting.mjs +581 -0
  291. package/src/runtime/evidence-depth-workspace.mjs +412 -0
  292. package/src/runtime/execution-leases.mjs +299 -0
  293. package/src/runtime/guided-discovery.mjs +350 -0
  294. package/src/runtime/guided-intents.mjs +517 -0
  295. package/src/runtime/impact-analysis.mjs +535 -0
  296. package/src/runtime/intents.mjs +222 -0
  297. package/src/runtime/knowledge.mjs +86 -0
  298. package/src/runtime/lifecycle-hooks.mjs +1239 -0
  299. package/src/runtime/mcp-config.mjs +110 -0
  300. package/src/runtime/mcp-server.mjs +1885 -0
  301. package/src/runtime/palace.mjs +362 -0
  302. package/src/runtime/paths.mjs +58 -0
  303. package/src/runtime/persona-engagement.mjs +255 -0
  304. package/src/runtime/phase-contributions.mjs +594 -0
  305. package/src/runtime/policy-workspace.mjs +170 -0
  306. package/src/runtime/prototype-iterations.mjs +235 -0
  307. package/src/runtime/provider-adapters.mjs +163 -0
  308. package/src/runtime/repository-index.mjs +838 -0
  309. package/src/runtime/runs.mjs +185 -0
  310. package/src/runtime/security-validation.mjs +1230 -0
  311. package/src/runtime/starter-materialisation.mjs +1155 -0
  312. package/src/runtime/team-hub-client.mjs +479 -0
  313. package/src/runtime/team-hub-database.mjs +288 -0
  314. package/src/runtime/team-hub-server.mjs +191 -0
  315. package/src/runtime/team-hub.mjs +110 -0
  316. package/src/runtime/tree-sitter-index.mjs +390 -0
  317. package/src/runtime/version.mjs +1 -0
  318. package/src/runtime/work.mjs +633 -0
  319. package/src/salesforce-source-map.mjs +212 -0
  320. package/src/security-validation-config.mjs +224 -0
  321. package/src/solution-readiness.mjs +620 -0
  322. package/src/starter-materialisation-contract.mjs +407 -0
  323. package/src/task-graph.mjs +544 -0
  324. package/src/team-hub-resources.mjs +239 -0
  325. package/src/team-hub.mjs +242 -0
  326. package/src/test-scenarios.mjs +622 -0
  327. package/src/validation-config.mjs +289 -0
  328. package/templates/SPECS/1.Scope/personas/registry.yaml +12 -0
  329. package/templates/SPECS/5.Strategy/patterns/context-packet.md +119 -0
  330. package/templates/SPECS/6.Build/_tracker-template.md +16 -0
  331. package/templates/SPECS/pipeline.yaml +62 -0
  332. package/templates/discovery-answers.yaml +86 -0
  333. package/templates/intent-body.md +21 -0
  334. package/tests/fixtures/context-benchmarks.json +9 -0
@@ -0,0 +1,175 @@
1
+ # Complete prototype-review inputs
2
+
3
+ These are the four **CLI input shapes** for a prototype plan and one design cycle. They aren't ready-made approval records. Use them with an existing UI delivery whose intent and design-system guidance you've reviewed.
4
+
5
+ The host normally prepares these files through `ewai-prototype-iteration`; a person reviews the resulting plan and design. Direct CLI use is useful for repeatability and integrations.
6
+
7
+ ## Before copying the examples
8
+
9
+ Use your delivery's actual slug instead of `customer-portal`. Replace every capitalised value below with the result from your project:
10
+
11
+ | Value | Source |
12
+ | --- | --- |
13
+ | `INTENT_DIGEST` | The reviewed intent content used for this delivery. |
14
+ | `DESIGN_SYSTEM_DIGEST` | The effective digest in this delivery's design-system application receipt. |
15
+ | `PLAN_PREPARATION_DIGEST` | `preparation.preparationDigest` returned by plan preparation. |
16
+ | `PLAN_REVIEW_DIGEST` | `review.contentDigest` returned by plan recording. |
17
+ | `PROTOTYPE_MANIFEST_DIGEST` | The digest of the actual prototype manifest being reviewed. |
18
+ | `CYCLE_PREPARATION_DIGEST` | `preparation.preparationDigest` returned by cycle preparation. |
19
+ | `ACTIVE_PERSONA_ID` | A persona in the active ensemble for **that** preparation. Recheck it for the design cycle. |
20
+
21
+ Keep the complete `sha256:` prefix on digests. These references tie the review to particular inputs; syntactically valid hashes alone don't prove a correct design or grant approval.
22
+
23
+ The [versioned domain schema](../../config/prototype-iteration.schema.json) describes saved contracts. The CLI preparation requests below are intentionally smaller: EWAI adds the schema, slug and selected persona engagement. Don't paste a saved domain object into a CLI request that accepts different fields. [Review semantics](../../skills-src/ewai-prototype-iteration/references/review-contract.md) explains findings, assessments and evidence channels.
24
+
25
+ ## 1. plan-prepare.json
26
+
27
+ <!-- example: prototype-plan -->
28
+ ```json
29
+ {
30
+ "intentDigest": "INTENT_DIGEST",
31
+ "designSystem": {
32
+ "id": "ewai.design-system.default",
33
+ "effectiveDigest": "DESIGN_SYSTEM_DIGEST"
34
+ },
35
+ "plan": {
36
+ "summary": "Let a customer review the status of their request.",
37
+ "screens": [{
38
+ "id": "request-status",
39
+ "title": "Request status",
40
+ "purpose": "Explain the current state and next action.",
41
+ "userOutcomes": ["Understand whether a response is needed"],
42
+ "evidenceRefs": ["intent:request-status"]
43
+ }],
44
+ "journeys": [{
45
+ "id": "check-request",
46
+ "actor": "customer",
47
+ "outcome": "Find out whether to respond or wait.",
48
+ "screenRefs": ["request-status"]
49
+ }]
50
+ },
51
+ "signals": ["user journey", "usability", "recovery"],
52
+ "predecessorDigest": ""
53
+ }
54
+ ```
55
+
56
+ Use the actual selected pack ID when it isn't the bundled fallback. Replace the fictional intent reference with the accepted source supporting your screen.
57
+
58
+ ```bash
59
+ ewai prototype-review plan-prepare customer-portal --input plan-prepare.json --project . --json
60
+ ```
61
+
62
+ Read the returned active personas. Preparation hasn't reviewed or selected the design.
63
+
64
+ ## 2. plan-review.json
65
+
66
+ After reviewing the plan, record each actual finding and one assessment per finding. This example incorporates a missing explanation:
67
+
68
+ <!-- example: prototype-plan-review -->
69
+ ```json
70
+ {
71
+ "schema": "ewai.prototype-plan-review-submission/v1",
72
+ "expectedPreparationDigest": "PLAN_PREPARATION_DIGEST",
73
+ "reviewedBy": "Example reviewer",
74
+ "findings": [{
75
+ "personaId": "ACTIVE_PERSONA_ID",
76
+ "concernCode": "next-action",
77
+ "severity": "advisory",
78
+ "observation": "The plan names a status but doesn't explain whether the customer needs to act.",
79
+ "recommendation": "Describe the next action and who is responsible.",
80
+ "evidenceRefs": ["screen:request-status"]
81
+ }],
82
+ "assessments": [{
83
+ "findingRef": {
84
+ "personaId": "ACTIVE_PERSONA_ID",
85
+ "concernCode": "next-action",
86
+ "evidenceRefs": ["screen:request-status"]
87
+ },
88
+ "disposition": "incorporate",
89
+ "rationale": "A status is useful only when the customer can tell what to do next."
90
+ }]
91
+ }
92
+ ```
93
+
94
+ `findingRef` lets the CLI derive the stable finding ID from persona, concern and references. Saved records use `findingId`.
95
+
96
+ ```bash
97
+ ewai prototype-review plan-record customer-portal --input plan-review.json --project . --json
98
+ ```
99
+
100
+ Keep the returned `review.contentDigest`. Incorporate the accepted feedback; don't call the plan approved merely because recording succeeded.
101
+
102
+ ## 3. cycle-prepare.json
103
+
104
+ Produce the runnable prototype under `SPECS/6.Build/customer-portal/ui-design-assets/prototypes/`. Capture the source and rendered viewport evidence before design review. For example, `selected.html` and the evidence labelled `render:desktop` below must correspond to actual files/captures you've inspected.
105
+
106
+ <!-- example: prototype-cycle -->
107
+ ```json
108
+ {
109
+ "planReviewDigest": "PLAN_REVIEW_DIGEST",
110
+ "cycleNumber": 1,
111
+ "maxCycles": 2,
112
+ "predecessorDigest": "",
113
+ "prototype": {
114
+ "manifestDigest": "PROTOTYPE_MANIFEST_DIGEST",
115
+ "entryPath": "ui-design-assets/prototypes/selected.html"
116
+ },
117
+ "evidenceChannels": [
118
+ {"channel": "source", "status": "available", "evidenceRefs": ["prototype:selected.html"], "note": "Source inspected for this example design."},
119
+ {"channel": "rendered-viewport", "status": "available", "evidenceRefs": ["render:desktop"], "note": "Desktop capture inspected for this example design."},
120
+ {"channel": "interaction", "status": "not-collected", "evidenceRefs": [], "note": "Not exercised in this cycle."},
121
+ {"channel": "assistive-technology", "status": "not-collected", "evidenceRefs": [], "note": "Not exercised."},
122
+ {"channel": "user-research", "status": "not-collected", "evidenceRefs": [], "note": "No representative users involved."},
123
+ {"channel": "manual-qa", "status": "pending-human", "evidenceRefs": [], "note": "Separate human gate."},
124
+ {"channel": "release", "status": "not-collected", "evidenceRefs": [], "note": "No release decision."}
125
+ ],
126
+ "signals": ["visual hierarchy", "usability", "responsive"]
127
+ }
128
+ ```
129
+
130
+ **Don't copy the two available states unless you've collected that evidence.** Source and rendered-viewport evidence are prerequisites; if missing, collect them before proceeding. Other channels remain honestly absent.
131
+
132
+ ```bash
133
+ ewai prototype-review cycle-prepare customer-portal --input cycle-prepare.json --project . --json
134
+ ```
135
+
136
+ The active design personas can differ from the plan's. Use the current ensemble for the next review.
137
+
138
+ ## 4. cycle-review.json
139
+
140
+ This fictional finding illustrates how to record a needed change, not an already-observed fault in your product:
141
+
142
+ <!-- example: prototype-cycle-review -->
143
+ ```json
144
+ {
145
+ "schema": "ewai.prototype-cycle-review-submission/v1",
146
+ "expectedPreparationDigest": "CYCLE_PREPARATION_DIGEST",
147
+ "reviewedBy": "Example reviewer",
148
+ "findings": [{
149
+ "personaId": "ACTIVE_PERSONA_ID",
150
+ "concernCode": "action-hierarchy",
151
+ "severity": "advisory",
152
+ "observation": "The next action is visually weaker than supporting information.",
153
+ "recommendation": "Give the next action a clearer position and emphasis.",
154
+ "evidenceRefs": ["render:desktop"]
155
+ }],
156
+ "assessments": [{
157
+ "findingRef": {
158
+ "personaId": "ACTIVE_PERSONA_ID",
159
+ "concernCode": "action-hierarchy",
160
+ "evidenceRefs": ["render:desktop"]
161
+ },
162
+ "disposition": "incorporate",
163
+ "rationale": "The main action needs to be easy to find before supporting detail."
164
+ }]
165
+ }
166
+ ```
167
+
168
+ ```bash
169
+ ewai prototype-review cycle-record customer-portal --input cycle-review.json --project . --json
170
+ ewai prototype-review status customer-portal --project . --json
171
+ ```
172
+
173
+ Expect `iterate` when incorporated feedback requires another cycle and capacity remains. The next cycle names the preceding cycle's content digest. At the limit, unresolved work needs a human decision; it doesn't become accepted automatically.
174
+
175
+ Plan and cycle records are saved under the delivery's `ui-design-assets/prototype-iterations/`. Follow the [iteration guide](../persona-guided-prototype-iteration.md) to link the reviewed plan and final cycle in the v3 manifest. Human prototype selection, implemented-feature Manual QA and release remain separate.
@@ -0,0 +1,144 @@
1
+ # Worked example: reproducible Archaeology and Discovery depth
2
+
3
+ This example shows how two sessions can produce different explanatory wording
4
+ while reaching the same material investigation boundary. The project, people,
5
+ IDs, and digests are illustrative; they are not a claim about a real system.
6
+
7
+ Use this alongside the
8
+ [Reproducible Archaeology and Discovery Depth guide](../reproducible-archaeology-and-discovery-depth.md).
9
+
10
+ ## What you can reproduce
11
+
12
+ This is a worked interpretation, not a bundled runnable Northstar application. Its IDs and digests won't resolve in your project. To try the workflow, initialise a disposable project with a small codebase, agree its purpose and processing permissions, refresh the Source Map, then follow the [prepare/review/compare guide](../reproducible-archaeology-and-discovery-depth.md). Use the IDs and templates actually returned.
13
+
14
+ You can reproduce how stable evidence and gap identity are compared. Exact explanatory wording, persona availability and coverage depend on your inputs; this example doesn't guarantee matching output.
15
+
16
+ ## Scenario
17
+
18
+ Northstar has inherited a small internal case-triage service. It has one web
19
+ application, one API, an SQL database, and an overnight export to a reporting
20
+ platform. The repository is available, but the operating model and data-handling
21
+ decisions are incomplete.
22
+
23
+ The named owner says the immediate outcome is to make a safe maintenance change,
24
+ not to redesign the service. The team wants enough understanding to plan that
25
+ change without turning Archaeology into an unbounded documentation exercise.
26
+
27
+ ## 1. Establish the evidence boundary
28
+
29
+ The team refreshes the Source Map against revision `example-4f21a9` and records:
30
+
31
+ | Evidence surface | Result |
32
+ | --- | --- |
33
+ | Regular files | 286 inventoried |
34
+ | Analysed | 267 |
35
+ | Inventory-only | 8 |
36
+ | Analysis failed | 3 |
37
+ | Sensitive | 2, retained as metadata-only evidence |
38
+ | Oversized | 6, retained as explicit coverage limits |
39
+ | Owner declarations | Service purpose, internal users, current hosting, recovery owner, and client-data classification |
40
+
41
+ The eight inventory-only files and three analysis failures are not removed to
42
+ make coverage appear healthier. They remain inputs to the depth recommendation.
43
+
44
+ ## 2. Review the depth profile
45
+
46
+ EWAI recommends each dimension independently:
47
+
48
+ | Dimension | Recommendation | Why | Named-owner selection |
49
+ | --- | --- | --- | --- |
50
+ | Architecture | `standard` | Component boundaries are visible, but the reporting integration has two competing implementations. | `standard` |
51
+ | Data | `deep` | The service processes client identifiers and exports them across a system boundary. | `deep` |
52
+ | Security | `deep` | Authorization is partly observed, while the reporting trust boundary is not confirmed. | `deep` |
53
+ | Product | `bounded` | The requested maintenance outcome affects one existing internal journey. | `bounded` |
54
+ | Delivery | `standard` | Unit tests exist, but release and rollback evidence is partial. | `standard` |
55
+ | Governance | `deep` | Client-data policy applies and one retention decision has no named authority. | `deep` |
56
+ | Operations | `standard` | Hosting is known, but recovery ownership and the overnight failure path need confirmation. | `standard` |
57
+
58
+ This is more proportionate than selecting `deep` for the whole project. Repository
59
+ size did not determine the result, and the number of proposed intents is not used
60
+ as evidence of depth.
61
+
62
+ ## 3. Observe persona swapping
63
+
64
+ The active ensemble changes with the concern:
65
+
66
+ | Concern | Active perspectives | Reason shown to the reviewer |
67
+ | --- | --- | --- |
68
+ | Product journey | Archaeology lead, local Product Owner | Confirm the affected journey and resist inferring desired behaviour from code. |
69
+ | Client-data export | Archaeology lead, local Data Owner, installed premium Privacy Specialist | Challenge classification, movement, retention, and evidence gaps. |
70
+ | Reporting trust boundary | Archaeology lead, local Security Owner, installed premium Threat Modeller | Examine identity, authorization, exposure, and failure paths. |
71
+ | Recovery | Archaeology lead, local Service Owner | Establish operational ownership and recovery evidence. |
72
+
73
+ The premium specialists are used because they are already installed and relevant.
74
+ Repeating the process without premium access still completes with the core and
75
+ project personas plus the standard model. No persona can confirm an owner
76
+ declaration or approve the selected depth.
77
+
78
+ ## 4. Record stable gaps
79
+
80
+ The generated prose differs between two clean sessions:
81
+
82
+ - session A says, “The export retention owner is not evidenced”;
83
+ - session B says, “No accountable retention decision was found for reporting exports.”
84
+
85
+ Both statements resolve to the same structured condition and therefore the same
86
+ illustrative stable ID:
87
+
88
+ | Stable gap | Structured meaning | Evidence references |
89
+ | --- | --- | --- |
90
+ | `GAP-GOV-8ab42c91d730` | Governance · retention owner missing · current state `unassigned` · intended state `named-owner` | Policy applicability and export configuration |
91
+ | `GAP-SEC-27f061c35a9d` | Security · reporting trust boundary unresolved · current state `partial` · intended state `confirmed` | API client and owner declaration |
92
+ | `GAP-OPS-d2e19b07c411` | Operations · overnight failure recovery untested · current state `unknown` · intended state `tested` | Scheduler configuration and runbook |
93
+
94
+ The IDs above illustrate the real `GAP-<dimension>-<digest>` shape. A real ID is
95
+ calculated by EWAI from the complete structured identity; do not invent or edit it.
96
+
97
+ ## 5. Keep grouping separate
98
+
99
+ The first reviewer groups all three gaps under `safe-reporting-maintenance`. A
100
+ second reviewer keeps the evidence and gaps unchanged but groups them by owner:
101
+
102
+ - `data-governance` owns the retention gap;
103
+ - `platform-security` owns the trust-boundary gap;
104
+ - `service-operations` owns the recovery gap.
105
+
106
+ That can produce three intents instead of one. The comparison reports a grouping
107
+ change, not new discovery content. Stable gap identity is independent of how the
108
+ organisation chooses to arrange the work.
109
+
110
+ ## 6. Compare two reviewed runs
111
+
112
+ | Comparison layer | Run A versus run B | Interpretation |
113
+ | --- | --- | --- |
114
+ | Inputs | Same | Same project, revision, Source Map, packs, provider capability, and exclusions. |
115
+ | Evidence | Same | Repository and bounded owner-evidence fingerprints agree. |
116
+ | Personas | Same | The same named identities and tiers were engaged. |
117
+ | Selected depth | Same | All seven named decisions agree. |
118
+ | Coverage | Same | Failures and limited surfaces remain visible in both runs. |
119
+ | Stable gaps | Same | The same three structured concerns were retained. |
120
+ | Grouping | Different | The owner deliberately changed the work-organisation strategy. |
121
+ | Unexplained variance | Empty | The only material difference has a recorded cause. |
122
+
123
+ The two runs are reproducible despite different prose and grouping. They would
124
+ not be reproducible if the security gap disappeared while all upstream evidence,
125
+ coverage, personas, and depth remained unchanged.
126
+
127
+ ## 7. Decide whether the result is good enough
128
+
129
+ The named owner still needs to assess content quality. They review the runs for:
130
+
131
+ - missing material concerns;
132
+ - duplicated or irrelevant questions;
133
+ - evidence traceability;
134
+ - proportionate depth;
135
+ - useful next actions;
136
+ - visibility of failures and contradictions.
137
+
138
+ Only after that review may the owner approve Manual QA through the canonical EWAI
139
+ operation. Reproducible structure is evidence of control, not proof that the
140
+ investigation was complete or that the proposed change is safe to release.
141
+
142
+ Use the
143
+ [operator and Manual QA checklist](../quality/reproducible-archaeology-depth-review-checklist.md)
144
+ to conduct and record that assessment.
@@ -0,0 +1,68 @@
1
+ # Record one reviewed test scenario
2
+
3
+ Use this complete input shape after preparing scenarios for an existing intent. The fictional feature here is `customer-access`; it isn't a requirement your project inherits.
4
+
5
+ ## Prepare from accepted requirements
6
+
7
+ Ask EWAI to challenge the intent's permissions and recovery paths, or run:
8
+
9
+ ```bash
10
+ ewai test-scenarios prepare customer-access --focus "permission and recovery" --project . --json
11
+ ```
12
+
13
+ Read `authoritativeSources`, `sourceDigest` and `activePersonas`. For this example, the accepted requirement is that an authenticated, authorised delegate can submit a valid access request and receive a clear outcome. If that isn't an accepted requirement in your project, don't record it as one.
14
+
15
+ Save this as `scenario-input.json`. Substitute the returned digest, current persona ID and real source IDs. Set the slug, test file and owner for your project.
16
+
17
+ <!-- example: test-scenario -->
18
+ ```json
19
+ {
20
+ "schema": "ewai.persona-test-scenarios/v1",
21
+ "slug": "customer-access",
22
+ "focus": "permission and recovery",
23
+ "preparedSourceDigest": "SOURCE_DIGEST",
24
+ "scenarios": [{
25
+ "id": "PTS-001",
26
+ "title": "An authorised delegate can submit an access request",
27
+ "type": "happy-path",
28
+ "sourceRefs": ["JOURNEY_SOURCE_ID", "ACCEPTANCE_SOURCE_ID"],
29
+ "personaContributions": [{
30
+ "personaId": "ACTIVE_PERSONA_ID",
31
+ "concern": "Check the permission boundary as well as the successful outcome."
32
+ }],
33
+ "preconditions": ["The delegate is authenticated and authorised to request access."],
34
+ "actions": ["Submit a valid access request."],
35
+ "expectedResults": ["The request is accepted and a clear success outcome is displayed."],
36
+ "evidenceRoute": "automated",
37
+ "automation": "automated",
38
+ "plannedTest": {
39
+ "file": "tests/access.test.mjs",
40
+ "name": "authorised delegate completes access request"
41
+ },
42
+ "owner": "Delivery team",
43
+ "status": "accepted"
44
+ }],
45
+ "gaps": []
46
+ }
47
+ ```
48
+
49
+ The expected result is the test's **oracle**: the agreed behaviour against which the implementation will be checked. The persona suggests what to investigate; it can't invent that expectation.
50
+
51
+ This one happy-path scenario isn't complete permission coverage. Consider denial and recovery separately, with their own accepted sources.
52
+
53
+ ## Review, record and inspect
54
+
55
+ Only set `accepted` after the named reviewer has compared the expectation with its source. Then:
56
+
57
+ ```bash
58
+ ewai test-scenarios record customer-access --input scenario-input.json --reviewed-by "Example reviewer" --project . --json
59
+ ewai test-scenarios status customer-access --project . --json
60
+ ```
61
+
62
+ The result should be `recorded`, with paired `test-scenarios.json` and `test-scenarios.md` under the intent's Build directory. Recording a scenario doesn't create its test file or run a test.
63
+
64
+ Unknown source IDs, an unrecognised active persona or stale preparation require corrected input and review. Don't remove traceability fields merely to make validation pass.
65
+
66
+ The [complete v1 candidate contract](../../skills-src/ewai-test-scenarios/references/scenario-contract.md#candidate-schema) lists all fields and enums. This contract is enforced by the [scenario validator](../../src/test-scenarios.mjs); there isn't a separate standalone JSON Schema file for it in this release.
67
+
68
+ Return to [persona-driven test scenarios](../quality/persona-driven-test-scenarios.md).
@@ -0,0 +1,147 @@
1
+ # Worked examples
2
+
3
+ These compact scenarios demonstrate how to apply EWAI proportionately. They're illustrative decision patterns, not specifications to copy unchanged or exhaustive phase checklists. A stage omitted from an example isn't waived; follow the current delivery's required gates.
4
+
5
+ For a step-by-step exercise with observable results, try [your first session](../tutorials/first-session.md) and [first delivery](../tutorials/first-delivery.md).
6
+
7
+ ## 1. Start a new internal application
8
+
9
+ **Situation:** An operations team needs a small case-triage tool.
10
+
11
+ **Approach:**
12
+
13
+ 1. The Product Owner supplies the current process, users, desired response-time outcome, data classification, and non-goals.
14
+ 2. Guided Discovery engages product, operator, accessibility, and security perspectives as the sections change.
15
+ 3. If the organisation provides an applicable internal-application Blueprint, the team reviews it, accepts its required security and testing modules, and declines an irrelevant public-service module. Otherwise, Discovery continues without an Organisation Blueprint.
16
+ 4. Review shows the exact standards and project personas to be created.
17
+ 5. A named owner approves Discovery.
18
+ 6. The first intent delivers one journey: view and assign an untriaged case.
19
+ 7. Manual QA uses safe test records and checks keyboard access, permissions, exception handling, and operational visibility.
20
+
21
+ **Key lesson:** Start with one useful journey and the evidence needed to operate it, not a generated backlog for the entire imagined product.
22
+
23
+ ## 2. Onboard a poorly documented legacy system
24
+
25
+ **Situation:** A team inherits a service with sparse documentation and several years of history.
26
+
27
+ **Approach:**
28
+
29
+ 1. The owner describes why the service exists, its users, known failures, and what must not be inferred from current code.
30
+ 2. After briefing and source permissions are agreed, the owner accepts the offer of Archaeology. It maps repositories, entry points, integrations, data, tests, and deployment.
31
+ 3. The inferred purpose conflicts with one current batch process. The discrepancy is presented before deep analysis.
32
+ 4. The owner confirms that the batch is a temporary workaround, not intended behaviour.
33
+ 5. Operations and data personas join the relevant deep passes; their output remains hypothesis until supported.
34
+ 6. Reviewed findings become canonical SPECS, while the workaround becomes a bounded migration intent.
35
+
36
+ **Key lesson:** Repository behaviour is strong evidence of what exists, not automatic authority for what should continue.
37
+
38
+ ## 3. Deliver a user-visible feature
39
+
40
+ **Situation:** Users need to export a filtered report.
41
+
42
+ **Approach:**
43
+
44
+ 1. Intent records the user outcome, supported filters, data permissions, accessibility, performance expectation, and export retention.
45
+ 2. The repository index identifies the query, permission, UI, and audit-log blast radius.
46
+ 3. The plan creates one vertical slice through UI, service, authorization, export generation, and evidence.
47
+ 4. Build approval names that scope.
48
+ 5. Automated tests cover permissions, filters, empty results, volume, and formula-safe output.
49
+ 6. Standards review checks data handling and existing patterns.
50
+ 7. Manual QA exercises an authorised and unauthorised user, keyboard flow, a large report, and the downloaded result.
51
+
52
+ **Key lesson:** User-visible acceptance and data-boundary testing belong in the same slice as implementation.
53
+
54
+ ## 4. Make a low-risk technical-debt change
55
+
56
+ **Situation:** A duplicated parser should be consolidated without changing behaviour.
57
+
58
+ **Approach:**
59
+
60
+ 1. The intent states the maintainability outcome and an explicit no-user-visible-change constraint.
61
+ 2. Index and tests identify callers and observable contracts.
62
+ 3. Reconcile confirms both copies currently behave the same—or records the differences.
63
+ 4. The plan uses characterization tests as the first failing or safety evidence.
64
+ 5. Build changes the smallest shared boundary.
65
+ 6. Manual QA is proportionate: a focused maintainer walkthrough plus one representative user journey.
66
+
67
+ **Key lesson:** Low risk can reduce ceremony, but it does not justify inventing equivalence or skipping impact evidence.
68
+
69
+ ## 5. Apply a mandatory organisation Blueprint
70
+
71
+ **Situation:** A regulated project must use the organisation's reviewed baseline.
72
+
73
+ **Approach:**
74
+
75
+ 1. Guided Setup shows publisher, version, compatibility, required modules, dependencies, digest, and destinations.
76
+ 2. Required modules cannot be deselected. Optional modules are chosen from actual project applicability.
77
+ 3. A compliance persona surfaces questions, but a qualified owner confirms applicable obligations.
78
+ 4. Existing destination conflicts stop application.
79
+ 5. The team reconciles the existing standard rather than deleting it.
80
+ 6. Named approval materialises organisation standards, project personas, receipt, and pipeline pin.
81
+
82
+ **Key lesson:** Mandatory organisational input still requires visible project consequences and accountable adoption.
83
+
84
+ ## 6. Use project and premium personas together
85
+
86
+ **Situation:** A payments project has a local settlement-operations persona and access to managed specialist personas.
87
+
88
+ **Approach:**
89
+
90
+ 1. Check-in reports entitlement and that the premium library is installed; no download occurs.
91
+ 2. In user-outcome sections, a product lens leads.
92
+ 3. In data and assurance sections, the relevant project payments persona and a matching premium specialist are deliberately considered.
93
+ 4. The UI displays both names, tiers, concerns, and engagement reasons.
94
+ 5. The project persona points to existing local operating evidence; it doesn't invent new facts. The premium persona challenges specialist gaps.
95
+ 6. A real payments owner resolves the decision.
96
+
97
+ **Key lesson:** Mixed tiers improve perspective coverage, but relevance, evidence, and human authority remain separate.
98
+
99
+ ## 7. Deliver a security-sensitive capability
100
+
101
+ **Situation:** A public feature processes sensitive personal data.
102
+
103
+ **Approach:**
104
+
105
+ 1. Discovery records classification, purpose, access model, retention, jurisdictions, threat context, and operational ownership.
106
+ 2. Candidate compliance findings remain triage until qualified owners confirm them.
107
+ 3. Security and privacy standards become explicit Build constraints.
108
+ 4. Plan includes abuse cases, authorization boundaries, logging restrictions, dependency risk, incident visibility, and deletion behaviour.
109
+ 5. An independent security review is used when configured; if unavailable, the gap is recorded rather than marked passed.
110
+ 6. Manual QA uses non-production test data and verifies denial, recovery, and audit behaviour as well as the happy path.
111
+
112
+ **Key lesson:** More AI review does not replace data governance, qualified interpretation, or operational readiness.
113
+
114
+ ## 8. Roll a Blueprint update across projects
115
+
116
+ **Situation:** An organisation publishes a new major Blueprint version with a changed mandatory API standard.
117
+
118
+ **Approach:**
119
+
120
+ 1. The publisher releases an immutable version with compatibility, affected modules, migration guidance, and deprecation dates.
121
+ 2. Catalogue owners identify projects pinned to the earlier version.
122
+ 3. Each project compares its receipt and materialised standards with the candidate release.
123
+ 4. One project adopts immediately, one records a time-bound exception, and one remains unaffected because the module does not apply.
124
+ 5. Each decision is approved and evidenced locally.
125
+ 6. The old source remains available long enough to interpret historical receipts.
126
+
127
+ **Key lesson:** A shared release creates review work; it does not create permission to overwrite every consuming project.
128
+
129
+ ## Adapt an example safely
130
+
131
+ For your own project, replace:
132
+
133
+ - users and outcomes with direct evidence;
134
+ - risk and data classifications with confirmed context;
135
+ - personas with the installed relevant catalogue;
136
+ - Blueprint and module choices with reviewed local packages;
137
+ - tests and Manual QA with observable acceptance criteria;
138
+ - approvers with people who have real authority.
139
+
140
+ Retain the boundaries: personas advise, SPECS holds durable truth, reusable inputs require review, Build requires explicit scope approval, and Manual QA remains human.
141
+
142
+ ## Related guides
143
+
144
+ - [All EWAI guides](../README.md)
145
+ - [Product Owner guide](../product-owner-guide.md)
146
+ - [Developer delivery guide](../developer-delivery-guide.md)
147
+ - [Organisation rollout](../organisation-rollout-guide.md)