No description
  • JavaScript 56%
  • Svelte 37.2%
  • CSS 6.2%
  • Shell 0.4%
  • HTML 0.2%
Find a file
Markus Maiwald c69f7fbf8f
Some checks failed
test / test (push) Has been cancelled
content(monastery): publish mission bundle
2026-05-16 10:24:16 +02:00
.forgejo/workflows ci(monastery): forgejo workflow — wire test budgets — test <30s, test:all <180s 2026-05-03 21:29:13 +02:00
content docs(cluster): add actor production drills 2026-05-16 01:58:37 +02:00
public content(monastery): publish mission bundle 2026-05-16 10:24:16 +02:00
scripts feat(content): orchestrator extends to chapter-md, mission-md, tests-kdl validators 2026-05-04 23:05:17 +02:00
src feat(agent): Anthropic Messages API adapter for Kimi for Coding / MiniMax 2026-05-05 19:51:31 +02:00
tests fix(tests): make agentConfig.test.js hermetic against .env.local pollution 2026-05-05 20:15:31 +02:00
tools fix(content): browser-safe CLI guards in tools/validate-*.mjs 2026-05-05 18:57:22 +02:00
.env.example content(monastery): publish mission bundle 2026-05-16 10:24:16 +02:00
.gitignore test(monastery): mutation testing scaffold — pinned to 2 of 4 doctrinal modules (Plan 1 scope) 2026-05-03 21:01:50 +02:00
AGENTS.md docs(monastery): pivot README to Haiku→Mastery framing; defer AGENTS to parent 2026-05-03 02:05:33 +02:00
index.html feat: initial Janus Monastery — The Gate 2026-04-29 13:32:21 +02:00
jsconfig.json feat: initial Janus Monastery — The Gate 2026-04-29 13:32:21 +02:00
package-lock.json test(content): harden validator browser-safety test with AST walk 2026-05-05 19:17:31 +02:00
package.json test(content): harden validator browser-safety test with AST walk 2026-05-05 19:17:31 +02:00
README.md docs(monastery): pivot README to Haiku→Mastery framing; defer AGENTS to parent 2026-05-03 02:05:33 +02:00
stryker.conf.js docs(monastery): refresh stryker.conf.js header — policyFilter in scope, runState deferred to Plan 2B 2026-05-04 12:15:12 +02:00
svelte.config.js feat: initial Janus Monastery — The Gate 2026-04-29 13:32:21 +02:00
vite.config.js feat(dev): vite dev proxy for Anthropic providers (Kimi, MiniMax) 2026-05-05 20:12:53 +02:00
vitest.browser.config.js chore(monastery): vitest workspace mode — split node + browser projects, add jsdom + testing-library deps 2026-05-05 12:53:34 +02:00
vitest.config.js chore(monastery): vitest workspace mode — split node + browser projects, add jsdom + testing-library deps 2026-05-05 12:53:34 +02:00
vitest.node.config.js fix(monastery): vitest node project — preserve tests/**/*.property.js glob from pre-Plan-2C-1 config 2026-05-05 14:37:01 +02:00

The Monastery

Janus Fluency Monastery — From A Haiku to Zen Mastery.

A six-week programming retreat where you go to learn mastery. Not a tutorial series. A survival exercise. You arrive as a beginner; you leave fluent.

The Monastery ships the Fishing Boat Method: total immersion, forced recall under pressure, repeated failure, rebuilding from memory. No copy-paste. No AI. No escape hatches.


Architecture

┌──────────────────────────────────────────────────────────┐
│  Browser (Monastery Gate) — CodeMirror editor, Anvil UI  │
└──┬───────────┬───────────────┬──────────────┬────────────┘
   │ LSP       │ Anvil events  │ Space Agent  │ Codex/Lore
   │ (JSON-RPC)│ (SBI frames)  │ (SBI frames) │ (HTTP/Graf)
   ▼           ▼               ▼              ▼
┌──────┐   ┌────────────┐  ┌────────────┐  ┌──────────┐
│ LSP  │   │ Anvil      │  │ Space      │  │ Codex    │
│ srv  │   │ Harness    │  │ Agent      │  │ static   │
└──────┘   │ (:service) │  │ (:service) │  │ content  │
           └────────────┘  └────────────┘  └──────────┘
                  │                │
                  ▼                ▼
           ┌─────────────┐  ┌─────────────────┐
           │ SovereignKV │  │ Janus Compiler  │
           │ (learner DB)│  │ (libjanus)      │
           └─────────────┘  └─────────────────┘

