@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,327 @@
|
|
|
1
|
+
# Product Owner guide
|
|
2
|
+
|
|
3
|
+
Start with the problem you want to solve, who experiences it and what a useful result would look like. You don't need every technical answer. Bring examples, explain what mustn't change, and identify the people who can answer the questions you can't.
|
|
4
|
+
|
|
5
|
+
For a new project, ask EWAI to guide you through Discovery or open **Guided Setup** in the dashboard. For one new feature in an existing project, use [Intent Studio](guided-intent-workspace-guide.md). For example: “Our operations team spends an hour combining reports before every morning review. We want them to find delayed cases in ten minutes.” That's enough to start investigating; it isn't yet an approved implementation plan.
|
|
6
|
+
|
|
7
|
+
An Organisation Blueprint is optional. If your organisation supplies one, the sections below explain how to review it. You can use EWAI without one; applicable project standards and human approvals still apply.
|
|
8
|
+
|
|
9
|
+
## Your first Discovery review
|
|
10
|
+
|
|
11
|
+
1. Explain the problem, intended users and the result you want. If this is inherited software, choose whether to investigate it through [existing-project onboarding](existing-project-onboarding-guide.md); Archaeology is optional.
|
|
12
|
+
2. Work through the Discovery sections with EWAI or your facilitator. Answer what you know, supply sources where possible and name the person who can resolve each unknown.
|
|
13
|
+
3. Check the summaries as they're drafted. Correct changed meaning, missing users and assumptions presented as facts. EWAI's persona perspectives can help expose gaps, but they aren't substitutes for your colleagues or users.
|
|
14
|
+
4. If your organisation supplies a Blueprint, review its proposed standards and modules. Otherwise, continue without one; the optional Blueprint sections below aren't a prerequisite.
|
|
15
|
+
5. At Review, inspect the actual proposed project records, destinations, constraints, unresolved questions and approval consequences. Withhold approval if a material conflict or missing specialist decision remains.
|
|
16
|
+
6. If you're the authorised approver, approve the reviewed result in your own name. That makes the agreed Discovery records project knowledge; it doesn't approve implementation.
|
|
17
|
+
|
|
18
|
+
Afterward, ask EWAI to help shape a feature intent or choose existing work to continue. The [fourteen-stage delivery guide](explanation/delivery-workflow.md) explains the later planning, Build approval, testing and human acceptance decisions. You don't need to learn the internal commands to participate.
|
|
19
|
+
|
|
20
|
+
## What you own
|
|
21
|
+
|
|
22
|
+
You are accountable for:
|
|
23
|
+
|
|
24
|
+
- the problem being addressed and why it matters now;
|
|
25
|
+
- the primary users and other people affected;
|
|
26
|
+
- the outcomes that would make the work worthwhile;
|
|
27
|
+
- the evidence used to support those claims;
|
|
28
|
+
- which organisation defaults apply to this project;
|
|
29
|
+
- which optional modules are justified;
|
|
30
|
+
- which important perspectives must be heard;
|
|
31
|
+
- whether the Review consequences are complete and accurate;
|
|
32
|
+
- the named approval or the decision to withhold it;
|
|
33
|
+
- later changes to approved project truth.
|
|
34
|
+
|
|
35
|
+
You do not need to become the technical expert for every standard. You do need to know who owns the expertise, where the evidence came from, and what remains uncertain.
|
|
36
|
+
|
|
37
|
+
## Before starting Discovery
|
|
38
|
+
|
|
39
|
+
Bring the smallest useful evidence pack:
|
|
40
|
+
|
|
41
|
+
- a plain-language problem statement;
|
|
42
|
+
- intended users and affected groups;
|
|
43
|
+
- examples of the current journey or failure;
|
|
44
|
+
- desired outcomes and useful measures;
|
|
45
|
+
- relevant organisation policies, architecture decisions, and delivery constraints;
|
|
46
|
+
- known data, security, accessibility, regulatory, operational, and commercial concerns;
|
|
47
|
+
- existing project or product documentation;
|
|
48
|
+
- named stakeholders who can validate specialist claims;
|
|
49
|
+
- unresolved disagreements rather than a falsely tidy consensus.
|
|
50
|
+
|
|
51
|
+
If evidence is confidential or restricted, follow the project's context and cloud-processing rules. Do not paste sensitive material into Discovery merely to make the conversation easier.
|
|
52
|
+
|
|
53
|
+
## Use an evidence hierarchy
|
|
54
|
+
|
|
55
|
+
Separate the authority to decide from evidence of current behaviour:
|
|
56
|
+
|
|
57
|
+
- **Requirements and obligations:** applicable policies, contractual or legal obligations, approved constraints and mandatory standards define what the project must satisfy.
|
|
58
|
+
- **Intended outcomes:** authorised owner decisions, reviewed project records and real stakeholder or user evidence explain what the work is for.
|
|
59
|
+
- **Current behaviour:** code inspection and operational observations show what happens today; they can reveal a gap but don't waive a requirement.
|
|
60
|
+
- **Organisation defaults:** a reviewed Blueprint can supply applicable standards and starting points, not approval for an unrelated project or an exception to its obligations.
|
|
61
|
+
- **Hypotheses:** persona contributions and general model suggestions identify questions to investigate, not facts to adopt without evidence.
|
|
62
|
+
|
|
63
|
+
When these conflict, investigate and involve the person with authority for that decision. Don't let a fluent persona answer overwrite real evidence or an observed implementation override a mandatory obligation.
|
|
64
|
+
|
|
65
|
+
## Decide whether an Organisation Blueprint Pack applies
|
|
66
|
+
|
|
67
|
+
This section and the module review below are only for projects considering a Blueprint. For ordinary Discovery, continue to [Read the active persona ensemble](#read-the-active-persona-ensemble).
|
|
68
|
+
|
|
69
|
+
Read [Designing Organisation Blueprint Packs](designing-organisation-blueprint-packs.md) if you need the manifest and trust details. In Guided Setup, ask:
|
|
70
|
+
|
|
71
|
+
- Is this pack published by the organisation or practice that owns these defaults?
|
|
72
|
+
- Is its identity, version, compatibility, and digest clear?
|
|
73
|
+
- Does the project genuinely fall within its intended scope?
|
|
74
|
+
- Are its dependencies expected and understandable?
|
|
75
|
+
- Do the required modules represent unavoidable obligations for this project?
|
|
76
|
+
- Which root optional modules address a real need rather than merely sounding useful?
|
|
77
|
+
- Do the persona templates represent perspectives the project should own after approval?
|
|
78
|
+
- Are the boilerplate references independently reviewed, correctly licensed, and compatible?
|
|
79
|
+
|
|
80
|
+
No installed pack is self-approving. If the required baseline is wrong for this project, stop and resolve the mismatch rather than selecting it and planning to ignore parts later.
|
|
81
|
+
|
|
82
|
+
## Review required and optional modules
|
|
83
|
+
|
|
84
|
+
Required and optional are governance choices, not UI convenience:
|
|
85
|
+
|
|
86
|
+
- A **required module** applies whenever that pack is resolved. Required dependency modules also apply.
|
|
87
|
+
- An **optional module** on the selected root pack applies only when you select it.
|
|
88
|
+
- An optional module should correspond to an actual project condition, risk, or outcome.
|
|
89
|
+
|
|
90
|
+
For each module, be able to say:
|
|
91
|
+
|
|
92
|
+
- why it applies;
|
|
93
|
+
- which standards and personas it introduces;
|
|
94
|
+
- which team owns the resulting obligations;
|
|
95
|
+
- what evidence will show that the obligations were met;
|
|
96
|
+
- what would change if the module were not selected.
|
|
97
|
+
|
|
98
|
+
## Read the active persona ensemble
|
|
99
|
+
|
|
100
|
+
Read [Working with personas](working-with-personas.md) for creation and ownership details.
|
|
101
|
+
|
|
102
|
+
During each Discovery section, the interface shows the personas currently engaged. Check the visible name, tier, matched concerns, and engagement reason.
|
|
103
|
+
|
|
104
|
+
Use that information to ask:
|
|
105
|
+
|
|
106
|
+
- Which relevant specialist or user perspective is present?
|
|
107
|
+
- Which critical real-world perspective is missing?
|
|
108
|
+
- Is a project persona being used where organisation or product context matters?
|
|
109
|
+
- Is a premium specialist adding a genuinely distinct challenge?
|
|
110
|
+
- Are several personas repeating the same generic concern?
|
|
111
|
+
- Does the engagement reason make sense for this section and the answers so far?
|
|
112
|
+
|
|
113
|
+
The ensemble can change between sections. That is intentional: relevant premium, core, personal, and local project personas are swapped in and out as the Discovery topic changes.
|
|
114
|
+
|
|
115
|
+
If an important lens is missing, do not pretend the current set is sufficient. Pause to improve or add a project persona, or bring the real stakeholder into the session.
|
|
116
|
+
|
|
117
|
+
## Assess the impact of a proposed change
|
|
118
|
+
|
|
119
|
+
For work that changes existing behaviour, use [Blast Radius and Impact Routing](blast-radius-and-impact-routing-guide.md) before accepting the implementation boundary.
|
|
120
|
+
|
|
121
|
+
Review the observed repository evidence separately from inferred consequences. Confirm whether user journeys, outcomes, public interfaces, acceptance evidence, documentation, or training may change. Inspect the active persona ensemble for useful challenges, but bring representative users and accountable specialists into the routes that require human evidence.
|
|
122
|
+
|
|
123
|
+
You may override a Product Owner or user-validation recommendation when project evidence justifies it, but the recorded rationale should name the evidence and the unchanged boundary. An impact assessment informs the decision; it does not approve Build or replace later acceptance.
|
|
124
|
+
|
|
125
|
+
## Design test scenarios with personas
|
|
126
|
+
|
|
127
|
+
Use [Persona-driven test scenarios](quality/persona-driven-test-scenarios.md) during Test Plan when user, operator, maintainer, accessibility, privacy, security, recovery, or misuse perspectives could expose missing coverage.
|
|
128
|
+
|
|
129
|
+
Review the active persona names, tiers, matched concerns, and engagement reasons, but accept an expected result only when it cites authoritative project evidence. Keep unsupported proposals as blocked scenarios or hypotheses. Confirm the evidence route and owner, and preserve Manual QA, specialist assurance, and representative-user validation as named human work.
|
|
130
|
+
|
|
131
|
+
## Keep personas in their proper role
|
|
132
|
+
|
|
133
|
+
Personas are especially useful for:
|
|
134
|
+
|
|
135
|
+
- identifying likely blind spots;
|
|
136
|
+
- generating questions for real stakeholders;
|
|
137
|
+
- exploring unhappy paths and edge cases;
|
|
138
|
+
- translating a change into role-specific consequences;
|
|
139
|
+
- challenging whether evidence is strong enough;
|
|
140
|
+
- improving acceptance criteria and test ideas.
|
|
141
|
+
|
|
142
|
+
They must not:
|
|
143
|
+
|
|
144
|
+
- invent evidence and have it recorded as fact;
|
|
145
|
+
- approve a policy, risk, release, or product decision;
|
|
146
|
+
- impersonate a real stakeholder;
|
|
147
|
+
- override authorised research or project-owned truth;
|
|
148
|
+
- conceal disagreement behind a single synthesized answer.
|
|
149
|
+
|
|
150
|
+
In notes and decisions, label persona outputs as hypotheses until evidence or an accountable person confirms them.
|
|
151
|
+
|
|
152
|
+
## Lead the Discovery conversation
|
|
153
|
+
|
|
154
|
+
For each section:
|
|
155
|
+
|
|
156
|
+
1. **State the decision.** Make clear what the project needs to learn or decide now.
|
|
157
|
+
2. **Offer evidence.** Separate what is known, inferred, assumed, and disputed.
|
|
158
|
+
3. **Inspect active personas.** Invite the lenses that add distinct value and note important absences.
|
|
159
|
+
4. **Resolve language.** Use terms the team and users actually use; record contested definitions.
|
|
160
|
+
5. **Capture boundaries.** Say what the project will not do, which risks are accepted, and where approval from others is needed.
|
|
161
|
+
6. **Confirm ownership.** Name who can validate each material claim.
|
|
162
|
+
7. **Review the draft.** Do not wait until final approval to discover that a summary has changed the meaning.
|
|
163
|
+
|
|
164
|
+
You can delegate facilitation. You cannot delegate accountability for the final product decision without explicitly changing who the approver is.
|
|
165
|
+
|
|
166
|
+
## Review before approval
|
|
167
|
+
|
|
168
|
+
The Review step should let you inspect the complete prepared consequence, not merely a summary of answers.
|
|
169
|
+
|
|
170
|
+
### Project purpose and scope
|
|
171
|
+
|
|
172
|
+
- Is the problem specific and evidenced?
|
|
173
|
+
- Are primary users and affected groups explicit?
|
|
174
|
+
- Are desired outcomes measurable enough to guide trade-offs?
|
|
175
|
+
- Are exclusions, assumptions, dependencies, and unresolved questions visible?
|
|
176
|
+
|
|
177
|
+
### Technology and standards
|
|
178
|
+
|
|
179
|
+
- Are selected technology packs and minimum standards appropriate?
|
|
180
|
+
- If a blueprint is selected, are publisher, version, compatibility, dependency order, and digests visible?
|
|
181
|
+
- Are required and selected optional modules correct?
|
|
182
|
+
- Are the destination paths and counts of standards, personas, and boilerplate receipts plausible?
|
|
183
|
+
- Are existing-file conflicts resolved deliberately?
|
|
184
|
+
|
|
185
|
+
### Persona review
|
|
186
|
+
|
|
187
|
+
- Do project personas capture local product and organisation knowledge?
|
|
188
|
+
- Are blueprint-derived personas acceptable as durable project-owned lenses?
|
|
189
|
+
- Are active persona names, tiers, and reasons visible and understandable?
|
|
190
|
+
- Is every persona's authority boundary clear?
|
|
191
|
+
|
|
192
|
+
### Assurance
|
|
193
|
+
|
|
194
|
+
- Are data, security, privacy, accessibility, availability, authentication, multi-tenancy, payments, AI, and regulatory questions answered honestly?
|
|
195
|
+
- Does `unknown` remain where the evidence is genuinely unknown, with an owner to resolve it?
|
|
196
|
+
- Are external validation choices proportionate to the risk?
|
|
197
|
+
|
|
198
|
+
### Approval consequence
|
|
199
|
+
|
|
200
|
+
- Is the approver's name correct?
|
|
201
|
+
- Is the selection digest the one you reviewed?
|
|
202
|
+
- Do you understand which SPECS files and configuration entries will be created?
|
|
203
|
+
- Is rollback expected if any part of the write fails?
|
|
204
|
+
|
|
205
|
+
Withhold approval if the Review is incomplete, the installed source changed, a conflict is unresolved, or the responsible expert has not validated a material claim.
|
|
206
|
+
|
|
207
|
+
## What named approval means
|
|
208
|
+
|
|
209
|
+
Named approval is an accountable decision to make the prepared Discovery result project truth. For a selected organisation blueprint, EWAI re-resolves the installed source and blocks the transaction if the digest has changed since preview.
|
|
210
|
+
|
|
211
|
+
Without a Blueprint, approval saves the reviewed project purpose, scope, outcomes, standards, assurance and strategy records shown in Review. It doesn't invent an organisation baseline or require a Blueprint receipt.
|
|
212
|
+
|
|
213
|
+
If you're adopting a Blueprint, approval also records its project-owned material and provenance:
|
|
214
|
+
|
|
215
|
+
- project purpose, scope, outcomes, standards, assurance, and strategy artefacts;
|
|
216
|
+
- materialised organisation standards and project personas;
|
|
217
|
+
- `SPECS/5.Strategy/organisation-blueprint.md` as a human-readable receipt;
|
|
218
|
+
- a `blueprints.organisation` pin in the configured `pipeline.yaml`;
|
|
219
|
+
- root and dependency IDs, versions, content digests, applied modules, selection digest, approver, approval time, and evidence path.
|
|
220
|
+
|
|
221
|
+
Boilerplates remain references in the receipt. Approval does not authorize EWAI to fetch or run them.
|
|
222
|
+
|
|
223
|
+
## After approval
|
|
224
|
+
|
|
225
|
+
Treat the generated files as maintained product and engineering assets:
|
|
226
|
+
|
|
227
|
+
1. Commit them with the delivery that caused the decision.
|
|
228
|
+
2. Make the receipt easy for the team to find.
|
|
229
|
+
3. Assign owners for standards, personas, unknowns, and follow-up evidence.
|
|
230
|
+
4. Use the project personas during later intent, review, testing, and retrospective work.
|
|
231
|
+
5. Revisit the blueprint when project conditions or organisation policy change.
|
|
232
|
+
6. Preserve the historical approval record even when adopting a newer pack.
|
|
233
|
+
|
|
234
|
+
An installed pack can change independently. The approved project-owned copies and pin explain what the project accepted at that moment.
|
|
235
|
+
|
|
236
|
+
## Change an approved baseline deliberately
|
|
237
|
+
|
|
238
|
+
Use this section when changing an adopted Blueprint baseline. It isn't a requirement to install a Blueprint or administer packs for every feature.
|
|
239
|
+
|
|
240
|
+
Do not silently replace generated standards or personas because a newer pack exists.
|
|
241
|
+
|
|
242
|
+
For a proposed change:
|
|
243
|
+
|
|
244
|
+
1. identify the current pin and receipt;
|
|
245
|
+
2. compare publisher, versions, digests, modules, and materialised content;
|
|
246
|
+
3. explain the product, user, delivery, and assurance consequences;
|
|
247
|
+
4. involve the real owners of affected standards and personas;
|
|
248
|
+
5. update the project intent or decision evidence;
|
|
249
|
+
6. re-run preview and resolve destination conflicts deliberately;
|
|
250
|
+
7. obtain a new named approval;
|
|
251
|
+
8. retain a reviewable history of what changed and why.
|
|
252
|
+
|
|
253
|
+
For an urgent correction, record the urgency, temporary decision, owner, expiry or review date, and follow-up work. Urgency does not turn an unreviewed persona suggestion into evidence.
|
|
254
|
+
|
|
255
|
+
## Product Owner acceptance checklist
|
|
256
|
+
|
|
257
|
+
### Purpose and people
|
|
258
|
+
|
|
259
|
+
- [ ] Problem and desired outcomes are clear
|
|
260
|
+
- [ ] Primary users and affected groups are named
|
|
261
|
+
- [ ] Real evidence, assumptions, and disagreements are distinguishable
|
|
262
|
+
- [ ] Material claims have accountable owners
|
|
263
|
+
|
|
264
|
+
### Blueprint — only when adopting one
|
|
265
|
+
|
|
266
|
+
Skip this block when you aren't adopting a Blueprint. It isn't a setup failure to work without one.
|
|
267
|
+
|
|
268
|
+
- [ ] Publisher, ID, version, compatibility, and digest are understood
|
|
269
|
+
- [ ] Dependencies are expected and acyclic
|
|
270
|
+
- [ ] Every required module is applicable
|
|
271
|
+
- [ ] Every selected optional module has a concrete reason
|
|
272
|
+
- [ ] Standards, persona templates, and boilerplate receipts have been reviewed
|
|
273
|
+
- [ ] Existing destination conflicts are resolved
|
|
274
|
+
|
|
275
|
+
### Persona acceptance
|
|
276
|
+
|
|
277
|
+
- [ ] Project-specific lenses exist where needed
|
|
278
|
+
- [ ] Active names, tiers, matched concerns, and reasons are visible
|
|
279
|
+
- [ ] Important stakeholder perspectives are not missing
|
|
280
|
+
- [ ] Persona hypotheses are not recorded as facts or approvals
|
|
281
|
+
|
|
282
|
+
### Assurance and delivery
|
|
283
|
+
|
|
284
|
+
- [ ] Unknowns remain explicit and owned
|
|
285
|
+
- [ ] Validation choices match the project's risk
|
|
286
|
+
- [ ] Exact generated files and configuration changes are visible
|
|
287
|
+
- [ ] Drift blocks approval and failure rolls back the transaction
|
|
288
|
+
|
|
289
|
+
### Decision
|
|
290
|
+
|
|
291
|
+
- [ ] The named approver is accountable for this decision
|
|
292
|
+
- [ ] The reviewed digest is the approved digest
|
|
293
|
+
- [ ] The receipt and project-owned outputs will be versioned
|
|
294
|
+
- [ ] Later change and review ownership is clear
|
|
295
|
+
|
|
296
|
+
## A lightweight session format
|
|
297
|
+
|
|
298
|
+
This is a suggested agenda, not a runtime requirement or a promised duration. Shorten it for a small project; omit Blueprint review when no Blueprint is being adopted.
|
|
299
|
+
|
|
300
|
+
For a focused Discovery workshop:
|
|
301
|
+
|
|
302
|
+
| Time | Activity | Output |
|
|
303
|
+
| --- | --- | --- |
|
|
304
|
+
| 10 minutes | Purpose, decision, evidence, and boundaries | Shared problem frame |
|
|
305
|
+
| 15 minutes | Users, stakeholders, and active persona gaps | Perspective map and interview follow-ups |
|
|
306
|
+
| Up to 15 minutes, if applicable | Blueprint and optional-module applicability | Proposed baseline with reasons |
|
|
307
|
+
| 15 minutes | Assurance and failure scenarios | Owned risks and unknowns |
|
|
308
|
+
| 15 minutes | Review exact consequences | Corrections, conflicts, and approval readiness |
|
|
309
|
+
| 5 minutes | Decide: approve, revise, or pause | Named decision and next actions |
|
|
310
|
+
|
|
311
|
+
Do not force approval to fit the meeting. “Revise” and “pause for evidence” are valid outcomes.
|
|
312
|
+
|
|
313
|
+
## Related guides
|
|
314
|
+
|
|
315
|
+
- [Designing Organisation Blueprint Packs](designing-organisation-blueprint-packs.md)
|
|
316
|
+
- [Working with personas](working-with-personas.md)
|
|
317
|
+
- [Blast Radius and Impact Routing](blast-radius-and-impact-routing-guide.md)
|
|
318
|
+
- [Persona-driven test scenarios](quality/persona-driven-test-scenarios.md)
|
|
319
|
+
- [All EWAI guides](README.md)
|
|
320
|
+
|
|
321
|
+
## Contract sources
|
|
322
|
+
|
|
323
|
+
- `src/discovery.mjs` — questionnaire, preview, conflicts, named approval, materialisation, pinning, drift, and rollback
|
|
324
|
+
- `src/runtime/guided-discovery.mjs` — drafts, active personas, Review preparation, and approval service boundary
|
|
325
|
+
- `src/organisation-blueprints.mjs` — safe blueprint projection, compatibility, dependencies, and selection digest
|
|
326
|
+
- `src/personas.mjs` — project-persona ownership and advisory boundary template
|
|
327
|
+
- `tests/discovery.test.mjs` and `tests/guided-discovery.test.mjs` — executable Discovery and approval evidence
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# Project and Portfolio Orchestration guide
|
|
2
|
+
|
|
3
|
+
Use Project and Portfolio Orchestration when one outcome depends on several EWAI projects and you need a safe programme-level view of ownership, declared dependencies, evidence freshness and attention. The capability is read-only. Each child project remains authoritative for its own delivery state, approvals, Manual QA, risk and release decisions.
|
|
4
|
+
|
|
5
|
+
The Portfolio workspace uses standard host LLM capabilities for its advisory review. Installed project and core personas give it better project context; installed relevant premium or personal personas can enrich the active ensemble. Premium access is optional and never blocks the baseline.
|
|
6
|
+
|
|
7
|
+
## What the capability produces
|
|
8
|
+
|
|
9
|
+
`ewai portfolio status` produces an `ewai.portfolio-workspace/v1` snapshot containing:
|
|
10
|
+
|
|
11
|
+
- the portfolio → programme → project hierarchy;
|
|
12
|
+
- owners and safe repository-relative member identities;
|
|
13
|
+
- declared project-to-project dependencies and their owners;
|
|
14
|
+
- bounded child intent and delivery-state evidence;
|
|
15
|
+
- missing, stale, unavailable and Markdown/JSON disagreement attention;
|
|
16
|
+
- the active persona name, tier, matched signals and engagement reason;
|
|
17
|
+
- standard LLM review questions and explicit evidence classes; and
|
|
18
|
+
- mandatory advisory and security-assurance notices.
|
|
19
|
+
|
|
20
|
+
The snapshot does not copy child documents into a central store. It does not create a health score, schedule work, mutate a child project or approve anything.
|
|
21
|
+
|
|
22
|
+
## Before configuring a portfolio
|
|
23
|
+
|
|
24
|
+
Every project member must already be beneath a repository root configured in the host project’s `SPECS/pipeline.yaml`. The host may be a project itself or a lightweight portfolio workspace. Initialise child EWAI projects normally so each has its own `.ewai-pipeline/project.json`, configured SPECS root and `SPECS/pipeline.yaml`.
|
|
25
|
+
|
|
26
|
+
Repository names in the portfolio manifest refer to the host’s configured `repositories` list. Paths are workspace-relative and are resolved without symbolic traversal. Absolute paths and `..` traversal are rejected.
|
|
27
|
+
|
|
28
|
+
## Supported repository shapes
|
|
29
|
+
|
|
30
|
+
### Single repository
|
|
31
|
+
|
|
32
|
+
The host and project can be the same repository. Configure one repository named `application`, then point the project member to `project_path: .`.
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
repositories:
|
|
36
|
+
- name: application
|
|
37
|
+
path: .
|
|
38
|
+
role: application
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Monorepo
|
|
42
|
+
|
|
43
|
+
Configure the monorepo root once and use bounded project subfolders. Each subfolder is an independently initialised EWAI project if it owns distinct delivery state.
|
|
44
|
+
|
|
45
|
+
```yaml
|
|
46
|
+
repositories:
|
|
47
|
+
- name: product-monorepo
|
|
48
|
+
path: .
|
|
49
|
+
role: application
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Portfolio members can then use `project_path: services/api`, `project_path: clients/web`, and similar relative locations.
|
|
53
|
+
|
|
54
|
+
### Folder containing multiple Git repositories
|
|
55
|
+
|
|
56
|
+
The EWAI host can sit in a parent folder containing multiple Git repositories. Configure each child repository by name, keeping every path beneath the host workspace:
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
repositories:
|
|
60
|
+
- name: api
|
|
61
|
+
path: repositories/customer-api
|
|
62
|
+
role: service
|
|
63
|
+
- name: web
|
|
64
|
+
path: repositories/customer-web
|
|
65
|
+
role: client
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Use `project_path: .` for each project when its EWAI root is the root of that child repository.
|
|
69
|
+
|
|
70
|
+
### Separate configured repositories
|
|
71
|
+
|
|
72
|
+
A programme can combine projects from several separately configured repositories and subfolders:
|
|
73
|
+
|
|
74
|
+
```yaml
|
|
75
|
+
repositories:
|
|
76
|
+
- name: platforms
|
|
77
|
+
path: repositories/platforms
|
|
78
|
+
role: platform
|
|
79
|
+
- name: operations
|
|
80
|
+
path: repositories/operations
|
|
81
|
+
role: operations
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Members may use `repository: platforms` with `project_path: identity` and `repository: operations` with `project_path: service-transition`. Repository boundaries stay explicit even when the projects contribute to one programme.
|
|
85
|
+
|
|
86
|
+
Sibling or external paths outside the configured host workspace are deliberately unsupported. Move the host to a safe common parent or create a bounded workspace layout rather than using traversal.
|
|
87
|
+
|
|
88
|
+
## Create the portfolio manifest
|
|
89
|
+
|
|
90
|
+
Create `SPECS/1.Scope/portfolio.yaml` in the host’s configured SPECS root:
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
schema: ewai.portfolio/v1
|
|
94
|
+
id: customer-transformation
|
|
95
|
+
name: Customer transformation
|
|
96
|
+
owner: Transformation Director
|
|
97
|
+
members:
|
|
98
|
+
- id: customer-transformation
|
|
99
|
+
kind: portfolio
|
|
100
|
+
name: Customer transformation
|
|
101
|
+
owner: Transformation Director
|
|
102
|
+
- id: digital-service
|
|
103
|
+
kind: programme
|
|
104
|
+
name: Digital service programme
|
|
105
|
+
owner: Programme Director
|
|
106
|
+
parent: customer-transformation
|
|
107
|
+
- id: client-portal
|
|
108
|
+
kind: project
|
|
109
|
+
name: Client portal
|
|
110
|
+
owner: Product Owner
|
|
111
|
+
parent: digital-service
|
|
112
|
+
repository: product-monorepo
|
|
113
|
+
project_path: clients/web
|
|
114
|
+
- id: identity-service
|
|
115
|
+
kind: project
|
|
116
|
+
name: Identity service
|
|
117
|
+
owner: Platform Owner
|
|
118
|
+
parent: digital-service
|
|
119
|
+
repository: product-monorepo
|
|
120
|
+
project_path: services/identity
|
|
121
|
+
dependencies:
|
|
122
|
+
- id: portal-needs-identity
|
|
123
|
+
from: client-portal
|
|
124
|
+
to: identity-service
|
|
125
|
+
rationale: Portal authentication depends on the identity service contract.
|
|
126
|
+
owner: Programme Director
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
There must be exactly one root portfolio. Programmes and projects require a parent; only projects declare repository and project path. Dependencies join projects only and must be acyclic. Limits are 100 members, 400 dependencies and hierarchy depth 8.
|
|
130
|
+
|
|
131
|
+
For this example, `product-monorepo` must be the configured repository containing the already-initialised `clients/web` and `services/identity` EWAI projects. It isn't a pack ID. Keep `portal-needs-identity` separate from a discovered code dependency: the manifest records what the programme owner declares.
|
|
132
|
+
|
|
133
|
+
## Validate and inspect
|
|
134
|
+
|
|
135
|
+
Run validation before asking for analysis:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
ewai portfolio validate --project . --json
|
|
139
|
+
ewai portfolio status --project . --json
|
|
140
|
+
ewai portfolio status --focus "identity dependency and Manual QA ownership" --project . --json
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Agent hosts can retrieve the same safe snapshot through the read-only MCP tool `ewai_portfolio_status`. The optional focus is bounded to 500 characters and helps EWAI swap in the relevant installed personas for that particular review.
|
|
144
|
+
|
|
145
|
+
In this example, check that both `client-portal` and `identity-service` were found, whether their evidence is current, and who owns `portal-needs-identity`. A missing child project is an attention item—not proof that the dependency is healthy. Open the owning project to resolve it; portfolio status doesn't repair or approve that child.
|
|
146
|
+
|
|
147
|
+
Neither interface accepts a root override or a write action. Re-running status never changes the manifest or child SPECS.
|
|
148
|
+
|
|
149
|
+
## Use the Portfolio workspace
|
|
150
|
+
|
|
151
|
+
Enable **Portfolio** in **Configuration** and save, then select **Portfolio** in the sidebar. See [dashboard configuration](operations/dashboard-configuration.md). The programme line shows hierarchy, owner, evidence state, current child phase and Manual QA status. Select a member or declared dependency to update the local context rail; the selection is retained in the page URL but is not written to a project.
|
|
152
|
+
|
|
153
|
+
The dependencies section deliberately separates **Declared dependency** from **Observed evidence**. V1 does not yet project bounded cross-project Source Map edges, so observed dependency evidence is shown as unavailable rather than inferred from the declaration.
|
|
154
|
+
|
|
155
|
+
The context rail shows the named route for each attention item. There are no approve, edit, build, dispatch, deploy or release controls in this workspace.
|
|
156
|
+
|
|
157
|
+
## Use standard LLM reasoning and personas
|
|
158
|
+
|
|
159
|
+
Invoke `$ewai-portfolio`, or give your host the safe JSON snapshot and ask it to review the returned questions. The review should proceed in this order:
|
|
160
|
+
|
|
161
|
+
1. `declared`: hierarchy, ownership and declared dependencies;
|
|
162
|
+
2. `observed`: bounded child evidence, freshness and disagreement;
|
|
163
|
+
3. `inferred`: model-derived consequences that still require confirmation;
|
|
164
|
+
4. `persona-hypothesis`: concerns raised through an active persona lens; and
|
|
165
|
+
5. `human-decision`: only decisions actually recorded by named accountable people.
|
|
166
|
+
|
|
167
|
+
The standard host model is enough to perform this method. Project and core personas improve its framing with local and EWAI responsibilities. When an installed premium or personal persona is relevant, it appears in the active ensemble with its tier and engagement reason. If the focus changes, retrieve the snapshot again so personas can swap in and out rather than accumulating.
|
|
168
|
+
|
|
169
|
+
Missing premium personas are informative and nonblocking. Portfolio review does not install, fetch, synchronise, copy or approximate premium content. Personas remain advisory lenses and cannot substitute for user evidence, specialist validation or accountable approval.
|
|
170
|
+
|
|
171
|
+
## Read attention and recovery states
|
|
172
|
+
|
|
173
|
+
| State or diagnostic | Meaning | Recovery |
|
|
174
|
+
| --- | --- | --- |
|
|
175
|
+
| `not-configured` | The canonical manifest is missing. | Create and review the manifest if you have authority. |
|
|
176
|
+
| `invalid` | Schema or topology validation failed. | Fix the reported stable code and safe field path, then validate again. |
|
|
177
|
+
| `missing` | No readable child delivery state exists. | Check that the child is initialised and its configured SPECS root is correct. |
|
|
178
|
+
| `stale` | Child delivery evidence is older than the 30-day default window. | Refresh the child through its normal EWAI workflow; do not edit the aggregate. |
|
|
179
|
+
| `disagreement` | Markdown and structured intent status differ. | Reconcile authoritative child intent state before relying on it. |
|
|
180
|
+
| `unavailable` | Child configuration or bounded evidence could not be read. | Inspect the named child project and keep the uncertainty visible. |
|
|
181
|
+
| `portfolio.duplicate-root` | Two members resolve to the same real root. | Keep one member or point each member at a distinct EWAI project. |
|
|
182
|
+
| `portfolio.symbolic-path` | A repository or project path crosses a symbolic link. | Use a real path beneath the configured repository. |
|
|
183
|
+
| `portfolio.unsafe-path` | A path is absolute, traverses upward or escapes its root. | Replace it with a bounded repository-relative path. |
|
|
184
|
+
|
|
185
|
+
Other stable diagnostics cover duplicate IDs, missing parents/targets, invalid member kinds, hierarchy cycles, dependency cycles and resource limits. Invalid configuration fails closed and exposes no absolute path.
|
|
186
|
+
|
|
187
|
+
## Assurance and human authority
|
|
188
|
+
|
|
189
|
+
The dashboard, CLI, MCP tool and skill always preserve this boundary:
|
|
190
|
+
|
|
191
|
+
> Portfolio and persona analysis is advisory. Child project approvals, accepted risk, Manual QA and release decisions remain with named accountable humans.
|
|
192
|
+
|
|
193
|
+
Portfolio findings aren't a security assessment. If they expose a security concern, follow the owning project's [security validation workflow](security-validation-guide.md) and its human review requirements.
|
|
194
|
+
|
|
195
|
+
Route each unresolved concern to the member or dependency owner. Review cannot approve Build or Manual QA, accept risk, certify security, change release readiness or mutate a child project.
|
|
196
|
+
|
|
197
|
+
## Current exclusions
|
|
198
|
+
|
|
199
|
+
V1 does not include portfolio editing, scheduling, work dispatch, cross-project writes, embedded model/provider clients, connectors, meeting or transcript ingestion, automated observed dependency edges, deployment or release.
|