ChrisOS Research Project Technical systems documentation

Source reference: docs/development/workflow.md

In this chapter

Deterministic source record. The complete textual file is reproduced below; this page does not replace architectural interpretation in the authored chapters.

File identity

Field Value
Path docs/development/workflow.md
Lines 96
Bytes 2542
SHA-256 6a22e029acacf131a012e9873ec43b56754fa64975583a01007b6865a698d3e2
ChrisOS revision 92fb561574bd929522ea005b9fd433138bea3236

Detected syntactic dependencies

Line Include
— No preprocessor include detected.

Detected symbols

Line Symbol
— No C-like function definition detected by the scanner.

Complete source

The following block is the complete textual file at the recorded revision. No lines are elided, abbreviated or paraphrased.

# Development workflow

ChrisOS development should keep code, tests and documentation synchronized.

## Start from main

~~~bash
git checkout main
git pull --ff-only
git checkout -b <topic-branch>
~~~

Use a focused branch for one coherent change. Avoid mixing generated artifacts, unrelated refactors and architecture changes.

## Find the owning subsystem

| Change | Primary location |
| --- | --- |
| CPU, memory, interrupts, SMP, processes | <code>kernel/metal/</code> |
| Storage/filesystem/install | <code>kernel/fs/</code> |
| Graphics/input/3D/GPU | <code>kernel/gfx/</code> |
| Desktop/windows | <code>kernel/wm/</code> |
| Networking | <code>kernel/net/</code> |
| ChrisC/CLVM/JIT/toolchain | <code>compiler/</code>, <code>kernel/lang/</code> |
| Guest applications | <code>APPS/</code>, <code>GAMES/</code>, <code>LIB/</code>, <code>SYS/</code> |
| ChrisVM | <code>chrisvm/</code> |

Preserve subsystem boundaries. Do not leak emulator internals into ChrisOS drivers when the virtual-hardware interface can express the behavior.

## Build continuously

Kernel-level work:

~~~bash
make kernel
~~~

Normal system work:

~~~bash
make
~~~

ChrisVM-only work:

~~~bash
make chrisvm
make chrisvm-test
~~~

## Test narrowly, then broadly

Examples:

~~~bash
make host-cfs-test
make host-kcc-test
make test-qemu-gpu
make test-qemu-xhci
make chrisvm-test
~~~

Then expand as appropriate:

~~~bash
make host-gates
make qemu-gates
~~~

Use [testing.md](testing.md) to choose the evidence level appropriate to the claim.

## Documentation ownership

There is one canonical technical documentation tree: **https://os.christiansoftware.org/**, sourced from `christianrss/chrisos_site`.

Update this repository's `docs/` only when setup, build, run, testing, or contribution mechanics change.

Update `chrisos_site` when a change affects architecture, subsystem behavior, interfaces/formats, ChrisVM/ChrisCPU, drivers, graphics, filesystem, toolchain behavior, capability status, roadmaps, research, or educational material.

Do not recreate status reports, audits, plans, specifications, or architecture documents inside this repository.

## Keep generated output out of Git

Never commit <code>build/</code>, generated ISO/disk images, object files or temporary QEMU logs.

## Pull request quality

A useful pull request states:

- the problem or capability being changed;
- the architectural boundary affected;
- exact test commands run;
- what was not tested;
- compatibility/format impact;
- documentation changed with the implementation.

Role of this record

The atlas guarantees file-by-file traceability. Responsibility, invariants, ownership, concurrency, security, performance and subsystem interactions belong in authored chapters and must cite this file when applicable.

Document record
ID: source-6a22e029acacf131 Reviewed source: 92fb561574bd Class: generated-source-reference