Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
__pycache__/
*.py[cod]
.venv/
venv/
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
htmlcov/
build/
dist/
*.egg-info/
.DS_Store
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,10 @@ All notable MNCDS specification and reference-tooling changes should be recorded
- Added a provenance-preserving extraction plan and machine-readable migration inventory.
- Added specification, schema, conformance, RFC, documentation, and CI scaffolding.

No normative MNCDS meaning is changed by this repository bootstrap. MNCDS 0.1-rc.1 remains sourced from the historical combined MNCS repository until the migration is completed and validated.
- Migrated MNCDS 0.1-draft, 0.1-rc.1, records-and-decisions, schemas, examples,
RFC 0004, and a standalone `mncds` validator from MNCS commit
`f0088c4d46dec84f289d9b4417eec32b0ac028e6`.
- This repository is now the canonical home of MNCDS meaning. MNCS retains a
consumer and consumed schema copies only.

No normative MNCDS meaning is changed by the extraction itself.
8 changes: 7 additions & 1 deletion MIGRATION.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# MNCDS Extraction from the Historical MNCS Repository

This repository is being established before the normative MNCDS material is extracted from `epi13/machine-native-complexity-standard`.
This repository now holds the canonical MNCDS 0.1 specification, schemas,
examples, RFC 0004, and a standalone `mncds` validator extracted from
`epi13/machine-native-complexity-standard` commit
`f0088c4d46dec84f289d9b4417eec32b0ac028e6`.

The remaining work is to keep the MNCS-side consumer compatible and to avoid
reintroducing a second authoritative copy of MNCDS meaning.

The goal is **not** to fork MNCS. The goal is to make the existing conceptual separation between MNCS and MNCDS real at the repository, release, governance, validator, and conformance layers.

Expand Down
76 changes: 51 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,22 @@

