Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Contributing

NUIF accepts research, specification, conformance, implementation and adapter contributions.

Research contributions

Add a stable research record under research/items/ using the repository schema. Prefer primary sources; include retrieval date, source version/commit where available, confidence, claims and explicit graph relationships. Do not silently replace conflicting evidence.

Specification contributions

Use an RFC for semantic/protocol changes. Every new normative behavior should include or identify a conformance fixture. Vendor-specific behavior belongs in an adapter or extension unless it demonstrates a broadly portable primitive.

Code contributions

Keep the Rust workspace formatted and warning-free. Core crates must remain independent of editor UI and vendor adapters. New parsing/rendering paths must document untrusted-input/resource-limit considerations.

Writing register

Persisted prose uses established technical terminology, complete grammar and direct statements. Use third-person descriptions for research and specification claims; imperative steps are appropriate for operational instructions. Remove marketing language, metaphorical names for established concepts, filler and repeated claims. Preserve qualifiers, identifiers, versions, numbers and units. Expand unfamiliar acronyms at first use. Use parallel lists for enumerations and tables for comparable facts. Follow BCP 14 semantics for requirement words in normative specification text.

Every non-obvious factual claim needs a locator: a source URL with a section, page or version, or a repository path, revision or executable fixture. Research records also retain retrieval dates. Separate source statements from repository interpretation and proposed behavior from observed results. State uncertainty explicitly; comparisons require a metric and source. Claims of completeness or readiness require evidence within the declared profile. Specification status follows GOVERNANCE.md.

The terminology reference lists terms for the model and implementation. The research-register skill provides the editing and review workflow. Agents select it automatically when relevant.

Commits

A commit message is exactly one line: <type>: <subject> with type in docs, research, spec, rfc, adr, feat, fix, test, refactor, perf, build, ci, chore; imperative mood; lower-case first letter; no trailing period; at most 72 characters. No scope parentheses, breaking-change marker, emoji, ticket numbers, URLs, body, trailers or attribution of tools, models or assistants. The optional local hook (.githooks/commit-msg) is enabled with git config core.hooksPath .githooks; CI runs tools/git/commit-lint.sh.

Run tools/research/validate.sh after editing research/.


Canonical source.