|
Uni20
Asynchronous tensor and runtime library.
|
Uni20 uses coding agents as engineering collaborators. The objective is to increase implementation and review capacity while keeping mathematical semantics, architecture, and project direction under maintainer control.
This document describes the workflow that Uni20 uses now. It is deliberately lighter than an autonomous issue-to-pull-request system.
Different repository artifacts have different roles:
| Artifact | Role |
|---|---|
| Maintainer-approved decision or canonical subsystem document | Defines intended semantics and architecture |
| Tests | Encode and enforce selected parts of the intended contract |
| Source code | Implements current behavior; it may contain the defect under investigation |
AGENTS.md | Defines repository-wide contributor and safety rules |
.codex/skills/ | Provides reusable tool-specific workflows |
docs/ai_guidance/ | Provides non-normative repository-review conventions and durable invariants |
There is no automatic conflict rule between code, tests, and canonical documentation. A conflict is evidence that the contract or implementation needs review. The maintainer resolves the intended behavior.
This is the default mode. The maintainer and agent inspect, discuss, implement, test, and refine a change in the current working session.
When semantics remain unresolved, the agent should stop editing that part, explain the alternatives, and obtain a decision. This is a local design pause, not a requirement to abandon the entire task.
A branch or pull request is useful when a change needs review outside the active session, comes from an external contributor, or is large enough to benefit from a durable review surface.
Uni20 does not currently run an unattended agent that selects issues and opens pull requests. If one is introduced, it is a separate execution mode and must:
These restrictions do not apply retroactively to interactive maintainer-agent development.
The normal loop is:
Agents should stay with the work through implementation and verification unless the maintainer pauses the task or an unresolved semantic decision blocks further progress.
Uni20 does not assign mandatory risk labels. Review depth follows behavior and blast radius rather than file paths alone.
Examples include spelling, links, focused Doxygen repair, and mechanical build metadata. Use a focused diff and the directly relevant checks.
Examples include BLAS/LAPACK wrappers, scalar promotion, tensor ownership, backend fallback, async ordering, cancellation, and AD rules. Require targeted regression coverage, broader neighboring tests, documentation updates, and an independent review where practical.
Examples include epoch semantics, symmetry selection rules, block-sparse representation, distributed execution, truncation policy, and tensor-network algorithm architecture. These require explicit maintainer-led design decisions and evidence that the scientific and metadata invariants are preserved.
A documentation file can define high-risk semantics, and a source file in a high-risk subsystem can receive a mechanical correction. Paths are review hints, not automatic classifications.
Independent review means a genuinely separate review context: another model, another session, or a human reviewer who did not produce the implementation. It supplements rather than replaces deterministic evidence.
Review should examine the accepted behavior, test oracle, implementation diff, and nearby equivalent paths. Use Reviewing Uni20 Changes as the shared checklist.
The useful property is independent scrutiny, not a particular AI vendor. A policy-compliance pass is not a correctness review.
Do not create mandatory session work logs. Store information according to its lifetime:
Raw transcripts and generated reasoning dumps are not project documentation.
Agents are useful for read-only neighborhood and cross-cutting audits. Candidate findings must be reproduced or otherwise verified before they become defects to fix. Do not create batches of issues from speculative findings.
Useful audits include:
Keep audits scoped to one current code lineage. In particular, do not infer that removed legacy elementwise or contraction prototypes define the contracts of the tensor and linalg dispatch layers.
Issue labels, machine-readable audit schemas, risk classifiers, guidance manifests, and headless runners should be added only when a concrete workflow needs them. They are not prerequisites for effective agent-assisted development and should not become parallel sources of repository policy.