@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,353 @@
|
|
|
1
|
+
# Security validation guide
|
|
2
|
+
|
|
3
|
+
EWAI security validation coordinates evidence from security tools, records findings and accountable decisions, and can make configured evidence part of release readiness. It does not install scanners, certify a system, or replace professional security judgement.
|
|
4
|
+
|
|
5
|
+
> 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.
|
|
6
|
+
|
|
7
|
+
You'll see this warning in the CLI, dashboard and API results, including error states. It explains the limit of tool-generated evidence: a result isn't certification, and release still needs qualified human review.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
<!-- editorial: contents -->
|
|
11
|
+
## On this page
|
|
12
|
+
|
|
13
|
+
- [Choose your route before configuring a profile](#choose-your-route-before-configuring-a-profile)
|
|
14
|
+
- [What the capability produces](#what-the-capability-produces)
|
|
15
|
+
- [1. Define the project policy](#1-define-the-project-policy)
|
|
16
|
+
- [2. Choose an integration mode](#2-choose-an-integration-mode)
|
|
17
|
+
- [3. Working with Agentic Security](#3-working-with-agentic-security)
|
|
18
|
+
- [4. Working with DeepSec](#4-working-with-deepsec)
|
|
19
|
+
- [5. Working with Visa Vulnerability Agentic Harness (VVAH)](#5-working-with-visa-vulnerability-agentic-harness-vvah)
|
|
20
|
+
- [6. Review findings and record decisions](#6-review-findings-and-record-decisions)
|
|
21
|
+
- [7. Understand release readiness](#7-understand-release-readiness)
|
|
22
|
+
- [8. Use the dashboard safely](#8-use-the-dashboard-safely)
|
|
23
|
+
- [Troubleshooting](#troubleshooting)
|
|
24
|
+
- [Contract references](#contract-references)
|
|
25
|
+
|
|
26
|
+
## Choose your route before configuring a profile
|
|
27
|
+
|
|
28
|
+
- **Supplied adapter:** obtain the reviewed executable package from its owner, then validate and explicitly register it. A profile naming an adapter doesn't install one.
|
|
29
|
+
- **External skill or provider:** prepare a handoff, run the external workflow separately under its own authority, then translate its actual results into the EWAI response contract.
|
|
30
|
+
- **Supported artefact import:** use the fixed provider-specific files described below. Arbitrary exports and VVAH outputs don't automatically qualify.
|
|
31
|
+
- **Write an integration:** start with the [authoring reference](reference/security-adapter-authoring.md), not a bare provider name in configuration.
|
|
32
|
+
|
|
33
|
+
Trusted adapters aren't OS-sandboxed. Review the tool's permissions, data handling, potential costs and source-modifying behaviour before execution. The provider cautions below remain part of that review.
|
|
34
|
+
|
|
35
|
+
## What the capability produces
|
|
36
|
+
|
|
37
|
+
For each configured security capability, EWAI can produce:
|
|
38
|
+
|
|
39
|
+
- an immutable run record tied to an exact repository or safe target revision;
|
|
40
|
+
- bounded attempt metadata, safe tool identity and explicit redaction status without raw provider output;
|
|
41
|
+
- normalised findings that keep scanner severity separate from EWAI policy consequence;
|
|
42
|
+
- append-only human dispositions with a named reviewer and reason;
|
|
43
|
+
- a current, stale, missing, incomplete, failed or cancelled coverage result;
|
|
44
|
+
- a release-readiness assessment explaining every blocking reason.
|
|
45
|
+
|
|
46
|
+
No findings means only that EWAI has no normalised findings for the selected evidence. It does not mean that the system is secure.
|
|
47
|
+
|
|
48
|
+
## 1. Define the project policy
|
|
49
|
+
|
|
50
|
+
Add `security_validation` to the project’s configured `SPECS/pipeline.yaml`. Security validation is additive: projects without this section keep their existing release semantics.
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
security_validation:
|
|
54
|
+
enabled: true
|
|
55
|
+
profiles:
|
|
56
|
+
- id: source-review
|
|
57
|
+
capability: source-static
|
|
58
|
+
required: true
|
|
59
|
+
freshness_hours: 24
|
|
60
|
+
timeout_seconds: 300
|
|
61
|
+
accountable_role: Security Lead
|
|
62
|
+
modes: [command, skill, artifact-import]
|
|
63
|
+
provider: deepsec
|
|
64
|
+
adapter: org.example.security
|
|
65
|
+
checkpoint: release
|
|
66
|
+
thresholds:
|
|
67
|
+
blocking_severities: [critical, high]
|
|
68
|
+
scope:
|
|
69
|
+
include: [src, tests]
|
|
70
|
+
exclude: [tests/fixtures]
|
|
71
|
+
|
|
72
|
+
- id: agent-red-team
|
|
73
|
+
capability: llm-runtime-red-team
|
|
74
|
+
required: false
|
|
75
|
+
freshness_hours: 24
|
|
76
|
+
timeout_seconds: 600
|
|
77
|
+
accountable_role: AI Assurance Lead
|
|
78
|
+
modes: [skill, artifact-import]
|
|
79
|
+
provider: agentic-security
|
|
80
|
+
checkpoint: release
|
|
81
|
+
target_class: staging
|
|
82
|
+
target_ref: internal-staging-agent
|
|
83
|
+
|
|
84
|
+
- id: visa-source-review
|
|
85
|
+
capability: source-static
|
|
86
|
+
required: false
|
|
87
|
+
freshness_hours: 24
|
|
88
|
+
timeout_seconds: 600
|
|
89
|
+
accountable_role: Security Lead
|
|
90
|
+
modes: [skill]
|
|
91
|
+
provider: visa-vvah
|
|
92
|
+
checkpoint: release
|
|
93
|
+
scope:
|
|
94
|
+
include: [src, packages]
|
|
95
|
+
exclude: [tests/fixtures]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Supported capabilities are:
|
|
99
|
+
|
|
100
|
+
- `source-static`
|
|
101
|
+
- `dependency-sbom`
|
|
102
|
+
- `secret-detection`
|
|
103
|
+
- `infrastructure-configuration`
|
|
104
|
+
- `llm-runtime-red-team`
|
|
105
|
+
|
|
106
|
+
Required profiles must define `freshness_hours`. `thresholds.blocking_severities` defaults to `critical` and `high`; scanner severity and confidence remain separate from that project policy consequence. Scope accepts bounded project-relative `include` and `exclude` lists. A required profile is current only when its latest complete evidence matches the server-resolved revision and snapshotted profile policy, remains within the freshness window, and has no unresolved blocking finding. Runtime red-team profiles must use a preconfigured safe target; production targets are denied by default.
|
|
107
|
+
|
|
108
|
+
Check the resulting contract:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
ewai security status --project .
|
|
112
|
+
ewai security status --project . --json
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 2. Choose an integration mode
|
|
116
|
+
|
|
117
|
+
### Registered command adapter
|
|
118
|
+
|
|
119
|
+
Use a command adapter when an organisation has a reviewed local wrapper that can accept EWAI’s request contract and return its response contract. EWAI does not accept an arbitrary command line.
|
|
120
|
+
|
|
121
|
+
If your organisation supplies a reviewed adapter folder, validate it before registration using the commands below. If you're writing a wrapper, use the [adapter authoring reference](reference/security-adapter-authoring.md) for the full manifest, a minimal non-passing executable and versioned schemas.
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
ewai security adapter-validate ./internal/security-adapter --project .
|
|
125
|
+
ewai security adapter-register ./internal/security-adapter --project . --yes
|
|
126
|
+
ewai security adapters --project .
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Registration pins the trusted folder, manifest and a bounded digest of the complete adapter package. A helper-file, executable or manifest change therefore creates digest drift. A changed package is rejected under the same version; after human review, publish a new manifest version and register it explicitly.
|
|
130
|
+
|
|
131
|
+
Run the profile:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
ewai security run source-review --mode command --project . --yes
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
EWAI starts the exact registered executable directly, without a shell. It sends the versioned JSON request on standard input, bounds execution time and output size, validates the complete JSON response, rejects credential-shaped values, and stores only normalised evidence. Safe tool name/version and a `safe-fields-only` redaction status are retained; raw standard output and standard error are not stored.
|
|
138
|
+
|
|
139
|
+
### Skill handoff
|
|
140
|
+
|
|
141
|
+
Use skill mode when Agentic Security, DeepSec, Visa VVAH or another compatible system is orchestrated outside EWAI. The command prepares a revision-bound handoff containing the capability, project-relative scope and expected response contract:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
ewai security run source-review --mode skill --project . --yes --json
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
The result is `awaiting-evidence`. A handoff is not a successful security result and does not satisfy readiness. The external skill or process must return a valid `ewai.security-scan-response/v1` result through an organisation-owned integration before EWAI can record evidence.
|
|
148
|
+
|
|
149
|
+
### Project-local artefact import
|
|
150
|
+
|
|
151
|
+
Use artefact import when a provider or organisation-owned export process has already produced a supported JSON report inside the project. EWAI only discovers fixed project-local locations and rejects symlinks, incomplete sets, changing files and caller-supplied paths.
|
|
152
|
+
|
|
153
|
+
Supported v1 import locations are:
|
|
154
|
+
|
|
155
|
+
| Provider | Required project-local artefacts |
|
|
156
|
+
| --- | --- |
|
|
157
|
+
| Agentic Security | `.agentic-security/findings.json` and `.agentic-security/last-scan.json` |
|
|
158
|
+
| DeepSec | `.deepsec/report.json` |
|
|
159
|
+
|
|
160
|
+
Visa VVAH is intentionally not in this table. Its scan outputs use dynamic filenames and EWAI does not yet provide a native, revision-verifying VVAH parser. Configure `modes: [skill]` and translate reviewed findings through the versioned response contract instead.
|
|
161
|
+
|
|
162
|
+
Prepare the import first:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
ewai security import-prepare source-review --provider deepsec --project . --json
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Review the provider, profile, revision and detected artefacts. Then use the returned five-minute, single-use discovery token:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
ewai security import DISCOVERY_TOKEN --project . --yes
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The dashboard follows the same two-step flow. The browser never sends a path: the server discovers the allowlisted files, issues the token and rechecks the files before import. Provider evidence must declare the exact revision captured during preparation; a missing or different revision is rejected rather than relabelled as current evidence.
|
|
175
|
+
|
|
176
|
+
## 3. Working with Agentic Security
|
|
177
|
+
|
|
178
|
+
Get Agentic Security from its [official repository](https://github.com/Clear-Capabilities/agentic-security). EWAI’s catalogue describes its broad fit across source, dependency, secret, infrastructure, agent and LLM security surfaces. Check the current upstream documentation and licence before installation or commercial use.
|
|
179
|
+
|
|
180
|
+
EWAI does not install, redistribute, configure, license or endorse Agentic Security. An organisation can integrate it through a reviewed command adapter, a skill handoff, or an exporter that writes the supported project-local artefacts. Treat all results as untrusted input until EWAI validates them, then require a qualified human to review the normalised evidence.
|
|
181
|
+
|
|
182
|
+
If the expected artefacts are absent, run:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
ewai security providers --project .
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
The output reports `not-detected`, links to the official source, and describes the provider’s broad capabilities and cautions. It does not offer an install button.
|
|
189
|
+
|
|
190
|
+
## 4. Working with DeepSec
|
|
191
|
+
|
|
192
|
+
Get DeepSec from the [official repository](https://github.com/vercel-labs/deepsec) or inspect its [npm package](https://www.npmjs.com/package/deepsec). Follow the current upstream setup instructions, including its own project initialisation where applicable.
|
|
193
|
+
|
|
194
|
+
DeepSec is suited to agent-powered source vulnerability investigation and can support resumable scans, revalidation, diff review, and Markdown or JSON reporting. Treat it like a coding agent with shell access. Model use can be expensive on large repositories, and optional sandbox execution may upload a working-tree archive, so review credentials, cost, data handling and repository sensitivity before use.
|
|
195
|
+
|
|
196
|
+
EWAI does not install, configure, license or endorse DeepSec. Use a reviewed adapter or an organisation-owned export step to translate its current output into EWAI’s response or `.deepsec/report.json` import contract.
|
|
197
|
+
|
|
198
|
+
## 5. Working with Visa Vulnerability Agentic Harness (VVAH)
|
|
199
|
+
|
|
200
|
+
Get VVAH from Visa’s [official repository](https://github.com/visa/visa-vulnerability-agentic-harness) and follow the current upstream setup and licensing guidance. EWAI only provides the provider identity, project-local signal discovery, revision-bound skill handoff and evidence contract. EWAI does not install or invoke VVAH, collect its model credentials, run its remediation stages or certify its output.
|
|
201
|
+
|
|
202
|
+
Use a skill-only profile:
|
|
203
|
+
|
|
204
|
+
```yaml
|
|
205
|
+
security_validation:
|
|
206
|
+
enabled: true
|
|
207
|
+
profiles:
|
|
208
|
+
- id: visa-source-review
|
|
209
|
+
capability: source-static
|
|
210
|
+
required: true
|
|
211
|
+
freshness_hours: 24
|
|
212
|
+
timeout_seconds: 600
|
|
213
|
+
accountable_role: Security Lead
|
|
214
|
+
modes: [skill]
|
|
215
|
+
provider: visa-vvah
|
|
216
|
+
checkpoint: release
|
|
217
|
+
scope:
|
|
218
|
+
include: [src, packages]
|
|
219
|
+
exclude: [tests/fixtures]
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Prepare the revision-bound handoff from EWAI:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
ewai security run visa-source-review --mode skill --project . --yes --json
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
The returned handoff identifies the exact revision, requested `source-static` capability, project-relative scope and required `ewai.security-scan-response/v1` response contract. It remains `awaiting-evidence`; preparing it does not run VVAH or satisfy release readiness.
|
|
229
|
+
|
|
230
|
+
### Use VVAH in detection-only mode
|
|
231
|
+
|
|
232
|
+
From the independently installed VVAH environment, target the repository and stop before its remediation stage:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
vvaharness scan --repo /path/to/project --stop-after s9
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
The `--stop-after s9` boundary is material. A plain upstream scan can continue into stage S10, where VVAH attempts remediation and can edit target source. EWAI’s handoff is deliberately evidence-only, so any source-changing VVAH workflow must be separately authorised and managed outside this integration.
|
|
239
|
+
|
|
240
|
+
VVAH commonly writes reports below `security-scan/` and may write a `run_manifest.json`. EWAI can identify those project-local signals and show the provider as `artefacts-detected`, but it does not offer the native import action. Dynamic Markdown, SARIF or JSONL files must not be relabelled as EWAI evidence directly.
|
|
241
|
+
|
|
242
|
+
### Return findings to EWAI
|
|
243
|
+
|
|
244
|
+
Use an organisation-controlled translator to map the reviewed VVAH result to `ewai.security-scan-response/v1`. The response must retain the handoff run identity, requested capability and exact revision semantics, and must contain only bounded normalised findings. Feed those findings through EWAI’s existing review and disposition workflow.
|
|
245
|
+
|
|
246
|
+
For a valid issue, select `remediate` and create a security intent from the finding. That intent enters the normal governed delivery pipeline and still requires explicit Build approval. A false-positive decision, accepted risk or escalation remains an append-only accountable human decision with supporting evidence; VVAH cannot grant any of those decisions itself.
|
|
247
|
+
|
|
248
|
+
Before use, review these upstream operating characteristics:
|
|
249
|
+
|
|
250
|
+
- source-derived prompt data can be sent to configured model providers;
|
|
251
|
+
- local execution may require elevated privileges;
|
|
252
|
+
- large scans can be token-intensive and results are nondeterministic;
|
|
253
|
+
- findings and proposed fixes are triage candidates requiring qualified human review;
|
|
254
|
+
- VVAH does not replace compiling, building, testing, Manual QA or release acceptance for changed code.
|
|
255
|
+
|
|
256
|
+
## 6. Review findings and record decisions
|
|
257
|
+
|
|
258
|
+
Inspect evidence before making a decision:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
ewai security runs --project .
|
|
262
|
+
ewai security findings --project .
|
|
263
|
+
ewai security dispositions --project .
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Prepared and active runs can be cancelled without deleting attempt history:
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
ewai security cancel RUN_ID --project . --yes
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
An active cancellation ends as `cancelled`, not `failed`, and cannot satisfy a required profile.
|
|
273
|
+
|
|
274
|
+
Available append-only dispositions are:
|
|
275
|
+
|
|
276
|
+
- `remediate`: the issue remains open until later evidence proves the change;
|
|
277
|
+
- `false-positive`: requires a named reviewer, reason and an existing non-symbolic project evidence reference;
|
|
278
|
+
- `accept-risk`: requires existing project evidence, a named risk owner and a future review or expiry date;
|
|
279
|
+
- `escalate`: requires the next accountable role.
|
|
280
|
+
|
|
281
|
+
Examples:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
ewai security disposition FINDING_ID \
|
|
285
|
+
--decision false-positive \
|
|
286
|
+
--reviewer "Priya Shah" \
|
|
287
|
+
--reason "The sink is unreachable in the deployed configuration." \
|
|
288
|
+
--evidence SPECS/3.Evidence/security/source-review.md \
|
|
289
|
+
--project . \
|
|
290
|
+
--yes
|
|
291
|
+
|
|
292
|
+
ewai security disposition FINDING_ID \
|
|
293
|
+
--decision accept-risk \
|
|
294
|
+
--reviewer "Priya Shah" \
|
|
295
|
+
--reason "Compensating controls reduce exposure while replacement is scheduled." \
|
|
296
|
+
--evidence SPECS/3.Evidence/security/risk-142.md \
|
|
297
|
+
--risk-owner "Engineering Director" \
|
|
298
|
+
--expires-at 2026-10-01T09:00:00Z \
|
|
299
|
+
--project . \
|
|
300
|
+
--yes
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Dispositions do not alter or delete scanner findings. The latest valid disposition informs readiness, while the full decision history remains available. An expired risk acceptance becomes blocking again.
|
|
304
|
+
|
|
305
|
+
## 7. Understand release readiness
|
|
306
|
+
|
|
307
|
+
When security validation is not configured, readiness is `not-configured` and existing delivery behaviour is preserved. Build approval snapshots the complete normalised security policy into the durable approval evidence. A later policy removal, weakening, scope change or threshold change blocks release readiness explicitly; it cannot reinterpret old evidence or silently restore legacy behaviour. Once a required profile is configured, EWAI withholds its release-ready lifecycle event when evidence is missing, incomplete, failed, cancelled, stale, revision-mismatched, policy-mismatched, or contains an unresolved blocking finding.
|
|
308
|
+
|
|
309
|
+
Manual QA is still recorded independently. Security readiness does not grant Build approval, Manual QA approval, production authority or business acceptance. The accountable role named in each profile reviews the provider scope and limitations; the authorised human release owner makes the final release decision.
|
|
310
|
+
|
|
311
|
+
## 8. Use the dashboard safely
|
|
312
|
+
|
|
313
|
+
Enable **Security Validation** in **Configuration** and save, then open it in the sidebar. See [dashboard configuration](operations/dashboard-configuration.md). Showing the view doesn't run a scanner; hiding it doesn't waive the project's security requirements. The workspace presents information in this order:
|
|
314
|
+
|
|
315
|
+
1. the mandatory assurance notice;
|
|
316
|
+
2. provider availability, official sources and cautions;
|
|
317
|
+
3. the personas actively engaged as advisory lenses;
|
|
318
|
+
4. capability coverage and evidence freshness;
|
|
319
|
+
5. findings and append-only human decisions.
|
|
320
|
+
|
|
321
|
+
Premium, core, project and personal personas may be engaged contextually when installed. Their names, tier and engagement reason are visible. Personas can challenge scope and identify questions, but they cannot approve evidence or accept risk.
|
|
322
|
+
|
|
323
|
+
Use the project-local dashboard and confirm the specific operation before execution or import. EWAI checks the local origin and resolves supported provider imports on the server; the dashboard isn't a place to submit arbitrary commands, paths, hosts or provider URLs. If you're building an integration, follow the [adapter authoring reference](reference/security-adapter-authoring.md) rather than bypassing these boundaries.
|
|
324
|
+
|
|
325
|
+
## Troubleshooting
|
|
326
|
+
|
|
327
|
+
### A provider says `not-detected`
|
|
328
|
+
|
|
329
|
+
Use the official links returned by `ewai security providers`. Install and operate the provider separately, then configure one of the supported interoperability modes. EWAI deliberately does not infer an installation from a global command or PATH entry. For Visa VVAH, detection of `security-scan/` or `run_manifest.json` only indicates project-local output; it does not enable native import.
|
|
330
|
+
|
|
331
|
+
### Evidence is `stale`
|
|
332
|
+
|
|
333
|
+
Confirm that the result targets the exact current revision and falls within the profile’s `freshness_hours`. Run or import new evidence rather than changing the stored run.
|
|
334
|
+
|
|
335
|
+
### An import is rejected
|
|
336
|
+
|
|
337
|
+
Check that the complete supported artefact set exists at the fixed project-local location, is regular JSON rather than a symlink, remains unchanged during the read, and matches the expected response shape. Prepare a new token after correcting it.
|
|
338
|
+
|
|
339
|
+
### An adapter stops working after an update
|
|
340
|
+
|
|
341
|
+
Digest drift is intentional. Validate the changed adapter, review the executable and manifest, then register the revised adapter explicitly.
|
|
342
|
+
|
|
343
|
+
### A finding was addressed
|
|
344
|
+
|
|
345
|
+
Record the accountable decision and supporting project evidence, then obtain a fresh complete security result for the current revision. Do not edit the finding or SQLite projection directly.
|
|
346
|
+
|
|
347
|
+
## Contract references
|
|
348
|
+
|
|
349
|
+
- Policy schema: [security-validation-policy.schema.json](../config/security-validation-policy.schema.json)
|
|
350
|
+
- Adapter schema: [security-adapter.schema.json](../config/security-adapter.schema.json)
|
|
351
|
+
- Request schema: [security-scan-request.schema.json](../config/security-scan-request.schema.json)
|
|
352
|
+
- Response schema: [security-scan-response.schema.json](../config/security-scan-response.schema.json)
|
|
353
|
+
- [Human approval and assurance](human-approval-and-assurance-guide.md)
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Solution Readiness Review guide
|
|
2
|
+
|
|
3
|
+
Before deciding what happens next, review the evidence for this delivery. Choose the type of system you're assessing; EWAI brings together the relevant records and shows what's missing or out of date. A named reviewer records the assessment. It doesn't approve a release.
|
|
4
|
+
|
|
5
|
+
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.
|
|
6
|
+
|
|
7
|
+
Solution Readiness Review is advisory evidence, not certification, business acceptance, Manual QA approval, security approval, deployment permission or release authorisation. Accountable humans retain every approval and risk decision.
|
|
8
|
+
|
|
9
|
+
## Choose a profile
|
|
10
|
+
|
|
11
|
+
| Profile | Use it for | Additional emphasis |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `internal-only` | Bounded internal tools without sensitive or client material | Purpose, standards, testing, Manual QA and operations |
|
|
14
|
+
| `internal-sensitive` | Internal solutions handling personal, sensitive or restricted data | Security, privacy, hosting and governance |
|
|
15
|
+
| `client-facing` | Client workflows, client material or client-accessible services | Impact, independent validation, documentation and service ownership |
|
|
16
|
+
| `public-service` | Publicly accessible services | Accessibility, misuse, availability and broad user impact |
|
|
17
|
+
| `critical-regulated` | High-consequence or regulated contexts | Named legal/regulatory specialists and independent assurance |
|
|
18
|
+
|
|
19
|
+
Profiles change required dimensions and human roles. They never rewrite source evidence or turn an unknown into a pass.
|
|
20
|
+
|
|
21
|
+
## Before you start
|
|
22
|
+
|
|
23
|
+
Read the [Manual QA walkthrough guidance](quality/manual-qa-and-acceptance.md) when reviewing human acceptance evidence. Preparing a readiness report can't replace that walkthrough.
|
|
24
|
+
|
|
25
|
+
- Use a known EWAI delivery slug with durable `delivery-state.json` truth.
|
|
26
|
+
- Complete as much normal EWAI evidence as is proportionate: intent, Impact, standards, tests, Manual QA, security, technology/hosting, operations and guidance.
|
|
27
|
+
- Install or create project personas when their real responsibilities improve the review.
|
|
28
|
+
- Treat a missing evidence source as a valid and visible outcome.
|
|
29
|
+
|
|
30
|
+
## Run the workflow
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
ewai readiness profiles --project . --json
|
|
34
|
+
ewai readiness prepare my-delivery --profile client-facing --project . --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Preparation writes:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
SPECS/3.Evidence/readiness/<delivery-slug>/<assessment-id>/
|
|
41
|
+
├── readiness-brief.json
|
|
42
|
+
├── readiness-brief.md
|
|
43
|
+
└── readiness-review.template.json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Open the briefing and every material citation. Complete the template, then record the named review:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
ewai readiness review <assessment-id> \
|
|
50
|
+
--input SPECS/3.Evidence/readiness/<delivery-slug>/<assessment-id>/readiness-review.template.json \
|
|
51
|
+
--reviewed-by "Accountable owner" \
|
|
52
|
+
--project . \
|
|
53
|
+
--json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This adds immutable `readiness-report.json` and `readiness-report.md` files. It never overwrites an earlier report.
|
|
57
|
+
|
|
58
|
+
Check currency:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
ewai readiness status <assessment-id> --project . --json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
If the repository revision, selected profile, preparation digest or cited file changes, status is `stale`. Prepare a new assessment and preserve the historical report.
|
|
65
|
+
|
|
66
|
+
## Interpret the evidence
|
|
67
|
+
|
|
68
|
+
Dimensions use `satisfied`, `conditional`, `blocking`, `missing`, `stale`, `not-applicable`, or `not-configured`. The reviewer uses `accepted`, `conditional`, `blocked`, `insufficient-evidence`, or `not-applicable`.
|
|
69
|
+
|
|
70
|
+
Missing, stale, blocking or not-configured required evidence cannot be marked accepted. A condition or residual risk needs a clear statement, accountable owner and future review date.
|
|
71
|
+
|
|
72
|
+
The report derives one advisory result:
|
|
73
|
+
|
|
74
|
+
- `ready-for-human-decision`: evidence is coherent enough for the accountable human to make the next decision. This is not that decision.
|
|
75
|
+
- `conditional`: owned, time-bounded conditions remain.
|
|
76
|
+
- `blocked`: at least one blocker remains.
|
|
77
|
+
- `insufficient-evidence`: one or more required decisions cannot be supported by current evidence.
|
|
78
|
+
|
|
79
|
+
There is no percentage score. Positive dimensions cannot average away a blocker.
|
|
80
|
+
|
|
81
|
+
## Example: required test results are missing
|
|
82
|
+
|
|
83
|
+
In the generated `readiness-review.template.json`, keep the assessment ID and preparation digest unchanged. For the `tests` dimension with no usable citations, a completed decision can look like this:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"id": "tests",
|
|
88
|
+
"disposition": "insufficient-evidence",
|
|
89
|
+
"reason": "The required test results aren't available for this revision. The delivery owner needs to run the agreed checks before we can assess them.",
|
|
90
|
+
"sourceRefs": [],
|
|
91
|
+
"conditions": [],
|
|
92
|
+
"residualRisks": []
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
This is one item in `dimensions`, not the whole input. Use the actual citations and state returned by preparation and review every required dimension. Don't copy `accepted` over a missing result.
|
|
97
|
+
|
|
98
|
+
The next action is for the delivery owner to obtain current test evidence, then prepare a new assessment. Naming the gap records the problem; it doesn't run tests or accept risk.
|
|
99
|
+
|
|
100
|
+
## Active personas
|
|
101
|
+
|
|
102
|
+
Each preparation shows the active personas and why they're relevant. The host model with included and project personas supports the whole workflow. Relevant installed personal or premium personas can add specialist perspectives as the profile or evidence gaps change.
|
|
103
|
+
|
|
104
|
+
Premium personas are optional. The command does not sync or download them. Output contains safe metadata, not proprietary persona bodies. Personas improve the questions; they do not provide stakeholder evidence, specialist opinion, legal advice, risk acceptance or approval.
|
|
105
|
+
|
|
106
|
+
## Evidence drift and recovery
|
|
107
|
+
|
|
108
|
+
Use `readiness status` before relying on a report. Drift can include a different repository revision, changed or missing cited evidence, a changed profile contract or a digest mismatch.
|
|
109
|
+
|
|
110
|
+
Do not edit a completed report. Resolve source evidence where appropriate, prepare a new assessment and retain both records. If preparation stops before the assessment directory is atomically created, run preparation again; never remove a completed immutable report as “recovery”.
|
|
111
|
+
|
|
112
|
+
## For EWAI maintainers
|
|
113
|
+
|
|
114
|
+
If you're changing the readiness capability itself, use its [maintainer verification walkthrough](maintainers/verification-walkthroughs.md#solution-readiness-review). That is separate from reviewing whether your own solution is ready.
|
|
115
|
+
|
|
116
|
+
## Limitations
|
|
117
|
+
|
|
118
|
+
- V1 is CLI- and file-led; there is no dashboard or MCP surface.
|
|
119
|
+
- Preparation does not execute scanners, project scripts, deployment tools, cloud queries or runtime probes.
|
|
120
|
+
- Built-in profiles are a consistent starting point, not a legal or regulatory rules engine.
|
|
121
|
+
- `critical-regulated` records the need for specialist assurance; it does not supply that opinion.
|
|
122
|
+
- The capability does not score, certify, deploy, release or alter approval state.
|
|
123
|
+
- It does not approve Manual QA or release.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Project standards authoring guide
|
|
2
|
+
|
|
3
|
+
Use this guide to turn a proposed engineering practice into an explicit, reviewable, testable project constraint.
|
|
4
|
+
|
|
5
|
+
## Separate recommendation from acceptance
|
|
6
|
+
|
|
7
|
+
Initial Discovery writes minimum-standard recommendations under:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
SPECS/5.Strategy/options/minimum-standards.md
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
They remain options until a technical owner accepts, replaces, or rejects them. Accepted project standards belong in:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
SPECS/4.Constraints/standards.md
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Organisation Blueprint standards materialise under:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
SPECS/4.Constraints/standards/organisation/<publisher>/<pack>/<module>/<standard>.md
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
A generated recommendation is not binding merely because it exists.
|
|
26
|
+
|
|
27
|
+
## Write one enforceable concern at a time
|
|
28
|
+
|
|
29
|
+
A useful standard states:
|
|
30
|
+
|
|
31
|
+
- **Purpose:** the outcome or risk it protects.
|
|
32
|
+
- **Scope:** repositories, components, data, or changes to which it applies.
|
|
33
|
+
- **Rule:** the concrete obligation.
|
|
34
|
+
- **Rationale:** why this project adopted it.
|
|
35
|
+
- **Verification:** commands, evidence, or review that demonstrate conformance.
|
|
36
|
+
- **Exceptions:** who may approve one, required compensating controls, and review date.
|
|
37
|
+
- **Owner:** who interprets and maintains it.
|
|
38
|
+
- **Change triggers:** when it must be reviewed.
|
|
39
|
+
|
|
40
|
+
Avoid mixing unrelated security, testing, naming, and deployment rules into one page.
|
|
41
|
+
|
|
42
|
+
## Example
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
# Public API compatibility
|
|
46
|
+
|
|
47
|
+
## Purpose
|
|
48
|
+
|
|
49
|
+
Protect consumers from unannounced breaking changes.
|
|
50
|
+
|
|
51
|
+
## Scope
|
|
52
|
+
|
|
53
|
+
All externally consumed HTTP API contracts.
|
|
54
|
+
|
|
55
|
+
## Rule
|
|
56
|
+
|
|
57
|
+
Breaking request or response changes require a new supported API version and a documented consumer migration path.
|
|
58
|
+
|
|
59
|
+
## Verification
|
|
60
|
+
|
|
61
|
+
- Contract tests compare the supported schema fixtures.
|
|
62
|
+
- Delivery evidence identifies affected consumers.
|
|
63
|
+
- Manual QA exercises one existing and one migrated consumer journey.
|
|
64
|
+
|
|
65
|
+
## Exceptions
|
|
66
|
+
|
|
67
|
+
The technical owner and Product Owner must approve the reason, affected consumers, compensating communication, and expiry date.
|
|
68
|
+
|
|
69
|
+
## Owner
|
|
70
|
+
|
|
71
|
+
Platform Architecture.
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Make verification proportional and observable
|
|
75
|
+
|
|
76
|
+
Prefer a combination of:
|
|
77
|
+
|
|
78
|
+
- deterministic linting or static analysis;
|
|
79
|
+
- focused automated behaviour tests;
|
|
80
|
+
- architecture or threat review;
|
|
81
|
+
- change-set inspection;
|
|
82
|
+
- operational evidence;
|
|
83
|
+
- Manual QA;
|
|
84
|
+
- named approval for exceptions.
|
|
85
|
+
|
|
86
|
+
Do not write “follow best practice” as a rule. Name the observable behaviour and evidence the project needs.
|
|
87
|
+
|
|
88
|
+
## Resolve conflicts explicitly
|
|
89
|
+
|
|
90
|
+
Standards may conflict with each other, an architecture decision, a Blueprint version, or an inherited code constraint. Do not assume a universal precedence order.
|
|
91
|
+
|
|
92
|
+
Record:
|
|
93
|
+
|
|
94
|
+
1. the conflicting statements and sources;
|
|
95
|
+
2. the scope of each;
|
|
96
|
+
3. the decision owner;
|
|
97
|
+
4. the chosen interpretation;
|
|
98
|
+
5. any migration or exception;
|
|
99
|
+
6. review or expiry date.
|
|
100
|
+
|
|
101
|
+
Update or supersede stale text rather than appending a contradictory note that leaves two apparent truths.
|
|
102
|
+
|
|
103
|
+
## Check applicability before Build
|
|
104
|
+
|
|
105
|
+
Use repository knowledge to identify applicable standards:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
ewai index standards <target> --project .
|
|
109
|
+
ewai index standards-coverage <intent-slug> --project .
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The EWAI standards-check skill can review a snippet, file, change set, capability, or repository against accepted project-local SPECS. It should report baseline, revision, scope, exclusions, commands, passes, non-conformities, warnings, unresolved evidence, and conflicts.
|
|
113
|
+
|
|
114
|
+
A standards review does not fix code or pass a delivery gate unless the user has separately authorised those actions and the guarded evidence is recorded.
|
|
115
|
+
|
|
116
|
+
## Manage exceptions
|
|
117
|
+
|
|
118
|
+
An exception should include:
|
|
119
|
+
|
|
120
|
+
- standard and affected scope;
|
|
121
|
+
- business or technical reason;
|
|
122
|
+
- risk created;
|
|
123
|
+
- compensating controls;
|
|
124
|
+
- accountable approver;
|
|
125
|
+
- owner and expiry/review date;
|
|
126
|
+
- evidence needed to close it.
|
|
127
|
+
|
|
128
|
+
“The AI could not comply” is not sufficient justification.
|
|
129
|
+
|
|
130
|
+
## Review and retirement
|
|
131
|
+
|
|
132
|
+
Review when technology support changes, incidents expose a gap, regulation or policy changes, verification becomes ineffective, or teams repeatedly request the same exception.
|
|
133
|
+
|
|
134
|
+
When retiring a standard, retain enough history to interpret earlier delivery evidence and identify its replacement.
|
|
135
|
+
|
|
136
|
+
## Author checklist
|
|
137
|
+
|
|
138
|
+
- [ ] Recommendation and accepted standard are in the correct locations.
|
|
139
|
+
- [ ] Purpose, scope, rule, and owner are explicit.
|
|
140
|
+
- [ ] Verification produces observable evidence.
|
|
141
|
+
- [ ] Exceptions have authority, controls, and expiry.
|
|
142
|
+
- [ ] Conflicts are resolved rather than hidden.
|
|
143
|
+
- [ ] The rule is proportionate to project risk.
|
|
144
|
+
- [ ] Change and retirement triggers are recorded.
|
|
145
|
+
|
|
146
|
+
## Related guides
|
|
147
|
+
|
|
148
|
+
- [Developer delivery guide](../developer-delivery-guide.md)
|
|
149
|
+
- [Organisation-specific personas](../personas/organisation-specific-personas.md)
|
|
150
|
+
- [Human approval and assurance](../human-approval-and-assurance-guide.md)
|
|
151
|
+
|
|
152
|
+
## Current contract sources
|
|
153
|
+
|
|
154
|
+
- `src/discovery.mjs`
|
|
155
|
+
- `src/runtime/repository-index.mjs`
|
|
156
|
+
- `README.md`
|
|
157
|
+
- `SPECS/pipeline.yaml`
|