Four channels, four authorities:

  • LSP owns language correctness (diagnostics, hover, completion)
  • Anvil owns mastery truth (learner state, tests, struggle budget)
  • Space Agent owns judgment (Socratic hints, capability-gated)
  • Codex owns lore (haikus, hints, ideology, doctrine)

Components

Component Name Role
Browser entry Monastery Gate CodeMirror + Anvil + Codex in browser
Harness Anvil Test runner, mastery model, hint ladder, boss fights
AI tutor Space Agent Constrained Socratic tutor, capability tokens prevent cheating
Mobile companion Pilgrim Flashcards, recall, review — no IDE pretense
Lore/ideology Codex Haikus, hints, nuggets, Libertaria doctrine

Learning Model

  • Mandatory once: Fisherman Way intro (:script fluency foundation)
  • Then learner choice: pick any next track based on goals; AI mentor guides pathing; no forced hierarchy
Track Typical Duration Focus
:script (mandatory intro) 6 weeks AOT scripting, $-pipelines, std.text.*
:core 3 weeks Minimal transparent systems profile: explicit allocators, capability discipline, error model
:service 4 weeks Async, structured concurrency
:compute 5 weeks SIMD, numeric tower, profiling
:sovereign 4 weeks Bare-metal, capabilities, Libertaria stack
:cluster 6 weeks Actors, supervision, distributed failure
:libertaria opt-in Exitarian doctrine, sovereign philosophy
Domain electives variable Game, industrial, aerospace, climate and beyond

Ideology is a portal, not a toll booth. The chalice is offered, never poured.

What simplicity means in Janus

Janus optimizes for transparent simplicity: you can read code and predict behavior. No hidden allocations, no ambient authority, no magic dispatch. :script reduces surface for beginners; :core keeps costs visible for serious systems work.


Three Commandments

1. No Copying — Every line must pass through the learner's nervous system. Not from the internet. Not from yesterday. Not from the docs. Write it again from memory. Every time.

2. No Oracles — No AI. No Stack Overflow. No solution search. Only the struggle budget unlocks hints: 0-20min pure memory, 20-45min compiler only, 45-90min reference manual, 90-120min hint level 1, 2-4h hint level 2, next day hint level 3, then (only then) read and rewrite from memory.

3. No Dead Pain — Every failure must produce a logged hypothesis, a test, or a rewrite. Pain without reflection evaporates into mood. Pain with an error journal becomes doctrine.


Quick Start

cd janus-monastery
npm install
npm run dev

Open http://localhost:5173 in your browser. You are at the Gate.


Project Structure

janus-monastery/
├── public/              # Static assets
├── src/
│   ├── components/     # Svelte components
│   │   ├── Haiku.svelte
│   │   ├── HintCard.svelte
│   │   ├── Nugget.svelte
│   │   ├── Codex.svelte
│   │   ├── Anvil.svelte
│   │   └── Pilgrim.svelte
│   ├── pages/
│   │   ├── Gate.svelte      # Browser entry — the monastery gate
│   │   ├── Forge.svelte    # The coding harness
│   │   ├── CodexPage.svelte# Lore, haikus, doctrine
│   │   ├── PilgrimPage.svelte
│   │   └── settings.svelte
│   ├── lib/
│   │   ├── anvil.js        # Anvil harness client (SBI)
│   │   ├── space-agent.js  # Space Agent client (SBI)
│   │   ├── sovereign-kv.js # SovereignKV interface
│   │   └── sbi.js          # SBI wire protocol
│   ├── styles/
│   │   └── theme.css       # Japanese monastery + Libertaria theme
│   └── content/
│       ├── haikus/         # .md haiku files
│       ├── hints/          # .md hint stubs per concept
│       └── nuggets/        # .md wisdom nuggets
└── content/
    └── packages/           # Hinge packages: monastery-script, etc.

The Stack Eating Itself

The Monastery is not a learning platform with Janus content. It is the Janus stack dogfooding itself:

  • Learner state lives in SovereignKV — sovereign by construction
  • Wire protocol is SBI — the protocol Janus already ships
  • Content is Hinge packages — the package manager Janus already ships
  • Artifacts are Graf repos — version control Janus already ships
  • The browser IDE runs Janus via wasm32-wasi — the target Janus already ships
  • Mobile sync is DMP — the distributed messaging Janus already ships

The course doesn't use the stack. The course IS the stack.


Status

MVP-0: The Gate. Initial scaffolding. Browser entry with haiku theme, Codex reader, basic navigation. Actual test-running and Space Agent integration come after the directory structure and visual identity are ratified.

Build the Gate first. Ship two weeks of :script content. Prove the loop closes.