Skip to content

About

Versioned repeatable AlayaBox end-to-end scenario contracts

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

AlayaBox E2E Scenario Repository

This repository stores scenario contracts independently from the CI platform. A scenario is a fixed environment, input, observation boundary, and expected behavior—not a unit-test assertion against an implementation detail.

Hierarchy

Cases are grouped by product ownership and then by capability. Every scenario owns the final directory and contains README.md, case.json, and fixture/:

cases/
  foundation/
    product-assembly/
    canonical-agent-loop/
    knowledge-management/
    task-automation/
  partners/
    research-assistant/
      installation-identity/
      knowledge/
      learning-review/
      academic-writing/
      cross-module-collaboration/
      automation-integration/
      recovery-resilience/
  release/
    packaging-upgrade/

taxonomy.json declares the allowed leaves. requirements/design-baseline.json locks the 20 case IDs from the 2026-09-04 AlayaBox × Research Assistant E2E design so catalog coverage cannot silently shrink. Cross-feature scenarios live under the specialized Partner and cross-module-collaboration, not in a flat global bucket.

Commands

npm ci
npm test
npm run validate
npm run run -- --category foundation --repeat 3 --output results/foundation
npm run run -- --category partners/research-assistant/academic-writing --repeat 3 --output results/writing
npm run run -- --suite research-writing --repeat 3 --output results/nightly
npm run run -- --repeat 3 --output results/full-catalog

--category includes descendants, so partners/research-assistant selects every Research Assistant subcategory. It can be combined with --suite and --case.

The runner never executes shell text from case.json. It writes one isolated directory per case/repetition containing manifest.json, receipt.jsonl, result.json, evidence/, and cleanup.json, then emits repeated-results.json, a queryable case-index.json, and a category-grouped report.md. Every result is retained even when the case fails.

durationMs is recorded for every repetition and for the complete catalog run. The current contract adapter is deterministic and is useful for measuring orchestration overhead; real Electron/service adapters will contribute the product execution time. Jenkins archives the same directory, so a historical case run can be located by case-index.json → caseId → runId → resultPath.

Adapter truthfulness

The current scenario corpus uses the contract adapter. It proves that scenario intent, fixtures, provenance, receipts, hierarchy, evidence names, and repeat policy are stable without pretending to be a full Electron run. Existing product Electron tests remain the live execution layer; future electron and real-service adapters must retain the same IDs and classifications.

Provenance

fixtures/papers/manifest.json records only controlled fixture metadata and optional local Academia references. Original PDFs remain outside this repository. To create a local provenance entry, run node tools/index-academia.mjs --root <AcademiaRoot> --output fixtures/papers/academia-local.json; absolute paths are redacted to relative file names.

Status semantics

  • PASS: every repetition passed.
  • FLAKY: at least one repetition passed and at least one failed.
  • FAIL: every repetition failed.
  • BLOCKED: a declared prerequisite or adapter was unavailable.

Output evaluation contract

Every run records two independent gates: assertionStatus checks the scenario's declared expected state, while outputStatus checks the adapter envelope. The catalog-wide policy is deliberately presence-only: output must be non-empty and must not carry an error signal (error, errors, errorCode, errorMessage, failure status, ok: false, or success: false). qualityEvaluated is always false; no semantic quality, style, ranking, or similarity score is calculated. A case is PASS only when both gates pass. The same fields are persisted in result.json, receipt.jsonl, observations.json, repeated-results.json, and report.md.

The CI platform records non-PASS aggregates in its durable finding ledger; this repository does not create GitHub issues automatically.

E2E value audit

requirements/value-audit.json is mandatory. Each case declares why it crosses a stateful, process, authorization, persistence, or multi-module boundary, how many chained steps it contains, and what unit tests already cover. The validator rejects an un-audited case or a chain shorter than the repository minimum, keeping one-action checks in the unit suite instead of consuming E2E capacity.

About

Versioned repeatable AlayaBox end-to-end scenario contracts

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages