|
Uni20
Asynchronous tensor and runtime library.
|
Uni20 is an early-stage C++23 project. Interfaces and implementation boundaries are still being designed, so contributions should optimize for a clear and correct design rather than compatibility with unfinished in-tree APIs.
Before editing code:
.codex/instructions.local.md when it exists. This optional, git-ignored file records machine-local compiler and build-tree constraints without making them repository policy.The normal workflow is direct collaboration between the maintainer and a human or coding agent. A GitHub issue is useful when work needs an asynchronous handoff, but it is not required for an interactive development session.
For a change:
The complete agent workflow is described in Agent-Assisted Development.
The intended contract comes from maintainer-approved decisions and canonical subsystem documentation. Tests encode and enforce that contract. Source code shows the current implementation, which may be the subject of a bug report.
When these disagree, report the conflict and resolve it explicitly. Do not infer that current code or an existing test is automatically authoritative.
Files under docs/ai_guidance/ are non-normative operating guidance. They describe how repository-aware assistants should gather evidence and apply durable project invariants, but they do not summarize current subsystem status or establish behavior.
Evidence should match the risk of the change:
Substantial changes benefit from an independent review context or model. Follow Reviewing Uni20 Changes; review findings should lead with correctness defects and residual risks rather than style observations.
Keep commits focused and describe what changed and why. Pull requests are useful for external contributions, asynchronous review, and large checkpoints, but maintainer-directed work may be committed directly when explicitly requested.
A useful pull-request or checkpoint summary contains:
Do not commit raw agent transcripts, generated reasoning dumps, or temporary working notes. Preserve durable design decisions in the canonical documentation instead.
Use an out-of-source build and never reuse one build tree with a different compiler or incompatible configuration. In the commands below, replace <build-dir> with a locally appropriate ignored directory:
Use a supported compiler: GCC 13 or newer, or upstream Clang 19 or newer. Local build roots, compiler paths, package-install policy, and optional dependency configurations belong in .codex/instructions.local.md or another untracked local configuration, not in portable repository documentation or skills. Personal CMake presets may be stored in the git-ignored CMakeUserPresets.json; project-wide presets, if added later, belong in the tracked CMakePresets.json.