Early alpha · Contributions must preserve scientific authority and reconstructability

Contributor workflow

Change behavior with evidence

A Nexus contribution is complete when reviewers can identify the authority for the change, the invariant it preserves, the tests that exercise it, and the claims it does not make.

Start with the authority chain

  1. Approved specificationsNormative contracts under specs/.
  2. Accepted architecture decisionsDurable choices, conflicts, and non-goals under docs/adr/.
  3. Golden fixturesReproducible compatibility evidence under fixtures/.
  4. Pinned PHP behaviorObservable reference behavior, not framework structure or syntax.
  5. Current C# behaviorImplementation evidence, never a silent override of higher authority.
Conflict rule: if those sources disagree, record the conflict and stop the affected behavior. Do not select the convenient interpretation in code.

Choose one coherent behavior

Use the current protected-main status and feature sequence before opening a change. One task should implement, verify, and document one bounded behavior. New product dependencies, compatibility decisions, privacy boundaries, and scientific authority rules require written rationale or an ADR.

Good first work

Documentation

Trace a public explanation to accepted contracts, gate evidence, commands, and tests. Correct stale status claims instead of adding marketing copy.

Good first work

Focused tests

Exercise an accepted edge case, invalid-input path, immutable boundary, deterministic serializer, or architecture constraint.

Needs a gate

New behavior

Define dependencies, authority, provenance, invalidation, fixtures, failure modes, and exit criteria before implementation.

Preserve the product laws

BoundaryContributor test
Suggestion is not a decisionDoes a human-authorized mutation remain explicit, attributable, and reviewable?
Draft is not an approved protocolCan draft content alter conduct before the accepted approval transition?
Current state is not historyCan a later correction or invalidation erase the record that preceded it?
Paths are not scientific identitiesIs identity bound to stable identifiers and content digests instead of a machine-local location?
Plugins are not a security sandboxDoes an extension receive only explicit capabilities, staged output, and no database credentials?
AI output remains a proposalAre provenance, schema validation, evidence references, and human action preserved?

Repository boundaries

Verify before review

dotnet build NexusScholar.Core.slnx -c Release
dotnet test NexusScholar.Core.slnx -c Release --no-build
dotnet format NexusScholar.Core.slnx --verify-no-changes --no-restore

Also run the affected architecture, conformance, package-smoke, fixture, or gate-specific checks. CI must remain deterministic and must not call a live scholarly provider or live model.

Write the completion report

Tell reviewers the behavior implemented, files changed, invariants enforced, tests added, commands run, unresolved risks, ADR impact, and PHP compatibility impact. A useful report distinguishes implementation success from production readiness and future intent.