@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,353 @@
1
+ # Security validation guide
2
+
3
+ EWAI security validation coordinates evidence from security tools, records findings and accountable decisions, and can make configured evidence part of release readiness. It does not install scanners, certify a system, or replace professional security judgement.
4
+
5
+ > Security validation is evidence, not certification or proof that this system is secure. Tools can miss vulnerabilities and produce false positives. A qualified human must review the scope, findings, limitations and residual risk before release.
6
+
7
+ You'll see this warning in the CLI, dashboard and API results, including error states. It explains the limit of tool-generated evidence: a result isn't certification, and release still needs qualified human review.
8
+
9
+
10
+ <!-- editorial: contents -->
11
+ ## On this page
12
+
13
+ - [Choose your route before configuring a profile](#choose-your-route-before-configuring-a-profile)
14
+ - [What the capability produces](#what-the-capability-produces)
15
+ - [1. Define the project policy](#1-define-the-project-policy)
16
+ - [2. Choose an integration mode](#2-choose-an-integration-mode)
17
+ - [3. Working with Agentic Security](#3-working-with-agentic-security)
18
+ - [4. Working with DeepSec](#4-working-with-deepsec)
19
+ - [5. Working with Visa Vulnerability Agentic Harness (VVAH)](#5-working-with-visa-vulnerability-agentic-harness-vvah)
20
+ - [6. Review findings and record decisions](#6-review-findings-and-record-decisions)
21
+ - [7. Understand release readiness](#7-understand-release-readiness)
22
+ - [8. Use the dashboard safely](#8-use-the-dashboard-safely)
23
+ - [Troubleshooting](#troubleshooting)
24
+ - [Contract references](#contract-references)
25
+
26
+ ## Choose your route before configuring a profile
27
+
28
+ - **Supplied adapter:** obtain the reviewed executable package from its owner, then validate and explicitly register it. A profile naming an adapter doesn't install one.
29
+ - **External skill or provider:** prepare a handoff, run the external workflow separately under its own authority, then translate its actual results into the EWAI response contract.
30
+ - **Supported artefact import:** use the fixed provider-specific files described below. Arbitrary exports and VVAH outputs don't automatically qualify.
31
+ - **Write an integration:** start with the [authoring reference](reference/security-adapter-authoring.md), not a bare provider name in configuration.
32
+
33
+ Trusted adapters aren't OS-sandboxed. Review the tool's permissions, data handling, potential costs and source-modifying behaviour before execution. The provider cautions below remain part of that review.
34
+
35
+ ## What the capability produces
36
+
37
+ For each configured security capability, EWAI can produce:
38
+
39
+ - an immutable run record tied to an exact repository or safe target revision;
40
+ - bounded attempt metadata, safe tool identity and explicit redaction status without raw provider output;
41
+ - normalised findings that keep scanner severity separate from EWAI policy consequence;
42
+ - append-only human dispositions with a named reviewer and reason;
43
+ - a current, stale, missing, incomplete, failed or cancelled coverage result;
44
+ - a release-readiness assessment explaining every blocking reason.
45
+
46
+ No findings means only that EWAI has no normalised findings for the selected evidence. It does not mean that the system is secure.
47
+
48
+ ## 1. Define the project policy
49
+
50
+ Add `security_validation` to the project’s configured `SPECS/pipeline.yaml`. Security validation is additive: projects without this section keep their existing release semantics.
51
+
52
+ ```yaml
53
+ security_validation:
54
+ enabled: true
55
+ profiles:
56
+ - id: source-review
57
+ capability: source-static
58
+ required: true
59
+ freshness_hours: 24
60
+ timeout_seconds: 300
61
+ accountable_role: Security Lead
62
+ modes: [command, skill, artifact-import]
63
+ provider: deepsec
64
+ adapter: org.example.security
65
+ checkpoint: release
66
+ thresholds:
67
+ blocking_severities: [critical, high]
68
+ scope:
69
+ include: [src, tests]
70
+ exclude: [tests/fixtures]
71
+
72
+ - id: agent-red-team
73
+ capability: llm-runtime-red-team
74
+ required: false
75
+ freshness_hours: 24
76
+ timeout_seconds: 600
77
+ accountable_role: AI Assurance Lead
78
+ modes: [skill, artifact-import]
79
+ provider: agentic-security
80
+ checkpoint: release
81
+ target_class: staging
82
+ target_ref: internal-staging-agent
83
+
84
+ - id: visa-source-review
85
+ capability: source-static
86
+ required: false
87
+ freshness_hours: 24
88
+ timeout_seconds: 600
89
+ accountable_role: Security Lead
90
+ modes: [skill]
91
+ provider: visa-vvah
92
+ checkpoint: release
93
+ scope:
94
+ include: [src, packages]
95
+ exclude: [tests/fixtures]
96
+ ```
97
+
98
+ Supported capabilities are:
99
+
100
+ - `source-static`
101
+ - `dependency-sbom`
102
+ - `secret-detection`
103
+ - `infrastructure-configuration`
104
+ - `llm-runtime-red-team`
105
+
106
+ Required profiles must define `freshness_hours`. `thresholds.blocking_severities` defaults to `critical` and `high`; scanner severity and confidence remain separate from that project policy consequence. Scope accepts bounded project-relative `include` and `exclude` lists. A required profile is current only when its latest complete evidence matches the server-resolved revision and snapshotted profile policy, remains within the freshness window, and has no unresolved blocking finding. Runtime red-team profiles must use a preconfigured safe target; production targets are denied by default.
107
+
108
+ Check the resulting contract:
109
+
110
+ ```bash
111
+ ewai security status --project .
112
+ ewai security status --project . --json
113
+ ```
114
+
115
+ ## 2. Choose an integration mode
116
+
117
+ ### Registered command adapter
118
+
119
+ Use a command adapter when an organisation has a reviewed local wrapper that can accept EWAI’s request contract and return its response contract. EWAI does not accept an arbitrary command line.
120
+
121
+ If your organisation supplies a reviewed adapter folder, validate it before registration using the commands below. If you're writing a wrapper, use the [adapter authoring reference](reference/security-adapter-authoring.md) for the full manifest, a minimal non-passing executable and versioned schemas.
122
+
123
+ ```bash
124
+ ewai security adapter-validate ./internal/security-adapter --project .
125
+ ewai security adapter-register ./internal/security-adapter --project . --yes
126
+ ewai security adapters --project .
127
+ ```
128
+
129
+ Registration pins the trusted folder, manifest and a bounded digest of the complete adapter package. A helper-file, executable or manifest change therefore creates digest drift. A changed package is rejected under the same version; after human review, publish a new manifest version and register it explicitly.
130
+
131
+ Run the profile:
132
+
133
+ ```bash
134
+ ewai security run source-review --mode command --project . --yes
135
+ ```
136
+
137
+ EWAI starts the exact registered executable directly, without a shell. It sends the versioned JSON request on standard input, bounds execution time and output size, validates the complete JSON response, rejects credential-shaped values, and stores only normalised evidence. Safe tool name/version and a `safe-fields-only` redaction status are retained; raw standard output and standard error are not stored.
138
+
139
+ ### Skill handoff
140
+
141
+ Use skill mode when Agentic Security, DeepSec, Visa VVAH or another compatible system is orchestrated outside EWAI. The command prepares a revision-bound handoff containing the capability, project-relative scope and expected response contract:
142
+
143
+ ```bash
144
+ ewai security run source-review --mode skill --project . --yes --json
145
+ ```
146
+
147
+ The result is `awaiting-evidence`. A handoff is not a successful security result and does not satisfy readiness. The external skill or process must return a valid `ewai.security-scan-response/v1` result through an organisation-owned integration before EWAI can record evidence.
148
+
149
+ ### Project-local artefact import
150
+
151
+ Use artefact import when a provider or organisation-owned export process has already produced a supported JSON report inside the project. EWAI only discovers fixed project-local locations and rejects symlinks, incomplete sets, changing files and caller-supplied paths.
152
+
153
+ Supported v1 import locations are:
154
+
155
+ | Provider | Required project-local artefacts |
156
+ | --- | --- |
157
+ | Agentic Security | `.agentic-security/findings.json` and `.agentic-security/last-scan.json` |
158
+ | DeepSec | `.deepsec/report.json` |
159
+
160
+ Visa VVAH is intentionally not in this table. Its scan outputs use dynamic filenames and EWAI does not yet provide a native, revision-verifying VVAH parser. Configure `modes: [skill]` and translate reviewed findings through the versioned response contract instead.
161
+
162
+ Prepare the import first:
163
+
164
+ ```bash
165
+ ewai security import-prepare source-review --provider deepsec --project . --json
166
+ ```
167
+
168
+ Review the provider, profile, revision and detected artefacts. Then use the returned five-minute, single-use discovery token:
169
+
170
+ ```bash
171
+ ewai security import DISCOVERY_TOKEN --project . --yes
172
+ ```
173
+
174
+ The dashboard follows the same two-step flow. The browser never sends a path: the server discovers the allowlisted files, issues the token and rechecks the files before import. Provider evidence must declare the exact revision captured during preparation; a missing or different revision is rejected rather than relabelled as current evidence.
175
+
176
+ ## 3. Working with Agentic Security
177
+
178
+ Get Agentic Security from its [official repository](https://github.com/Clear-Capabilities/agentic-security). EWAI’s catalogue describes its broad fit across source, dependency, secret, infrastructure, agent and LLM security surfaces. Check the current upstream documentation and licence before installation or commercial use.
179
+
180
+ EWAI does not install, redistribute, configure, license or endorse Agentic Security. An organisation can integrate it through a reviewed command adapter, a skill handoff, or an exporter that writes the supported project-local artefacts. Treat all results as untrusted input until EWAI validates them, then require a qualified human to review the normalised evidence.
181
+
182
+ If the expected artefacts are absent, run:
183
+
184
+ ```bash
185
+ ewai security providers --project .
186
+ ```
187
+
188
+ The output reports `not-detected`, links to the official source, and describes the provider’s broad capabilities and cautions. It does not offer an install button.
189
+
190
+ ## 4. Working with DeepSec
191
+
192
+ Get DeepSec from the [official repository](https://github.com/vercel-labs/deepsec) or inspect its [npm package](https://www.npmjs.com/package/deepsec). Follow the current upstream setup instructions, including its own project initialisation where applicable.
193
+
194
+ DeepSec is suited to agent-powered source vulnerability investigation and can support resumable scans, revalidation, diff review, and Markdown or JSON reporting. Treat it like a coding agent with shell access. Model use can be expensive on large repositories, and optional sandbox execution may upload a working-tree archive, so review credentials, cost, data handling and repository sensitivity before use.
195
+
196
+ EWAI does not install, configure, license or endorse DeepSec. Use a reviewed adapter or an organisation-owned export step to translate its current output into EWAI’s response or `.deepsec/report.json` import contract.
197
+
198
+ ## 5. Working with Visa Vulnerability Agentic Harness (VVAH)
199
+
200
+ Get VVAH from Visa’s [official repository](https://github.com/visa/visa-vulnerability-agentic-harness) and follow the current upstream setup and licensing guidance. EWAI only provides the provider identity, project-local signal discovery, revision-bound skill handoff and evidence contract. EWAI does not install or invoke VVAH, collect its model credentials, run its remediation stages or certify its output.
201
+
202
+ Use a skill-only profile:
203
+
204
+ ```yaml
205
+ security_validation:
206
+ enabled: true
207
+ profiles:
208
+ - id: visa-source-review
209
+ capability: source-static
210
+ required: true
211
+ freshness_hours: 24
212
+ timeout_seconds: 600
213
+ accountable_role: Security Lead
214
+ modes: [skill]
215
+ provider: visa-vvah
216
+ checkpoint: release
217
+ scope:
218
+ include: [src, packages]
219
+ exclude: [tests/fixtures]
220
+ ```
221
+
222
+ Prepare the revision-bound handoff from EWAI:
223
+
224
+ ```bash
225
+ ewai security run visa-source-review --mode skill --project . --yes --json
226
+ ```
227
+
228
+ The returned handoff identifies the exact revision, requested `source-static` capability, project-relative scope and required `ewai.security-scan-response/v1` response contract. It remains `awaiting-evidence`; preparing it does not run VVAH or satisfy release readiness.
229
+
230
+ ### Use VVAH in detection-only mode
231
+
232
+ From the independently installed VVAH environment, target the repository and stop before its remediation stage:
233
+
234
+ ```bash
235
+ vvaharness scan --repo /path/to/project --stop-after s9
236
+ ```
237
+
238
+ The `--stop-after s9` boundary is material. A plain upstream scan can continue into stage S10, where VVAH attempts remediation and can edit target source. EWAI’s handoff is deliberately evidence-only, so any source-changing VVAH workflow must be separately authorised and managed outside this integration.
239
+
240
+ VVAH commonly writes reports below `security-scan/` and may write a `run_manifest.json`. EWAI can identify those project-local signals and show the provider as `artefacts-detected`, but it does not offer the native import action. Dynamic Markdown, SARIF or JSONL files must not be relabelled as EWAI evidence directly.
241
+
242
+ ### Return findings to EWAI
243
+
244
+ Use an organisation-controlled translator to map the reviewed VVAH result to `ewai.security-scan-response/v1`. The response must retain the handoff run identity, requested capability and exact revision semantics, and must contain only bounded normalised findings. Feed those findings through EWAI’s existing review and disposition workflow.
245
+
246
+ For a valid issue, select `remediate` and create a security intent from the finding. That intent enters the normal governed delivery pipeline and still requires explicit Build approval. A false-positive decision, accepted risk or escalation remains an append-only accountable human decision with supporting evidence; VVAH cannot grant any of those decisions itself.
247
+
248
+ Before use, review these upstream operating characteristics:
249
+
250
+ - source-derived prompt data can be sent to configured model providers;
251
+ - local execution may require elevated privileges;
252
+ - large scans can be token-intensive and results are nondeterministic;
253
+ - findings and proposed fixes are triage candidates requiring qualified human review;
254
+ - VVAH does not replace compiling, building, testing, Manual QA or release acceptance for changed code.
255
+
256
+ ## 6. Review findings and record decisions
257
+
258
+ Inspect evidence before making a decision:
259
+
260
+ ```bash
261
+ ewai security runs --project .
262
+ ewai security findings --project .
263
+ ewai security dispositions --project .
264
+ ```
265
+
266
+ Prepared and active runs can be cancelled without deleting attempt history:
267
+
268
+ ```bash
269
+ ewai security cancel RUN_ID --project . --yes
270
+ ```
271
+
272
+ An active cancellation ends as `cancelled`, not `failed`, and cannot satisfy a required profile.
273
+
274
+ Available append-only dispositions are:
275
+
276
+ - `remediate`: the issue remains open until later evidence proves the change;
277
+ - `false-positive`: requires a named reviewer, reason and an existing non-symbolic project evidence reference;
278
+ - `accept-risk`: requires existing project evidence, a named risk owner and a future review or expiry date;
279
+ - `escalate`: requires the next accountable role.
280
+
281
+ Examples:
282
+
283
+ ```bash
284
+ ewai security disposition FINDING_ID \
285
+ --decision false-positive \
286
+ --reviewer "Priya Shah" \
287
+ --reason "The sink is unreachable in the deployed configuration." \
288
+ --evidence SPECS/3.Evidence/security/source-review.md \
289
+ --project . \
290
+ --yes
291
+
292
+ ewai security disposition FINDING_ID \
293
+ --decision accept-risk \
294
+ --reviewer "Priya Shah" \
295
+ --reason "Compensating controls reduce exposure while replacement is scheduled." \
296
+ --evidence SPECS/3.Evidence/security/risk-142.md \
297
+ --risk-owner "Engineering Director" \
298
+ --expires-at 2026-10-01T09:00:00Z \
299
+ --project . \
300
+ --yes
301
+ ```
302
+
303
+ Dispositions do not alter or delete scanner findings. The latest valid disposition informs readiness, while the full decision history remains available. An expired risk acceptance becomes blocking again.
304
+
305
+ ## 7. Understand release readiness
306
+
307
+ When security validation is not configured, readiness is `not-configured` and existing delivery behaviour is preserved. Build approval snapshots the complete normalised security policy into the durable approval evidence. A later policy removal, weakening, scope change or threshold change blocks release readiness explicitly; it cannot reinterpret old evidence or silently restore legacy behaviour. Once a required profile is configured, EWAI withholds its release-ready lifecycle event when evidence is missing, incomplete, failed, cancelled, stale, revision-mismatched, policy-mismatched, or contains an unresolved blocking finding.
308
+
309
+ Manual QA is still recorded independently. Security readiness does not grant Build approval, Manual QA approval, production authority or business acceptance. The accountable role named in each profile reviews the provider scope and limitations; the authorised human release owner makes the final release decision.
310
+
311
+ ## 8. Use the dashboard safely
312
+
313
+ Enable **Security Validation** in **Configuration** and save, then open it in the sidebar. See [dashboard configuration](operations/dashboard-configuration.md). Showing the view doesn't run a scanner; hiding it doesn't waive the project's security requirements. The workspace presents information in this order:
314
+
315
+ 1. the mandatory assurance notice;
316
+ 2. provider availability, official sources and cautions;
317
+ 3. the personas actively engaged as advisory lenses;
318
+ 4. capability coverage and evidence freshness;
319
+ 5. findings and append-only human decisions.
320
+
321
+ Premium, core, project and personal personas may be engaged contextually when installed. Their names, tier and engagement reason are visible. Personas can challenge scope and identify questions, but they cannot approve evidence or accept risk.
322
+
323
+ Use the project-local dashboard and confirm the specific operation before execution or import. EWAI checks the local origin and resolves supported provider imports on the server; the dashboard isn't a place to submit arbitrary commands, paths, hosts or provider URLs. If you're building an integration, follow the [adapter authoring reference](reference/security-adapter-authoring.md) rather than bypassing these boundaries.
324
+
325
+ ## Troubleshooting
326
+
327
+ ### A provider says `not-detected`
328
+
329
+ Use the official links returned by `ewai security providers`. Install and operate the provider separately, then configure one of the supported interoperability modes. EWAI deliberately does not infer an installation from a global command or PATH entry. For Visa VVAH, detection of `security-scan/` or `run_manifest.json` only indicates project-local output; it does not enable native import.
330
+
331
+ ### Evidence is `stale`
332
+
333
+ Confirm that the result targets the exact current revision and falls within the profile’s `freshness_hours`. Run or import new evidence rather than changing the stored run.
334
+
335
+ ### An import is rejected
336
+
337
+ Check that the complete supported artefact set exists at the fixed project-local location, is regular JSON rather than a symlink, remains unchanged during the read, and matches the expected response shape. Prepare a new token after correcting it.
338
+
339
+ ### An adapter stops working after an update
340
+
341
+ Digest drift is intentional. Validate the changed adapter, review the executable and manifest, then register the revised adapter explicitly.
342
+
343
+ ### A finding was addressed
344
+
345
+ Record the accountable decision and supporting project evidence, then obtain a fresh complete security result for the current revision. Do not edit the finding or SQLite projection directly.
346
+
347
+ ## Contract references
348
+
349
+ - Policy schema: [security-validation-policy.schema.json](../config/security-validation-policy.schema.json)
350
+ - Adapter schema: [security-adapter.schema.json](../config/security-adapter.schema.json)
351
+ - Request schema: [security-scan-request.schema.json](../config/security-scan-request.schema.json)
352
+ - Response schema: [security-scan-response.schema.json](../config/security-scan-response.schema.json)
353
+ - [Human approval and assurance](human-approval-and-assurance-guide.md)
@@ -0,0 +1,123 @@
1
+ # Solution Readiness Review guide
2
+
3
+ Before deciding what happens next, review the evidence for this delivery. Choose the type of system you're assessing; EWAI brings together the relevant records and shows what's missing or out of date. A named reviewer records the assessment. It doesn't approve a release.
4
+
5
+ Security validation is evidence, not certification or proof that this system is secure. Tools can miss vulnerabilities and produce false positives. A qualified human must review the scope, findings, limitations and residual risk before release.
6
+
7
+ Solution Readiness Review is advisory evidence, not certification, business acceptance, Manual QA approval, security approval, deployment permission or release authorisation. Accountable humans retain every approval and risk decision.
8
+
9
+ ## Choose a profile
10
+
11
+ | Profile | Use it for | Additional emphasis |
12
+ |---|---|---|
13
+ | `internal-only` | Bounded internal tools without sensitive or client material | Purpose, standards, testing, Manual QA and operations |
14
+ | `internal-sensitive` | Internal solutions handling personal, sensitive or restricted data | Security, privacy, hosting and governance |
15
+ | `client-facing` | Client workflows, client material or client-accessible services | Impact, independent validation, documentation and service ownership |
16
+ | `public-service` | Publicly accessible services | Accessibility, misuse, availability and broad user impact |
17
+ | `critical-regulated` | High-consequence or regulated contexts | Named legal/regulatory specialists and independent assurance |
18
+
19
+ Profiles change required dimensions and human roles. They never rewrite source evidence or turn an unknown into a pass.
20
+
21
+ ## Before you start
22
+
23
+ Read the [Manual QA walkthrough guidance](quality/manual-qa-and-acceptance.md) when reviewing human acceptance evidence. Preparing a readiness report can't replace that walkthrough.
24
+
25
+ - Use a known EWAI delivery slug with durable `delivery-state.json` truth.
26
+ - Complete as much normal EWAI evidence as is proportionate: intent, Impact, standards, tests, Manual QA, security, technology/hosting, operations and guidance.
27
+ - Install or create project personas when their real responsibilities improve the review.
28
+ - Treat a missing evidence source as a valid and visible outcome.
29
+
30
+ ## Run the workflow
31
+
32
+ ```bash
33
+ ewai readiness profiles --project . --json
34
+ ewai readiness prepare my-delivery --profile client-facing --project . --json
35
+ ```
36
+
37
+ Preparation writes:
38
+
39
+ ```text
40
+ SPECS/3.Evidence/readiness/<delivery-slug>/<assessment-id>/
41
+ ├── readiness-brief.json
42
+ ├── readiness-brief.md
43
+ └── readiness-review.template.json
44
+ ```
45
+
46
+ Open the briefing and every material citation. Complete the template, then record the named review:
47
+
48
+ ```bash
49
+ ewai readiness review <assessment-id> \
50
+ --input SPECS/3.Evidence/readiness/<delivery-slug>/<assessment-id>/readiness-review.template.json \
51
+ --reviewed-by "Accountable owner" \
52
+ --project . \
53
+ --json
54
+ ```
55
+
56
+ This adds immutable `readiness-report.json` and `readiness-report.md` files. It never overwrites an earlier report.
57
+
58
+ Check currency:
59
+
60
+ ```bash
61
+ ewai readiness status <assessment-id> --project . --json
62
+ ```
63
+
64
+ If the repository revision, selected profile, preparation digest or cited file changes, status is `stale`. Prepare a new assessment and preserve the historical report.
65
+
66
+ ## Interpret the evidence
67
+
68
+ Dimensions use `satisfied`, `conditional`, `blocking`, `missing`, `stale`, `not-applicable`, or `not-configured`. The reviewer uses `accepted`, `conditional`, `blocked`, `insufficient-evidence`, or `not-applicable`.
69
+
70
+ Missing, stale, blocking or not-configured required evidence cannot be marked accepted. A condition or residual risk needs a clear statement, accountable owner and future review date.
71
+
72
+ The report derives one advisory result:
73
+
74
+ - `ready-for-human-decision`: evidence is coherent enough for the accountable human to make the next decision. This is not that decision.
75
+ - `conditional`: owned, time-bounded conditions remain.
76
+ - `blocked`: at least one blocker remains.
77
+ - `insufficient-evidence`: one or more required decisions cannot be supported by current evidence.
78
+
79
+ There is no percentage score. Positive dimensions cannot average away a blocker.
80
+
81
+ ## Example: required test results are missing
82
+
83
+ In the generated `readiness-review.template.json`, keep the assessment ID and preparation digest unchanged. For the `tests` dimension with no usable citations, a completed decision can look like this:
84
+
85
+ ```json
86
+ {
87
+ "id": "tests",
88
+ "disposition": "insufficient-evidence",
89
+ "reason": "The required test results aren't available for this revision. The delivery owner needs to run the agreed checks before we can assess them.",
90
+ "sourceRefs": [],
91
+ "conditions": [],
92
+ "residualRisks": []
93
+ }
94
+ ```
95
+
96
+ This is one item in `dimensions`, not the whole input. Use the actual citations and state returned by preparation and review every required dimension. Don't copy `accepted` over a missing result.
97
+
98
+ The next action is for the delivery owner to obtain current test evidence, then prepare a new assessment. Naming the gap records the problem; it doesn't run tests or accept risk.
99
+
100
+ ## Active personas
101
+
102
+ Each preparation shows the active personas and why they're relevant. The host model with included and project personas supports the whole workflow. Relevant installed personal or premium personas can add specialist perspectives as the profile or evidence gaps change.
103
+
104
+ Premium personas are optional. The command does not sync or download them. Output contains safe metadata, not proprietary persona bodies. Personas improve the questions; they do not provide stakeholder evidence, specialist opinion, legal advice, risk acceptance or approval.
105
+
106
+ ## Evidence drift and recovery
107
+
108
+ Use `readiness status` before relying on a report. Drift can include a different repository revision, changed or missing cited evidence, a changed profile contract or a digest mismatch.
109
+
110
+ Do not edit a completed report. Resolve source evidence where appropriate, prepare a new assessment and retain both records. If preparation stops before the assessment directory is atomically created, run preparation again; never remove a completed immutable report as “recovery”.
111
+
112
+ ## For EWAI maintainers
113
+
114
+ If you're changing the readiness capability itself, use its [maintainer verification walkthrough](maintainers/verification-walkthroughs.md#solution-readiness-review). That is separate from reviewing whether your own solution is ready.
115
+
116
+ ## Limitations
117
+
118
+ - V1 is CLI- and file-led; there is no dashboard or MCP surface.
119
+ - Preparation does not execute scanners, project scripts, deployment tools, cloud queries or runtime probes.
120
+ - Built-in profiles are a consistent starting point, not a legal or regulatory rules engine.
121
+ - `critical-regulated` records the need for specialist assurance; it does not supply that opinion.
122
+ - The capability does not score, certify, deploy, release or alter approval state.
123
+ - It does not approve Manual QA or release.
@@ -0,0 +1,157 @@
1
+ # Project standards authoring guide
2
+
3
+ Use this guide to turn a proposed engineering practice into an explicit, reviewable, testable project constraint.
4
+
5
+ ## Separate recommendation from acceptance
6
+
7
+ Initial Discovery writes minimum-standard recommendations under:
8
+
9
+ ```text
10
+ SPECS/5.Strategy/options/minimum-standards.md
11
+ ```
12
+
13
+ They remain options until a technical owner accepts, replaces, or rejects them. Accepted project standards belong in:
14
+
15
+ ```text
16
+ SPECS/4.Constraints/standards.md
17
+ ```
18
+
19
+ Organisation Blueprint standards materialise under:
20
+
21
+ ```text
22
+ SPECS/4.Constraints/standards/organisation/<publisher>/<pack>/<module>/<standard>.md
23
+ ```
24
+
25
+ A generated recommendation is not binding merely because it exists.
26
+
27
+ ## Write one enforceable concern at a time
28
+
29
+ A useful standard states:
30
+
31
+ - **Purpose:** the outcome or risk it protects.
32
+ - **Scope:** repositories, components, data, or changes to which it applies.
33
+ - **Rule:** the concrete obligation.
34
+ - **Rationale:** why this project adopted it.
35
+ - **Verification:** commands, evidence, or review that demonstrate conformance.
36
+ - **Exceptions:** who may approve one, required compensating controls, and review date.
37
+ - **Owner:** who interprets and maintains it.
38
+ - **Change triggers:** when it must be reviewed.
39
+
40
+ Avoid mixing unrelated security, testing, naming, and deployment rules into one page.
41
+
42
+ ## Example
43
+
44
+ ```markdown
45
+ # Public API compatibility
46
+
47
+ ## Purpose
48
+
49
+ Protect consumers from unannounced breaking changes.
50
+
51
+ ## Scope
52
+
53
+ All externally consumed HTTP API contracts.
54
+
55
+ ## Rule
56
+
57
+ Breaking request or response changes require a new supported API version and a documented consumer migration path.
58
+
59
+ ## Verification
60
+
61
+ - Contract tests compare the supported schema fixtures.
62
+ - Delivery evidence identifies affected consumers.
63
+ - Manual QA exercises one existing and one migrated consumer journey.
64
+
65
+ ## Exceptions
66
+
67
+ The technical owner and Product Owner must approve the reason, affected consumers, compensating communication, and expiry date.
68
+
69
+ ## Owner
70
+
71
+ Platform Architecture.
72
+ ```
73
+
74
+ ## Make verification proportional and observable
75
+
76
+ Prefer a combination of:
77
+
78
+ - deterministic linting or static analysis;
79
+ - focused automated behaviour tests;
80
+ - architecture or threat review;
81
+ - change-set inspection;
82
+ - operational evidence;
83
+ - Manual QA;
84
+ - named approval for exceptions.
85
+
86
+ Do not write “follow best practice” as a rule. Name the observable behaviour and evidence the project needs.
87
+
88
+ ## Resolve conflicts explicitly
89
+
90
+ Standards may conflict with each other, an architecture decision, a Blueprint version, or an inherited code constraint. Do not assume a universal precedence order.
91
+
92
+ Record:
93
+
94
+ 1. the conflicting statements and sources;
95
+ 2. the scope of each;
96
+ 3. the decision owner;
97
+ 4. the chosen interpretation;
98
+ 5. any migration or exception;
99
+ 6. review or expiry date.
100
+
101
+ Update or supersede stale text rather than appending a contradictory note that leaves two apparent truths.
102
+
103
+ ## Check applicability before Build
104
+
105
+ Use repository knowledge to identify applicable standards:
106
+
107
+ ```bash
108
+ ewai index standards <target> --project .
109
+ ewai index standards-coverage <intent-slug> --project .
110
+ ```
111
+
112
+ The EWAI standards-check skill can review a snippet, file, change set, capability, or repository against accepted project-local SPECS. It should report baseline, revision, scope, exclusions, commands, passes, non-conformities, warnings, unresolved evidence, and conflicts.
113
+
114
+ A standards review does not fix code or pass a delivery gate unless the user has separately authorised those actions and the guarded evidence is recorded.
115
+
116
+ ## Manage exceptions
117
+
118
+ An exception should include:
119
+
120
+ - standard and affected scope;
121
+ - business or technical reason;
122
+ - risk created;
123
+ - compensating controls;
124
+ - accountable approver;
125
+ - owner and expiry/review date;
126
+ - evidence needed to close it.
127
+
128
+ “The AI could not comply” is not sufficient justification.
129
+
130
+ ## Review and retirement
131
+
132
+ Review when technology support changes, incidents expose a gap, regulation or policy changes, verification becomes ineffective, or teams repeatedly request the same exception.
133
+
134
+ When retiring a standard, retain enough history to interpret earlier delivery evidence and identify its replacement.
135
+
136
+ ## Author checklist
137
+
138
+ - [ ] Recommendation and accepted standard are in the correct locations.
139
+ - [ ] Purpose, scope, rule, and owner are explicit.
140
+ - [ ] Verification produces observable evidence.
141
+ - [ ] Exceptions have authority, controls, and expiry.
142
+ - [ ] Conflicts are resolved rather than hidden.
143
+ - [ ] The rule is proportionate to project risk.
144
+ - [ ] Change and retirement triggers are recorded.
145
+
146
+ ## Related guides
147
+
148
+ - [Developer delivery guide](../developer-delivery-guide.md)
149
+ - [Organisation-specific personas](../personas/organisation-specific-personas.md)
150
+ - [Human approval and assurance](../human-approval-and-assurance-guide.md)
151
+
152
+ ## Current contract sources
153
+
154
+ - `src/discovery.mjs`
155
+ - `src/runtime/repository-index.mjs`
156
+ - `README.md`
157
+ - `SPECS/pipeline.yaml`