cnvrg.ai · the repo, explained

How this repo thinks

This project is a version-controlled memory for structured thought. Ideas move through folders as confidence in them grows, a small set of invariants keeps the corpus greppable, a hard membrane separates private deliberation from what gets published to the world, and every commit is critiqued back to you so the corpus reviews itself. This page is a live map of that machinery — click any part to open it.

The engine

Thought advances as confidence grows

Nothing is meant to sit still. A file's folder is a claim about how sure we are — and when confidence changes, the file is promoted, not left behind. Everything is steered from a single north star.

HIGH_LEVEL_POSITION.md — the author's current point of view, the source of truth Read first, always. If the corpus diverges from it, the divergence gets surfaced — not silently reconciled.
↓   steers everything below   ↓
01
ideas/
Discrete concepts. No claim of truth or viability — just captured, so a later prompt can pull them into context.
6 files
02
hypotheses/
Ideas that have hardened into a position. Holds the LIVE deliberation — alternatives, what would confirm or refute, open sub-questions.
9 files
03
conclusions/
What we've decided is correct. Compressed to the essence — the atomic claim, plus the load-bearing why and the branches we dropped.
9 files
04
docs/
Shareable narratives. Conclusions retold so a human or an agent can read them — and reused as context to build experiments.
5 files
when a hypothesis resolves ↴
tombstones
resolved/
A resolved hypothesis leaves a one-paragraph redirect stub here, pointing at the conclusion that replaced it. So hypotheses/ only ever holds OPEN questions.
2 files
The membrane

Private working memory vs. the public web

The whole repo is private. Exactly one folder — www/ — is served to the world at cnvrg.ai. That single fact is the entire privacy model, so it's guarded hard: writing anything into www/ is publishing.

Private working memory not served
The thought folders. Written to freely — this is the deliberation nobody outside sees.
├─HIGH_LEVEL_POSITION.mdnorth star
├─CLAUDE.md · README.mdsteering rules + guide
├─ideas/ · hypotheses/raw + live
├─conclusions/ · resolved/settled + tombstones
├─docs/shareable drafts
├─feedback/agentic critique + requests
└─tools/hygiene + pipeline scripts
Served to the world cnvrg.ai
Only www/. Each subfolder is one experiment at cnvrg.ai/<name>/ — static HTML/CSS/JS, self-contained, no build step.
├─www/crossover-instrument//crossover-instrument/
└─www/thought-structure/you are here
⚠ The split relies on two facts: the GitHub repo is private, and only www/ is served. Flip the repo to public and every thought folder becomes world-readable — so that change gets flagged before it happens.
The feedback loop

The corpus critiques its own changes

Editing is only half of it. Every commit is an event: the changed thought files are captured, an agent critiques them, and the findings collect where you can act on them — so the pile of Markdown reviews itself instead of drifting. Nothing runs on a timer; it all reacts to commits and commands.

CAPTURE · automatic

Commit → queue

A post-commit hook diffs the commit and enqueues any changed ideas/ hypotheses/ conclusions/ docs/ file. Editor-agnostic — vim or agent, both flow through the commit.

PROCESS · agentic

Critique → feedback/

A read-only critic reviews each queued file in parallel — one per file, in its folder's terms (dup, gap, contradiction, promotion, stale) — and the findings are reconciled into a sidecar in feedback/. Critique-only: it never edits the corpus or www/.

REVIEW · on demand

Punch-list → you

Findings coalesce into one ranked list. Each is a checkbox you tick when resolved — state lives in the file, as memory. Re-critique supersedes a file's open findings, so the list converges as issues get fixed instead of piling up. You stay the judge; the loop only ever surfaces.

the commands
/statuspeek at what's queued for critique — read-only /processcritique the queued files into feedback/ sidecars /punchlistreview every finding as one ranked list /add-requestqueue a change to a live experiment (freeform is fine) /apply-requestsapply those changes to www/ — the only sanctioned publisher /hygieneaudit the corpus — mechanical checks + a judgment pass
Freeform in, structured out: drop a note with no frontmatter and it's auto-formatted on commit; write an experiment request in plain language and it's normalized for you. Formatting is never your job. And when an idea reads as something to build, it's proposed as a spin-out — waiting for you when you next open a session.
The invariants

Six rules that keep the corpus honest

These aren't style preferences — they're what makes the pile of Markdown behave like a queryable memory instead of a junk drawer. Break one and it's a bug to fix, not a note to leave.

INV · 01

Status must match folder

Every file's status: frontmatter equals its folder: idea→ideas/, hypothesis→hypotheses/, and so on. A "concluded" file sitting in ideas/ is a defect. This is what lets the index be verified rather than hand-synced.

INV · 02

Filenames are the index

There is no index file. The set of descriptive, lowercase-hyphenated filenames is the index. Each name must summarize its contents well enough to judge relevance without opening the file.

INV · 03

Provenance on every file

Each thought file opens with YAML frontmatter: status, date (absolute), source. Revise a file materially and you bump its date.

INV · 04

Promote, don't hoard

When confidence changes, move the file forward. Resolving a hypothesis means writing the conclusion, reducing the hypothesis to a redirect stub, and moving that stub to resolved/ — in the same beat.

INV · 05

Never leave a dangling link

Renames and promotions rewrite inbound [links] in the same commit. Nothing is allowed to dangle or go stale between commits.

INV · 06

Preserve the deliberation

Don't lose the reasoning when a context window ends. Conclusions carry a compressed "reasoning & rejected alternatives" so the why — and the why-not — survives after the stub is reduced.

The contract, concretely

What one thought file looks like

Frontmatter is the machine-readable half; the filename is the human-readable half. Together they make a file findable, place-able, and auditable — node tools/hygiene.mjs checks all of it.

  conclusions/redistributed-work-has-cost.md
---
status: concluded          # must match the folder (INV-01)
date:   2026-07-01        # absolute — bumped on material revision
source: "conversation"    # or a migrated-from note / external URL
---

# Automating a task's core doesn't delete the human work — it
# redistributes it across more people and roles. The compressed
# claim lives here; links to related thought use [[wikilinks]].
Reading order: HIGH_LEVEL_POSITION.md → the folder listings (the index) → whatever the filenames say is relevant.
Hygiene: mechanical pass via node tools/hygiene.mjs; judgment pass via the /hygiene command.
Feedback loop: every commit is captured and critiqued into feedback/; review with /punchlist.
A self-portrait of the repo, published from within it. · cnvrg.ai/thought-structure