@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.
- package/Docs/README.md +50 -0
- package/Docs/adoption/consultancy-and-multi-project-rollout.md +135 -0
- package/Docs/adoption/non-technical-team-guide.md +126 -0
- package/Docs/archaeology-technology-and-hosting-discovery.md +212 -0
- package/Docs/blast-radius-and-impact-routing-guide.md +325 -0
- package/Docs/blueprints/internal-blueprint-catalogue.md +146 -0
- package/Docs/blueprints/maintaining-organisation-blueprints.md +154 -0
- package/Docs/blueprints/validation-and-troubleshooting.md +168 -0
- package/Docs/cli-reference.md +113 -0
- package/Docs/completed-phase-evidence-amendments.md +74 -0
- package/Docs/consultancy-network-rollout-control-plane-guide.md +202 -0
- package/Docs/context-aware-delivery-companion-guide.md +198 -0
- package/Docs/context-aware-delivery-companion-user-guide.md +184 -0
- package/Docs/context-management-and-token-efficiency.md +113 -0
- package/Docs/design-systems/design-system-implementation-guide.md +85 -0
- package/Docs/design-systems/design-system-pack-authoring-guide.md +95 -0
- package/Docs/design-systems/design-system-review-guide.md +51 -0
- package/Docs/design-systems/design-system-user-guide.md +96 -0
- package/Docs/design-systems/product-owner-guide.md +49 -0
- package/Docs/designing-organisation-blueprint-packs.md +384 -0
- package/Docs/developer-delivery-guide.md +224 -0
- package/Docs/error-reporting-guide.md +110 -0
- package/Docs/error-reporting-provider-guide.md +49 -0
- package/Docs/examples/error-report-adapter.md +70 -0
- package/Docs/examples/meeting-review.md +76 -0
- package/Docs/examples/minimal-design-system.md +67 -0
- package/Docs/examples/prototype-review-inputs.md +175 -0
- package/Docs/examples/reproducible-archaeology-depth-example.md +144 -0
- package/Docs/examples/test-scenario-input.md +68 -0
- package/Docs/examples/worked-examples.md +147 -0
- package/Docs/existing-project-onboarding-guide.md +214 -0
- package/Docs/explanation/core-concepts.md +26 -0
- package/Docs/explanation/delivery-workflow.md +48 -0
- package/Docs/governance/governance-team-guide.md +139 -0
- package/Docs/governed-starter-project-materialisation-guide.md +284 -0
- package/Docs/guide-catalogue.md +117 -0
- package/Docs/guided-discovery-facilitator-guide.md +172 -0
- package/Docs/guided-intent-workspace-guide.md +109 -0
- package/Docs/guided-phase-evidence-drafting-guide.md +119 -0
- package/Docs/human-approval-and-assurance-guide.md +146 -0
- package/Docs/knowledge-proposals-implementer-guide.md +106 -0
- package/Docs/knowledge-proposals-user-guide.md +247 -0
- package/Docs/maintainers/context-benchmarks.md +29 -0
- package/Docs/maintainers/contributing.md +58 -0
- package/Docs/maintainers/evidence-depth-acceptance.md +72 -0
- package/Docs/maintainers/verification-walkthroughs.md +104 -0
- package/Docs/meeting-evidence-implementer-guide.md +132 -0
- package/Docs/meeting-evidence-user-guide.md +200 -0
- package/Docs/operations/dashboard-and-delivery-state.md +153 -0
- package/Docs/operations/dashboard-configuration.md +87 -0
- package/Docs/operations/installation-updating-and-entitlements.md +135 -0
- package/Docs/operations/premium-personas-setup.md +76 -0
- package/Docs/operations/troubleshooting-and-recovery.md +205 -0
- package/Docs/organisation-rollout-guide.md +142 -0
- package/Docs/persona-entitlement-provider-guide.md +199 -0
- package/Docs/persona-guided-prototype-iteration.md +129 -0
- package/Docs/personas/organisation-specific-personas.md +103 -0
- package/Docs/personas/persona-authoring-cookbook.md +176 -0
- package/Docs/personas/persona-engagement-ui.md +133 -0
- package/Docs/personas/persona-governance.md +118 -0
- package/Docs/platform-export-analysis-guide.md +336 -0
- package/Docs/policies/governance-owner-guide.md +36 -0
- package/Docs/policies/implementation-guide.md +42 -0
- package/Docs/policies/organisation-policy-design-gates.md +58 -0
- package/Docs/policies/policy-pack-authoring-guide.md +108 -0
- package/Docs/policies/product-owner-guide.md +43 -0
- package/Docs/policies/technical-owner-guide.md +37 -0
- package/Docs/product-owner-guide.md +327 -0
- package/Docs/project-portfolio-orchestration-guide.md +199 -0
- package/Docs/quality/manual-qa-and-acceptance.md +162 -0
- package/Docs/quality/persona-driven-test-scenarios.md +172 -0
- package/Docs/quality/reproducible-archaeology-depth-review-checklist.md +89 -0
- package/Docs/reference/capabilities-and-project-layout.md +678 -0
- package/Docs/reference/cli-and-configuration.md +398 -0
- package/Docs/reference/contributions-api.md +23 -0
- package/Docs/reference/security-adapter-authoring.md +81 -0
- package/Docs/reference/starter-adapter-authoring.md +74 -0
- package/Docs/repository-source-map-guide.md +381 -0
- package/Docs/reproducible-archaeology-and-discovery-depth.md +292 -0
- package/Docs/screen-prototype-creation-guide.md +324 -0
- package/Docs/security-validation-guide.md +353 -0
- package/Docs/solution-readiness-review-guide.md +123 -0
- package/Docs/standards/project-standards-authoring.md +157 -0
- package/Docs/team-hub-guide.md +162 -0
- package/Docs/team-hub-resource-registry-guide.md +167 -0
- package/Docs/tutorials/first-delivery.md +83 -0
- package/Docs/tutorials/first-session.md +62 -0
- package/Docs/using-lifecycle-hooks.md +381 -0
- package/Docs/working-with-personas.md +274 -0
- package/LICENSE +165 -0
- package/README.md +96 -0
- package/agents-src/claude/ewai-security-reviewer.md +15 -0
- package/bin/ewai +5 -0
- package/config/archaeology-record-families.yaml +59 -0
- package/config/delivery-artifacts.yaml +121 -0
- package/config/delivery-stages.yaml +77 -0
- package/config/design-system.schema.json +46 -0
- package/config/error-reporting.schema.json +79 -0
- package/config/evidence-depth.schema.json +53 -0
- package/config/intent.schema.json +90 -0
- package/config/knowledge-proposals-proposal.schema.json +34 -0
- package/config/lifecycle-event.schema.json +68 -0
- package/config/lifecycle-handler.schema.json +45 -0
- package/config/lifecycle-hook-ack.schema.json +19 -0
- package/config/meeting-evidence-candidate.schema.json +102 -0
- package/config/organisation-policy.schema.json +137 -0
- package/config/pack.schema.json +250 -0
- package/config/persona-pack.schema.json +21 -0
- package/config/persona.schema.json +17 -0
- package/config/policy-evaluation.schema.json +77 -0
- package/config/policy-facts.schema.json +140 -0
- package/config/portfolio.schema.json +68 -0
- package/config/project.schema.json +313 -0
- package/config/prototype-iteration.schema.json +128 -0
- package/config/rollout.schema.json +87 -0
- package/config/security-adapter.schema.json +31 -0
- package/config/security-scan-request.schema.json +64 -0
- package/config/security-scan-response.schema.json +52 -0
- package/config/security-validation-policy.schema.json +74 -0
- package/config/starter-source-acknowledgement.schema.json +13 -0
- package/config/starter-source-adapter.schema.json +38 -0
- package/config/starter-source-request.schema.json +61 -0
- package/package.json +77 -0
- package/packs/core/pack.yaml +7 -0
- package/packs/design-systems/default/experience-promise.md +9 -0
- package/packs/design-systems/default/intentional-review.md +10 -0
- package/packs/design-systems/default/interaction-and-entry.md +9 -0
- package/packs/design-systems/default/meaningful-content-and-states.md +9 -0
- package/packs/design-systems/default/pack.yaml +44 -0
- package/packs/design-systems/default/principles.md +10 -0
- package/packs/personas/core/pack.yaml +7 -0
- package/packs/personas/core/personas/archaeologist.md +37 -0
- package/packs/personas/core/personas/end-user.md +17 -0
- package/packs/personas/core/personas/maintainer.md +17 -0
- package/packs/personas/core/personas/operator.md +17 -0
- package/packs/personas/core/personas/specs-knowledge-curator.md +35 -0
- package/packs/technologies/laravel/pack.yaml +30 -0
- package/packs/technologies/laravel-nuxt/pack.yaml +30 -0
- package/packs/technologies/nuxt/pack.yaml +30 -0
- package/packs/technologies/power-platform/pack.yaml +31 -0
- package/packs/technologies/salesforce/pack.yaml +25 -0
- package/public/app.js +4896 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/assets/backstory-icon.png +0 -0
- package/public/dashboard-navigation.js +98 -0
- package/public/favicon-16.png +0 -0
- package/public/favicon-32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +789 -0
- package/public/styles.css +2693 -0
- package/public/team-hub/app.js +202 -0
- package/public/team-hub/index.html +79 -0
- package/public/team-hub/styles.css +90 -0
- package/scripts/publication-check.mjs +140 -0
- package/scripts/setup.mjs +21 -0
- package/skills-src/ewai-archaeology/SKILL.md +334 -0
- package/skills-src/ewai-archaeology/agents/openai.yaml +4 -0
- package/skills-src/ewai-archaeology/references/archaeology-contract.md +201 -0
- package/skills-src/ewai-archaeology/references/lifecycle-reconstruction.md +177 -0
- package/skills-src/ewai-archaeology/references/maximum-detail-reconstruction.md +97 -0
- package/skills-src/ewai-archaeology/references/model-routing.md +26 -0
- package/skills-src/ewai-architecture/SKILL.md +108 -0
- package/skills-src/ewai-architecture/agents/openai.yaml +4 -0
- package/skills-src/ewai-architecture/references/architecture-contract.md +176 -0
- package/skills-src/ewai-context/SKILL.md +68 -0
- package/skills-src/ewai-context/agents/openai.yaml +4 -0
- package/skills-src/ewai-context-import/SKILL.md +118 -0
- package/skills-src/ewai-context-import/agents/openai.yaml +4 -0
- package/skills-src/ewai-context-import/references/context-import-contract.md +106 -0
- package/skills-src/ewai-dashboard-configuration/SKILL.md +20 -0
- package/skills-src/ewai-deliver/SKILL.md +122 -0
- package/skills-src/ewai-deliver/references/delivery-evidence.md +92 -0
- package/skills-src/ewai-deliver/references/phase-routing.md +31 -0
- package/skills-src/ewai-design-system-apply/SKILL.md +27 -0
- package/skills-src/ewai-design-system-apply/agents/openai.yaml +4 -0
- package/skills-src/ewai-design-system-apply/references/application-contract.md +36 -0
- package/skills-src/ewai-design-system-author/SKILL.md +28 -0
- package/skills-src/ewai-design-system-author/agents/openai.yaml +4 -0
- package/skills-src/ewai-design-system-author/references/authoring-contract.md +38 -0
- package/skills-src/ewai-design-system-review/SKILL.md +26 -0
- package/skills-src/ewai-design-system-review/agents/openai.yaml +4 -0
- package/skills-src/ewai-design-system-review/references/review-contract.md +40 -0
- package/skills-src/ewai-error-reporting/SKILL.md +46 -0
- package/skills-src/ewai-error-reporting/agents/openai.yaml +4 -0
- package/skills-src/ewai-error-reporting/references/provider-contract.md +74 -0
- package/skills-src/ewai-evidence-depth/SKILL.md +72 -0
- package/skills-src/ewai-evidence-depth/agents/openai.yaml +4 -0
- package/skills-src/ewai-evidence-depth/references/evidence-depth-contract.md +127 -0
- package/skills-src/ewai-intent/SKILL.md +68 -0
- package/skills-src/ewai-intent/agents/openai.yaml +4 -0
- package/skills-src/ewai-intent/references/intent-contract.md +42 -0
- package/skills-src/ewai-knowledge-proposals/SKILL.md +105 -0
- package/skills-src/ewai-knowledge-proposals/agents/openai.yaml +4 -0
- package/skills-src/ewai-knowledge-proposals/references/proposal-contract.md +59 -0
- package/skills-src/ewai-meeting-evidence/SKILL.md +106 -0
- package/skills-src/ewai-meeting-evidence/agents/openai.yaml +4 -0
- package/skills-src/ewai-meeting-evidence/references/candidate-contract.md +64 -0
- package/skills-src/ewai-organisation-policy/SKILL.md +62 -0
- package/skills-src/ewai-organisation-policy/agents/openai.yaml +4 -0
- package/skills-src/ewai-organisation-policy/references/policy-contract.md +94 -0
- package/skills-src/ewai-palace-housekeeping/SKILL.md +55 -0
- package/skills-src/ewai-palace-housekeeping/agents/openai.yaml +4 -0
- package/skills-src/ewai-persona-entitlement/SKILL.md +60 -0
- package/skills-src/ewai-persona-entitlement/agents/openai.yaml +4 -0
- package/skills-src/ewai-phase-evidence/SKILL.md +79 -0
- package/skills-src/ewai-phase-evidence/agents/openai.yaml +4 -0
- package/skills-src/ewai-pipeline/SKILL.md +130 -0
- package/skills-src/ewai-pipeline/agents/openai.yaml +4 -0
- package/skills-src/ewai-pipeline/references/cli.md +86 -0
- package/skills-src/ewai-pipeline/references/specs-contract.md +16 -0
- package/skills-src/ewai-portfolio/SKILL.md +70 -0
- package/skills-src/ewai-portfolio/agents/openai.yaml +4 -0
- package/skills-src/ewai-portfolio/references/portfolio-contract.md +67 -0
- package/skills-src/ewai-project-discovery/SKILL.md +95 -0
- package/skills-src/ewai-project-discovery/agents/openai.yaml +4 -0
- package/skills-src/ewai-project-discovery/references/discovery-contract.md +34 -0
- package/skills-src/ewai-prototype-iteration/SKILL.md +30 -0
- package/skills-src/ewai-prototype-iteration/agents/openai.yaml +4 -0
- package/skills-src/ewai-prototype-iteration/references/review-contract.md +49 -0
- package/skills-src/ewai-retro/SKILL.md +48 -0
- package/skills-src/ewai-retro/agents/openai.yaml +4 -0
- package/skills-src/ewai-retro/references/asset-routing.md +14 -0
- package/skills-src/ewai-rollout/SKILL.md +74 -0
- package/skills-src/ewai-rollout/agents/openai.yaml +4 -0
- package/skills-src/ewai-rollout/references/rollout-contract.md +74 -0
- package/skills-src/ewai-shape-intents/SKILL.md +84 -0
- package/skills-src/ewai-shape-intents/agents/openai.yaml +4 -0
- package/skills-src/ewai-shape-intents/references/intent-mapping-contract.md +109 -0
- package/skills-src/ewai-solution-readiness/SKILL.md +55 -0
- package/skills-src/ewai-solution-readiness/agents/openai.yaml +4 -0
- package/skills-src/ewai-standards-check/SKILL.md +93 -0
- package/skills-src/ewai-standards-check/agents/openai.yaml +4 -0
- package/skills-src/ewai-standards-check/references/report-contract.md +116 -0
- package/skills-src/ewai-test-scenarios/SKILL.md +94 -0
- package/skills-src/ewai-test-scenarios/agents/openai.yaml +4 -0
- package/skills-src/ewai-test-scenarios/references/scenario-contract.md +88 -0
- package/src/afk-worker.mjs +16 -0
- package/src/archaeology.mjs +1333 -0
- package/src/checkin.mjs +261 -0
- package/src/cli.mjs +2427 -0
- package/src/companion-guidance.mjs +257 -0
- package/src/companion-opening.mjs +62 -0
- package/src/companion.mjs +256 -0
- package/src/context.mjs +210 -0
- package/src/dashboard-preferences.mjs +80 -0
- package/src/delivery-artifacts.mjs +204 -0
- package/src/delivery-documents.mjs +248 -0
- package/src/delivery-gates.mjs +317 -0
- package/src/delivery.mjs +1433 -0
- package/src/design-system-application.mjs +291 -0
- package/src/design-system-authoring.mjs +101 -0
- package/src/design-systems.mjs +466 -0
- package/src/discovery.mjs +1314 -0
- package/src/error-reporting.mjs +323 -0
- package/src/evidence-depth.mjs +543 -0
- package/src/execution-state.mjs +243 -0
- package/src/install.mjs +166 -0
- package/src/intent-dependencies.mjs +117 -0
- package/src/intent-maps.mjs +402 -0
- package/src/intents.mjs +747 -0
- package/src/knowledge-proposals.mjs +717 -0
- package/src/launcher.mjs +51 -0
- package/src/meeting-evidence.mjs +703 -0
- package/src/network-rollout.mjs +386 -0
- package/src/organisation-blueprints.mjs +438 -0
- package/src/organisation-policies.mjs +448 -0
- package/src/packs.mjs +44 -0
- package/src/paths.mjs +62 -0
- package/src/persona-entitlements.mjs +438 -0
- package/src/persona-licence-config.mjs +98 -0
- package/src/persona-website-provider.mjs +134 -0
- package/src/persona-zip.mjs +87 -0
- package/src/personas.mjs +159 -0
- package/src/platform-metadata-analysis.mjs +314 -0
- package/src/policy-design-gates.mjs +623 -0
- package/src/policy-gate-integration.mjs +318 -0
- package/src/portfolio.mjs +509 -0
- package/src/power-platform-source-map.mjs +190 -0
- package/src/project.mjs +449 -0
- package/src/prototype-iterations.mjs +730 -0
- package/src/repository-source-map.mjs +603 -0
- package/src/runtime/afk-conductor.mjs +973 -0
- package/src/runtime/context-assembly.mjs +457 -0
- package/src/runtime/context-benchmarks.mjs +115 -0
- package/src/runtime/dashboard-actions.mjs +109 -0
- package/src/runtime/dashboard-handoffs.mjs +149 -0
- package/src/runtime/dashboard-server.mjs +1272 -0
- package/src/runtime/dashboard.mjs +197 -0
- package/src/runtime/database.mjs +789 -0
- package/src/runtime/error-reporting.mjs +581 -0
- package/src/runtime/evidence-depth-workspace.mjs +412 -0
- package/src/runtime/execution-leases.mjs +299 -0
- package/src/runtime/guided-discovery.mjs +350 -0
- package/src/runtime/guided-intents.mjs +517 -0
- package/src/runtime/impact-analysis.mjs +535 -0
- package/src/runtime/intents.mjs +222 -0
- package/src/runtime/knowledge.mjs +86 -0
- package/src/runtime/lifecycle-hooks.mjs +1239 -0
- package/src/runtime/mcp-config.mjs +110 -0
- package/src/runtime/mcp-server.mjs +1885 -0
- package/src/runtime/palace.mjs +362 -0
- package/src/runtime/paths.mjs +58 -0
- package/src/runtime/persona-engagement.mjs +255 -0
- package/src/runtime/phase-contributions.mjs +594 -0
- package/src/runtime/policy-workspace.mjs +170 -0
- package/src/runtime/prototype-iterations.mjs +235 -0
- package/src/runtime/provider-adapters.mjs +163 -0
- package/src/runtime/repository-index.mjs +838 -0
- package/src/runtime/runs.mjs +185 -0
- package/src/runtime/security-validation.mjs +1230 -0
- package/src/runtime/starter-materialisation.mjs +1155 -0
- package/src/runtime/team-hub-client.mjs +479 -0
- package/src/runtime/team-hub-database.mjs +288 -0
- package/src/runtime/team-hub-server.mjs +191 -0
- package/src/runtime/team-hub.mjs +110 -0
- package/src/runtime/tree-sitter-index.mjs +390 -0
- package/src/runtime/version.mjs +1 -0
- package/src/runtime/work.mjs +633 -0
- package/src/salesforce-source-map.mjs +212 -0
- package/src/security-validation-config.mjs +224 -0
- package/src/solution-readiness.mjs +620 -0
- package/src/starter-materialisation-contract.mjs +407 -0
- package/src/task-graph.mjs +544 -0
- package/src/team-hub-resources.mjs +239 -0
- package/src/team-hub.mjs +242 -0
- package/src/test-scenarios.mjs +622 -0
- package/src/validation-config.mjs +289 -0
- package/templates/SPECS/1.Scope/personas/registry.yaml +12 -0
- package/templates/SPECS/5.Strategy/patterns/context-packet.md +119 -0
- package/templates/SPECS/6.Build/_tracker-template.md +16 -0
- package/templates/SPECS/pipeline.yaml +62 -0
- package/templates/discovery-answers.yaml +86 -0
- package/templates/intent-body.md +21 -0
- package/tests/fixtures/context-benchmarks.json +9 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# Developer delivery guide
|
|
2
|
+
|
|
3
|
+
Ask EWAI to work through an intent with you. The **ewai-deliver** skill coordinates planning, implementation and review, checks what each stage needs, and asks for your approval before Build. You can start with a draft; its outcome and acceptance criteria need to be ready before the Intent stage finishes.
|
|
4
|
+
|
|
5
|
+
Try the [first-delivery tutorial](tutorials/first-delivery.md) for a guided example. This guide provides the operational detail and commands when you need direct control.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
<!-- editorial: contents -->
|
|
9
|
+
## On this page
|
|
10
|
+
|
|
11
|
+
- [Before delivery begins](#before-delivery-begins)
|
|
12
|
+
- [Start through the guarded workflow](#start-through-the-guarded-workflow)
|
|
13
|
+
- [Understand the fourteen stages](#understand-the-fourteen-stages)
|
|
14
|
+
- [Use personas to expand test coverage](#use-personas-to-expand-test-coverage)
|
|
15
|
+
- [Plan vertical slices](#plan-vertical-slices)
|
|
16
|
+
- [Preserve the Build approval boundary](#preserve-the-build-approval-boundary)
|
|
17
|
+
- [Build with evidence](#build-with-evidence)
|
|
18
|
+
- [Run standards and tests separately](#run-standards-and-tests-separately)
|
|
19
|
+
- [Prepare Delivery and Manual QA](#prepare-delivery-and-manual-qa)
|
|
20
|
+
- [Shelf and resume](#shelf-and-resume)
|
|
21
|
+
- [Definition of done](#definition-of-done)
|
|
22
|
+
- [Related guides](#related-guides)
|
|
23
|
+
- [Current contract sources](#current-contract-sources)
|
|
24
|
+
|
|
25
|
+
## Before delivery begins
|
|
26
|
+
|
|
27
|
+
Use these checks to establish what you know and what needs work. They aren't a requirement to arrive with a finished intent; resolve the outcome and acceptance gaps during Intent.
|
|
28
|
+
|
|
29
|
+
Confirm:
|
|
30
|
+
|
|
31
|
+
- the intent describes an outcome rather than only a requested implementation;
|
|
32
|
+
- acceptance criteria, constraints, dependencies, and non-goals are explicit;
|
|
33
|
+
- attached personas are relevant and advisory;
|
|
34
|
+
- repository work and unrelated local changes are understood and protected;
|
|
35
|
+
- the repository index is fresh enough for impact and standards claims;
|
|
36
|
+
- the configured validation policy is known.
|
|
37
|
+
|
|
38
|
+
Inspect or refresh repository knowledge:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
ewai index freshness --project .
|
|
42
|
+
ewai index refresh --project .
|
|
43
|
+
ewai index coverage --project .
|
|
44
|
+
ewai index standards-coverage <intent-slug> --project .
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Review the [Repository Source Map](repository-source-map-guide.md) when inventory-only, shallow, sensitive, oversized, or failed evidence could limit a claim. When changing existing behaviour, use [Blast Radius and Impact Routing](blast-radius-and-impact-routing-guide.md) to inspect the bounded dependency reach, possible consequences, active perspectives, and required human review routes. Treat partial coverage as uncertainty. Repeat the assessment if implementation crosses the assessed boundary.
|
|
48
|
+
|
|
49
|
+
## Start through the guarded workflow
|
|
50
|
+
|
|
51
|
+
Normally, ask your host to use `ewai-deliver`. For direct operation, replace `<intent-slug>` with the saved identifier, such as `support/export-filtered-tickets`:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
ewai delivery begin <intent-slug> --project . --tool codex
|
|
55
|
+
ewai delivery continue <intent-slug> --project .
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`begin` creates the delivery run; `continue` inspects it and reports the next permitted step. Neither command performs the whole phase. Continue the work in your AI host using that result.
|
|
59
|
+
|
|
60
|
+
Use the canonical delivery operations. Never hand-edit a phase status, completion percentage, approval, or SQLite work item to move delivery forward.
|
|
61
|
+
|
|
62
|
+
## Understand the fourteen stages
|
|
63
|
+
|
|
64
|
+
[Follow one feature through every stage](explanation/delivery-workflow.md). The table below is the operational summary.
|
|
65
|
+
|
|
66
|
+
| Stage | Engineering purpose |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| Ideate | Convert a rough idea when no sufficient intent exists. |
|
|
69
|
+
| Intent | Establish outcome, evidence, acceptance, constraints, and relationships. |
|
|
70
|
+
| Reconcile | Compare intent with inherited or existing behaviour. |
|
|
71
|
+
| Plan | Define vertical slices, contracts, dependencies, tests, and stop conditions. |
|
|
72
|
+
| Pattern Validation | Verify the plan against repository patterns and project standards. |
|
|
73
|
+
| Test Plan | Establish red/green/refactor and acceptance evidence before Build. |
|
|
74
|
+
| External Plan Validation | Obtain independent review when configured and available. |
|
|
75
|
+
| External Test Validation | Independently review the test design when configured. |
|
|
76
|
+
| Build | Implement only the explicitly approved scope. |
|
|
77
|
+
| Standards Sweep | Check the complete change against project standards. |
|
|
78
|
+
| Test Execute | Run the planned tests and retain results. |
|
|
79
|
+
| External Code Validation | Independently review the change when configured. |
|
|
80
|
+
| Delivery | Prepare the handoff, release evidence, and Manual QA walkthrough. |
|
|
81
|
+
| Retro | Capture learning after human acceptance. |
|
|
82
|
+
|
|
83
|
+
Conditional and provider-gated stages may be skipped or marked not supported by the contract. That is evidence, not permission to invent a review.
|
|
84
|
+
|
|
85
|
+
The workflow also includes conditional **UI Design** for interface work and **FitCheck** when resuming shelved work. Follow the phase sequence returned by EWAI rather than jumping directly from this overview to Build. After Delivery, **Manual QA** remains a separate human acceptance gate before Retro can close the work.
|
|
86
|
+
|
|
87
|
+
## Use personas to expand test coverage
|
|
88
|
+
|
|
89
|
+
During Test Plan, use [Persona-driven test scenarios](quality/persona-driven-test-scenarios.md) when role-specific lenses can materially challenge the accepted journeys, criteria, constraints, impact evidence, standards, or test obligations. Before recording a scenario, have the named reviewer agree what it should demonstrate and which requirement or other accepted evidence supports that result. That agreed expected result is the test's **oracle**.
|
|
90
|
+
|
|
91
|
+
During Build, implement accepted automated or hybrid scenario IDs only when their planned test belongs to the leased task. Write the failing test first, preserve the accepted oracle, and keep Manual QA, specialist assurance, and representative-user routes open for human evidence.
|
|
92
|
+
|
|
93
|
+
## Plan vertical slices
|
|
94
|
+
|
|
95
|
+
A good task produces a user-visible or operator-visible outcome and owns a non-overlapping write set. Record:
|
|
96
|
+
|
|
97
|
+
- claim and slice IDs;
|
|
98
|
+
- repository and branch;
|
|
99
|
+
- read and write sets;
|
|
100
|
+
- dependencies and execution wave;
|
|
101
|
+
- module or interface contract;
|
|
102
|
+
- first failing test or an explicit rationale;
|
|
103
|
+
- allowed commands;
|
|
104
|
+
- stop conditions;
|
|
105
|
+
- completion evidence;
|
|
106
|
+
- fresh-context review expectations.
|
|
107
|
+
|
|
108
|
+
Do not split work only by technical layer when doing so creates partially usable or untestable changes.
|
|
109
|
+
|
|
110
|
+
## Preserve the Build approval boundary
|
|
111
|
+
|
|
112
|
+
Build cannot start until pre-Build phases pass and an authorised person approves an exact scope:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
ewai delivery approve-build <intent-slug> \
|
|
116
|
+
--project . \
|
|
117
|
+
--yes \
|
|
118
|
+
--approved-by "Product Owner" \
|
|
119
|
+
--scope "The files and outcomes approved for this build"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
If a human-approved correction changes completed pre-Build gate evidence, ratify the amended ledgers before recording Build approval:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
ewai delivery ratify-amendments <intent-slug> \
|
|
126
|
+
--project . \
|
|
127
|
+
--yes \
|
|
128
|
+
--approved-by "Product Owner" \
|
|
129
|
+
--scope "The corrected intent, plan, UI and test contracts"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
For the distinction between this operation and narrow completed-evidence corrections, see [Which amendment operation?](completed-phase-evidence-amendments.md#which-amendment-operation).
|
|
133
|
+
|
|
134
|
+
Ratification revalidates every completed phase, records the old and new gate hashes, and updates the stored fingerprints atomically. It cannot start Build or substitute for the separate Build approval.
|
|
135
|
+
|
|
136
|
+
Approval is a durable record, not a conversational implication. If the implementation needs a material new outcome, return to Intent or Plan and obtain fresh approval.
|
|
137
|
+
|
|
138
|
+
## Build with evidence
|
|
139
|
+
|
|
140
|
+
For each task:
|
|
141
|
+
|
|
142
|
+
Use `$ewai-deliver` to acquire and maintain an execution lease for the task before writing code. The lease identifies its current worker; it isn't Build approval. The task graph defines the allowed files, commands and stop conditions. Release the lease only with the actual completion or handoff outcome.
|
|
143
|
+
|
|
144
|
+
1. run the recorded red check and retain the expected failure;
|
|
145
|
+
2. make the smallest coherent implementation;
|
|
146
|
+
3. run the green check;
|
|
147
|
+
4. refactor within the approved contract;
|
|
148
|
+
5. review tests before implementation details in a fresh context;
|
|
149
|
+
6. record changed files, commands, hashes, and completion checks;
|
|
150
|
+
7. stop when a declared stop condition occurs.
|
|
151
|
+
|
|
152
|
+
Protect unrelated work. Do not use destructive Git operations or automatic stashing to make the worktree look clean.
|
|
153
|
+
|
|
154
|
+
## Run standards and tests separately
|
|
155
|
+
|
|
156
|
+
A test suite demonstrates selected behaviour. A standards sweep examines whether the whole change conforms to project constraints. Both are mandatory when the project policy requires them.
|
|
157
|
+
|
|
158
|
+
External validation is also distinct. EWAI excludes the active orchestrator from the independent reviewer set and honours the configured cycle limit. If no independent provider remains, record the checkpoint as not supported; do not call self-review independent.
|
|
159
|
+
|
|
160
|
+
## Prepare Delivery and Manual QA
|
|
161
|
+
|
|
162
|
+
Delivery should include:
|
|
163
|
+
|
|
164
|
+
- implementation summary and changed files;
|
|
165
|
+
- exact automated checks and results;
|
|
166
|
+
- accepted limitations and residual risks;
|
|
167
|
+
- operational or migration notes;
|
|
168
|
+
- rollback or recovery guidance where relevant;
|
|
169
|
+
- a reproducible Manual QA walkthrough;
|
|
170
|
+
- the decision the human tester is being asked to make.
|
|
171
|
+
|
|
172
|
+
Manual QA is a separate named gate:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
ewai delivery approve-manual-qa <intent-slug> \
|
|
176
|
+
--project . \
|
|
177
|
+
--yes \
|
|
178
|
+
--approved-by "Product Owner" \
|
|
179
|
+
--evidence SPECS/6.Build/<intent-slug>/qa-evidence.md
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Only the person who performed or accepted the walkthrough should approve it.
|
|
183
|
+
|
|
184
|
+
## Shelf and resume
|
|
185
|
+
|
|
186
|
+
Shelf mode prepares validated planning evidence and stops before Build. Resume must re-enter through the guarded resume/FitCheck path:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
ewai delivery begin <intent-slug> --project . --tool codex --mode shelf
|
|
190
|
+
ewai delivery resume <intent-slug> --project . --tool codex
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Do not resume blocked, corrupt, or ambiguous work by editing state files.
|
|
194
|
+
|
|
195
|
+
## Definition of done
|
|
196
|
+
|
|
197
|
+
The work is not done until:
|
|
198
|
+
|
|
199
|
+
- planned tasks have complete evidence;
|
|
200
|
+
- mandatory standards and tests pass; any permitted exception follows its specific reviewed process, and recording a risk alone doesn't waive a required gate;
|
|
201
|
+
- configured independent review is complete or honestly unavailable;
|
|
202
|
+
- Delivery evidence and a Manual QA walkthrough exist;
|
|
203
|
+
- the human acceptance gate is approved;
|
|
204
|
+
- the retrospective records reusable learning.
|
|
205
|
+
|
|
206
|
+
## Related guides
|
|
207
|
+
|
|
208
|
+
- [Human approval and assurance](human-approval-and-assurance-guide.md)
|
|
209
|
+
- [Blast Radius and Impact Routing](blast-radius-and-impact-routing-guide.md)
|
|
210
|
+
- [Persona-driven test scenarios](quality/persona-driven-test-scenarios.md)
|
|
211
|
+
- [Manual QA and acceptance](quality/manual-qa-and-acceptance.md)
|
|
212
|
+
- [Dashboard and delivery state](operations/dashboard-and-delivery-state.md)
|
|
213
|
+
- [Project standards authoring](standards/project-standards-authoring.md)
|
|
214
|
+
|
|
215
|
+
## Current contract sources
|
|
216
|
+
|
|
217
|
+
- `src/delivery.mjs`
|
|
218
|
+
- `src/delivery-gates.mjs`
|
|
219
|
+
- `src/delivery-artifacts.mjs`
|
|
220
|
+
- `src/task-graph.mjs`
|
|
221
|
+
- `src/validation-config.mjs`
|
|
222
|
+
- `config/delivery-artifacts.yaml`
|
|
223
|
+
- `tests/delivery.test.mjs`
|
|
224
|
+
- `tests/task-graph.test.mjs`
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Local Error Reporting guide
|
|
2
|
+
|
|
3
|
+
EWAI can create privacy-safe diagnostic packages without a paid service or hosted reporting backend. Reports remain on the user's machine until a person explicitly prepares an email or invokes a registered provider adapter.
|
|
4
|
+
|
|
5
|
+
This capability reports problems in the EWAI design-time pipeline. It is not production monitoring, application telemetry, incident management, security certification or a runtime engine for software built with EWAI.
|
|
6
|
+
|
|
7
|
+
## Where reports live
|
|
8
|
+
|
|
9
|
+
EWAI keeps operational material under:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
.ewai-pipeline/error-reports/
|
|
13
|
+
├── drafts/
|
|
14
|
+
├── packages/
|
|
15
|
+
├── receipts/
|
|
16
|
+
├── archive/
|
|
17
|
+
└── adapters/
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The folder is excluded by the managed `.ewai-pipeline/.gitignore`. Do not move reports into `SPECS/` or source control: they are local operational evidence, not canonical project truth.
|
|
21
|
+
|
|
22
|
+
## Quick start
|
|
23
|
+
|
|
24
|
+
1. Run `ewai dashboard --project .` and open the reported loopback URL.
|
|
25
|
+
2. Choose **Error Reporting**.
|
|
26
|
+
3. Create and review a local draft.
|
|
27
|
+
4. Finalise the draft only when its safe projection contains enough information and no unnecessary sensitive detail.
|
|
28
|
+
5. Either prepare a manual email or, when your organisation has explicitly registered one, invoke a provider adapter.
|
|
29
|
+
|
|
30
|
+
Nothing leaves the machine during steps 1–4.
|
|
31
|
+
|
|
32
|
+
## Use the dashboard
|
|
33
|
+
|
|
34
|
+
Open the local dashboard and choose **Error Reporting**. The workspace provides:
|
|
35
|
+
|
|
36
|
+
- a list of draft, finalised and archived reports;
|
|
37
|
+
- a graphical viewer for safe diagnostics, reproduction steps, exclusions, package digests, attempts and receipts;
|
|
38
|
+
- **Create report** for a manual draft;
|
|
39
|
+
- contextual **Report this problem** actions when an EWAI dashboard surface fails;
|
|
40
|
+
- an **Automatic local drafts** opt-in;
|
|
41
|
+
- **Finalise ZIP**, **Prepare email**, provider, archive and delete actions when their preconditions are met.
|
|
42
|
+
|
|
43
|
+
Creating a report never transmits it. Automatic local drafts are opt-in and create deduplicated drafts only; they never finalise, email or invoke a provider.
|
|
44
|
+
|
|
45
|
+
## Understand custody states
|
|
46
|
+
|
|
47
|
+
| State | Meaning | What it does not prove |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| `draft` | Local editable report material exists. | That a complete package or external report exists. |
|
|
50
|
+
| `finalised` | An immutable digest-bound ZIP exists locally. | That the ZIP was attached, sent, accepted or reviewed. |
|
|
51
|
+
| `prepared-not-sent` | EWAI revealed the ZIP and requested the default email client. | That the ZIP was attached or the email was sent or delivered. |
|
|
52
|
+
| `attempted` or `failed` | A registered provider invocation was recorded. | That the provider accepted or retained the package. |
|
|
53
|
+
| `accepted` | The provider acknowledged the exact package digest. | That anyone triaged, resolved or closed the issue. |
|
|
54
|
+
| `archived` | The safe report record was retained locally and removed from active work. | That its ZIP remains available or any external copy was recalled. |
|
|
55
|
+
|
|
56
|
+
## Automatic local drafts
|
|
57
|
+
|
|
58
|
+
Automatic local drafts are disabled by default. When enabled, supported EWAI failures create bounded, path-free, deduplicated local drafts. Capture failures are isolated so they cannot replace or mask the original EWAI error.
|
|
59
|
+
|
|
60
|
+
Review an automatic draft before finalising it. Automatic capture never adds raw logs, prompts, responses, source files, environment values, credentials or persona bodies, and it never performs a transport action.
|
|
61
|
+
|
|
62
|
+
## Review and finalise
|
|
63
|
+
|
|
64
|
+
Before finalising:
|
|
65
|
+
|
|
66
|
+
1. Check the title, expected behaviour, actual behaviour and reproduction steps.
|
|
67
|
+
2. Remove client information, secrets, personal data and other unnecessary detail.
|
|
68
|
+
3. Inspect the exclusion summary. EWAI excludes credentials, environment values, absolute paths, repository names, source and SPECS content, raw logs, prompts and responses, and persona bodies.
|
|
69
|
+
4. Finalise only when the bounded content explains the problem without exposing project material.
|
|
70
|
+
|
|
71
|
+
Finalisation creates a deterministic immutable ZIP containing a manifest, summary, bounded diagnostics and redaction report. EWAI shows both the logical package digest and exact archive digest. Editing a finalised report creates a new draft revision and leaves the earlier ZIP unchanged.
|
|
72
|
+
|
|
73
|
+
## Prepare a manual email
|
|
74
|
+
|
|
75
|
+
Select a finalised report and choose **Prepare email**. EWAI confirms the exact digest, asks the operating system to reveal the ZIP and opens the default email client with a subject and safe body.
|
|
76
|
+
|
|
77
|
+
The state is `prepared-not-sent`. EWAI cannot prove that the ZIP was attached or the message was sent. You must:
|
|
78
|
+
|
|
79
|
+
1. inspect the recipient and email body;
|
|
80
|
+
2. attach the revealed ZIP manually;
|
|
81
|
+
3. confirm the attached filename and digest correspond to the selected revision;
|
|
82
|
+
4. send the message yourself.
|
|
83
|
+
|
|
84
|
+
If the operating system cannot open one of those applications, copy the package location from the dashboard and create the email manually. No paid service is required.
|
|
85
|
+
|
|
86
|
+
## Use a provider adapter
|
|
87
|
+
|
|
88
|
+
A registered generic provider adapter can transport the exact ZIP to a commercial or organisation-owned system. EWAI includes the interface, not vendor connectors. Registration is an explicit trusted-code decision, and sending requires confirmation plus the exact archive digest.
|
|
89
|
+
|
|
90
|
+
The dashboard distinguishes attempts from receipts. A failed attempt remains visible. An accepted receipt proves that the provider acknowledged the exact digest; it does not prove that anyone reviewed, fixed or closed the problem.
|
|
91
|
+
|
|
92
|
+
See [Error Reporting provider guide](error-reporting-provider-guide.md) for implementation and trust requirements.
|
|
93
|
+
|
|
94
|
+
## CLI equivalents
|
|
95
|
+
|
|
96
|
+
Use [Error Reporting CLI reference](cli-reference.md) for automation and troubleshooting. The `$ewai-error-reporting` skill follows the same lifecycle and custody boundaries.
|
|
97
|
+
|
|
98
|
+
## Archive and deletion
|
|
99
|
+
|
|
100
|
+
Archiving retains a safe archived report record and removes the working draft and package material. If the ZIP must be retained, copy it to an approved location before archiving. Deletion removes local report material and requires explicit confirmation. Neither action recalls an email attachment or deletes material already accepted by an external provider. Provider attempts and receipts remain as transport evidence.
|
|
101
|
+
|
|
102
|
+
## Troubleshooting
|
|
103
|
+
|
|
104
|
+
- If the dashboard does not show a newly created report, refresh the workspace and compare it with `ewai error-report status --project . --json`.
|
|
105
|
+
- If email preparation cannot reveal the ZIP or open a client, use the package location shown by EWAI and prepare the email manually.
|
|
106
|
+
- If a provider attempt fails, inspect its bounded reason class and the provider's own safe operational logs. Retrying creates a new attempt rather than rewriting history.
|
|
107
|
+
- If a finalised package needs different content, create a new draft revision. Do not modify the existing ZIP.
|
|
108
|
+
- If automatic drafts are too noisy, disable the setting; existing drafts remain local until explicitly archived or deleted.
|
|
109
|
+
|
|
110
|
+
For accountable acceptance of the complete workflow, follow the project delivery's `qa-walkthrough.md`. Automated checks and provider receipts do not substitute for Manual QA.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Error Reporting provider guide
|
|
2
|
+
|
|
3
|
+
EWAI exposes a generic provider adapter boundary so an organisation can integrate its chosen commercial error tracker, ticketing tool or support service. The core product ships no connector, requires no paid service and provides no hosted reporting backend.
|
|
4
|
+
|
|
5
|
+
## Responsibility split
|
|
6
|
+
|
|
7
|
+
EWAI owns safe local drafting, review, deterministic ZIP finalisation, exact digests, explicit submission approval, bounded adapter invocation, and local attempt/receipt evidence.
|
|
8
|
+
|
|
9
|
+
The adapter owns provider authentication, network calls, provider-specific field mapping, rate limits and the external reference. It must not expand the report by collecting source, environment values, logs or other local material.
|
|
10
|
+
|
|
11
|
+
## Build an adapter
|
|
12
|
+
|
|
13
|
+
Create a self-contained folder with `error-report-provider.json` and one executable entrypoint. The manifest declares a stable provider ID, publisher, semantic version, protocol version `1` and relative entrypoint. Read the [complete versioned request and acknowledgement protocol](../skills-src/ewai-error-reporting/references/provider-contract.md). The [minimal non-sending adapter](examples/error-report-adapter.md) supplies a complete manifest and executable you can validate locally. It deliberately rejects sending; it isn't a built-in vendor integration.
|
|
14
|
+
|
|
15
|
+
The entrypoint reads one `ewai.error-report-submission/v1` JSON line from stdin. It transports only the supplied immutable ZIP, then writes one `ewai.error-report-provider-ack/v1` JSON object to stdout. The acknowledgement must repeat the exact attempt ID and archive digest and provide a bounded external reference.
|
|
16
|
+
|
|
17
|
+
Keep credentials in the adapter or provider's established secure configuration. Never put them in the manifest, report, command arguments, stdout or acknowledgement.
|
|
18
|
+
|
|
19
|
+
## Validate and register
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
ewai error-report adapter-validate ./my-adapter --project . --json
|
|
23
|
+
ewai error-report adapter-register ./my-adapter --project . --yes --json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Validation checks the bounded package shape, entrypoint and digests. Registration requires explicit confirmation because the adapter becomes trusted local code. It isn't OS-sandboxed and runs with your operating-system permissions. Registration does not execute the adapter. It records the reviewed package and manifest digests, and rejects same-version digest drift.
|
|
27
|
+
|
|
28
|
+
## Send and verify
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
ewai error-report providers --project . --json
|
|
32
|
+
ewai error-report send report_example \
|
|
33
|
+
--provider example.support \
|
|
34
|
+
--expected-digest sha256:... \
|
|
35
|
+
--yes \
|
|
36
|
+
--project . \
|
|
37
|
+
--json
|
|
38
|
+
ewai error-report receipts report_example --project . --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
EWAI revalidates the registered package immediately before execution, supplies a minimal environment, disables shell interpretation, bounds time and output, and records every attempt. It creates a receipt only for an accepted acknowledgement with the exact digest.
|
|
42
|
+
|
|
43
|
+
A receipt is transport evidence, not issue resolution, security acceptance, Manual QA, certification, deployment permission or release approval. Provider dashboards remain authoritative for their own downstream workflow.
|
|
44
|
+
|
|
45
|
+
## Upgrade and recovery
|
|
46
|
+
|
|
47
|
+
Publish intentional adapter changes with a new semantic version and register that version explicitly. If execution fails, inspect the reason class and the provider's own safe logs; do not expose credentials or raw provider responses through EWAI. Retrying creates a new attempt and never rewrites history.
|
|
48
|
+
|
|
49
|
+
Deleting or archiving an EWAI report affects local material only. External provider content cannot be recalled through this interface.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# A minimal, non-sending error-report adapter
|
|
2
|
+
|
|
3
|
+
This example lets you validate an adapter package without a vendor account or network access. It **always rejects transport**. It must never report a ticket as created when nothing was sent.
|
|
4
|
+
|
|
5
|
+
For a real integration, implement transport and return acceptance only after the provider accepts the immutable ZIP. Use the [versioned request and acknowledgement contract](../../skills-src/ewai-error-reporting/references/provider-contract.md).
|
|
6
|
+
|
|
7
|
+
## Create the package
|
|
8
|
+
|
|
9
|
+
Create `example-adapter/error-report-provider.json`:
|
|
10
|
+
|
|
11
|
+
<!-- example: error-adapter-manifest -->
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"schema": "ewai.error-report-provider/v1",
|
|
15
|
+
"id": "example.support",
|
|
16
|
+
"name": "Example non-sending adapter",
|
|
17
|
+
"publisher": {"id": "example", "name": "Example Organisation"},
|
|
18
|
+
"version": "1.0.0",
|
|
19
|
+
"protocolVersion": "1",
|
|
20
|
+
"entrypoint": "bin/send-report"
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Create `example-adapter/bin/send-report`:
|
|
25
|
+
|
|
26
|
+
<!-- example: error-adapter-script -->
|
|
27
|
+
```javascript
|
|
28
|
+
#!/usr/bin/env node
|
|
29
|
+
let input = '';
|
|
30
|
+
for await (const chunk of process.stdin) {
|
|
31
|
+
input += chunk;
|
|
32
|
+
if (Buffer.byteLength(input) > 65536) process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const request = JSON.parse(input);
|
|
36
|
+
if (request.schema !== 'ewai.error-report-submission/v1' ||
|
|
37
|
+
typeof request.attemptId !== 'string' ||
|
|
38
|
+
!/^sha256:[a-f0-9]{64}$/.test(request.archiveDigest)) {
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
process.stdout.write(JSON.stringify({
|
|
42
|
+
schema: 'ewai.error-report-provider-ack/v1',
|
|
43
|
+
attemptId: request.attemptId,
|
|
44
|
+
archiveDigest: request.archiveDigest,
|
|
45
|
+
status: 'rejected',
|
|
46
|
+
externalReference: 'example-no-transport'
|
|
47
|
+
}) + '\n');
|
|
48
|
+
} catch {
|
|
49
|
+
process.exitCode = 1;
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Make the entrypoint executable and validate the folder:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
chmod +x ./example-adapter/bin/send-report
|
|
57
|
+
ewai error-report adapter-validate ./example-adapter --project . --json
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Validation reads the package and returns its identity and digests. It doesn't execute or trust the adapter. You don't need to register or submit a real report to complete this example.
|
|
61
|
+
|
|
62
|
+
## Before building real transport
|
|
63
|
+
|
|
64
|
+
The adapter receives one JSON request through stdin. Only the supplied finalised ZIP may be sent; don't collect extra logs, source or environment values. Never expose provider credentials or raw error responses through stdout.
|
|
65
|
+
|
|
66
|
+
Registration explicitly trusts local code. The process has your operating-system permissions and **isn't OS-sandboxed**. Time/output limits and a minimal environment don't change that.
|
|
67
|
+
|
|
68
|
+
A real accepted acknowledgement must repeat the exact attempt ID and archive digest and contain a bounded provider reference. Rejection, mismatches or execution errors leave a failed attempt, not a transport receipt.
|
|
69
|
+
|
|
70
|
+
Use a new version and explicit registration when adapter code changes. See the [provider guide](../error-reporting-provider-guide.md) for registration, sending and receipt inspection.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Review and promote one meeting statement
|
|
2
|
+
|
|
3
|
+
This complete example uses fictional notes in a disposable, initialised EWAI project. It demonstrates the file handoff; no meeting platform, model call or real person's approval is involved. In real work, the named people must actually review and approve the material.
|
|
4
|
+
|
|
5
|
+
## Create the source
|
|
6
|
+
|
|
7
|
+
Save this as `meeting.md` in the project:
|
|
8
|
+
|
|
9
|
+
<!-- example: meeting-source -->
|
|
10
|
+
```markdown
|
|
11
|
+
The support team agreed that the first export should include the ticket number and current status only.
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Register and prepare it:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
ewai meeting register ./meeting.md --classification internal --cloud-processing allowed --yes --project . --json
|
|
18
|
+
ewai meeting prepare <source-id> --project . --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Replace `<source-id>` with `source.sourceId` from registration. Save `source.digest` too. This example permits cloud processing only because the text is fictional. For real material, make the actual classification and processing decision before inspection.
|
|
22
|
+
|
|
23
|
+
## Prepare and review the input
|
|
24
|
+
|
|
25
|
+
In normal use, the meeting-evidence skill helps prepare candidates from the allowed source. A reviewer compares each proposed statement with the source and chooses a disposition. Here the complete one-candidate input is shown so you can see the handoff.
|
|
26
|
+
|
|
27
|
+
Save this as `meeting-review.json`, replacing the two capitalised values with registration's actual ID and digest:
|
|
28
|
+
|
|
29
|
+
<!-- example: meeting-review -->
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"bundle": {
|
|
33
|
+
"schema": "ewai.meeting-candidate-bundle/v1",
|
|
34
|
+
"sourceId": "SOURCE_ID_FROM_REGISTER",
|
|
35
|
+
"sourceDigest": "SOURCE_DIGEST_FROM_REGISTER",
|
|
36
|
+
"candidates": [
|
|
37
|
+
{
|
|
38
|
+
"id": "MEC-001",
|
|
39
|
+
"type": "decision",
|
|
40
|
+
"observedStatement": "The first export is limited to ticket identifiers and status.",
|
|
41
|
+
"interpretation": "Additional columns need a separate scope decision.",
|
|
42
|
+
"lineAnchors": [{"start": 1, "end": 1}],
|
|
43
|
+
"confidence": "high"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"dispositions": [
|
|
48
|
+
{"candidateId": "MEC-001", "decision": "accepted"}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
The observation is a concise paraphrase, not a pasted transcript excerpt. The interpretation remains distinct. For an amendment, include `replacementText` and `rationale`; rejected and deferred decisions need a rationale too. The [candidate schema](../../config/meeting-evidence-candidate.schema.json) and [implementation contract](../meeting-evidence-implementer-guide.md) specify the full boundary.
|
|
54
|
+
|
|
55
|
+
Record the review:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ewai meeting review <source-id> --input ./meeting-review.json --reviewed-by "Example reviewer" --project . --json
|
|
59
|
+
ewai meeting status <source-id> --project . --json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**At this point:** the review is saved privately, but there is no promoted evidence file. A review isn't a promotion.
|
|
63
|
+
|
|
64
|
+
## Promote the accepted statement
|
|
65
|
+
|
|
66
|
+
After the separate approval decision:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
ewai meeting promote <source-id> --yes --approved-by "Example owner" --project . --json
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Look under `SPECS/3.Evidence/meeting-evidence/<source-id>/` for `evidence.md` and `evidence.json`. They contain the accepted statement and provenance, not the raw source file. Promotion doesn't create an intent or approve Build.
|
|
73
|
+
|
|
74
|
+
If the source changes, the old digest no longer matches. Prepare and review the current material; don't replace hashes in old evidence to force it through.
|
|
75
|
+
|
|
76
|
+
Return to the [meeting guide](../meeting-evidence-user-guide.md).
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Install and select a small design-system pack
|
|
2
|
+
|
|
3
|
+
Use a disposable initialised project for this exercise. It shows the distinction between a candidate folder, an installed pack and an approved project selection. In a real project, review the guidance with its owner before selecting it.
|
|
4
|
+
|
|
5
|
+
## Create two files
|
|
6
|
+
|
|
7
|
+
Create `example-design/pack.yaml` inside the project:
|
|
8
|
+
|
|
9
|
+
<!-- example: design-manifest -->
|
|
10
|
+
```yaml
|
|
11
|
+
schema: ewai.pack/v1
|
|
12
|
+
id: org.example.product-design
|
|
13
|
+
name: Example Product Design
|
|
14
|
+
description: A small reviewed design example for a support tool.
|
|
15
|
+
version: 1.0.0
|
|
16
|
+
type: design-system
|
|
17
|
+
requires: []
|
|
18
|
+
design_system:
|
|
19
|
+
compatibility:
|
|
20
|
+
ewai: 0.x
|
|
21
|
+
provenance:
|
|
22
|
+
kind: owner-declared
|
|
23
|
+
summary: Fictional example for learning the pack workflow.
|
|
24
|
+
contributions:
|
|
25
|
+
- id: recovery
|
|
26
|
+
kind: principles
|
|
27
|
+
title: Recover from a failed action
|
|
28
|
+
source: recovery.md
|
|
29
|
+
applicability: [prototype, review]
|
|
30
|
+
required: true
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Create `example-design/recovery.md`:
|
|
34
|
+
|
|
35
|
+
<!-- example: design-content -->
|
|
36
|
+
```markdown
|
|
37
|
+
# Recover from a failed action
|
|
38
|
+
|
|
39
|
+
Keep the user's entered information when an action fails. Explain what didn't complete and provide a clear retry route. Don't show a success message until the action succeeds.
|
|
40
|
+
|
|
41
|
+
Review the error and empty states as well as the successful screen.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Validate, install, then resolve
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
ewai design-system validate ./example-design --project . --json
|
|
48
|
+
ewai design-system install ./example-design --scope project --expected-digest <digest-from-validation> --yes --project . --json
|
|
49
|
+
ewai design-system resolve org.example.product-design --project . --json
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Copy the complete `digest` value, including `sha256:`, from validation. Installation should report `installed`. Resolve the **installed ID**, not the candidate folder.
|
|
53
|
+
|
|
54
|
+
Resolve returns an `effectiveDigest` for the resolved guidance. This can differ from the candidate's installation digest. Review the dependencies and contributions before proceeding.
|
|
55
|
+
|
|
56
|
+
## Select the resolved guidance
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ewai design-system select org.example.product-design --expected-digest <effectiveDigest-from-resolve> --approved-by "Example owner" --yes --project . --json
|
|
60
|
+
ewai design-system status --project . --json
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Status should now show a selected root, and `SPECS/5.Strategy/design-system.md` records the selection. This is a tutorial selection, not evidence that a real product owner approved this example.
|
|
64
|
+
|
|
65
|
+
To apply it, you need an existing UI-bearing delivery. Continue with [application and review](../design-systems/design-system-user-guide.md#apply-it-to-ui-work); installing this pack doesn't create that delivery.
|
|
66
|
+
|
|
67
|
+
An edited candidate or changed installed content needs fresh validation and review. Don't reuse an old digest, overwrite an installed version or silently substitute the bundled fallback for the intended project pack.
|