@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,109 @@
|
|
|
1
|
+
# Guided Intent Workspace
|
|
2
|
+
|
|
3
|
+
The Guided Intent Workspace, labelled **Intent Studio** in the local dashboard, helps a product owner, facilitator, or engineer shape one feature intent without using the command line. It supports two bounded outcomes:
|
|
4
|
+
|
|
5
|
+
- **Create a new intent** from a recoverable draft.
|
|
6
|
+
- **Reconcile an eligible draft intent** while preserving its identity and delivery relationships.
|
|
7
|
+
|
|
8
|
+
It does not replace participant conversations, approve delivery, or turn model output into project truth. Premium personas aren't required to create or review an intent. Installed personas improve the questions and challenges presented during shaping.
|
|
9
|
+
|
|
10
|
+
## Before you begin
|
|
11
|
+
|
|
12
|
+
Run the normal EWAI check-in and open the local dashboard URL it returns. Select **Intent Studio** from the main navigation.
|
|
13
|
+
|
|
14
|
+
The workspace reads its project and persona context from the local EWAI runtime. It does not accept a project root, model provider, delivery command, or arbitrary output path from the browser.
|
|
15
|
+
|
|
16
|
+
## Create a new intent
|
|
17
|
+
|
|
18
|
+
An **intent identifier** points to one proposed outcome. For example, domain `support` and slug `export-filtered-tickets` identify a feature to export the filtered ticket list; its saved reference may include the domain. Use the reference EWAI returns in later commands rather than copying an example slug. Keep the title human-readable—the identifier is for finding the same work again.
|
|
19
|
+
|
|
20
|
+
1. Select **Create a new intent**.
|
|
21
|
+
2. Give the intent a stable slug, domain and title.
|
|
22
|
+
3. Work through the evidence spine:
|
|
23
|
+
- identity;
|
|
24
|
+
- problem;
|
|
25
|
+
- desired outcome;
|
|
26
|
+
- users and affected roles;
|
|
27
|
+
- journeys;
|
|
28
|
+
- acceptance criteria;
|
|
29
|
+
- constraints and non-goals;
|
|
30
|
+
- intent relationships;
|
|
31
|
+
- delivery shape;
|
|
32
|
+
- evidence;
|
|
33
|
+
- open decisions;
|
|
34
|
+
- review.
|
|
35
|
+
4. Use **Save and continue** to store a project-local draft and move to the next section.
|
|
36
|
+
5. At Review, resolve every blocking omission and check the exact Markdown and JSON destinations.
|
|
37
|
+
6. If you're the accountable approver, enter your name, confirm the review statement and approve the current draft revision. Otherwise, have that person review and approve it themselves.
|
|
38
|
+
|
|
39
|
+
Approval atomically creates the canonical adjacent Markdown and JSON intent records. It does not approve Build, Manual QA, certification, deployment, or release.
|
|
40
|
+
|
|
41
|
+
## Reconcile an eligible draft intent
|
|
42
|
+
|
|
43
|
+
Choose **Reconcile an eligible draft intent**, then select a listed intent. An intent is eligible only when it is still genuinely draft work: its canonical Markdown and JSON agree, and delivery has not started.
|
|
44
|
+
|
|
45
|
+
The workspace imports the existing intent into a new project-local working draft. Identity, relationships and delivery state remain protected. You can refine the title, personas, delivery shape and evidence-bearing intent sections.
|
|
46
|
+
|
|
47
|
+
Review displays the proposed before and after values. A named approval of the current revision performs one atomic canonical replacement. If the underlying intent has moved into delivery or no longer matches the imported identity, reconciliation is rejected and the working draft is retained for recovery.
|
|
48
|
+
|
|
49
|
+
## Recoverable drafts and revision conflicts
|
|
50
|
+
|
|
51
|
+
Every successful save creates a new draft revision. If another tab or operator saved after you opened your copy, your save is rejected with a **revision conflict** rather than overwriting their newer work.
|
|
52
|
+
|
|
53
|
+
When that happens:
|
|
54
|
+
|
|
55
|
+
1. Copy any unsaved text you need to retain.
|
|
56
|
+
2. Reload Intent Studio to obtain the current project-local draft.
|
|
57
|
+
3. Reapply the relevant change and save again.
|
|
58
|
+
|
|
59
|
+
**Discard draft** requires explicit confirmation and the current revision. It removes only the recoverable working draft, never an approved canonical intent.
|
|
60
|
+
|
|
61
|
+
Failed canonical creation or reconciliation leaves the project-local draft in place. Resolve the reported collision or consistency problem, reload if necessary, and retry.
|
|
62
|
+
|
|
63
|
+
## How persona engagement works
|
|
64
|
+
|
|
65
|
+
EWAI recalculates the actively engaged personas when the current section or material draft context changes. The right-hand rail shows, for each active persona:
|
|
66
|
+
|
|
67
|
+
- name;
|
|
68
|
+
- source tier: project, core, installed premium, or personal;
|
|
69
|
+
- the signals that matched;
|
|
70
|
+
- why the persona is engaged now.
|
|
71
|
+
|
|
72
|
+
The ensemble is deliberately replaced as the work moves from problem framing to journeys, assurance, delivery shape, and review. A small relevant ensemble is more useful than asking every persona every question.
|
|
73
|
+
|
|
74
|
+
The **Standard host-model baseline** remains sufficient when no persona matches. Premium personas are optional. When the installed premium library is unavailable, the workspace explains that state and continues; it does not download or synchronise premium content. Project-local and personal personas can add organisation-specific language and responsibilities without weakening the baseline.
|
|
75
|
+
|
|
76
|
+
Personas are advisory lenses. Their output is not participant evidence, legal approval, specialist assurance, business acceptance, or permission to build. Record interviews, workshops, repository observations, policies and research under Evidence, and keep unresolved claims under Open decisions.
|
|
77
|
+
|
|
78
|
+
## Using the AI review hand-off
|
|
79
|
+
|
|
80
|
+
**Copy AI review hand-off** places a bounded summary and instructions on the clipboard for use in the current host-model conversation. It does not send project data to a browser-selected provider, call a hidden model endpoint, save model output, or approve the draft.
|
|
81
|
+
|
|
82
|
+
Ask the model to identify ambiguity, missing evidence, conflicting acceptance criteria, overlooked users and delivery-shape concerns. Bring useful suggestions back into the relevant section yourself and preserve their status as hypotheses until supported.
|
|
83
|
+
|
|
84
|
+
## Review and accountable approval
|
|
85
|
+
|
|
86
|
+
The Review section provides four distinct checks:
|
|
87
|
+
|
|
88
|
+
1. **Readiness:** structural omissions that prevent materialisation.
|
|
89
|
+
2. **Exact destinations:** the canonical Markdown and JSON paths that will change.
|
|
90
|
+
3. **Before and after:** reconciliation changes, when applicable.
|
|
91
|
+
4. **Accountable intent decision:** a named approval tied to the current revision.
|
|
92
|
+
|
|
93
|
+
Intent approval means only: “this is an adequate statement of the intended outcome and its current evidence, constraints and open decisions.” Build approval remains a later durable gate. Manual QA, certification, deployment and release also remain separate decisions.
|
|
94
|
+
|
|
95
|
+
## For EWAI maintainers
|
|
96
|
+
|
|
97
|
+
The tests for changing Intent Studio itself are in [Verify changes to EWAI](maintainers/verification-walkthroughs.md#intent-studio). They aren't steps you need to complete to use the workspace.
|
|
98
|
+
|
|
99
|
+
## Troubleshooting
|
|
100
|
+
|
|
101
|
+
**No intent appears for reconciliation:** it is not a consistent draft, delivery has started, or its Markdown and JSON do not agree. Resolve canonical state through the governed workflow rather than bypassing the filter.
|
|
102
|
+
|
|
103
|
+
**Premium personas are unavailable:** continue with the standard baseline and installed project or core personas. Use the normal entitlement and installation process separately if premium access is expected.
|
|
104
|
+
|
|
105
|
+
**A save is rejected:** reload after preserving unsaved text. Revision conflicts are intentional concurrency protection.
|
|
106
|
+
|
|
107
|
+
**Approval is disabled:** complete the blocking fields, provide the approver name, tick the review confirmation, and ensure the displayed revision is current.
|
|
108
|
+
|
|
109
|
+
**Canonical materialisation fails:** the draft remains recoverable. Review the collision or consistency message; do not edit delivery state to force eligibility.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Guided Phase Evidence Drafting
|
|
2
|
+
|
|
3
|
+
The dashboard's **Contributions** view lets business and technical colleagues add what they know to an active delivery. They can record evidence, questions and decisions, then hand the discussion to the next owner. Contributions remain attributed to the people who made them; adding evidence doesn't approve Build or complete a delivery phase.
|
|
4
|
+
|
|
5
|
+
## What it is for
|
|
6
|
+
|
|
7
|
+
Use Contributions during these participant-facing moments:
|
|
8
|
+
|
|
9
|
+
| Governed moment | Typical contribution |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| Reconcile | Observable current behaviour, inherited constraints, protected outcomes and unresolved history |
|
|
12
|
+
| Plan | Outcomes, scope, dependencies, trade-offs, acceptance and named decisions |
|
|
13
|
+
| Test Plan | Journeys, evidence oracles, environments, technical coverage and recovery |
|
|
14
|
+
| Delivery preparation | Readiness, operations, communications, recovery, acceptance evidence and residual decisions |
|
|
15
|
+
| Manual QA preparation | Representative journeys, devices, accessibility, observations, limitations and named acceptance route |
|
|
16
|
+
|
|
17
|
+
Build execution, Standards Sweep, external validation, security disposition, phase completion and Retro keep their specialised governed workflows.
|
|
18
|
+
|
|
19
|
+
## Open Contributions
|
|
20
|
+
|
|
21
|
+
Work on the computer running the project dashboard, or with its owner through screen sharing. Sending a colleague the loopback URL doesn't give them remote access. Team Hub publishes bounded read-only summaries; it doesn't turn Contributions into a remotely editable shared workspace.
|
|
22
|
+
|
|
23
|
+
1. Run the normal EWAI check-in and open the local dashboard URL.
|
|
24
|
+
2. If **Contributions** isn't in the sidebar, enable it in **Configuration** and save. See [dashboard configuration](operations/dashboard-configuration.md).
|
|
25
|
+
3. Open **Contributions**.
|
|
26
|
+
4. Choose an active delivery.
|
|
27
|
+
5. Check the phase, shared revision, digest and integrity state before contributing.
|
|
28
|
+
|
|
29
|
+
An unsupported, completed or inconsistent phase is read-only. Follow its Companion route or the guarded delivery workflow instead of trying to bypass it.
|
|
30
|
+
|
|
31
|
+
## Work in the right owner context
|
|
32
|
+
|
|
33
|
+
The context bridge has three views:
|
|
34
|
+
|
|
35
|
+
- **Business-facing owner** foregrounds outcomes, stakeholders, trade-offs, acceptance, communications and business decisions.
|
|
36
|
+
- **Technical owner** foregrounds repository evidence, constraints, dependencies, standards, architecture, testing, operations and recovery.
|
|
37
|
+
- **Shared review** presents both perspectives with their original attribution and keeps disagreement visible.
|
|
38
|
+
|
|
39
|
+
Enter the real participant's name. Context selection is not authentication and does not prove expertise or authority. If the same person holds two responsibilities, use separate context records so the change in responsibility remains explicit.
|
|
40
|
+
|
|
41
|
+
Changing context retains the same evidence, revision history, sources, decisions and questions. It also recomputes the active persona ensemble and announces which perspectives joined or left.
|
|
42
|
+
|
|
43
|
+
## Record evidence with provenance
|
|
44
|
+
|
|
45
|
+
Choose the current evidence topic, then classify each contribution:
|
|
46
|
+
|
|
47
|
+
| Class | Use it for |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| `repository-fact` | Observable source, configuration, tests, history or generated Source Map evidence |
|
|
50
|
+
| `participant-statement` | A statement attributed to a real named participant |
|
|
51
|
+
| `imported-source` | A bounded claim from an identified document, transcript or external artefact |
|
|
52
|
+
| `persona-hypothesis` | A question or hypothesis raised through an advisory persona lens |
|
|
53
|
+
| `named-decision` | A decision attributed to a real accountable person |
|
|
54
|
+
| `unresolved-question` | A question whose evidence or owner remains open |
|
|
55
|
+
|
|
56
|
+
Add a source wherever possible. Record open questions and limitations instead of making the draft look artificially complete. Earlier evidence is append-oriented: qualify or resolve it in a later revision rather than silently changing its contributor or provenance.
|
|
57
|
+
|
|
58
|
+
## Understand active personas
|
|
59
|
+
|
|
60
|
+
Contributions continually shows each engaged persona's name, tier, matched signals and engagement reason.
|
|
61
|
+
|
|
62
|
+
- Project and core personas plus standard host-model reasoning provide a complete baseline.
|
|
63
|
+
- Relevant installed premium, personal and project-local personas can add specialist depth.
|
|
64
|
+
- Missing premium personas are visible but never block a field, action, review or confirmation.
|
|
65
|
+
- Contributions never downloads, synchronises, imitates or returns the full private body of a premium persona.
|
|
66
|
+
|
|
67
|
+
Personas are lenses, not participants. They do not provide stakeholder evidence, identity, delegation authority, specialist assurance, validation, acceptance or approval.
|
|
68
|
+
|
|
69
|
+
## Hand responsibility to another owner
|
|
70
|
+
|
|
71
|
+
Choose **Prepare hand-off** when responsibility is genuinely moving. The preview binds:
|
|
72
|
+
|
|
73
|
+
- source and destination owners;
|
|
74
|
+
- source and destination contexts;
|
|
75
|
+
- reason for the transition;
|
|
76
|
+
- questions for the incoming owner;
|
|
77
|
+
- current revision and digest.
|
|
78
|
+
|
|
79
|
+
The incoming owner continues the same thread. A hand-off does not copy the draft or change the governed phase.
|
|
80
|
+
|
|
81
|
+
## Request host-AI review
|
|
82
|
+
|
|
83
|
+
Choose **Request host review**, then return to your EWAI conversation to confirm that you'd like the queued review picked up. The host can challenge missing evidence, provenance, contradictions and unresolved questions, then return suggestions to the discussion. Queuing or completing that review doesn't confirm your evidence or progress delivery.
|
|
84
|
+
|
|
85
|
+
Only a bounded summary and safe metadata enter the hand-off queue, not your contribution body, credentials or private persona definitions. The [Contributions API reference](reference/contributions-api.md) describes the payload and its `authority: none` boundary for integration authors.
|
|
86
|
+
|
|
87
|
+
## Confirm contribution evidence
|
|
88
|
+
|
|
89
|
+
Use shared review before confirmation. Check named owners, original attribution, sources, hand-off history, conflicts, open questions, limitations, active personas, revision and digest.
|
|
90
|
+
|
|
91
|
+
Choose **Confirm evidence**, enter the real confirmer's name and accept the exact consequence. EWAI writes collision-safe paired files under:
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
SPECS/6.Build/<slug>/phase-contributions/<profile>/
|
|
95
|
+
├── contribution-<timestamp>-r<revision>-<digest>.md
|
|
96
|
+
└── contribution-<timestamp>-r<revision>-<digest>.json
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Existing bundles are never overwritten. The JSON records the delivery and profile digests, evidence classes, owners, hand-offs, conflicts, limitations, active safe persona metadata and assurance boundary. The Markdown is a readable equivalent.
|
|
100
|
+
|
|
101
|
+
The bundle is supporting evidence only. It doesn't automatically become the required Plan, Test Plan, Delivery or Manual QA document. Ask EWAI to reconcile the confirmed contributions into the relevant phase work, then review the result. The phase still needs its required documents and passing gate.
|
|
102
|
+
|
|
103
|
+
## Discard and recover
|
|
104
|
+
|
|
105
|
+
- **Discard draft** removes only the disposable file under `.ewai-pipeline/runtime/phase-contributions/`. Confirmed bundles remain.
|
|
106
|
+
- A **stale revision** means another save or hand-off won. Preserve your unsaved text, reload and add it to the current revision.
|
|
107
|
+
- A **changed phase, source or profile** pauses mutation. Review the governed change before deciding whether the old contribution still applies.
|
|
108
|
+
- An **integrity blocker** leaves Contributions read-only. Reconcile the Markdown intent, adjacent JSON, delivery state and SQLite projection through the normal EWAI workflow.
|
|
109
|
+
- A **missing premium library** needs no recovery. Continue with the complete standard and project/core baseline.
|
|
110
|
+
|
|
111
|
+
## Loopback API for implementers
|
|
112
|
+
|
|
113
|
+
The [Contributions API reference](reference/contributions-api.md) preserves the six routes, revision checks and server-owned context rules. You don't need these HTTP details to contribute through the dashboard or host.
|
|
114
|
+
|
|
115
|
+
## Assurance boundary
|
|
116
|
+
|
|
117
|
+
Contribution evidence can still be incomplete or wrong. Personas and model output can miss issues. A named human must review attribution, sources, limitations, disagreements and applicability before incorporating it into governed phase material.
|
|
118
|
+
|
|
119
|
+
If the contribution concerns security, use the separate [security validation workflow](security-validation-guide.md). Confirming a contribution doesn't satisfy that review or its release conditions.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Human approval and assurance guide
|
|
2
|
+
|
|
3
|
+
Use this guide when you are asked to approve Discovery, Build, curation, Manual QA, or another consequential EWAI action.
|
|
4
|
+
|
|
5
|
+
## What approval means
|
|
6
|
+
|
|
7
|
+
Approval means a named person has reviewed the stated evidence, understands the consequences and remaining uncertainty, has authority for the decision, and accepts the scope recorded at that moment.
|
|
8
|
+
|
|
9
|
+
It does not mean:
|
|
10
|
+
|
|
11
|
+
- every possible defect has been eliminated;
|
|
12
|
+
- an AI persona agrees with the decision;
|
|
13
|
+
- a green test suite proves the product is useful;
|
|
14
|
+
- a Blueprint publisher owns the project's consequences;
|
|
15
|
+
- later upstream changes are automatically approved;
|
|
16
|
+
- the same decision covers a materially expanded scope.
|
|
17
|
+
|
|
18
|
+
## The approval layers
|
|
19
|
+
|
|
20
|
+
| Decision | Typical approver | Minimum evidence |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| Discovery or Blueprint application | Product or project owner | Proposed project files, modules, provenance, conflicts, and exact consequences |
|
|
23
|
+
| Archaeology curation | Project owner or knowledge steward | Source-linked findings, disagreements, rejected inferences, and destination paths |
|
|
24
|
+
| Premium library sync | Entitled user or administrator | Website licence entitlement, verified release/update status, and explicit consent |
|
|
25
|
+
| Build | Product owner or delegated delivery authority | Ready intent, plan, tests, standards coverage, scope, risks, and stop conditions |
|
|
26
|
+
| Destructive operation | Owner of the affected data or system | Exact targets, recovery route, blast radius, and necessity |
|
|
27
|
+
| Manual QA | Accountable accepter or authorised tester | Reproducible walkthrough, results, limitations, and residual risks |
|
|
28
|
+
|
|
29
|
+
Roles vary by organisation. Record the actual person and their authority rather than relying on a job-title assumption.
|
|
30
|
+
|
|
31
|
+
## Evidence before confidence
|
|
32
|
+
|
|
33
|
+
An assurance pack should answer:
|
|
34
|
+
|
|
35
|
+
1. **Outcome:** What human or operational result was intended?
|
|
36
|
+
2. **Scope:** What was included and explicitly excluded?
|
|
37
|
+
3. **Provenance:** Where did requirements, standards, and reusable content come from?
|
|
38
|
+
4. **Implementation:** What changed and where?
|
|
39
|
+
5. **Validation:** Which tests, standards checks, and independent reviews ran?
|
|
40
|
+
6. **Exceptions:** What failed, was unavailable, or remains uncertain?
|
|
41
|
+
7. **Operation:** How will the change be observed, supported, and recovered?
|
|
42
|
+
8. **Acceptance:** What did a person actually inspect or experience?
|
|
43
|
+
|
|
44
|
+
Prefer links to durable project evidence over copied summaries that can drift.
|
|
45
|
+
|
|
46
|
+
## Preserve independence honestly
|
|
47
|
+
|
|
48
|
+
An agent cannot independently review its own work merely by starting a second prompt. EWAI removes the current orchestrator from eligible external validators and respects the configured provider set and cycle limit.
|
|
49
|
+
|
|
50
|
+
When no independent provider remains:
|
|
51
|
+
|
|
52
|
+
- record the checkpoint as not supported;
|
|
53
|
+
- strengthen deterministic checks and human review proportionately;
|
|
54
|
+
- do not relabel self-review as external assurance;
|
|
55
|
+
- decide explicitly whether the remaining evidence is adequate for the risk.
|
|
56
|
+
|
|
57
|
+
## Approve Build precisely
|
|
58
|
+
|
|
59
|
+
The durable command is:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
ewai delivery approve-build <intent-slug> \
|
|
63
|
+
--project . \
|
|
64
|
+
--yes \
|
|
65
|
+
--approved-by "Approver name" \
|
|
66
|
+
--scope "Exact approved outcome and boundaries"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Before approving, verify that:
|
|
70
|
+
|
|
71
|
+
- the intent is ready or approved;
|
|
72
|
+
- Reconcile addressed existing behaviour where relevant;
|
|
73
|
+
- vertical slices and dependencies are understandable;
|
|
74
|
+
- the first tests and acceptance evidence are defined;
|
|
75
|
+
- standards coverage passes;
|
|
76
|
+
- external-review availability is represented accurately;
|
|
77
|
+
- the scope describes what may be changed.
|
|
78
|
+
|
|
79
|
+
## Approve Manual QA separately
|
|
80
|
+
|
|
81
|
+
Automated Delivery completion pauses at Manual QA. Approval requires a project-owned evidence file:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
ewai delivery approve-manual-qa <intent-slug> \
|
|
85
|
+
--project . \
|
|
86
|
+
--yes \
|
|
87
|
+
--approved-by "Approver name" \
|
|
88
|
+
--evidence SPECS/6.Build/<intent-slug>/qa-evidence.md \
|
|
89
|
+
--notes "Observed outcome and accepted limitations"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The evidence should say what environment was used, what steps were performed, what happened, what was not tested, and whether any defects or follow-ups remain.
|
|
93
|
+
|
|
94
|
+
Do not approve Manual QA for someone else unless your governance model explicitly makes you accountable for their evidence.
|
|
95
|
+
|
|
96
|
+
## Assess evidence proportionately
|
|
97
|
+
|
|
98
|
+
Recommended practice is to scale assurance with:
|
|
99
|
+
|
|
100
|
+
- user and business impact;
|
|
101
|
+
- data sensitivity and regulatory exposure;
|
|
102
|
+
- external accessibility;
|
|
103
|
+
- reversibility;
|
|
104
|
+
- operational blast radius;
|
|
105
|
+
- novelty and uncertainty;
|
|
106
|
+
- dependency and supply-chain risk;
|
|
107
|
+
- quality of direct user evidence.
|
|
108
|
+
|
|
109
|
+
A small internal reversible tool may need a short walkthrough. A public system handling sensitive data needs deeper security, privacy, resilience, accessibility, and operational evidence.
|
|
110
|
+
|
|
111
|
+
## Reject or return the decision when
|
|
112
|
+
|
|
113
|
+
- the approver cannot explain the outcome or consequences;
|
|
114
|
+
- evidence is missing, stale, contradictory, or unauthorised;
|
|
115
|
+
- the scope is broader than the reviewed plan;
|
|
116
|
+
- tests are green but meaningful user behaviour was not exercised;
|
|
117
|
+
- a persona is presented as stakeholder consent;
|
|
118
|
+
- an unavailable external review is presented as passed;
|
|
119
|
+
- rollback, migration, or operational ownership is unclear;
|
|
120
|
+
- pressure to approve is being used to conceal uncertainty.
|
|
121
|
+
|
|
122
|
+
## Approval record checklist
|
|
123
|
+
|
|
124
|
+
- [ ] Decision and exact scope are stated.
|
|
125
|
+
- [ ] Approver identity and authority are clear.
|
|
126
|
+
- [ ] Evidence is durable and linked.
|
|
127
|
+
- [ ] Automated, independent, and human checks are distinguished.
|
|
128
|
+
- [ ] Unavailable checks and residual risks are visible.
|
|
129
|
+
- [ ] Time-sensitive versions, digests, and environments are recorded.
|
|
130
|
+
- [ ] A material change will require a new decision.
|
|
131
|
+
|
|
132
|
+
## Related guides
|
|
133
|
+
|
|
134
|
+
- [Product Owner guide](product-owner-guide.md)
|
|
135
|
+
- [Developer delivery guide](developer-delivery-guide.md)
|
|
136
|
+
- [Manual QA and acceptance](quality/manual-qa-and-acceptance.md)
|
|
137
|
+
- [Governance team guide](governance/governance-team-guide.md)
|
|
138
|
+
|
|
139
|
+
## Current contract sources
|
|
140
|
+
|
|
141
|
+
- `SPECS/pipeline.yaml`
|
|
142
|
+
- `src/discovery.mjs`
|
|
143
|
+
- `src/archaeology.mjs`
|
|
144
|
+
- `src/checkin.mjs`
|
|
145
|
+
- `src/delivery.mjs`
|
|
146
|
+
- `src/validation-config.mjs`
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Evidence-to-Knowledge Proposals implementer guide
|
|
2
|
+
|
|
3
|
+
Use this guide when extending EWAI or building an integration for knowledge proposals. The CLI, MCP tools and dashboard all call the same domain module. That module validates destinations, review decisions and file changes; the interfaces must not implement different rules.
|
|
4
|
+
|
|
5
|
+
Connectors are not implemented by this capability; organisation-owned consumers use the generic post-persistence lifecycle-hook boundary.
|
|
6
|
+
|
|
7
|
+
## Domain architecture
|
|
8
|
+
|
|
9
|
+
`src/knowledge-proposals.mjs` owns the domain rules, grouped here by responsibility:
|
|
10
|
+
|
|
11
|
+
- sources and preparation: promoted-meeting-evidence and retrospective adapters, bounded reads, digests, anchors, contextual installed-persona selection and the host-model contract;
|
|
12
|
+
- proposals and decisions: closed taxonomy, evidence-only bundles and complete named review;
|
|
13
|
+
- publication and recovery: separately confirmed materialisation, additive/current/conflict classification, transaction journals and idempotency;
|
|
14
|
+
- integration: public-safe state and `ewai.knowledge-proposals.materialised`.
|
|
15
|
+
|
|
16
|
+
The configured project root comes from EWAI. MCP and browser callers cannot provide another root.
|
|
17
|
+
|
|
18
|
+
## Storage
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
3.Evidence/knowledge-proposals/<bundle-id>/
|
|
22
|
+
├── bundle.json
|
|
23
|
+
├── review.json
|
|
24
|
+
├── materialisation.json
|
|
25
|
+
└── proposals/SPECS/<closed destination>.md
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The `proposals/` tree is evidence, not canonical destination knowledge. A private journal under `.ewai-pipeline/knowledge-proposals/transactions/` records transaction-owned destinations and a `createdDigests` map of the SHA-256 of each recorded write. It stores no document bodies.
|
|
29
|
+
|
|
30
|
+
Bundle, review and materialisation records have independent digests. Materialisation re-resolves the source and verifies all authority layers before any destination write.
|
|
31
|
+
|
|
32
|
+
## Domain operations
|
|
33
|
+
|
|
34
|
+
| Function | Mutates | Boundary |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `listKnowledgeSources` | Nothing | Allowlisted canonical source families, no content/path |
|
|
37
|
+
| `prepareKnowledgeProposals` | Nothing | Bounded model context, strict schema and active personas |
|
|
38
|
+
| `recordKnowledgeProposalBundle` | Proposal evidence only | Closed taxonomy, exact destination, anchors and provenance |
|
|
39
|
+
| `recordKnowledgeProposalReview` | Review evidence only | Named complete dispositions and amendment rationale |
|
|
40
|
+
| `materialiseKnowledgeProposals` | Absent accepted destinations and ledger | Separate exact confirmation, named approver and digest revalidation |
|
|
41
|
+
| `recoverKnowledgeMaterialisation` | Unchanged transaction-created files or stale journal | Exact confirmation, safe paths and matching creation digests; preserve unknown or changed files |
|
|
42
|
+
| `readKnowledgeProposalWorkspace` | Nothing | Safe source, proposal, review, outcome and persona projection |
|
|
43
|
+
|
|
44
|
+
Normal materialisation doesn't overwrite, merge or delete an existing destination. An identical file is current; a differing file is a conflict. Interrupted recovery is a separate operation that may remove unchanged transaction-created files under the conditions below.
|
|
45
|
+
|
|
46
|
+
## CLI, MCP and HTTP
|
|
47
|
+
|
|
48
|
+
CLI:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
ewai knowledge sources --project . --json
|
|
52
|
+
ewai knowledge prepare SOURCE_REF [--focus TEXT] --project . --json
|
|
53
|
+
ewai knowledge record SOURCE_REF --input FILE --project . --json
|
|
54
|
+
ewai knowledge review BUNDLE_ID --input FILE --reviewed-by NAME --project . --json
|
|
55
|
+
ewai knowledge materialise BUNDLE_ID --yes --approved-by NAME --project . --json
|
|
56
|
+
ewai knowledge recover BUNDLE_ID --yes --project . --json
|
|
57
|
+
ewai knowledge status [BUNDLE_ID] --project . --json
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
MCP exposes matching `ewai_knowledge_proposal_*` tools. Sources, status and prepare are read-only. Record and review are non-destructive mutations. Materialisation is additive and non-destructive. Recovery is marked destructive because it can remove transaction-owned incomplete files. No tool accepts `projectRoot`.
|
|
61
|
+
|
|
62
|
+
Loopback HTTP provides `GET /api/knowledge-proposals?bundle=<id>`, plus `POST` routes for prepare, record, review, materialise and recover. Browser-safe preparation strips `modelContext` and reports only that host context is available. AI-host CLI and MCP preparation receive the bounded content. Unknown query/body fields are rejected and errors include the mandatory disclaimer.
|
|
63
|
+
|
|
64
|
+
## Mind Palace behavior
|
|
65
|
+
|
|
66
|
+
Knowledge proposals is a secondary Mind Palace mode, not primary navigation. The source rail shows eligible evidence and bundles. The centre shows review receipts, provenance/destination cards and additive/current/conflict state. The context rail always shows actively engaged personas with name, tier and engagement reason.
|
|
67
|
+
|
|
68
|
+
The browser can prepare a safe host handoff, record a complete named review, separately materialise and recover. It cannot register arbitrary sources, preview source bodies, choose paths, sync premium content, create a downstream intent, approve Build, accept risk or release.
|
|
69
|
+
|
|
70
|
+
At 960px the ledger and context rail stack. At 600px review fields, receipts and cards use one column with no fixed-width child requiring horizontal scroll.
|
|
71
|
+
|
|
72
|
+
## Persona and model contract
|
|
73
|
+
|
|
74
|
+
Standard host-model reasoning and installed project/core personas are the complete baseline. Premium and personal personas are optional installed enrichment. Selection is contextual and replacement-based. Interfaces display the active ensemble but never expose managed persona bodies.
|
|
75
|
+
|
|
76
|
+
The host distinguishes source observation, interpretation and proposed knowledge. Only the final validated `ewai.knowledge-proposal-bundle/v1` enters evidence storage. Raw model output, prompts, chain-of-thought and discarded drafts are never stored.
|
|
77
|
+
|
|
78
|
+
## Lifecycle boundary
|
|
79
|
+
|
|
80
|
+
After canonical destination writes and the immutable ledger exist, EWAI publishes `ewai.knowledge-proposals.materialised` with bundle/materialisation identifiers and digests, added/current/conflict counts and timestamp. The event references the project-relative ledger and contains no source body, proposal body, prompt, credential or private path. Hook failure cannot veto, delete or roll back canonical truth. Consumers implement connectors through the generic hook contract.
|
|
81
|
+
|
|
82
|
+
## Recovery and idempotency
|
|
83
|
+
|
|
84
|
+
Before ledger persistence, an interrupted transaction retains its created paths and their original content digests. Recovery validates the complete destination list before deleting anything and inspects every path component from the workspace root, including ancestors of a nested SPECS directory. Only single regular files with unchanged bytes are removed.
|
|
85
|
+
|
|
86
|
+
Missing files need no action. Changed, linked, unreadable or oversized files, and existing files from legacy journals without digests, are preserved. Recovery keeps the journal and throws `KNOWLEDGE_RECOVERY_REQUIRES_REVIEW`; its message identifies affected relative paths and tells the user to review and back up the files. The error also includes `preserved` and `removed` arrays for local callers. Existing dashboard and CLI error handling presents this as a paused recovery, not a successful completion.
|
|
87
|
+
|
|
88
|
+
After ledger persistence, a remaining journal is stale runtime state and is removed without touching canonical destinations. Repeating a materialised bundle returns its existing result. These are local filesystem safeguards, not an atomic guarantee against another process changing paths concurrently; don't run recovery while another writer is modifying those destinations.
|
|
89
|
+
|
|
90
|
+
These safeguards protect the publication boundary; they don't establish the correctness of generated knowledge. Preserve named review and separate materialisation approval in any integration.
|
|
91
|
+
|
|
92
|
+
## Contract sources
|
|
93
|
+
|
|
94
|
+
- [src/knowledge-proposals.mjs](../src/knowledge-proposals.mjs)
|
|
95
|
+
- [config/knowledge-proposals-proposal.schema.json](../config/knowledge-proposals-proposal.schema.json)
|
|
96
|
+
- [src/runtime/lifecycle-hooks.mjs](../src/runtime/lifecycle-hooks.mjs)
|
|
97
|
+
- [src/cli.mjs](../src/cli.mjs)
|
|
98
|
+
- [src/runtime/mcp-server.mjs](../src/runtime/mcp-server.mjs)
|
|
99
|
+
- [src/runtime/dashboard-server.mjs](../src/runtime/dashboard-server.mjs)
|
|
100
|
+
- `public/index.html`
|
|
101
|
+
- `public/app.js`
|
|
102
|
+
- `public/styles.css`
|
|
103
|
+
- `tests/knowledge-proposals.test.mjs`
|
|
104
|
+
- `tests/knowledge-proposals-cli.test.mjs`
|
|
105
|
+
- `tests/lifecycle-hook-emissions.test.mjs`
|
|
106
|
+
- `tests/runtime.test.mjs`
|