@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
package/LICENSE ADDED
@@ -0,0 +1,165 @@
1
+ Backstory Group Source-Available Licence 1.0
2
+
3
+ Copyright (c) 2026 Backstory Group Limited (www.backstorygroup.co.uk)
4
+ All rights reserved.
5
+
6
+ This licence is a source-available licence. It is not an open-source licence.
7
+
8
+ 1. Definitions
9
+
10
+ "Backstory Group", "we", "us" and "our" mean Backstory Group Limited.
11
+
12
+ "EWAI" means the Engineering With AI software, including its source code,
13
+ runtime, command-line tools, dashboard, documentation, templates and other
14
+ materials distributed with it.
15
+
16
+ "Official Package" means an unmodified release of EWAI published by Backstory
17
+ Group through npm or another channel that we identify as official.
18
+
19
+ "Project Content" means the source code, specifications, documentation,
20
+ configuration, records and other material that you or your organisation create,
21
+ provide or maintain in a project that uses EWAI.
22
+
23
+ "Output" means material produced through the ordinary intended use of the
24
+ Official Package, including generated or materialised project source code,
25
+ specifications, plans, reports, documentation and other project artefacts.
26
+ Output does not include EWAI itself or a Modified Version.
27
+
28
+ "Extension" means independently written software that interoperates with EWAI
29
+ through a documented or ordinarily supported interface without copying,
30
+ modifying or incorporating any part of EWAI.
31
+
32
+ "Modified Version" means EWAI, or any part of it, that has been modified,
33
+ adapted, translated, rearranged, combined into another product, or used to
34
+ create a derivative work.
35
+
36
+ "you" means the individual or legal entity accepting this licence. People who
37
+ work for you may use the Official Package on your behalf, provided that you
38
+ ensure they comply with this licence.
39
+
40
+ 2. Permission to use the Official Package
41
+
42
+ Subject to this licence, Backstory Group gives you a non-exclusive, worldwide,
43
+ royalty-free right to install and run the Official Package for lawful personal,
44
+ internal, professional and commercial work.
45
+
46
+ This includes using the Official Package:
47
+
48
+ - to design, build, test, operate and maintain commercial or non-commercial
49
+ software and other products;
50
+ - in work performed for clients; and
51
+ - alongside your own tools, Project Content and Extensions.
52
+
53
+ This permission applies only to use of the Official Package. It does not give
54
+ you permission to sell, license, host, distribute or otherwise offer EWAI
55
+ itself, whether alone or as part of another product or service.
56
+
57
+ 3. Your Project Content and Output
58
+
59
+ Backstory Group claims no ownership of your Project Content or Output merely
60
+ because you used EWAI to create, examine or manage it.
61
+
62
+ Subject to any rights belonging to other people, you may use, modify, license,
63
+ publish, distribute and commercialise your Project Content and Output without
64
+ paying Backstory Group a royalty.
65
+
66
+ 4. Independent Extensions and integrations
67
+
68
+ You may create, use, license, distribute and commercialise Extensions.
69
+ Interoperating with EWAI through a documented or ordinarily supported interface
70
+ does not, by itself, make an Extension a Modified Version.
71
+
72
+ An Extension must not:
73
+
74
+ - copy, incorporate, modify or redistribute EWAI source code;
75
+ - bypass technical restrictions or licence controls;
76
+ - imply that it is made, approved or endorsed by Backstory Group without our
77
+ written permission; or
78
+ - use Backstory Group trade marks except to describe truthful compatibility.
79
+
80
+ 5. Source transparency
81
+
82
+ Where Backstory Group makes EWAI source code available, you may view and inspect
83
+ it for transparency, evaluation, security review, compliance review and
84
+ understanding how the Official Package works. You may make the copies that are
85
+ technically necessary for those purposes, including a local inspection copy.
86
+
87
+ Access to the source code does not give you permission to use it to create a
88
+ Modified Version, to maintain an unofficial distribution, or to exercise any
89
+ right not expressly granted by this licence. Any technical ability supplied by
90
+ a source-hosting platform, including the ability to fork a repository, does not
91
+ expand the permissions in this licence.
92
+
93
+ 6. Restrictions
94
+
95
+ Unless Backstory Group gives you separate written permission, you must not:
96
+
97
+ - modify, adapt, translate or create a derivative work from EWAI;
98
+ - copy EWAI except as necessary to install, run, back up or inspect the Official
99
+ Package as expressly permitted by this licence;
100
+ - publish, distribute, sublicense, sell, rent, lease or transfer EWAI or a
101
+ Modified Version;
102
+ - repackage or rebrand EWAI;
103
+ - make EWAI or a Modified Version available as a hosted, managed or bureau
104
+ service whose principal value is access to EWAI;
105
+ - use EWAI source code to create or improve a substitute for, or competing
106
+ version of, EWAI;
107
+ - remove or alter copyright, attribution, trade mark or licence notices; or
108
+ - bypass or interfere with access, subscription, entitlement, update, security
109
+ or usage controls.
110
+
111
+ 7. Third-party materials
112
+
113
+ EWAI may use or refer to third-party software, services or content. Those
114
+ materials remain subject to their own terms. This licence does not give you any
115
+ additional rights in them.
116
+
117
+ 8. No trade mark licence
118
+
119
+ This licence does not grant a right to use the names, logos or trade marks of
120
+ Backstory Group, Backstory, Engineering With AI or Conversational Coding except
121
+ as necessary to describe truthful compatibility with an Official Package.
122
+
123
+ 9. Term and termination
124
+
125
+ This licence continues until terminated. It terminates automatically if you
126
+ breach it and do not remedy the breach within 30 days after receiving written
127
+ notice from Backstory Group. A breach involving deliberate redistribution,
128
+ repackaging, rebranding or commercial exploitation of EWAI may be terminated
129
+ immediately.
130
+
131
+ When this licence terminates, you must stop using EWAI and delete copies in your
132
+ possession or control. Termination does not take away rights already granted in
133
+ your Project Content or Output.
134
+
135
+ 10. Disclaimer of warranty
136
+
137
+ EWAI is provided "as is" and "as available". To the fullest extent permitted by
138
+ law, Backstory Group excludes all warranties, conditions and representations,
139
+ whether express, implied or statutory, including warranties of satisfactory
140
+ quality, fitness for a particular purpose, non-infringement, availability,
141
+ accuracy and freedom from defects.
142
+
143
+ 11. Limitation of liability
144
+
145
+ To the fullest extent permitted by law, Backstory Group will not be liable for
146
+ any indirect, incidental, special, consequential or punitive loss, or for any
147
+ loss of profit, revenue, business, goodwill, data or anticipated savings,
148
+ arising from or connected with EWAI or this licence.
149
+
150
+ Nothing in this licence excludes or limits liability that cannot lawfully be
151
+ excluded or limited.
152
+
153
+ 12. Governing law
154
+
155
+ This licence and any dispute or claim arising from it are governed by the laws
156
+ of Scotland. The courts of Scotland have exclusive jurisdiction, except where
157
+ applicable law requires otherwise.
158
+
159
+ 13. Separate commercial terms
160
+
161
+ Backstory Group may offer separate commercial terms, including permission to
162
+ modify, embed, redistribute or provide EWAI as part of another service. Those
163
+ rights exist only where they are agreed in writing.
164
+
165
+ For licensing enquiries, visit https://www.backstorygroup.co.uk.
package/README.md ADDED
@@ -0,0 +1,96 @@
1
+ # Engineering With AI
2
+
3
+ Engineering With AI (EWAI) helps you plan, build and review software with an AI assistant. It gives the assistant a shared record of the project, a delivery workflow and checks against your engineering standards. You keep control of the decisions and approve implementation before it starts.
4
+
5
+ ## Install and start
6
+
7
+ You'll need Node.js 22.5 or newer, npm, and a supported AI command-line tool such as Codex or Claude Code, installed and signed in.
8
+
9
+ Install EWAI, go to your project folder, then run `ewai`:
10
+
11
+ ```bash
12
+ npm install --global @thebackstoryis/engineering-with-ai
13
+ cd /path/to/your/project
14
+ ewai
15
+ ```
16
+
17
+ Replace the project path with your own. **Running `ewai` opens your AI tool and walks you through initialising the project.** If more than one supported tool is available, you'll be asked which one to use. EWAI prepares its skills automatically; you don't need to run separate `ewai install` or `ewai init` commands for this guided setup.
18
+
19
+ It first asks where to keep your project's SPECS records, then helps you describe what you're building. For an existing codebase, it also offers Archaeology to recover missing documentation; you can accept or decline. You don't need to prepare those files or learn the supporting commands before starting.
20
+
21
+ To return to the project, run `ewai` in the same folder again. It picks up the saved project state rather than starting setup from scratch. Keep your normal Git workflow for your application's code; EWAI itself is installed and updated through npm.
22
+
23
+ If npm returns `E404`, follow [installation troubleshooting](Docs/operations/installation-updating-and-entitlements.md). That's a package-acquisition failure, not a premium-persona licence error. Don't paste licence keys into npm commands or chat.
24
+
25
+ - [First session: set up a small project](Docs/tutorials/first-session.md)
26
+ - [First delivery: work through a CSV export](Docs/tutorials/first-delivery.md)
27
+ - [Already have a codebase?](Docs/existing-project-onboarding-guide.md) Archaeology can reconstruct missing documentation, but it's your choice whether to run it.
28
+ - [Installation, updates and host options](Docs/operations/installation-updating-and-entitlements.md)
29
+
30
+ ## Start with a conversation
31
+
32
+ Once EWAI opens your AI tool, describe what you need. You don't need to memorise EWAI's commands:
33
+
34
+ > “Help us understand this codebase before we change it.”
35
+
36
+ > “We need an export of the filtered support-ticket list. Work through the intent with us, and stop before implementation so we can review the plan.”
37
+
38
+ > “Pick up the export feature and show us where we left it.”
39
+
40
+ The skills inspect the project's state, choose the relevant workflow and run the supporting commands. They'll ask for missing information and your decisions. **`ewai-deliver` coordinates feature delivery through fourteen stages**, bringing in specialist skills for work such as design, test planning and review.
41
+
42
+ The supporting CLI commands are available for direct control, troubleshooting and automation, but you don't need to work through them manually to use the guided workflow.
43
+
44
+ ## What stays in your project?
45
+
46
+ **SPECS** means Scope, Purpose, Evidence, Constraints and Strategy. These readable project records hold the purpose, requirements, decisions and evidence the team has agreed. They remain useful outside an AI session.
47
+
48
+ The dashboard runs locally and lets you inspect work and make supported choices. Its loopback address isn't a shared team website. The AI host does the guided work; the runtime records progress and checks the conditions for moving on. [How these parts fit together](Docs/explanation/core-concepts.md).
49
+
50
+ Human judgement remains essential. A persona isn't a real stakeholder, green tests aren't human acceptance, and a delivery handoff isn't permission to deploy.
51
+
52
+ ## Licence
53
+
54
+ The official EWAI npm package is free to use for personal, professional and
55
+ commercial work. You can use it to build commercial products, work for clients
56
+ and create independent integrations or extensions.
57
+
58
+ The source is published for transparency and review, but EWAI is not open
59
+ source. You may not modify, repackage, redistribute, rebrand or commercially
60
+ exploit the EWAI core without separate written permission from Backstory Group.
61
+ The licence does not restrict the project content or output you create by using
62
+ EWAI. Read the [Backstory Group Source-Available Licence](LICENSE) for the full
63
+ terms.
64
+
65
+ ## Choose what you need
66
+
67
+ | When you want to… | Start here |
68
+ | --- | --- |
69
+ | Decide which work needs attention next | [Companion](Docs/context-aware-delivery-companion-user-guide.md) |
70
+ | Describe a feature and agree its boundaries | [Intent Studio](Docs/guided-intent-workspace-guide.md) |
71
+ | Understand how delivery moves through its stages | [The fourteen-stage workflow](Docs/explanation/delivery-workflow.md) |
72
+ | Investigate dependencies before a change | [Source Map](Docs/repository-source-map-guide.md) and [Blast Radius](Docs/blast-radius-and-impact-routing-guide.md) |
73
+ | Turn a meeting into reviewed project evidence | [Meeting evidence](Docs/meeting-evidence-user-guide.md) |
74
+ | Check an implemented feature with a person | [Manual QA](Docs/quality/manual-qa-and-acceptance.md) |
75
+ | Adapt the dashboard to your work | [Dashboard configuration](Docs/operations/dashboard-configuration.md) |
76
+ | Use shared organisational guidance | [Blueprints](Docs/designing-organisation-blueprint-packs.md) and [rollout](Docs/organisation-rollout-guide.md) |
77
+
78
+ Start with the parts your project needs. Portfolio, Team Hub and other advanced dashboard views are optional; hiding a view doesn't disable mandatory project checks.
79
+
80
+ ## Personas
81
+
82
+ The included personas support the normal workflow. You can also create project-specific personas and use your own personal library.
83
+
84
+ Premium personas are optional specialist perspectives. If you have a subscription, [enter your key privately and install the pack](Docs/operations/premium-personas-setup.md) before the analysis you want it to support. Installing a persona doesn't give it authority to approve a requirement, bypass a check or speak for a real user.
85
+
86
+ ## Go deeper
87
+
88
+ - [User guides and learning routes](Docs/README.md)
89
+ - [Complete guide catalogue](Docs/guide-catalogue.md)
90
+ - [Capabilities and project layout](Docs/reference/capabilities-and-project-layout.md)
91
+ - [Commands and configuration](Docs/reference/cli-and-configuration.md)
92
+ - [Troubleshooting and recovery](Docs/operations/troubleshooting-and-recovery.md)
93
+
94
+ ## Contributing to EWAI
95
+
96
+ If you're changing the harness itself, use the [contributor guide](Docs/maintainers/contributing.md) and [verification walkthroughs](Docs/maintainers/verification-walkthroughs.md). Those source-checkout and regression-test instructions aren't part of setting up your own application.
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: ewai-security-reviewer
3
+ description: Use proactively for the defensive, read-only security and trust pass during EWAI Archaeology. Review only repositories the user is authorised to assess.
4
+ model: opus
5
+ tools: Read, Grep, Glob, Bash
6
+ permissionMode: plan
7
+ ---
8
+
9
+ Perform an evidence-led static security and trust review inside the explicitly agreed repository boundary.
10
+
11
+ Document observable authentication, authorization, tenancy, validation, output handling, secrets boundaries, sensitive-data controls, cryptography, browser and session controls, dependency and supply-chain signals, integration trust boundaries, abuse controls, failure behavior, deployment configuration, and security-test evidence.
12
+
13
+ Use read-only inspection and non-destructive Git history queries. Do not search for live credentials, exploit vulnerabilities, establish persistence, evade controls, access external systems, or inspect paths outside the agreed repository. Do not run project-defined scripts or active security probes.
14
+
15
+ Return evidence-backed findings with source locations, confidence, affected capabilities, missing assurance, and recommended SPECS record families. Distinguish observed vulnerabilities, defence-in-depth improvements, test gaps, configuration uncertainty, and speculative threats. This is not penetration testing, compliance certification, or a guarantee of security.
package/bin/ewai ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import { launch } from '../src/launcher.mjs';
3
+
4
+ const exitCode = await launch(process.argv.slice(2));
5
+ if (exitCode !== 0) process.exitCode = exitCode;
@@ -0,0 +1,59 @@
1
+ schema: ewai.archaeology-record-families/v1
2
+ depth: maximum-discoverable-detail
3
+ capability_families:
4
+ - scope.domain-language
5
+ - scope.actors-and-personas
6
+ - scope.interfaces-and-integrations
7
+ - purpose.intent
8
+ - purpose.workflows
9
+ - purpose.journeys
10
+ - purpose.requirements
11
+ - purpose.acceptance-and-success
12
+ - evidence.tests
13
+ - evidence.risks
14
+ - evidence.incidents-and-learning
15
+ - constraints.rules
16
+ - strategy.architecture
17
+ - strategy.patterns
18
+ - strategy.decisions
19
+ - strategy.options-and-tradeoffs
20
+ - strategy.runbooks-and-operations
21
+ - build.delivery-history
22
+ - build.validation-history
23
+ - build.retrospective
24
+ project_families:
25
+ - scope.system-context
26
+ - scope.domain-model
27
+ - scope.persona-library
28
+ - scope.api-event-command-catalog
29
+ - scope.integration-catalog
30
+ - purpose.project-intent
31
+ - purpose.journey-map
32
+ - purpose.requirement-index
33
+ - evidence.risk-register
34
+ - evidence.test-coverage
35
+ - evidence.security-review
36
+ - evidence.code-quality-review
37
+ - evidence.incident-catalog
38
+ - evidence.technical-debt
39
+ - evidence.operational-assurance
40
+ - constraints.engineering-standards
41
+ - constraints.security-privacy
42
+ - constraints.data-governance
43
+ - constraints.accessibility
44
+ - constraints.compliance
45
+ - constraints.operational
46
+ - strategy.technology-stack
47
+ - strategy.system-architecture
48
+ - strategy.data-architecture
49
+ - strategy.integration-architecture
50
+ - strategy.pattern-library
51
+ - strategy.adr-index
52
+ - strategy.options-register
53
+ - strategy.sops
54
+ - strategy.runbooks
55
+ - strategy.observability
56
+ - strategy.recovery-continuity
57
+ - build.release-deployment-history
58
+ - build.lifecycle-stage-reconstruction
59
+ - build.learning-history
@@ -0,0 +1,121 @@
1
+ schema: ewai.delivery-artifacts/v1
2
+ phases:
3
+ ideate:
4
+ required:
5
+ - grill-ledger.md
6
+ - ideate-draft-intent.md
7
+ intent:
8
+ required:
9
+ - intent-summary.md
10
+ - gates/intent/intent-dependency-map.json
11
+ - gates/intent/intent-dependency-map-check.md
12
+ - gates/intent/intent-dependency-map-check.json
13
+ - gates/intent/intent-code-disagreements.json
14
+ organisation_policy:
15
+ required:
16
+ - gates/intent/organisation-policy-design.json
17
+ reconcile:
18
+ required:
19
+ - reconcile.md
20
+ - gates/reconcile/intent-dependency-map-check.md
21
+ - gates/reconcile/intent-dependency-map-check.json
22
+ - gates/reconcile/reconcile-disagreements.json
23
+ ui-design:
24
+ required:
25
+ - ui-design.md
26
+ - ui-design-assets/prototypes/manifest.json
27
+ plan:
28
+ required:
29
+ - build-plan.md
30
+ - destination.md
31
+ - task-graph.json
32
+ - gates/plan/intent-dependency-map-check.md
33
+ - gates/plan/intent-dependency-map-check.json
34
+ - gates/plan/discovery-notes.md
35
+ - gates/plan/code-truth-map.json
36
+ - gates/plan/claim-ledger.json
37
+ - gates/plan/claim-ledger-check.md
38
+ - gates/plan/claim-ledger-check.json
39
+ - gates/plan/implementation-flow-contract.json
40
+ - gates/plan/local-pattern-research.json
41
+ - gates/plan/plan-contract.json
42
+ - gates/plan/plan-contract-check.md
43
+ - gates/plan/plan-contract-check.json
44
+ - gates/plan/plan-existence-check.md
45
+ - gates/plan/task-graph-check.md
46
+ - gates/plan/task-graph-check.json
47
+ organisation_policy:
48
+ required:
49
+ - gates/plan/organisation-policy-design.json
50
+ pattern-validation:
51
+ required:
52
+ - pattern-validation.md
53
+ - gates/pattern-validation/implementation-flow-contract-check.json
54
+ - gates/pattern-validation/local-pattern-research-check.json
55
+ - gates/pattern-validation/claim-ledger-check.md
56
+ - gates/pattern-validation/claim-ledger-check.json
57
+ - gates/pattern-validation/plan-contract-check.md
58
+ - gates/pattern-validation/plan-contract-check.json
59
+ - gates/pattern-validation/task-graph-check.md
60
+ - gates/pattern-validation/task-graph-check.json
61
+ - gates/pattern-validation/plan-existence-check.md
62
+ test-plan:
63
+ required:
64
+ - test-plan.md
65
+ - gates/test-plan/task-to-test-traceability.md
66
+ - gates/test-plan/red-green-refactor-traceability.md
67
+ - gates/test-plan/claim-ledger-check.md
68
+ - gates/test-plan/claim-ledger-check.json
69
+ - gates/test-plan/plan-contract-check.md
70
+ - gates/test-plan/plan-contract-check.json
71
+ - gates/test-plan/plan-existence-check.md
72
+ - gates/test-plan/task-graph-check.md
73
+ - gates/test-plan/task-graph-check.json
74
+ validate-external-plan:
75
+ required:
76
+ - validate-external-plan/actions.md
77
+ - gates/validate-external-plan/plan-contract-check.md
78
+ - gates/validate-external-plan/plan-contract-check.json
79
+ - gates/validate-external-plan/plan-existence-check.md
80
+ validation_cycles: true
81
+ validate-external-test-plan:
82
+ required:
83
+ - validate-external-test-plan/actions.md
84
+ - gates/validate-external-test-plan/claim-ledger-check.md
85
+ - gates/validate-external-test-plan/claim-ledger-check.json
86
+ - gates/validate-external-test-plan/plan-contract-check.md
87
+ - gates/validate-external-test-plan/plan-contract-check.json
88
+ validation_cycles: true
89
+ fit-check:
90
+ required:
91
+ - fit-check-report.md
92
+ build:
93
+ required:
94
+ - delivery-checklist.md
95
+ - gates/build/plan-contract-check.md
96
+ - gates/build/plan-contract-check.json
97
+ - gates/build/build-contract-integrity.md
98
+ - gates/build/build-contract-integrity.json
99
+ - gates/build/task-graph-check.md
100
+ - gates/build/task-graph-check.json
101
+ task_reports: true
102
+ standards-sweep:
103
+ required:
104
+ - standards-sweep.md
105
+ test-execute:
106
+ required:
107
+ - test-execute-report.md
108
+ validate-external-code:
109
+ required:
110
+ - validate-external-code/actions.md
111
+ validation_cycles: true
112
+ delivery:
113
+ required:
114
+ - delivery-checklist.md
115
+ - qa-walkthrough.md
116
+ - gates/delivery/task-graph-check.md
117
+ - gates/delivery/task-graph-check.json
118
+ task_reports: true
119
+ retro:
120
+ required:
121
+ - retro.md
@@ -0,0 +1,77 @@
1
+ schema: ewai.delivery-stages/v1
2
+ name: EWAI fourteen-stage delivery loop
3
+ mission: be right, not done
4
+ stages:
5
+ - number: 1
6
+ id: ideate
7
+ required: conditional
8
+ condition: Input is a rough idea without an approved intent.
9
+ - number: 2
10
+ id: intent
11
+ required: always
12
+ - number: 3
13
+ id: reconcile
14
+ required: conditional
15
+ condition: Existing implementation or inherited code is in scope.
16
+ - number: 4
17
+ id: plan
18
+ required: always
19
+ - number: 5
20
+ id: pattern-validation
21
+ required: always
22
+ - number: 6
23
+ id: test-plan
24
+ required: always
25
+ - number: 7
26
+ id: validate-external-plan
27
+ required: provider-gated
28
+ providers: [claude, codex, antigravity]
29
+ provider_policy: project-configured-independent-only
30
+ on_unavailable: not-supported
31
+ - number: 8
32
+ id: validate-external-test-plan
33
+ required: provider-gated
34
+ providers: [claude, codex, antigravity]
35
+ provider_policy: project-configured-independent-only
36
+ on_unavailable: not-supported
37
+ - number: 9
38
+ id: build
39
+ required: always
40
+ approval: required
41
+ - number: 10
42
+ id: standards-sweep
43
+ required: always
44
+ - number: 11
45
+ id: test-execute
46
+ required: always
47
+ - number: 12
48
+ id: validate-external-code
49
+ required: provider-gated
50
+ providers: [claude, codex, antigravity]
51
+ provider_policy: project-configured-independent-only
52
+ on_unavailable: not-supported
53
+ - number: 13
54
+ id: delivery
55
+ required: always
56
+ - number: 14
57
+ id: retro
58
+ required: always
59
+ after: manual-qa-approved
60
+ adjuncts:
61
+ - id: ui-design
62
+ after: reconcile
63
+ condition: User-facing interface work is in scope.
64
+ - id: fit-check
65
+ before: build
66
+ condition: A shelved plan is being resumed and needs revalidation.
67
+ human_gates:
68
+ - id: manual-qa
69
+ after: delivery
70
+ before: retro
71
+ required: always
72
+ rules:
73
+ - A not-supported provider-gated stage remains visible and is never marked passed.
74
+ - The active orchestrator cannot satisfy an independent external-validation stage.
75
+ - Standards compliance remains required when no external validator is configured.
76
+ - Retro is complete only when its action plan routes accepted learning into durable assets.
77
+ - Project Retro may change project-local SPECS and assets; it must not mutate a global EWAI installation.
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://engineeringwith.ai/schemas/design-system-v1.json",
4
+ "type": "object",
5
+ "required": ["compatibility", "provenance", "contributions"],
6
+ "properties": {
7
+ "compatibility": {
8
+ "type": "object",
9
+ "required": ["ewai"],
10
+ "properties": {
11
+ "ewai": { "type": "string", "pattern": "^[0-9]+\\.x$" }
12
+ },
13
+ "additionalProperties": false
14
+ },
15
+ "provenance": {
16
+ "type": "object",
17
+ "required": ["kind", "summary"],
18
+ "properties": {
19
+ "kind": { "enum": ["owner-declared", "observed", "inferred", "adapted"] },
20
+ "summary": { "type": "string", "minLength": 1, "maxLength": 500 },
21
+ "source": { "type": "string", "minLength": 1, "maxLength": 500 }
22
+ },
23
+ "additionalProperties": false
24
+ },
25
+ "contributions": {
26
+ "type": "array",
27
+ "minItems": 1,
28
+ "maxItems": 200,
29
+ "items": {
30
+ "type": "object",
31
+ "required": ["id", "kind", "title", "source", "applicability", "required"],
32
+ "properties": {
33
+ "id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
34
+ "kind": { "enum": ["experience", "principles", "foundations", "tokens", "components", "interaction", "content", "states", "responsive", "accessibility", "motion", "prohibited", "review"] },
35
+ "title": { "type": "string", "minLength": 1, "maxLength": 160 },
36
+ "source": { "type": "string", "minLength": 1, "maxLength": 240, "not": { "pattern": "(^[a-zA-Z][a-zA-Z0-9+.-]*:|^/|(^|[\\\\/])\\.\\.([\\\\/]|$))" } },
37
+ "applicability": { "type": "array", "minItems": 1, "maxItems": 30, "uniqueItems": true, "items": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" } },
38
+ "required": { "type": "boolean" },
39
+ "replaces": { "type": "array", "maxItems": 30, "uniqueItems": true, "items": { "type": "string", "pattern": "^(?:ewai\\.[a-z0-9.-]+|org\\.[a-z0-9-]+\\.[a-z0-9.-]+):[a-z0-9]+(?:-[a-z0-9]+)*$" } }
40
+ },
41
+ "additionalProperties": false
42
+ }
43
+ }
44
+ },
45
+ "additionalProperties": false
46
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://engineeringwithai.dev/schemas/error-reporting.schema.json",
4
+ "title": "EWAI local error report",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema", "id", "status", "revision", "createdAt", "updatedAt", "diagnostics", "description", "redactions", "attachments"],
8
+ "properties": {
9
+ "schema": { "const": "ewai.error-report/v1" },
10
+ "id": { "type": "string", "pattern": "^report_[a-z0-9_]{3,80}$" },
11
+ "status": { "enum": ["draft", "finalised", "archived"] },
12
+ "revision": { "type": "integer", "minimum": 1 },
13
+ "createdAt": { "type": "string", "format": "date-time" },
14
+ "updatedAt": { "type": "string", "format": "date-time" },
15
+ "diagnostics": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "required": ["capability", "errorCode", "command", "ewaiVersion", "nodeVersion", "osClass", "installationSource"],
19
+ "properties": {
20
+ "capability": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
21
+ "errorCode": { "type": "string", "pattern": "^[A-Z][A-Z0-9-]{2,79}$" },
22
+ "command": { "type": "string", "maxLength": 160 },
23
+ "ewaiVersion": { "type": "string", "maxLength": 40 },
24
+ "nodeVersion": { "type": "string", "maxLength": 40 },
25
+ "osClass": { "enum": ["darwin", "linux", "win32", "other"] },
26
+ "installationSource": { "enum": ["npm", "git", "local", "unknown"] }
27
+ }
28
+ },
29
+ "description": {
30
+ "type": "object",
31
+ "additionalProperties": false,
32
+ "required": ["title", "expected", "actual", "reproductionSteps"],
33
+ "properties": {
34
+ "title": { "type": "string", "maxLength": 500 },
35
+ "expected": { "type": "string", "maxLength": 4000 },
36
+ "actual": { "type": "string", "maxLength": 4000 },
37
+ "reproductionSteps": { "type": "array", "maxItems": 50, "items": { "type": "string", "maxLength": 1000 } }
38
+ }
39
+ },
40
+ "redactions": { "$ref": "#/$defs/redactions" },
41
+ "attachments": {
42
+ "type": "array",
43
+ "maxItems": 20,
44
+ "items": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": ["name", "size", "digest"],
48
+ "properties": {
49
+ "name": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$" },
50
+ "size": { "type": "integer", "minimum": 0, "maximum": 5242880 },
51
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
52
+ }
53
+ }
54
+ },
55
+ "package": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "required": ["packageDigest", "archiveDigest", "size", "memberCount"],
59
+ "properties": {
60
+ "packageDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
61
+ "archiveDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
62
+ "size": { "type": "integer", "minimum": 1 },
63
+ "memberCount": { "type": "integer", "minimum": 4 }
64
+ }
65
+ }
66
+ },
67
+ "$defs": {
68
+ "redactions": {
69
+ "type": "object",
70
+ "additionalProperties": false,
71
+ "required": ["schema", "classes", "counts"],
72
+ "properties": {
73
+ "schema": { "const": "ewai.error-report-redactions/v1" },
74
+ "classes": { "type": "array", "uniqueItems": true, "items": { "type": "string" } },
75
+ "counts": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 } }
76
+ }
77
+ }
78
+ }
79
+ }