@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,334 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ewai-archaeology
|
|
3
|
+
description: Investigate an existing or poorly documented project and reconstruct its observable behaviour, technology stack, history, domain language, user flows, requirements, decisions, constraints, patterns, risks, and unresolved questions from repository and human evidence. Use when EWAI is initialized in an existing codebase, when documentation has drifted or disappeared, when nobody knows why code is shaped a particular way, or before changing a legacy area whose intent and blast radius are unclear.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# EWAI Archaeology
|
|
7
|
+
|
|
8
|
+
Reconstruct understanding before proposing change. Use the free `ewai.core.archaeologist` persona to investigate and the free `ewai.core.specs-knowledge-curator` persona to route reviewed findings. When project context sources exist, read the reviewed import evidence and persona-routing record before deep repository analysis.
|
|
9
|
+
|
|
10
|
+
Resolve the workspace and SPECS root from `.ewai-pipeline/project.json`. In a multi-repository workspace, inspect every repository configured by the selected SPECS contract and write reconstruction records only into that configured SPECS root.
|
|
11
|
+
|
|
12
|
+
## Honour the non-negotiable mission
|
|
13
|
+
|
|
14
|
+
For a whole-project run, produce a **full-coverage, maximum-discoverable-detail recreation of the SPECS knowledge this project would have accumulated if EWAI had accompanied it from inception to its current state**. This is not a lightweight interpretive pass, awareness report, executive assessment, technical survey, or small set of representative drafts.
|
|
15
|
+
|
|
16
|
+
Recreate every individually discernible project record supported by repository, history, documentation, imported context, operational evidence, or human testimony, including:
|
|
17
|
+
|
|
18
|
+
- project actors and project-specific personas;
|
|
19
|
+
- domain language, models, boundaries, interfaces, APIs, commands, events, and integration contracts;
|
|
20
|
+
- project and capability intents, requirements, acceptance criteria, journeys, workflows, and exception paths;
|
|
21
|
+
- risks, incidents, technical debt, test-derived evidence, validation gaps, and the risk register;
|
|
22
|
+
- engineering, security, privacy, data, accessibility, compliance, testing, and operational constraints;
|
|
23
|
+
- system, component, data, integration, deployment, and runtime architecture;
|
|
24
|
+
- individual patterns, anti-patterns, ADRs, decisions, alternatives, trade-offs, and option records;
|
|
25
|
+
- SOPs, operational procedures, runbooks, observability, recovery, continuity, deployment, and maintenance knowledge;
|
|
26
|
+
- historical plans, prototypes, build records, validation, releases, retrospectives, and learning.
|
|
27
|
+
|
|
28
|
+
Create individual detailed records. A report, dossier, index, ledger, catalog, or composite summary may synthesize and navigate those records but never substitutes for them. Do not optimize for a tidy answer, one context window, low file count, or completing a second requested task in the same pass. Checkpoint and continue until the target inventory is exhausted.
|
|
29
|
+
|
|
30
|
+
Before reconstructing any record, read [the Archaeology contract](references/archaeology-contract.md), [the SPECS lifecycle reconstruction reference](references/lifecycle-reconstruction.md), and [the maximum-detail reconstruction contract](references/maximum-detail-reconstruction.md) completely. Before delegating the security pass, also read [the provider-specific model-routing rules](references/model-routing.md). Do not proceed from memory or substitute a shorter interpretation.
|
|
31
|
+
|
|
32
|
+
## Pass the purpose-alignment gate
|
|
33
|
+
|
|
34
|
+
Do not begin deep Archaeology until EWAI is initialized and a human project briefing records why the project exists, who it serves, the outcomes that matter, known constraints, and important non-goals. Code can show current behaviour; it cannot establish business purpose or prove that behaviour is intentional.
|
|
35
|
+
|
|
36
|
+
Start with read-only reconnaissance. Compare repository evidence with the human briefing, then present your current understanding of the project's purpose, boundaries, and primary processes. Mark every code-derived purpose claim as a hypothesis. Ask the project owner to confirm, correct, or qualify material differences before reconstructing journeys, requirements, decisions, or standards. If purpose remains unclear, keep asking one focused question at a time and do not proceed merely because the repository is large or internally consistent.
|
|
37
|
+
|
|
38
|
+
Offer `$ewai-context-import` when the user has source material that has not yet been registered. Reconcile its attributed findings with code and history; do not treat a meeting statement as more authoritative than live behaviour or treat live behaviour as proof of business intent.
|
|
39
|
+
|
|
40
|
+
## Pass the persona-value gate
|
|
41
|
+
|
|
42
|
+
After initial repository and imported-source reconnaissance, but before launching any deep analysis agents, run `ewai archaeology prepare-personas <bundle> --project <path> --json` internally. This snapshots the installed core, premium, personal, and project persona capability index into `persona-routing.yaml`; do not replace it with a memory-based list.
|
|
43
|
+
|
|
44
|
+
Assess the likely value of available personas for purpose and actors, user processes, domain and data, architecture and integrations, security and trust, operations and assurance, and code quality. For every pass, record the recommended persona identifiers, why they fit the evidence, what they should improve, and any perspective gap. Select a small ensemble; do not load the entire library merely because it is installed.
|
|
45
|
+
|
|
46
|
+
Present the user with a concise persona analysis before proceeding. Tell them:
|
|
47
|
+
|
|
48
|
+
- how many personas and tiers were examined;
|
|
49
|
+
- which personas would materially improve the Archaeology and why;
|
|
50
|
+
- which bounded passes each persona would lead, consult on, or challenge;
|
|
51
|
+
- where no suitable persona exists or a project-specific actor persona may be needed;
|
|
52
|
+
- that installed advisory personas are reasoning lenses, not evidence about real users.
|
|
53
|
+
|
|
54
|
+
Ask whether to use the recommended ensemble. Record the user's confirmation or decline, the selected personas, accountable person, time, summary shown, assignments, and any notes in `persona-routing.yaml`. Then run:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
ewai archaeology validate-personas <bundle> --project <path> --json
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Do not launch deep analysis agents unless this validation passes. A decline is valid when it is explicit and explained; the baseline Archaeologist and SPECS Knowledge Curator still apply. If deep passes already ran because this gate was missed, disclose the process failure, complete the persona analysis, and rerun every pass whose interpretation could materially change.
|
|
61
|
+
|
|
62
|
+
Switch the selected lenses as the investigation moves between passes. Propose project personas for evidenced actors under `proposals/SPECS/1.Scope/personas/project/`; never present an installed advisory persona as research about a real user.
|
|
63
|
+
|
|
64
|
+
## Establish technology and hosting with the owner
|
|
65
|
+
|
|
66
|
+
After the persona-value gate passes and before treating execution or deployment claims as current truth, refresh the Repository Source Map and prepare the governed technology and hosting briefing:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
ewai index refresh --project <path>
|
|
70
|
+
ewai archaeology prepare-technology-hosting <bundle> --project <path> --json
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Use the returned `activePersonas` as the visible lenses for this conversation. The core Archaeologist and SPECS Knowledge Curator remain active; swap in the confirmed premium, personal, and project personas that materially improve architecture, platform, data, operations, release, residency, or assurance questioning. Do not download premium personas during Archaeology. Do not hide which personas are engaged or use an unapproved persona merely because it matched a repository signal.
|
|
74
|
+
|
|
75
|
+
Treat every Source Map observation as `repository-observed`, not as proof of current use. Installed technology, stack, Organisation Blueprint, and project Source Map profiles may add evidence types beyond EWAI's common filename catalogue. Preserve the profile ID and analyser provenance; do not expand them into unsupported claims. Do not execute project scripts or inspect live hosting accounts as part of this operation.
|
|
76
|
+
|
|
77
|
+
Walk the owner through the generated questions. Explicitly establish:
|
|
78
|
+
|
|
79
|
+
- actual languages, frameworks, runtimes, databases, integrations, infrastructure, and relevant versions;
|
|
80
|
+
- actual provider, platform or service for every environment;
|
|
81
|
+
- countries, regions, data centres, tenants, or physical locations;
|
|
82
|
+
- development, test, staging, production, recovery, and other environments;
|
|
83
|
+
- cloud, on-premises, SaaS, PaaS, IaaS, managed-service, hybrid, other, or unknown deployment models;
|
|
84
|
+
- self-managed, provider-managed, shared, third-party-managed, hybrid, or unknown operating models and accountable owners;
|
|
85
|
+
- data storage, processing, backup, replication, and residency;
|
|
86
|
+
- the real release route, approvals, automation, rollback, and operational handoff;
|
|
87
|
+
- inactive or historical repository signals, contradictions, unresolved questions, answer owners, and required evidence.
|
|
88
|
+
|
|
89
|
+
For Power Platform or Salesforce, ask the operator to export and extract the application configuration into a configured repository or repository subfolder, then refresh the Source Map. EWAI analyses the extracted evidence; it does not extract ZIP or `.msapp` archives and an export does not prove the live tenant, environment, location, or deployment route.
|
|
90
|
+
|
|
91
|
+
Complete `technology-hosting-answers.template.json`, marking confirmation per answer, then record it:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
ewai archaeology record-technology-hosting <bundle> \
|
|
95
|
+
--input <project-relative-answers.json> \
|
|
96
|
+
--reviewed-by "<accountable person>" \
|
|
97
|
+
--project <path> --json
|
|
98
|
+
|
|
99
|
+
ewai archaeology technology-hosting-status <bundle> --project <path> --json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Preserve the distinction between `repository-observed`, `owner-declared`, and `human-confirmed`. A named reviewer does not confirm all fields. Retain contradictions and unknowns. Do not copy the profile into `SPECS/5.Strategy/architecture/stack.md` until the normal Archaeology review and curation gate approves that promotion.
|
|
103
|
+
|
|
104
|
+
Always preserve this notice in the briefing and recorded profile:
|
|
105
|
+
|
|
106
|
+
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.
|
|
107
|
+
|
|
108
|
+
## Select and record reproducible depth
|
|
109
|
+
|
|
110
|
+
After the Source Map is fresh and owner evidence is attributed, use `$ewai-evidence-depth` before deep passes. Prepare independent architecture, data, security, product, delivery, governance, and operations recommendations. Show coverage, retained failures and exclusions, stable gaps, adaptive questions, and the personas actively engaged for each concern.
|
|
111
|
+
|
|
112
|
+
Ask a named accountable person to select every dimension and explicitly group every eligible gap. Record the reviewed run before claiming an agreed Archaeology boundary. A whole-project baseline will commonly recommend deep coverage for several dimensions, but do not force all dimensions to the same level or use proposal count, ticket count, repository size, or generated prose length as a depth measure.
|
|
113
|
+
|
|
114
|
+
When repeating Archaeology, compare stored runs before explaining output changes. Explain changes in governed inputs, evidence, personas, depth, coverage, gaps, and grouping order. Do not rescan merely to compare and do not describe unexplained derived variance as reproducible.
|
|
115
|
+
|
|
116
|
+
Swap the visible persona ensemble as the dimension changes. Core and project personas provide the complete baseline; installed premium and personal personas add specialist challenge only when relevant. Never sync premium personas during this operation.
|
|
117
|
+
|
|
118
|
+
## Honour the requested depth
|
|
119
|
+
|
|
120
|
+
Treat a whole-project dig as a deep baseline by default. Reconnaissance is its first pass, not its completion boundary. A lightweight survey is allowed only when the user explicitly asks for one; label its outputs `survey`, list every deferred surface, and never describe it as completed Archaeology.
|
|
121
|
+
|
|
122
|
+
For a deep whole-project dig, live code is the primary evidence of current system behaviour. Git history and deleted documentation explain evolution and rationale; they do not substitute for tracing the application that runs today. Do not use artefact count, commit count, or a broad file inventory as evidence of depth.
|
|
123
|
+
|
|
124
|
+
Create `coverage-ledger.yaml` at the start and maintain it throughout. Record repositories, application surfaces, relevant file and symbol counts, examined sources, sampling or exclusions, depth achieved, unresolved blind spots, and the next required pass. A material surface may be `mapped`, `partial`, `blocked`, `not-applicable`, or `unexamined`. Whole-project Archaeology cannot become ready for review while a material surface remains `unexamined` or silently sampled.
|
|
125
|
+
|
|
126
|
+
Reconstruct the project as though EWAI had accompanied its lifecycle. Create `capability-catalog.yaml`, `specs-reconstruction-ledger.yaml`, and `archaeology-artifact-manifest.yaml` before producing proposals. Enumerate the full target record inventory, then iterate every material capability across all six SPECS areas, every required record family, and the applicable fourteen delivery stages. Build individual proposed records in a mirrored `proposals/SPECS/` tree. Do not invent missing history: record absent evidence and inferred rationale explicitly.
|
|
127
|
+
|
|
128
|
+
Perform these passes where applicable:
|
|
129
|
+
|
|
130
|
+
1. **Execution and deployment:** entry points, runtime topology, environments, containers, CI/CD, scheduled work, queues, workers, health checks, observability, and recovery.
|
|
131
|
+
2. **User and operational processes:** routes, screens, commands, APIs, controllers, services, jobs, events, notifications, state transitions, exception paths, and administrative workflows. Trace important flows end to end rather than listing files.
|
|
132
|
+
3. **Domain and data:** migrations, schemas, models, relationships, invariants, ownership, retention, audit history, lifecycle, and cross-boundary data movement.
|
|
133
|
+
4. **Security and trust review:** authentication, authorization, roles, tenancy or organisation scoping, secrets and configuration boundaries, input validation, output handling, sensitive data, cryptography, session and browser controls, dependency and supply-chain signals, external trust boundaries, abuse controls, failure modes, and security tests. Produce an individual project security-review record, route each material finding into a separate risk or constraint proposal, and make untested high-risk paths visible. This is an evidence-led static review, not penetration testing, compliance certification, or a guarantee of security. Run it as a distinct defensive, read-only pass using the provider-specific model-routing rules; in Claude Code invoke the installed `ewai-security-reviewer` subagent rather than a generic inherited-model agent.
|
|
134
|
+
5. **Code-quality review:** architecture boundaries, coupling, cohesion, duplication, complexity, dead or inactive code, error handling, transactions, concurrency, idempotency, performance, type and schema safety, testability, observability, configuration drift, maintainability, and recurring code conventions. Produce an individual project code-quality-review record and route material findings into separate technical-debt, pattern, constraint, risk, or decision proposals rather than leaving them in one narrative.
|
|
135
|
+
6. **Integrations and delivery:** providers, protocols, retries, idempotency, rate limits, failure handling, reconciliation, webhooks, and degraded-mode behaviour.
|
|
136
|
+
7. **Frontend and experience:** user journeys, navigation, state management, service calls, accessibility signals, error states, responsive behavior, and divergence between UI and backend contracts.
|
|
137
|
+
8. **Tests as requirements:** unit, feature, integration, end-to-end, security, performance, and failure-path tests. Extract asserted behaviour and identify high-risk live paths with no corresponding evidence.
|
|
138
|
+
9. **Configuration and dependencies:** manifests, lockfiles, framework configuration, feature flags, runtime pins, dependency purpose, inactive dependencies, and support risk.
|
|
139
|
+
10. **History and decisions:** trace each major live capability through relevant commits, diffs, blame, tags, PRs, issues, deleted documentation, and migrations. Use history to explain the current shape and distinguish deliberate decisions from accumulated behaviour.
|
|
140
|
+
11. **Lifecycle and SPECS reconstruction:** for each capability, rebuild the Scope, Purpose, Evidence, Constraints, Strategy, and Build records EWAI would normally have captured, including a fourteen-stage lifecycle assessment.
|
|
141
|
+
12. **Reconciliation:** compare live code, tests, history, documentation, human testimony, and reconstructed records; surface contradictions and validate them with accountable people.
|
|
142
|
+
|
|
143
|
+
For large repositories, work capability by capability and checkpoint between passes. Continue until the coverage ledger satisfies the agreed boundary; do not stop merely because one context window, agent turn, or convenient survey has ended.
|
|
144
|
+
|
|
145
|
+
## Use human progress language
|
|
146
|
+
|
|
147
|
+
Keep commands, raw search output, and evidence-ledger mechanics internal. Batch related read-only operations into bounded passes. Before each pass, explain the question in human terms; after it, report the meaningful delta with honest counts and confidence. Useful progress language includes:
|
|
148
|
+
|
|
149
|
+
- `Looking for user processes…`
|
|
150
|
+
- `Reviewing the database structure…`
|
|
151
|
+
- `Assessing security and trust boundaries…`
|
|
152
|
+
- `Reviewing backend configuration…`
|
|
153
|
+
- `Building the project language…`
|
|
154
|
+
- `Found 4 candidate workflows · 2 need your confirmation`
|
|
155
|
+
- `Found 3 recurring terms that may mean different things`
|
|
156
|
+
- `Capturing an observed API response convention as a proposed standard`
|
|
157
|
+
|
|
158
|
+
Do not announce routine shell commands, individual files, or every search. Do not claim a discovery merely to create progress theatre. Surface contradictions, uncertainty, sensitive findings, permission needs, and blockers immediately. Host-native tool-call chrome may remain visible, but the conversational narrative must stay focused on understanding and decisions.
|
|
159
|
+
|
|
160
|
+
## Establish the dig
|
|
161
|
+
|
|
162
|
+
1. Read `SPECS/pipeline.yaml`, the confirmed project briefing, reviewed context-import bundles, persona-routing records, and existing Project SPECS.
|
|
163
|
+
2. Complete the purpose-alignment gate above.
|
|
164
|
+
3. Confirm the investigation boundary: whole project, repository, capability, flow, decision, integration, or suspicious code area.
|
|
165
|
+
4. Record the question the dig must answer and the accountable people who can validate findings.
|
|
166
|
+
5. Check the worktree before writing evidence. Do not disturb unrelated changes.
|
|
167
|
+
6. Create a dated bundle at `SPECS/3.Evidence/archaeology/<YYYY-MM-DD>-<slug>/`.
|
|
168
|
+
7. Complete initial read-only reconnaissance, prepare the persona routing file, present the recommended ensemble, record the user's decision, and pass `ewai archaeology validate-personas`.
|
|
169
|
+
8. Refresh the Repository Source Map, prepare the technology and hosting briefing, interview the owner, and record the attributed profile before relying on current execution or deployment claims.
|
|
170
|
+
9. Use `$ewai-evidence-depth` to prepare and record the named seven-dimensional investigation boundary.
|
|
171
|
+
10. Create the coverage ledger from that reviewed run and retain every failed, excluded, contradictory, deferred, and unknown surface.
|
|
172
|
+
11. Create the capability catalog from all user, operational, administrative, integration, data, platform, and support capabilities found across live code and history.
|
|
173
|
+
12. Create the SPECS reconstruction ledger and seed one row for every material capability crossed with each applicable SPECS area and lifecycle stage.
|
|
174
|
+
13. Create the artefact manifest and seed every required capability and project record family before writing proposals. Add newly discovered records immediately; never let the manifest lag behind the investigation.
|
|
175
|
+
|
|
176
|
+
If EWAI is not initialized or the human project briefing is missing, return to the EWAI companion onboarding flow. Do not force initialization, infer the briefing from code, or overwrite an existing SPECS contract.
|
|
177
|
+
|
|
178
|
+
## Gather evidence
|
|
179
|
+
|
|
180
|
+
Inspect the most specific available sources before broad searches:
|
|
181
|
+
|
|
182
|
+
1. Existing SPECS, ADRs, requirements, runbooks, diagrams, and decision records.
|
|
183
|
+
2. Repository index or symbol graph when available; verify derived results against source.
|
|
184
|
+
3. Source code, tests, schemas, routes, configuration, interfaces, and deployment files.
|
|
185
|
+
4. Manifests, lockfiles, runtime pins, containers, infrastructure definitions, CI workflows, deployment descriptors, and database adapters.
|
|
186
|
+
5. Git history, blame, commit messages, tags, branches, and linked issue or pull-request references.
|
|
187
|
+
6. Supplied tickets, transcripts, incident records, research, and operational evidence.
|
|
188
|
+
7. Human testimony, clearly attributed and distinguished from repository observation.
|
|
189
|
+
|
|
190
|
+
Use `rg` for file and text discovery. Use targeted `git log --follow`, `git log -S`, `git show`, and `git blame` only inside the agreed dig site. Never expose secrets or copy sensitive values into archaeology artefacts.
|
|
191
|
+
|
|
192
|
+
## Maintain the evidence ledger
|
|
193
|
+
|
|
194
|
+
Write `evidence-ledger.yaml` and give every material claim one classification:
|
|
195
|
+
|
|
196
|
+
- `observed`: directly visible in an authoritative source.
|
|
197
|
+
- `corroborated`: supported by at least two independent sources.
|
|
198
|
+
- `inferred`: plausible explanation that still needs confirmation.
|
|
199
|
+
- `contradicted`: credible sources disagree.
|
|
200
|
+
- `unknown`: evidence is absent or insufficient.
|
|
201
|
+
|
|
202
|
+
Record the claim, source locations, confidence, contradictions, affected surfaces, validation owner, and review status. Code proves current implementation, not business intent. Repetition proves consistency, not necessarily an approved pattern.
|
|
203
|
+
|
|
204
|
+
The three reconstruction references named in the non-negotiable mission are mandatory inputs, not optional background reading.
|
|
205
|
+
|
|
206
|
+
## Reconstruct project knowledge
|
|
207
|
+
|
|
208
|
+
Prepare `report.md` with:
|
|
209
|
+
|
|
210
|
+
- dig scope and repository snapshot;
|
|
211
|
+
- technology inventory covering languages, frameworks, runtimes, package managers, data stores, infrastructure, deployment targets, and evidenced versions;
|
|
212
|
+
- evidence-backed timeline;
|
|
213
|
+
- observed behaviour and system boundaries;
|
|
214
|
+
- inferred domain language, personas, journeys, requirements, and intents;
|
|
215
|
+
- reconstructed decisions, constraints, patterns, dependencies, and consequences;
|
|
216
|
+
- contradictions, risks, blast-radius concerns, and stale documentation;
|
|
217
|
+
- open questions and proposed validation owners;
|
|
218
|
+
- candidate SPECS changes grouped by destination.
|
|
219
|
+
|
|
220
|
+
For a deep whole-project baseline, keep detailed analysis under `analysis/` so the master report remains navigable. Create only applicable records, but normally expect separate evidence-backed views of execution/deployment, user processes, domain/data, security/trust boundaries, integrations, frontend experience, test-derived requirements, configuration/dependencies, history/decisions, and lifecycle/SPECS reconstruction. A small master report may link to extensive analysis; a small number of links does not excuse shallow coverage.
|
|
221
|
+
|
|
222
|
+
Create separate `evidence.security-review` and `evidence.code-quality-review` project records. Link their findings to individual risks, technical-debt entries, constraints, patterns, decisions, and remediation candidates. Do not hide a list of issues inside either review instead of creating the detailed records required elsewhere in the manifest.
|
|
223
|
+
|
|
224
|
+
Keep proposed artefacts under the bundle's `proposals/SPECS/` mirror until reviewed. Produce separate files for every discernible persona, intent, workflow, journey, requirement set, risk, constraint, pattern, ADR, option, integration, architecture decision, SOP, runbook, operational procedure, incident, historical build record, and retrospective. Populate navigational indexes and registers in addition to their detailed entries. Put interview questions in `open-questions.md`; ask them one at a time and update the ledger with attributed answers.
|
|
225
|
+
|
|
226
|
+
An observed implementation may support a reconstructed decision outcome, but not an unrecorded rationale. An alternative belongs in historical options only when commits, PRs, issues, documents, or attributed testimony show it was actually considered; otherwise label it a plausible alternative requiring confirmation. Mark reconstructed `6.Build` records as historical and never turn them into an active delivery run.
|
|
227
|
+
|
|
228
|
+
Before presenting findings for review, run:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
ewai archaeology validate <bundle> --project <path> --json
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Resolve every validation error. Do not tell the user the investigation is complete, ready, full, or comprehensive when validation fails. Report the status as `Investigation in progress` while records remain, `Investigation ready for review` only after validation passes, and `Archaeology complete` only after human review and canonical curation.
|
|
235
|
+
|
|
236
|
+
Classify technology as `declared`, `observed`, `inferred`, `inactive`, or `unknown`. Compare the inventory with any existing `SPECS/5.Strategy/architecture/stack.md`, record drift, and propose matching installed technology packs. Do not run untrusted project scripts, install dependencies, select packs, or rewrite stack strategy without human approval.
|
|
237
|
+
|
|
238
|
+
## Offer a choice of review experience
|
|
239
|
+
|
|
240
|
+
After validation passes, run `ewai archaeology prepare-review <bundle> --project <path> --json` internally. Tell the user how many individual proposals are ready and offer two clear paths:
|
|
241
|
+
|
|
242
|
+
1. **Self-review and manual filing:** show the review guide, proposals tree, evidence links, and proposed canonical destinations. Let the user edit, refile, merge, or leave records in the bundle. Do not imply that manual filing is second-class and do not copy anything automatically.
|
|
243
|
+
2. **AI-guided walkthrough:** present a high-level map first, then walk through small related groups covering purpose and actors, capabilities and journeys, architecture and integrations, security, code quality, operations, risks, and history. Before asking questions, synthesize the evidence, contradictions, open questions, and repeated assumptions into the smallest useful set of cross-record review questions and record them in `review-question-plan.yaml`. Ask one focused question at a time. Let the user drill into any individual record and record `accepted`, `accepted-with-corrections`, `rejected`, or `deferred` for every proposal in `review-decisions.yaml`.
|
|
244
|
+
|
|
245
|
+
Prefer questions whose answer resolves a genuine shared decision across multiple record types—for example, a single policy answer may clarify an actor's authority, three workflow branches, an ADR, two constraints, and related risks. Each question must state:
|
|
246
|
+
|
|
247
|
+
- the plain-language decision or confirmation sought;
|
|
248
|
+
- why it matters and the strongest supporting or conflicting evidence;
|
|
249
|
+
- the suggested answer or concise options when that helps;
|
|
250
|
+
- every record ID it may update and how each would change;
|
|
251
|
+
- whether the answer only clarifies content or also asks for approval.
|
|
252
|
+
|
|
253
|
+
Apply an attributed answer once across the named records, then show the resulting changes and offer a batch decision only when the same acceptance judgment genuinely applies to every listed record. Never use a broad answer to approve unrelated details, hide dissenting evidence, or infer approval from clarification. If records diverge, split the question or decision group.
|
|
254
|
+
|
|
255
|
+
A group decision may update several clearly named records, but never conceal which records it affects. Record an accountable reviewer for every decision and explanatory notes for corrections, rejection, or deferral. For `accepted-with-corrections`, apply the agreed change to the proposal and set `corrections_applied: true` in the decision ledger before curation. High-level summaries and cross-record questions reduce human effort; they do not replace accountable decisions over the detailed inventory.
|
|
256
|
+
|
|
257
|
+
## Curate only with consent
|
|
258
|
+
|
|
259
|
+
When review decisions are complete, ask whether the user wants EWAI to file the accepted records into the live SPECS tree. If they agree, correct `accepted-with-corrections` proposals first and run `ewai archaeology curate <bundle> --project <path> --approved-by <name> --yes --json` internally.
|
|
260
|
+
|
|
261
|
+
Automatic curation preflights all accepted records and must refuse to overwrite a differing canonical record. Reconcile each conflict with the user rather than selecting a winner. Preserve rejected and deferred material in the Archaeology bundle. Verify the resulting canonical paths and curation ledger before describing Archaeology as complete.
|
|
262
|
+
|
|
263
|
+
Use the SPECS Knowledge Curator persona to:
|
|
264
|
+
|
|
265
|
+
- route accepted knowledge to the canonical SPECS location;
|
|
266
|
+
- promote the reviewed technology inventory to `SPECS/5.Strategy/architecture/stack.md` and record approved pack choices in project configuration;
|
|
267
|
+
- link it back to the archaeology report and evidence identifiers;
|
|
268
|
+
- keep rejected or unresolved proposals in the archaeology bundle;
|
|
269
|
+
- avoid replacing an existing authoritative record without explicit reconciliation;
|
|
270
|
+
- update relevant indexes, links, and lifecycle status.
|
|
271
|
+
|
|
272
|
+
Never promote inferred compliance, security, legal, or regulatory obligations without a qualified owner. Never represent an inferred persona as direct user research.
|
|
273
|
+
|
|
274
|
+
When the user wants to move from the reviewed reconstructed current state to target-state design, architecture trade-offs, or a transition roadmap, hand the accepted evidence to `$ewai-architecture`. Do not redesign the system inside Archaeology or relabel an inferred implementation choice as accepted future architecture.
|
|
275
|
+
|
|
276
|
+
## Pass the prospective-work transition gate
|
|
277
|
+
|
|
278
|
+
After accepted Archaeology knowledge has been curated, make a distinct, explicit future-work offer. This is a required closeout gate, not an optional conversational flourish. Explain that reconstructed historical intents describe how the project reached its current state; new work needs a separate prospective record.
|
|
279
|
+
|
|
280
|
+
Do not treat remediation items, risks, technical-debt records, or intents created from Archaeology findings as satisfying this gate. Those address what the investigation found wrong or incomplete. The prospective transition separately asks what the project should become next.
|
|
281
|
+
|
|
282
|
+
Offer the user these natural-language routes:
|
|
283
|
+
|
|
284
|
+
1. be interviewed about upcoming features, problems, or desired outcomes;
|
|
285
|
+
2. provide a roadmap, backlog, feature list, or folder of discovery material for `$ewai-context-import`;
|
|
286
|
+
3. ask EWAI for evidence-based ideas for future features, experience enhancements, operational improvements, integrations, security improvements, resilience work, code-quality improvements, testing, observability, or maintainability.
|
|
287
|
+
|
|
288
|
+
Use a direct closeout such as:
|
|
289
|
+
|
|
290
|
+
> We have reconstructed and reviewed where the project is today. Would you like me to (1) interview you about what it should do next, (2) work from a roadmap, feature list, or discovery folder, or (3) give you EWAI's own evidence-based recommendations—including product, experience, security, operations, resilience, testing, and code quality?
|
|
291
|
+
|
|
292
|
+
Do not replace this offer with “What would you like to tackle next?”, “What's on your mind?”, or another generic question. Do not end the Archaeology conversation until the offer has been made and the user has selected a route or explicitly declined it.
|
|
293
|
+
|
|
294
|
+
Record the transition in `<bundle>/future-work-transition.yaml` with the offer shown, time, accountable user when known, the selected route or explicit decline, supplied source references, recommendation-set paths, accepted candidate IDs, and separately approved intent IDs. This is transition evidence, not permission to create work.
|
|
295
|
+
|
|
296
|
+
Use this schema:
|
|
297
|
+
|
|
298
|
+
```yaml
|
|
299
|
+
schema: ewai.archaeology-future-work-transition/v1
|
|
300
|
+
offered_to_user: true
|
|
301
|
+
offer_summary: <the three-route offer shown>
|
|
302
|
+
routes_offered: [interview, import, recommendations]
|
|
303
|
+
offered_at: <ISO-8601 timestamp>
|
|
304
|
+
decision: interview | import | recommendations | declined
|
|
305
|
+
decided_by: <accountable user>
|
|
306
|
+
decided_at: <ISO-8601 timestamp>
|
|
307
|
+
source_references: []
|
|
308
|
+
recommendation_sets: []
|
|
309
|
+
accepted_candidate_ids: []
|
|
310
|
+
approved_intent_ids: []
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
When the user asks for EWAI's ideas, create a clearly labelled recommendation set from the curated project knowledge, security review, code-quality review, risks, gaps, imported context, and unresolved questions. Keep unaccepted suggestions under the Archaeology provenance bundle at `recommendations/<slug>.md` and maintain `recommendations/index.md`; do not place them directly in canonical Purpose or Constraints. For every recommendation record:
|
|
314
|
+
|
|
315
|
+
- the problem or opportunity and evidence that prompted it;
|
|
316
|
+
- affected capabilities, project actors, and personas;
|
|
317
|
+
- expected outcome and likely value;
|
|
318
|
+
- security, privacy, operational, and delivery implications;
|
|
319
|
+
- dependencies, trade-offs, uncertainty, and confidence;
|
|
320
|
+
- whether it is `suggested`, `accepted`, `rejected`, or `deferred`.
|
|
321
|
+
|
|
322
|
+
AI recommendations are proposals, not proof of user demand or permission to change the system. Present them in small themed groups and ask the user which, if any, deserve further work. Include security recommendations, but distinguish observed vulnerabilities, defence-in-depth improvements, missing assurance, and speculative threats. Urgent credible security findings should be surfaced immediately and handled according to the project's disclosure and incident rules. Never create recommendation-derived or remediation intents in parallel merely to make the closeout feel complete; obtain an explicit user decision for the named candidates first.
|
|
323
|
+
|
|
324
|
+
For an accepted idea that still lacks a testable outcome, create a lightweight discovery request at `SPECS/2.Purpose/explorations/feature-candidates/<slug>.md`. Cite its Archaeology, context-import, or human sources and capture the question to explore, affected actors, expected value, constraints, evidence, and open decisions. Do not pretend it is ready to build.
|
|
325
|
+
|
|
326
|
+
For an accepted idea that has explicit desired outcomes, personas, journeys or workflows, acceptance evidence, constraints, dependencies, and open decisions, offer `$ewai-intent` and obtain approval before creating or enriching `SPECS/2.Purpose/intents/<domain>/<slug>.md`. End by showing the user the resulting candidate and intent backlog and asking, **“What should this system do next?”** Stop before planning or implementation.
|
|
327
|
+
|
|
328
|
+
## Completion boundary
|
|
329
|
+
|
|
330
|
+
Archaeology is complete only when the persona-value gate and maximum-detail validator have passed, every manifest row is accounted for, the coverage ledger shows every material in-scope surface as mapped, partial with an accepted limitation, blocked with an owner, or not applicable, the SPECS reconstruction ledger accounts for all six areas and the applicable fourteen lifecycle stages for every material capability, the security and code-quality reviews are present, material claims are traceable, contradictions and unknowns remain visible, accountable reviewers have recorded decisions, and accepted knowledge has been promoted into canonical SPECS. The Archaeology closeout is not finished until the distinct prospective-work offer is recorded in `future-work-transition.yaml` and the user has chosen a route or explicitly declined. A reconnaissance map, analysis dossier set, representative sample, summary, proposals-only bundle, or remediation-intent list never satisfies this completion gate.
|
|
331
|
+
|
|
332
|
+
Before saying “Archaeology complete”, run `ewai archaeology validate-completion <bundle> --project <path> --json`. If it fails, describe the work as awaiting curation or awaiting the prospective-work decision and resolve the named errors. Never claim completion from conversation state alone.
|
|
333
|
+
|
|
334
|
+
Stop before implementation. Create a new intent for any remediation or feature work discovered by the dig.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "EWAI Archaeology"
|
|
3
|
+
short_description: "Recreate and review maximum-detail project SPECS"
|
|
4
|
+
default_prompt: "Use $ewai-archaeology to assess and confirm the best installed persona ensemble, then recreate this project's full-coverage, maximum-discoverable-detail SPECS from code, history, imported context, and human evidence; include security and code-quality reviews, guide curation, and offer a future-work backlog."
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# EWAI Archaeology contract
|
|
2
|
+
|
|
3
|
+
Use this contract to keep reconstruction evidence-led, reviewable, and safe.
|
|
4
|
+
|
|
5
|
+
## Evidence precedence
|
|
6
|
+
|
|
7
|
+
No single source is universally authoritative. State what each source can prove:
|
|
8
|
+
|
|
9
|
+
| Source | Can support | Cannot prove alone |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| Runtime observation | Current visible behaviour | Intended behaviour or historical rationale |
|
|
12
|
+
| Tests | Asserted contract at a point in time | Business approval or complete coverage |
|
|
13
|
+
| Source and configuration | Current implementation | Original intent or continued desirability |
|
|
14
|
+
| Manifests and lockfiles | Declared dependencies and resolved versions | Whether a dependency is active at runtime |
|
|
15
|
+
| Containers, CI, and infrastructure files | Intended build or deployment mechanics | Whether every environment still follows them |
|
|
16
|
+
| Git history | Sequence, authorship, recorded messages | Unrecorded alternatives or full motivation |
|
|
17
|
+
| SPECS and ADRs | Recorded intent and accepted decisions | Current implementation conformance |
|
|
18
|
+
| Tickets and transcripts | Requested outcomes and discussion | Final approval unless explicitly recorded |
|
|
19
|
+
| Human testimony | Lived context and interpretation | Independent corroboration or universal agreement |
|
|
20
|
+
|
|
21
|
+
Prefer a primary source for the claim and an independent corroborating source. Record conflicts instead of selecting the most convenient account.
|
|
22
|
+
|
|
23
|
+
## Ledger fields
|
|
24
|
+
|
|
25
|
+
Each entry in `evidence-ledger.yaml` should contain:
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
- id: ARC-001
|
|
29
|
+
claim: The application isolates customer data by organisation.
|
|
30
|
+
classification: inferred
|
|
31
|
+
confidence: medium
|
|
32
|
+
sources:
|
|
33
|
+
- type: source
|
|
34
|
+
location: src/example.ts:42
|
|
35
|
+
supports: Queries include an organisation identifier.
|
|
36
|
+
contradictions: []
|
|
37
|
+
affected_surfaces: [data-access]
|
|
38
|
+
validation_owner: Technical owner
|
|
39
|
+
review_status: pending
|
|
40
|
+
reviewed_at: null
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Use `low`, `medium`, or `high` confidence. Classification describes evidence state; confidence describes strength within that state. An inference does not become observed merely because confidence is high.
|
|
44
|
+
|
|
45
|
+
## Canonical outputs
|
|
46
|
+
|
|
47
|
+
Create one bundle per bounded dig:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
SPECS/3.Evidence/archaeology/<YYYY-MM-DD>-<slug>/
|
|
51
|
+
├── report.md
|
|
52
|
+
├── evidence-ledger.yaml
|
|
53
|
+
├── open-questions.md
|
|
54
|
+
└── proposals/
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The bundle remains the provenance record. Accepted knowledge is copied or synthesized into its canonical SPECS home with backlinks to evidence IDs; it is not removed from the bundle.
|
|
58
|
+
|
|
59
|
+
For a deep whole-project baseline, extend the bundle without overloading the master report:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
SPECS/3.Evidence/archaeology/<YYYY-MM-DD>-<slug>/
|
|
63
|
+
├── report.md
|
|
64
|
+
├── evidence-ledger.yaml
|
|
65
|
+
├── coverage-ledger.yaml
|
|
66
|
+
├── capability-catalog.yaml
|
|
67
|
+
├── specs-reconstruction-ledger.yaml
|
|
68
|
+
├── archaeology-artifact-manifest.yaml
|
|
69
|
+
├── persona-routing.yaml
|
|
70
|
+
├── technology-hosting-brief.json
|
|
71
|
+
├── technology-hosting-brief.md
|
|
72
|
+
├── technology-hosting-answers.template.json
|
|
73
|
+
├── technology-hosting-profile.json
|
|
74
|
+
├── technology-hosting-profile.md
|
|
75
|
+
├── open-questions.md
|
|
76
|
+
├── analysis/
|
|
77
|
+
│ ├── execution-and-deployment.md
|
|
78
|
+
│ ├── user-processes.md
|
|
79
|
+
│ ├── domain-and-data.md
|
|
80
|
+
│ ├── security-and-trust.md
|
|
81
|
+
│ ├── integrations.md
|
|
82
|
+
│ ├── security-review.md
|
|
83
|
+
│ ├── code-quality-review.md
|
|
84
|
+
│ ├── frontend-experience.md
|
|
85
|
+
│ ├── test-derived-requirements.md
|
|
86
|
+
│ ├── configuration-and-dependencies.md
|
|
87
|
+
│ ├── history-and-decisions.md
|
|
88
|
+
│ └── lifecycle-and-specs-reconstruction.md
|
|
89
|
+
└── proposals/
|
|
90
|
+
└── SPECS/
|
|
91
|
+
├── 1.Scope/
|
|
92
|
+
├── 2.Purpose/
|
|
93
|
+
├── 3.Evidence/
|
|
94
|
+
├── 4.Constraints/
|
|
95
|
+
├── 5.Strategy/
|
|
96
|
+
└── 6.Build/
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Create every applicable detailed SPECS proposal. Analysis records are navigational synthesis and may be limited to applicable surfaces; they never replace the detailed records enumerated in the artefact manifest. The purpose is maximum discoverable detail with evidence, not a fixed quota or a small representative sample.
|
|
100
|
+
|
|
101
|
+
## Persona-routing gate
|
|
102
|
+
|
|
103
|
+
Create `persona-routing.yaml` from the deterministic installed-persona index after initial reconnaissance and before deep passes. Assess persona value separately for purpose/actors, user processes, domain/data, architecture/integrations, security/trust, operations/assurance, and code quality. Record the inventory without local source paths, the evidence used to identify needed perspectives, per-pass recommendations and expected benefit, gaps, final assignments, and the user's attributed decision.
|
|
104
|
+
|
|
105
|
+
Present only the concise recommended ensemble to the user, not hundreds of index entries. Deep analysis cannot start until `ewai archaeology validate-personas` passes. If the user declines additional personas, retain the explicit decision and rationale while continuing with the baseline Archaeologist and SPECS Knowledge Curator. Installed personas remain advisory lenses; project actors require separate evidence-grounded project persona proposals.
|
|
106
|
+
|
|
107
|
+
The security review is a static, evidence-led assessment, not penetration testing or certification. Cover the project's authentication and authorization boundaries, tenant isolation where applicable, validation and output handling, secrets, data protection, cryptography, browser and session controls, integrations, abuse controls, dependencies, deployment configuration, failure behavior, and security tests. Route each material finding to its own risk, constraint, incident, decision, or remediation-candidate record.
|
|
108
|
+
|
|
109
|
+
The code-quality review covers architecture boundaries, coupling, cohesion, duplication, complexity, inactive code, error handling, transactions and concurrency, idempotency, performance, type and schema safety, testability, observability, configuration drift, and maintainability. Route material findings into their own technical-debt, risk, pattern, constraint, or decision records. Neither review may satisfy detailed manifest rows by merely listing issues in one analysis file.
|
|
110
|
+
|
|
111
|
+
Read `lifecycle-reconstruction.md` and `maximum-detail-reconstruction.md`. The coverage ledger answers whether the system was investigated deeply; the reconstruction ledger answers whether the missing project knowledge was accounted for across the lifecycle; the artefact manifest proves that the individual detailed proposals were actually produced or honestly excepted.
|
|
112
|
+
|
|
113
|
+
## Coverage ledger
|
|
114
|
+
|
|
115
|
+
Record each material surface in `coverage-ledger.yaml`:
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
- id: COV-001
|
|
119
|
+
surface: Alert dispatch and escalation
|
|
120
|
+
category: user-process
|
|
121
|
+
status: mapped
|
|
122
|
+
depth: end-to-end
|
|
123
|
+
repositories: [application]
|
|
124
|
+
examined:
|
|
125
|
+
files: 18
|
|
126
|
+
symbols: 42
|
|
127
|
+
tests: 11
|
|
128
|
+
history_entries: 9
|
|
129
|
+
exclusions: []
|
|
130
|
+
blind_spots: []
|
|
131
|
+
limitation: null
|
|
132
|
+
rationale: null
|
|
133
|
+
review_owner: Product owner
|
|
134
|
+
review_status: accepted
|
|
135
|
+
evidence: [ARC-021, ARC-022]
|
|
136
|
+
investigation_refs: []
|
|
137
|
+
next_action: null
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
During investigation a surface may be `unexamined`, but reviewable terminal values are `mapped`, `partial`, `blocked`, and `not-applicable`. Record honest counts from the investigation; never invent precision. A deep whole-project dig cannot become ready for review with an unexamined material surface. A `partial` surface requires a substantive `limitation`, `review_owner`, and `review_status: accepted`. A `blocked` surface requires a substantive `rationale`, `review_owner`, and concrete `next_action`. A `not-applicable` surface requires a substantive `rationale` and `investigation_refs` proving it was examined.
|
|
141
|
+
|
|
142
|
+
## Technology inventory
|
|
143
|
+
|
|
144
|
+
Record technology findings by repository and execution surface. Include languages, frameworks, runtimes, package managers, dependencies that define architecture, data stores, queues, search, observability, containers, infrastructure, CI, and deployment targets.
|
|
145
|
+
|
|
146
|
+
After the persona-routing gate, a deep baseline must use `ewai archaeology prepare-technology-hosting` against a fresh Repository Source Map and record an accountable response with `ewai archaeology record-technology-hosting`. The briefing must expose the active core, premium, personal, and project persona lenses selected from the approved routing decision. It must ask for the actual provider, platform or service, location or region, environments, deployment model, operating model, data-residency position, release route, inactive signals, contradictions, and unresolved questions. Support single repositories, monorepos, and configured folders containing repository subfolders without flattening repository provenance.
|
|
147
|
+
|
|
148
|
+
The technology-hosting profile uses a separate provenance vocabulary:
|
|
149
|
+
|
|
150
|
+
- `repository-observed`: an indexed filename, analyser, or installed Source Map profile matched;
|
|
151
|
+
- `owner-declared`: a human supplied the individual answer but did not explicitly confirm it;
|
|
152
|
+
- `human-confirmed`: the individual answer was explicitly confirmed with its evidence references.
|
|
153
|
+
|
|
154
|
+
Reviewer identity alone never upgrades all answers. Configuration and extracted Power Platform or Salesforce source are not proof of the live tenant, environment, region, data residency, deployment route, or runtime state. Retain explicit `active`, `inactive`, `contradicted`, or `uncertain` dispositions for repository signals. Retain unresolved questions and accountable answer owners.
|
|
155
|
+
|
|
156
|
+
The generated profile remains evidence in the Archaeology bundle. It does not automatically become canonical stack strategy, select a technology pack, run a live infrastructure probe, or authorise deployment. A forced re-preparation may replace preparation artefacts but never overwrites an existing reviewed profile; a digest mismatch makes the earlier profile stale.
|
|
157
|
+
|
|
158
|
+
Always retain this notice in the briefing and profile:
|
|
159
|
+
|
|
160
|
+
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.
|
|
161
|
+
|
|
162
|
+
Use these states:
|
|
163
|
+
|
|
164
|
+
- `declared`: named in a manifest, lockfile, configuration, or existing SPECS.
|
|
165
|
+
- `observed`: used by source, build, test, or deployment evidence.
|
|
166
|
+
- `inferred`: suggested by patterns but not directly confirmed.
|
|
167
|
+
- `inactive`: present but apparently unused, retired, or limited to historical code.
|
|
168
|
+
- `unknown`: version, purpose, ownership, or runtime use cannot be established.
|
|
169
|
+
|
|
170
|
+
Capture version provenance rather than guessing from current product releases. Do not execute package installation or project-defined scripts merely to identify the stack. Put the proposed reviewed stack record in `proposals/stack.md`; after human confirmation, route it to `SPECS/5.Strategy/architecture/stack.md` and then consider matching EWAI technology packs.
|
|
171
|
+
|
|
172
|
+
## Promotion rules
|
|
173
|
+
|
|
174
|
+
| Candidate finding | Review destination |
|
|
175
|
+
|---|---|
|
|
176
|
+
| Boundary, inventory, term, API, or persona | `SPECS/1.Scope/` |
|
|
177
|
+
| Intent, journey, discussion, or requirement | `SPECS/2.Purpose/` |
|
|
178
|
+
| Observation, risk, test result, incident, or unresolved finding | `SPECS/3.Evidence/` |
|
|
179
|
+
| Confirmed non-negotiable rule | `SPECS/4.Constraints/` |
|
|
180
|
+
| Accepted decision, option, architecture, pattern, SOP, or runbook | `SPECS/5.Strategy/` |
|
|
181
|
+
| Implementation tracker or build output | `SPECS/6.Build/` |
|
|
182
|
+
|
|
183
|
+
Require an accountable human to approve promotion. Security, privacy, compliance, accessibility, and legal findings may require a qualified specialist rather than only the project owner.
|
|
184
|
+
|
|
185
|
+
## Review and future-work transition
|
|
186
|
+
|
|
187
|
+
After maximum-detail validation, create the review guide, decision ledger, and cross-record question plan. Offer self-review with manual filing or an AI-guided high-level walkthrough with drill-down. For guided review, synthesize shared assumptions, contradictions, and decisions into the smallest useful set of questions. Every question names its evidence, affected record IDs, expected changes, and whether it seeks clarification or approval. Apply one attributed answer across those records only when it truly governs them; split divergent groups. Automatic filing requires an explicit user request, terminal decisions for every reconstruction record, accountable reviewers, explanatory notes for corrected/rejected/deferred records, and a conflict-free preflight against canonical SPECS.
|
|
188
|
+
|
|
189
|
+
Once curated, offer a separate prospective backlog exercise. Draw possible features, enhancements, security improvements, code-quality work, and operational recommendations from accepted SPECS, imported context, review findings, risks, and gaps. Keep recommendations labelled as AI proposals under the Archaeology bundle's `recommendations/` directory until the user accepts them. Route an accepted but immature idea to `SPECS/2.Purpose/explorations/feature-candidates/`; use `$ewai-intent` only after the outcome, actors, journeys, acceptance evidence, constraints, dependencies, and open decisions are sufficiently explicit and the user approves creation.
|
|
190
|
+
|
|
191
|
+
The prospective backlog offer is mandatory even when remediation intents were already approved or created. Present three explicit routes: interview the owner about future work, ingest a roadmap/feature list/discovery folder, or produce EWAI's evidence-based recommendations across product, experience, integrations, security, operations, resilience, testing, observability, code quality, and maintainability. A generic “what next?” does not satisfy the transition. Record the offer and the user's selection or explicit decline in `future-work-transition.yaml`. Do not batch-create recommendation or remediation intents without explicit approval for the named candidates.
|
|
192
|
+
|
|
193
|
+
## Safety boundaries
|
|
194
|
+
|
|
195
|
+
- Default to read-only investigation outside the archaeology bundle.
|
|
196
|
+
- Do not run destructive commands, migrations, deployments, or production queries.
|
|
197
|
+
- Do not record secrets, credentials, personal data, or unnecessary sensitive excerpts.
|
|
198
|
+
- Do not infer a person's goals, needs, or characteristics from access-control code alone.
|
|
199
|
+
- Do not erase contradictory evidence or rewrite historical records to match the current explanation.
|
|
200
|
+
- Do not start remediation during the dig; capture a separate intent after review.
|
|
201
|
+
- Do not restore deleted files or disturb the worktree merely to inspect history; read historical content through Git object commands.
|