@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,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ewai-context
|
|
3
|
+
description: Prepare minimum-sufficient, fidelity-checked context for EWAI companion, intent, plan, build-task, fresh-context-review, phase-contribution-review, and design-system application work; inspect active persona lenses and exact deltas; and run the committed engineering-performance benchmark. Use when a host needs bounded project evidence without weakening standards, tests, security, privacy, or human authority.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# EWAI Governed Context
|
|
7
|
+
|
|
8
|
+
Use the project-local context assembler. Do not improvise a smaller prompt by dropping evidence manually.
|
|
9
|
+
|
|
10
|
+
## Choose one governed profile
|
|
11
|
+
|
|
12
|
+
Use exactly one of the seven governed profiles for the current moment:
|
|
13
|
+
|
|
14
|
+
- `companion` for current state, route and recovery;
|
|
15
|
+
- `intent` for outcomes, users, constraints and acceptance;
|
|
16
|
+
- `plan` for architecture, standards, repository truth and tests;
|
|
17
|
+
- `build-task` for one exact leased task and its permitted write set;
|
|
18
|
+
- `fresh-context-review` for tests-first independent review of one task diff;
|
|
19
|
+
- `phase-contribution-review` for attributed evidence and disagreement in one phase thread.
|
|
20
|
+
- `design-system-apply` for resolved, scope-relevant UI Design and Prototype guidance.
|
|
21
|
+
|
|
22
|
+
Run:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
ewai context prepare <profile> --slug <intent-slug> --focus "<current concern>" --project . --json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
For `build-task` and `fresh-context-review`, also pass `--task <task-id>`. Design-system application is prepared through `ewai design-system apply <delivery-slug>` and `$ewai-design-system-apply`, which supply validated pack candidates to the same assembler. Use `--previous <digest>` only when it is the exact predecessor manifest.
|
|
29
|
+
|
|
30
|
+
## Preserve fidelity before reducing demand
|
|
31
|
+
|
|
32
|
+
Require `status: ready`, `fidelity.status: pass`, and 100% mandatory recall before giving a context payload to a model. Mandatory evidence includes the applicable task boundary, standards, tests, security and privacy constraints, contradictions, and human authority relevant to that profile.
|
|
33
|
+
|
|
34
|
+
If the result is `non-ready` with `mandatory-overflow`, stop. Do not truncate, summarise away, or bypass mandatory evidence. Narrow the focus, increase the bounded budget, or split the operation, then prepare again.
|
|
35
|
+
|
|
36
|
+
Treat the cache as disposable acceleration. Project truth remains in canonical SPECS and repository files. Use exact content and policy digests for reuse; never infer freshness from a familiar filename or a partial digest.
|
|
37
|
+
|
|
38
|
+
## Engage and show the current persona ensemble
|
|
39
|
+
|
|
40
|
+
Before semantic work, show every active persona's name, tier, matched signals, and engagement reason. The standard host model plus installed core and project personas form the baseline. Personal and installed premium personas may replace or enrich a lens when they are relevant. When the profile or focus changes, prepare again and swap the ensemble; do not accumulate stale personas.
|
|
41
|
+
|
|
42
|
+
Use premium personas only when they are already installed and reported by the project. Do not fetch, imitate, or expose missing or raw persona definitions during context preparation.
|
|
43
|
+
|
|
44
|
+
Personas are advisory lenses. They are not user evidence, specialist validation, acceptance, risk ownership, or approval.
|
|
45
|
+
|
|
46
|
+
## Keep host boundaries intact
|
|
47
|
+
|
|
48
|
+
- Trusted CLI and MCP hosts may receive transient `modelContext` and `deltaContext` for the immediate operation.
|
|
49
|
+
- The loopback dashboard receives only a body-free safe manifest.
|
|
50
|
+
- Never accept a browser-supplied project root, file path, provider command, executable, or credential.
|
|
51
|
+
- Keep estimated input usage clearly separate from optional provider-reported usage.
|
|
52
|
+
- Context preparation cannot approve Build or Manual QA, certify quality, accept security risk, deploy, or release.
|
|
53
|
+
|
|
54
|
+
## Verify engineering performance
|
|
55
|
+
|
|
56
|
+
Run the committed equal-input benchmark after changing selection, rendering, persona routing, provider adapters, cache behaviour, or profiles:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ewai context benchmark --json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The result must cover all seven profiles, retain 100% mandatory recall for each, achieve at least 40% median estimated input-demand reduction, prepare within 75 ms median local time, and add no more than 32 MiB peak RSS on the committed fixture corpus. A failed benchmark blocks the change; never relax a fidelity threshold to recover a performance number.
|
|
63
|
+
|
|
64
|
+
Run the focused context tests and the full repository suite as well. A local benchmark is regression evidence for the measured environment, not proof of provider quality or universal latency.
|
|
65
|
+
|
|
66
|
+
## Stop conditions
|
|
67
|
+
|
|
68
|
+
Stop and escalate when mandatory evidence cannot fit, the predecessor digest is unavailable or mismatched, a source is outside the configured project, a task is outside its write set, a safe projection would expose source bodies, persona content is unavailable, the benchmark fails, or anyone asks context preparation to grant delivery authority.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ewai-context-import
|
|
3
|
+
description: Register and interpret a user-supplied folder of emails, meeting transcripts, documents, research, requirements, presentations, spreadsheets, images, recordings, and other project material as evidence-backed EWAI context. Use during new-project setup, before or during Archaeology, when importing discovery material, when reconstructing decisions and rationale, or when project actors and suitable analysis personas need to be identified from source evidence.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# EWAI Context Import
|
|
7
|
+
|
|
8
|
+
Enrich project understanding without turning raw correspondence into unreviewed project truth. Keep supplied material in place, preserve provenance, and route only reviewed knowledge into SPECS.
|
|
9
|
+
|
|
10
|
+
## Offer context enrichment naturally
|
|
11
|
+
|
|
12
|
+
During setup, after the initial human project briefing and before detailed discovery or Archaeology, ask:
|
|
13
|
+
|
|
14
|
+
> Do you have a folder of emails, meeting transcripts, documents, research, requirements, or other project material you would like EWAI to learn from?
|
|
15
|
+
|
|
16
|
+
Make the import optional. Do not imply that a project is incomplete without one. Existing projects may add or refresh context sources at any time.
|
|
17
|
+
|
|
18
|
+
## Establish permission and boundaries
|
|
19
|
+
|
|
20
|
+
Ask one focused question at a time and establish:
|
|
21
|
+
|
|
22
|
+
1. the folder path and a human-readable label;
|
|
23
|
+
2. whether the user is authorised to let EWAI read it;
|
|
24
|
+
3. exclusions such as private correspondence, HR, legal privilege, credentials, unrelated clients, or personal material;
|
|
25
|
+
4. classification: `public`, `internal`, `confidential`, or `restricted`;
|
|
26
|
+
5. whether content may be processed by the current AI provider: `allowed`, `denied`, or `unknown`;
|
|
27
|
+
6. whether OCR or transcription may be used when required.
|
|
28
|
+
|
|
29
|
+
If cloud processing is denied or unknown, do not open source content in a hosted AI session. A local inventory may still be registered, but explain the limitation and ask the user to select an approved local-processing route. Never weaken the classification to make the import convenient.
|
|
30
|
+
|
|
31
|
+
After explicit consent, register the folder with the internal control-plane command:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
ewai context register <folder> --project <path> --label <label> --classification <classification> --cloud-processing <policy> --yes --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Add `--exclude <relative-path>` for each approved exclusion. Keep the command and JSON internal unless registration fails. Registration inventories supported material without copying raw content into SPECS. Absolute paths and filenames remain in the gitignored `.ewai-pipeline/` manifest; the committed registry contains sanitized counts, types, policy, and an inventory fingerprint. This fingerprint detects inventory drift; it is not represented as a hash of every file's content.
|
|
38
|
+
|
|
39
|
+
## Perform bounded reconnaissance
|
|
40
|
+
|
|
41
|
+
Read [the context import contract](references/context-import-contract.md) before opening content.
|
|
42
|
+
|
|
43
|
+
Start with filenames, dates, formats, headings, participants, thread structure, and a small representative sample. Report what kinds of context appear to exist and ask before expanding into unexpectedly sensitive or out-of-scope material. Do not execute attachments, macros, links, scripts, or embedded active content.
|
|
44
|
+
|
|
45
|
+
Work in bounded batches. Keep progress human:
|
|
46
|
+
|
|
47
|
+
- `Reviewing the material you supplied…`
|
|
48
|
+
- `I found three decision-heavy meeting threads and two requirement documents.`
|
|
49
|
+
- `I found four recurring project roles · two need your clarification.`
|
|
50
|
+
- `There are conflicting accounts of the delivery approach.`
|
|
51
|
+
|
|
52
|
+
## Route personas before deep interpretation
|
|
53
|
+
|
|
54
|
+
After initial reconnaissance, run `ewai persona index --project <path> --json`. Use its compact metadata—identifier, description, category, tier, tags, and capabilities—to compare the perspectives required by the material with the core, premium, personal, and project personas actually available.
|
|
55
|
+
|
|
56
|
+
Prepare a small ensemble rather than loading every persona:
|
|
57
|
+
|
|
58
|
+
- one lead suited to the dominant question;
|
|
59
|
+
- domain or functional perspectives evidenced by the material;
|
|
60
|
+
- user or operator perspectives;
|
|
61
|
+
- assurance, security, accessibility, data, or adversarial reviewers where relevant;
|
|
62
|
+
- the SPECS Knowledge Curator for final routing.
|
|
63
|
+
|
|
64
|
+
Tell the user:
|
|
65
|
+
|
|
66
|
+
- which available personas would materially improve the import and why;
|
|
67
|
+
- which will lead or review each pass;
|
|
68
|
+
- where the current library has a meaningful perspective gap;
|
|
69
|
+
- whether a project-specific persona should be created from evidenced actors.
|
|
70
|
+
|
|
71
|
+
Switch persona lenses between bounded passes as the evidence changes. Do not blend every persona into one generic answer. Record routing in `persona-routing.yaml`, including the persona, purpose, evidence that made it relevant, pass, contribution, and unresolved gap.
|
|
72
|
+
|
|
73
|
+
An installed advisory persona is a reasoning aid, not evidence about this project's users. When source material reveals a real role, actor, environment, responsibility, frustration, goal, or decision authority, propose a project persona under the import bundle's `proposals/SPECS/1.Scope/personas/project/`. Attribute it to evidence, avoid unnecessary personal identifiers, distinguish role from individual, and obtain human approval before promotion.
|
|
74
|
+
|
|
75
|
+
## Extract evidence, not just summaries
|
|
76
|
+
|
|
77
|
+
Classify each candidate finding as:
|
|
78
|
+
|
|
79
|
+
- `stated`: a source says it, without evidence of agreement;
|
|
80
|
+
- `proposed`: someone suggested an option or action;
|
|
81
|
+
- `agreed`: participants explicitly reached agreement;
|
|
82
|
+
- `decided`: an accountable decision and outcome are recorded;
|
|
83
|
+
- `implemented`: repository or operational evidence shows the outcome exists;
|
|
84
|
+
- `superseded`: later evidence replaced it;
|
|
85
|
+
- `contradicted`: credible sources disagree;
|
|
86
|
+
- `inferred`: interpretation still requires confirmation;
|
|
87
|
+
- `unknown`: evidence is insufficient.
|
|
88
|
+
|
|
89
|
+
Extract project language, actors, intents, journeys, workflows, requirements, constraints, options, decisions, rationale, risks, incidents, dependencies, actions, unresolved questions, and success measures. Cite a source identifier plus page, paragraph, timestamp, message, slide, sheet, or other stable locator for every material claim.
|
|
90
|
+
|
|
91
|
+
## Create the review bundle
|
|
92
|
+
|
|
93
|
+
Build on the registration bundle at `SPECS/3.Evidence/context-imports/<date>-<slug>/`:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
├── source-registration.yaml
|
|
97
|
+
├── report.md
|
|
98
|
+
├── evidence-ledger.yaml
|
|
99
|
+
├── persona-routing.yaml
|
|
100
|
+
├── actors-and-persona-candidates.md
|
|
101
|
+
├── decisions-and-options.md
|
|
102
|
+
├── open-questions.md
|
|
103
|
+
└── proposals/SPECS/
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Mirror proposed records into their eventual SPECS destination. Keep raw source content outside SPECS. Use short necessary excerpts only when permitted; prefer paraphrase plus a precise locator.
|
|
107
|
+
|
|
108
|
+
## Review and curate
|
|
109
|
+
|
|
110
|
+
Present related findings in small groups. Ask the accountable human to accept, correct, reject, or defer them. Use the SPECS Knowledge Curator to promote accepted records, preserve links back to the context-import evidence, and reconcile conflicts with existing project knowledge.
|
|
111
|
+
|
|
112
|
+
Do not claim that a discussion was a decision, that a participant represented all users, or that a repeated practice was an approved standard. Do not create a persona from protected characteristics or private correspondence without an appropriate and explicit purpose.
|
|
113
|
+
|
|
114
|
+
## Completion boundary
|
|
115
|
+
|
|
116
|
+
Complete the import only when registered sources and exclusions are visible, processing policy was honoured, material findings are traceable, persona routing and gaps are recorded, project-actor candidates are reviewed, contradictions remain visible, and accepted knowledge has been curated into SPECS.
|
|
117
|
+
|
|
118
|
+
Stop before implementation. Create or enrich an intent for work discovered by the import.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# EWAI context import contract
|
|
2
|
+
|
|
3
|
+
Use this contract when registering, interpreting, citing, and promoting user-supplied project material.
|
|
4
|
+
|
|
5
|
+
## Source boundary
|
|
6
|
+
|
|
7
|
+
- Treat the supplied folder as read-only.
|
|
8
|
+
- Keep absolute paths, filenames, and the detailed inventory in `.ewai-pipeline/context/sources/`.
|
|
9
|
+
- Keep raw documents, messages, attachments, recordings, and extracted full text outside committed SPECS.
|
|
10
|
+
- Put sanitized source metadata and reviewed derived knowledge in SPECS.
|
|
11
|
+
- Do not follow symbolic links or traverse into a project contained by the supplied folder.
|
|
12
|
+
- Do not execute files, macros, scripts, links, installers, or embedded active content.
|
|
13
|
+
|
|
14
|
+
Registration recognises common text, Markdown, email, calendar, PDF, office-document, presentation, spreadsheet, structured-data, image, audio, and video extensions. Recognition means inventory eligibility, not guaranteed extraction. Record unsupported, encrypted, corrupt, inaccessible, or tool-dependent material as a visible limitation.
|
|
15
|
+
|
|
16
|
+
## Processing policy
|
|
17
|
+
|
|
18
|
+
| Policy | Hosted AI may open content? | Permitted action |
|
|
19
|
+
|---|---:|---|
|
|
20
|
+
| `allowed` | Yes, within approved scope | Register, inspect, interpret, and cite |
|
|
21
|
+
| `denied` | No | Register local metadata only; require approved local processing for content |
|
|
22
|
+
| `unknown` | No | Clarify policy before content access |
|
|
23
|
+
|
|
24
|
+
OCR, transcription, email parsing, archive expansion, or conversion can disclose more content than filenames suggest. Ask before using them. Do not upload source material to a third-party conversion service without separate explicit approval.
|
|
25
|
+
|
|
26
|
+
## Evidence locator
|
|
27
|
+
|
|
28
|
+
Use the most stable locator available:
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
- id: CTX-001
|
|
32
|
+
claim: Operational alerts require an acknowledgement path.
|
|
33
|
+
state: agreed
|
|
34
|
+
confidence: high
|
|
35
|
+
sources:
|
|
36
|
+
- source_id: context.early-material.abc123
|
|
37
|
+
document: SRC-007
|
|
38
|
+
locator: "meeting 2025-04-12, 00:18:42-00:20:10"
|
|
39
|
+
speaker_role: Operations lead
|
|
40
|
+
contradictions: []
|
|
41
|
+
review_owner: Product owner
|
|
42
|
+
review_status: pending
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Use source-local aliases such as `SRC-007` when filenames are sensitive. Keep the alias-to-path mapping only in the private manifest or another gitignored index.
|
|
46
|
+
|
|
47
|
+
## Decision semantics
|
|
48
|
+
|
|
49
|
+
| State | Minimum evidence |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `stated` | A source contains the claim |
|
|
52
|
+
| `proposed` | A participant or document presents an option |
|
|
53
|
+
| `agreed` | Explicit agreement is recorded, but accountable authority may still be unclear |
|
|
54
|
+
| `decided` | The decision, accountable authority, and selected outcome are evidenced |
|
|
55
|
+
| `implemented` | Live repository or operational evidence corroborates the outcome |
|
|
56
|
+
| `superseded` | Later evidence explicitly replaces the earlier position |
|
|
57
|
+
| `contradicted` | Credible sources support incompatible accounts |
|
|
58
|
+
| `inferred` | Interpretation joins evidence not explicit in a source |
|
|
59
|
+
| `unknown` | Available evidence cannot support a stronger state |
|
|
60
|
+
|
|
61
|
+
An action item is not necessarily a decision. Silence is not agreement. Meeting attendance is not approval. A later implementation can corroborate the outcome but may not prove the original rationale.
|
|
62
|
+
|
|
63
|
+
## Persona routing record
|
|
64
|
+
|
|
65
|
+
Record the selected analysis ensemble:
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
schema: ewai.context-persona-routing/v1
|
|
69
|
+
passes:
|
|
70
|
+
- id: decisions
|
|
71
|
+
question: Which architectural choices and trade-offs are evidenced?
|
|
72
|
+
lead: premium.architecture-decision-mentor
|
|
73
|
+
reviewers: [ewai.core.archaeologist]
|
|
74
|
+
selection_evidence: [CTX-004, CTX-009]
|
|
75
|
+
contribution: pending
|
|
76
|
+
gaps: []
|
|
77
|
+
project_persona_candidates:
|
|
78
|
+
- id: incident-commander
|
|
79
|
+
evidence: [CTX-012, CTX-018]
|
|
80
|
+
status: proposed
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Use the installed persona index for selection. Metadata may be used to choose a persona; do not copy premium persona content into project records. Record a missing perspective rather than inventing an unavailable persona's expertise.
|
|
84
|
+
|
|
85
|
+
## Project actor and persona rules
|
|
86
|
+
|
|
87
|
+
- Prefer a role or context archetype over a named individual.
|
|
88
|
+
- Separate observed responsibilities from inferred goals or personality.
|
|
89
|
+
- Attribute frustrations, needs, and workarounds to source evidence.
|
|
90
|
+
- Represent conflicting experiences rather than averaging them away.
|
|
91
|
+
- Treat project personas as hypotheses until real stakeholders review them.
|
|
92
|
+
- Keep protected characteristics out unless they are relevant, lawful, necessary, and appropriately governed.
|
|
93
|
+
- Promote accepted candidates to `SPECS/1.Scope/personas/project/` and update the project persona registry.
|
|
94
|
+
|
|
95
|
+
## Promotion destinations
|
|
96
|
+
|
|
97
|
+
| Finding | Proposed destination |
|
|
98
|
+
|---|---|
|
|
99
|
+
| Actor, term, boundary, interface, research summary | `SPECS/1.Scope/` |
|
|
100
|
+
| Intent, journey, workflow, requirement, discussion | `SPECS/2.Purpose/` |
|
|
101
|
+
| Source evidence, risk, incident, contradiction | `SPECS/3.Evidence/` |
|
|
102
|
+
| Confirmed non-negotiable rule | `SPECS/4.Constraints/` |
|
|
103
|
+
| ADR, option, architecture, pattern, SOP, runbook | `SPECS/5.Strategy/` |
|
|
104
|
+
| Historical or active delivery evidence | `SPECS/6.Build/` |
|
|
105
|
+
|
|
106
|
+
Require human review before promotion. Require a qualified owner for legal, regulatory, security, privacy, accessibility, employment, or other specialist claims.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ewai-dashboard-configuration
|
|
3
|
+
description: Inspect and change a project's optional EWAI dashboard views and sidebar preference through the shared validated configuration contract. Use when a user wants a simpler dashboard or needs specialist views.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Configure your dashboard
|
|
7
|
+
|
|
8
|
+
Start with `ewai dashboard preferences --project PROJECT --json`. Explain only the options relevant to the user's work, using the returned titles and descriptions. All nine specialist views are off unless selected; the core work views and Configuration remain available.
|
|
9
|
+
|
|
10
|
+
Ask which changes they want when their request is unclear. Reading settings requires no save consent. For agreed changes use:
|
|
11
|
+
|
|
12
|
+
`ewai dashboard configure --enable VIEW --disable OTHER_VIEW --expected-digest DIGEST --yes --project PROJECT --json`
|
|
13
|
+
|
|
14
|
+
Repeat `--enable` or `--disable` for multiple views. Use `--collapse` or `--expand` for the sidebar. Omit options not being changed. Use the digest from the inspected settings; never invent one or silently retry a stale save. If the configuration changed, read it again, explain the difference and reconfirm the intended changes.
|
|
15
|
+
|
|
16
|
+
Confirm what was saved and that the dashboard will pick it up on refresh. Do not edit YAML directly, change global settings or install anything. View preferences do not disable required standards, checks, policies, approvals, hooks or licence checks. Enabling a view does not authorise running scanners, syncing a team service, applying a starter or downloading personas.
|
|
17
|
+
|
|
18
|
+
Premium learning and setup disappear from routine navigation only when access is available and the installed pack is verified. Licence management and recovery remain in Configuration. Use the existing private licence form if requested; never collect a licence key in chat.
|
|
19
|
+
|
|
20
|
+
For a failed read or save, show the safe error and the relevant next step. Do not overwrite malformed configuration, break a lock, broaden the project path or suppress an assurance failure to make the dashboard look simpler.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ewai-deliver
|
|
3
|
+
description: Deliver or resume an EWAI intent through the complete fourteen-stage Engineering With AI harness. Use whenever a user chooses work, asks to continue an intent, requests planning or implementation, resumes shelf-ready work, or asks to move a feature forward. Enforces durable Markdown, JSON and SQLite state, deterministic phase gates, FitCheck, Build approval, Manual QA, and Retro.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# EWAI Deliver
|
|
7
|
+
|
|
8
|
+
This skill is the only supported route from an EWAI intent into planning, Build, delivery, and learning. A host AI's generic planning mode is not an EWAI Plan and cannot replace a pipeline phase.
|
|
9
|
+
|
|
10
|
+
Resolve the workspace and SPECS root from `.ewai-pipeline/project.json`; all logical `SPECS/...` paths in this contract are relative to that configured root. Never assume the workspace itself or the repository being changed owns SPECS.
|
|
11
|
+
|
|
12
|
+
## Delivery contract
|
|
13
|
+
|
|
14
|
+
Before taking delivery action, read [Phase routing](references/phase-routing.md) and [Delivery evidence contracts](references/delivery-evidence.md) completely. They define the purpose, required evidence, and exit condition of every EWAI phase. The project-local contracts returned by `ewai_delivery_required_artefacts` and `ewai_delivery_gate_template` are the executable truth for the current run.
|
|
15
|
+
|
|
16
|
+
Preserve all fourteen stages, the UI Design and FitCheck adjuncts, shelf/resume semantics, recovery, escalation, branch safety, evidence, Manual QA, and Retro. Never shorten the harness merely to finish within one agent turn. Persist the recovery point and continue in another turn when necessary.
|
|
17
|
+
|
|
18
|
+
## Start and resume
|
|
19
|
+
|
|
20
|
+
For new delivery, call `ewai_delivery_begin` (or `ewai delivery begin`) for an existing project-owned intent and identify the current host as `tool`/`--tool` (`claude`, `codex`, or `antigravity`). Antigravity is invoked through the `agy` CLI. That value defines the orchestrator exclusion boundary. For continuing work, call `ewai_delivery_continue` first. Never reconstruct the next phase from chat memory.
|
|
21
|
+
|
|
22
|
+
Before substantial repository navigation or truth claims, call `ewai_index_status`; refresh with `ewai_index_refresh` when the index is missing or stale. Use `ewai_index_search` and `ewai_index_graph` for navigation and blast-radius evidence, then verify material claims against source files.
|
|
23
|
+
|
|
24
|
+
Before phase work, require agreement among:
|
|
25
|
+
|
|
26
|
+
- intent Markdown frontmatter;
|
|
27
|
+
- the adjacent structured intent JSON record;
|
|
28
|
+
- `SPECS/6.Build/<slug>/delivery-state.json`;
|
|
29
|
+
- the SQLite operational projection.
|
|
30
|
+
|
|
31
|
+
If they disagree, stop and reconcile from durable evidence. Do not silently pick a winner.
|
|
32
|
+
|
|
33
|
+
Read the work item through `ewai_read_work_item` before choosing an action. Treat `item.execution.actions` as the shared decision surface used by the dashboard and MCP:
|
|
34
|
+
|
|
35
|
+
- invoke only actions whose `permitted` value is true;
|
|
36
|
+
- explain structured blockers when an action is false;
|
|
37
|
+
- never infer permission from `item.lane`, intent `status`, or a phase label alone;
|
|
38
|
+
- allow a draft intent to begin the harness when `beginHarness` is permitted; readiness is established inside Intent;
|
|
39
|
+
- honour dependencies at their recorded `required_before` and `required_state`.
|
|
40
|
+
|
|
41
|
+
At each phase entry, read its required artefacts and gate template. Produce every individual artefact at its specified project-local path. A summary document or passing-looking ledger cannot substitute for missing records.
|
|
42
|
+
|
|
43
|
+
When the project policy baseline is enabled, use `$ewai-organisation-policy` at Intent and Plan to verify current confirmed design facts, the deterministic evaluation, required named reviews or bounded exceptions, and every control trace. Treat `not-configured` as non-blocking. Policy evidence never grants Build, Manual QA, certification, deployment, release, production-enforcement, or residual-risk authority.
|
|
44
|
+
|
|
45
|
+
If Intent, Reconcile, Plan, Test Plan, or Pattern Validation exposes a consequential unresolved architecture choice, pause at that exact phase and use `$ewai-architecture` for the smallest useful boundary. Resume only after its relevant proposals are accepted and promoted, or the question is explicitly owned and deferred without violating the current gate. Do not let generic host planning invent architecture, and never postpone a material architecture decision until Build.
|
|
46
|
+
|
|
47
|
+
## Validation routing and cycles
|
|
48
|
+
|
|
49
|
+
Read the resolved `validation` snapshot in `SPECS/6.Build/<slug>/delivery-state.json`; do not infer reviewers from whichever CLIs happen to be installed.
|
|
50
|
+
|
|
51
|
+
For external Plan, Test Plan, and Code validation:
|
|
52
|
+
|
|
53
|
+
1. Use only providers listed on that phase under `validation.providers`.
|
|
54
|
+
2. Never use the recorded orchestrator as its own independent validator.
|
|
55
|
+
3. Give each validator the configured `breadth`, `depth`, and `output` boundary.
|
|
56
|
+
4. Run no more than `maxCycles` review-and-fix cycles per provider.
|
|
57
|
+
5. Save every response and resulting fix evidence under the phase directory.
|
|
58
|
+
6. Record each cycle through `ewai_delivery_record_validation_cycle` or `ewai delivery validation-cycle`.
|
|
59
|
+
7. Complete only when every selected provider's latest cycle passes. If findings remain at the cycle limit, report the block.
|
|
60
|
+
|
|
61
|
+
An external phase marked `not-supported` honestly records that no independent reviewer was selected. It never weakens Standards Sweep: use `$ewai-standards-check`, produce `standards-sweep.md`, and confirm accepted SPECS standards regardless of provider availability. Standards compliance cannot be disabled or waived.
|
|
62
|
+
|
|
63
|
+
## Phase boundaries
|
|
64
|
+
|
|
65
|
+
Use guarded operations only:
|
|
66
|
+
|
|
67
|
+
- `ewai_delivery_start_phase`
|
|
68
|
+
- `ewai_delivery_record_gate`
|
|
69
|
+
- `ewai_delivery_record_validation_cycle`
|
|
70
|
+
- `ewai_delivery_complete_phase`
|
|
71
|
+
- `ewai_delivery_approve_build`
|
|
72
|
+
- `ewai_delivery_approve_manual_qa`
|
|
73
|
+
|
|
74
|
+
Never mutate a raw phase or status. A phase completes only with its passing EWAI gate ledger and fresh, hashed project evidence. Record meaningful progress events for the dashboard.
|
|
75
|
+
|
|
76
|
+
Plan must produce `build-plan.md`, `destination.md`, the Claim Ledger, Plan Contract, and complete `task-graph.json`. The deterministic task-graph validator checks source records, claim and slice coverage, dependencies, cycles, write-set isolation, branch uniqueness, task contracts, waves, evidence paths, and review/merge ownership. Do not author its passing output manually.
|
|
77
|
+
|
|
78
|
+
## Persona-led test scenario integration
|
|
79
|
+
|
|
80
|
+
During Test Plan, use `$ewai-test-scenarios` when personas can materially expand coverage of user journeys, permissions, accessibility, security or privacy, operations, recovery, misuse, adversarial behaviour, or other role-specific concerns. Preparation must show the active persona ensemble and keep authoritative sources, persona hypotheses, and human decisions distinct. Scenario evidence is conditional and additive: do not make `test-scenarios.json` or `test-scenarios.md` a retroactive phase requirement for historical or unrelated deliveries.
|
|
81
|
+
|
|
82
|
+
During Build, use `$ewai-test-scenarios` when an accepted automated or hybrid scenario applies to the leased task. Build the failing test first, preserve the accepted scenario oracle, and retain traceability from scenario ID to test result. Manual QA, specialist assurance, and representative-user validation remain named human evidence routes and cannot be completed through persona simulation.
|
|
83
|
+
|
|
84
|
+
For user-interface work, use `$ewai-design-system-apply` during UI Design, then `$ewai-prototype-iteration` to review the plan and produced design with independently selected relevant personas before selecting the runnable prototype. New deliveries must link the immutable application receipt, reviewed plan, and final design cycle through `ewai.prototype-manifest/v3`; historical v1/v2 manifests remain readable but cannot complete a newly stamped v3 UI Design contract. UI Design must include a selected runnable prototype and its project-local prototype manifest. Build cannot use a narrative design document, an unlinked design-system prompt, persona advice, or an unassessed persona finding as a substitute for a prototype decision.
|
|
85
|
+
|
|
86
|
+
Build approval must be an explicit human decision in the current conversation and a durable approval record. Until then, stop before branch creation or code writing. Manual QA must likewise be explicitly approved before Retro.
|
|
87
|
+
|
|
88
|
+
## Build task ownership and evidence
|
|
89
|
+
|
|
90
|
+
After Build is approved and entered, read `item.execution.tasks`. Only a task listed under `item.execution.actions.acquireTask.candidates` may start.
|
|
91
|
+
|
|
92
|
+
For every task agent:
|
|
93
|
+
|
|
94
|
+
1. Acquire `ewai_acquire_execution_lease` with the exact task ID, stable owner ID, current tool, and run ID.
|
|
95
|
+
2. Keep the private lease token within that worker context; never write it to SPECS, reports, chat, or source control.
|
|
96
|
+
3. Work only inside the declared write set and task branch/worktree. The orchestrator remains the only writer for central delivery files, gate ledgers, and merges.
|
|
97
|
+
4. Renew the lease at material checkpoints before expiry; do not publish empty heartbeat events.
|
|
98
|
+
5. Follow the task's explicit red, green, and refactor contract.
|
|
99
|
+
6. In interactive delivery, write both `tasks/<id>/report.md` and the task's `evidence_path` JSON. In AFK delivery, the worker changes only its repository write set and the conductor writes both records centrally from captured execution facts. The JSON must cite captured command outputs and hashes, changed files, declared and actual branch/commit, repository, review evidence, and every planned completion check.
|
|
100
|
+
7. Release with the truthful outcome. EWAI will not accept `completed` from narrative alone; structured evidence must validate first.
|
|
101
|
+
|
|
102
|
+
Execution leases are disposable coordination state. The task graph, report, structured evidence, delivery state, and gate evidence are the durable project record. Never use “claim” to mean task ownership; the Claim Ledger records implementation truth.
|
|
103
|
+
|
|
104
|
+
Start the intent-level active session with a stable `ownerId`. A different orchestrator cannot silently replace it; finish or explicitly hand off first.
|
|
105
|
+
|
|
106
|
+
## Unattended Build conductor
|
|
107
|
+
|
|
108
|
+
When the user explicitly asks EWAI to continue approved Build work while they are away, use the AFK conductor instead of inventing a host-specific background loop:
|
|
109
|
+
|
|
110
|
+
1. Call `ewai_afk_preflight` and explain every blocker. Never weaken the task graph to make preflight pass.
|
|
111
|
+
2. Confirm the user has already approved Build and understands the bounded scope, provider choice, maximum parallel tasks, and timeout.
|
|
112
|
+
3. Call `ewai_afk_start`. Report the durable run ID and how to pause, resume, cancel, and inspect it; do not expose lease tokens or raw prompts.
|
|
113
|
+
4. Use `ewai_afk_status` for updates. Translate semantic run/task states into human language rather than streaming model internals.
|
|
114
|
+
5. A blocked run requires attention; diagnose its preserved log/evidence before `ewai_afk_resume`. Never silently retry a stop condition, failed review, scope breach, merge conflict, or post-merge failure.
|
|
115
|
+
|
|
116
|
+
The conductor is a local Build executor, not a replacement for the fourteen-stage harness. It detects simple and multi-repository topology from the configured `pipeline.yaml`; every task's `repo` must match a configured repository, and exactly one configured repository must contain the configured SPECS root to own durable evidence. The workspace root need not be a Git repository. It creates a missing integration branch from each selected repository's clean current branch, then creates a real task branch/worktree there, leases only ready AFK tasks, limits concurrency to the validated graph, requires a fresh-context review, merges into that repository's declared parent branch in graph order, and runs post-merge checks. It blocks detached heads and refuses to silently switch when the declared integration branch already exists elsewhere. Use `task-graph.json.repository_branches` when repositories have different parent branches. Completion means all eligible Build tasks were integrated; it does not complete the Build phase, Standards Sweep, Test Execute, external validation, Delivery, Manual QA, or Retro.
|
|
117
|
+
|
|
118
|
+
## Human interaction
|
|
119
|
+
|
|
120
|
+
Translate control-plane work into warm, semantic progress such as “Validating the plan against project standards” or “Checking what changed since this work was shelved.” Do not make the user learn the command surface. Ask only decisions the evidence cannot answer.
|
|
121
|
+
|
|
122
|
+
When blocked, retain the exact phase, evidence, questions, and recovery point. When complete, Retro must capture learning and route accepted improvements into project-owned SPECS assets.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# EWAI delivery evidence contracts
|
|
2
|
+
|
|
3
|
+
These are durable project records, not chat summaries. Paths are relative to `SPECS/6.Build/<slug>/` unless stated otherwise.
|
|
4
|
+
|
|
5
|
+
## Task graph
|
|
6
|
+
|
|
7
|
+
`task-graph.json` uses `schema_version: 1` and must contain:
|
|
8
|
+
|
|
9
|
+
- `slug`, `status`, and `parent_branch`;
|
|
10
|
+
- optionally, `repository_branches`, keyed by configured `SPECS/pipeline.yaml` repository name, when repositories use different integration branches;
|
|
11
|
+
- `source.claim_ledger`, `source.plan_contract`, and `source.destination` pointing to real delivery artefacts;
|
|
12
|
+
- `parallelism.allowed`, a positive `max_parallel_tasks`, and rationale;
|
|
13
|
+
- one or more `afk_waves`, with ready tasks, parallel tasks, merge order, and rationale;
|
|
14
|
+
- one or more tasks with unique IDs and branches.
|
|
15
|
+
|
|
16
|
+
Every non-orchestration task requires:
|
|
17
|
+
|
|
18
|
+
- `id`, `slice`, `name`, `issue_kind`, numeric `priority`, `parallel_wave`, `classification`, `repo`, and `branch`;
|
|
19
|
+
- `depends_on` and Claim Ledger `claims`;
|
|
20
|
+
- `user_visible_outcome`, `read_set`, `write_set`, and `central_writes_allowed`;
|
|
21
|
+
- `module_interface_contract` containing `module`, `interface`, `behaviour_owned`, `caller_contract`, and `test_boundary`;
|
|
22
|
+
- `first_failing_test` or an explicit rationale;
|
|
23
|
+
- `red_green_refactor` containing `red_command`, `expected_red_failure`, `green_command`, and `refactor_boundary`;
|
|
24
|
+
- bounded `allowed_commands`, `stop_conditions`, and named `completion_evidence`;
|
|
25
|
+
- a bounded `ralph_loop` contract even when it is disabled;
|
|
26
|
+
- `review.fresh_context_required: true`, `review.review_tests_first: true`, and binding `standards_pushed`;
|
|
27
|
+
- `merge.orchestrator_owned: true` and `post_merge_checks`;
|
|
28
|
+
- `report_path` and `evidence_path`, normally `tasks/T-###/report.md` and `tasks/T-###/evidence.json`.
|
|
29
|
+
|
|
30
|
+
Every task `repo` must exactly match a configured repository name. Use branch names that are siblings of the integration branch, such as `ewai-afk-example-T-001-slice`; do not put a child ref below an existing branch such as `feature/example/T-001`, because Git cannot store both `feature/example` and `feature/example/T-001`. The AFK conductor preserves the declared task branch in evidence and records the actual safe branch it created.
|
|
31
|
+
|
|
32
|
+
Every actionable Claim Ledger claim must be owned exactly once. Every task claim must exist in the ledger. Every non-orchestration slice must exist in both the Claim Ledger and Plan Contract. The validator rejects cycles, missing dependencies, unsafe central writes, overlapping parallel write sets, and incomplete nested contracts.
|
|
33
|
+
|
|
34
|
+
## Task completion evidence
|
|
35
|
+
|
|
36
|
+
The report remains the human-readable handoff. The evidence sidecar is the machine-verifiable completion record:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"schema": "ewai.task-evidence/v1",
|
|
41
|
+
"task_id": "T-001",
|
|
42
|
+
"repository": "application",
|
|
43
|
+
"task_branch": "ewai-afk-example-T-001-slice",
|
|
44
|
+
"branch": "ewai-afk-example-T-001-slice",
|
|
45
|
+
"base_branch": "feature/example",
|
|
46
|
+
"commit": "full-or-short-commit-id",
|
|
47
|
+
"changed_files": ["src/example.js"],
|
|
48
|
+
"commands": [
|
|
49
|
+
{"stage":"red","command":"npm test -- example","expected_failure":"feature is not implemented","exit_code":1,"output_path":"tasks/T-001/evidence/red.txt","output_sha256":"..."},
|
|
50
|
+
{"stage":"green","command":"npm test -- example","exit_code":0,"output_path":"tasks/T-001/evidence/green.txt","output_sha256":"..."},
|
|
51
|
+
{"stage":"refactor","command":"npm test -- example","exit_code":0,"output_path":"tasks/T-001/evidence/refactor.txt","output_sha256":"..."}
|
|
52
|
+
],
|
|
53
|
+
"review": {
|
|
54
|
+
"fresh_context": true,
|
|
55
|
+
"tests_reviewed_first": true,
|
|
56
|
+
"status": "pass",
|
|
57
|
+
"reviewer": "independent-session-id",
|
|
58
|
+
"evidence_path": "tasks/T-001/evidence/review.md",
|
|
59
|
+
"evidence_sha256": "..."
|
|
60
|
+
},
|
|
61
|
+
"completion_checks": [
|
|
62
|
+
{"name":"tests pass","status":"pass","evidence_path":"tasks/T-001/evidence/tests.txt","evidence_sha256":"..."}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Capture command output at execution time. Do not write a synthetic output file after the fact. In multi-repository delivery, implementation and checks run in the task's configured repository while the conductor writes this evidence into the project-root SPECS repository. Every changed file must remain within the task write set, command hashes must still match, all named completion obligations must pass, and review must be fresh and tests-first. Narrative alone never completes a task or unlocks its dependants.
|
|
68
|
+
|
|
69
|
+
The AFK conductor may add `post_merge_checks` to the same evidence record. Each item carries the exact command, exit code, output path, and hash produced while the merge was pending. The conductor commits the merge only after these checks pass. This is additional integration evidence; it never substitutes for red, green, refactor, fresh-context review, or the named task completion checks.
|
|
70
|
+
|
|
71
|
+
## Prototype manifest
|
|
72
|
+
|
|
73
|
+
When UI Design applies, create `ui-design-assets/prototypes/manifest.json`:
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"schema": "ewai.prototype-manifest/v1",
|
|
78
|
+
"status": "selected",
|
|
79
|
+
"selected": {
|
|
80
|
+
"title": "Chosen interaction",
|
|
81
|
+
"path": "ui-design-assets/prototypes/selected.html",
|
|
82
|
+
"decision": "Why this option was selected"
|
|
83
|
+
},
|
|
84
|
+
"registration": {
|
|
85
|
+
"kind": "prototype",
|
|
86
|
+
"status": "active",
|
|
87
|
+
"path": "ui-design-assets/prototypes/selected.html"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The selected file must be runnable and remain inside the prototypes directory. The registration path must match it so the project dashboard can expose the same approved prototype.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# EWAI phase routing
|
|
2
|
+
|
|
3
|
+
The sequence below is mandatory. At every entry, use the project-local required-artefact contract and gate template. At every exit, record the gate and complete the phase through guarded EWAI operations.
|
|
4
|
+
|
|
5
|
+
| Stage | Purpose | Exit evidence |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| 1. Ideate | Turn a rough thought into an inspectable problem and candidate outcome. | Grill ledger and draft intent. |
|
|
8
|
+
| 2. Intent | Establish purpose, scope, users, acceptance evidence, constraints, dependencies, and readiness. | Accepted intent summary and dependency checks. |
|
|
9
|
+
| 3. Reconcile | Compare intent with existing repository behaviour and resolve disagreement. | Repository-grounded reconciliation. |
|
|
10
|
+
| UI Design | For user-facing work, agree the interaction and visual outcome before planning code. | Design record plus selected runnable prototype manifest. |
|
|
11
|
+
| 4. Plan | Define vertical slices, claims, interfaces, tasks, write sets, sequencing, and implementation flow. | Build Plan, Claim Ledger, Plan Contract, destination, and task graph. |
|
|
12
|
+
| 5. Pattern Validation | Challenge the plan against local architecture, patterns, standards, and source truth. | Passing pattern and contract checks. |
|
|
13
|
+
| 6. Test Plan | Design proportional tests and explicit red/green/refactor evidence for every task and claim. | Test Plan plus task/test traceability. |
|
|
14
|
+
| 7. Validate External Plan | Where configured, independently challenge the implementation plan. | Provider reviews, findings matrix, actions, and final passes. |
|
|
15
|
+
| 8. Validate External Test Plan | Where configured, independently challenge coverage and test design. | Provider reviews, findings matrix, actions, and final passes. |
|
|
16
|
+
| FitCheck | On resume or immediately before Build, check drift in code, standards, dependencies, and plan assumptions. | FitCheck report and any repaired plan evidence. |
|
|
17
|
+
| 9. Build | Implement task contracts after explicit human approval, using leases and red/green/refactor. | Per-task narrative reports and machine-verifiable evidence JSON. |
|
|
18
|
+
| 10. Standards Sweep | Verify the actual change against every binding project standard. | Standards report with no unresolved mandatory failures. |
|
|
19
|
+
| 11. Test Execute | Run the planned suites and preserve outcomes. | Test execution report and captured output. |
|
|
20
|
+
| 12. Validate External Code | Where configured, independently review the final change. | Provider reviews, findings matrix, actions, and final passes. |
|
|
21
|
+
| 13. Delivery | Integrate task branches, run post-merge checks, prepare human walkthrough, and prove done. | Delivery checklist, task completion, and QA walkthrough. |
|
|
22
|
+
| Manual QA | Let a human validate the real outcome. | Explicit durable approval or a return to corrective work. |
|
|
23
|
+
| 14. Retro | Learn from the whole cycle and improve project knowledge and pipeline assets. | Retrospective, metrics, curated knowledge, and owned improvements. |
|
|
24
|
+
|
|
25
|
+
## Conditional paths
|
|
26
|
+
|
|
27
|
+
- Use shelf mode to stop after validated planning; resume only through FitCheck.
|
|
28
|
+
- Escalate when evidence cannot resolve a consequential choice. Persist the question and exact recovery point.
|
|
29
|
+
- Recover interrupted work from intent Markdown, intent JSON, delivery state, task evidence, and SQLite; never from chat memory.
|
|
30
|
+
- Route a new idea or discovered gap through Intent shaping before delivery.
|
|
31
|
+
- Where several intents share a product outcome, preserve their dependency and sequencing relationships rather than collapsing them into one oversized intent.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ewai-design-system-apply
|
|
3
|
+
description: Apply a resolved EWAI design system to an existing UI-bearing delivery through bounded context, visible contextual personas, and an immutable delivery receipt. Use during UI Design or Prototype work before selecting a runnable prototype, or when an existing design application must be re-prepared after focus or source changes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# EWAI Design System Apply
|
|
7
|
+
|
|
8
|
+
Apply the project’s selected design system—or the clearly labelled bundled fallback—to one governed delivery. Read [the application contract](references/application-contract.md) before applying it.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. Confirm the delivery exists and its UI Design adjunct is in scope. This skill does not create an intent, begin a delivery, or approve a phase.
|
|
13
|
+
2. Inspect `ewai design-system status --project PROJECT --json`. Stop when a selected system is stale. A fallback is usable guidance but remains visibly unapproved.
|
|
14
|
+
3. Describe the affected surface and current design focus. Keep it narrow enough for relevant context and personas to swap in.
|
|
15
|
+
4. Run `ewai design-system apply DELIVERY_SLUG --focus TEXT --project PROJECT --json`. Add `--budget TOKENS` only when the default budget is unsuitable.
|
|
16
|
+
5. Show the selected and deferred contributions and every active persona’s safe reference, name, tier, matched signals, and reason. Premium personas may enrich an installed catalogue, but the standard path must work without them and must never expose or persist their bodies.
|
|
17
|
+
6. If the result is `non-ready`, do not construct a model prompt or a receipt. Narrow the focus, explicitly increase the budget, or split the operation and run it again.
|
|
18
|
+
7. Use the returned digest-addressed receipt path, receipt digest, and effective design-system digest as the design-system section of `ewai.prototype-manifest/v3`.
|
|
19
|
+
8. Use `$ewai-prototype-iteration` to review the plan and produced design with independently selected relevant personas, then link the reviewed plan and final cycle in v3.
|
|
20
|
+
9. Select the runnable prototype only after the manifest validates. The receipt and persona review record influence and critique, not visual acceptance.
|
|
21
|
+
|
|
22
|
+
## Boundaries
|
|
23
|
+
|
|
24
|
+
- Never mutate the installed design-system pack while applying it.
|
|
25
|
+
- Never conceal fallback mode, deferred mandatory guidance, stale source content, or an unavailable premium tier.
|
|
26
|
+
- Never persist full contribution context, persona definitions, model prompts, credentials, or absolute source paths in a receipt.
|
|
27
|
+
- Never treat application, persona participation, a valid manifest, or static conformance as Build approval, Manual QA, accessibility certification, deviation approval, publication, deployment, or release.
|