@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,398 @@
|
|
|
1
|
+
# CLI and configuration reference
|
|
2
|
+
|
|
3
|
+
This is a compact map of the current public EWAI command families. Use the task-oriented guides for decision and safety context.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
<!-- editorial: contents -->
|
|
7
|
+
## On this page
|
|
8
|
+
|
|
9
|
+
- [Invocation](#invocation)
|
|
10
|
+
- [Project lifecycle](#project-lifecycle)
|
|
11
|
+
- [Premium persona entitlement](#premium-persona-entitlement)
|
|
12
|
+
- [Dashboard and MCP](#dashboard-and-mcp)
|
|
13
|
+
- [Context-Aware Delivery Companion](#context-aware-delivery-companion)
|
|
14
|
+
- [Project and Portfolio Orchestration](#project-and-portfolio-orchestration)
|
|
15
|
+
- [Consultancy and Network Rollout Control Plane](#consultancy-and-network-rollout-control-plane)
|
|
16
|
+
- [Solution Readiness Review](#solution-readiness-review)
|
|
17
|
+
- [Design systems](#design-systems)
|
|
18
|
+
- [Governed Starter Packs](#governed-starter-packs)
|
|
19
|
+
- [Archaeology](#archaeology)
|
|
20
|
+
- [Validation configuration](#validation-configuration)
|
|
21
|
+
- [Intents](#intents)
|
|
22
|
+
- [Guarded delivery](#guarded-delivery)
|
|
23
|
+
- [AFK execution](#afk-execution)
|
|
24
|
+
- [Repository index](#repository-index)
|
|
25
|
+
- [Mind Palace](#mind-palace)
|
|
26
|
+
- [Meeting evidence](#meeting-evidence)
|
|
27
|
+
- [Evidence-to-Knowledge Proposals](#evidence-to-knowledge-proposals)
|
|
28
|
+
- [Packs and personas](#packs-and-personas)
|
|
29
|
+
- [Configuration ownership](#configuration-ownership)
|
|
30
|
+
- [Related guides](#related-guides)
|
|
31
|
+
- [Choose the correct evidence amendment](#choose-the-correct-evidence-amendment)
|
|
32
|
+
|
|
33
|
+
## Invocation
|
|
34
|
+
|
|
35
|
+
Use the command installed for your environment:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ewai <command>
|
|
39
|
+
npx --package @thebackstoryis/engineering-with-ai ewai <command>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Most project commands accept `--project PATH`. Use `--json` for machine-readable output. Preserve reported unknown and not-supported states rather than interpreting them as success.
|
|
43
|
+
|
|
44
|
+
## Project lifecycle
|
|
45
|
+
|
|
46
|
+
| Command | Purpose |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| `ewai install` | Copy or link packaged skills into selected agent hosts. |
|
|
49
|
+
| `ewai init` | Create the project locator and initial SPECS contract. |
|
|
50
|
+
| `ewai checkin` | Inspect framework, entitlement, dashboard, state, standards, validators, and recent work. |
|
|
51
|
+
| `ewai doctor` | Validate project installation and configuration. |
|
|
52
|
+
| `ewai discover` | Prepare and, through its approved workflow, create initial Project SPECS. |
|
|
53
|
+
| `ewai context register` | Register external evidence with authority and processing constraints. |
|
|
54
|
+
|
|
55
|
+
Important options:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ewai install --project . --host auto --mode copy
|
|
59
|
+
ewai init --project . --name "Example Product" --specs SPECS --codex
|
|
60
|
+
ewai discover --project . --answers discovery.yaml --stack ewai.stack.example
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`init --force`, `persona create --force`, and similar overwrite flags require inspection and deliberate authority.
|
|
64
|
+
|
|
65
|
+
## Premium persona entitlement
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
ewai persona premium status --project . --json
|
|
69
|
+
ewai persona premium sync --project . --yes
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
`status` checks licence access and the installed pack, returning `ewai.persona-entitlement/v1` without keys, persona bodies or raw provider errors. It isn't unconditionally read-only: confirmed expiry of the matching team subscription can block access and remove its unchanged managed premium cache. Edited or unsafe content is preserved but isn't treated as active licensed content. Individual expiry keeps the installed pack and stops updates. An unavailable licence service isn't proof of expiry.
|
|
73
|
+
|
|
74
|
+
Use `ewai persona premium configure --project .` for hidden key entry. Submitting the key verifies access, saves it privately and attempts to download and install the pack immediately. For a later update or repair, `sync --yes` confirms that operation. Core personas remain available without a subscription, and your own personas aren't removed. See [Set up premium personas](../operations/premium-personas-setup.md) for the user workflow, or [Persona entitlement and pack providers](../persona-entitlement-provider-guide.md) for the archive and verification contract.
|
|
75
|
+
|
|
76
|
+
## Dashboard and MCP
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ewai dashboard --project .
|
|
80
|
+
ewai server start --project .
|
|
81
|
+
ewai server status --project .
|
|
82
|
+
ewai server stop --project .
|
|
83
|
+
ewai mcp --project .
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The host starts the stdio MCP server. Do not launch a second persistent MCP process for the same project.
|
|
87
|
+
|
|
88
|
+
Nine optional dashboard views start hidden. Use **Configuration** to choose what you need, or read the current settings before changing them:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
ewai dashboard preferences --project . --json
|
|
92
|
+
# Replace DIGEST with the digest returned above.
|
|
93
|
+
ewai dashboard configure --enable portfolio --expected-digest DIGEST --yes --project .
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Use repeated `--enable VIEW` or `--disable VIEW` options, and `--collapse` or `--expand` for the sidebar. View IDs are `portfolio`, `team-hub`, `rollout`, `starters`, `policies`, `security`, `hooks`, `context-inspector` and `phase-studio`. The last two appear as **AI context diagnostics** and **Contributions**. These preferences change navigation, not required checks or approvals. See [Choose what's in your dashboard](../operations/dashboard-configuration.md).
|
|
97
|
+
|
|
98
|
+
## Context-Aware Delivery Companion
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
ewai companion status --project . --json
|
|
102
|
+
ewai companion status --focus "Manual QA ownership" --project . --json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Status returns the bounded, read-only `ewai.companion-guidance/v1` contract. Its
|
|
106
|
+
recommendation class comes from governed execution actions, while installed
|
|
107
|
+
project, core, personal and premium persona metadata may supply visible advisory
|
|
108
|
+
lenses. The Standard host-model baseline is complete without premium content.
|
|
109
|
+
|
|
110
|
+
The equivalent MCP tool is `ewai_companion_status` with an optional focus of up to
|
|
111
|
+
500 characters. The loopback dashboard uses `GET /api/companion`. Neither surface
|
|
112
|
+
accepts a project-root override or exposes a Companion mutation. Begin and continue
|
|
113
|
+
controls delegate to the existing guarded dashboard handoff and are rechecked there.
|
|
114
|
+
|
|
115
|
+
See [Context-Aware Delivery Companion](../context-aware-delivery-companion-guide.md)
|
|
116
|
+
for ranking, persona selection, authority boundaries, responsive behaviour and the
|
|
117
|
+
implementation contract.
|
|
118
|
+
|
|
119
|
+
## Project and Portfolio Orchestration
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
ewai portfolio validate --project . --json
|
|
123
|
+
ewai portfolio status --project . --json
|
|
124
|
+
ewai portfolio status --focus "dependency and ownership" --project . --json
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
The canonical manifest is `SPECS/1.Scope/portfolio.yaml` beneath the configured SPECS root. Project members resolve through repository names already owned by `SPECS/pipeline.yaml` plus bounded relative `project_path` values. Status returns the read-only `ewai.portfolio-workspace/v1` contract, including active persona provenance and standard LLM review questions. The equivalent MCP tool is `ewai_portfolio_status`; neither surface accepts a project-root override or mutation.
|
|
128
|
+
|
|
129
|
+
See [Project and Portfolio Orchestration](../project-portfolio-orchestration-guide.md) for single-repository, monorepo, folder-with-repositories and separately configured repository examples, persona enrichment, recovery and authority boundaries.
|
|
130
|
+
|
|
131
|
+
## Consultancy and Network Rollout Control Plane
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
ewai rollout validate --project . --json
|
|
135
|
+
ewai rollout status --project . --json
|
|
136
|
+
ewai rollout status --focus "Blueprint drift and security evidence" --project . --json
|
|
137
|
+
ewai rollout assurance client-portal --project . --json
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
The canonical policy is `SPECS/1.Scope/rollout.yaml` beneath the configured SPECS root. It assigns existing Portfolio project IDs to governed cohorts and exact Organisation Blueprint baselines, with required structural evidence and named review owners. Repository topology stays in `SPECS/pipeline.yaml` and Portfolio rather than being duplicated here.
|
|
141
|
+
|
|
142
|
+
Status returns the read-only `ewai.rollout-workspace/v1` contract. The equivalent MCP tool is `ewai_rollout_status` with optional `focus` and `projectId`. Focus changes rerun contextual selection across the installed project, core, personal and premium persona catalogue; missing premium content is nonblocking and never fetched by this command family.
|
|
143
|
+
|
|
144
|
+
See [Consultancy and Network Rollout Control Plane](../consultancy-network-rollout-control-plane-guide.md) for policy examples, supported topologies, exact Blueprint comparison, evidence interpretation, active-persona disclosure, isolation, recovery and human authority boundaries.
|
|
145
|
+
|
|
146
|
+
## Solution Readiness Review
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
ewai readiness profiles --project . --json
|
|
150
|
+
ewai readiness prepare <delivery-slug> --profile <profile-id> --project . --json
|
|
151
|
+
ewai readiness review <assessment-id> --input <review-file.json> --reviewed-by "Owner" --project . --json
|
|
152
|
+
ewai readiness status <assessment-id> --project . --json
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Preparation composes current evidence across eleven dimensions: purpose, impact, standards, tests, Manual QA, external validation, security, technology and hosting, operations, documentation, and governance or specialist assurance. It writes a cited briefing and review template without executing scanners, deployment tools or release actions. Review records a named human's decisions as an immutable, digest-bound JSON and Markdown report. Status detects repository, profile, preparation and cited-evidence drift.
|
|
156
|
+
|
|
157
|
+
Every briefing shows the active persona ID, tier and engagement reason. Standard model reasoning plus installed core and project personas forms the baseline; relevant installed personal and premium personas may be swapped in as the profile or evidence gaps change. Premium content is optional and these commands never fetch or synchronise it.
|
|
158
|
+
|
|
159
|
+
The result is advisory evidence. It does not approve Manual QA or release, replace security review, change a delivery gate, deploy software or certify a solution. See [Solution Readiness Review](../solution-readiness-review-guide.md) for profiles, evidence states, persona handling, recovery and the Manual QA walkthrough.
|
|
160
|
+
|
|
161
|
+
## Design systems
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
ewai design-system status --project . --json
|
|
165
|
+
ewai design-system list --project . --json
|
|
166
|
+
ewai design-system inspect <pack-id> --project . --json
|
|
167
|
+
ewai design-system resolve <pack-id> --project . --json
|
|
168
|
+
ewai design-system validate <candidate-folder> --project . --json
|
|
169
|
+
ewai design-system install <candidate-folder> --scope project|personal --expected-digest <digest> --yes --project . --json
|
|
170
|
+
ewai design-system select <pack-id> --expected-digest <effective-digest> --approved-by "Owner" --yes --project . --json
|
|
171
|
+
ewai design-system apply <delivery-slug> --focus "affected surface" --project . --json
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Validation is read-only. Installation is exact-digest, non-overwriting, and does not select. Selection is a separate named project decision. Application is available only to an existing UI-bearing delivery, uses bounded context and visible active-persona metadata, and emits an immutable receipt without source or persona bodies. `mandatory-overflow` is non-ready and writes no receipt.
|
|
175
|
+
|
|
176
|
+
Newly stamped UI deliveries link the returned receipt, reviewed plan, and final persona-guided design cycle through `ewai.prototype-manifest/v3`. Historical v1 and v2 manifests remain readable. Use `ewai prototype-review status|plan-prepare|plan-record|cycle-prepare|cycle-record|compare` for the deterministic review contracts. See the [design-system user guide](../design-systems/design-system-user-guide.md), [persona-guided prototype iteration](../persona-guided-prototype-iteration.md), and [implementation guide](../design-systems/design-system-implementation-guide.md).
|
|
177
|
+
|
|
178
|
+
## Governed Starter Packs
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
ewai starter status --project . --json
|
|
182
|
+
ewai starter adapters --project . --json
|
|
183
|
+
ewai starter digest application=./reviewed-starter --json
|
|
184
|
+
ewai starter adapter-validate ./adapter --project . --json
|
|
185
|
+
ewai starter adapter-register ./adapter --project . --yes --json
|
|
186
|
+
ewai starter preview <receipt-id> --adapter <adapter-id> --project . --yes --json
|
|
187
|
+
ewai starter apply <preview-id> --project . --yes --approved-by "Owner" --json
|
|
188
|
+
ewai starter recover <attempt-id> --project . --yes --json
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
`digest` accepts one or more `ROLE=FOLDER` values and returns canonical per-target and aggregate digests without exposing source folders in its output. Adapter registration executes no adapter but records an explicit trusted-code decision. Preview runs the registered adapter in bounded staging and changes no application repository. Apply accepts only the immutable preview ID, confirmation, and named approver; the caller cannot resend a file plan. Recovery removes only unchanged journal-owned content.
|
|
192
|
+
|
|
193
|
+
Project topology is configured separately:
|
|
194
|
+
|
|
195
|
+
```yaml
|
|
196
|
+
repositories:
|
|
197
|
+
- name: api
|
|
198
|
+
path: services/api
|
|
199
|
+
role: service
|
|
200
|
+
- name: web
|
|
201
|
+
path: clients/web
|
|
202
|
+
role: client
|
|
203
|
+
starter_materialisation:
|
|
204
|
+
targets:
|
|
205
|
+
- role: api
|
|
206
|
+
repository: api
|
|
207
|
+
path: .
|
|
208
|
+
- role: web
|
|
209
|
+
repository: web
|
|
210
|
+
path: src
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
See [Governed Starter-Project Materialisation](../governed-starter-project-materialisation-guide.md) for single-repository, monorepo, multi-repository, adapter protocol, persona, evidence, and recovery guidance.
|
|
214
|
+
|
|
215
|
+
## Archaeology
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
ewai archaeology prepare-personas <bundle> --project .
|
|
219
|
+
ewai archaeology validate-personas <bundle> --project .
|
|
220
|
+
ewai archaeology prepare-technology-hosting <bundle> --project .
|
|
221
|
+
ewai archaeology record-technology-hosting <bundle> --input <project-file.json> --reviewed-by "Owner" --project .
|
|
222
|
+
ewai archaeology technology-hosting-status <bundle> --project .
|
|
223
|
+
ewai archaeology validate <bundle> --project .
|
|
224
|
+
ewai archaeology prepare-review <bundle> --project .
|
|
225
|
+
ewai archaeology curate <bundle> --project . --yes --approved-by "Owner"
|
|
226
|
+
ewai archaeology validate-completion <bundle> --project .
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
These commands support a prepared Archaeology bundle. The human purpose briefing and conversational investigation come first.
|
|
230
|
+
|
|
231
|
+
Technology and hosting preparation requires a fresh Repository Source Map and a valid, user-reviewed persona-routing gate. It writes an evidence briefing and answer template into the bundle. Recording distinguishes repository-observed, owner-declared and individually human-confirmed claims; it does not rewrite canonical stack strategy. Status reports drift without refreshing or mutating the index. See [Archaeology technology and hosting discovery](../archaeology-technology-and-hosting-discovery.md).
|
|
232
|
+
|
|
233
|
+
## Validation configuration
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
ewai validation list --project . --orchestrator codex
|
|
237
|
+
ewai validation set claude available --enabled --project .
|
|
238
|
+
ewai validation set codex unavailable --disabled --project .
|
|
239
|
+
ewai validation checkpoint implementation-plan --cycles 2 --validators auto --project .
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Checkpoint names are `implementation-plan`, `test-plan`, and `code`. Review settings include breadth, depth, and output size. EWAI excludes the current orchestrator from independent validation.
|
|
243
|
+
|
|
244
|
+
## Intents
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
ewai intent create <slug> --domain <domain> --title "Title"
|
|
248
|
+
ewai intent map-create request.yaml --project . --yes --approved-by "Owner"
|
|
249
|
+
ewai intent audit-state --project .
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Persona attachments use repeated values shaped as `REF:ROLE:DEPTH` on intent creation.
|
|
253
|
+
|
|
254
|
+
## Guarded delivery
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
ewai delivery begin <slug> --project . --tool codex
|
|
258
|
+
ewai delivery status <slug> --project .
|
|
259
|
+
ewai delivery continue <slug> --project .
|
|
260
|
+
ewai delivery resume <slug> --project . --tool codex
|
|
261
|
+
ewai delivery gate-template <slug> <phase> --project .
|
|
262
|
+
ewai delivery gate <slug> <phase> --input gate.json --project .
|
|
263
|
+
ewai delivery phase-start <slug> <phase> --project .
|
|
264
|
+
ewai delivery phase-complete <slug> <phase> --artefact <path> --project .
|
|
265
|
+
ewai delivery ratify-amendments <slug> --project . --yes --approved-by "Owner" --scope "Approved amendments"
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Human gates:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
ewai delivery approve-build <slug> --project . --yes --approved-by "Owner" --scope "Approved scope"
|
|
272
|
+
ewai delivery approve-manual-qa <slug> --project . --yes --approved-by "Owner" --evidence <path>
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Do not use low-level phase and gate commands to manufacture evidence. They exist to record a completed canonical workflow. Amendment ratification is allowed only at the pre-Build boundary, revalidates every completed ledger, and remains separate from Build approval.
|
|
276
|
+
|
|
277
|
+
External cycle evidence:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
ewai delivery validation-cycle <slug> <phase> \
|
|
281
|
+
--provider claude \
|
|
282
|
+
--outcome pass \
|
|
283
|
+
--response <path> \
|
|
284
|
+
--project .
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Honour the resolved provider list and cycle limit.
|
|
288
|
+
|
|
289
|
+
## AFK execution
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
ewai afk preflight <slug> --provider auto --parallel 1 --project .
|
|
293
|
+
ewai afk start <slug> --provider auto --parallel 1 --timeout-minutes 60 --project .
|
|
294
|
+
ewai afk status <run-id> --project .
|
|
295
|
+
ewai afk pause <run-id> --project .
|
|
296
|
+
ewai afk resume <run-id> --project .
|
|
297
|
+
ewai afk cancel <run-id> --project .
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
AFK is constrained by the approved task graph, write sets, commands, leases, evidence, and stop conditions. It is not permission to widen scope.
|
|
301
|
+
|
|
302
|
+
## Repository index
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
ewai index refresh --project .
|
|
306
|
+
ewai index status --project .
|
|
307
|
+
ewai index freshness --project .
|
|
308
|
+
ewai index coverage --project .
|
|
309
|
+
ewai index profiles [--source core|technology|stack|organisation|project] [--analyser NAME] [--limit N] --project .
|
|
310
|
+
ewai index files [--outcome OUTCOME] [--classification CLASS] [--profile ID] [--repository NAME] [--query TEXT] [--limit N] --project .
|
|
311
|
+
ewai index search <query> --limit 20 --project .
|
|
312
|
+
ewai index graph <target> --limit 20 --project .
|
|
313
|
+
ewai index truth <slug> --limit 20 --project .
|
|
314
|
+
ewai index similar <slug> --limit 20 --project .
|
|
315
|
+
ewai index standards <target> --project .
|
|
316
|
+
ewai index standards-coverage <slug> --project .
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
`coverage`, `profiles`, and `files` are safe Repository Source Map projections. They expose repository-relative evidence and profile provenance without file content, analysis metadata, fingerprints, or repository roots. Registered analyser filters include `inventory-only`, `text-summary`, `structured-keys`, `tree-sitter`, `power-platform-metadata`, and `salesforce-metadata`. Coverage includes an explicit partial-platform count. See [Repository Source Map](../repository-source-map-guide.md) for profile configuration, topology examples, and safety limits, and [platform export analysis](../platform-export-analysis-guide.md) for extracted Power Platform and Salesforce source.
|
|
320
|
+
|
|
321
|
+
## Mind Palace
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
ewai palace refresh --project .
|
|
325
|
+
ewai palace status --project .
|
|
326
|
+
ewai palace search <query> --limit 20 --project .
|
|
327
|
+
ewai palace tidiness --project .
|
|
328
|
+
ewai palace housekeeping --project .
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
The Palace is a navigational index of canonical SPECS. Housekeeping changes require review.
|
|
332
|
+
|
|
333
|
+
## Meeting evidence
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
ewai meeting register FILE --project . --yes --label "Product sync" --classification internal --cloud-processing allowed --json
|
|
337
|
+
ewai meeting prepare SOURCE_ID --project . --json
|
|
338
|
+
ewai meeting review SOURCE_ID --input ./meeting-review.json --reviewed-by "Product Owner" --project . --json
|
|
339
|
+
ewai meeting status [SOURCE_ID] --project . --json
|
|
340
|
+
ewai meeting promote SOURCE_ID --project . --yes --approved-by "Product Owner" --json
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
Registration supports Markdown, text, VTT and SRT sources and records the absolute path only in private gitignored runtime state. `prepare` returns a processing decision, strict candidate contract and contextual active personas; it makes no model call. When cloud processing is denied or unknown, a hosted agent must use the reported manual-local route and must not inspect the source.
|
|
344
|
+
|
|
345
|
+
Review input must be a project-relative JSON file containing the exact candidate bundle and one named disposition for every candidate. Promotion is a separate evidence-only confirmation. It writes accepted and amended candidates to paired evidence files but cannot create tasks, intents, requirements, policies, approvals or releases.
|
|
346
|
+
|
|
347
|
+
See the [Meeting evidence user guide](../meeting-evidence-user-guide.md) and [implementer guide](../meeting-evidence-implementer-guide.md).
|
|
348
|
+
|
|
349
|
+
## Evidence-to-Knowledge Proposals
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
ewai knowledge sources --project . --json
|
|
353
|
+
ewai knowledge prepare SOURCE_REF [--focus TEXT] --project . --json
|
|
354
|
+
ewai knowledge record SOURCE_REF --input FILE --project . --json
|
|
355
|
+
ewai knowledge review BUNDLE_ID --input FILE --reviewed-by NAME --project . --json
|
|
356
|
+
ewai knowledge materialise BUNDLE_ID --yes --approved-by NAME --project . --json
|
|
357
|
+
ewai knowledge recover BUNDLE_ID --yes --project . --json
|
|
358
|
+
ewai knowledge status [BUNDLE_ID] --project . --json
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
The matching MCP tools use the `ewai_knowledge_proposal_` prefix. Preparation is read-only and exposes bounded source context only to the CLI or MCP host; loopback browser preparation strips the context body. Recording writes proposal evidence only. Review must be complete and named. Materialisation is a later named, exact-confirmation decision that adds absent files, recognises identical content and preserves differences as conflicts. Recovery may remove unchanged partial writes only when their recorded digests match. It preserves edits, unsafe paths and older writes without digests, retains the journal and reports `KNOWLEDGE_RECOVERY_REQUIRES_REVIEW`. Recovery requires explicit confirmation and is marked destructive in MCP metadata.
|
|
362
|
+
|
|
363
|
+
See the [Evidence-to-Knowledge Proposals user guide](../knowledge-proposals-user-guide.md) and [implementer guide](../knowledge-proposals-implementer-guide.md).
|
|
364
|
+
|
|
365
|
+
## Packs and personas
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
ewai pack list
|
|
369
|
+
ewai persona index --project . --query <topic>
|
|
370
|
+
ewai persona list --project . --query <topic>
|
|
371
|
+
ewai persona create <slug> --scope project --project . --name "Name" --category <category>
|
|
372
|
+
ewai persona path --scope project --project .
|
|
373
|
+
ewai persona premium sync --project . --yes
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
Premium sync is never an automatic check-in action. Obtain explicit consent and preserve managed provenance.
|
|
377
|
+
|
|
378
|
+
## Configuration ownership
|
|
379
|
+
|
|
380
|
+
| File | Purpose |
|
|
381
|
+
| --- | --- |
|
|
382
|
+
| `.ewai-pipeline/project.json` | Runtime locator for project and configured SPECS root |
|
|
383
|
+
| `SPECS/pipeline.yaml` | Durable project, repositories, packs, approvals, and validation policy |
|
|
384
|
+
| `.mcp.json` | Claude Code project MCP entry |
|
|
385
|
+
| `.codex/config.toml` | Codex project MCP entry |
|
|
386
|
+
| `.agents/mcp_config.json` | Google Antigravity project MCP entry |
|
|
387
|
+
|
|
388
|
+
Do not store secrets in these examples or commit runtime logs and SQLite state as project truth.
|
|
389
|
+
|
|
390
|
+
## Related guides
|
|
391
|
+
|
|
392
|
+
- [Installation, updating, and entitlements](../operations/installation-updating-and-entitlements.md)
|
|
393
|
+
- [Dashboard and delivery state](../operations/dashboard-and-delivery-state.md)
|
|
394
|
+
- [Troubleshooting and recovery](../operations/troubleshooting-and-recovery.md)
|
|
395
|
+
|
|
396
|
+
## Choose the correct evidence amendment
|
|
397
|
+
|
|
398
|
+
Use [Which amendment operation?](../completed-phase-evidence-amendments.md#which-amendment-operation) to distinguish pre-Build `ratify-amendments` from `evidence-amendment` for stale nested evidence references. They aren't interchangeable, and neither supplies approval to implement or release.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Contributions API
|
|
2
|
+
|
|
3
|
+
For integration authors and engineers changing EWAI's local dashboard. Contributors should use the [Contributions guide](../guided-phase-evidence-drafting-guide.md).
|
|
4
|
+
|
|
5
|
+
## Loopback API for implementers
|
|
6
|
+
|
|
7
|
+
The dashboard uses six work-item-scoped routes:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
GET /api/work-items/:slug/phase-studio
|
|
11
|
+
POST /api/work-items/:slug/phase-studio/draft
|
|
12
|
+
DELETE /api/work-items/:slug/phase-studio/draft
|
|
13
|
+
POST /api/work-items/:slug/phase-studio/handoff
|
|
14
|
+
POST /api/work-items/:slug/phase-studio/review
|
|
15
|
+
POST /api/work-items/:slug/phase-studio/confirm
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The server supplies the project root, SPECS root, intent, current phase, profile, persona catalogue and evidence destinations. Requests cannot override them. Mutations require the matching loopback dashboard origin, bounded allowlisted JSON, a current expected revision and the relevant digest or confirmation.
|
|
19
|
+
|
|
20
|
+
The reusable domain is [phase-contributions domain module](../../src/runtime/phase-contributions.mjs). It reads delivery and execution state but imports no phase-transition, approval, Manual QA, security-disposition, deployment or release operation.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
These are local dashboard routes, not a remotely hosted collaboration API. The visible view is **Contributions**; `phase-studio` remains its internal route ID. Don't rename an integration route to match a UI label.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Write a security adapter
|
|
2
|
+
|
|
3
|
+
This reference is for engineers supplying an organisation-owned wrapper or translating an external tool's output into EWAI's contract. EWAI doesn't ship a universal scanner wrapper. To use an existing reviewed adapter, follow [the operating guide](../security-validation-guide.md#registered-command-adapter).
|
|
4
|
+
|
|
5
|
+
Create a dedicated adapter folder containing an executable and `security-adapter.json`:
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"schema": "ewai.security-adapter/v1",
|
|
10
|
+
"id": "org.example.security",
|
|
11
|
+
"name": "Example security adapter",
|
|
12
|
+
"publisher": {
|
|
13
|
+
"id": "org.example",
|
|
14
|
+
"name": "Example Organisation"
|
|
15
|
+
},
|
|
16
|
+
"version": "1.0.0",
|
|
17
|
+
"protocolVersion": "1",
|
|
18
|
+
"capabilities": ["source-static", "secret-detection"],
|
|
19
|
+
"entrypoint": "adapter.mjs"
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The manifest is strict. The entrypoint must be a regular executable file inside the adapter folder. Validation reads and hashes it but does not execute it.
|
|
24
|
+
|
|
25
|
+
## Interface safety requirements
|
|
26
|
+
|
|
27
|
+
If you're building an organisation-specific interface, preserve EWAI's exact security assurance notice in security results and error states. Don't shorten, replace or make it dismissible; provider wording doesn't satisfy this requirement. The [operating guide](../security-validation-guide.md) includes the notice and explains its meaning.
|
|
28
|
+
|
|
29
|
+
Keep dashboard operations loopback-only, same-origin, JSON-only and explicitly confirmed. Resolve supported provider imports on the server. Don't add arbitrary command, path, host or provider-URL inputs to the browser interface.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## Minimal executable: report that no scan was performed
|
|
34
|
+
|
|
35
|
+
The following `adapter.mjs` is deliberately **incomplete**. It exercises the response shape without pretending to scan code or certify security. Pair it with the manifest above and make it executable before validation. A production adapter must run the approved tool, normalise its findings and report its actual coverage.
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
#!/usr/bin/env node
|
|
39
|
+
let input = '';
|
|
40
|
+
for await (const chunk of process.stdin) {
|
|
41
|
+
input += chunk;
|
|
42
|
+
if (Buffer.byteLength(input) > 65536) process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
const request = JSON.parse(input);
|
|
46
|
+
if (request.schema !== 'ewai.security-scan-request/v1' ||
|
|
47
|
+
typeof request.runId !== 'string') process.exit(1);
|
|
48
|
+
process.stdout.write(JSON.stringify({
|
|
49
|
+
schema: 'ewai.security-scan-response/v1',
|
|
50
|
+
runId: request.runId,
|
|
51
|
+
status: 'incomplete',
|
|
52
|
+
complete: false,
|
|
53
|
+
capabilities: ['source-static'],
|
|
54
|
+
findings: [],
|
|
55
|
+
warnings: ['Example adapter: no scan was performed.']
|
|
56
|
+
}) + '\n');
|
|
57
|
+
} catch {
|
|
58
|
+
process.exitCode = 1;
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The example supplies only `source-static`; change the manifest's capabilities to `["source-static"]` to match. It must not satisfy a required security check.
|
|
63
|
+
|
|
64
|
+
## Versioned contracts
|
|
65
|
+
|
|
66
|
+
- [Adapter package](../../config/security-adapter.schema.json)
|
|
67
|
+
- [Full request](../../config/security-scan-request.schema.json)
|
|
68
|
+
- [Full response](../../config/security-scan-response.schema.json)
|
|
69
|
+
- [Policy configuration](../../config/security-validation-policy.schema.json)
|
|
70
|
+
|
|
71
|
+
Echo the exact run ID from the supplied request. Return complete evidence only for work actually performed against the requested scope and revision. Do not relabel an old provider report as current, leak credentials or send raw provider responses as findings.
|
|
72
|
+
|
|
73
|
+
The [source-checkout adapter tests](../../tests/security-validation-runs.test.mjs) show `createAdapter`, complete/incomplete responses and refusal cases. Those fixtures aren't prebuilt production integrations and aren't part of application setup.
|
|
74
|
+
|
|
75
|
+
## Trust and upstream behaviour
|
|
76
|
+
|
|
77
|
+
A registered adapter is trusted local code with operating-system permissions; it **isn't OS-sandboxed**. EWAI bounds execution and validates returned evidence, but those checks don't make an arbitrary scanner safe.
|
|
78
|
+
|
|
79
|
+
Before use, review the upstream tool's data handling, network access, costs and whether it can change source or open pull requests. Preserve the [provider-specific cautions](../security-validation-guide.md#3-working-with-agentic-security); a skill handoff prepares work but doesn't execute that external scanner.
|
|
80
|
+
|
|
81
|
+
Security validation is evidence, not certification or proof that this system is secure. Tools can miss vulnerabilities and produce false positives. A qualified human must review the scope, findings, limitations and residual risk before release.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Write a starter-source adapter
|
|
2
|
+
|
|
3
|
+
For engineers implementing an organisation-owned source adapter. If someone supplies an approved adapter, follow the [operating guide](../governed-starter-project-materialisation-guide.md#validate-and-register-an-adapter) instead.
|
|
4
|
+
|
|
5
|
+
## Implement a generic source adapter
|
|
6
|
+
|
|
7
|
+
An adapter is a small, organisation-owned package:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
starter-source-adapter/
|
|
11
|
+
├── starter-adapter.json
|
|
12
|
+
└── adapter.mjs
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
`starter-adapter.json`:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"schema": "ewai.starter-source-adapter/v1",
|
|
20
|
+
"id": "northstar.approved-source",
|
|
21
|
+
"name": "Northstar approved starter source",
|
|
22
|
+
"publisher": { "id": "northstar", "name": "Northstar Digital" },
|
|
23
|
+
"version": "1.0.0",
|
|
24
|
+
"protocolVersion": "1",
|
|
25
|
+
"sourceClasses": ["https", "git", "archive", "directory", "package", "opaque"],
|
|
26
|
+
"entrypoint": "adapter.mjs"
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The entrypoint must be an executable regular file inside the package. The complete package is bounded and digest-pinned at registration. A same-version content change is rejected.
|
|
31
|
+
|
|
32
|
+
At runtime EWAI starts the exact entrypoint directly, without a shell. It sends one `ewai.starter-source-request/v1` JSON object on standard input. The request contains:
|
|
33
|
+
|
|
34
|
+
- attempt and nonce identifiers;
|
|
35
|
+
- safe project name;
|
|
36
|
+
- the accepted receipt, including source, source class, targets, licence, compatibility, and digest;
|
|
37
|
+
- one bounded staging root;
|
|
38
|
+
- time, output, file, byte, path, and depth limits.
|
|
39
|
+
|
|
40
|
+
It does **not** contain the project root, repository roots, SPECS root, destination mappings, file plan, approver, credentials, environment secrets, or permission to write anywhere except staging.
|
|
41
|
+
|
|
42
|
+
The adapter must:
|
|
43
|
+
|
|
44
|
+
1. parse exactly one request;
|
|
45
|
+
2. resolve and obtain the receipt source using its own approved configuration and credential mechanism;
|
|
46
|
+
3. write only regular files beneath `stagingRoot` using the receipt target `sourcePath` values;
|
|
47
|
+
4. respect every supplied bound;
|
|
48
|
+
5. avoid executing the retrieved starter content;
|
|
49
|
+
6. return only this acknowledgement on standard output:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"schema": "ewai.starter-source-acknowledgement/v1",
|
|
54
|
+
"attemptId": "the-request-attempt-id",
|
|
55
|
+
"nonce": "the-request-nonce",
|
|
56
|
+
"status": "prepared"
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Do not return a file inventory or digest. EWAI deliberately ignores adapter claims about staged content and performs its own verification. Keep logs free of credentials and write diagnostic text to standard error within the output bound.
|
|
61
|
+
|
|
62
|
+
The authoritative schemas are:
|
|
63
|
+
|
|
64
|
+
- [starter-source-adapter.schema.json](../../config/starter-source-adapter.schema.json)
|
|
65
|
+
- [starter-source-request.schema.json](../../config/starter-source-request.schema.json)
|
|
66
|
+
- [starter-source-acknowledgement.schema.json](../../config/starter-source-acknowledgement.schema.json)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
The adapter runs trusted local code with operating-system permissions; it isn't OS-sandboxed. Staging and digest checks protect EWAI's application process, but don't sandbox an arbitrary executable.
|
|
71
|
+
|
|
72
|
+
The [source adapter tests](../../tests/starter-materialisation.test.mjs) contain `writeAdapter`, a complete executable that writes one fixed `application/index.txt` fixture and echoes the request's attempt ID and nonce. Its paired `expectedStarterDigest` and `writeBlueprint` functions define the corresponding bytes and receipt. Read those together; copying only an acknowledgement won't prepare usable content. These are source-checkout fixtures, not a shipped downloader. Use the versioned schemas above as the contract; a provider-specific downloader still needs authentication, error handling and its own security review.
|
|
73
|
+
|
|
74
|
+
Return to [registering and using the adapter](../governed-starter-project-materialisation-guide.md#validate-and-register-an-adapter).
|