MNCDS governs how machine-native implementations are created, evaluated, selected, released, monitored, regenerated, replaced, and retired. It is a companion to the [Machine-Native Complexity Standard (MNCS)](https://github.com/epi13/machine-native-complexity-standard), but it is **independently versioned, governed, and released**.

> **Repository bootstrap in progress.** The normative MNCDS 0.1 release-candidate material currently lives in the MNCS repository and will be migrated here under an explicit provenance-preserving plan. Until that migration is completed and validated, this repository does not supersede the existing MNCDS source material.
This repository is the canonical home of MNCDS 0.1-draft, MNCDS 0.1-rc.1, the development-record schemas, and the MNCDS-owned reference validator.

## What belongs here

- development-process semantics and profiles (D1–D4)
- development records, authority, lineage, partitions, selection, release, monitoring, regeneration, and retirement
- MNCDS schemas, conformance vectors, and the `mncds` validator
- RFCs that change MNCDS meaning

## What does not belong here

- MNCS implementation-evidence acceptance rules
- operator infrastructure such as MNCS Harness, MNCS Control MCP, MNCS Fabric, or MNCS Commons
- Forge workflows, RAVEL/MNEL research, or reference-study implementations

Those projects may *produce* MNCDS records. They do not own MNCDS meaning.

## Core boundary

Expand All @@ -14,41 +29,52 @@ MNCDS governs how machine-native implementations are created, evaluated, selecte

Those responsibilities interact through explicit, versioned bindings. Neither project silently owns or rewrites the other's normative meaning.

## Design principles

1. **Independent normative authority.** MNCDS changes are reviewed and released here.
2. **Explicit interoperability.** Dependencies on MNCS use versioned contracts and identities rather than source duplication.
3. **Process evidence is first-class.** Candidate lineage, partitions, authority, selection, reproducibility, release, and lifecycle state remain inspectable artifacts.
4. **Unknown stays unknown.** Missing, inaccessible, unsupported, crashed, or timed-out evidence does not become `PASS`.
5. **History is immutable.** Corrections create new records and preserve superseded identities.
6. **Tool neutrality.** Models, generators, analyzers, compilers, providers, benchmarks, languages, Forge, RAVEL, and case studies are implementations or research mechanisms, not normative authorities.
7. **No self-promotion.** Generators, evaluators, orchestration systems, and recursive agents cannot silently broaden authority or promote their own results.

## Repository map

- `spec/` — normative and release-candidate MNCDS specification text.
- `schemas/` — versioned machine-readable MNCDS schemas.
- `conformance/` — valid/invalid vectors and release-candidate conformance corpora.
- `rfcs/` — proposals that change normative meaning, governance, or interoperability.
- `docs/` — architecture, rationale, migration, and non-normative guidance.
- `migration/` — provenance and transfer planning for material currently housed in the MNCS repository.
- `scripts/` — repository and conformance support tooling; tools are non-normative unless a specification explicitly says otherwise.
A reader can understand MNCS without first understanding this repository. MNCDS may require an MNCS result only when a record declares an MNCS binding.

## Status

- Project: **Machine-Native Complexity Development Specification**
- Acronym: **MNCDS**
- Current specification line: **0.1**
- Current source release candidate: **0.1-rc.1**, pending migration from the MNCS repository
- Current release candidate: **0.1-rc.1**
- Maturity: **experimental / pre-1.0**
- License: **Apache-2.0**
- Historical source: extracted from [`epi13/machine-native-complexity-standard`](https://github.com/epi13/machine-native-complexity-standard) commit `f0088c4d46dec84f289d9b4417eec32b0ac028e6`

See [`MIGRATION.md`](MIGRATION.md) and [`INTEROPERABILITY.md`](INTEROPERABILITY.md).

## Validate a record

```bash
python3 -m pip install -e '.[dev]'
mncds validate examples/mncds-0.1-rc/development-record.json --json
mncds validate examples/mncds-d4/development-record.json --require-pass
```

The validator checks the declared record and invariants. It does not launch generators, evaluators, models, Forge, Fabric, or Harness.

## Repository map

- `spec/` — normative MNCDS 0.1-draft and 0.1-rc.1 text
- `schemas/` — versioned machine-readable MNCDS schemas
- `examples/` — development-record examples
- `conformance/` — MNCDS-owned corpora
- `rfcs/` — proposals that change MNCDS meaning
- `docs/` — architecture, rationale, and non-normative guidance
- `src/mncds_validator/` — reference `mncds` CLI

The current migration source is [`epi13/machine-native-complexity-standard`](https://github.com/epi13/machine-native-complexity-standard). See [`MIGRATION.md`](MIGRATION.md) for the transfer boundary and [`INTEROPERABILITY.md`](INTEROPERABILITY.md) for the long-term MNCS ↔ MNCDS relationship.
## Family relationships

## Contributing
Family orientation lives in [MNCS Atlas](https://github.com/epi13/mncs-atlas). Atlas is descriptive.

Read [`CONTRIBUTING.md`](CONTRIBUTING.md), [`GOVERNANCE.md`](GOVERNANCE.md), and [`AGENTS.md`](AGENTS.md) before changing normative material. Normative changes require explicit review and must not be smuggled in as migration cleanup.
| Project | Relationship to MNCDS |
|---|---|
| MNCS | sibling standard for implementation-evidence acceptance |
| MNCS Forge | may produce or evaluate development evidence; not an authority |
| MNCS Validator (in MNCS / Rust) | may consume MNCDS records as a shared interface |
| MNCS Harness, Control, Fabric, Commons | operator/implementation ecosystem; not required by MNCDS |
| RAVEL / MNEL / Reference Studies | research and empirical work that may emit MNCDS records |

## Non-claims

MNCDS is experimental. It is not accredited certification, a security warranty, organizational independence, protected custody, or proof that a development process is safe or correct. A validator can check declared records and invariants; it cannot manufacture missing real-world evidence or authority.
MNCDS is experimental. It is not accredited certification, a security warranty, organizational independence, protected custody, or proof that a development process is safe or correct.
184 changes: 184 additions & 0 deletions conformance/mncds-conformance-corpus/corpus.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
{
"schema_version": "0.1",
"mncds_version": "0.1-draft",
"base_record": "examples/mncds-d4/development-record.json",
"cases": [
{
"id": "valid/d4-pass",
"mutations": [],
"expected": {
"valid": true,
"computed_status": "PASS",
"issue_codes": []
}
},
{
"id": "invalid/generator-modifies-evaluator",
"mutations": [
{
"path": "/generator/permissions/modify_evaluators",
"value": true
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"generator-authority-violation"
]
}
},
{
"id": "invalid/generator-modifies-threshold",
"mutations": [
{
"path": "/generator/permissions/modify_thresholds",
"value": true
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"generator-authority-violation"
]
}
},
{
"id": "invalid/candidate-lineage-cycle",
"mutations": [
{
"path": "/candidates/0/parent_ids",
"value": [
"candidate-b"
]
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"lineage-cycle"
]
}
},
{
"id": "invalid/unknown-promoted",
"mutations": [
{
"path": "/candidates/1/evaluator_results/0/status",
"value": "UNKNOWN"
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"unknown-promoted"
]
}
},
{
"id": "invalid/holdout-contaminated",
"mutations": [
{
"path": "/partitions/holdout_contaminated",
"value": true
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"holdout-contaminated"
]
}
},
{
"id": "invalid/selection-rule-post-hoc",
"mutations": [
{
"path": "/selection/rule_recorded_before_holdout",
"value": false
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"selection-rule-post-hoc"
]
}
},
{
"id": "invalid/independence-conflict",
"mutations": [
{
"path": "/evaluators/1/authority_id",
"value": "authority-generation-team"
},
{
"path": "/evaluators/1/executable_id",
"value": "generator-runner-v2"
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"independence-authority-conflict",
"independence-executable-conflict",
"independent-role-mismatch"
]
}
},
{
"id": "invalid/mncs-binding-mismatch",
"mutations": [
{
"path": "/mncs_binding/candidate_id",
"value": "candidate-a"
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"mncs-binding-mismatch"
]
}
},
{
"id": "invalid/rollback-not-tested",
"mutations": [
{
"path": "/release_controls/rollback_test_status",
"value": "UNKNOWN"
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"rollback-not-tested"
]
}
},
{
"id": "invalid/regeneration-drill-failed",
"mutations": [
{
"path": "/release_controls/regeneration_drill/status",
"value": "FAIL"
}
],
"expected": {
"valid": false,
"computed_status": "FAIL",
"issue_codes": [
"regeneration-drill-failed"
]
}
}
]
}
34 changes: 34 additions & 0 deletions docs/interoperability/MNCS-v0.3-MNCDS-v0.1-decisions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!-- Provenance: copied from epi13/machine-native-complexity-standard commit f0088c4d46dec84f289d9b4417eec32b0ac028e6 during the 2026-08 MNCDS repository extraction. This repository is now the canonical home. -->

# MNCS 0.3 / MNCDS 0.1 release-candidate decisions

Status: decision-ready evidence for Draft RFCs 0004 and 0005. External review and
governance approval remain required.

| Issue | Alternatives | Selected rule | Compatibility, security, migration, tests | External requirement |
|---|---|---|---|---|
| MNCS core | Every Wave; extend 0.2 manifest; small family | Contract, assurance/lifecycle, threat, measurement | 0.2 frozen; RC corpus and two consumers | RFC 0005 approval |
| MNCDS core | Many subrecords; guidance; aggregate | One offline-resolvable aggregate | Draft preserved; migration creates identity | RFC 0004 approval |
| Experimental scope | Promote language/provider/Waves | Keep language profiles, MNEA, providers, Waves experimental | Tools/cases stay non-normative | Review |
| Contract adequacy | Optional; manifest fields; required | Required for new 0.3 claims | Historical claims unchanged; focused fixtures | Domain review per claim |
| Ambiguity | Always FAIL; always UNKNOWN | Contradiction/violation FAIL; unresolved material ambiguity UNKNOWN | Preserves uncertainty without accepting circularity | RFC approval |
| Contract change | Reuse ID; always new | Changed bytes new content ID; material semantics new logical ID and impact | No historical rewrite | RFC approval |
| Composition | Flat; adopter-only; graph | Acyclic required/optional claim graph | Tests propagation/cycles/shared evidence | Domain policy may be stricter |
| Correlation | Free text; universal taxonomy | Identified group/source/members | Concealment regression fixtures | RFC approval |
| Mixed versions | Normalize | Preserve exact level/profile/version | Prevents downgrade/promotion | RFC approval |
| Revalidation | Always full; unrestricted partial | Partial only over complete impact closure/fresh evidence | Insufficient scope UNKNOWN | Domain freshness policy |
| Invalidation | Artifact only; external | Ten identity dimensions plus custody | Material/non-material and stale fixtures | RFC approval |
| Freshness | Universal duration; none | Explicit expiry or identified no-default policy | Avoids universal unevidenced duration | Domain defaults |
| Lifecycle | Mutate claim; immutable events | Supersession/replacement/rollback/retirement; replacement new ID | Retired claim cannot support current PASS | RFC approval |
| Combined presentation | Score; separate files | One case, separate MNCS/MNCDS, no score | Collapse attempt invalid | RFC approval |
| Disposition | Third score; omit | Separate policy decision with no status | Review-required cannot become PASS | RFC approval |
| Criticality | Universal mapping; prose | Portable facts, external identified mapping | Avoids unsafe universal policy | Adoption evidence |
| Independence | Language difference; assertion | Separate implementation/executable/operator/organization facts | Code proves first two only | External actors |
| Unsupported | FAIL; omit; PASS | `UNSUPPORTED` boundary, required `UNKNOWN` | Both consumers test it | RFC approval |
| Migration | Auto-upgrade; invalidate | Wrap or reevaluate; missing facts UNKNOWN | 0.1/0.1.1/0.2/draft frozen | RFC approval |
| D3 | Organization required; identity only | Authority/executable separation, reviewer, fresh/protected evidence | Technical boundary locally testable | Organization remains external |
| Candidate retention | All bytes; aggregates | Material candidates individual; pre-material audited aggregate | Cycles/parents/disposition/aggregate tests | RFC approval |
| Recursive improvement | Forbid; unrestricted | Versioned epochs, fresh final partition, retained regressions | Two-epoch study | Independent review |

Every selected rule has a local schema, semantic, corpus, migration, or documentation
obligation. External actor and governance obligations remain open.
Loading