@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,51 @@
|
|
|
1
|
+
# Design-system review guide
|
|
2
|
+
|
|
3
|
+
Use `$ewai-design-system-review` when a prototype or implemented surface exists. The review baseline is the immutable receipt linked by the selected artefact’s manifest, not whichever pack happens to be installed today.
|
|
4
|
+
|
|
5
|
+
Ask EWAI: “Review this interface against the design guidance used to create it.” Point to the prototype or implemented surface and its manifest. EWAI helps compare the available evidence with that recorded guidance. You review the findings and decide which need correction or a separately approved exception; the review itself doesn't approve either.
|
|
6
|
+
|
|
7
|
+
## Prepare the evidence
|
|
8
|
+
|
|
9
|
+
Collect the selected artefact, `ui-design-assets/prototypes/manifest.json`, the linked receipt, and any separate evidence from:
|
|
10
|
+
|
|
11
|
+
- source inspection;
|
|
12
|
+
- rendered viewport checks at meaningful widths;
|
|
13
|
+
- keyboard, pointer, touch, error, loading, empty, success, and recovery interaction;
|
|
14
|
+
- assistive-technology checks;
|
|
15
|
+
- representative-user research;
|
|
16
|
+
- named Manual QA;
|
|
17
|
+
- publication, deployment, or release authority.
|
|
18
|
+
|
|
19
|
+
Do not merge these channels. A source check cannot prove rendered behaviour, and a persona cannot substitute for user research. Mark missing evidence absent.
|
|
20
|
+
|
|
21
|
+
## Engage personas visibly
|
|
22
|
+
|
|
23
|
+
EWAI brings in a small group of personas relevant to the finding: product, design, accessibility, content, domain or engineering. Core, project-local and personal personas support the standard path; already installed premium personas may add depth. The review shows their names, tiers, matched concerns and reasons, not their private definitions. You can challenge the selection or ask for a missing perspective.
|
|
24
|
+
|
|
25
|
+
## Classify findings
|
|
26
|
+
|
|
27
|
+
- `aligned` — cited artefact evidence satisfies a cited receipt contribution.
|
|
28
|
+
- `approved-deviation` — a named accountable owner already approved this exact local difference in cited evidence.
|
|
29
|
+
- `unresolved` — the artefact differs, evidence conflicts, an evidence channel is missing, or no owner approval exists.
|
|
30
|
+
|
|
31
|
+
The review cannot itself make an `approved-deviation`. It should name the owner decision or correction required.
|
|
32
|
+
|
|
33
|
+
A useful report records the contribution ID and digest, artefact location, observation, evidence channel, impact, active persona references, classification, and next action.
|
|
34
|
+
|
|
35
|
+
## Example: a recovery message is missing
|
|
36
|
+
|
|
37
|
+
Suppose the applied design guidance says a failed submission must retain entered data and offer a retry. In the rendered prototype, the error state clears the form.
|
|
38
|
+
|
|
39
|
+
Record an `unresolved` finding against that contribution and the observed screen/capture. Ask the designer or engineer to preserve the input and show recovery, then inspect the revised result. A persona suggesting that correction isn't evidence the correction was made.
|
|
40
|
+
|
|
41
|
+
If a product owner intentionally chooses a different behaviour, obtain and cite their actual deviation decision. Only then can the finding be `approved-deviation`; the reviewer can't grant that status by preference.
|
|
42
|
+
|
|
43
|
+
## Route the outcome
|
|
44
|
+
|
|
45
|
+
- Fix a defect in the current delivery when the artefact fails recorded guidance.
|
|
46
|
+
- Retain an owner-approved deviation as delivery-local evidence.
|
|
47
|
+
- Propose repeatable learning to a later `$ewai-design-system-author` cycle.
|
|
48
|
+
|
|
49
|
+
Never edit an installed or upstream pack during review. Pack evolution has its own evidence, version, validation, installation, selection, and approval lifecycle.
|
|
50
|
+
|
|
51
|
+
Static conformance and tests remain advisory evidence. A named human separately decides intentional deviation, Manual QA, specialist accessibility assurance, publication, deployment, and release.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Design-system user guide
|
|
2
|
+
|
|
3
|
+
Use a design-system pack when new screens should follow the product's existing design decisions. The pack can describe components, layout, wording, accessibility and how empty or error states should behave. EWAI selects the relevant guidance for a delivery and records what it used, so the resulting prototype can be reviewed against it.
|
|
4
|
+
|
|
5
|
+
There are three separate steps: **install** makes a pack available, **select** records the owner's choice for the project, and **apply** prepares its guidance for one delivery. The application receipt records that guidance; it isn't an approval of the design.
|
|
6
|
+
|
|
7
|
+
Design systems sit alongside other EWAI tools, each with a different job:
|
|
8
|
+
|
|
9
|
+
- a technology or stack pack describes how software is engineered;
|
|
10
|
+
- an Organisation Blueprint describes organisation-owned defaults and can recommend design-system IDs;
|
|
11
|
+
- a design-system pack describes the experience, interaction, content, visual foundation, component, state, accessibility, motion, prohibited-pattern, and review guidance relevant to a user interface;
|
|
12
|
+
- personas supply temporary perspectives; they are not stored design rules or real-user evidence.
|
|
13
|
+
|
|
14
|
+
## What happens by default
|
|
15
|
+
|
|
16
|
+
Every project can resolve `ewai.design-system.default`, the bundled fallback. It gives standard LLM capabilities a useful, brand-neutral product-design baseline. You'll see it labelled **bundled fallback**: it isn't a design system approved for your project.
|
|
17
|
+
|
|
18
|
+
Premium personas are optional. You can complete this workflow with the host and included personas, alongside relevant project-local or personal guidance. Already-installed premium personas can add specialist perspectives; this workflow doesn't download them.
|
|
19
|
+
|
|
20
|
+
Ask EWAI which design system the project currently uses, or check the state directly:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
ewai design-system status --project . --json
|
|
24
|
+
ewai design-system list --project . --json
|
|
25
|
+
ewai design-system inspect ewai.design-system.default --project . --json
|
|
26
|
+
ewai design-system resolve ewai.design-system.default --project . --json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Status distinguishes `fallback`, an explicitly `selected` root, and a `stale` selection whose installed content no longer matches its approved digest.
|
|
30
|
+
|
|
31
|
+
## Select a project design system
|
|
32
|
+
|
|
33
|
+
Install the approved pack to make it available. Then resolve that pack and review the result before selecting it for this project. Selecting it records the owner's choice; applying it prepares guidance for a particular delivery.
|
|
34
|
+
|
|
35
|
+
The commands below use `org.example.product-design` throughout. If it isn't installed, follow the [complete two-file example](../examples/minimal-design-system.md), or obtain the approved candidate folder from your pack owner:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ewai design-system validate ./example-design --project . --json
|
|
39
|
+
ewai design-system install ./example-design --scope project --expected-digest <digest-from-validation> --yes --project . --json
|
|
40
|
+
ewai design-system resolve org.example.product-design --project . --json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Use validation's `digest` for installation and resolution's `effectiveDigest` for selection. Don't interchange them. After reviewing the dependency graph and contributions, a named accountable owner can select that exact result:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
ewai design-system select org.example.product-design \
|
|
47
|
+
--expected-digest sha256:<effective-digest> \
|
|
48
|
+
--approved-by "Named owner" \
|
|
49
|
+
--yes \
|
|
50
|
+
--project . \
|
|
51
|
+
--json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The selection writes a project pin and `SPECS/5.Strategy/design-system.md`. Filesystem order never grants override authority. Dependencies are explicit, and a contribution can replace another only with a qualified `pack-id:contribution-id` target.
|
|
55
|
+
|
|
56
|
+
An Organisation Blueprint recommendation remains a recommendation. It never installs or selects the named design system, and it does not copy design content into the Blueprint.
|
|
57
|
+
|
|
58
|
+
## Apply it to UI work
|
|
59
|
+
|
|
60
|
+
Application belongs to an existing UI-bearing EWAI delivery:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
ewai design-system apply customer-portal \
|
|
64
|
+
--focus "account overview, empty states and recovery" \
|
|
65
|
+
--project . \
|
|
66
|
+
--json
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
EWAI uses the existing bounded context assembler. Required contributions are mandatory; focus-matched material is relevant; other material can be deferred. The result shows selected and deferred contributions plus the active personas, including each safe reference, tier, matched signals, and engagement reason.
|
|
70
|
+
|
|
71
|
+
If mandatory content exceeds the budget, the result is `mandatory-overflow`, no model payload or receipt is created, and the recovery is to narrow the focus, explicitly increase `--budget`, or split the operation. This protects design fidelity rather than quietly saving tokens by omitting mandatory guidance.
|
|
72
|
+
|
|
73
|
+
A successful application returns immutable receipt and summary paths under:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
SPECS/6.Build/<delivery>/ui-design-assets/design-system/
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The selected prototype records those digests in `ui-design-assets/prototypes/manifest.json` using `ewai.prototype-manifest/v3`. v3 also links the immutable reviewed plan and final persona-guided rendered-design cycle. The receipt proves what shaped the artefact; the reviews preserve critique and assessment. Neither proves that the result is attractive, usable, accessible, accepted, or ready to release.
|
|
80
|
+
|
|
81
|
+
## Review and acceptance
|
|
82
|
+
|
|
83
|
+
Ask EWAI to review the prototype plan, then review the rendered design once it exists. The `ewai-prototype-iteration` skill selects relevant available personas independently for those two reviews. You assess every finding rather than treating a persona's opinion as a decision.
|
|
84
|
+
|
|
85
|
+
To check conformance, ask EWAI to compare the artefact with the design guidance recorded when it was created. The `ewai-design-system-review` skill labels each cited finding `aligned`, `approved-deviation` or `unresolved`. An approved deviation needs a separate named owner decision; neither review can create that approval.
|
|
86
|
+
|
|
87
|
+
Source inspection, rendered viewport, interaction, assistive-technology, user research, Manual QA, and release are separate evidence channels. Any channel not performed remains explicitly absent. Named humans retain approval for intentional deviations, Manual QA, publication, deployment, and release.
|
|
88
|
+
|
|
89
|
+
## Common recovery
|
|
90
|
+
|
|
91
|
+
- `fallback`: continue for early design work or ask an accountable owner to select a reviewed root.
|
|
92
|
+
- `stale`: re-resolve the installed packs and obtain a new named selection approval; never reuse the earlier digest.
|
|
93
|
+
- duplicate ID or destination: version or rename the candidate; installation will not overwrite.
|
|
94
|
+
- `mandatory-overflow`: narrow focus, increase the explicit budget, or split the surface.
|
|
95
|
+
- receipt mismatch: reapply and link the new immutable receipt; do not edit the old receipt.
|
|
96
|
+
- historical v1 or v2 manifest: it remains readable, but complete plan and rendered-design review linkage before finishing a newly stamped v3 UI Design phase.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Product owner guide to EWAI design systems
|
|
2
|
+
|
|
3
|
+
A design system helps you make the intended product experience repeatable. It is broader than visual tokens and components: it can capture the experience promise, product principles, interaction behaviour, content, meaningful states, responsiveness, accessibility, motion, prohibited patterns, and how work should be reviewed.
|
|
4
|
+
|
|
5
|
+
## Decisions you own
|
|
6
|
+
|
|
7
|
+
Start by asking EWAI to use your existing design guidance, or to help you capture it with `$ewai-design-system-author`. For example, show it the approved account page and explain that forms must use your existing components, errors must explain how to recover, and layouts must work on a phone. Review the proposed guidance before selecting it for the project. See the [user guide](design-system-user-guide.md) for selection and application.
|
|
8
|
+
|
|
9
|
+
When that guidance is applied to a delivery, EWAI saves a **receipt**: a record of the exact guidance used. You can compare the prototype with that record later, even if the shared design system has changed.
|
|
10
|
+
|
|
11
|
+
Product and design owners should decide:
|
|
12
|
+
|
|
13
|
+
- whether the bundled fallback is sufficient for early work or a project design system should be selected;
|
|
14
|
+
- which owner-declared principles are genuinely authoritative;
|
|
15
|
+
- how conflicts between observed product behaviour, research, stakeholder expectations, and inferred guidance are resolved;
|
|
16
|
+
- which guidance is mandatory and which can vary by surface;
|
|
17
|
+
- whether a delivery-local difference is an intentional approved deviation;
|
|
18
|
+
- whether repeated learning should be proposed for a future pack version;
|
|
19
|
+
- whether the completed experience passes Manual QA and is ready for the next release decision.
|
|
20
|
+
|
|
21
|
+
An Organisation Blueprint can recommend a design-system pack for a type of project. It does not make these decisions for you.
|
|
22
|
+
|
|
23
|
+
A changed digest means the guidance differs from the version you reviewed. It doesn't mean “better” or “worse”. Ask to see the changed rules and affected screens before accepting a new version; don't approve an unexplained hash.
|
|
24
|
+
|
|
25
|
+
## What you will see
|
|
26
|
+
|
|
27
|
+
During authoring and application, EWAI shows the actively engaged personas and why each is relevant. Project-local personas can preserve knowledge specific to your organisation or product; personal personas can add an individual working lens; installed premium personas can deepen specialist critique. They are advisors, not stakeholders, and premium access is never required for the basic workflow.
|
|
28
|
+
|
|
29
|
+
During application, you will see:
|
|
30
|
+
|
|
31
|
+
- whether EWAI used your selected design system or its bundled fallback;
|
|
32
|
+
- a digest identifying the exact resolved guidance;
|
|
33
|
+
- which guidance was included or left for later, and why;
|
|
34
|
+
- active personas and tiers;
|
|
35
|
+
- whether mandatory guidance exceeded the context budget;
|
|
36
|
+
- an immutable receipt for the prototype.
|
|
37
|
+
|
|
38
|
+
During review, findings are `aligned`, `approved-deviation`, or `unresolved`. Only use `approved-deviation` when a named accountable owner has already recorded that decision.
|
|
39
|
+
|
|
40
|
+
## Questions to ask
|
|
41
|
+
|
|
42
|
+
- Does this experience promise describe the outcome we want users to feel and achieve?
|
|
43
|
+
- Are important entry points, empty states, errors, recovery, and completion states covered?
|
|
44
|
+
- Are we preserving existing authoritative components instead of recreating inconsistent alternatives?
|
|
45
|
+
- Which user groups or contexts are absent from our evidence?
|
|
46
|
+
- Did anyone actually inspect the rendered viewport, interactions, keyboard path, and assistive-technology behaviour?
|
|
47
|
+
- Is a proposed exception truly local, or evidence that the design system should evolve?
|
|
48
|
+
|
|
49
|
+
Application receipts and persona reviews improve traceability, but do not approve Build, visual quality, accessibility, Manual QA, publication, deployment, or release. Keep those human decisions explicit.
|
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
# Designing Organisation Blueprint Packs
|
|
2
|
+
|
|
3
|
+
An Organisation Blueprint Pack is a reviewed, reusable starting point for projects that share an organisation's engineering standards and perspectives. It is a strict local `ewai.pack/v1` manifest plus bounded Markdown content.
|
|
4
|
+
|
|
5
|
+
Use a blueprint to say, “projects of this kind begin with these defaults.” Do not use it to remove project-level Discovery or human approval.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
<!-- editorial: contents -->
|
|
9
|
+
## On this page
|
|
10
|
+
|
|
11
|
+
- [Start with the smallest useful pack](#start-with-the-smallest-useful-pack)
|
|
12
|
+
- [What a pack can contain](#what-a-pack-can-contain)
|
|
13
|
+
- [Design the pack before writing YAML](#design-the-pack-before-writing-yaml)
|
|
14
|
+
- [Directory layout](#directory-layout)
|
|
15
|
+
- [Complete V1 manifest](#complete-v1-manifest)
|
|
16
|
+
- [Field rules](#field-rules)
|
|
17
|
+
- [Write standard content](#write-standard-content)
|
|
18
|
+
- [Write persona template content](#write-persona-template-content)
|
|
19
|
+
- [Add optional organisation policy contributions](#add-optional-organisation-policy-contributions)
|
|
20
|
+
- [Treat Starter Packs as governed receipts](#treat-starter-packs-as-governed-receipts)
|
|
21
|
+
- [Add dependencies carefully](#add-dependencies-carefully)
|
|
22
|
+
- [Install locally](#install-locally)
|
|
23
|
+
- [Know the trust and size boundaries](#know-the-trust-and-size-boundaries)
|
|
24
|
+
- [Understand digests](#understand-digests)
|
|
25
|
+
- [Review and approve in Guided Setup](#review-and-approve-in-guided-setup)
|
|
26
|
+
- [What approval creates](#what-approval-creates)
|
|
27
|
+
- [Version and publish responsibly](#version-and-publish-responsibly)
|
|
28
|
+
- [Troubleshooting](#troubleshooting)
|
|
29
|
+
- [Author checklist](#author-checklist)
|
|
30
|
+
- [Related guides](#related-guides)
|
|
31
|
+
- [Contract sources](#contract-sources)
|
|
32
|
+
|
|
33
|
+
## Start with the smallest useful pack
|
|
34
|
+
|
|
35
|
+
Choose one reviewed standard, persona or policy that several projects genuinely need. Give it an owner, add it to one module, then validate the full Blueprint in a disposable project before adoption. The [policy-only example](policies/policy-pack-authoring-guide.md#add-it-to-a-blueprint) shows a complete small manifest and source file.
|
|
36
|
+
|
|
37
|
+
Use [local installation](#install-locally) and [Guided Setup review](#review-and-approve-in-guided-setup) to try it. Dependencies, starters and optional modules are available when needed; they aren't fields you must populate with invented content.
|
|
38
|
+
|
|
39
|
+
## What a pack can contain
|
|
40
|
+
|
|
41
|
+
Each module contains zero or more of:
|
|
42
|
+
|
|
43
|
+
- **Standards** — Markdown guidance materialised into project-owned SPECS after approval.
|
|
44
|
+
- **Persona templates** — Markdown perspectives materialised as project personas after approval.
|
|
45
|
+
- **Organisation policy contributions** — strict, declarative, data-only rules resolved into an optional project design-gate baseline after named approval.
|
|
46
|
+
- **Governed Starter Packs** — provenance-bearing, target-aware receipts materialised only through an explicitly registered adapter, independent staged-tree verification, immutable preview, and named approval.
|
|
47
|
+
|
|
48
|
+
A module is either required or optional. Required modules always apply. A participant can select declared optional modules on the root pack during Guided Setup.
|
|
49
|
+
|
|
50
|
+
## Design the pack before writing YAML
|
|
51
|
+
|
|
52
|
+
Start with four decisions:
|
|
53
|
+
|
|
54
|
+
1. **Publisher identity.** Choose a stable lowercase slug, such as `northstar`. It becomes part of every pack ID and materialised persona ID.
|
|
55
|
+
2. **Pack boundary.** Group defaults that should version and be reviewed together. Prefer a focused `engineering`, `data-platform`, or `regulated-delivery` pack over a catalogue of everything the organisation knows.
|
|
56
|
+
3. **Module boundary.** Put unavoidable baseline requirements in required modules. Put genuinely situational concerns in optional modules.
|
|
57
|
+
4. **Ownership.** Name the people accountable for each standard, persona template, dependency, and Governed Starter Pack outside the manifest in your normal review process.
|
|
58
|
+
|
|
59
|
+
Do not make a rule required merely because it is popular. A required module becomes project truth when the blueprint is approved.
|
|
60
|
+
|
|
61
|
+
## Directory layout
|
|
62
|
+
|
|
63
|
+
Every discovered pack has a `pack.yaml`. Standard, persona, and policy `source` values are paths relative to that file.
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
org-northstar-engineering/
|
|
67
|
+
├── pack.yaml
|
|
68
|
+
├── standards/
|
|
69
|
+
│ ├── api.md
|
|
70
|
+
│ └── release.md
|
|
71
|
+
├── personas/
|
|
72
|
+
│ └── api-governance-lead.md
|
|
73
|
+
└── policies/
|
|
74
|
+
└── data-handling.yaml
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Starter sources do not point to local pack content. They are source references accompanied by an independently verified version, aggregate logical-tree digest, licence, compatibility statement, and target roles.
|
|
78
|
+
|
|
79
|
+
## Complete V1 manifest
|
|
80
|
+
|
|
81
|
+
This example uses every supported item type and both module modes:
|
|
82
|
+
|
|
83
|
+
```yaml
|
|
84
|
+
schema: ewai.pack/v1
|
|
85
|
+
id: org.northstar.engineering
|
|
86
|
+
name: Northstar Engineering Baseline
|
|
87
|
+
description: Reviewed engineering conventions for Northstar projects.
|
|
88
|
+
version: 1.2.0
|
|
89
|
+
type: organisation
|
|
90
|
+
requires: []
|
|
91
|
+
blueprint:
|
|
92
|
+
publisher:
|
|
93
|
+
id: northstar
|
|
94
|
+
name: Northstar Digital
|
|
95
|
+
compatibility:
|
|
96
|
+
ewai: 0.x
|
|
97
|
+
modules:
|
|
98
|
+
- id: api-conventions
|
|
99
|
+
name: API conventions
|
|
100
|
+
description: Authentication, endpoint, and error-handling rules.
|
|
101
|
+
required: true
|
|
102
|
+
standards:
|
|
103
|
+
- id: api-contract
|
|
104
|
+
title: API contract
|
|
105
|
+
source: standards/api.md
|
|
106
|
+
personas:
|
|
107
|
+
- id: api-governance-lead
|
|
108
|
+
name: API Governance Lead
|
|
109
|
+
source: personas/api-governance-lead.md
|
|
110
|
+
policies:
|
|
111
|
+
- id: data-handling
|
|
112
|
+
title: Data handling policy
|
|
113
|
+
source: policies/data-handling.yaml
|
|
114
|
+
starter_packs:
|
|
115
|
+
- id: api-service
|
|
116
|
+
name: Reviewed API service
|
|
117
|
+
source: https://example.invalid/api-service
|
|
118
|
+
version: 3.1.0
|
|
119
|
+
digest: sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
120
|
+
licence: MIT
|
|
121
|
+
compatibility: Node 22
|
|
122
|
+
targets:
|
|
123
|
+
- role: application
|
|
124
|
+
source_path: application
|
|
125
|
+
- id: delivery-assurance
|
|
126
|
+
name: Delivery assurance
|
|
127
|
+
description: Release and handover evidence for higher-risk work.
|
|
128
|
+
required: false
|
|
129
|
+
standards:
|
|
130
|
+
- id: release
|
|
131
|
+
title: Release readiness
|
|
132
|
+
source: standards/release.md
|
|
133
|
+
personas: []
|
|
134
|
+
policies: []
|
|
135
|
+
starter_packs: []
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
The schema is strict: unknown fields fail validation rather than being ignored.
|
|
139
|
+
|
|
140
|
+
## Field rules
|
|
141
|
+
|
|
142
|
+
| Field | Rule |
|
|
143
|
+
| --- | --- |
|
|
144
|
+
| `schema` | Exactly `ewai.pack/v1`. |
|
|
145
|
+
| `id` | `org.<publisher>.<pack>`. The publisher and pack segments use lowercase letters, numbers, hyphens, and supported dot-separated pack suffixes. |
|
|
146
|
+
| `version` | Exact semantic version: `major.minor.patch`. |
|
|
147
|
+
| `type` | Exactly `organisation`. |
|
|
148
|
+
| `requires` | Organisation pack IDs only. Dependencies must be installed and compatible. |
|
|
149
|
+
| `blueprint.publisher.id` | Lowercase slug and an exact match for the publisher segment in `id`. |
|
|
150
|
+
| `blueprint.compatibility.ewai` | One major line such as `0.x`. It must match the installed EWAI major version. |
|
|
151
|
+
| module `id` and item `id` | Lowercase slug; unique within their parent collection. |
|
|
152
|
+
| module `required` | Boolean. Dependencies contribute only their required modules. |
|
|
153
|
+
| standard/persona/policy `source` | Bounded relative path inside the pack; no absolute path, `..`, NUL byte, or symbolic link. |
|
|
154
|
+
| Starter Pack `digest` | Canonical aggregate target-tree digest: `sha256:` followed by 64 lowercase hexadecimal characters. |
|
|
155
|
+
| Starter Pack `targets` | One or more unique logical roles with non-overlapping bounded `source_path` values. |
|
|
156
|
+
|
|
157
|
+
`description` on the pack is optional. All module `description` values are required. A persona item may omit `name`; materialisation then uses the source name or item ID.
|
|
158
|
+
|
|
159
|
+
## Write standard content
|
|
160
|
+
|
|
161
|
+
A standard source is ordinary Markdown. Write the rule, why it exists, where it applies, and what evidence demonstrates compliance.
|
|
162
|
+
|
|
163
|
+
```markdown
|
|
164
|
+
# API contract
|
|
165
|
+
|
|
166
|
+
Use explicit compatibility rules for every externally consumed endpoint.
|
|
167
|
+
|
|
168
|
+
## Evidence
|
|
169
|
+
|
|
170
|
+
- Compatibility decision recorded in the intent.
|
|
171
|
+
- Contract tests for every supported version.
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
On approval, EWAI adds provenance frontmatter and writes the content beneath:
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
SPECS/4.Constraints/standards/organisation/<publisher>/<pack>/<module>/<standard>.md
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Write persona template content
|
|
181
|
+
|
|
182
|
+
A blueprint persona source can provide descriptive frontmatter and a practical operating body:
|
|
183
|
+
|
|
184
|
+
```markdown
|
|
185
|
+
---
|
|
186
|
+
name: API Governance Lead
|
|
187
|
+
version: 1.0.0
|
|
188
|
+
description: Applies the organisation's API compatibility and governance conventions.
|
|
189
|
+
category: architecture
|
|
190
|
+
tags:
|
|
191
|
+
- api
|
|
192
|
+
- governance
|
|
193
|
+
capabilities:
|
|
194
|
+
- api-review
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
# API Governance Lead
|
|
198
|
+
|
|
199
|
+
## Mission
|
|
200
|
+
|
|
201
|
+
Protect compatibility and make the consequences of API decisions visible.
|
|
202
|
+
|
|
203
|
+
## Questions to keep asking
|
|
204
|
+
|
|
205
|
+
- Who consumes this contract today?
|
|
206
|
+
- Which change is user-visible or irreversible?
|
|
207
|
+
|
|
208
|
+
## Boundaries
|
|
209
|
+
|
|
210
|
+
- This persona advises; accountable people approve project decisions.
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
During named approval, EWAI generates the final `ewai.persona/v1` metadata, forces the tier to `project`, adds source provenance, and writes the result beneath:
|
|
214
|
+
|
|
215
|
+
```text
|
|
216
|
+
SPECS/1.Scope/personas/project/<publisher>-<persona>.md
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
The resulting persona ID is `project.<publisher>.<persona>`.
|
|
220
|
+
|
|
221
|
+
## Add optional organisation policy contributions
|
|
222
|
+
|
|
223
|
+
Organisation Policy Design Gates are a separate Blueprint contribution from standards, personas, design systems, and Governed Starter Packs. A policy contribution is a strict `ewai.organisation-policy/v1` YAML document containing declarative rules, provenance, review roles, controls, exception posture, and an explicit unmatched outcome. It cannot contain scripts, prompts, hooks, endpoints, credentials, or other executable behaviour.
|
|
224
|
+
|
|
225
|
+
Place a policy reference in the module whose applicability it shares:
|
|
226
|
+
|
|
227
|
+
- a required module contributes its policies whenever that Blueprint is selected;
|
|
228
|
+
- an optional root module contributes its policies only when a participant selects that module;
|
|
229
|
+
- required dependency modules contribute their policies, while optional dependency modules remain unselected;
|
|
230
|
+
- a Blueprint with no selected policy contributions leaves the project in the explicit, non-blocking `not-configured` state. EWAI does not invent a default policy.
|
|
231
|
+
|
|
232
|
+
Guided Setup previews the resolved publisher, version, provenance labels, policy and rule counts, review roles, outcomes, pack pins, and exact effective digest without exposing policy bodies unnecessarily. A named person must approve that exact digest before EWAI writes the project-local policy baseline. A later upstream change can make the accepted baseline stale, but cannot rewrite it silently.
|
|
233
|
+
|
|
234
|
+
Use the [Policy Pack Authoring Guide](policies/policy-pack-authoring-guide.md) for the strict policy shape and review checklist, and [Organisation Policy Design Gates](policies/organisation-policy-design-gates.md) for the project workflow and status meanings.
|
|
235
|
+
|
|
236
|
+
> Organisation Policy Design Gates are design-time evidence only. They do not enforce production traffic, execute production code, certify compliance, approve Build or Manual QA, authorise release, or accept residual risk.
|
|
237
|
+
|
|
238
|
+
## Treat Starter Packs as governed receipts
|
|
239
|
+
|
|
240
|
+
A Starter Pack entry answers, “which reviewed starting point did we mean, and which logical parts does it contain?” Its fields must be sufficient for people and EWAI to verify the content independently.
|
|
241
|
+
|
|
242
|
+
EWAI records the entry in the Organisation Blueprint receipt. A separately reviewed, explicitly registered source adapter may later place its content in bounded staging. EWAI does **not** supply credentials, execute retrieved starter content, trust adapter-reported inventories, deploy the result, or infer release approval.
|
|
243
|
+
|
|
244
|
+
Keep technology-stack selection separate. A stack pack describes engineering guidance and tools; a Starter Pack identifies governed initial content; `starter_materialisation.targets` maps logical roles into this project's repository topology. See [Governed Starter-Project Materialisation](governed-starter-project-materialisation-guide.md).
|
|
245
|
+
|
|
246
|
+
Repository analysis is separate again. An Organisation Blueprint Pack may declare `source_map.profiles` to classify organisation-specific files and select a registered safe analyser. Profiles do not contain executable hooks or retrieve content. They compose with core, technology, stack, and project profiles, and the active catalogue remains visible in Source Map coverage. Microsoft Power Platform and Salesforce format semantics belong in their technology packs; an organisation pack may narrow repository roles or classifications but should not duplicate or execute a provider parser. See [Repository Source Map](repository-source-map-guide.md) and [platform export analysis](platform-export-analysis-guide.md).
|
|
247
|
+
|
|
248
|
+
The legacy `boilerplates` field remains readable as a one-role `application` Starter Pack receipt. Use `starter_packs` for new content and for every multi-target starter.
|
|
249
|
+
|
|
250
|
+
## Add dependencies carefully
|
|
251
|
+
|
|
252
|
+
Use `requires` when the pack cannot be understood or applied without another organisation pack.
|
|
253
|
+
|
|
254
|
+
- Dependencies resolve in deterministic dependency-first order.
|
|
255
|
+
- A missing, incompatible, or cyclic dependency blocks resolution.
|
|
256
|
+
- Required modules from dependencies apply automatically.
|
|
257
|
+
- Optional modules from dependencies are not selectable through the root pack.
|
|
258
|
+
- Only optional modules declared by the selected root pack may be enabled.
|
|
259
|
+
|
|
260
|
+
Keep dependency chains short. A pack should not hide a large and surprising policy inheritance tree.
|
|
261
|
+
|
|
262
|
+
## Install locally
|
|
263
|
+
|
|
264
|
+
You can distribute complete packs as local folders or through an organisation-operated [Team Hub resource registry](team-hub-resource-registry-guide.md). The registry supports inspecting and installing an exact version and digest; installation doesn't select or apply the Blueprint to a project.
|
|
265
|
+
|
|
266
|
+
For folder-based distribution, place the complete pack directory beneath one of these local discovery roots:
|
|
267
|
+
|
|
268
|
+
| Root | Intended ownership |
|
|
269
|
+
| --- | --- |
|
|
270
|
+
| EWAI package `packs/` | Bundled framework content maintained with EWAI. |
|
|
271
|
+
| `~/.ewai/packs/` | Content installed for the current user. |
|
|
272
|
+
| `<project>/.ewai-pipeline/packs/` | A project-local installed cache. |
|
|
273
|
+
|
|
274
|
+
The project cache should be reproducible and disposable; maintain the authoritative pack in controlled version storage outside the cache.
|
|
275
|
+
|
|
276
|
+
EWAI searches recursively for `pack.yaml` files, to a maximum depth of eight directories. If the same organisation pack ID appears in more than one root, catalogue loading fails instead of silently selecting one.
|
|
277
|
+
|
|
278
|
+
## Know the trust and size boundaries
|
|
279
|
+
|
|
280
|
+
The resolver refuses:
|
|
281
|
+
|
|
282
|
+
- symbolic links and real paths that escape the pack root;
|
|
283
|
+
- absolute or parent-traversing standard/persona/policy paths;
|
|
284
|
+
- missing or non-file content sources;
|
|
285
|
+
- manifests over 256 KiB;
|
|
286
|
+
- individual referenced files over 1 MiB;
|
|
287
|
+
- more than 5 MiB of referenced standard/persona/policy content per pack;
|
|
288
|
+
- manifests nested beyond the configured depth;
|
|
289
|
+
- invalid YAML, unknown fields, duplicates, incompatible versions, missing dependencies, and cycles.
|
|
290
|
+
|
|
291
|
+
These checks constrain what EWAI reads. They do not certify that the organisation's written standard is correct.
|
|
292
|
+
|
|
293
|
+
## Understand digests
|
|
294
|
+
|
|
295
|
+
Each pack digest covers the raw `pack.yaml` bytes plus every referenced standard/persona/policy path and its raw bytes in sorted path order. Whitespace changes therefore change the digest.
|
|
296
|
+
|
|
297
|
+
The resolved selection has a second digest covering the root pack, dependency versions and content digests, and applied modules. This lets Guided Setup detect a change between preview and approval.
|
|
298
|
+
|
|
299
|
+
Never “tidy” an installed pack after it has been reviewed and assume it is the same input. Re-preview it and review the new digest.
|
|
300
|
+
|
|
301
|
+
## Review and approve in Guided Setup
|
|
302
|
+
|
|
303
|
+
1. Start or resume Guided Setup for the project.
|
|
304
|
+
2. Choose one compatible installed Organisation Blueprint Pack.
|
|
305
|
+
3. Select only the root pack's optional modules that apply.
|
|
306
|
+
4. Review the resolved publisher, versions, digests, dependencies, applied modules, and counts of standards, personas, policy contributions, and Starter Pack receipts.
|
|
307
|
+
5. Resolve every destination conflict. Preview is write-free; Governed Starter Pack materialisation has no force or merge path.
|
|
308
|
+
6. Confirm that the active personas shown in the interface are the right lenses for this section. Blueprint persona templates do not become active project personas before approval.
|
|
309
|
+
7. Give the accountable approver's name and approve the complete Discovery result.
|
|
310
|
+
|
|
311
|
+
Immediately before writing, EWAI re-resolves the installed pack and compares the selection digest. Drift blocks approval. The transaction either writes the complete prepared result or rolls it back.
|
|
312
|
+
|
|
313
|
+
## What approval creates
|
|
314
|
+
|
|
315
|
+
Approval can create:
|
|
316
|
+
|
|
317
|
+
- organisation standards beneath `SPECS/4.Constraints/standards/organisation/`;
|
|
318
|
+
- project personas beneath `SPECS/1.Scope/personas/project/`;
|
|
319
|
+
- an optional approved policy baseline at `SPECS/4.Constraints/organisation-policy/baseline.json` when selected contributions exist;
|
|
320
|
+
- `SPECS/5.Strategy/organisation-blueprint.md`, containing the root, resolved packs, versions, digests, applied modules, approver, timestamp, and Starter Pack receipts;
|
|
321
|
+
- a structured `blueprints.organisation` pin in the configured SPECS root's `pipeline.yaml`.
|
|
322
|
+
|
|
323
|
+
The project-owned copies and receipt allow the approved baseline to remain intelligible even if the installed source later moves or changes.
|
|
324
|
+
|
|
325
|
+
## Version and publish responsibly
|
|
326
|
+
|
|
327
|
+
Use semantic versioning as an organisational promise:
|
|
328
|
+
|
|
329
|
+
- **Patch** for clarification that does not change an obligation or persona stance.
|
|
330
|
+
- **Minor** for additive optional guidance or a backward-compatible new module.
|
|
331
|
+
- **Major** for changed required behaviour, removed content, incompatible identity, or a substantially changed decision lens.
|
|
332
|
+
|
|
333
|
+
For every release:
|
|
334
|
+
|
|
335
|
+
1. review the complete diff, including whitespace-sensitive digest changes;
|
|
336
|
+
2. validate every dependency and referenced file;
|
|
337
|
+
3. independently verify each Starter Pack version, canonical target digest, licence, compatibility statement, and logical target contract;
|
|
338
|
+
4. record ownership and release approval in the pack's source repository;
|
|
339
|
+
5. test the pack in a disposable project before distribution;
|
|
340
|
+
6. communicate whether existing projects should remain pinned or deliberately adopt the new version.
|
|
341
|
+
|
|
342
|
+
## Troubleshooting
|
|
343
|
+
|
|
344
|
+
| Symptom | Likely cause | Recovery |
|
|
345
|
+
| --- | --- | --- |
|
|
346
|
+
| Pack does not appear | Wrong root, filename is not `pack.yaml`, nesting is too deep, or `type` is not `organisation` | Confirm the local root, filename, depth, and manifest type. |
|
|
347
|
+
| Manifest is invalid | Wrong field shape, unknown field, ID mismatch, duplicate ID, or malformed semantic version | Compare against the complete example and the strict field rules. |
|
|
348
|
+
| Content source is rejected | Absolute path, `..`, symbolic link, missing file, escape, or size limit | Keep real regular files inside the pack and reduce content size. |
|
|
349
|
+
| Duplicate pack ID | The same ID exists in two installed roots | Remove the stale installed copy; precedence is deliberately not guessed. |
|
|
350
|
+
| Missing or cyclic dependency | A required ID is absent or the dependency graph loops | Install the exact dependency or redesign the dependency graph. |
|
|
351
|
+
| Pack is incompatible | Its `ewai` major does not match the running package | Publish a compatible pack version or use the intended EWAI major. |
|
|
352
|
+
| Approval reports drift | Pack bytes, referenced content, dependency, or selected module changed after preview | Reopen the preview and review the new digest and consequences. |
|
|
353
|
+
| Starter preview reports conflicts | One or more destinations differ or are protected/unsafe | Review the existing project-owned truth outside materialisation, then prepare a new preview. EWAI never forces or merges. |
|
|
354
|
+
|
|
355
|
+
## Author checklist
|
|
356
|
+
|
|
357
|
+
- [ ] Stable publisher and pack IDs
|
|
358
|
+
- [ ] Exact semantic version and compatible EWAI major
|
|
359
|
+
- [ ] Focused modules with defensible required/optional choices
|
|
360
|
+
- [ ] Unique IDs in every collection
|
|
361
|
+
- [ ] Bounded standard and persona files inside the pack
|
|
362
|
+
- [ ] Persona bodies describe mission, questions, evidence, and boundaries
|
|
363
|
+
- [ ] Starter Pack targets, version, canonical digest, licence, and compatibility independently reviewed
|
|
364
|
+
- [ ] Organisation-owned adapter validated and explicitly registered before use
|
|
365
|
+
- [ ] Short, acyclic, installed dependency graph
|
|
366
|
+
- [ ] Pack tested from a local discovery root
|
|
367
|
+
- [ ] Preview consequences reviewed by the people affected
|
|
368
|
+
- [ ] Named approval and project receipt retained
|
|
369
|
+
|
|
370
|
+
## Related guides
|
|
371
|
+
|
|
372
|
+
- [Working with personas](working-with-personas.md)
|
|
373
|
+
- [Organisation Policy Design Gates](policies/organisation-policy-design-gates.md)
|
|
374
|
+
- [Policy Pack Authoring Guide](policies/policy-pack-authoring-guide.md)
|
|
375
|
+
- [Repository Source Map](repository-source-map-guide.md)
|
|
376
|
+
- [Product Owner guide](product-owner-guide.md)
|
|
377
|
+
- [All EWAI guides](README.md)
|
|
378
|
+
|
|
379
|
+
## Contract sources
|
|
380
|
+
|
|
381
|
+
- `src/organisation-blueprints.mjs` — strict manifest, roots, bounds, dependencies, digests, and safe projections
|
|
382
|
+
- `src/discovery.mjs` — preview, materialisation, provenance, drift detection, approval, pinning, and rollback
|
|
383
|
+
- `tests/organisation-blueprints.test.mjs` — valid examples and failure cases
|
|
384
|
+
- `tests/discovery.test.mjs` — no-write preview and transactional application evidence
|