@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,198 @@
|
|
|
1
|
+
# Context-Aware Delivery Companion
|
|
2
|
+
|
|
3
|
+
This reference is for integration authors and engineers changing the Companion. For choosing and continuing work, start with the [Companion user guide](context-aware-delivery-companion-user-guide.md). The sections below describe the operating contract, ranking and implementation boundaries; they aren't additional setup steps for application teams.
|
|
4
|
+
|
|
5
|
+
The Context-Aware Delivery Companion answers four practical questions from the
|
|
6
|
+
current governed project state:
|
|
7
|
+
|
|
8
|
+
1. What deserves attention now?
|
|
9
|
+
2. Why does it deserve attention?
|
|
10
|
+
3. Who can decide what happens next?
|
|
11
|
+
4. Which installed personas are actively helping to examine this context?
|
|
12
|
+
|
|
13
|
+
It is a read-only advisory layer over EWAI's existing execution contract. It does
|
|
14
|
+
not create delivery permission, approve Build, complete Manual QA, accept risk,
|
|
15
|
+
dispose of security findings, deploy or release software.
|
|
16
|
+
|
|
17
|
+
> Companion and persona guidance is advisory. It cannot create delivery
|
|
18
|
+
> permission, user evidence, specialist assurance or human acceptance.
|
|
19
|
+
|
|
20
|
+
> Security validation is evidence, not certification or proof that this system is
|
|
21
|
+
> secure. Tools can miss vulnerabilities and produce false positives. A qualified
|
|
22
|
+
> human must review the scope, findings, limitations and residual risk before
|
|
23
|
+
> release.
|
|
24
|
+
|
|
25
|
+
## The shared contract
|
|
26
|
+
|
|
27
|
+
Check-in, CLI, MCP, HTTP and the dashboard use the same
|
|
28
|
+
`ewai.companion-guidance/v1` projection. The projection is bounded to eight
|
|
29
|
+
recommendations, four actively engaged personas and 500 focus characters.
|
|
30
|
+
|
|
31
|
+
It exposes only safe delivery identity, state, phase, progress, reason,
|
|
32
|
+
accountable route, evidence classes, bounded blockers and an optional guarded
|
|
33
|
+
handoff. It does not expose raw intent bodies, SPECS roots, credentials, security
|
|
34
|
+
findings, disposition records, test output, model prompts or persona definitions.
|
|
35
|
+
|
|
36
|
+
The four recommendation classes are:
|
|
37
|
+
|
|
38
|
+
| Class | Meaning | Who or what moves it |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| `human-decision` | Manual QA or another explicit human authority gate is next. | The named accountable reviewer or project owner. |
|
|
41
|
+
| `continue` | The current governed harness can move forward. | The existing EWAI delivery harness after it rechecks permission. |
|
|
42
|
+
| `start` | A prepared intent can enter governed delivery. | The existing EWAI delivery harness after it rechecks permission. |
|
|
43
|
+
| `blocked` | No governed start or continue route is available. | The named delivery owner resolves the first evidenced blocker. |
|
|
44
|
+
|
|
45
|
+
The class is derived from `execution.actions`, not from a board lane on its own.
|
|
46
|
+
Human decisions outrank continuation, continuation outranks starts, and blocked
|
|
47
|
+
work remains visible without being presented as executable.
|
|
48
|
+
|
|
49
|
+
## Use the dashboard
|
|
50
|
+
|
|
51
|
+
Open the project-local dashboard and choose **Companion**. The decision runway
|
|
52
|
+
shows the current ranked recommendations. Select a card to replace the selected
|
|
53
|
+
context, active personas and review questions with a fresh server-owned snapshot.
|
|
54
|
+
|
|
55
|
+
The right-hand context panel shows:
|
|
56
|
+
|
|
57
|
+
- the observed phase and progress;
|
|
58
|
+
- why the item is ranked there;
|
|
59
|
+
- the accountable route;
|
|
60
|
+
- bounded blockers and evidence classes;
|
|
61
|
+
- whether a guarded begin or continue handoff exists;
|
|
62
|
+
- the personas actively engaged for this focus;
|
|
63
|
+
- questions for the accountable person.
|
|
64
|
+
|
|
65
|
+
At 960px the context panel moves below the runway. At 600px the card metadata and
|
|
66
|
+
facts stack. Recommendation class and permission remain visible in text, so colour
|
|
67
|
+
is never the only status signal.
|
|
68
|
+
|
|
69
|
+
### Apply focus
|
|
70
|
+
|
|
71
|
+
Focus is optional and can be an intent identity, decision or delivery concern. It
|
|
72
|
+
is deliberately submitted, limited to 500 characters and returned in the safe
|
|
73
|
+
contract. Applying or clearing focus replaces the active ensemble and questions;
|
|
74
|
+
the dashboard does not accumulate perspectives from previous selections.
|
|
75
|
+
|
|
76
|
+
Selecting a recommendation applies its safe identity as focus. This gives the
|
|
77
|
+
server another opportunity to rank the item and select relevant personas rather
|
|
78
|
+
than allowing the browser to pretend an old ensemble is still engaged.
|
|
79
|
+
|
|
80
|
+
### Use a handoff
|
|
81
|
+
|
|
82
|
+
A begin or continue button appears only when the current projection identifies the
|
|
83
|
+
corresponding governed handoff. Clicking it opens the existing dashboard handoff
|
|
84
|
+
dialog. Submission calls the established work-item handoff route, which rechecks
|
|
85
|
+
the current execution action before recording the selection.
|
|
86
|
+
|
|
87
|
+
The handoff does not begin code or change a phase. Return to the EWAI conversation
|
|
88
|
+
and use the canonical delivery skill to claim and process it. Human-decision and
|
|
89
|
+
blocked recommendations have no direct execution button.
|
|
90
|
+
|
|
91
|
+
## Use CLI, MCP and HTTP
|
|
92
|
+
|
|
93
|
+
Read the same projection from the CLI:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
ewai companion status --project . --json
|
|
97
|
+
ewai companion status --focus "Manual QA ownership" --project . --json
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Agent integrations use the read-only MCP tool:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
ewai_companion_status
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Its optional `focus` argument has the same 500-character limit. The tool exposes no
|
|
107
|
+
companion write, approval, Build or release operation.
|
|
108
|
+
|
|
109
|
+
The project-local loopback dashboard reads:
|
|
110
|
+
|
|
111
|
+
```http
|
|
112
|
+
GET /api/companion
|
|
113
|
+
GET /api/companion?focus=Manual%20QA%20ownership
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The server owns the project root. Unknown query parameters, oversized focus and
|
|
117
|
+
unsafe control characters are rejected. POST is not supported.
|
|
118
|
+
|
|
119
|
+
## Check-in spotlight
|
|
120
|
+
|
|
121
|
+
`ewai checkin --json` retains the mandatory numbered Companion opening and adds a
|
|
122
|
+
bounded `companion.spotlight`, `companion.activePersonas` and the invariant notices.
|
|
123
|
+
Render the status first, then the returned heading and every `[id] label`. When a
|
|
124
|
+
spotlight exists, identify it as advisory, name its accountable route and show the
|
|
125
|
+
active persona names and tiers. End with the exact returned closing prompt.
|
|
126
|
+
|
|
127
|
+
The spotlight is advisory context, not a replacement for the returned actions.
|
|
128
|
+
**[6] Continue a piece of work** appears when work exists. **[7] Read about premium
|
|
129
|
+
personas** and **[8] Set up premium personas** appear only when premium access
|
|
130
|
+
isn't active. **[9] Configure the dashboard** remains available. Configuration also
|
|
131
|
+
provides licence management when the setup prompts are hidden.
|
|
132
|
+
|
|
133
|
+
## Persona behaviour
|
|
134
|
+
|
|
135
|
+
The Standard host-model baseline plus installed project and core personas is a
|
|
136
|
+
complete operating baseline. Relevant installed personal and premium personas can
|
|
137
|
+
add specialist depth. Their installed tier, matched signals and engagement reason
|
|
138
|
+
are visible whenever they are actively selected.
|
|
139
|
+
|
|
140
|
+
Companion reads never install, update, synchronise or imitate premium content. If
|
|
141
|
+
no premium library is installed, the response says so and continues normally. Use
|
|
142
|
+
the separately consented premium sync process only when the user explicitly asks
|
|
143
|
+
for it.
|
|
144
|
+
|
|
145
|
+
Personas are lenses. They may frame questions, expose blind spots and improve the
|
|
146
|
+
quality of a discussion. They are not stakeholder research, validation evidence,
|
|
147
|
+
legal approval, security certification, user acceptance or accountable human
|
|
148
|
+
judgement.
|
|
149
|
+
|
|
150
|
+
## Implementation guide
|
|
151
|
+
|
|
152
|
+
Integrations should depend on the public projection rather than reclassifying work
|
|
153
|
+
items independently:
|
|
154
|
+
|
|
155
|
+
1. Resolve the project through the existing EWAI locator.
|
|
156
|
+
2. Load current work through the governed `listWorkItems` projection.
|
|
157
|
+
3. Derive recommendation classes from permitted execution actions.
|
|
158
|
+
4. Rank deterministically and apply bounded focus.
|
|
159
|
+
5. Select active personas from installed project, core, personal and premium
|
|
160
|
+
metadata only.
|
|
161
|
+
6. Return only the `ewai.companion-guidance/v1` allowlist.
|
|
162
|
+
7. Delegate begin and continue to the existing guarded handoff route.
|
|
163
|
+
8. Keep approval, Manual QA, security disposition, deployment and release outside
|
|
164
|
+
the Companion.
|
|
165
|
+
|
|
166
|
+
Do not add browser model calls or model credentials. The host model interprets the
|
|
167
|
+
bounded snapshot in conversation. The dashboard presents deterministic evidence,
|
|
168
|
+
persona provenance and review questions without becoming a chat client.
|
|
169
|
+
|
|
170
|
+
## Failure and recovery
|
|
171
|
+
|
|
172
|
+
- **Empty:** show that no governed work is available; do not invent a next action.
|
|
173
|
+
- **Projection failure:** show the contract error; do not infer a healthy state.
|
|
174
|
+
- **Malformed or altered notices:** fail visibly because the authority boundary is
|
|
175
|
+
part of the public contract.
|
|
176
|
+
- **Handoff rejected:** refresh guidance because the current execution permission
|
|
177
|
+
has changed.
|
|
178
|
+
- **No persona match:** retain the complete Standard host-model baseline and state
|
|
179
|
+
that no specialist persona matched.
|
|
180
|
+
- **No premium library:** continue without premium content; do not sync it.
|
|
181
|
+
|
|
182
|
+
## Human acceptance checklist
|
|
183
|
+
|
|
184
|
+
Before accepting an implementation, manually confirm:
|
|
185
|
+
|
|
186
|
+
- ranking and class text match the current governed execution state;
|
|
187
|
+
- selecting a card replaces context, personas and questions;
|
|
188
|
+
- focus apply and clear work at desktop and 390px widths;
|
|
189
|
+
- active persona names, tiers, signals and reasons are visible;
|
|
190
|
+
- a handoff appears only for a currently permitted begin or continue route;
|
|
191
|
+
- human-decision and blocked contexts cannot directly execute work;
|
|
192
|
+
- both authority notices are always visible;
|
|
193
|
+
- keyboard focus and screen-reader labels are meaningful;
|
|
194
|
+
- no raw SPECS content, root, credential, finding or proprietary persona body is
|
|
195
|
+
exposed.
|
|
196
|
+
|
|
197
|
+
Automated checks and this checklist prepare evidence. A named human still records
|
|
198
|
+
Manual QA through the governed EWAI delivery gate.
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Context-Aware Delivery Companion user guide
|
|
2
|
+
|
|
3
|
+
The Companion helps you understand what needs attention across an EWAI project,
|
|
4
|
+
why it matters and who should act next. It gives you a ranked list of work so you
|
|
5
|
+
can choose what to tackle without reading every delivery record.
|
|
6
|
+
|
|
7
|
+
You do not need to use the command line or understand the technical delivery
|
|
8
|
+
stages to use the Companion.
|
|
9
|
+
|
|
10
|
+
> Companion and persona guidance is advisory. It cannot create delivery
|
|
11
|
+
> permission, user evidence, specialist assurance or human acceptance.
|
|
12
|
+
|
|
13
|
+
> Security validation is evidence, not certification or proof that this system is
|
|
14
|
+
> secure. Tools can miss vulnerabilities and produce false positives. A qualified
|
|
15
|
+
> human must review the scope, findings, limitations and residual risk before
|
|
16
|
+
> release.
|
|
17
|
+
|
|
18
|
+
## Open the Companion
|
|
19
|
+
|
|
20
|
+
Open your project’s EWAI dashboard and select **Companion** from the navigation.
|
|
21
|
+
Your EWAI check-in gives you the dashboard address when the project is ready.
|
|
22
|
+
|
|
23
|
+
The screen has two main areas:
|
|
24
|
+
|
|
25
|
+
- **Decision runway:** ranked cards showing the work that deserves attention.
|
|
26
|
+
- **Selected context:** an explanation of the selected card, its evidence, who can
|
|
27
|
+
decide what happens next, the actively engaged personas and useful questions.
|
|
28
|
+
|
|
29
|
+
The first card is the strongest current recommendation. Ranking is based on the
|
|
30
|
+
project’s governed delivery state, not on an AI guess about what is urgent.
|
|
31
|
+
|
|
32
|
+
## Understand the four recommendation types
|
|
33
|
+
|
|
34
|
+
Every recommendation is labelled in words. Colour is supporting information only.
|
|
35
|
+
|
|
36
|
+
### Human decision
|
|
37
|
+
|
|
38
|
+
A named person must make or record a decision. This commonly appears when Build
|
|
39
|
+
approval or Manual QA is next.
|
|
40
|
+
|
|
41
|
+
Read who needs to decide and the questions in the context panel. The Companion
|
|
42
|
+
does not approve the decision for you and does not provide a shortcut around the
|
|
43
|
+
human gate.
|
|
44
|
+
|
|
45
|
+
### Continue
|
|
46
|
+
|
|
47
|
+
Work has already started and may be ready for its next step. EWAI still checks
|
|
48
|
+
the required evidence and approvals before continuing.
|
|
49
|
+
|
|
50
|
+
If a hand-off button is available, you can use it to select the work for your EWAI
|
|
51
|
+
conversation. The delivery process checks permission again before anything moves.
|
|
52
|
+
|
|
53
|
+
### Start
|
|
54
|
+
|
|
55
|
+
An intent is prepared to enter the governed delivery process.
|
|
56
|
+
|
|
57
|
+
A start hand-off selects it for your EWAI conversation. It does not start coding,
|
|
58
|
+
approve Build or change the delivery phase by itself.
|
|
59
|
+
|
|
60
|
+
### Blocked
|
|
61
|
+
|
|
62
|
+
The work cannot currently start or continue. The card explains the first evidenced
|
|
63
|
+
blockers and identifies the route for resolving them.
|
|
64
|
+
|
|
65
|
+
Do not treat a fluent AI explanation as permission to proceed. Resolve the named
|
|
66
|
+
blocker, refresh the Companion and confirm that the governed action has changed.
|
|
67
|
+
|
|
68
|
+
## Select work and use focus
|
|
69
|
+
|
|
70
|
+
Select a recommendation card to make it the active context. The Companion refreshes
|
|
71
|
+
the explanation, questions and personas for that item.
|
|
72
|
+
|
|
73
|
+
Use **Focus** when you want to examine a particular concern, for example:
|
|
74
|
+
|
|
75
|
+
- “Who owns Manual QA?”
|
|
76
|
+
- “What is blocking the supplier import?”
|
|
77
|
+
- “Which work affects the product onboarding journey?”
|
|
78
|
+
- “What needs a security review before release?”
|
|
79
|
+
|
|
80
|
+
Apply one clear concern at a time. Clear the focus to return to the project-wide
|
|
81
|
+
ranking.
|
|
82
|
+
|
|
83
|
+
Changing focus replaces the previous context. If a person or persona is no longer
|
|
84
|
+
relevant, it should disappear rather than remain as part of a permanent committee.
|
|
85
|
+
|
|
86
|
+
## Understand actively engaged personas
|
|
87
|
+
|
|
88
|
+
The context panel shows the actively engaged personas for the selected work. Each
|
|
89
|
+
entry explains:
|
|
90
|
+
|
|
91
|
+
- the persona’s name;
|
|
92
|
+
- its tier, such as project, core, personal or premium;
|
|
93
|
+
- the signals that made it relevant; and
|
|
94
|
+
- why its perspective is being applied now.
|
|
95
|
+
|
|
96
|
+
Personas help frame questions and expose blind spots. They are not real stakeholder
|
|
97
|
+
evidence, approval or acceptance.
|
|
98
|
+
|
|
99
|
+
The standard AI model and installed project/core personas provide the complete
|
|
100
|
+
baseline. If relevant premium or personal personas are already installed, they can
|
|
101
|
+
add specialist depth. Premium personas are optional: opening or focusing the
|
|
102
|
+
Companion never downloads, installs or synchronises them.
|
|
103
|
+
|
|
104
|
+
## Use a hand-off
|
|
105
|
+
|
|
106
|
+
Selecting work prepares a request for your AI host; it doesn't itself implement the feature or complete a phase. Once the host accepts that handoff, continue the conversation there. You can inspect the saved work in the dashboard while the host performs the permitted task.
|
|
107
|
+
|
|
108
|
+
A **Begin** or **Continue** hand-off appears only when the current project state
|
|
109
|
+
permits that route.
|
|
110
|
+
|
|
111
|
+
When you select it:
|
|
112
|
+
|
|
113
|
+
1. EWAI checks the current permission again.
|
|
114
|
+
2. The dashboard records which work you selected.
|
|
115
|
+
3. You return to the EWAI conversation.
|
|
116
|
+
4. The conversation identifies the hand-off and asks you to confirm proceeding.
|
|
117
|
+
5. The guarded delivery process handles the next valid stage.
|
|
118
|
+
|
|
119
|
+
If the project state changed after the card was displayed, the hand-off may be
|
|
120
|
+
refused. Refresh the Companion and review the new blocker or accountable route.
|
|
121
|
+
|
|
122
|
+
A hand-off does not approve Build, complete Manual QA, accept risk, dispose of a
|
|
123
|
+
security finding, deploy software or release it.
|
|
124
|
+
|
|
125
|
+
## Questions you still need to answer
|
|
126
|
+
|
|
127
|
+
The Companion can organise evidence and suggest questions, but people remain
|
|
128
|
+
responsible for decisions such as:
|
|
129
|
+
|
|
130
|
+
- whether the intended outcome is correct;
|
|
131
|
+
- whether the evidence is sufficient;
|
|
132
|
+
- whether affected users or teams have been consulted;
|
|
133
|
+
- whether a risk is acceptable and who owns it;
|
|
134
|
+
- whether Manual QA has genuinely passed; and
|
|
135
|
+
- whether the work is ready to deploy or release.
|
|
136
|
+
|
|
137
|
+
When the evidence is incomplete, the correct result is an explicit question or
|
|
138
|
+
blocker, not a confident recommendation.
|
|
139
|
+
|
|
140
|
+
## Common situations
|
|
141
|
+
|
|
142
|
+
### No recommendations are shown
|
|
143
|
+
|
|
144
|
+
The project may have no governed work available, or the current projection may be
|
|
145
|
+
unavailable. Refresh once. If the empty state remains, use the normal EWAI check-in
|
|
146
|
+
to inspect or capture work. Do not infer that an empty screen means everything is
|
|
147
|
+
complete.
|
|
148
|
+
|
|
149
|
+
### The recommendation looks out of date
|
|
150
|
+
|
|
151
|
+
Refresh the Companion. If the state still disagrees with the known project
|
|
152
|
+
evidence, stop and ask the delivery owner to reconcile the durable intent,
|
|
153
|
+
delivery state and project evidence.
|
|
154
|
+
|
|
155
|
+
### The personas do not fit the selected concern
|
|
156
|
+
|
|
157
|
+
Use a more specific focus and refresh. Personas are selected from what is actually
|
|
158
|
+
installed. A missing specialist perspective should be shown as a gap rather than
|
|
159
|
+
imitated.
|
|
160
|
+
|
|
161
|
+
### A hand-off disappeared or was refused
|
|
162
|
+
|
|
163
|
+
Permission changed between display and selection. Read the refreshed blockers and
|
|
164
|
+
follow the accountable route. The refusal protects the governed process.
|
|
165
|
+
|
|
166
|
+
### Premium personas are unavailable
|
|
167
|
+
|
|
168
|
+
Continue normally. Premium content is optional and its absence does not make the
|
|
169
|
+
Companion incomplete.
|
|
170
|
+
|
|
171
|
+
## Before acting on a recommendation
|
|
172
|
+
|
|
173
|
+
Check that you can answer yes to each relevant statement:
|
|
174
|
+
|
|
175
|
+
- I understand why this item is ranked here.
|
|
176
|
+
- I can distinguish observed evidence from advisory interpretation.
|
|
177
|
+
- I know who owns the next decision or action.
|
|
178
|
+
- The actively engaged personas fit this context.
|
|
179
|
+
- Any blocker is explicit rather than hidden in a positive summary.
|
|
180
|
+
- I am using only a currently advertised hand-off.
|
|
181
|
+
- I am not treating Companion output as approval, assurance or release authority.
|
|
182
|
+
|
|
183
|
+
For technical integration, configuration and acceptance details, use the
|
|
184
|
+
[Context-Aware Delivery Companion operating and implementation guide](context-aware-delivery-companion-guide.md).
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Context management and token efficiency
|
|
2
|
+
|
|
3
|
+
EWAI reduces repeated model input by assembling the minimum sufficient evidence for the work happening now. It does not shorten context by weakening engineering expectations. Standards, tests, security and privacy constraints, contradictions, task boundaries and human authority remain mandatory whenever the selected profile requires them.
|
|
4
|
+
|
|
5
|
+
You normally don't prepare context manually: the relevant EWAI skill does that for its task. Use this guide when you want to understand why particular evidence or personas were selected, investigate missing context, or adjust a focused preparation. For example, ask EWAI: “Show me which evidence we're using for this intent and what's been left out.”
|
|
6
|
+
|
|
7
|
+
Context preparation doesn't approve Build or Manual QA, accept risk, certify quality, deploy or release.
|
|
8
|
+
|
|
9
|
+
## Inspect the evidence sent to the model
|
|
10
|
+
|
|
11
|
+
Open **Configuration**, enable **AI context diagnostics** and save, then open that view in the sidebar. See [dashboard configuration](operations/dashboard-configuration.md) if you need help finding it.
|
|
12
|
+
|
|
13
|
+
1. Choose a profile for the operation you want to inspect; the table below explains each one.
|
|
14
|
+
2. Enter the intent slug.
|
|
15
|
+
3. Enter a task ID for `build-task` or `fresh-context-review`.
|
|
16
|
+
4. Add a narrow focus when it will improve relevance.
|
|
17
|
+
5. Keep the default budget initially, or enter a deliberate bounded value.
|
|
18
|
+
6. Optionally paste the exact previous digest to inspect segment and persona deltas.
|
|
19
|
+
7. Select **Prepare manifest**.
|
|
20
|
+
|
|
21
|
+
The view shows the context budget, which evidence was selected or left out, whether mandatory content fitted, the content digest and the active personas. It doesn't show the actual source bodies or model payload. On mandatory overflow it shows recovery choices and no downstream handoff. Preparing this manifest doesn't itself ask a model to do the work.
|
|
22
|
+
|
|
23
|
+
## The seven profiles
|
|
24
|
+
|
|
25
|
+
Budgets below are estimated input tokens, not words or a guarantee of a provider's billed usage. A token is a unit of text processed by a model; the exact token count depends on its tokenizer.
|
|
26
|
+
|
|
27
|
+
| Profile | Use it for | Default token budget | Required evidence |
|
|
28
|
+
| --- | --- | ---: | --- |
|
|
29
|
+
| `companion` | deciding what deserves attention now | 2,000 | current delivery state and human route |
|
|
30
|
+
| `intent` | shaping purpose and acceptance | 4,000 | canonical intent and authority boundary |
|
|
31
|
+
| `plan` | designing implementation | 8,000 | accepted plan, claims and test obligations |
|
|
32
|
+
| `build-task` | implementing one leased task | 12,000 | exact task, write set, allowed commands and stop conditions |
|
|
33
|
+
| `fresh-context-review` | reviewing one task independently | 12,000 | tests first, exact diff scope, standards and verdict contract |
|
|
34
|
+
| `phase-contribution-review` | reviewing an attributed phase thread | 6,000 | current phase state, attribution and human authority |
|
|
35
|
+
| `design-system-apply` | applying resolved design guidance to one UI delivery | 6,000 | required contributions and design/human authority |
|
|
36
|
+
|
|
37
|
+
The profiles are built-in policies for different operations. EWAI uses the appropriate profile in its workflow; when preparing directly, select one rather than combining several into a large generic prompt.
|
|
38
|
+
|
|
39
|
+
## What gets selected
|
|
40
|
+
|
|
41
|
+
Each candidate segment is classified as:
|
|
42
|
+
|
|
43
|
+
- **mandatory:** must fit in full and retain all required markers;
|
|
44
|
+
- **relevant:** included in priority order while budget remains;
|
|
45
|
+
- **optional:** useful background that can be deferred.
|
|
46
|
+
|
|
47
|
+
The assembler sorts deterministically, selects mandatory evidence first, and records one of `selected`, `reused`, `deferred`, or `overflow` for every segment. It hashes both content and policy, so a source or selection-policy change invalidates reuse. The fragment cache is private, project-local and disposable. Canonical SPECS and repository files remain the source of truth.
|
|
48
|
+
|
|
49
|
+
If mandatory demand exceeds the budget, the result is `non-ready` with reason `mandatory-overflow`. No model payload is produced. Narrow the focus, raise the bounded budget, or split the operation. Do not remove a standard, test, security constraint or approval boundary to make the pack fit.
|
|
50
|
+
|
|
51
|
+
## Persona swapping
|
|
52
|
+
|
|
53
|
+
Every preparation considers installed project, personal, premium and core personas. EWAI selects a small ensemble from the profile and current focus, preferring the most relevant project and installed premium lenses where available. The **AI context diagnostics** view shows each active persona's:
|
|
54
|
+
|
|
55
|
+
- name and tier;
|
|
56
|
+
- matched signals;
|
|
57
|
+
- engagement reason;
|
|
58
|
+
- additions, retention and removals compared with an exact predecessor.
|
|
59
|
+
|
|
60
|
+
When the work moves from product intent to implementation, performance, security or review, EWAI prepares context for that new operation. If you're using the CLI directly, prepare again with the new focus. Relevant personas replace those no longer needed. Personas remain advisory lenses, not participant evidence, specialist assurance, acceptance or approval. Missing premium content is optional enrichment; context preparation never downloads it.
|
|
61
|
+
|
|
62
|
+
## Use the CLI
|
|
63
|
+
|
|
64
|
+
Prepare context with:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
ewai context prepare intent \
|
|
68
|
+
--slug governed-context-assembly \
|
|
69
|
+
--focus "outcomes and engineering performance" \
|
|
70
|
+
--project . \
|
|
71
|
+
--json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
For a Build task:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
ewai context prepare build-task \
|
|
78
|
+
--slug governed-context-assembly \
|
|
79
|
+
--task T-001 \
|
|
80
|
+
--focus "provider usage and latency" \
|
|
81
|
+
--project . \
|
|
82
|
+
--json
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Trusted CLI and MCP hosts receive the transient `modelContext` and `deltaContext` needed for their immediate operation. Browser APIs return only safe manifests. None of these interfaces accepts an alternate root or unrestricted source path from an untrusted caller.
|
|
86
|
+
|
|
87
|
+
## Understand usage numbers
|
|
88
|
+
|
|
89
|
+
EWAI labels local estimates with `utf8-bytes-div-3-v1`. These figures are deterministic comparisons, not a claim about a specific provider tokenizer. Provider-reported usage, when a provider returns strict numeric input and output counts, is recorded separately from estimated usage. Missing provider usage stays unknown; it is never replaced with an estimate presented as actual consumption.
|
|
90
|
+
|
|
91
|
+
An exact predecessor enables delta reporting and a smaller `deltaContext` for hosts that can safely reuse their immediately preceding context. The full context remains available to trusted hosts for correctness. A mismatched predecessor digest fails rather than guessing what the host remembers.
|
|
92
|
+
|
|
93
|
+
## Run the packaged comparison
|
|
94
|
+
|
|
95
|
+
If you want to inspect the bundled comparison, use:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
ewai context benchmark --json
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
It uses a fixed comparison corpus, not your application's full workload. Read its per-profile results and failures; it doesn't measure provider latency, answer quality or actual account usage.
|
|
102
|
+
|
|
103
|
+
If you're changing EWAI itself, follow [maintainer context benchmarks](maintainers/context-benchmarks.md) for the source-checkout scripts, thresholds and wider regression checks. Those aren't application setup requirements.
|
|
104
|
+
|
|
105
|
+
## Recovery and privacy
|
|
106
|
+
|
|
107
|
+
- Delete the context cache if it is suspect; the next run rebuilds it from canonical sources.
|
|
108
|
+
- Treat `.ewai-pipeline/runtime/context-packs/` as private operational state, not durable project truth.
|
|
109
|
+
- Share safe manifests when diagnostics are needed, not cached fragments or transient model payloads.
|
|
110
|
+
- Use project-relative evidence references in manifests; absolute machine paths do not belong in safe projections.
|
|
111
|
+
- If a digest, source, phase or task has changed, prepare a new pack and review the delta.
|
|
112
|
+
|
|
113
|
+
Context efficiency is useful only when the resulting engineering work remains at least as reliable, testable, secure and accountable as the full-context baseline.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Design-system implementation guide
|
|
2
|
+
|
|
3
|
+
This guide is for maintainers integrating the portable capability into EWAI projects and hosts. It adds no server backend, connector, or design-system management UI: the supported boundary is local CLI/domain functions, installed skills, project state, and delivery evidence.
|
|
4
|
+
|
|
5
|
+
## Installed assets
|
|
6
|
+
|
|
7
|
+
The npm package contains:
|
|
8
|
+
|
|
9
|
+
- `config/design-system.schema.json` and the design-system extensions to the pack, project, and Organisation Blueprint schemas;
|
|
10
|
+
- the bundled fallback under `packs/design-systems/default/`;
|
|
11
|
+
- resolver, authoring, application, receipt, and prototype-manifest validation modules under `src/`;
|
|
12
|
+
- `$ewai-design-system-author`, `$ewai-design-system-apply`, `$ewai-prototype-iteration`, and `$ewai-design-system-review`;
|
|
13
|
+
- these operating guides.
|
|
14
|
+
|
|
15
|
+
Run `ewai install --host auto` after an npm upgrade to copy the current skills to supported hosts. Project installations place Codex and Antigravity skills under `.agents/skills/`; Claude Code uses `.claude/skills/`.
|
|
16
|
+
|
|
17
|
+
## Catalogue roots and authority
|
|
18
|
+
|
|
19
|
+
EWAI discovers bundled, personal, and project-local packs. Source class is provenance, not precedence. Duplicate design-system IDs fail; dependencies and replacements are declared in the manifest. Project selection is independent and pinned in the project’s configured `SPECS/pipeline.yaml` with a matching strategy record.
|
|
20
|
+
|
|
21
|
+
The bundled fallback works without configuration but is visibly unapproved. An Organisation Blueprint can recommend design-system IDs through its `design_systems` module, but recommendation never installs, selects, or copies them.
|
|
22
|
+
|
|
23
|
+
## Application lifecycle
|
|
24
|
+
|
|
25
|
+
1. Begin an EWAI delivery with UI Design in scope.
|
|
26
|
+
2. Inspect the current design-system status and resolve stale pins.
|
|
27
|
+
3. Run `ewai design-system apply DELIVERY_SLUG --focus TEXT --project PROJECT --json`.
|
|
28
|
+
4. Handle `mandatory-overflow` without dropping required material.
|
|
29
|
+
5. Give the transient `modelContext` only to the active model call. CLI output and persisted evidence intentionally omit it.
|
|
30
|
+
6. Show active personas by safe reference, name, tier, matched signals, and reason. Do not persist definitions.
|
|
31
|
+
7. Prepare and record persona review of the prototype plan.
|
|
32
|
+
8. Produce the runnable prototype, capture separate evidence channels, and prepare a newly selected rendered-design persona ensemble.
|
|
33
|
+
9. Record assessed findings within the one-to-three-cycle bound.
|
|
34
|
+
10. Link the returned receipt, reviewed plan, and final cycle into the prototype manifest.
|
|
35
|
+
11. Validate UI Design through the normal EWAI artefact and gate operations.
|
|
36
|
+
|
|
37
|
+
The application service reuses `prepareContextPack`; do not create a second budgeting mechanism in host integrations. Non-UI context profiles receive no design-system segments.
|
|
38
|
+
|
|
39
|
+
## Prototype manifest v3
|
|
40
|
+
|
|
41
|
+
New delivery states are stamped with `artefactContracts.prototype: ewai.prototype-manifest/v3`. The manifest remains at:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
SPECS/6.Build/<delivery>/ui-design-assets/prototypes/manifest.json
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Its selected HTML entry point stays inside `ui-design-assets/prototypes/`. v3 retains the v2 design-system linkage and adds:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"schema": "ewai.prototype-manifest/v3",
|
|
52
|
+
"designSystem": {
|
|
53
|
+
"receiptPath": "ui-design-assets/design-system/receipt-<digest>.json",
|
|
54
|
+
"receiptDigest": "sha256:<receipt-digest>",
|
|
55
|
+
"effectiveDigest": "sha256:<effective-design-system-digest>"
|
|
56
|
+
},
|
|
57
|
+
"reviews": {
|
|
58
|
+
"plan": {
|
|
59
|
+
"path": "ui-design-assets/prototype-iterations/plans/plan-<digest>.json",
|
|
60
|
+
"digest": "sha256:<review-digest>"
|
|
61
|
+
},
|
|
62
|
+
"finalCycle": {
|
|
63
|
+
"path": "ui-design-assets/prototype-iterations/cycles/cycle-2-<digest>.json",
|
|
64
|
+
"digest": "sha256:<review-digest>",
|
|
65
|
+
"cycleNumber": 2
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The validator rejects missing, absolute, escaping, symbolic, invalid, altered, wrong-delivery, or digest-mismatched receipts and review records. It also requires the final cycle to reference the reviewed plan and selected HTML entry point. Historical v1 and v2 manifests without the new delivery stamp remain readable. To migrate a newly governed UI delivery, apply the active system, complete the persona-guided plan and rendered-design reviews, retain the selected prototype fields, change the schema to v3, and add all returned linkage.
|
|
72
|
+
|
|
73
|
+
## Performance and privacy
|
|
74
|
+
|
|
75
|
+
- Mandatory contributions fail non-ready when they exceed the explicit token budget.
|
|
76
|
+
- Content-addressed cache entries are disposable and contain private context; receipts contain only safe projections.
|
|
77
|
+
- Keep non-UI fixed fixtures byte-for-byte stable.
|
|
78
|
+
- Maintain the local preparation contract of at most 75 ms median and 32 MiB aggregate peak RSS growth on the recorded test fixture.
|
|
79
|
+
- Never send credentials, absolute paths, or premium persona bodies into receipts, summaries, logs, or manifests.
|
|
80
|
+
|
|
81
|
+
## Recovery and testing
|
|
82
|
+
|
|
83
|
+
Run focused tests for pack resolution, authoring, application, prototype linkage, review, installation, and packaging. Then run `npm run check`, `npm test`, and `npm pack --dry-run --json`. A dry run proves package contents only; it does not publish.
|
|
84
|
+
|
|
85
|
+
When a receipt no longer matches, leave it immutable, reapply, and update the prototype manifest to the new receipt. When a selected pack is stale, require a new named selection approval. Manual QA, accessibility assurance, publication, deployment, and release remain separate.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Design-system pack authoring guide
|
|
2
|
+
|
|
3
|
+
Use a pack when guidance should be reused across features or projects. Keep a one-off delivery decision local; promote it only after evidence shows it is a repeatable rule.
|
|
4
|
+
|
|
5
|
+
Ask EWAI: “Help me capture our product's design guidance as a reusable pack.” The `ewai-design-system-author` skill helps you examine the evidence and draft the guidance. You review the proposed rules, their sources and the files before approving installation. The examples below show the pack format and the optional direct commands.
|
|
6
|
+
|
|
7
|
+
## Evidence-led authoring
|
|
8
|
+
|
|
9
|
+
During the authoring conversation, check that each proposed rule has one of these evidence classes:
|
|
10
|
+
|
|
11
|
+
- **owner-declared** — an accountable owner states the intended experience;
|
|
12
|
+
- **observed** — product, repository, research, or rendered evidence supports it;
|
|
13
|
+
- **inferred** — a useful hypothesis still awaiting confirmation;
|
|
14
|
+
- **conflict** — sources or stakeholders disagree and the disagreement needs an owner decision.
|
|
15
|
+
|
|
16
|
+
EWAI uses relevant core, project-local, personal and already installed premium personas as the subject changes. You see which perspectives are active and why; ask for a different perspective if an important concern is missing. Personas challenge evidence but don't approve guidance. Keep the resulting design rules in the pack, not the private body of a premium persona.
|
|
17
|
+
|
|
18
|
+
## Pack structure
|
|
19
|
+
|
|
20
|
+
For a complete starting point, use the [two-file design-system example](../examples/minimal-design-system.md). It includes the actual Markdown contribution as well as `pack.yaml`, then follows validation, installation and selection. The broader layout below shows where to put additional guidance as the pack grows; you don't need empty files for every possible contribution type.
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
my-design-system/
|
|
24
|
+
├── pack.yaml
|
|
25
|
+
├── experience-promise.md
|
|
26
|
+
├── principles.md
|
|
27
|
+
└── components/
|
|
28
|
+
└── buttons.md
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The manifest is data-only:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
schema: ewai.pack/v1
|
|
35
|
+
id: org.example.product-design
|
|
36
|
+
name: Example Product Design
|
|
37
|
+
description: Reusable product experience guidance.
|
|
38
|
+
version: 1.0.0
|
|
39
|
+
type: design-system
|
|
40
|
+
requires: []
|
|
41
|
+
design_system:
|
|
42
|
+
compatibility:
|
|
43
|
+
ewai: 0.x
|
|
44
|
+
provenance:
|
|
45
|
+
kind: owner-declared
|
|
46
|
+
summary: Approved product principles captured with the product owner.
|
|
47
|
+
contributions:
|
|
48
|
+
- id: experience-promise
|
|
49
|
+
kind: experience
|
|
50
|
+
title: Experience promise
|
|
51
|
+
source: experience-promise.md
|
|
52
|
+
applicability: [ui-design, prototype, review]
|
|
53
|
+
required: true
|
|
54
|
+
replaces: []
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Supported contribution kinds are `experience`, `principles`, `foundations`, `tokens`, `components`, `interaction`, `content`, `states`, `responsive`, `accessibility`, `motion`, `prohibited`, and `review`.
|
|
58
|
+
|
|
59
|
+
Composition is explicit. Add dependencies under `requires`. When one contribution replaces another, identify the exact qualified target, for example:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
replaces:
|
|
63
|
+
- ewai.design-system.default:product-principles
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Do not rely on bundled, personal, or project-local filesystem precedence.
|
|
67
|
+
|
|
68
|
+
## Validate, review, then install
|
|
69
|
+
|
|
70
|
+
Validation does not modify the candidate:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
ewai design-system validate ./my-design-system --project . --json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Review the ID, version, compatibility, contribution metadata, provenance, and digest. After explicit confirmation, install that exact digest into one scope:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ewai design-system install ./my-design-system \
|
|
80
|
+
--scope project \
|
|
81
|
+
--expected-digest sha256:<candidate-digest> \
|
|
82
|
+
--yes \
|
|
83
|
+
--project . \
|
|
84
|
+
--json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Use `--scope personal` for a design system meant to be available across the current user’s projects. Installation stages beside the destination, revalidates the digest, atomically creates a new path, and refuses overwrite. It does not select or apply the pack.
|
|
88
|
+
|
|
89
|
+
Symlinks, remote content, traversal, missing referenced files, incompatible EWAI majors, excessive content, duplicate identities, cycles, ambiguous contributions, and stale digests fail closed.
|
|
90
|
+
|
|
91
|
+
## Version and governance
|
|
92
|
+
|
|
93
|
+
Change the version whenever governed content changes. Treat a breaking meaning or contribution identity change as a major pack decision even while EWAI is pre-1.0. Preserve the evidence behind changes and obtain a new selection approval when a project pin becomes stale.
|
|
94
|
+
|
|
95
|
+
An Organisation Blueprint can recommend the pack ID and version range for consistent setup. Keep the pack separate: Blueprint recommendations are metadata, not installation, selection, or copied design content.
|