Skip to content

Commit 9b69ff5

Browse files
docs: add project-status + LLM-transparency disclosures to README
1 parent 55ebc8a commit 9b69ff5

1 file changed

Lines changed: 57 additions & 6 deletions

File tree

README.md

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66
[![Windows LLVM](https://github.com/brightprogrammer/MisraStdC/actions/workflows/test-windows-llvm.yml/badge.svg?branch=master)](https://github.com/brightprogrammer/MisraStdC/actions/workflows/test-windows-llvm.yml)
77
[![Fuzzing](https://github.com/brightprogrammer/MisraStdC/actions/workflows/fuzz.yml/badge.svg?branch=master)](https://github.com/brightprogrammer/MisraStdC/actions/workflows/fuzz.yml)
88

9-
A C11 standard-library replacement that brings the parts of Rust, Zig, C++, and
10-
Python that actually pay off into plain C — without a runtime, a code generator,
11-
or a template compiler. Everything is opt-in at build time, so you compile only
12-
what you use, and nothing hides at runtime: allocators are plain values you own,
13-
generics expand to inlined code you can step through, and a single
14-
`#include <Misra.h>` pulls in whatever the build enabled.
9+
A C11 standard library, made with love, to bring some modern concepts into
10+
plain C. Everything is opt-in at build time — you compile only what you use, and
11+
a single `#include <Misra.h>` pulls in whatever the build enabled.
12+
13+
> Parts of this codebase have been written and re-written with the help of LLMs,
14+
> under close supervision. See
15+
> [Transparency and use of LLMs](#transparency-and-use-of-llms) for how.
1516
1617
> Not related to the MISRA C standard or its guidelines. The name comes from
1718
> the author's surname — Siddharth Mishra, nicknamed "Misra".
@@ -155,3 +156,53 @@ In-depth guides live under [`Docs/`](Docs/). Before contributing, read
155156
[`CODING-CONVENTIONS.md`](CODING-CONVENTIONS.md) and run the test suite plus
156157
`clang-format`. Released into the public domain under the
157158
[Unlicense](LICENSE.md).
159+
160+
## Project status
161+
162+
This codebase is in its very early stages. There is no stable branch yet, and
163+
there won't be one for a while. **Treat `master` as unstable** — agents
164+
introduce coding drift that gets caught and fixed later, so the tip of `master`
165+
can carry inconsistencies that are still being ironed out. Build against it with
166+
that expectation.
167+
168+
What *is* stable is the set of standards the code is held to: naming, ownership,
169+
allocator rules, error handling, formatting, and the rest are written down in
170+
[`CODING-CONVENTIONS.md`](CODING-CONVENTIONS.md). When the code and the
171+
conventions disagree, the conventions are right and the code is a bug to be
172+
fixed.
173+
174+
The tests aim to cover as much of the codebase as possible, and best effort goes
175+
into keeping everything stable *in its usage* — APIs behave as documented and
176+
the suite is meant to catch regressions across the library. What remains mostly
177+
unstable is **performance**. The prototype code just works; it isn't yet fast.
178+
At the time of writing a significant share of the available time and effort is
179+
going into benchmarking and improving it.
180+
181+
## Transparency and use of LLMs
182+
183+
Parts of this codebase have been written and re-written with the help of large
184+
language models, under close supervision. I want to be upfront about that rather
185+
than pretend every line was typed by hand.
186+
187+
The models do not get a free hand. I work them in tight review loops: I read
188+
what they produce, scrutinize it against the conventions above, and push back
189+
hard when it drifts — and it does drift, sometimes from noise in the model and
190+
sometimes because my own prompt was sloppy. When the output starts to "slop"
191+
(plausible-looking code that quietly ignores an established pattern, reaches for
192+
libc where an in-tree primitive exists, oversells what it actually does, or
193+
invents an API instead of using the real one), I stop it, point at the specific
194+
convention it broke, and make it redo the work until it matches the rest of the
195+
library. Nothing lands because it looked convincing; it lands because I checked
196+
it.
197+
198+
I also drive the commit history deliberately. The models tend to leave a trail
199+
of experimental, half-right commits while we iterate; before anything is
200+
published I have them cherry-pick and squash that down into a small set of
201+
clean, self-contained commits with honest messages, so the history reads as a
202+
sequence of deliberate changes rather than a transcript of the back-and-forth
203+
that produced them.
204+
205+
The intent is simple: the convenience of an LLM for the mechanical work, none of
206+
the abdication of judgement. The author remains responsible for every design
207+
decision that goes in; granular, line-by-line knowledge of the code is not 100%
208+
guaranteed, but a high-level understanding of it is assured.

0 commit comments

Comments
 (0)