This version of the module is deprecated: WRONG MODULE NAME
MAKED on MoonBit: rabbita SPA frontend + a Flask-style micro-framework on moonback
| Letter | Domain | Pyroduct Position | Drive Slot | Structural Relation |
|---|---|---|---|---|
| M | Model | Standing | derived from the table | the model stands, one foot in the past and one in the future |
| D | Data | Encounter | derived from the table | the model's inescapable encounter with the other (data) |
| E | Experience | Honor | derived from the table | experience absorbed as a reward bestowed by the idol |
| A | Attack | Evil | derived from the table | attack as the hard, cold thing that contracts the horizon |
| K | Knowledge | Discipline | derived from the table | knowledge distilled by enduring and clearing the reefs |
| Situation | Behaviour |
|---|---|
| The table has a Moved outgoing edge | Take it; drive_slot reports the concrete slot |
| Only Held / Same outgoing edges | Record them faithfully; the position does not move and the cursor does not advance |
| Only Open outgoing edges | undecided: true, listing the candidates, does not choose for the subject |
| No outgoing edge at all | blocked: true, drive_slot is the empty string |
.\build.ps1
moon run --release --target native cmd/server| Variable | Default | Meaning |
|---|---|---|
| MAKED_PORT | 8080 | listen port |
| MAKED_DB | maked.db | SQLite file path |
| MAKED_DIST | frontend/dist | frontend build output directory |
| Route | Returns |
|---|---|
| GET /api/status | database path, page count, the five domains |
| GET /api/pages | all pages (sorted by sort) |
| GET /api/pages/:slug | a single page, or 404 |
| GET /api/domains | the five domains (ring order) |
| Route | Returns |
|---|---|
| GET /api/loop/status | current domain, position, history, domain states, group state, mode |
| GET /api/loop/slots | the eight drive slots (two-character designation + English + gloss) |
| GET /api/loop/mode | the current mode (structured/free) |
| POST /api/loop/step | advance one ring step (using the current domain's default drive slot) |
| POST /api/loop/step/:slot | advance one ring step (using a named slot, English or two-character designation) |
| POST /api/loop/reset | reset to the initial state |
| POST /api/loop/reset/:domain | reset with the given domain as the starting point (accepts a letter or the English name) |
| POST /api/loop/mode/:mode | switch mode (structured/free) |
| GET /api/loop/continuations?depth=N | the model's own "all possible continuations" (after_open) |
| Route | Returns |
|---|---|
| GET /api/research/papers | arxiv SNN papers + trigger mapping |
| POST /api/research/drive | fetch papers and drive the loop |
| GET /api/research/causal | DoubleML causal inference results |
backend/ micro-framework, storage layer, API routes, state loop engine
app.mbt App: route table + ordered middleware chain
request.mbt Request wrapper
response.mbt Response value and dispatch
database.mbt SQLite storage layer
pages.mbt content model + nine pages of seed data
api.mbt JSON API routes
loop.mbt five-domain ring loop engine (subject + group state machines)
research.mbt arxiv research paper fetching and trigger mapping
causal.mbt DoubleML causal inference
maked_app.mbt assembly, static files, SPA fallback
frontend/ rabbita single-page application
app.mbt state machine and router
views.mbt header, domain cards, page rendering
logo.mbt five-ring mark (SVG)
loop_state.mbt loop state visualisation
page.mbt typed accessors for the backend JSON
cmd/server/ native entry point
cmd/web/ js entry point (browser bundle)
tools/ CI and test tooling
ci.sh CI pipeline (15 gates)bash ci.sh # all 15 gates
bash ci.sh --quick # skip the slow gates
bash ci.sh --unit-only # type check + unit tests only.\tools\mutate-backend.ps1 # 11 mutations, 0 survived, 1 expected-equivalent
.\tools\mutate-frontend.ps1 # 15 mutations, 0 survived
.\tools\mutate-loop.ps1 # 14 mutations, 0 survived, 1 expected-equivalent| Gate | Tool | What it checks |
|---|---|---|
| native-check | moon check --target native | backend type safety |
| js-check | moon check --target js | frontend type safety |
| fmt | moon fmt --check | code formatting |
| tree | moon tree | dependency audit |
| unit-native | moon test --target native | 120 backend tests |
| unit-js | moon test --target js | 12 frontend tests |
| coverage | moon test --enable-coverage | coverage |
| bench | moon bench | benchmarks |
| prove | moon prove | formal verification (Why3) |
| bdd | bdd_test.mbt | 14 Given/When/Then scenarios |
| contract | contract-test.sh | 46 API contract assertions |
| component | component-test.sh | 6 cross-module integration checks |
| sast | sast-check.sh | 11 static security checks |
| mutation | mutation-test.sh | 10 mutation tests (80% kill rate) |
| dast | dast-check.sh | 5 dynamic security checks |
Install
Download zipMAKED on MoonBit: rabbita SPA frontend + a Flask-style micro-framework on moonback