@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,284 @@
|
|
|
1
|
+
# Governed Starter-Project Materialisation
|
|
2
|
+
|
|
3
|
+
Governed Starter-Project Materialisation turns an accepted Organisation Blueprint receipt into an immutable preview and, after named human approval, adds missing project files. It supports a single repository, a monorepo, and a workspace containing several independent Git repositories.
|
|
4
|
+
|
|
5
|
+
The capability is additive-only. It never overwrites, merges, deletes, or forces an existing destination.
|
|
6
|
+
|
|
7
|
+
> A starter source adapter is trusted local code. EWAI runs it with the invoking user's permissions and does not OS-sandbox it. EWAI independently verifies its staged output. The result is evidence, not security certification, code-quality approval, licence approval, business acceptance, or release approval.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
<!-- editorial: contents -->
|
|
11
|
+
## On this page
|
|
12
|
+
|
|
13
|
+
- [Use a supplied adapter](#use-a-supplied-adapter)
|
|
14
|
+
- [Keep four concepts separate](#keep-four-concepts-separate)
|
|
15
|
+
- [End-to-end flow](#end-to-end-flow)
|
|
16
|
+
- [Define a Starter Pack in a Blueprint](#define-a-starter-pack-in-a-blueprint)
|
|
17
|
+
- [Calculate the canonical digest](#calculate-the-canonical-digest)
|
|
18
|
+
- [Configure repository topology](#configure-repository-topology)
|
|
19
|
+
- [Implement a generic source adapter](#implement-a-generic-source-adapter)
|
|
20
|
+
- [Validate and register an adapter](#validate-and-register-an-adapter)
|
|
21
|
+
- [Prepare, review, and apply](#prepare-review-and-apply)
|
|
22
|
+
- [Understand classifications](#understand-classifications)
|
|
23
|
+
- [Persona engagement and human authority](#persona-engagement-and-human-authority)
|
|
24
|
+
- [Evidence and lifecycle handoff](#evidence-and-lifecycle-handoff)
|
|
25
|
+
- [Recovery](#recovery)
|
|
26
|
+
- [Implementer checklist](#implementer-checklist)
|
|
27
|
+
- [Related guides](#related-guides)
|
|
28
|
+
|
|
29
|
+
## Use a supplied adapter
|
|
30
|
+
|
|
31
|
+
Before starting, obtain the approved adapter package and starter receipt from its owner. EWAI doesn't ship a downloader for every source service. You'll need the accepted Blueprint, a current starter receipt and repository target mappings.
|
|
32
|
+
|
|
33
|
+
For operation, follow [repository topology](#configure-repository-topology), [validate and register](#validate-and-register-an-adapter), then [prepare, review and apply](#prepare-review-and-apply). Preview runs the trusted adapter to obtain staging files; application is the separate approved step that adds them to repositories.
|
|
34
|
+
|
|
35
|
+
If you're creating the reusable starter definition or writing the adapter, use the authoring sections below. Their code and configuration aren't extra prerequisites to implement yourself when an approved package has already been supplied.
|
|
36
|
+
|
|
37
|
+
## Keep four concepts separate
|
|
38
|
+
|
|
39
|
+
| Concept | What it owns | What it does not own |
|
|
40
|
+
| --- | --- | --- |
|
|
41
|
+
| Organisation Blueprint Pack | Organisation standards, persona templates, and Governed Starter Pack receipts | Project-specific repository placement or technology selection |
|
|
42
|
+
| Governed Starter Pack | Versioned source identity, licence, compatibility, logical target roles, and one canonical aggregate digest | Credentials, provider integration, destination roots, or approval |
|
|
43
|
+
| Technology Stack | Framework and platform guidance, constraints, commands, and patterns | Starter source provenance or local repository topology |
|
|
44
|
+
| Repository Topology | Named local Git repositories and the destination path for each logical target role | Pack content, fetching, or technology policy |
|
|
45
|
+
|
|
46
|
+
A Blueprint may recommend both a technology stack and a Starter Pack, but they remain independently reviewable decisions. A team can change its stack guidance without silently changing its starter content, or use the same starter across different repository layouts.
|
|
47
|
+
|
|
48
|
+
## End-to-end flow
|
|
49
|
+
|
|
50
|
+
1. An organisation publishes a reviewed Blueprint containing one or more `starter_packs` receipts.
|
|
51
|
+
2. Guided Discovery resolves the Blueprint, materialises its standards and project personas, and records the accepted immutable receipt.
|
|
52
|
+
3. The project maps every Starter Pack logical role to one configured repository and relative destination path.
|
|
53
|
+
4. A technical operator validates and explicitly registers an organisation-owned source adapter.
|
|
54
|
+
5. EWAI runs that trusted adapter only against a bounded staging directory.
|
|
55
|
+
6. EWAI independently inventories the staged regular files and verifies the accepted digest.
|
|
56
|
+
7. EWAI binds the receipt, adapter, topology, Git revisions, staged tree, destination classifications, and expiry into one immutable preview.
|
|
57
|
+
8. The dashboard or CLI shows safe per-target `create`, `identical`, and `conflict` counts and the actively engaged personas.
|
|
58
|
+
9. A named person approves the current preview.
|
|
59
|
+
10. EWAI revalidates every bound input, creates only missing files, persists canonical evidence, then emits a non-authoritative lifecycle event.
|
|
60
|
+
|
|
61
|
+
Preview does not change application repositories. Approval expires after 30 minutes. Drift or conflict requires a fresh preview.
|
|
62
|
+
|
|
63
|
+
## Define a Starter Pack in a Blueprint
|
|
64
|
+
|
|
65
|
+
Use `starter_packs`, not the legacy `boilerplates` field, for new packs:
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
modules:
|
|
69
|
+
- id: application-foundation
|
|
70
|
+
name: Application foundation
|
|
71
|
+
description: Organisation-owned starting content for the application.
|
|
72
|
+
required: true
|
|
73
|
+
standards: []
|
|
74
|
+
personas: []
|
|
75
|
+
starter_packs:
|
|
76
|
+
- id: service-platform
|
|
77
|
+
name: Service platform
|
|
78
|
+
source: https://source.example.invalid/service-platform-4.2.0.tar.gz
|
|
79
|
+
version: 4.2.0
|
|
80
|
+
digest: sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
81
|
+
licence: Apache-2.0
|
|
82
|
+
compatibility: EWAI 0.x; Node 22; deployment target reviewed separately
|
|
83
|
+
targets:
|
|
84
|
+
- role: api
|
|
85
|
+
source_path: services/api
|
|
86
|
+
- role: web
|
|
87
|
+
source_path: clients/web
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Every target needs a unique lowercase `role` and a non-overlapping relative `source_path`. The adapter writes the complete staged output using those source paths. Files outside exactly one declared target are rejected.
|
|
91
|
+
|
|
92
|
+
Legacy `boilerplates` remain readable as a one-role `application` receipt for compatibility. They should be migrated to explicit `starter_packs` before adding multi-target content.
|
|
93
|
+
|
|
94
|
+
## Calculate the canonical digest
|
|
95
|
+
|
|
96
|
+
Build the exact logical target folders locally, then run:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
ewai starter digest api=./reviewed/services/api web=./reviewed/clients/web --json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The returned aggregate `digest` belongs in `pack.yaml`. Each target is independently canonicalised before the role and target digest are combined. The calculation rejects:
|
|
103
|
+
|
|
104
|
+
- symbolic links, hard-link aliases, and special files;
|
|
105
|
+
- unsafe, non-NFC, reserved, trailing-dot, or case-equivalent paths;
|
|
106
|
+
- excessive depth, file size, total size, path length, or file count.
|
|
107
|
+
|
|
108
|
+
The digest represents logical content. Do not substitute an archive checksum, Git commit, release tag, or adapter-reported digest.
|
|
109
|
+
|
|
110
|
+
## Configure repository topology
|
|
111
|
+
|
|
112
|
+
Repositories are configured under `repositories`. Each must resolve to its own Git working-tree root. Targets map Starter Pack roles to those repositories.
|
|
113
|
+
|
|
114
|
+
### Single repository
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
repositories:
|
|
118
|
+
- name: application
|
|
119
|
+
path: .
|
|
120
|
+
role: application
|
|
121
|
+
starter_materialisation:
|
|
122
|
+
targets:
|
|
123
|
+
- role: application
|
|
124
|
+
repository: application
|
|
125
|
+
path: .
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Monorepo
|
|
129
|
+
|
|
130
|
+
```yaml
|
|
131
|
+
repositories:
|
|
132
|
+
- name: product
|
|
133
|
+
path: .
|
|
134
|
+
role: workspace
|
|
135
|
+
starter_materialisation:
|
|
136
|
+
targets:
|
|
137
|
+
- role: api
|
|
138
|
+
repository: product
|
|
139
|
+
path: apps/api
|
|
140
|
+
- role: web
|
|
141
|
+
repository: product
|
|
142
|
+
path: apps/web
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Folder containing several repositories
|
|
146
|
+
|
|
147
|
+
```yaml
|
|
148
|
+
repositories:
|
|
149
|
+
- name: api
|
|
150
|
+
path: services/api
|
|
151
|
+
role: service
|
|
152
|
+
- name: web
|
|
153
|
+
path: clients/web
|
|
154
|
+
role: client
|
|
155
|
+
starter_materialisation:
|
|
156
|
+
targets:
|
|
157
|
+
- role: api
|
|
158
|
+
repository: api
|
|
159
|
+
path: .
|
|
160
|
+
- role: web
|
|
161
|
+
repository: web
|
|
162
|
+
path: src
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
The last example assumes `services/api` and `clients/web` are independent Git working trees. Target destination paths may not overlap in one repository or enter protected content such as `.git`, `.ewai-pipeline`, `.codex`, `.claude`, `.agents`, the configured SPECS tree, `AGENTS.md`, `CLAUDE.md`, `.mcp.json`, `.env`, `.npmrc`, or `.netrc`.
|
|
166
|
+
|
|
167
|
+
## Implement a generic source adapter
|
|
168
|
+
|
|
169
|
+
If you're writing the adapter, use the [authoring reference](reference/starter-adapter-authoring.md) for the complete package and request/acknowledgement contracts. If your organisation supplies one, you can continue directly to validation and registration below.
|
|
170
|
+
|
|
171
|
+
## Validate and register an adapter
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
ewai starter adapter-validate ./starter-source-adapter --project . --json
|
|
175
|
+
ewai starter adapter-register ./starter-source-adapter --project . --yes --json
|
|
176
|
+
ewai starter adapters --project . --json
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Validation is read-only. Registration is an explicit trust decision. Review the publisher, source classes, entrypoint, package contents, version, and digests before `--yes`.
|
|
180
|
+
|
|
181
|
+
The dashboard intentionally cannot register an adapter because that would require sending a filesystem path and executable authority through the browser.
|
|
182
|
+
|
|
183
|
+
## Prepare, review, and apply
|
|
184
|
+
|
|
185
|
+
For the dashboard workflow, enable **Starters** in **Configuration** and save first. See [dashboard configuration](operations/dashboard-configuration.md). This only shows the workspace; adapter registration and approval to add files remain separate steps.
|
|
186
|
+
|
|
187
|
+
List the safe workspace:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
ewai starter status --project . --json
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Prepare:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
ewai starter preview \
|
|
197
|
+
org.northstar.engineering:application-foundation:service-platform \
|
|
198
|
+
--adapter northstar.approved-source \
|
|
199
|
+
--project . \
|
|
200
|
+
--yes \
|
|
201
|
+
--json
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
The preview contains per-target counts and digests, classifications, repository roles and target roots, expiry, and active personas. It contains no source URL, file body, generated filename, staging root, trusted adapter path, or raw adapter output.
|
|
205
|
+
|
|
206
|
+
Apply only the current preview:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
ewai starter apply <preview-id> \
|
|
210
|
+
--project . \
|
|
211
|
+
--yes \
|
|
212
|
+
--approved-by "Delivery Owner" \
|
|
213
|
+
--json
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
The caller cannot resend or alter the file plan. EWAI re-resolves accepted Blueprint truth and rechecks adapter bytes, target mappings, Git revisions, staged content, destination state, preview digest, and expiry.
|
|
217
|
+
|
|
218
|
+
## Understand classifications
|
|
219
|
+
|
|
220
|
+
| Classification | Meaning | Effect |
|
|
221
|
+
| --- | --- | --- |
|
|
222
|
+
| `create` | No destination exists | Eligible for additive creation after approval |
|
|
223
|
+
| `identical` | A regular destination file has the accepted content digest | Left untouched |
|
|
224
|
+
| `conflict` | A destination exists but is different, symbolic, directory, special, protected, or case-equivalent | Blocks the complete application |
|
|
225
|
+
|
|
226
|
+
EWAI never offers force or merge. Resolve a conflict deliberately outside materialisation, review the resulting project truth, then prepare a new preview.
|
|
227
|
+
|
|
228
|
+
## Persona engagement and human authority
|
|
229
|
+
|
|
230
|
+
The dashboard shows the personas engaged for the current moment and why. EWAI selects from:
|
|
231
|
+
|
|
232
|
+
- relevant project-local personas materialised from the accepted Blueprint;
|
|
233
|
+
- installed premium product, delivery, platform, or architecture personas;
|
|
234
|
+
- core operator, maintainer, end-user, and SPECS curator lenses.
|
|
235
|
+
|
|
236
|
+
Review, application, and recovery use different ensembles. Premium content is used only when already installed; this workflow never downloads or updates it.
|
|
237
|
+
|
|
238
|
+
Personas advise. They do not approve the adapter, accept the product outcome, confirm licensing, certify security, or authorise release. The `--approved-by` person or dashboard approver remains accountable for materialisation.
|
|
239
|
+
|
|
240
|
+
## Evidence and lifecycle handoff
|
|
241
|
+
|
|
242
|
+
Successful application writes exact evidence beneath:
|
|
243
|
+
|
|
244
|
+
```text
|
|
245
|
+
SPECS/3.Evidence/starter-materialisations/<attempt-id>.json
|
|
246
|
+
SPECS/3.Evidence/starter-materialisations/<attempt-id>.md
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Evidence records the approved preview, named approver, canonical tree and target digests, repository revisions, repository-relative destinations, result counts, personas, and disclaimer. It is persisted before the attempt becomes completed.
|
|
250
|
+
|
|
251
|
+
EWAI then publishes `ewai.project.starter.materialised`. The safe event contains only receipt and adapter IDs, aggregate digest, target/repository/result counts, completion time, evidence references, and safe persona projections. Hook failure cannot change materialisation truth.
|
|
252
|
+
|
|
253
|
+
## Recovery
|
|
254
|
+
|
|
255
|
+
Normal failure rolls back only content EWAI can prove it created. If a generated file changes after publication, EWAI preserves it and marks the attempt `recovery-required`.
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
ewai starter recover <attempt-id> --project . --yes --json
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Recovery is idempotent and digest-sensitive. It removes only unchanged journal-owned files and empty journal-owned directories. It never removes a changed file merely to make the attempt look clean.
|
|
262
|
+
|
|
263
|
+
## Implementer checklist
|
|
264
|
+
|
|
265
|
+
- [ ] Blueprint uses `starter_packs` with unique, non-overlapping logical targets.
|
|
266
|
+
- [ ] Canonical digest was produced from the reviewed logical target trees.
|
|
267
|
+
- [ ] Licence and compatibility were reviewed by accountable people.
|
|
268
|
+
- [ ] Project topology maps every role exactly once across real Git worktrees.
|
|
269
|
+
- [ ] Adapter package has a stable publisher, semantic version, and protocol version.
|
|
270
|
+
- [ ] Adapter receives credentials through its own approved mechanism, never from EWAI request fields.
|
|
271
|
+
- [ ] Adapter writes only regular files beneath staging and does not execute retrieved content.
|
|
272
|
+
- [ ] Adapter package validates and is explicitly registered.
|
|
273
|
+
- [ ] Preview shows zero conflicts and the expected target/repository counts.
|
|
274
|
+
- [ ] Active project, premium, and core persona lenses are appropriate for the moment.
|
|
275
|
+
- [ ] Named approval is from someone authorised to add the project foundation.
|
|
276
|
+
- [ ] Canonical evidence is retained and reviewed before any later delivery or release decision.
|
|
277
|
+
|
|
278
|
+
## Related guides
|
|
279
|
+
|
|
280
|
+
- [Designing Organisation Blueprint Packs](designing-organisation-blueprint-packs.md)
|
|
281
|
+
- [Working with personas](working-with-personas.md)
|
|
282
|
+
- [Human approval and assurance](human-approval-and-assurance-guide.md)
|
|
283
|
+
- [Troubleshooting and recovery](operations/troubleshooting-and-recovery.md)
|
|
284
|
+
- [CLI and configuration reference](reference/cli-and-configuration.md)
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Complete guide catalogue
|
|
2
|
+
|
|
3
|
+
[Back to the starting guide](README.md).
|
|
4
|
+
|
|
5
|
+
Choose the section that matches your job. The optional team tools aren't prerequisites for working on a single project. User guides explain what to do. Integration references are also useful to engineers building adapters for their own organisations; that doesn't require becoming an EWAI maintainer.
|
|
6
|
+
|
|
7
|
+
## Learning and explanation
|
|
8
|
+
|
|
9
|
+
- [Your first session](tutorials/first-session.md)
|
|
10
|
+
- [Your first delivery](tutorials/first-delivery.md)
|
|
11
|
+
- [How delivery moves through fourteen stages](explanation/delivery-workflow.md)
|
|
12
|
+
- [Core concepts](explanation/core-concepts.md)
|
|
13
|
+
- [Capabilities and project layout](reference/capabilities-and-project-layout.md)
|
|
14
|
+
|
|
15
|
+
## Everyday use: product owners, contributors and teams
|
|
16
|
+
|
|
17
|
+
- [Start a project as its Product Owner](product-owner-guide.md)
|
|
18
|
+
- [Contribute without an engineering background](adoption/non-technical-team-guide.md)
|
|
19
|
+
- [Introduce EWAI to an existing codebase](existing-project-onboarding-guide.md)
|
|
20
|
+
- [Facilitate project Discovery](guided-discovery-facilitator-guide.md)
|
|
21
|
+
- [Create or revise an intent in Intent Studio](guided-intent-workspace-guide.md)
|
|
22
|
+
- [Choose work with the Companion](context-aware-delivery-companion-user-guide.md)
|
|
23
|
+
- [Contribute information to work in progress](guided-phase-evidence-drafting-guide.md)
|
|
24
|
+
- [Review evidence from meeting notes or transcripts](meeting-evidence-user-guide.md)
|
|
25
|
+
- [Turn reviewed evidence into project documents](knowledge-proposals-user-guide.md)
|
|
26
|
+
- [Choose and create personas](working-with-personas.md)
|
|
27
|
+
- [Decide what your design system should capture](design-systems/product-owner-guide.md)
|
|
28
|
+
- [Select and apply design guidance](design-systems/design-system-user-guide.md)
|
|
29
|
+
- [Create screen prototypes](screen-prototype-creation-guide.md)
|
|
30
|
+
- [Challenge and refine prototypes with personas](persona-guided-prototype-iteration.md)
|
|
31
|
+
- [See examples of the workflow](examples/worked-examples.md)
|
|
32
|
+
- [Understand who approves what](human-approval-and-assurance-guide.md)
|
|
33
|
+
|
|
34
|
+
## Engineering and checking your own application
|
|
35
|
+
|
|
36
|
+
- [Take an intent through delivery](developer-delivery-guide.md)
|
|
37
|
+
- [Assess what a change could affect](blast-radius-and-impact-routing-guide.md)
|
|
38
|
+
- [Understand repository coverage and analysis limits](repository-source-map-guide.md)
|
|
39
|
+
- [Choose and compare investigation depth](reproducible-archaeology-and-discovery-depth.md)
|
|
40
|
+
- [Follow a worked investigation-depth example](examples/reproducible-archaeology-depth-example.md)
|
|
41
|
+
- [Review investigation depth](quality/reproducible-archaeology-depth-review-checklist.md)
|
|
42
|
+
- [Confirm technology and hosting findings](archaeology-technology-and-hosting-discovery.md)
|
|
43
|
+
- [Analyse extracted Power Platform or Salesforce source](platform-export-analysis-guide.md)
|
|
44
|
+
- [Create project standards](standards/project-standards-authoring.md)
|
|
45
|
+
- [Develop tests from evidence and persona concerns](quality/persona-driven-test-scenarios.md)
|
|
46
|
+
- [Perform Manual QA and acceptance](quality/manual-qa-and-acceptance.md)
|
|
47
|
+
- [Run and review security validation](security-validation-guide.md)
|
|
48
|
+
- [Review whether a solution has sufficient evidence](solution-readiness-review-guide.md)
|
|
49
|
+
- [Inspect model context and token estimates](context-management-and-token-efficiency.md)
|
|
50
|
+
- [Review a design against the guidance used](design-systems/design-system-review-guide.md)
|
|
51
|
+
- [Ratify corrected evidence after phase completion](completed-phase-evidence-amendments.md)
|
|
52
|
+
|
|
53
|
+
## Operating EWAI on your computer
|
|
54
|
+
|
|
55
|
+
- [Install and update the harness](operations/installation-updating-and-entitlements.md)
|
|
56
|
+
- [Set up a persona licence and get updates](operations/premium-personas-setup.md)
|
|
57
|
+
- [Choose dashboard views](operations/dashboard-configuration.md)
|
|
58
|
+
- [Inspect dashboard and delivery state](operations/dashboard-and-delivery-state.md)
|
|
59
|
+
- [Diagnose failures and recover safely](operations/troubleshooting-and-recovery.md)
|
|
60
|
+
- [Prepare and share an error report](error-reporting-guide.md)
|
|
61
|
+
- [CLI and configuration reference](reference/cli-and-configuration.md)
|
|
62
|
+
- [Error-reporting and Team Hub command details](cli-reference.md)
|
|
63
|
+
|
|
64
|
+
## Team administration and shared guidance
|
|
65
|
+
|
|
66
|
+
- [Introduce EWAI across an organisation](organisation-rollout-guide.md)
|
|
67
|
+
- [Support several clients or projects](adoption/consultancy-and-multi-project-rollout.md)
|
|
68
|
+
- [Govern delivery across a team](governance/governance-team-guide.md)
|
|
69
|
+
- [Review projects and their dependencies](project-portfolio-orchestration-guide.md)
|
|
70
|
+
- [Operate a Team Hub](team-hub-guide.md)
|
|
71
|
+
- [Publish and install shared resources](team-hub-resource-registry-guide.md)
|
|
72
|
+
- [Compare adoption across projects](consultancy-network-rollout-control-plane-guide.md)
|
|
73
|
+
- [Author an Organisation Blueprint](designing-organisation-blueprint-packs.md)
|
|
74
|
+
- [Maintain and release Blueprints](blueprints/maintaining-organisation-blueprints.md)
|
|
75
|
+
- [Validate and troubleshoot Blueprints](blueprints/validation-and-troubleshooting.md)
|
|
76
|
+
- [Maintain an internal Blueprint catalogue](blueprints/internal-blueprint-catalogue.md)
|
|
77
|
+
- [Review and apply starter files](governed-starter-project-materialisation-guide.md)
|
|
78
|
+
- [Author a reusable design-system pack](design-systems/design-system-pack-authoring-guide.md)
|
|
79
|
+
- [Write a useful persona](personas/persona-authoring-cookbook.md)
|
|
80
|
+
- [Capture organisation-specific perspectives](personas/organisation-specific-personas.md)
|
|
81
|
+
- [Maintain and govern personas](personas/persona-governance.md)
|
|
82
|
+
- [Understand the personas shown during work](personas/persona-engagement-ui.md)
|
|
83
|
+
- [Connect approved lifecycle integrations](using-lifecycle-hooks.md)
|
|
84
|
+
|
|
85
|
+
## Policy owners and reviewers
|
|
86
|
+
|
|
87
|
+
- [Set up and use optional policy design gates](policies/organisation-policy-design-gates.md)
|
|
88
|
+
- [Review policy as a Product Owner](policies/product-owner-guide.md)
|
|
89
|
+
- [Inspect policy evidence as a Technical Owner](policies/technical-owner-guide.md)
|
|
90
|
+
- [Own policy reviews and exceptions](policies/governance-owner-guide.md)
|
|
91
|
+
- [Author a policy pack](policies/policy-pack-authoring-guide.md)
|
|
92
|
+
|
|
93
|
+
## Maintaining EWAI
|
|
94
|
+
|
|
95
|
+
These references are for changing or integrating the harness itself. Run repository test commands from an EWAI development checkout, not your application's folder.
|
|
96
|
+
|
|
97
|
+
- [Verify changes to EWAI: test suites and manual walkthroughs](maintainers/verification-walkthroughs.md)
|
|
98
|
+
- [Companion operating and implementation reference](context-aware-delivery-companion-guide.md)
|
|
99
|
+
- [Knowledge-proposals implementation](knowledge-proposals-implementer-guide.md)
|
|
100
|
+
- [Meeting-evidence implementation](meeting-evidence-implementer-guide.md)
|
|
101
|
+
- [Design-system implementation](design-systems/design-system-implementation-guide.md)
|
|
102
|
+
- [Policy-gate implementation](policies/implementation-guide.md)
|
|
103
|
+
- [Persona provider and archive contracts](persona-entitlement-provider-guide.md)
|
|
104
|
+
- [Support-provider integration](error-reporting-provider-guide.md)
|
|
105
|
+
|
|
106
|
+
## Contributing to the harness
|
|
107
|
+
|
|
108
|
+
- [Source checkout and contributor commands](maintainers/contributing.md)
|
|
109
|
+
|
|
110
|
+
## Integration and maintainer references
|
|
111
|
+
|
|
112
|
+
- [Contributions local API](reference/contributions-api.md)
|
|
113
|
+
- [Starter adapter authoring](reference/starter-adapter-authoring.md)
|
|
114
|
+
- [Context benchmark regression checks](maintainers/context-benchmarks.md)
|
|
115
|
+
- [Evidence-depth feature acceptance](maintainers/evidence-depth-acceptance.md)
|
|
116
|
+
|
|
117
|
+
- [Security adapter authoring](reference/security-adapter-authoring.md)
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Guided Discovery facilitator guide
|
|
2
|
+
|
|
3
|
+
Use this guide to lead an EWAI Discovery conversation without allowing the framework—or an active persona—to become the decision-maker.
|
|
4
|
+
|
|
5
|
+
This guide is for a human facilitating a discussion with a Product Owner and other stakeholders. If you're working alone, use the [first-session tutorial](tutorials/first-session.md) instead. EWAI prepares prompts, selects relevant installed personas and drafts summaries; you make space for real participants, test the evidence and help the authorised owner review the result.
|
|
6
|
+
|
|
7
|
+
## Your outcome
|
|
8
|
+
|
|
9
|
+
At the end of Discovery, the group should be able to explain:
|
|
10
|
+
|
|
11
|
+
- why the project exists and what measurable outcome matters;
|
|
12
|
+
- who experiences the problem and who has decision authority;
|
|
13
|
+
- what is in scope, out of scope, constrained, assumed, or still unknown;
|
|
14
|
+
- which organisational standards and technology directions apply;
|
|
15
|
+
- what evidence supports each material statement;
|
|
16
|
+
- exactly what will become project truth if the owner approves.
|
|
17
|
+
|
|
18
|
+
The facilitator owns the quality of the conversation. The Product Owner owns the outcome and approval.
|
|
19
|
+
|
|
20
|
+
## Current behaviour and recommended practice
|
|
21
|
+
|
|
22
|
+
EWAI currently provides a guided, section-based Discovery flow, contextual persona selection, a Review stage, and named approval. The facilitation techniques in this guide are recommended practice: the CLI cannot guarantee that the right stakeholders attended or that the evidence is sufficient.
|
|
23
|
+
|
|
24
|
+
## Prepare before the session
|
|
25
|
+
|
|
26
|
+
Ask the Product Owner for:
|
|
27
|
+
|
|
28
|
+
1. a one-paragraph purpose statement;
|
|
29
|
+
2. the primary users and affected stakeholders;
|
|
30
|
+
3. desired outcomes and known measures;
|
|
31
|
+
4. firm boundaries and known constraints;
|
|
32
|
+
5. existing evidence, including decisions already made;
|
|
33
|
+
6. unresolved questions and disagreements;
|
|
34
|
+
7. any candidate Organisation Blueprint Pack;
|
|
35
|
+
8. the name of the person who may approve the result.
|
|
36
|
+
|
|
37
|
+
Don't infer the project's purpose from its current implementation. If inherited code is involved, first offer the owner [existing-project onboarding](existing-project-onboarding-guide.md). Archaeology is optional: if they decline, record the limits of what you've inspected and continue with the owner's Discovery answers.
|
|
38
|
+
|
|
39
|
+
## Establish the evidence hierarchy
|
|
40
|
+
|
|
41
|
+
First distinguish **what the system does** from **what it should do**. Source code and an observed run support claims about current behaviour. The accountable owner and applicable obligations determine intended rules. Neither automatically overrides the other: a working implementation can violate a requirement, and an owner's recollection can be out of date. Record the conflict, source and decision owner before resolving it.
|
|
42
|
+
|
|
43
|
+
Don't rank all sources in a single order. They answer different questions:
|
|
44
|
+
|
|
45
|
+
| Question | Sources to examine |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| What is required? | Applicable legal obligations, mandatory standards, approved constraints and requirements. An owner decision can't waive an obligation outside that person's authority. |
|
|
48
|
+
| What is intended? | Accountable human decisions, approved records and direct stakeholder or user evidence. |
|
|
49
|
+
| What happens today? | Source inspection, observed system behaviour and operational evidence. Current behaviour can expose non-compliance; it doesn't override a requirement. |
|
|
50
|
+
| What remains uncertain? | Inference, persona suggestions and model-generated hypotheses, clearly labelled for investigation. |
|
|
51
|
+
|
|
52
|
+
When these disagree, record the conflict and the person authorised to resolve it. Don't silently replace a requirement with observed behaviour or a plausible suggestion.
|
|
53
|
+
|
|
54
|
+
A persona can reveal that evidence is missing. It cannot fill the gap by pretending to be the user.
|
|
55
|
+
|
|
56
|
+
## Work with the active persona ensemble
|
|
57
|
+
|
|
58
|
+
EWAI selects a small contextual ensemble from the installed project, premium, personal, and core libraries. Selection is based on the current section and the answers already provided.
|
|
59
|
+
|
|
60
|
+
For every active persona, EWAI shows:
|
|
61
|
+
|
|
62
|
+
- its name;
|
|
63
|
+
- its source tier;
|
|
64
|
+
- the concerns that matched;
|
|
65
|
+
- why it is engaged now.
|
|
66
|
+
|
|
67
|
+
At each section transition, check the perspectives EWAI has selected with the group. Explain why their concerns matter to the discussion, and ask EWAI to reconsider the focus if an important perspective is missing. EWAI updates the selection as the subject changes; you don't need to rotate personas manually. Record any remaining gap instead of treating an imagined persona response as stakeholder testimony.
|
|
68
|
+
|
|
69
|
+
See [Persona engagement UI](personas/persona-engagement-ui.md) for the presentation contract and [Working with personas](working-with-personas.md) for source tiers.
|
|
70
|
+
|
|
71
|
+
## Facilitate one section at a time
|
|
72
|
+
|
|
73
|
+
For each topic, use the same loop:
|
|
74
|
+
|
|
75
|
+
1. **Ask:** invite the accountable person to describe the intended truth.
|
|
76
|
+
2. **Evidence:** ask how they know, where the source is, and how current it is.
|
|
77
|
+
3. **Challenge:** use relevant personas to surface omissions, risks, and alternate experiences.
|
|
78
|
+
4. **Classify:** mark statements as observed, proposed, agreed, decided, inferred, contradicted, or unknown.
|
|
79
|
+
5. **Reflect:** read back the proposed project statement in plain language.
|
|
80
|
+
6. **Confirm:** establish whether the section is ready for Review or needs follow-up.
|
|
81
|
+
|
|
82
|
+
Do not rush ambiguity into a clean-looking answer. “Unknown, owner and due date recorded” is safer than invented certainty.
|
|
83
|
+
|
|
84
|
+
## Resolve disagreement
|
|
85
|
+
|
|
86
|
+
When two sources conflict, record:
|
|
87
|
+
|
|
88
|
+
| Field | Question |
|
|
89
|
+
| --- | --- |
|
|
90
|
+
| Statements | What does each source actually say? |
|
|
91
|
+
| Authority | Who owns the decision? |
|
|
92
|
+
| Evidence | What direct evidence supports each position? |
|
|
93
|
+
| Consequence | What changes if either position is adopted? |
|
|
94
|
+
| Resolution | Was one accepted, were both bounded, or is the issue still open? |
|
|
95
|
+
| Follow-up | Who will resolve it, and by when? |
|
|
96
|
+
|
|
97
|
+
Personas may test the consequences, but a named person resolves the decision.
|
|
98
|
+
|
|
99
|
+
## Review an Organisation Blueprint
|
|
100
|
+
|
|
101
|
+
If a Blueprint is proposed, pause to review:
|
|
102
|
+
|
|
103
|
+
- publisher, identity, version, compatibility, and digest;
|
|
104
|
+
- required modules that cannot be deselected;
|
|
105
|
+
- optional modules selected for this project;
|
|
106
|
+
- standards and project persona templates that will be materialised;
|
|
107
|
+
- dependency packs and any collisions;
|
|
108
|
+
- reference-only boilerplate entries;
|
|
109
|
+
- exact destination paths and the durable project pin.
|
|
110
|
+
|
|
111
|
+
Use the [Product Owner guide](product-owner-guide.md) and [Blueprint design guide](designing-organisation-blueprint-packs.md) for the full approval contract.
|
|
112
|
+
|
|
113
|
+
## Run the final Review
|
|
114
|
+
|
|
115
|
+
The Review should show the complete proposed project truth, not a celebratory summary. Ask:
|
|
116
|
+
|
|
117
|
+
- Does this state the intended outcomes rather than merely describe a solution?
|
|
118
|
+
- Are users and stakeholders represented by evidence?
|
|
119
|
+
- Are assumptions, unknowns, and exclusions visible?
|
|
120
|
+
- Are standards proportionate to the risk?
|
|
121
|
+
- Are generated persona perspectives clearly advisory?
|
|
122
|
+
- Are all file consequences and Blueprint provenance visible?
|
|
123
|
+
- Is the named approver authorised to make this decision?
|
|
124
|
+
|
|
125
|
+
Approval is not a facilitation shortcut. If the answers are incomplete, return to the relevant section.
|
|
126
|
+
|
|
127
|
+
## Suggested session record
|
|
128
|
+
|
|
129
|
+
Capture:
|
|
130
|
+
|
|
131
|
+
- participants and decision roles;
|
|
132
|
+
- evidence reviewed;
|
|
133
|
+
- active personas by section and why they were engaged;
|
|
134
|
+
- decisions and their owners;
|
|
135
|
+
- unresolved questions, owners, and dates;
|
|
136
|
+
- Blueprint modules accepted or declined;
|
|
137
|
+
- the final Review outcome and named approval.
|
|
138
|
+
|
|
139
|
+
## Stop and escalate when
|
|
140
|
+
|
|
141
|
+
- the accountable owner is absent;
|
|
142
|
+
- regulated, security-sensitive, or personal data is being discussed without the right expertise;
|
|
143
|
+
- a persona response is being treated as user research;
|
|
144
|
+
- a Blueprint conflicts with project evidence;
|
|
145
|
+
- participants cannot distinguish a proposal from a decision;
|
|
146
|
+
- approval consequences cannot be shown exactly.
|
|
147
|
+
|
|
148
|
+
## Facilitator checklist
|
|
149
|
+
|
|
150
|
+
- [ ] Purpose, users, outcomes, boundaries, and evidence were supplied by people.
|
|
151
|
+
- [ ] Active personas and engagement reasons were visible.
|
|
152
|
+
- [ ] Personas were swapped as the subject changed.
|
|
153
|
+
- [ ] Conflicts and unknowns were retained rather than smoothed away.
|
|
154
|
+
- [ ] Blueprint consequences were inspected in full.
|
|
155
|
+
- [ ] The Review reflected the actual proposed project files.
|
|
156
|
+
- [ ] Approval was given by a named authorised person.
|
|
157
|
+
|
|
158
|
+
## Related guides
|
|
159
|
+
|
|
160
|
+
- [Product Owner guide](product-owner-guide.md)
|
|
161
|
+
- [Working with personas](working-with-personas.md)
|
|
162
|
+
- [Human approval and assurance](human-approval-and-assurance-guide.md)
|
|
163
|
+
- [Non-technical team guide](adoption/non-technical-team-guide.md)
|
|
164
|
+
|
|
165
|
+
## Current contract sources
|
|
166
|
+
|
|
167
|
+
- `src/discovery.mjs`
|
|
168
|
+
- `src/runtime/guided-discovery.mjs`
|
|
169
|
+
- `src/personas.mjs`
|
|
170
|
+
- `src/organisation-blueprints.mjs`
|
|
171
|
+
- `tests/discovery.test.mjs`
|
|
172
|
+
- `tests/guided-discovery.test.mjs`
|