evorthon-data 1.0.0__tar.gz
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.
- evorthon_data-1.0.0/.claude/settings.json +1 -0
- evorthon_data-1.0.0/.gitattributes +1 -0
- evorthon_data-1.0.0/.github/agents/evorthon-data-builder.agent.md +3 -0
- evorthon_data-1.0.0/.github/agents/evorthon-data-reviewer.agent.md +3 -0
- evorthon_data-1.0.0/.github/copilot-instructions.md +3 -0
- evorthon_data-1.0.0/.github/prompts/autobuild-approved-item.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-advise-on-fault-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-advise-on-fault.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-build-data-platform-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-build-data-platform.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-design-data-platform-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-design-data-platform.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-discover-greenfield-capabilities-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-discover-greenfield-capabilities.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-execute-plan.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-frame-platform-outcome-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-frame-platform-outcome.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-intake-use-case-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-intake-use-case.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-plan-first.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-setup-data-platform-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-setup-data-platform.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-trace-current-estate-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-trace-current-estate.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-verify-data-platform-review.prompt.md +1 -0
- evorthon_data-1.0.0/.github/prompts/koine-verify-data-platform.prompt.md +1 -0
- evorthon_data-1.0.0/.github/skills/advise-on-fault/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/skills/build-data-platform/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/skills/design-data-platform/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/skills/discover-greenfield-capabilities/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/skills/frame-platform-outcome/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/skills/intake-use-case/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/skills/setup-data-platform/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/skills/trace-current-estate/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/skills/verify-data-platform/SKILL.md +1 -0
- evorthon_data-1.0.0/.github/workflows/ci.yml +38 -0
- evorthon_data-1.0.0/.github/workflows/release.yml +89 -0
- evorthon_data-1.0.0/.gitignore +7 -0
- evorthon_data-1.0.0/ADOPTION-GUIDE.md +26 -0
- evorthon_data-1.0.0/AGENTS.md +5 -0
- evorthon_data-1.0.0/LICENSE +15 -0
- evorthon_data-1.0.0/PKG-INFO +186 -0
- evorthon_data-1.0.0/PUBLIC-INVENTORY.json +1329 -0
- evorthon_data-1.0.0/PUBLIC-LEAKAGE-POLICY.json +10 -0
- evorthon_data-1.0.0/README.md +166 -0
- evorthon_data-1.0.0/SKILL-CATALOGUE.md +13 -0
- evorthon_data-1.0.0/adapters/autobuild/README.md +10 -0
- evorthon_data-1.0.0/adapters/autobuild/contract.md +61 -0
- evorthon_data-1.0.0/adapters/ergasterion/README.md +10 -0
- evorthon_data-1.0.0/adapters/ergasterion/contract.md +223 -0
- evorthon_data-1.0.0/adapters/pinax/README.md +16 -0
- evorthon_data-1.0.0/adapters/pinax/contract.md +107 -0
- evorthon_data-1.0.0/context/INDEX.md +6 -0
- evorthon_data-1.0.0/context/instance-context.md +6 -0
- evorthon_data-1.0.0/context/platform-principles.md +3 -0
- evorthon_data-1.0.0/context/tool-boundaries.md +3 -0
- evorthon_data-1.0.0/context/verification-principles.md +3 -0
- evorthon_data-1.0.0/docs/INDEX.md +9 -0
- evorthon_data-1.0.0/docs/architecture/INDEX.md +5 -0
- evorthon_data-1.0.0/docs/architecture/solution-architecture.d2 +119 -0
- evorthon_data-1.0.0/docs/architecture/solution-architecture.md +123 -0
- evorthon_data-1.0.0/docs/architecture/solution-architecture.svg +48 -0
- evorthon_data-1.0.0/docs/dependency-contracts.md +45 -0
- evorthon_data-1.0.0/docs/product/INDEX.md +5 -0
- evorthon_data-1.0.0/docs/product/capability-status.md +22 -0
- evorthon_data-1.0.0/docs/product/incident-containment.md +186 -0
- evorthon_data-1.0.0/docs/product/readme-claim-registry.toml +527 -0
- evorthon_data-1.0.0/docs/verification/README.md +13 -0
- evorthon_data-1.0.0/docs/verification/environment-adapters.md +222 -0
- evorthon_data-1.0.0/docs/verification/schemas/verification-domain.schema.json +2983 -0
- evorthon_data-1.0.0/docs/verification/schemas/verification-serialization.json +801 -0
- evorthon_data-1.0.0/engagements/CONVENTION.md +3 -0
- evorthon_data-1.0.0/engagements/INDEX.md +3 -0
- evorthon_data-1.0.0/engagements/README.md +3 -0
- evorthon_data-1.0.0/examples/INDEX.md +5 -0
- evorthon_data-1.0.0/examples/greenfield/renewable-asset-observability/capability-discovery.md +19 -0
- evorthon_data-1.0.0/examples/greenfield/renewable-asset-observability/implementation-plan.md +34 -0
- evorthon_data-1.0.0/examples/greenfield/renewable-asset-observability/outcome-brief.md +33 -0
- evorthon_data-1.0.0/examples/greenfield/renewable-asset-observability/platform-design.md +32 -0
- evorthon_data-1.0.0/examples/greenfield/renewable-asset-observability/verification-record.md +39 -0
- evorthon_data-1.0.0/examples/modernisation/customer-service-reporting/current-estate-map.md +34 -0
- evorthon_data-1.0.0/examples/modernisation/customer-service-reporting/implementation-plan.md +34 -0
- evorthon_data-1.0.0/examples/modernisation/customer-service-reporting/outcome-brief.md +33 -0
- evorthon_data-1.0.0/examples/modernisation/customer-service-reporting/platform-design.md +33 -0
- evorthon_data-1.0.0/examples/modernisation/customer-service-reporting/verification-record.md +39 -0
- evorthon_data-1.0.0/koine/INDEX.md +10 -0
- evorthon_data-1.0.0/koine/method/INDEX.md +9 -0
- evorthon_data-1.0.0/koine/method/artefact-first-intake.md +32 -0
- evorthon_data-1.0.0/koine/method/build-pipeline.md +3 -0
- evorthon_data-1.0.0/koine/method/engagement-lifecycle.md +5 -0
- evorthon_data-1.0.0/koine/method/evidence-and-knowledge.md +3 -0
- evorthon_data-1.0.0/koine/method/feedback-loop.md +3 -0
- evorthon_data-1.0.0/koine/method/intent-readiness.md +16 -0
- evorthon_data-1.0.0/koine/method/overview.md +3 -0
- evorthon_data-1.0.0/koine/prompts/generators/advise-on-fault.md +37 -0
- evorthon_data-1.0.0/koine/prompts/generators/build-data-platform.md +3 -0
- evorthon_data-1.0.0/koine/prompts/generators/design-data-platform.md +3 -0
- evorthon_data-1.0.0/koine/prompts/generators/discover-greenfield-capabilities.md +3 -0
- evorthon_data-1.0.0/koine/prompts/generators/frame-platform-outcome.md +3 -0
- evorthon_data-1.0.0/koine/prompts/generators/intake-use-case.md +49 -0
- evorthon_data-1.0.0/koine/prompts/generators/setup-data-platform.md +3 -0
- evorthon_data-1.0.0/koine/prompts/generators/trace-current-estate.md +3 -0
- evorthon_data-1.0.0/koine/prompts/generators/verify-data-platform.md +3 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/advise-on-fault-reviewer.md +13 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/build-data-platform-reviewer.md +3 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/design-data-platform-reviewer.md +3 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/discover-greenfield-capabilities-reviewer.md +3 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/frame-platform-outcome-reviewer.md +3 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/intake-use-case-reviewer.md +19 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/setup-data-platform-reviewer.md +3 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/trace-current-estate-reviewer.md +3 -0
- evorthon_data-1.0.0/koine/prompts/reviewers/verify-data-platform-reviewer.md +3 -0
- evorthon_data-1.0.0/koine/skills/advising-on-a-fault/SKILL.md +5 -0
- evorthon_data-1.0.0/koine/skills/building-data-platform/SKILL.md +3 -0
- evorthon_data-1.0.0/koine/skills/designing-data-platform/SKILL.md +3 -0
- evorthon_data-1.0.0/koine/skills/discovering-greenfield-capabilities/SKILL.md +7 -0
- evorthon_data-1.0.0/koine/skills/framing-platform-outcome/SKILL.md +3 -0
- evorthon_data-1.0.0/koine/skills/intaking-use-case/SKILL.md +5 -0
- evorthon_data-1.0.0/koine/skills/setting-up-data-platform/SKILL.md +3 -0
- evorthon_data-1.0.0/koine/skills/tracing-current-estate/SKILL.md +4 -0
- evorthon_data-1.0.0/koine/skills/verifying-data-platform/SKILL.md +3 -0
- evorthon_data-1.0.0/koine/templates/capability-discovery.md +14 -0
- evorthon_data-1.0.0/koine/templates/current-estate-map.md +18 -0
- evorthon_data-1.0.0/koine/templates/implementation-plan.md +19 -0
- evorthon_data-1.0.0/koine/templates/instance-context.md +9 -0
- evorthon_data-1.0.0/koine/templates/outcome-brief.md +18 -0
- evorthon_data-1.0.0/koine/templates/platform-design.md +18 -0
- evorthon_data-1.0.0/koine/templates/use-case-intake.md +255 -0
- evorthon_data-1.0.0/koine/templates/verification-record.md +12 -0
- evorthon_data-1.0.0/pyproject.toml +47 -0
- evorthon_data-1.0.0/scripts/check_public_candidate.py +117 -0
- evorthon_data-1.0.0/scripts/check_readme_claim_registry.py +204 -0
- evorthon_data-1.0.0/scripts/generate_verification_schemas.py +32 -0
- evorthon_data-1.0.0/scripts/render_architecture.py +186 -0
- evorthon_data-1.0.0/scripts/run_tests.py +439 -0
- evorthon_data-1.0.0/src/evorthon_data/__init__.py +5 -0
- evorthon_data-1.0.0/src/evorthon_data/boundary_patterns.py +353 -0
- evorthon_data-1.0.0/src/evorthon_data/cli.py +551 -0
- evorthon_data-1.0.0/src/evorthon_data/composition.py +3103 -0
- evorthon_data-1.0.0/src/evorthon_data/delivery/__init__.py +100 -0
- evorthon_data-1.0.0/src/evorthon_data/delivery/autobuild.py +365 -0
- evorthon_data-1.0.0/src/evorthon_data/delivery/declaration_draft.py +933 -0
- evorthon_data-1.0.0/src/evorthon_data/delivery/ergasterion.py +886 -0
- evorthon_data-1.0.0/src/evorthon_data/delivery/pinax.py +1168 -0
- evorthon_data-1.0.0/src/evorthon_data/dependencies.py +16 -0
- evorthon_data-1.0.0/src/evorthon_data/engagement/__init__.py +128 -0
- evorthon_data-1.0.0/src/evorthon_data/engagement/aggregate.py +882 -0
- evorthon_data-1.0.0/src/evorthon_data/engagement/stages.py +11 -0
- evorthon_data-1.0.0/src/evorthon_data/engagement/use_case.py +1696 -0
- evorthon_data-1.0.0/src/evorthon_data/engagement/versions.py +313 -0
- evorthon_data-1.0.0/src/evorthon_data/koine_projection.py +183 -0
- evorthon_data-1.0.0/src/evorthon_data/koine_session.py +2688 -0
- evorthon_data-1.0.0/src/evorthon_data/lifecycle.py +749 -0
- evorthon_data-1.0.0/src/evorthon_data/presentation/__init__.py +34 -0
- evorthon_data-1.0.0/src/evorthon_data/presentation/use_case.py +138 -0
- evorthon_data-1.0.0/src/evorthon_data/public_boundary.py +681 -0
- evorthon_data-1.0.0/src/evorthon_data/pytest_reporter.py +68 -0
- evorthon_data-1.0.0/src/evorthon_data/readiness/__init__.py +58 -0
- evorthon_data-1.0.0/src/evorthon_data/readiness/projection.py +793 -0
- evorthon_data-1.0.0/src/evorthon_data/runtime_adapters.py +40 -0
- evorthon_data-1.0.0/src/evorthon_data/security/__init__.py +31 -0
- evorthon_data-1.0.0/src/evorthon_data/security/model_egress.py +328 -0
- evorthon_data-1.0.0/src/evorthon_data/stages.py +11 -0
- evorthon_data-1.0.0/src/evorthon_data/synthetic/__init__.py +58 -0
- evorthon_data-1.0.0/src/evorthon_data/synthetic/generator.py +924 -0
- evorthon_data-1.0.0/src/evorthon_data/synthetic/request.py +179 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/__init__.py +8 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/adapters/__init__.py +87 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/adapters/conformance.py +784 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/adapters/declaration.py +126 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/adapters/fixtures.py +374 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/adapters/material.py +95 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/adapters/memory.py +123 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/core/__init__.py +56 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/core/canonical.py +716 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/core/fault.py +726 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/core/localisation.py +605 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/core/reconciliation.py +1617 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/domain/__init__.py +150 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/domain/contracts.py +919 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/enforcement/__init__.py +85 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/enforcement/privacy.py +448 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/enforcement/schema.py +188 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/enforcement/serialization.py +206 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/enforcement/validation.py +1566 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/ports/__init__.py +38 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/ports/contracts.py +187 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/presentation/__init__.py +144 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/presentation/remediation.py +354 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/presentation/report.py +492 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/workflows/__init__.py +214 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/workflows/adviser.py +560 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/workflows/delivery_contract.py +1005 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/workflows/diagnosis.py +134 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/workflows/intake.py +567 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/workflows/reconciliation.py +221 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/workflows/remediation.py +717 -0
- evorthon_data-1.0.0/src/evorthon_data/verification/workflows/replay.py +321 -0
- evorthon_data-1.0.0/tests/architecture/test_dependency_direction.py +312 -0
- evorthon_data-1.0.0/tests/architecture/test_runtime_adapters_are_thin.py +9 -0
- evorthon_data-1.0.0/tests/conftest.py +1 -0
- evorthon_data-1.0.0/tests/fixtures/adapters/candidate.json +5 -0
- evorthon_data-1.0.0/tests/fixtures/adapters/declared-outputs/conformance-case/v1.json +12 -0
- evorthon_data-1.0.0/tests/fixtures/adapters/evidence/conformance-checkpoint-note/v1.content +1 -0
- evorthon_data-1.0.0/tests/fixtures/adapters/evidence/conformance-checkpoint-note/v1.record.json +6 -0
- evorthon_data-1.0.0/tests/fixtures/adapters/evidence/conformance-lineage-note/v1.content +1 -0
- evorthon_data-1.0.0/tests/fixtures/adapters/evidence/conformance-lineage-note/v1.record.json +6 -0
- evorthon_data-1.0.0/tests/fixtures/adapters/provenance.json +23 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/digests.json +99 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/provenance.json +37 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/base-row-stream.canonical +4 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/case-record.canonical +1 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/decimal-scale-four.canonical +4 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/duplicate-rows.canonical +4 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/empty-zero-and-false.canonical +3 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/multiset-order.canonical +4 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/non-finite-tokens.canonical +5 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/null-values.canonical +3 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/ordering-ascending-nulls-last.canonical +5 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/ordering-descending-nulls-first.canonical +5 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/result-record.canonical +1 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/signed-zero-positive.canonical +4 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/signed-zero-preserved.canonical +4 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/timestamp-microseconds.canonical +4 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/timestamp-milliseconds.canonical +4 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/timestamp-seconds.canonical +3 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/unicode-nfc.canonical +3 -0
- evorthon_data-1.0.0/tests/fixtures/canonical/vectors/unicode-nfd.canonical +3 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/eng-installed-verification/adapters.json +13 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/eng-installed-verification/case.json +397 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/eng-installed-verification/material.json +139 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/candidate.json +5 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/declared-outputs/conformance-case/v1.json +12 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/declared-outputs/reconciliation-case/v1.json +12 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/evidence/conformance-checkpoint-note/v1.content +1 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/evidence/conformance-checkpoint-note/v1.record.json +6 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/evidence/conformance-lineage-note/v1.content +1 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/evidence/conformance-lineage-note/v1.record.json +6 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/evidence/parity-evidence/v1.content +1 -0
- evorthon_data-1.0.0/tests/fixtures/deep/declared/environment-owned-material/evidence/parity-evidence/v1.record.json +6 -0
- evorthon_data-1.0.0/tests/fixtures/deep/provenance.json +85 -0
- evorthon_data-1.0.0/tests/fixtures/intake/exported-job-credential.txt +13 -0
- evorthon_data-1.0.0/tests/fixtures/intake/order-data-dictionary.md +44 -0
- evorthon_data-1.0.0/tests/fixtures/intake/orders-extract.csv +6 -0
- evorthon_data-1.0.0/tests/fixtures/intake/provenance.json +20 -0
- evorthon_data-1.0.0/tests/fixtures/intake/settled-orders.sql +21 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/adviser/scripted-replies.json +30 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/candidate/aggregate.json +144 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/candidate/calculation.json +144 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/candidate/corrected.json +144 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/candidate/effective-date.json +144 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/candidate/key.json +184 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/candidate/population.json +96 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/expected/publication-day-one.json +71 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/expected/publication-day-two.json +71 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/generation/service-case-extract-seed.csv +3 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/inputs/service-case-extract.json +45 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/lineage/service-report-lineage.json +35 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/reference/service-channel-reference.json +48 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/reference/service-team-lookup.json +37 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/declared/remediation/human-selection.json +18 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/customer-service-reporting/provenance.json +123 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/adviser/scripted-replies.json +15 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/candidate/corrected.json +174 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/candidate/interface.json +174 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/candidate/invariant.json +174 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/candidate/operational.json +174 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/candidate/reference.json +174 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/candidate/transformation.json +174 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/contract/clause-requirements.json +54 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/expected/performance-view-day-one.json +73 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/expected/performance-view-day-two.json +73 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/generation/asset-telemetry-seed.csv +3 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/inputs/asset-telemetry-extract.json +45 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/lineage/asset-performance-lineage.json +35 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/reference/asset-register-reference.json +33 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/reference/turbine-technology-lookup.json +31 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/declared/remediation/human-selection.json +18 -0
- evorthon_data-1.0.0/tests/fixtures/proofs/renewable-asset-observability/provenance.json +132 -0
- evorthon_data-1.0.0/tests/fixtures/synthetic/constraints/customer-orders.json +59 -0
- evorthon_data-1.0.0/tests/fixtures/synthetic/constraints/region-reference.json +49 -0
- evorthon_data-1.0.0/tests/fixtures/synthetic/provenance.json +18 -0
- evorthon_data-1.0.0/tests/pack/test_links_and_indexes.py +65 -0
- evorthon_data-1.0.0/tests/pack/test_skill_pairings.py +34 -0
- evorthon_data-1.0.0/tests/pack/test_two_engagement_modes.py +242 -0
- evorthon_data-1.0.0/tests/packaging/test_wheel_dependencies.py +88 -0
- evorthon_data-1.0.0/tests/product/declaration_draft_support.py +267 -0
- evorthon_data-1.0.0/tests/product/proof_lifecycle.py +885 -0
- evorthon_data-1.0.0/tests/product/test_autobuild_route.py +470 -0
- evorthon_data-1.0.0/tests/product/test_boundary_patterns.py +854 -0
- evorthon_data-1.0.0/tests/product/test_cli_remediation.py +1463 -0
- evorthon_data-1.0.0/tests/product/test_cli_use_case.py +965 -0
- evorthon_data-1.0.0/tests/product/test_cli_verification.py +1021 -0
- evorthon_data-1.0.0/tests/product/test_declaration_draft.py +710 -0
- evorthon_data-1.0.0/tests/product/test_declaration_draft_live.py +395 -0
- evorthon_data-1.0.0/tests/product/test_deep_harness.py +968 -0
- evorthon_data-1.0.0/tests/product/test_dependencies_diagnose.py +44 -0
- evorthon_data-1.0.0/tests/product/test_engagement_lifecycle.py +270 -0
- evorthon_data-1.0.0/tests/product/test_ergasterion_route.py +779 -0
- evorthon_data-1.0.0/tests/product/test_ergasterion_route_live.py +281 -0
- evorthon_data-1.0.0/tests/product/test_koine_delivery_contract.py +708 -0
- evorthon_data-1.0.0/tests/product/test_koine_session.py +1487 -0
- evorthon_data-1.0.0/tests/product/test_lifecycle.py +1126 -0
- evorthon_data-1.0.0/tests/product/test_model_egress.py +297 -0
- evorthon_data-1.0.0/tests/product/test_pinax_projection.py +1191 -0
- evorthon_data-1.0.0/tests/product/test_proof_customer_service.py +1397 -0
- evorthon_data-1.0.0/tests/product/test_proof_renewable_asset.py +1679 -0
- evorthon_data-1.0.0/tests/product/test_readiness_projection.py +905 -0
- evorthon_data-1.0.0/tests/product/test_readme_claim_registry.py +375 -0
- evorthon_data-1.0.0/tests/product/test_synthetic_generator.py +582 -0
- evorthon_data-1.0.0/tests/product/test_use_case_aggregate.py +2326 -0
- evorthon_data-1.0.0/tests/product/test_use_case_versions.py +663 -0
- evorthon_data-1.0.0/tests/test_deep_sentinel.py +13 -0
- evorthon_data-1.0.0/tests/test_sentinel.py +4 -0
- evorthon_data-1.0.0/tests/verification/test_adapter_conformance.py +433 -0
- evorthon_data-1.0.0/tests/verification/test_adapter_kit.py +296 -0
- evorthon_data-1.0.0/tests/verification/test_canonical_identity.py +1325 -0
- evorthon_data-1.0.0/tests/verification/test_checkpoint_replay.py +342 -0
- evorthon_data-1.0.0/tests/verification/test_contract_engine.py +635 -0
- evorthon_data-1.0.0/tests/verification/test_diagnosis_workflow.py +157 -0
- evorthon_data-1.0.0/tests/verification/test_diagnostic_adviser.py +1160 -0
- evorthon_data-1.0.0/tests/verification/test_domain_contracts.py +674 -0
- evorthon_data-1.0.0/tests/verification/test_fault_packet.py +1116 -0
- evorthon_data-1.0.0/tests/verification/test_intake_workflow.py +613 -0
- evorthon_data-1.0.0/tests/verification/test_lineage_localisation.py +650 -0
- evorthon_data-1.0.0/tests/verification/test_privacy_gate.py +407 -0
- evorthon_data-1.0.0/tests/verification/test_reconciliation.py +1327 -0
- evorthon_data-1.0.0/tests/verification/test_reconciliation_workflow.py +261 -0
- evorthon_data-1.0.0/tests/verification/test_remediation_workflow.py +580 -0
- evorthon_data-1.0.0/tests/verification/test_schema_enforcement.py +983 -0
- evorthon_data-1.0.0/uv.lock +802 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"hooks": {}, "plugins": []}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* text=auto eol=lf
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../adapters/autobuild/contract.md`; execute only a ready, approved item.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/advise-on-fault-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/advise-on-fault.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/build-data-platform-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/build-data-platform.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/design-data-platform-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/design-data-platform.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/discover-greenfield-capabilities-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/discover-greenfield-capabilities.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/method/build-pipeline.md` before executing approved work.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/frame-platform-outcome-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/frame-platform-outcome.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/intake-use-case-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/intake-use-case.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/method/intent-readiness.md` before proposing work.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/setup-data-platform-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/setup-data-platform.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/trace-current-estate-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/trace-current-estate.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/reviewers/verify-data-platform-reviewer.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../koine/prompts/generators/verify-data-platform.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/advising-on-a-fault/SKILL.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/building-data-platform/SKILL.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/designing-data-platform/SKILL.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/discovering-greenfield-capabilities/SKILL.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/framing-platform-outcome/SKILL.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/intaking-use-case/SKILL.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/setting-up-data-platform/SKILL.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/tracing-current-estate/SKILL.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `../../../koine/skills/verifying-data-platform/SKILL.md`.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: repository-check
|
|
2
|
+
on: [push, pull_request]
|
|
3
|
+
jobs:
|
|
4
|
+
fast:
|
|
5
|
+
runs-on: ubuntu-latest
|
|
6
|
+
steps:
|
|
7
|
+
- uses: actions/checkout@v4
|
|
8
|
+
- uses: actions/setup-python@v5
|
|
9
|
+
with: {python-version-file: pyproject.toml}
|
|
10
|
+
- uses: astral-sh/setup-uv@v5
|
|
11
|
+
- name: Validate the checked-out tree
|
|
12
|
+
shell: bash
|
|
13
|
+
run: |
|
|
14
|
+
# A published candidate carries a finalized inventory, so the candidate
|
|
15
|
+
# branch takes no provisional allowance. Only an unpublished candidate
|
|
16
|
+
# still holds a provisional inventory, and it is not what CI checks out.
|
|
17
|
+
if [ -f PUBLIC-INVENTORY.json ] && [ -f PUBLIC-LEAKAGE-POLICY.json ]; then
|
|
18
|
+
python scripts/check_public_candidate.py
|
|
19
|
+
else
|
|
20
|
+
uv run --locked --group dev python scripts/run_tests.py --lane fast
|
|
21
|
+
fi
|
|
22
|
+
vectors:
|
|
23
|
+
strategy:
|
|
24
|
+
fail-fast: false
|
|
25
|
+
matrix:
|
|
26
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
27
|
+
runs-on: ${{ matrix.os }}
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v4
|
|
30
|
+
- uses: actions/setup-python@v5
|
|
31
|
+
with: {python-version-file: pyproject.toml}
|
|
32
|
+
- uses: astral-sh/setup-uv@v5
|
|
33
|
+
- name: Compare the committed canonical vectors
|
|
34
|
+
shell: bash
|
|
35
|
+
run: uv run --locked --group dev python scripts/run_tests.py --lane fast tests/verification/test_canonical_identity.py
|
|
36
|
+
- name: Run the fast lane
|
|
37
|
+
shell: bash
|
|
38
|
+
run: uv run --locked --group dev python scripts/run_tests.py --lane fast
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
name: Publish the reviewed distributions
|
|
2
|
+
|
|
3
|
+
# This workflow uploads the distributions a person has already reviewed and
|
|
4
|
+
# attached to a tagged publication. It builds nothing of its own, and it stops
|
|
5
|
+
# before uploading anything whose digest disagrees with the digests published
|
|
6
|
+
# beside it.
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
inputs:
|
|
11
|
+
release_tag:
|
|
12
|
+
description: The tag whose attached distributions are published, in the form vX.Y.Z
|
|
13
|
+
required: true
|
|
14
|
+
type: string
|
|
15
|
+
|
|
16
|
+
concurrency:
|
|
17
|
+
group: pypi-publish
|
|
18
|
+
cancel-in-progress: false
|
|
19
|
+
|
|
20
|
+
permissions:
|
|
21
|
+
contents: read
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
publish:
|
|
25
|
+
name: Publish to the package index
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
environment:
|
|
28
|
+
name: pypi
|
|
29
|
+
url: https://pypi.org/project/evorthon-data/
|
|
30
|
+
permissions:
|
|
31
|
+
contents: read
|
|
32
|
+
id-token: write
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- name: Download the distributions the tag carries
|
|
36
|
+
env:
|
|
37
|
+
GH_TOKEN: ${{ github.token }}
|
|
38
|
+
RELEASE_TAG: ${{ inputs.release_tag }}
|
|
39
|
+
REPOSITORY: ${{ github.repository }}
|
|
40
|
+
shell: bash
|
|
41
|
+
run: |
|
|
42
|
+
set -euo pipefail
|
|
43
|
+
if [[ ! "$RELEASE_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
44
|
+
echo "release_tag must use the form vX.Y.Z" >&2
|
|
45
|
+
exit 1
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
mkdir -p assets
|
|
49
|
+
gh api "repos/$REPOSITORY/releases/tags/$RELEASE_TAG" --jq '.assets[] | [.name, .url] | @tsv' > catalogue.tsv
|
|
50
|
+
while IFS=$'\t' read -r name address; do
|
|
51
|
+
case "$name" in
|
|
52
|
+
evorthon_data-*.whl|evorthon_data-*.tar.gz|SHA256SUMS)
|
|
53
|
+
gh api -H "Accept: application/octet-stream" "$address" > "assets/$name"
|
|
54
|
+
;;
|
|
55
|
+
esac
|
|
56
|
+
done < catalogue.tsv
|
|
57
|
+
|
|
58
|
+
- name: Verify the downloaded distributions against the published digests
|
|
59
|
+
shell: bash
|
|
60
|
+
run: |
|
|
61
|
+
set -euo pipefail
|
|
62
|
+
mkdir -p dist
|
|
63
|
+
cd assets
|
|
64
|
+
shopt -s nullglob
|
|
65
|
+
|
|
66
|
+
test -f SHA256SUMS
|
|
67
|
+
wheels=(evorthon_data-*.whl)
|
|
68
|
+
sdists=(evorthon_data-*.tar.gz)
|
|
69
|
+
test "${#wheels[@]}" -eq 1
|
|
70
|
+
test "${#sdists[@]}" -eq 1
|
|
71
|
+
packages=("${wheels[0]}" "${sdists[0]}")
|
|
72
|
+
|
|
73
|
+
listed=$(awk '{ name = $2; sub(/^[*]/, "", name); print name }' SHA256SUMS | sort)
|
|
74
|
+
expected=$({ echo "${wheels[0]}"; echo "${sdists[0]}"; } | sort)
|
|
75
|
+
test "$(wc -l < SHA256SUMS)" -eq 2
|
|
76
|
+
test "$listed" = "$expected"
|
|
77
|
+
sha256sum --check --strict SHA256SUMS
|
|
78
|
+
|
|
79
|
+
cp -- "${packages[@]}" "$GITHUB_WORKSPACE/dist/"
|
|
80
|
+
|
|
81
|
+
# The published v1 line of the trusted-publishing action, pinned by commit.
|
|
82
|
+
- name: Publish the verified distributions
|
|
83
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33
|
|
84
|
+
with:
|
|
85
|
+
packages-dir: dist
|
|
86
|
+
verify-metadata: true
|
|
87
|
+
skip-existing: false
|
|
88
|
+
attestations: true
|
|
89
|
+
print-hash: true
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Adopting Evorthon Data
|
|
2
|
+
<!-- evorthon-implements: EVD-README-032 -->
|
|
3
|
+
|
|
4
|
+
Start with a real consumer outcome, a clear platform boundary, named authorities, and evidence that can support the next decision. Do not begin with a tool or a target architecture.
|
|
5
|
+
|
|
6
|
+
For a modernisation engagement, create an outcome brief, a current-estate map, platform design, implementation plan, delivery contract, and verification record. For greenfield, replace the current-estate map with an independently reviewed capability-discovery record; do not simply skip discovery. The resulting records establish required capabilities, constraints, architecture, increments, the delivery contract, and contract-conformance evidence without inventing a legacy-parity claim.
|
|
7
|
+
|
|
8
|
+
Koine is the specialist co-worker. Its prompts generate a stage record; its paired prompts challenge it before the next stage. Pinax holds operational work state. Ergasterion may generate declared artefacts. AutoBuild may execute only eligible, approved work. None owns another mechanism's role.
|
|
9
|
+
|
|
10
|
+
## What crosses to a model
|
|
11
|
+
|
|
12
|
+
Every model call travels through one authorization gateway. An external call is refused unless it is presented with a current, unrevoked authorization issued in your environment and bound to the case, purpose, route, destination, exact fields, data class, retention policy and evidence policy. An ambient credential never authorises a send on its own.
|
|
13
|
+
|
|
14
|
+
A use-case intake round calls a model twice, and the two calls carry different things. The generator call carries the use-case identity, the engagement mode, each admitted artefact's identity, version, digest, handling classification and logical locator, the intake sections still open, the answers a named human confirmed, and a bounded sample of the text of each artefact the authorization lets cross. The sample is cut to a declared number of rows and characters, so no artefact crosses whole however large it is, and an artefact whose handling classification is above the level the authorization's field scope names crosses no text at all. The round then proceeds on that artefact's digest and the record, and reports for every artefact how much crossed or the closed reason nothing did. The independent review call carries the recorded facts with their provenance and the artefact identities and digests, and no artefact text at any classification.
|
|
15
|
+
|
|
16
|
+
The diagnostic adviser is the third route that calls a model. It carries only the declared text fields of a fault packet the privacy gate has already passed, together with the two lists of evidence identities that packet cites, so no row, key, field value or approved case text reaches it. Its reply comes back as an inert advice record: it is recorded as text for a person to read, and nothing in the product executes, applies or forwards it.
|
|
17
|
+
|
|
18
|
+
Raw rows beyond the sample, credentials and machine paths never cross. A locator is logical, which means it names the artefact and the position inside that artefact and nothing else, and the record refuses it before it is written if it carries an address under any scheme, a path from the root of a machine, a lettered volume, a share host, a written home directory, a climb out of where it starts, or a path written with a machine path's separator. The same shapes are refused in a fault packet and in a tracker note. A locator that reads like a dotted server name followed by a path or a port, or like a connection string, is admitted and the round reports a warning on it, because a dotted name cannot be told from an ordinary written name. Connection details belong in your environment's configuration and not in a record, and a locator that reads like one is admitted with a warning rather than refused, because a server name typed into a locator is a naming matter for your team. A credential-shaped pattern is refused before an artefact is admitted, so it cannot reach a call at all. Your environment owns the authorization, the provider account, retention and any evidence store.
|
|
19
|
+
|
|
20
|
+
## Reaching your own material
|
|
21
|
+
|
|
22
|
+
This product never reaches into your environment. Candidate artefacts and stored evidence arrive through two small read contracts that you implement, and the code that implements them is yours. Reference adapters ship with the product for both contracts, one pair answering from values held in memory and one pair answering from material laid out in a directory you name, so a team can run the product end to end before wiring anything of its own.
|
|
23
|
+
|
|
24
|
+
An adapter declares what it can do and what its answers are worth, and a conformance suite reads those claims against what the contract actually showed. It refuses a capability the port never showed, an assurance above the plainest level with no named input behind it, and any value or refusal carrying a machine route or a written credential. Locations, credentials, capture, signing, retention and certificate claims stay on your side of the boundary and have no field in any contract. See the [environment-adapter contract](docs/verification/environment-adapters.md).
|
|
25
|
+
|
|
26
|
+
The shipped examples are synthetic teaching material. They are not a delivery template for a particular organisation. Any live evidence, credentials, local paths, review records, and operational state remain in the adopting environment.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Evorthon Data
|
|
2
|
+
|
|
3
|
+
Use the canonical Koine co-worker and its paired reviewers with the supplied synthetic examples.
|
|
4
|
+
|
|
5
|
+
The [D2 model](docs/architecture/solution-architecture.d2) is the sole owner of component routes and ownership mapping. Its Markdown and SVG are mechanically generated readable projections.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Georgios Antikatzidis
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: evorthon-data
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: End-to-end data-platform delivery coworker for modernising an existing estate or building a new one
|
|
5
|
+
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Classifier: Intended Audience :: Developers
|
|
8
|
+
Classifier: Operating System :: OS Independent
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
11
|
+
Requires-Python: >=3.11
|
|
12
|
+
Provides-Extra: delivery
|
|
13
|
+
Requires-Dist: autobuild-factory>=0.5.0; extra == 'delivery'
|
|
14
|
+
Requires-Dist: ergasterion-factory>=0.6.1; extra == 'delivery'
|
|
15
|
+
Requires-Dist: pinax-tracker>=0.1.3; extra == 'delivery'
|
|
16
|
+
Provides-Extra: test
|
|
17
|
+
Requires-Dist: pytest-timeout<3,>=2; extra == 'test'
|
|
18
|
+
Requires-Dist: pytest<9,>=8; extra == 'test'
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# Evorthon Data
|
|
22
|
+
|
|
23
|
+
Data platform delivery is often split across discovery, architecture, engineering, verification, governance and handover. Each group works through its own documents and tools, which slows decisions and loses context between stages. AI can speed up individual tasks while leaving that delivery system unchanged.
|
|
24
|
+
<!-- evorthon-claim: EVD-README-036 -->
|
|
25
|
+
|
|
26
|
+
Evorthon Data is an end-to-end AI coworker and delivery platform for modernising an existing data estate or building a new one. It combines a specialist data coworker with governed delivery tooling so a team can move from a business outcome to an accepted platform at AI-era speed.
|
|
27
|
+
<!-- evorthon-claim: EVD-README-037 -->
|
|
28
|
+
|
|
29
|
+
People remain in control. They set the outcome, boundaries, policies, evidence requirements and acceptance rules. Evorthon Data makes those decisions explicit, applies them through delivery and retains the evidence needed for human acceptance.
|
|
30
|
+
<!-- evorthon-claim: EVD-README-038 -->
|
|
31
|
+
|
|
32
|
+
This README defines the product boundary and required behaviour. The implementation and its verification evidence must support every claim below.
|
|
33
|
+
<!-- evorthon-claim: EVD-README-039 -->
|
|
34
|
+
|
|
35
|
+
> **Build status.** This is the binding product contract, not a claim that every capability is already available. The [capability status guide](docs/product/capability-status.md) explains the status terms, and the [claim registry](docs/product/readme-claim-registry.toml) maps each stable claim identifier to its current implementation and evidence state. A claim the registry marks **in development** is approved product behaviour that is not yet shipped; no claim carries that mark today.
|
|
36
|
+
<!-- evorthon-claim: EVD-README-001 -->
|
|
37
|
+
|
|
38
|
+
## What you can watch it do
|
|
39
|
+
|
|
40
|
+
The included [customer service modernisation example](examples/modernisation/customer-service-reporting/outcome-brief.md) begins with service leaders needing a trusted daily view by 09:00. It traces separate case, interaction and workforce feeds, preserves the existing cutoff and metric definitions, and replaces manual reconciliation with a deterministic control.
|
|
41
|
+
<!-- evorthon-claim: EVD-README-002 -->
|
|
42
|
+
|
|
43
|
+
Verification blocks publication when a key is missing, an aggregate changes or the population does not reconcile. A named sponsor accepts the delivery only after two synthetic daily publications meet the agreed checks.
|
|
44
|
+
<!-- evorthon-claim: EVD-README-003 -->
|
|
45
|
+
|
|
46
|
+
A complete Evorthon Data engagement:
|
|
47
|
+
<!-- evorthon-claim: EVD-README-040 -->
|
|
48
|
+
|
|
49
|
+
1. Defines the business outcome, measurable signals, scope and decision authorities.
|
|
50
|
+
<!-- evorthon-claim: EVD-README-004 -->
|
|
51
|
+
2. Establishes the starting point. A modernisation maps the current estate and continuity needs; a greenfield delivery records capabilities and constraints without inventing a legacy estate.
|
|
52
|
+
<!-- evorthon-claim: EVD-README-005 -->
|
|
53
|
+
3. Designs the target platform, operating model, transition and delivery increments.
|
|
54
|
+
<!-- evorthon-claim: EVD-README-006 -->
|
|
55
|
+
4. Converts the accepted design into an executable work graph with visible dependencies and gates.
|
|
56
|
+
<!-- evorthon-claim: EVD-README-007 -->
|
|
57
|
+
5. Builds the platform through bounded increments. Where the contract supports exact generation, the same approved input produces the same declared artefact.
|
|
58
|
+
<!-- evorthon-claim: EVD-README-008 -->
|
|
59
|
+
6. Builds and runs the verification engine needed for that platform, including checks, fixtures, evidence paths, fault localisation and acceptance gates.
|
|
60
|
+
<!-- evorthon-claim: EVD-README-009 -->
|
|
61
|
+
7. Presents machine evidence, review findings and remaining uncertainty to the named people who accept the outcome.
|
|
62
|
+
<!-- evorthon-claim: EVD-README-010 -->
|
|
63
|
+
|
|
64
|
+
The delivery contract keeps these stages aligned. It records decisions and constraints so the coworker, tools, reviewers and people work from the same approved intent.
|
|
65
|
+
<!-- evorthon-claim: EVD-README-041 -->
|
|
66
|
+
|
|
67
|
+
## Two delivery modes
|
|
68
|
+
|
|
69
|
+
### Modernise an existing estate
|
|
70
|
+
|
|
71
|
+
The coworker traces the current processing, data, interfaces, controls and operational constraints before proposing a target. It separates continuity needs from accidental legacy behaviour, then defines a safe transition in independently accepted increments.
|
|
72
|
+
<!-- evorthon-claim: EVD-README-011 -->
|
|
73
|
+
|
|
74
|
+
### Build a greenfield platform
|
|
75
|
+
|
|
76
|
+
The coworker begins with the required outcomes, capabilities, constraints and operating model. It creates no fictional current estate or parity requirement. The platform is designed and delivered in independently accepted increments from the start.
|
|
77
|
+
<!-- evorthon-claim: EVD-README-012 -->
|
|
78
|
+
|
|
79
|
+
## How delivery works
|
|
80
|
+
|
|
81
|
+
An engagement begins with the people who own the business outcome, source evidence, technical decisions and final acceptance. Their decisions are recorded in plain, reviewable form before work enters delivery.
|
|
82
|
+
<!-- evorthon-claim: EVD-README-013 -->
|
|
83
|
+
|
|
84
|
+
An engagement holds many use cases. A use case carries one consumer outcome with its target outputs, inputs and reference data, a lineage draft with named intermediate results, its scenarios, authorities, conditions and versions. It is the unit of intake, readiness, build and acceptance, and packages remain the unit of build work inside it.
|
|
85
|
+
<!-- evorthon-claim: EVD-README-043 -->
|
|
86
|
+
|
|
87
|
+
The specialist AI coworker interviews those people, creates the required delivery records, keeps decisions linked to evidence and pairs every generation step with an independent review. It maintains the delivery conversation from outcome framing through design, build, verification and acceptance. This is the Koine data coworker.
|
|
88
|
+
<!-- evorthon-claim: EVD-README-014 -->
|
|
89
|
+
|
|
90
|
+
Intake works from the artefacts a team already has. The coworker reads schemas, data extracts, transformations, reports, schedules and catalogue exports with its ordinary file, data and query tools, and asks only the questions those artefacts leave open. Every recorded fact names the artefact it came from, its position inside that artefact, the actor that extracted it, and whether it is extracted, inferred or confirmed. No parser or import adapter is built for an artefact shape that is not in hand.
|
|
91
|
+
<!-- evorthon-claim: EVD-README-044 -->
|
|
92
|
+
|
|
93
|
+
Every model call travels through one authorization gateway, and what each route carries is declared. A generation or review call carries record identities, digests, declared facts and the questions still open. A locator among them is logical, naming the artefact and the position inside it: the record refuses a locator that carries an address under any scheme, a path from the root of a machine, a lettered volume, a share host, a written home directory, a climb out of where it starts, or a path written with a machine path's separator. A locator that reads like a dotted server name followed by a path or a port, or like a connection string, is admitted and the round reports a warning on it, because a dotted name cannot be told from an ordinary written name. Connection details belong in the adopting environment's configuration and not in a record, and a locator that reads like one is admitted with a warning rather than refused. On the intake route an admitted artefact's text crosses only as a bounded sample, cut to a declared number of rows and characters, and only where the artefact's handling classification is at or below the level the authorization's field scope names. A higher classification crosses no text at all, and the round continues on that artefact's digest and the record. The round reports how much of each artefact crossed and the closed reason where none of it did. The independent review route carries no artefact text at any classification. The diagnostic adviser is the third route that calls a model, and it carries only the declared text fields of a fault packet the privacy gate has already passed, together with the two lists of evidence identities that packet cites. Its reply is recorded as inert text, so nothing in the product executes, applies or forwards it.
|
|
94
|
+
<!-- evorthon-claim: EVD-README-050 -->
|
|
95
|
+
|
|
96
|
+
Readiness is computed from those facts rather than kept by hand, and it is computed for each segment of the lineage, meaning a span from available inputs to a declared output or checkpoint. A segment needs only its own facts, and the one fact it cannot do without is the definition of its output: schema, grain and keys. Every other missing fact has a labelled substitute or becomes tracked work under the use case, so a use case is never blocked as a whole and whatever is buildable is built.
|
|
97
|
+
<!-- evorthon-claim: EVD-README-045 -->
|
|
98
|
+
|
|
99
|
+
Accepted work enters a live work graph. Dependencies, readiness, claims, gates and completion stay visible there, while durable product knowledge remains in its owning documents. Pinax owns this operational state.
|
|
100
|
+
<!-- evorthon-claim: EVD-README-015 -->
|
|
101
|
+
|
|
102
|
+
Every change to that state is recorded and shared as it is made, so a claim, a completion or a new item is visible on every machine at once without a coordinator in between. A claim reads the shared state first, and a claim that loses a race is reported and refused rather than silently overwritten.
|
|
103
|
+
<!-- evorthon-claim: EVD-README-046 -->
|
|
104
|
+
|
|
105
|
+
Approved work can then use deterministic generation and autonomous engineering. Ergasterion generates declared artefacts from suitable contracts. AutoBuild executes eligible work through bounded build, review and acceptance cycles. Both remain separately released tools with their own responsibilities.
|
|
106
|
+
<!-- evorthon-claim: EVD-README-016 -->
|
|
107
|
+
|
|
108
|
+
Verification starts during framing because the team defines success signals, evidence ownership and failure conditions before implementation. Evorthon Data provides the portable comparison core and builds the contracts, checks and environment adapters required by the platform.
|
|
109
|
+
<!-- evorthon-claim: EVD-README-017 -->
|
|
110
|
+
|
|
111
|
+
Named people accept the result after the deterministic checks and independent reviews complete. The system records their decision and the evidence that supported it. A model recommendation cannot accept its own work.
|
|
112
|
+
<!-- evorthon-claim: EVD-README-018 -->
|
|
113
|
+
|
|
114
|
+
A version is an acceptance boundary and may cover a single buildable slice. Every acceptance record states which segments and outputs the version covers, which scenarios ran and on what kind of data, and which segments stay outside it. Consumers work with accepted products rather than versions, so an accepted intermediate product is available to another use case as soon as it is accepted.
|
|
115
|
+
<!-- evorthon-claim: EVD-README-047 -->
|
|
116
|
+
|
|
117
|
+
## Verification is part of the delivery
|
|
118
|
+
|
|
119
|
+
The verification engine is built around an approved, versioned verification case. The case freezes input, reference and enrichment data, expected output, comparison rules, and lineage or checkpoint evidence. Its owners can read and change those rules before a run.
|
|
120
|
+
<!-- evorthon-claim: EVD-README-019 -->
|
|
121
|
+
|
|
122
|
+
Where real inputs, reference data or expected output are not available, a case can be filled with synthetic data generated to the declared schema, grain and keys and constrained by whatever real data exists. Such a dataset is stored like any other frozen dataset, labelled synthetic and carrying its seed, the generator that produced it and the constraints it honoured. A pass against a synthetic oracle is labelled progress on the case, the result and the acceptance record, and is never presented as parity with real data. A complete build on synthetic data before a final run on real data is a normal route, and so is a delivery whose real data never arrives.
|
|
123
|
+
<!-- evorthon-claim: EVD-README-048 -->
|
|
124
|
+
|
|
125
|
+
Routine verification runs the candidate only and never depends on a live legacy route. It validates supplied evidence, independently confirms the candidate's input and context identities, reconciles actual and expected output at each declared checkpoint, and reports the earliest confirmed difference. Missing evidence leaves the space between the last confirmed match and first observed difference explicitly unknown.
|
|
126
|
+
<!-- evorthon-claim: EVD-README-020 -->
|
|
127
|
+
|
|
128
|
+
Portable verification records contain identifiers, cryptographic fingerprints, counts and approved summaries. Raw rows, credentials, private values and platform locations remain inside the adopting environment. Environment adapters own access, storage, signing, retention and any certification claim.
|
|
129
|
+
<!-- evorthon-claim: EVD-README-021 -->
|
|
130
|
+
|
|
131
|
+
A failed comparison produces a small, safe fault record with the affected checkpoint, diagnostic scope, supporting evidence and possible correction surface. Advice remains a proposal. It cannot alter tolerances, replace evidence, run work or accept an outcome.
|
|
132
|
+
<!-- evorthon-claim: EVD-README-022 -->
|
|
133
|
+
|
|
134
|
+
## What keeps it honest
|
|
135
|
+
|
|
136
|
+
- People set the outcome, boundaries, policies, tolerances and acceptance rules. Those decisions remain readable and changeable.
|
|
137
|
+
<!-- evorthon-claim: EVD-README-023 -->
|
|
138
|
+
- Generation and review are separate steps. Review findings must be resolved or accepted by a named authority.
|
|
139
|
+
<!-- evorthon-claim: EVD-README-024 -->
|
|
140
|
+
- Approved work is visible in the work graph before execution. Tools cannot silently enlarge the scope.
|
|
141
|
+
<!-- evorthon-claim: EVD-README-025 -->
|
|
142
|
+
- Deterministic checks include cases that must pass and deliberately failing cases that prove the failure path works.
|
|
143
|
+
<!-- evorthon-claim: EVD-README-026 -->
|
|
144
|
+
- Verification reports evidence gaps and uncertainty explicitly. Human acceptance follows the evidence.
|
|
145
|
+
<!-- evorthon-claim: EVD-README-027 -->
|
|
146
|
+
- Readiness, provenance and assurance are reported as labels and suggestions, never as policy gates that block progress. Only integrity checks fail closed: a record that contradicts itself, evidence that does not match its digest, a credential inside a stored artefact, an actor of the wrong kind, and a change to a record that is immutable. Accepting on synthetic or incomplete evidence is a named person's decision, recorded with the evidence it rested on.
|
|
147
|
+
<!-- evorthon-claim: EVD-README-049 -->
|
|
148
|
+
|
|
149
|
+
The checks do the trusting. Intentions and model confidence do not replace them.
|
|
150
|
+
<!-- evorthon-claim: EVD-README-042 -->
|
|
151
|
+
|
|
152
|
+
## What this is not
|
|
153
|
+
|
|
154
|
+
Evorthon Data is specific to data platforms. A future generic delivery product may reuse the method, but it is outside this product boundary.
|
|
155
|
+
<!-- evorthon-claim: EVD-README-028 -->
|
|
156
|
+
|
|
157
|
+
It does not impose one cloud, processing engine, storage product or target architecture. The adopting team selects technologies and owns the controls in its environment.
|
|
158
|
+
<!-- evorthon-claim: EVD-README-029 -->
|
|
159
|
+
|
|
160
|
+
It does not replace platform engineers, data owners, security teams, operators or acceptance authorities. The coworker and tools increase their delivery capacity while keeping their decisions visible.
|
|
161
|
+
<!-- evorthon-claim: EVD-README-030 -->
|
|
162
|
+
|
|
163
|
+
It does not move raw enterprise evidence into the portable product. Live connections, credentials, protected data and certified evidence stores stay under the adopting environment's control.
|
|
164
|
+
<!-- evorthon-claim: EVD-README-031 -->
|
|
165
|
+
|
|
166
|
+
## For engineers
|
|
167
|
+
|
|
168
|
+
Start with the [adoption guide](ADOPTION-GUIDE.md), then choose a [modernisation or greenfield example](examples/INDEX.md). The [architecture record](docs/architecture/solution-architecture.md) describes component ownership and the controlled delivery route. The [Koine projections](koine/INDEX.md) make the coworker records readable.
|
|
169
|
+
<!-- evorthon-claim: EVD-README-032 -->
|
|
170
|
+
|
|
171
|
+
Evorthon Data is a Python 3.11+ distribution. Pinax, AutoBuild and Ergasterion are consumed as released Python packages. The lock records the versions tested for a build; each delivery dependency declares a floor and no upper bound, and a floor rises only when the product calls a newer interface.
|
|
172
|
+
<!-- evorthon-claim: EVD-README-033 -->
|
|
173
|
+
|
|
174
|
+
Run `evorthon-data diagnose` to inspect installed dependency capabilities. Repository contributors can install [uv](https://docs.astral.sh/uv/) and run:
|
|
175
|
+
<!-- evorthon-claim: EVD-README-034 -->
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
uv run --locked --group dev python scripts/run_tests.py --lane fast
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
A public candidate is independently checked with the command below. The check reads a finalized inventory, which publication writes, so it runs on a published candidate as it stands; a candidate that has not reached publication still carries a provisional inventory and is checked by adding `--allow-provisional`.
|
|
182
|
+
<!-- evorthon-claim: EVD-README-035 -->
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
python scripts/check_public_candidate.py
|
|
186
|
+
```
|