@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,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://engineeringwithai.dev/schemas/security-scan-response.schema.json",
|
|
4
|
+
"title": "EWAI security scan response",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema", "runId", "status", "complete", "capabilities", "findings"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema": { "const": "ewai.security-scan-response/v1" },
|
|
10
|
+
"runId": { "type": "string", "minLength": 1, "maxLength": 80 },
|
|
11
|
+
"status": { "enum": ["complete", "incomplete", "failed"] },
|
|
12
|
+
"complete": { "type": "boolean" },
|
|
13
|
+
"capabilities": { "type": "array", "minItems": 1, "maxItems": 5, "uniqueItems": true, "items": { "$ref": "#/$defs/capability" } },
|
|
14
|
+
"findings": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"maxItems": 10000,
|
|
17
|
+
"items": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"additionalProperties": false,
|
|
20
|
+
"required": ["id", "capability", "summary"],
|
|
21
|
+
"properties": {
|
|
22
|
+
"id": { "type": "string", "minLength": 1, "maxLength": 160 },
|
|
23
|
+
"capability": { "$ref": "#/$defs/capability" },
|
|
24
|
+
"severity": { "enum": ["critical", "high", "medium", "low", "info", "unknown"] },
|
|
25
|
+
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
26
|
+
"summary": { "type": "string", "minLength": 1, "maxLength": 1000 },
|
|
27
|
+
"locations": { "$ref": "#/$defs/references" },
|
|
28
|
+
"remediation": { "type": "string", "maxLength": 2000 },
|
|
29
|
+
"evidence": { "$ref": "#/$defs/references" }
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"tool": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"additionalProperties": false,
|
|
36
|
+
"required": ["name", "version"],
|
|
37
|
+
"properties": {
|
|
38
|
+
"name": { "type": "string", "minLength": 1, "maxLength": 120 },
|
|
39
|
+
"version": { "type": "string", "minLength": 1, "maxLength": 80 }
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"warnings": { "type": "array", "maxItems": 1000, "items": { "type": "string", "minLength": 1, "maxLength": 500 } }
|
|
43
|
+
},
|
|
44
|
+
"$defs": {
|
|
45
|
+
"capability": { "enum": ["source-static", "dependency-sbom", "secret-detection", "infrastructure-configuration", "llm-runtime-red-team"] },
|
|
46
|
+
"references": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"maxItems": 100,
|
|
49
|
+
"items": { "type": "string", "minLength": 1, "maxLength": 500 }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://engineeringwithai.dev/schemas/security-validation-policy.schema.json",
|
|
4
|
+
"title": "EWAI security validation policy",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["enabled"],
|
|
8
|
+
"allOf": [
|
|
9
|
+
{
|
|
10
|
+
"if": { "properties": { "enabled": { "const": true } } },
|
|
11
|
+
"then": { "required": ["profiles"] }
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"enabled": { "type": "boolean" },
|
|
16
|
+
"profiles": {
|
|
17
|
+
"type": "array",
|
|
18
|
+
"minItems": 1,
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"additionalProperties": false,
|
|
22
|
+
"required": ["id", "capability", "required", "freshness_hours", "accountable_role"],
|
|
23
|
+
"properties": {
|
|
24
|
+
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,63}$" },
|
|
25
|
+
"capability": { "enum": ["source-static", "dependency-sbom", "secret-detection", "infrastructure-configuration", "llm-runtime-red-team"] },
|
|
26
|
+
"required": { "type": "boolean" },
|
|
27
|
+
"freshness_hours": { "type": "integer", "minimum": 1, "maximum": 8760 },
|
|
28
|
+
"timeout_seconds": { "type": "integer", "minimum": 1, "maximum": 3600 },
|
|
29
|
+
"accountable_role": { "type": "string", "minLength": 1, "maxLength": 120 },
|
|
30
|
+
"modes": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "enum": ["command", "skill", "artifact-import"] } },
|
|
31
|
+
"provider": { "enum": ["agentic-security", "deepsec", "visa-vvah"] },
|
|
32
|
+
"adapter": { "type": "string", "pattern": "^[a-z][a-z0-9.-]{1,79}$" },
|
|
33
|
+
"checkpoint": { "type": "string", "minLength": 1, "maxLength": 80 },
|
|
34
|
+
"thresholds": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"properties": {
|
|
38
|
+
"blocking_severities": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"minItems": 1,
|
|
41
|
+
"maxItems": 6,
|
|
42
|
+
"uniqueItems": true,
|
|
43
|
+
"items": { "enum": ["critical", "high", "medium", "low", "info", "unknown"] }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"scope": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": false,
|
|
50
|
+
"properties": {
|
|
51
|
+
"include": { "$ref": "#/$defs/projectPaths" },
|
|
52
|
+
"exclude": { "$ref": "#/$defs/projectPaths" }
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"target_class": { "enum": ["local", "development", "test", "staging", "production"] },
|
|
56
|
+
"target_ref": { "type": "string", "minLength": 1, "maxLength": 160 }
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"$defs": {
|
|
62
|
+
"projectPaths": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"maxItems": 100,
|
|
65
|
+
"uniqueItems": true,
|
|
66
|
+
"items": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"minLength": 1,
|
|
69
|
+
"maxLength": 240,
|
|
70
|
+
"not": { "pattern": "^(?:/|\\\\|[A-Za-z]:|\\.\\.(?:/|\\\\|$)|.*(?:/|\\\\)\\.\\.(?:/|\\\\|$))" }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://engineeringwith.ai/schemas/starter-source-acknowledgement-v1.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema", "attemptId", "nonce", "status"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema": { "const": "ewai.starter-source-acknowledgement/v1" },
|
|
8
|
+
"attemptId": { "type": "string", "format": "uuid" },
|
|
9
|
+
"nonce": { "type": "string", "format": "uuid" },
|
|
10
|
+
"status": { "const": "prepared" }
|
|
11
|
+
},
|
|
12
|
+
"additionalProperties": false
|
|
13
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://engineeringwith.ai/schemas/starter-source-adapter-v1.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema", "id", "name", "publisher", "version", "protocolVersion", "sourceClasses", "entrypoint"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema": { "const": "ewai.starter-source-adapter/v1" },
|
|
8
|
+
"id": { "type": "string", "pattern": "^[a-z][a-z0-9.-]{1,79}$" },
|
|
9
|
+
"name": { "type": "string", "minLength": 1, "maxLength": 240 },
|
|
10
|
+
"publisher": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"required": ["id", "name"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
|
|
15
|
+
"name": { "type": "string", "minLength": 1, "maxLength": 240 }
|
|
16
|
+
},
|
|
17
|
+
"additionalProperties": false
|
|
18
|
+
},
|
|
19
|
+
"version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][0-9A-Za-z.-]+)?$" },
|
|
20
|
+
"protocolVersion": { "const": "1" },
|
|
21
|
+
"sourceClasses": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"minItems": 1,
|
|
24
|
+
"uniqueItems": true,
|
|
25
|
+
"items": { "enum": ["https", "git", "archive", "directory", "package", "opaque"] }
|
|
26
|
+
},
|
|
27
|
+
"entrypoint": { "$ref": "#/$defs/boundedPath" }
|
|
28
|
+
},
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"$defs": {
|
|
31
|
+
"boundedPath": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"minLength": 1,
|
|
34
|
+
"maxLength": 512,
|
|
35
|
+
"not": { "pattern": "(^/|^[A-Za-z]:|(^|[\\\\/])\\.\\.([\\\\/]|$)|[\\u0000-\\u001f])" }
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://engineeringwith.ai/schemas/starter-source-request-v1.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["schema", "attemptId", "nonce", "project", "receipt", "stagingRoot", "limits"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"schema": { "const": "ewai.starter-source-request/v1" },
|
|
8
|
+
"attemptId": { "type": "string", "format": "uuid" },
|
|
9
|
+
"nonce": { "type": "string", "format": "uuid" },
|
|
10
|
+
"project": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"required": ["name"],
|
|
13
|
+
"properties": { "name": { "type": "string", "minLength": 1, "maxLength": 240 } },
|
|
14
|
+
"additionalProperties": false
|
|
15
|
+
},
|
|
16
|
+
"receipt": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"required": ["id", "name", "source", "sourceClass", "version", "digest", "licence", "compatibility", "targets"],
|
|
19
|
+
"properties": {
|
|
20
|
+
"id": { "type": "string", "minLength": 1, "maxLength": 320 },
|
|
21
|
+
"name": { "type": "string", "minLength": 1, "maxLength": 240 },
|
|
22
|
+
"source": { "type": "string", "minLength": 1, "maxLength": 2048 },
|
|
23
|
+
"sourceClass": { "enum": ["https", "git", "archive", "directory", "package", "opaque"] },
|
|
24
|
+
"version": { "type": "string", "minLength": 1, "maxLength": 80 },
|
|
25
|
+
"digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
|
|
26
|
+
"licence": { "type": "string", "minLength": 1, "maxLength": 240 },
|
|
27
|
+
"compatibility": { "type": "string", "minLength": 1, "maxLength": 500 },
|
|
28
|
+
"targets": {
|
|
29
|
+
"type": "array",
|
|
30
|
+
"minItems": 1,
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"required": ["role", "sourcePath"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"role": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
|
|
36
|
+
"sourcePath": { "type": "string", "minLength": 1, "maxLength": 512 }
|
|
37
|
+
},
|
|
38
|
+
"additionalProperties": false
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"additionalProperties": false
|
|
43
|
+
},
|
|
44
|
+
"stagingRoot": { "type": "string", "minLength": 1 },
|
|
45
|
+
"limits": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"required": ["maximumDepth", "maximumPathBytes", "maximumFiles", "maximumFileBytes", "maximumTotalBytes", "timeoutMs", "maximumOutputBytes"],
|
|
48
|
+
"properties": {
|
|
49
|
+
"maximumDepth": { "type": "integer", "minimum": 1, "maximum": 24 },
|
|
50
|
+
"maximumPathBytes": { "type": "integer", "minimum": 1, "maximum": 512 },
|
|
51
|
+
"maximumFiles": { "type": "integer", "minimum": 1, "maximum": 5000 },
|
|
52
|
+
"maximumFileBytes": { "type": "integer", "minimum": 1, "maximum": 5242880 },
|
|
53
|
+
"maximumTotalBytes": { "type": "integer", "minimum": 1, "maximum": 104857600 },
|
|
54
|
+
"timeoutMs": { "type": "integer", "minimum": 1000, "maximum": 900000 },
|
|
55
|
+
"maximumOutputBytes": { "const": 65536 }
|
|
56
|
+
},
|
|
57
|
+
"additionalProperties": false
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"additionalProperties": false
|
|
61
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@thebackstoryis/engineering-with-ai",
|
|
3
|
+
"version": "0.2.9",
|
|
4
|
+
"description": "A human-centred, AI-augmented engineering pipeline",
|
|
5
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
6
|
+
"author": "The Backstory Is",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"ai",
|
|
9
|
+
"engineering",
|
|
10
|
+
"specifications",
|
|
11
|
+
"delivery-pipeline",
|
|
12
|
+
"personas",
|
|
13
|
+
"mcp"
|
|
14
|
+
],
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/TheBackstoryIs/EngineeringWithAIHarness.git"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/TheBackstoryIs/EngineeringWithAIHarness#readme",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/TheBackstoryIs/EngineeringWithAIHarness/issues"
|
|
22
|
+
},
|
|
23
|
+
"type": "module",
|
|
24
|
+
"bin": {
|
|
25
|
+
"ewai": "bin/ewai"
|
|
26
|
+
},
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=22.5"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"agents-src/",
|
|
32
|
+
"bin/",
|
|
33
|
+
"config/",
|
|
34
|
+
"Docs/",
|
|
35
|
+
"packs/",
|
|
36
|
+
"public/",
|
|
37
|
+
"scripts/setup.mjs",
|
|
38
|
+
"scripts/publication-check.mjs",
|
|
39
|
+
"skills-src/",
|
|
40
|
+
"src/*.mjs",
|
|
41
|
+
"src/runtime/",
|
|
42
|
+
"tests/fixtures/context-benchmarks.json",
|
|
43
|
+
"!config/*-source-manifest.json",
|
|
44
|
+
"!config/workflow-migration-map.json",
|
|
45
|
+
"templates/"
|
|
46
|
+
],
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public",
|
|
49
|
+
"registry": "https://registry.npmjs.org/"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "npm run check",
|
|
53
|
+
"precheck": "node scripts/publication-check.mjs --source-only && node --check src/runtime/tree-sitter-index.mjs && node --check src/design-system-application.mjs && node --check src/team-hub-resources.mjs && node --check src/dashboard-preferences.mjs && node --check public/dashboard-navigation.js",
|
|
54
|
+
"publication:check": "node scripts/publication-check.mjs",
|
|
55
|
+
"prepack": "node scripts/publication-check.mjs --quiet",
|
|
56
|
+
"check": "node --check src/error-reporting.mjs && node --check src/team-hub.mjs && node --check src/runtime/team-hub-client.mjs && node --check src/runtime/team-hub-database.mjs && node --check src/runtime/team-hub-server.mjs && node --check src/runtime/team-hub.mjs && node --check src/runtime/error-reporting.mjs && node --check src/launcher.mjs && node --check src/afk-worker.mjs && node --check src/companion-opening.mjs && node --check src/companion.mjs && node --check src/cli.mjs && node --check src/checkin.mjs && node --check src/persona-licence-config.mjs && node --check src/persona-website-provider.mjs && node --check src/persona-zip.mjs && node --check src/persona-entitlements.mjs && node --check src/context.mjs && node --check src/archaeology.mjs && node --check src/evidence-depth.mjs && node --check src/prototype-iterations.mjs && node --check src/solution-readiness.mjs && node --check src/delivery-artifacts.mjs && node --check src/delivery-documents.mjs && node --check src/delivery-gates.mjs && node --check src/delivery.mjs && node --check src/design-systems.mjs && node --check src/design-system-authoring.mjs && node --check src/execution-state.mjs && node --check src/intent-dependencies.mjs && node --check src/task-graph.mjs && node --check src/test-scenarios.mjs && node --check src/security-validation-config.mjs && node --check src/starter-materialisation-contract.mjs && node --check src/validation-config.mjs && node --check src/project.mjs && node --check src/install.mjs && node --check src/intents.mjs && node --check src/intent-maps.mjs && node --check src/discovery.mjs && node --check src/packs.mjs && node --check src/organisation-blueprints.mjs && node --check src/organisation-policies.mjs && node --check src/policy-design-gates.mjs && node --check src/policy-gate-integration.mjs && node --check src/personas.mjs && node --check src/platform-metadata-analysis.mjs && node --check src/power-platform-source-map.mjs && node --check src/salesforce-source-map.mjs && node --check src/repository-source-map.mjs && node --check src/runtime/context-assembly.mjs && node --check src/runtime/context-benchmarks.mjs && node --check src/runtime/database.mjs && node --check src/runtime/execution-leases.mjs && node --check src/runtime/provider-adapters.mjs && node --check src/runtime/security-validation.mjs && node --check src/runtime/starter-materialisation.mjs && node --check src/runtime/policy-workspace.mjs && node --check src/runtime/lifecycle-hooks.mjs && node --check src/runtime/afk-conductor.mjs && node --check src/runtime/dashboard-actions.mjs && node --check src/runtime/dashboard-handoffs.mjs && node --check src/runtime/persona-engagement.mjs && node --check src/runtime/evidence-depth-workspace.mjs && node --check src/runtime/prototype-iterations.mjs && node --check src/runtime/guided-discovery.mjs && node --check src/runtime/guided-intents.mjs && node --check src/runtime/phase-contributions.mjs && node --check src/runtime/impact-analysis.mjs && node --check src/runtime/paths.mjs && node --check src/runtime/intents.mjs && node --check src/runtime/knowledge.mjs && node --check src/runtime/palace.mjs && node --check src/runtime/repository-index.mjs && node --check src/runtime/runs.mjs && node --check src/runtime/work.mjs && node --check src/runtime/version.mjs && node --check src/runtime/dashboard.mjs && node --check src/runtime/dashboard-server.mjs && node --check src/runtime/mcp-config.mjs && node --check src/runtime/mcp-server.mjs && node --check public/app.js && node --check public/team-hub/app.js && node --check scripts/setup.mjs",
|
|
57
|
+
"test": "node --test",
|
|
58
|
+
"test:team-hub:coverage": "node --test --experimental-test-coverage --test-coverage-lines=90 --test-coverage-functions=85 --test-coverage-branches=75 --test-coverage-include='src/runtime/team-hub-client.mjs' --test-coverage-include='src/runtime/team-hub-database.mjs' tests/team-hub-server.test.mjs tests/team-hub-client.test.mjs tests/team-hub-resource-registry.test.mjs tests/team-hub-adapters.test.mjs tests/team-hub-operational.test.mjs",
|
|
59
|
+
"lint": "npm run check",
|
|
60
|
+
"setup": "node scripts/setup.mjs",
|
|
61
|
+
"typecheck": "npm run check",
|
|
62
|
+
"ewai": "node bin/ewai",
|
|
63
|
+
"context:benchmark": "node bin/ewai context benchmark --json"
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
67
|
+
"tree-sitter": "^0.21.1",
|
|
68
|
+
"tree-sitter-javascript": "^0.21.4",
|
|
69
|
+
"tree-sitter-php": "^0.23.12",
|
|
70
|
+
"tree-sitter-typescript": "^0.21.2",
|
|
71
|
+
"yaml": "^2.8.1",
|
|
72
|
+
"zod": "^4.4.3"
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"playwright": "^1.55.0"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Experience promise
|
|
2
|
+
|
|
3
|
+
Create experiences that feel **calm, connected, accountable**.
|
|
4
|
+
|
|
5
|
+
- Calm: make the current situation and next meaningful action understandable.
|
|
6
|
+
- Connected: preserve relationships between a person's purpose, their work, its evidence, and its consequences.
|
|
7
|
+
- Accountable: make ownership, decisions, uncertainty, and human authority visible.
|
|
8
|
+
|
|
9
|
+
This is a portable fallback, not an organisation-approved brand system.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Intentional design and self-critique
|
|
2
|
+
|
|
3
|
+
Make deliberate visual and interaction choices that arise from the product's
|
|
4
|
+
purpose, users, evidence, and constraints. Avoid generic template composition.
|
|
5
|
+
Use established components where they satisfy the need; record why novelty is
|
|
6
|
+
necessary when they do not.
|
|
7
|
+
|
|
8
|
+
Before selection, self-critique the work for purpose, agency, responsibility,
|
|
9
|
+
familiarity, flexibility, simplicity, craft, meaningful delight, real content,
|
|
10
|
+
empty and error states, accessibility evidence, and unresolved deviations.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Interaction and entry modes
|
|
2
|
+
|
|
3
|
+
Offer clear entry points for newcomers and efficient routes for experienced
|
|
4
|
+
operators. Keep both routes connected to the same underlying state and
|
|
5
|
+
authority. Prefer progressive disclosure, reversible choices, visible focus,
|
|
6
|
+
and clear recovery over hidden automation.
|
|
7
|
+
|
|
8
|
+
Interaction should communicate what happened, what remains, who is responsible,
|
|
9
|
+
and whether the result is a proposal, recorded evidence, or an approved decision.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Meaningful content and states
|
|
2
|
+
|
|
3
|
+
Use realistic, purposeful copy rather than generic placeholder language. Design
|
|
4
|
+
the empty, loading, partial, stale, error, blocked, success, and unavailable
|
|
5
|
+
states as first-class parts of the journey. Each state should explain its
|
|
6
|
+
meaning and the safest available next action.
|
|
7
|
+
|
|
8
|
+
Do not hide uncertainty behind visual polish. Important status must remain
|
|
9
|
+
understandable without relying on colour alone.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
schema: ewai.pack/v1
|
|
2
|
+
id: ewai.design-system.default
|
|
3
|
+
name: EWAI Intentional Product Design
|
|
4
|
+
description: Brand-neutral experience, interaction, content and review guidance for coherent UI Design and Prototype work.
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
type: design-system
|
|
7
|
+
requires: []
|
|
8
|
+
design_system:
|
|
9
|
+
compatibility:
|
|
10
|
+
ewai: 0.x
|
|
11
|
+
provenance:
|
|
12
|
+
kind: owner-declared
|
|
13
|
+
summary: Portable default derived from the product-design principles agreed by the EWAI owner.
|
|
14
|
+
contributions:
|
|
15
|
+
- id: experience-promise
|
|
16
|
+
kind: experience
|
|
17
|
+
title: Experience promise
|
|
18
|
+
source: experience-promise.md
|
|
19
|
+
applicability: [ui-design, prototype, review]
|
|
20
|
+
required: true
|
|
21
|
+
- id: product-principles
|
|
22
|
+
kind: principles
|
|
23
|
+
title: Product design principles
|
|
24
|
+
source: principles.md
|
|
25
|
+
applicability: [ui-design, prototype, review]
|
|
26
|
+
required: true
|
|
27
|
+
- id: interaction-and-entry
|
|
28
|
+
kind: interaction
|
|
29
|
+
title: Interaction and entry modes
|
|
30
|
+
source: interaction-and-entry.md
|
|
31
|
+
applicability: [ui-design, prototype, review]
|
|
32
|
+
required: true
|
|
33
|
+
- id: meaningful-content-and-states
|
|
34
|
+
kind: states
|
|
35
|
+
title: Meaningful content and states
|
|
36
|
+
source: meaningful-content-and-states.md
|
|
37
|
+
applicability: [ui-design, prototype, content, review]
|
|
38
|
+
required: true
|
|
39
|
+
- id: intentional-review
|
|
40
|
+
kind: review
|
|
41
|
+
title: Intentional design and self-critique
|
|
42
|
+
source: intentional-review.md
|
|
43
|
+
applicability: [ui-design, prototype, review]
|
|
44
|
+
required: true
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Product design principles
|
|
2
|
+
|
|
3
|
+
- Begin with purpose: explain why the work matters before presenting machinery.
|
|
4
|
+
- Preserve agency: let people understand, choose, inspect, and recover.
|
|
5
|
+
- Show responsibility: consequences, owners, evidence, limitations, and approvals should be legible.
|
|
6
|
+
- Prefer familiar patterns and standard components before introducing novelty.
|
|
7
|
+
- Support flexible routes for different experience levels without fragmenting the truth.
|
|
8
|
+
- Pursue simplicity without minimalism: remove friction, not necessary context.
|
|
9
|
+
- Apply craft deliberately to typography, spacing, hierarchy, language, and transitions.
|
|
10
|
+
- Use delight with restraint, when it makes progress or understanding more human.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: ewai.persona/v1
|
|
3
|
+
id: ewai.core.archaeologist
|
|
4
|
+
name: EWAI Archaeologist
|
|
5
|
+
version: 0.1.0
|
|
6
|
+
category: engineering
|
|
7
|
+
pack: ewai.personas.core
|
|
8
|
+
tier: core
|
|
9
|
+
tags: [archaeology, evidence, legacy, decisions, repository]
|
|
10
|
+
capabilities: [project-archaeology, technology-discovery, evidence-triangulation, decision-reconstruction, impact-mapping]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# EWAI Archaeologist
|
|
14
|
+
|
|
15
|
+
Reconstruct how an existing project behaves, how it evolved, and why it may have taken its current shape. Investigate source code, tests, configuration, schemas, Git history, documents, and human testimony with forensic curiosity and without blame.
|
|
16
|
+
|
|
17
|
+
## Operating stance
|
|
18
|
+
|
|
19
|
+
- Treat current code as evidence of behaviour, not proof of original intent or present approval.
|
|
20
|
+
- Distinguish observed, corroborated, inferred, contradicted, and unknown claims.
|
|
21
|
+
- Cite a file, line, commit, test, document, runtime observation, or named human source for every material finding.
|
|
22
|
+
- Prefer multiple independent sources before raising confidence.
|
|
23
|
+
- Preserve competing explanations and ask focused questions where the evidence cannot decide.
|
|
24
|
+
- Identify accidental consistency separately from an intentional reusable pattern.
|
|
25
|
+
- Do not modify production code, rewrite history, or promote inferred rules while investigating.
|
|
26
|
+
|
|
27
|
+
## Questions to keep asking
|
|
28
|
+
|
|
29
|
+
- What does the system demonstrably do?
|
|
30
|
+
- When and why did this behaviour appear or change?
|
|
31
|
+
- Which tests, interfaces, and consumers depend on it?
|
|
32
|
+
- Which languages, frameworks, data stores, infrastructure, deployment targets, and version constraints are actually evidenced?
|
|
33
|
+
- What decision or constraint would explain the evidence?
|
|
34
|
+
- What contradicts that explanation?
|
|
35
|
+
- Which person can confirm, correct, or retire the reconstructed understanding?
|
|
36
|
+
|
|
37
|
+
Hand reviewed findings to the SPECS Knowledge Curator for routing. Keep every unconfirmed reconstruction in Archaeology evidence rather than presenting it as project truth.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: ewai.persona/v1
|
|
3
|
+
id: ewai.core.end-user
|
|
4
|
+
name: End User
|
|
5
|
+
version: 0.1.0
|
|
6
|
+
category: product
|
|
7
|
+
pack: ewai.personas.core
|
|
8
|
+
tier: core
|
|
9
|
+
tags: [usability, accessibility, outcomes]
|
|
10
|
+
capabilities: [intent-review, design-review, acceptance-review]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# End User
|
|
14
|
+
|
|
15
|
+
Focus on completing the intended job safely, clearly, and without unnecessary effort.
|
|
16
|
+
|
|
17
|
+
Ask whether the workflow explains what is happening, supports recovery from mistakes, and produces a useful outcome.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: ewai.persona/v1
|
|
3
|
+
id: ewai.core.maintainer
|
|
4
|
+
name: Software Maintainer
|
|
5
|
+
version: 0.1.0
|
|
6
|
+
category: engineering
|
|
7
|
+
pack: ewai.personas.core
|
|
8
|
+
tier: core
|
|
9
|
+
tags: [maintainability, architecture, testing]
|
|
10
|
+
capabilities: [plan-review, code-review, retro-review]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Software Maintainer
|
|
14
|
+
|
|
15
|
+
Focus on whether future engineers can understand, test, extend, and safely remove the capability.
|
|
16
|
+
|
|
17
|
+
Ask which contracts are stable, where coupling lives, and how regressions will be detected.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: ewai.persona/v1
|
|
3
|
+
id: ewai.core.operator
|
|
4
|
+
name: Service Operator
|
|
5
|
+
version: 0.1.0
|
|
6
|
+
category: operations
|
|
7
|
+
pack: ewai.personas.core
|
|
8
|
+
tier: core
|
|
9
|
+
tags: [operations, observability, recovery]
|
|
10
|
+
capabilities: [plan-review, test-review, delivery-review]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Service Operator
|
|
14
|
+
|
|
15
|
+
Focus on deployability, observable behaviour, supportability, incident recovery, and safe change.
|
|
16
|
+
|
|
17
|
+
Ask how failures are detected, diagnosed, contained, and reversed.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: ewai.persona/v1
|
|
3
|
+
id: ewai.core.specs-knowledge-curator
|
|
4
|
+
name: SPECS Knowledge Curator
|
|
5
|
+
version: 0.1.0
|
|
6
|
+
category: information-management
|
|
7
|
+
pack: ewai.personas.core
|
|
8
|
+
tier: core
|
|
9
|
+
tags: [specs, knowledge, traceability, documentation, governance]
|
|
10
|
+
capabilities: [specs-routing, knowledge-curation, traceability, context-hygiene]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# SPECS Knowledge Curator
|
|
14
|
+
|
|
15
|
+
Maintain SPECS as durable, human-readable project memory and a predictable context system for AI. Route reviewed knowledge to its canonical home, preserve provenance, and prevent documentation from becoming a confident second version of reality.
|
|
16
|
+
|
|
17
|
+
## Routing responsibility
|
|
18
|
+
|
|
19
|
+
- Route boundaries, domain language, inventories, APIs, research, handoffs, and personas to `SPECS/1.Scope/`.
|
|
20
|
+
- Route intents, journeys, explorations, discussions, and requirements to `SPECS/2.Purpose/`.
|
|
21
|
+
- Keep observations, archaeology, risks, tests, gates, incidents, and retrospectives in `SPECS/3.Evidence/`.
|
|
22
|
+
- Promote only confirmed, accountable non-negotiables into `SPECS/4.Constraints/`.
|
|
23
|
+
- Route accepted decisions, options, architecture, patterns, SOPs, runbooks, and plans to `SPECS/5.Strategy/`.
|
|
24
|
+
- Keep implementation trackers and build outputs in `SPECS/6.Build/`.
|
|
25
|
+
|
|
26
|
+
## Curation discipline
|
|
27
|
+
|
|
28
|
+
- Do not turn an archaeological inference into a requirement, constraint, ADR, or persona without human review.
|
|
29
|
+
- Link accepted knowledge back to its evidence and link superseding records without erasing history.
|
|
30
|
+
- Reconcile duplication against an identified source of truth; preserve unresolved conflicts explicitly.
|
|
31
|
+
- Keep unknowns searchable and owned rather than filling gaps with plausible prose.
|
|
32
|
+
- Prefer concise, structured, accessible records that remain useful without an AI service.
|
|
33
|
+
- Update indexes and cross-references whenever knowledge moves or changes status.
|
|
34
|
+
|
|
35
|
+
Success means a person or agent can find what is known, understand why it is believed, see what remains uncertain, and identify who can decide.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
schema: ewai.pack/v1
|
|
2
|
+
id: ewai.technology.laravel
|
|
3
|
+
name: Laravel
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
type: technology
|
|
6
|
+
description: Laravel repository discovery, implementation, validation, and deployment guidance.
|
|
7
|
+
compatibility:
|
|
8
|
+
languages: [php]
|
|
9
|
+
frameworks: [laravel]
|
|
10
|
+
detection:
|
|
11
|
+
files: [artisan, composer.json]
|
|
12
|
+
dependencies: [laravel/framework]
|
|
13
|
+
commands:
|
|
14
|
+
install: composer install
|
|
15
|
+
test: php artisan test
|
|
16
|
+
lint: vendor/bin/pint --test
|
|
17
|
+
source_map:
|
|
18
|
+
profiles:
|
|
19
|
+
- id: laravel-routes
|
|
20
|
+
patterns: [routes/**/*.php]
|
|
21
|
+
analyser: tree-sitter
|
|
22
|
+
classification: framework-routing
|
|
23
|
+
priority: 50
|
|
24
|
+
- id: composer-manifest
|
|
25
|
+
patterns: [composer.json]
|
|
26
|
+
analyser: structured-keys
|
|
27
|
+
classification: dependency-manifest
|
|
28
|
+
priority: 40
|
|
29
|
+
deployment: []
|
|
30
|
+
boilerplates: []
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
schema: ewai.pack/v1
|
|
2
|
+
id: ewai.stack.laravel-nuxt
|
|
3
|
+
name: Laravel and Nuxt
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
type: stack
|
|
6
|
+
description: Composed API and web application stack with independently deployable Laravel and Nuxt repositories.
|
|
7
|
+
requires:
|
|
8
|
+
- ewai.technology.laravel
|
|
9
|
+
- ewai.technology.nuxt
|
|
10
|
+
repositories:
|
|
11
|
+
- role: backend
|
|
12
|
+
technology: ewai.technology.laravel
|
|
13
|
+
- role: frontend
|
|
14
|
+
technology: ewai.technology.nuxt
|
|
15
|
+
source_map:
|
|
16
|
+
profiles:
|
|
17
|
+
- id: frontend-pages
|
|
18
|
+
patterns: [pages/**/*.vue, app/pages/**/*.vue]
|
|
19
|
+
analyser: tree-sitter
|
|
20
|
+
classification: user-interface
|
|
21
|
+
repositories: [frontend]
|
|
22
|
+
priority: 80
|
|
23
|
+
- id: backend-routes
|
|
24
|
+
patterns: [routes/**/*.php]
|
|
25
|
+
analyser: tree-sitter
|
|
26
|
+
classification: framework-routing
|
|
27
|
+
repositories: [backend]
|
|
28
|
+
priority: 80
|
|
29
|
+
deployment: []
|
|
30
|
+
boilerplates: []
|