System Architecture

How the Learning Hub fits togetherA visual map of what connects to what

created: 2026-07-22 architecture, reference
01 — the big picture

Five pieces, one loop

The Learning Hub has five parts. They form a single loop: you learn something → it becomes a blueprint → it goes live → next time you can see what already exists → you learn the next thing.

CONVENTIONS.md the rules AI agent reads rules, builds topics/*.html the blueprints Action auto-deploys live site manifest.json — agent sees what exists
The loop: rules → agent builds → blueprint filed → Action deploys → manifest feeds back to next agent
Remember

Five pieces, one loop. The rules tell agents how to build. The blueprints are what gets built. The Action makes them live. The manifest lets the next agent see what already exists.

02 — repos

Two repos: public rules, private content

Everything lives in two GitHub repos. The split is simple: the rules are public (so any agent can fetch them), the content is private (so your blueprints stay yours).

learning-hub-rules public — anyone can fetch CONVENTIONS.md the rules — how to build a blueprint recipes/ template.html skills/learn/SKILL.md recipes + template are for human readers. Agents only need CONVENTIONS.md. learning-hub private — your content topics/*.html the actual blueprints assets/CSS scripts/ index.html (gen) manifest.json (gen) log.md · CLAUDE.md · AGENTS.md italic = auto-generated by the Action.
Left: the public rules repo. Right: the private content repo. Italic = generated, not hand-maintained.
Remember

Public repo = how to build. Private repo = what was built. Agents fetch from the public one, push to the private one.

03 — entry points

Three ways to start a learning session

Every session starts the same way: an agent fetches CONVENTIONS.md. But there are three doors in — one for each way you might use the system.

CONVENTIONS.md raw.githubusercontent.com /learn skill type /learn in opencode or Claude Code claude.ai Project open a chat in the "Learning Hub" Project CLAUDE.md / AGENTS.md working inside the learning-hub repo All three do the same thing: fetch one file, follow the rules.
Three doors, one file. Wherever you start, the agent fetches CONVENTIONS.md and follows it.
Remember

Edit CONVENTIONS.md once → every new session everywhere picks up the change. No installs, no updates, no deployments needed for the rules.

04 — laptop flow

How it works from a laptop

From a laptop, the agent does everything. You just type /learn, have a conversation, and the agent builds, files, and pushes the blueprint. The Action takes care of the rest.

you
type /learn
agent fetches
CONVENTIONS.md
the rules
agent fetches
manifest.json
what blueprints exist
agent builds
the blueprint
HTML, all patterns, all metas
agent saves to
topics/slug.html
+ appends log.md + cross-refs
git push
to private repo
GitHub Action
rebuilds index + manifest
live on Cloudflare
~30 seconds
Remember

From a laptop, everything is automated. The agent reads the rules, sees existing blueprints via the manifest, builds, files, and pushes. You just talk.

05 — phone flow

How it works from a phone

From a phone (claude.ai), the agent can't push to the private repo. You're the bridge — you copy the HTML and paste it into GitHub on mobile. Cross-references and log entries wait for your next laptop session.

you
open claude.ai Project
agent fetches
CONVENTIONS.md
via Project instructions
agent builds
the blueprint
outputs complete HTML
you copy HTML
manual step
you paste into
github.com mobile
topics/ → Add file → paste → commit
GitHub Action
rebuilds + deploys
live on Cloudflare
~30 seconds

What waits for laptop: cross-reference backlinks to existing blueprints, log.md entry, last-quizzed meta updates. The blueprint itself works standalone — it's just not wired into the graph yet.

Remember

Phone produces a standalone blueprint. Laptop wires it into the graph. Both end up live on the same site.

06 — the action

What happens when you push

Every push to main that touches topics/, assets/, or scripts/ triggers the GitHub Action. It runs one Python script, commits the generated files, and deploys to Cloudflare Pages. The whole thing takes about 30 seconds.

push to main
topics/ changed
build-index.py runs
scans all topics/*.html
generates two files
index.html + manifest.json
commits them back
[skip ci] — no infinite loop
deploys to Cloudflare
learning-hub-3qh.pages.dev

What build-index.py does:

Remember

Never hand-edit index.html or manifest.json — they're overwritten on every push. The script is the only thing that makes them.

07 — planned

Two modes (learn mode not yet built)

Right now there's one mode: "build me a blueprint on X" → the agent produces it. The plan is to add a second mode where the learning happens in conversation first, and the blueprint captures what the conversation surfaced.

learn mode "teach me X" agent asks what you know you share your understanding agent finds the gaps agent teaches to the gaps "does that land?" after each chunk → blueprint captures the real journey "Remember" callouts come from actual misconceptions you had — not ones the agent guessed. build mode (current) "build me a blueprint on X" agent fetches CONVENTIONS.md agent builds the complete blueprint outputs HTML for filing → blueprint produced directly "Remember" callouts are the agent's best guess at what misconceptions you might have.
Learn mode: the blueprint is a byproduct of learning. Build mode: the blueprint is the starting point.

Design decision: the agent will ask which mode you want at the start of every session. This hasn't been built yet — it's the next feature after testing is complete.

Remember

Learn mode makes the "Remember" callouts real. They come from gaps you actually had, not gaps the agent guessed you might have.

In one breath

The Learning Hub is two repos and a loop. The public repo holds CONVENTIONS.md — one file any agent fetches to learn how to build a blueprint. The private repo holds the blueprints. You enter from a laptop (the agent does everything) or a phone (you paste the HTML manually). Every push triggers a GitHub Action that rebuilds the index and deploys to Cloudflare Pages. The manifest feeds back to the next agent so it can see what already exists. The whole system grows by agents writing to it, and the cross-links between blueprints are the structure — no taxonomy, no hierarchy, just connections that emerge as you learn.

related CONVENTIONS.md live hub manifest.json